bookmark_border又一次体会到国内强势的信息封锁

作为一个没有备案且服务器在海外的个人网站,写这种敏感内容大概会被墙吧。为了不连累我所寄宿的服务器上的其他站长,我尽量写得隐晦点好了。

起因是刚才看日本的雅虎新闻看到这样一条新闻: 「武漢のコロナ惨状伝えた市民記者の弁護人 当局が弁護士資格はく奪」。大意是之前有一个市民记者向外界宣传了武汉的疫情惨状被告了,当时有两个人给这个市民当律师。最近这个市民被判了4年刑,两个律师呢被吊销了律师执照。

我想这事肯定要掀起一股评论热潮了,就去微博搜了搜这里其中一位律师的名字,为了方便起见以下简称牛律师。搜索结果显示整个微博最近完全没人谈论这个名字,按时间顺序显示最新一条和这个名字相关的微博还停留在2016年!那知乎呢?不出意料完全搜不到。b站呢?想都不用想,没有。虎扑?肯定没有啦。百度?欢迎来到2016年。

事先声明我在今天之前完全不知道牛律师这个人,也完全没有为他鸣不平的意思,甚至他到底是无辜还是有罪我都还没有去了解。我只是感慨完全靠国内信息来源生活的年轻一代,会不会意识到自己已经是缸中之脑了。

有时候在微博上看官方披露一个信息,下面都是批判官方的评论,仿佛我们才没有被蒙蔽,官方的舆论引导根本敌不过人民意志的汪洋大海。被港台同胞喷被洗脑的时候我也会很不屑地想,你们根本不知道这届群众抗洗脑能力有多强,我们才不是外界想象的那么无知。

可会不会其实,这些都是官方设计好的?一切可以拿出来讨论的东西才会被发出来,哪怕是那些禁止转载关闭评论的新闻,也都是官方放出的被逼至窘境的假象而已?

对于真正想封锁的内容,哪怕是这位牛律师一般无足轻重的小人物,也能让你的一切信息从墙内完全消失。

我是从墙还不存在时就开始上网的一代人,对信息封锁只有厌恶。看着墙一层层累高的时候我还曾不屑地想,用这种拙劣的方式对抗科技的进步,真是外行才会用的蠢主意啊。想不到现在已经到了微博里都是「幸好有墙在,不然外面那些妖魔鬼怪都放进来,这批愚蠢的网民根本应付不了」的评论的地步了。有一次我看到微博里有人玩64的梗,下面有人特别着急地问,你们说的64到底是什么事件?我完全搜不到啊?有没有好心人给解释一下?我看了一下这个人的个人介绍,似乎是个普通的大学生。这样的身份不可能对网络陌生到无法查找资料,我只能认为他获取信息的全部手段都被操控了。他看到的世界是别人设计好的世界,但这个设计对他本人来说是无感知的,真的好像缸中之脑,楚门的世界。

抱怨就发到这里为止吧,毕竟我还没到想要揭竿而起的地步,只是偶尔想起来感觉有点恶心,憋在心里不吐不快罢了。

下面说一下我能想到的反制方法:定期看一些海外媒体的新闻。(需翻墙)

我之前可能说过,我除了每天看日本的雅虎新闻以外,还有一个专门收集海外媒体新闻的 rss 文件夹。以前我试过订阅英文媒体的 rss,但读英语毕竟还是过于痛苦了,所以现在我的海外新闻里全是海外中文媒体。这里列一下我的相关订阅源:

BBC Chinese – 主页

BBC News 中文网

新闻 – 美国之音

日经中文网

法广_头条新闻-RFI

澳洲新闻网

华盛顿手记

纽约时报中文网

这里有些 rss 源不是官方的,有些只订阅了某个子分类,反正不是很正式,只能说凑合看看,权当抛砖引玉了。

另外读这类新闻主要是为了平衡看国内新闻过多造成的偏见,并不是说这里的报道就可以全信。事实上这里有相当多反华立场的媒体,我自己也是本着屎里淘金的精神来浏览的。对一些过于离谱的报道,还是要综合国内外多方面的报道,只相信各方信息的交集部分比较好。

 

bookmark_border无断点,不编程

我对开发环境的基本要求之一是可以下断点单步调试。这很基础,却很重要。

代码自动补全和断点调试功能二选一?
我选断点。

点击函数或变量自动跳转到声明处和断点调试功能二选一?
我选断点。

静态类型推导,编译时类型检查和断点调试功能二选一?
嗯,是个难题。

这样讲应该足以解释断点调试能力在我心中的地位了吧。

为什么突然想起说这件事呢,是因为昨天晚上我为了给我的 php 开发环境安装 xdebug 折腾了一宿,有感而发了。

按说给 php 安 xdebug 能有多难呢?确实不难,我在公司和个人环境里也安过很多次了,基本没遇到过太大困难。可昨天的情况比较特殊,甚至堪称极端,真的是把一个简单的问题拔高到了面试题的水平。

事情的起因是,我想在元旦假期里学习一下 laravel。最新的 laravel 框架要求 php 版本在 7.2 以上,外加一些其他的依赖项。我这个博客是运行在一个 web hosting 服务器上的,想动服务器配置并不容易。我常用的 vps 是朋友买的,我本身是借宿在那里,也不想太破坏他的环境。最终我选择在 vps 上用 docker 实现一个满足 laravel 要求的开发环境,而这正是噩梦的开始。

在 docker 里跑 php,这个 php container 暴露给外界访问的端口就不能是 80 了。假设暴露给外界访问的端口是 8080,我访问这个 docker 内的 php 文件的方式就是 http://my.vps:8080/path/to/file ,看起来有点丑不是么。为了美化这个 url,我修改了 vps 本机的 apache 设置,给这个 8080 端口配置了一个转发用的子目录 docker,这样我可以通过 http://my.vps/docker/path/to/file 的 url 来访问 docker。怎么样,好看多了吧,哈哈!

到这一步做完,我才开始配置 xdebug,而这时,我的 IDE 和目标 php 服务之间已经隔了两层了。

 

冷静!仔细想想,就算不给 apache 配置 ProxyPass,它到 php 之间也是会隔一层的呀,所以这不算是增加难度。呃,但是算上 ProxyPassReverse 设置,我的 http header 在中间被改来改去的,还是增加了不稳定因素。反正先试试再说吧。

一试果然不行,连不通。

那就不着急了,先从头捋一遍通信流程吧。附上我最喜欢的 xdebug 通信流程图。

看样子浏览器到 php/Xdebug 这部分通信时没问题的,问题出在 xdebug 想回拨给我的时候。

查了一下,我用的 PhpStorm 的文档里有远程调试 php 时的指导方案

ssh -R 9000:localhost:9000 username@hostname

思路是让 xdebug 回拨的时候访问服务器端的 9000 端口,同时把服务器端的 9000 端口反向代理到我的 PhpStorm 所在本地主机的 9000 端口,这样服务器端 xdebug 的回拨可以最终被在本地监听 9000 端口的 PhpStorm 接收到,很合理。

不过我的环境里还涉及到了 docker,怎么让 docker 容器内的 xdebug 的连接请求转发到外部宿主上呢?因为我是用 docker-compose 创建的 docker,所以我首先尝试用 docker-compose 自带的 container 到主机的端口映射方法

ports:
  - 9000:9000

结果在 docker 启动时 ssh 的反向代理无法绑定到服务器端的 9000 端口,这招不行。为了确认原因,我在 docker 容器内和宿主服务器上分别用 tcpdump 测试 9000 端口上的通信内容。结果显示 docker 容器内的 9000 端口上确实有通信,但宿主服务器的 9000 端口上没有任何通信。看来 docker-compose 的 ports 是专门用来让宿主访问容器使用的,反过来行不通。

sudo tcpdump -i any port 9000

我知道 mac 版的 docker 容器访问宿主 ip 有一个 docker.for.mac.localhost 的 hostname ,但是在 linux 环境里对应的 host.docker.internal 不知道为什么没有被定义。

算了暴力点直接拿 ip 吧!我在 docker 里做了一个显示请求方 ip 的 php 页面,类似于下面这样:

<?php
echo $_SERVER[REMOTE_ADDR];

取到的 ip 是 172.19.0.1 。之后反复重启 docker 试了几次,ip 没变,应该是问题不大了,就它吧。

用这个配置测了一下,结果 PhpStorem 还是连不上 xdebug。。什么情况!

用 tcpdump 看了一下远端宿主服务器的 9000 端口已经有流量了,但本地用 wireshark 却看不到本机 9000 端口上的流量。PhpStorm 行不行啊,有没有在监听 9000 哦?用 360 流量防火墙看了一下,确实启用 PhpStorm 的监听模式后程序会开始监听 9000 端口,关闭监听模式后程序对 9000 端口的监听也会停止。

会不会是 PhpStorm 没听懂呢?下一个 xdebug 的命令行客户端试了试,没反应。行不行啊?又下了个 linux 版的在服务器上执行 ./dbgpClient -p 9000 ,能收到 xdebug 的回拨,进入调试状态。看来问题出在服务器的通信没有转发给我的本地主机。

为什么呢?没头绪啊。。敲个 sudo netstat -natpl | grep 9000 研究了一下,看到 127.0.0.1:9000 这里突然想起来,ssh 的反向代理默认只接受来自本地的通信,docker-compose 的容器默认是创建一个独立的内网 ip 用来通信的,反正不是 127.0.0.1 。会不会因为这个,所以 ssh 的反向代理没有受理来自 docker 的通信?

google 了一下,修改 ssh 的设置为 GatewayPorts clientspecified 可以让客户端决定服务器端绑定的端口可以接收来自哪些 ip 的通信。于是打开 ssh 配置文件,发现没有 GatewayPorts 的设置,那更好,直接添加在文件末尾,然后重启 ssh 服务。

 sudo vi /etc/ssh/sshd_config
 sudo systemctl restart ssh.service

之后在本地主机上重新执行 ssh 反向代理,这次要设置为允许接收来自外部 ip 的通信:

 ssh -R 0.0.0.0:9000:localhost:9000 username@hostname

这次,终于调通了。

下面是技术总结(太累了就贴张图吧 orz):

补充:

1. 为什么我在本地的 window 主机上可以使用 ssh 命令?
因为用的 Cygwin

2. 对所有 ip 开放端口访问会不会有安全隐患?
确实。应该可以把最后的 0.0.0.0 改成 docker 容器的 ip,如果他有固定 ip 的话。不过我只会在自己需要调试 php 的时候才会创建这个反向代理,我没在用的时候这个安全隐患不存在,我在用的时候有其他人入侵这个端口应该相对比较容易察觉到。这里确实是防范意识不足,偷懒了。之后会采用更安全的连接方式的。

3. apache 的端口代理到子目录会影响 xdebug 调式吗?
不会。无论访问子目录还是直接访问端口,设置在 PhpStorm 里的断点都可以正确生效。

bookmark_border“冷漠” “冷血”还是“冷静”?

标题说的是我自己啦。

从小我就发现我没有别人那么容易兴奋,或者说不容易投入生活?

小时候的表现是和家属院儿里的小朋友一起踢球捉迷藏什么的大家开玩笑似的想耍赖的时候会找我评理,因为我比起胜负心,通常表现得更看重规则吧。

在学校里的表现是我从不使用哪怕本人也认可的有调侃或贬义的外号称呼别人,印象中没有开过别人包含调侃或贬义性质的玩笑,同样也很反感别人对我开这样的玩笑。

呃,这样看起来,似乎只是个不合群的人而已。但我还挺喜欢凑热闹的啊,离不合群还是有些距离的,算小透明吧。

到这里为止,似乎和冷漠冷血没什么关系,但在我看来这里的逻辑都是一样的。我内部处理事情的方式就是让事情符合一个我认可的道理。当这个道理是大多数人也认可的道理时,我就是冷静的,当这个“道理”不是一个主流正能量的观点时,我就是冷漠和冷血的。

比如我曾经在公司午休的时候和中国人同事严肃地分享我认为法律应该允许把小于一定年龄(比如2岁)的婴儿以动物对待的看法。其内在逻辑是,很多人因为意外怀孕生育打乱了自己的人生,不得不想方设法遗弃或杀死自己的孩子然后被发现毁掉人生。有的人家本身愿意养育一个孩子,但当孩子落地时自带了整个家庭倾家荡产也难以治愈的遗传疾病时,受限于法律无法放弃这个孩子重新孕育第二胎,结果整个家庭陷入绝望。牺牲了这些父母和他们的家庭所带来的,是这些婴儿的免死金牌。从公利的角度来讲,他们父母为社会带来的利益的期望远大于为了保护这些婴儿生存社会所付出的代价的期望。从私利的角度来讲,这个家庭放弃这些无法承受的婴儿是对他们最好的选择。完全放弃婴儿的权益也不合理,但婴儿的权益应该附属于他的监护人,类似于宠物。我的设想是,在婴儿未满2岁之前,可以赋予父母对婴儿的处置权,类似于对宠物的限制,不可以虐待,但条件符合的话允许安乐死或出让。对父母之外的人,只要父母要求,婴儿仍然享有人类级别的权利,被外人伤害可以追究伤害人类级别的责任。

这是对我而言可以自洽的道理,但看一起吃午饭的其他人的反应,这似乎并不是受大多数人认可的方案,可以归入冷血范畴了。

最近又开始考虑这个问题,因为我刷微博时发现自己对很多社会新闻并不能产生和下面主流评论一样的愤慨。尤其在经历过很多新闻反转之后,我对我的愤怒更加的谨慎使用了。

有些新闻的事实比较清楚,但属于我的价值观里可以接受其存在的部分,这时候看到评论里一致的批判就会感觉很孤独。我想象如果我有了另一半,我们的宗教政治历史观或者部分其他价值观不完全兼容(which 几乎必然会发生),那我们还能有一个温馨和睦稳定轻松的家庭生活吗?理想的相处方式是求同存异,比如我不相信宗教,但不介意她是基督徒。我不会强迫她接受世界是物理的之类的科学观点,只要她不会在明知我的理性价值观的前提下依然用非理性理由对我进行宗教劝诱。反正互相尊重对方的存在吧,只要不造成损失和伤害。比如我可以接受她信基督,但不能接受她信传销。

bookmark_border中年危机,又要开始刷算法啦

跟 D-Horse 同学通电话的时候聊了一些找工作的话题,加上我年纪也快到程序员年龄歧视线了,想趁着后悔之前再努力一把,于是我又开始刷算法了。

上一次是跟同事一起刷,他每天2道,我每天1道,结果人家去了外企,我放弃了。这就是差距吧= =

在我第一次知道程序公司大厂都是靠算法题筛选人才时,我是不服气的。因为当时我对把控一定规模的代码项目已经有了一些经验和感觉,算是刚刚看到了自己想要努力的方向。这时候突然有人说不我们要的不是这个,你方向有误,我是不太能接受的。而且常用容器的实现以外的算法在绝大多数程序员的工程项目中确实不是重要的能力,甚至算不上有用。尤其现在各个分支方向都有专业人士打理的现代,他们能封装出易用的接口,隐藏危险精密的核心算法部分,让善于组织工程项目的专家用来打造复杂的功能。这种各司其职的行业细分是进步的表现。就像我如果应聘混凝土调配师,你考我化学天经地义,可我是建筑设计师,知道想要什么强度什么特性时使用哪种材料就行了,完全没必要知道其中每种原料的具体提炼混合放置搅拌的细节吧。在这一点上我始终坚持我的观点:重度的算法和数学训练对非相关领域的工程师来说是非必须的。以前常有人说算法和数学是程序员的核心技能,这种自我陶醉的话说给懂行的人听听也就一笑而过了知道你在撒娇,可当年我初入行的时候总看到这种无法理解却又无人反驳的观点时,真的是非常的动摇,可以说影响极其恶劣。

现在对面试需要刷题这件事,我已经可以接受了。就像高考一样,我为了高考而学的除了英语以外的所有技能对高考后的人生都是无用的,但为了进大学,我还是接受了这个条件。高考是挑选强者,那我就跨过你设下的障碍成为强者,之后再回过头来评价高考岂不是更有底气?就像以前中国西化的时候,去国外学习先进技术回国建立新式学校的人,也是国内写八股文靠科举考出来的。这本就是选拔者嫌麻烦设置的一道障碍,妄想用来跨过障碍的努力能对自己的人生有什么帮助是没有必要的,它仅仅只是为了跨过这个障碍。如果你想跨过去,它能帮你跨过去,那就够了。这段努力的过程对你没有意义(有的话当然更好),结果才有。

bookmark_border我喜欢的游戏主播

先上结论:小米粥,大司马。

小米粥

第一次知道小米粥是在其他主播的qq群里看到有人发她拍得很漂亮的照片,追问之下知道了她的名字和直播间。之后去看了一下她的录播,发现她在直播镜头下很漂亮,同时性格很有趣,游戏也很c,就关注了。

现在漂亮的主播很多,可以说非常的多。我关注过很多第一眼很漂亮讲话很有趣的主播,但看过几次,每次看几分钟就饱了。想支撑起每天几个小时的直播,只靠美貌和互动还不是很足够吧。

小米粥吸引我长期关注她最大的原因是她的性格,人格,非常鲜明。

主播和观众互动,很多时候是需要一定的表演的,也可以叫人设。我本人有点道德洁癖,尤其对公众人物。如果对方暴露出过我不喜欢的人性,就会引起我剧烈而长久的抵触情绪,也许这就是我只能喜欢纸片人的原因吧哈哈。

说回来,主播的表演这个东西很容易触发我的厌恶。假装不经意暗示礼物,要礼物太过了,恶心!不要礼物,甚至劝粉丝不要送礼物,虚伪!对圈内节奏的态度:跟着喷,落井下石,抢道德制高点,趁机发泄网暴欲望,阴暗!强站挨骂方,论点站不住脚,无脑逆反心理,幼稚!不谈私下的生活和自己的真实想法,太表面,装!谈私下生活和想法不符合我的人生观价值观,道不同不喜欢!……

像这种对公众人物的挑剔让我很难有偶像。在其他领域,我勉强可以分别对待一个人的成就能力和他的私德,但在直播啊偶像这类靠人格魅力吸引观众的行业,真的很难有人让我很投入地喜欢。但是小米粥做到了。

小米粥对待礼物的态度是会读,会感谢,有时会以一种开玩笑似的夸张的热情态度恭维大老板,和他们互动,但是之后不会对这些老板们有暧昧的表现。嗯,不好描述,反正对这种送礼物的粉丝和女主播之间的关系保持了一种调侃的态度,看起来挺舒服的。

直播内容上,比起游戏,可能更像她说的,就是在”播自己”。我很喜欢她的聊天环节,看她聊对自己生活对圈内新闻的看法,不是强势的”我全对,我替你独立思考”(?),更多的是对自己观点的表达和反思。以心平气和的聊天而言,她对自己价值观的表达真的很有感染力,甚至让我接纳了以前一直不屑的在网上骂人这一不合理行为的合理性(笑)。下面贴出她对于网上骂人的理解,从视频 7:37 处开始。

https://www.bilibili.com/video/BV1K4411s7BW?p=2

类似这样的思考的表达随机出现在她动辄持续几小时的聊天环节里,让我像收集宝可梦一样看遍她的录播寻找这些观点,来重新打磨和扩展我自己的价值观。

作为一个年过30的中年人,我的价值观已经很少有更新甚至改变了。小米粥大量自洽而明确的想法让我收获很多,和一个人聊天“有所收获”就是这种感觉吧。

另外一个喜欢她的地方是,在游戏直播圈里她是少有的关注后直播时期的人生规划的人,对学历和可积累的知识技能的重视和追求让我很喜欢。她的“大专人”的梗就是她经常聊到的学历的话题。她本身是成绩在可以去大学可以去大专之间去了大专,之后有段时期报名升本科的课程,但是中间就没了消息,似乎搁置了。最近她则是表示要暂停全职直播投入现实生活,大约是要专心升完本科,学完她报的各种班,和现实生活中的朋友玩耍之类的。虽然也说了也许读了两个月撑不住又会逃回来直播,不过我有预感这次她真的可以完成学业,总之我们拭目以待吧!

大司马

关注LOL圈子的人,即使并不看直播,也很难不认识马老师。

小米粥是激进的行事作风中散发出锐利的人格魅力,马老师则是蠢萌无害的表演风格下流露出本分厚道的人格魅力。反正在我这儿,人格不让我敬佩是很难混得下去的。

马老师的名场面很多,包括早期经济困难坚持做教学视频,直播没人气坚持做直播,微博有了100个粉丝就很感恩,爆火后依然在陋室直播之类的。

我虽然道德洁癖,但直播这个事还是要讲直播效果的。一个人只有正义的人格是不足以吸引我持续不断的观看他的直播的。就像一个忠臣如果除了忠诚以外做官做得不出彩,一个名将如果除了忠肝义胆之外打仗总也打不赢,那我也很难喜欢上他。

就像一个女主播第一吸引我的是颜值,之后我才有兴趣了解她的内在一样,马老师最先吸引我的是他的直播效果。这个效果有多好,看看b站有多少人持续多年专门剪辑马老师的视频就知道了,真是一个人养活了无数up主。但是就像漂亮的女主播会看饱一样,有趣的直播也有看腻的一天,能让我几年持续关注的人,必须要有好的人格魅力。马老师的这份魅力有点像一个让人尊敬的长辈,尤其配合他的直播人设有时候会故意装大人教育小孩儿地说些大话,有点膈应人,需要配合看他直播之外的表现区分出哪些是直播中表演的成分来解腻,才好消化。马老师大火之后因为这种表演风格惹来了很多的黑粉,那时候我才发现原来这并不是一种所有人都可以天然消化的魅力。为了避免推荐牛奶给乳糖不耐受的人给牛奶招黑,我之后就很少推荐大司马给别人了。喜欢的人自然会喜欢,无需解释。但是这种思考方式其实逃避了锻炼把自己的想法说清楚的能力,长时间的回避向别人输出观点导致我在和人谈话的时候表达能力很差,尤其遇到理胜词败的时候巨生气有没有!所以今天我就硬是表达一下我为什么喜欢马老师吧。

先放一个我刚关注他的时候看的一次录播,从 10:55 处开始。

https://www.bilibili.com/video/BV1yx411C74p

这里是马老师回应他在破旧的小屋里直播的照片被人发到网上引发大量同情和感动的事件。之后还讲到他出名之前那段艰苦生活,因为是从事自己喜欢的事还能赚钱,所以并没有觉得很苦,这里引起了我的共鸣。高中备考,留学备考阶段我也过了一段”苦日子“,现在回头看会觉得当时的自己真的很努力,很感激当时的自己肯吃那种苦,有一点感动。但在当时尤其是留学备考的时候,知道自己在朝着目标前进,只觉得自己没有在浪费时间,很充实,但借着惯性并没有觉得生活很苦很单调之类的。

后面马老师还讲了他对自己未来的期待和看法,因为不是演员歌手之类能出新作品的行业,如果自己不能有新的东西,一两年之后热度过去自己也会没落的。当时只是觉得他讲这些话的时候显得很真诚,这些简单的话,浅显的道理听起来却很有感染力。有些话是这样的,很多人表忠心的时候说过政治正确正义有道理的话,但是看他的表达配合平日的表现只会感觉虚伪。富有人格魅力的人说同样的话,配合平日言行相符的行为,就很令人信服。好像宗教的教条大多是老生常谈的正义空话,但配合拥有强烈人格魅力的宗教领袖就能发展成稳定的宗教。也许这就是现实扭曲力场吧。

我写日志前后加起来有10多年了,有时候明显能感觉到某段话我写出来无法像讲出来时那么有感染力,会失去很多写字时想表达的感情。本身我的作文水平就很低,读书多年一直保持作文稳定42分及格分的水平,高考估分直接估42也没有出任何偏差。这样的水平写日志我自己也挺不好意思的,只当是留给未来自己的回忆了。

看了这么多年游戏直播,我对有一口良好的语言表达能力产生了憧憬。加上朋友同事里也有偶尔做视频发布的,我在想,我博客的下一阶段是不是可以挑战一下视频的形式了呢?就算作为给未来自己的回忆,保存一段段年轻时的语音也是很有趣的啊。嗯,值得考虑。

bookmark_border失眠有所好转!

安眠药吃了一年多,药从一种增加到两种,结果每天还是凌晨两三点甚至四五点才睡得着,简直是折磨。

说是失眠,实际上更接近于睡眠相位后移综合症,就是睡的特别晚,但是能睡特别久,如果不上班的话可以一直睡到饱才醒来。医生跟说我你要每天比前一天早睡一点,我笑了,我要是能早睡我还用得着来找你?

把相位往前调对我来说真的非常困难,可以说是做不到。幸好地球是圆的(?),我可以让相位后移一圈以达到相位前移的效果。是的,我做到了!比如今天,我是凌晨2点半起的床,玩了7个小时的LOL,9点半开始签到上班的。

怎么做到的?是这样的,我在上周五请了一天假,算上周六周日凑了一个三连休。在周四下班之后,我各种看视频玩手机不困不睡觉,一直玩到了周五上午十点睡着了。睡到晚上起床后我开始计算,怎么移能不耽误周一上班,也就是让我礼拜一的10点到19点是醒着的。

已知我在周五上午10点睡的觉,目标是周一在晚上20点睡觉,那我还需要让自己的相位往后移10个小时。如果周六14点睡,周日18点睡,周一20点睡,如何?每天多醒4个小时而已,对晚睡界王者的我来说,并不是很难。之后我就按照这个计划真的把睡眠时间调整到了晚上8点。

理想情况下,我应该睡8个小时到第二天凌晨4点起床。可惜实践中凌晨2点半就醒了,然后到下午会很困,有时候还会小睡一会儿。今天尝试优化了一下白天的清醒度,方法是早晨喝了一大盆咖啡。这样保持一天不小睡,看看晚上能不能睡满8个小时。

说说每天凌晨2点半起床的感受吧,就是觉得很…健康。每天都可以看到天一点点变亮,让我想起高中时代黑着天坐第一班巴士上学,和大学时早晨7点出门去自习室备考留学资格时的生活。有种谜之“我很上进”的错觉。

早晨睡到自然醒之后的几个小时大脑超级清醒,其实挺适合学习什么的。不过因为之前往后拖睡眠相位时靠的就是每天玩LOL提神,结果现在习惯性的起床就开始玩LOL了。算了,反正最近正好是LOL全球总决赛比赛期间,就允许自己放任一下吧。

中国LPL的4支代表队们,S10总决赛加油啊!

bookmark_border小心审视长期的信任与依赖

说的是我对 google chrome 在技术方面的过度信任。

最近在学习 react + typescript 的组合。本想着我有多年的 react-native 开发和浏览器前端调试的经验,跟着教程一步步走会很顺利,没想到第一步就栽了。

学习新东西第一步都是搭建开发环境嘛,开发环境建成的指标之一就是可以下断点单步调试。

用 typescript 写 javascript 有一个 sourcemap 源码映射问题,就像写 C++ 程序调试时需要有源代码和实际执行的汇编代码的位置对应关系信息,这里设置不好很容易导致断点加不上。chrome 的问题是在 react 程序第一次编译后下断点没问题,但在不重启 react 服务器端的情况下修改代码编译后用 react 的热更新功能刷新页面后,在 chrome 源码页面里加断点就失效了。

我在源码里加入 debugger 命令试了试,chrome 执行到那里会停下来,所以断点功能本身没坏,他只是不认我在浏览器的调试器里实时加上的断点。

搜了一下,这个问题是有官方 issue 的。看评论这似乎是 chrome 的 sourcemap 功能的 bug,最简单稳定的对策是调试时换用 firefox 。
我从 firefox 换到 chrome 有差不多 10 年了。这期间一直知道他们对浏览器标准的实现非常积极,但因为已经习惯了 chrome 和相信 google 的技术力,所以一直没有再用过 firefox 。

现在看来,我对 chrome 的信任是有些盲目了。其实在 react-native 的开发中我就时不时遇到在 chrome 的调试器里取不到特定 scope 里的变量等问题,但出于对 google 的信任,我一直觉得是 facebook 做的不好,对 chrome 竟然从来没有怀疑过。

盲信除了懒惰,也有无知的原因。比如以前我从来不会怀疑 OS,不会怀疑编译器,不会怀疑 IDE,有错一定是我的错。参加工作以后,我遇到过 android OS 的坑,遇到过 gcc 的坑,遇到过 visual studio 的坑。在世界观被他们一次次重铸后,我学会用了批判性的眼光看技术。这次 chrome 的坑没看出来有我对浏览器领域的了解太匮乏的关系,我甚至没有能力定位到这个 bug,即使 chromium 是开源的!

我太菜了,这不行。

立一个 flag, 总有一天我要亲手定位到这个 sourcemap 断点无效的 bug 在代码中的位置。(反正说大话我最擅长了- -)

bookmark_border终于入手aws!

虽然几年前就租了一台阿里云服务器,不过那个主要是用来翻墙回国内的,没怎么正经用过。这次入手aws准备认真熟悉一下用aws管理服务器的各个流程,至少工作项目里在用的那些aws服务想都在自己的账号里摸一遍过过瘾。

为什么观望了这么多年才注册aws账号呢?主要是因为aws新注册账号会立刻开启12个月的免费套餐,注册早了怕浪费,哈哈~

不过这个免费套餐也不是什么都免费,其实额度挺小的,确实符合他们让你熟悉一下产品功能的预期。

新开的服务器要拿来做什么呢?先做个博客吧。

又是博客!没错,和现在这个并行,我想新开个博客了。

是这样的,你看,我这里开了8年,零零碎碎什么都写,尤其最近写了很多心情抱怨之类的,已经开始偏日记用途了。但是程序员嘛,总想搞个技术博客,挂出去不丢人的那种。如果把这里公开到linkedin 啊 github 账号上,被看到那么多私事,一个是很不专业,二来也不好意思。所以干脆分开两个地方写,对公只公开我的技术博客地址,给我的私人空间做一层隔离,两边不会互相添加引用链接什么的。

不过就像我在这里写出来的,我本身并不打算严格隐藏两边博主是同一人的事实。真的对我这个人有兴趣的话读者是可以根据蛛丝马迹找到另一半的我的,这个隔离只是阻隔一下面试官之类一面之缘的人。

说到身份划分,我最近还在考虑小号/马甲的事情。传说中大号岁月静好小号战火纷飞,会是种什么感觉呢?(笑)

bookmark_border睡前日记 2020/04/23日凌晨1点

睡前这个说法有一定的不严谨性。你可以说拿起手机走到床上躺下盖好被子按好第二天的闹铃的状态是睡前,不过根据我的生活经验,这个睡前状态普遍可以持续3小时以上。

我这个睡前日记,是准备写完了再去进入上面提到的那总睡前状态中去的,一种日记。唯一特别的一点是,此时我已经服了速效安眠药,有点醉醺醺的。

今天的日记写我之前读过的一本书吧。是从老罗演讲带货时第一次接触到的《美国种族简史》。说实话这本书作为大众读物算得上是相当无趣的,可以说是一种学术报告。

我读过那种一边讲一个领域一段时期的状态变迁,一边穿插很多故事,让重要人的故事带动历史前进,比如《重病之王 癌症传》,《码书》之类的。这是我最喜欢的了解一个新领域的方式。很可惜,《美国种族简史》是完全的另一个极端。读这本书有种听学术报告的感觉,把各种历史状态和统计数字直接砸在你脸上。虽然我非常讨厌上来就是大段主观观点,没有事实支撑硬要造理论的书,可现在看来全是干货的实锤作品我也看不懂啊。幸好当时是在健身房健身没东西听,偶然想到就听了下来。

我读完这本书有点久了,可能是去年读完的。里面具体的数据可以说完全忘记了。这种时候还记在脑子里的,才是一本书能给我留下的长久记忆,是最保值的部分。我的记忆是原来爱尔兰人当年年在美国那么不受待见啊。以前听爱尔兰音乐觉得真是充满美好的异域风情,可现实中他们是美国当时的移民底层。印象中美国有个专门的刻板印象叫”红发爱尔兰女孩”,是对爱情对性都很开放的热情女孩。宫崎骏动画里有很多女主就是红发,不知道和这个形象的刻板印象有没有什么关系。

德国人确实很厉害,在移民里做的工作属于几乎含量比较高的。

中国人移民的形象从刚到美国开始直倒现在都很稳定,就是努力学习努力工作不善交际那一套。

黑人好像确实挺惨的。

后面的彻底忘记了。

额,好失败的读书笔记。

我是不是应该从头快速阅读第二遍,然后再回来写呢?我以前也读过一些书,但他们中的很多对我的影响也只留下了三两句话而已。既然不是要高考,我为什么非得吸收好书中的所有信息,保持至少3年不忘记任何细节才行呢?挑着读,读个大概不求甚解不可以吗?

有些跟我相性很好的书,我读完之后会留下深刻的印象。之后的几年十几年里我还会时不时突然想起其中一些观点,然后脑内拿出来重新品味一番,看看现在的观点和当时读的时候有没有什么变化,感慨人是会变的,之类的。另外有些技术类的书,一般读不懂第一章第二章就没法看了,所以读完一本技术类书籍的时候脑子里会形成清晰的内容关系网,当然那种读书方使需要非常专注,现在已经很少有时间读大部头的技术类书籍了。自从上班以来,也可能是自从博客自媒体到手机普及以来,我读书的能力和欲望都大有减退。最后一次看完一整本大部头技术类书籍是什么时候,我已经想不去来了。很多技术类的书好看的内容只有一部分,所以我最近几年都是挑着看看完的技术类书籍。印象中有一本讲函数式编程的,一开始说的及其邪乎,看起来巨牛无比。再读下去却越来越感觉这本书少东西。首先函数式编程说了半天只是大段逻辑分成一个个小的针对事件的回调函数。这东西平时工作中用的 Underscore.js 就是啊,早就习惯了没觉得多了不起。而且这东西能做的事很受限制,只有适合它的使用场景我才会把他拿出来用。就这样一个类似小编程技巧一样的概念,作者京然能写出一本书。他先讲一个使用场景,然后伪代码实现一遍,再用函数式编程语言A实现一遍,然后再用函数式编程语言B实现一遍。就这样,后面介绍的所有情景每种的说明后面都是三大段源代码撑场面,我看到一半放弃了。

吃了安眠药果然写东西很没有逻辑结构了,东一榔头西一棒槌想到哪出写哪出,看起来有点蠢。以后晚上尽量只写感性话题吧。

bookmark_border不能想事儿,容易焦虑

今天答应帮人打印名片,挺急的今晚就要。怕办不好误事,我又开始焦虑了。

我家那台扫描打印复印三合一一体姥爷机,彩墨不足打印偏色,我已经好几年没用它打过彩色了。
下班去买墨水,怕加班来不及或者急着回家忘了去,焦虑。
怕款式太老墨水没得卖了,焦虑。
怕彩墨喷头堵塞,彩色打印依然偏色,焦虑。
怕猫毛掉进打印机,影响墨汁弹道,打印出来图案变形,焦虑。
怕家里的明信片打印纸当名片不够硬或者过硬,影响美观,焦虑。

这么件小事,就能让我恶心胃痛烧心焦虑,还是在长期服药病情稳定的情况下。
如果是断药时期遇到,这点事都够我痛苦到请假直接回家了。

我就像被训练的狗,遇到事就被电击,久而久之就学会了不做任何事的活着。
这看起来有点像拖延症。
我安慰自己说,世上那么多拖延症的人,大家都过得好好的,没问题啊。

年轻的时候还好,这几年我发现我的广泛性焦虑越来越严重,常常为不算事儿的事儿焦虑,这就很难搞了。
像最近常在想的是:我的工作不够好,30多岁了连google微软都进不去,太菜了。(???)
这种无理取闹的顾虑真的会让我焦虑到胃痛。以前对事业的焦虑能敦促我不断学习提高自己,现在则是纯粹的折磨。

看来不管再怎么避事,这日子也过不好了。
所以,我想反抗一下了。(笑)
目前想到的是刻意做点不会让自己太痛苦的小事,比如吃饭拍照发朋友圈博客什么的。看看会怎样。
还有遇到能让自己开心的事情时,有余力就记下来,挖掘一下讨好自己的方式。
一下子想太多到时候完不成就成了新的压力来源了,先写这两个吧。