要看的书

来源于知乎回答。有哪些思维透彻的历史书籍推荐? - 商熵的回答 - 知乎

1.《南明史》,顾诚。举个例子:李自成败出北京并不是因为他入京以后迅速堕落腐化,而是相反,是因为他没有联合地主阶级完成封建化才导致的。类似于这样的观点,两册书俯拾皆是。虽然有些观点不能认同,但着实是极为优秀的作品,深入浅出,比读小说好看。

2.《党员、党权与党争 : 1924—1949年中国国民党的组织形态》,王奇生。我党对国民党的打击不是优势问题,是降维打击。

3.《被统治的艺术 : 中华帝国晚期的日常政治》, 宋怡明/ 钟逸明。以小见大的经典之作,老百姓如何与国家斗智斗勇。尤其是每一章节的“回目”,甚得我心。写的是被统治的艺术,书本身也是历史叙述的艺术。

4.《大汉帝国在巴蜀 : 蜀汉天命的振扬与沉坠》,饶胜文。虽然本书将政权合法性对于政治的影响提到很高的位置,部分论述有失偏颇,但是瑕不掩瑜,提供了一个认识大汉巴蜀的新视角。看完本书,方知书名的高妙。又读了一遍,蜀汉政治取向以及彼可取而代之的解读有新启发,连带着明白了一系例事情(比如为什么诸葛亮会感叹只有法正能劝刘备)

5.《民族与古代中国史》,傅斯年。非常薄的一本书,但分量可真不轻。尤其是夷夏东西说和五爵制,读来甚有启发。非专业的人读着也很好。

6.《这受难的国度 : 死亡与美国内战》,德鲁·吉尔平·福斯特。节奏明晰,观点明确,叙述有力,对内战的反思和研究角度新颖且不乏深度,很棒。

7.《中国上古史研究讲义》,顾颉刚。极为好看,通俗易懂,拍案叫绝。可以看一下我写的其中一部分内容整理。我把本书最难的部分整理成故事了,助力各位读东汉内容

8.《清代八股文》,邓云乡。八股文要是写好了,文章“鞭鞭见血”。

9.《论三国人物》,方诗铭。有些观点虽然不认同,但是瑕不掩瑜。其中有很多观点大胆又令人信服,真是读三国深入浅出的好书。

10.《中国古代国家的起源与王权的形成》,王震中。严谨厚实,深入浅出,对于国家、社会演进的内涵和外延分析的非常到位且很清晰,最后的结语高度凝练,观之甚服。

11.《《易经》释梦》,吴钢。另类解读易经,把易经当历史,结合甲骨文和古文献重新阐述商周革命的过程和结果。逻辑严谨性三星,故事张力说服力四星,思考猎奇程度五星。

明年换服务器的一些想法

开始部署时只想着简单不想引入太多的复杂性,所以直接部署在windows上了。但是现在用户并不多,所以选择足够便宜的云服务器就很有必要,每年服务器到期就有必要平衡一下费用情况,进行迁移。以目前的部署情况来看,迁移还是有点麻烦的,新换服务器应该充分考虑迁移的方便。

初步设想仍然使用windows主机,但是使用podman部署产品。虽然podman在windows上运行于wsl内(即windows运行linux,linux运行podman容器,套了3层娃),在性能上应该会有不小的损失。考虑到用户并不多,这点性能损失我认为是可以接受的(没作具体的评测,以我目前的用户数来说,我觉得评测性能损失是多此一举)。

整个系统分为:nginx容器(配置certbot更新let’s encrypt的证书)、postgre容器、服务入口容器(即main,用来根据url进入不同产品)、产品容器(每个产品分别一个容器,相互隔离)。每个容器配置一个卷用来作持久化存储。在windows层面将对本机80/443端口的访问转发给wsl的linux系统,再由linux系统将此映射到nginx容器。

如此部署后,换服务器时,只要 wsl --export将wsl子系统导出,在新的服务器中再wsl --import导入,即可完成部署,无需进行太多复杂的配置。当然这只是一个初步设想,应该还会有未考虑到的地方,只有提前走一遍完整的流程才能知道未知的缺陷。但这个做法应该是可行的。

2024-11-19新想法

其实完全没必要用podman,wsl本身就算是一个容器,将所有的服务都部署在wsl中就可以,需要更换服务器时,直接导出wsl即可。自己本机的开发环境也可以这样搞,这样重装系统就会方便很多,直接导出wsl镜像是多么方便的事。

常用网络相关的设置

linux下网络代理的设置

http代理

export http_proxy=http://127.0.0.1:8888
export https_proxy=http://127.0.0.1:8888

也可以使用socks代理

export all_proxy=socks5://127.0.0.1:8888

要注意的是当使用socks代理时,python需要安装pysock包,否则无法使用

这些设置可以直接添加在~/.bashrc文件中,以便于系统启动时自动使用代理,如果用在命令行里,则只对当前会话有效。

windows下网络代理的设置

windows下的代理设置分为传统cmd和powershell两种情况

传统cmd

set http_proxy=socks5://127.0.0.1:8888
set https_proxy=socks5://127.0.0.1:8888

cmd这个也可以使用 http代理,但这个设置放到powershell里是不起作用的

powershell

$env:http_proxy = "http://127.0.0.1:8888"
$env:https_proxy = "http://127.0.0.1:8888"
powershell里只支持http代理,设置成socks5://xxxx是不起作用的

ssh的一些解决网络问题有用的参数

-L 参数

ssh -L localhost:8787:remote1:9999 user@remote2

此命令可以将对本地8787端口的访问通过remote2映射到remote1的9999端口上,remote2算是中间跳板服务器,对remote1来说看到的就是remote2对remote1的访问,实际这个访问是由localhost发起的,当然这里的remote2也可以是remote1本身,即remote1充当了这个转发者

-R 参数

ssh -R remote:8787:localhost:3000 user@remote

此命令可以将对remote的8787端口的访问转发到本机3000端口上,这其实就是一个反向代理,让内网服务可以被remote所在的网段的其他机器所访问(如果remote是运行在公网之上,local的服务可以被公网访问

-D 参数

ssh -D 127.0.0.1:9999 user@remote

此命令可以开启一个TCP代理,其端口号就是9999,当其他程序使用该代理地址时,即可代理其他程序的TCP访问请求