Pensieve: 2203

2022-03-26 23:20

所观所读所玩

这个月比较忙, 游戏玩得少, 视频/书看得稍多些. 游戏只玩了Gran Turismo Sport. 赛道体验已经玩到80%的金牌了, 当然绿色地狱还是没碰的, 希望下个月能玩完其他所有的赛道吧.

书读了麒麟之翼, 没觉得特别合理, 没觉得特别好看, 也就算是读完了. 唯一印象较深的就是青春期比较难搞, 希望家里这个六岁的娃到时候能够让人省心一点. 另外读完的一本是我在深圳当市长, 虽然这本书官样文章太重, 故事性很差, 不值得推荐给其他人读, 不过和着wikipedia去读涉及到的其他人的小传, 也算有别一番风味. 另外书中说城市规划和管理让我这个玩过City: Skyline的人也觉得于心有戚戚焉. 另外在重读明朝那些事儿来杀时间, 现在读到于谦守北京.

找来一个纪录片, 但是还有书籍, 看完后觉得这是给理想主义者的一首情歌, 我笑纳了.

Netflix上看完了Winter on fire, 和国内的宣传不太一样, 国外对这个事件的定性是一边倒的. 具体俄乌冲突我也不想再多花文笔, 我只是想起三十多年前发生在北京的事情, 如果当时没有进城的部队, 后续事情还未可知.

不过既然已经写到这儿了, 不妨设想一下, 在一个极权国家里如何处理和干预这样的骚乱呢?

  1. 管控通讯渠道, 在青萍之末阶段就让骚乱胎死腹中.
  2. 通过立法来禁止非法集会, 这样师出有名, 胜券在握.

如果最恶劣的事情已经发生, 政权还可以:

  1. 局部中断手机信号和网络信号.
  2. 大数据分析骚乱人员成分, 通过亲属等渠道劝返.
  3. 管控交通, 医疗卫生用品, 食物和水源, 釜底抽薪.
  4. 管控新闻网站和社交媒体的发帖, 尤其是现场的视频和图片.
  5. 通过管控舆论来污名化引发骚乱的人, 通过修改历史来让这个成为一个禁忌(Wwe don’t talk about bruno的音乐响起), 直到下一代完全不知道这段历史.

另外看完了Finch这个电影, 看完后我还是觉得世界末日不是我这种人能够生存的. 我们在高度繁荣的城市里生存得很久了, 我们都会忘记周围的一切有多么不自然. 我们从小开始就看到干净的自来水能够从水管里流淌出来, 但是思考一下就会发现它包含了相当多人类的智慧和经验. 这还仅仅是对自然界广泛存在的水资源的利用, 如果说到其他的电, 天然气和汽油, 就更是难以在自然状况下维系了. 更虚无缥缈的网络信号就别提了, 能够用矿石收音机都还需要一个广播台发射无线电信号. 另外说回来粮食, 习惯了城市生活的我们会忘记自己不事耕织的事实, 对于超市里面能够买到食物产生了可疑的信赖感. 当危机来临的时候, 所有这些东西都可能会短期或者长期地消失, 这种时候迫于资源压力, 城市中人类社会的崩溃是肯定的. 而且相对于动物, 人类这种会利用工具的生物对同类来说更危险. 对于我这种工作和生存能力高度依赖于城市文明的人而言, 和大灾难一起挂掉也许真是更好的选择. 我不是没有勇气去面对崩溃后的人类社会, 而是清楚地认识到在那样的世界里面, 我很难给其他人提供有效的帮助. 我能够轻松的运维云服务器不假, 不过那个时候, 别说云服务器, 连裸金属的服务器都只能用来当武器砸人了.

git-un

写了一个很简单的bash脚本, 来提升git命令执行undo操作的用户体验.

日常使用中, git命令有三种undo操作, 首先用的最多的自然是将staged变更回退到unstaged状态, 这个操作目前需要git restore --staged加文件名来执行, 缺点是太长, 至少我是懒得打的. 接下来是将unstaged的变更撤销. 这个我习惯了用git co --加文件名来执行, 不过现在似乎有专门的命令了git revert. 最后一个是修改本地的git历史, 将最新的一个commit撤销掉, 常见的场景是commit完后发现有错误, 有些修改没有加进去, 于是撤销后重来. 执行这个操作的命令就更晦涩了, 是git reset --soft HEAD^. 不过好处是这个操作没有丢任何改动, 所以可以安心进行.

说到底, 这三种撤销的操作我都经常用, 虽然使用的场景各有不同, 但是要撤销的心理是完全一致的, 所以我在我的PATH下加了一个名为git-un的命令. 源码可参考这里. 基本思路是:

git un                # 不接参数直接执行, 则撤销上一个commit
git un file           # 接路径为参数, 将文件已经staged的修改撤销掉
git un -f file        # 接路径为参数, 撤销本地修改

基本逻辑是要撤销文件层面的修改时肯定会加文件名, 所以不加任何参数时可以撤销commit. 加了文件名时, 如果有-f, 则会做更危险一点的撤销本地修改的操作(因为这样会丢修改历史, 而unstage操作是不会丢修改的).