Himself65 Blog

五月是你的孔乙己

2020-05-31

标题改编自《四月是你的谎言》,最近重温这部番。

前言

我发现持续以来,我的想法比实践多一百倍。很多idea没做出来或者忘了,总之最后就不了了之了。本来想写日记记录下自己想法,一是有些想法不适合发到网上,二是时不时就忘了记。然后打算以月记的形式泼到网上。写一些自己一个月的收获的东西和看法。

母亲节

凑巧Apple发布旧手机,手一抖就给我妈送了个iPhoneSE。虽然Apple已经把产品做到如此傻瓜化,但是我妈依然不会下载软件、切换账号、AirPort这些稍微 advanced 操作。我还记得我小学时候我妈回家兴致冲冲的小几千买回一台山寨的iPhone,还问我这是不是真货。 有时候,以开心为主,就会少了很多烦恼。所以一般别人问我从电脑城买的电脑亏了没有,如果他买之前一定会答亏了别买,买之后一定答没亏。

Himself65的日常

看书

这个月,我先看了《计算机程序的构造和解释》(SICP),本来读了一遍第三章之后感觉很有感觉,想就着多线程写一下node.js、c++11、reactive programming。写到后面本着认真的精神读了一下《深入理解计算机系统》(CSAPP),发现我不懂的还是太多了,于是花了一个礼拜看了一下逻辑电路、CPU的实现(到截稿为止,流水线还没读完)。我想起了轮子哥说过的“程序员三大浪漫——操作系统、编译原理、图形学”,仔细一想其实是一条龙的东西,从简单的加法器到自动操作的芯片再到操作系统,汇编语言,图形化革命,这些概要都写在了《编码——隐匿在计算机软硬件背后的语言》里面,如果都能理解的话当然是很爽的。所以五月里把CSAPP读了一点点,还有那本《计算机组成与设计:软件/硬件接口》。 顺带看了《线性代数》(Steven J. Leon著),看到了正交性,后面的还没时间看。其他的,《x86编程语言:从实模式到保护模式》其实就略显逊色了,讲的不错,但是这个更像是入门书。还有只翻了几页做参考的就不提了。

代码

感觉上手了Rust,剩下时间都在维护node.js。自己越来越懒得造轮子了,不知道是不是因为懒了还是时间不够。整了一下树莓派、WSL2、路由器Breed刷机、Bochs什么的。

四月是你的谎言

我记得曾经有个女生大概二月份时候给我安利了这个番,一直拖到当年暑假才看这部番。所以看这个番的时候,总是想起一些往事。 有时候想为什么熏不早点找公生、为什么盖茨比不早点找黛西这样愚蠢的事情……

孔乙己

老师出了这么一个example来教我们指针:

int *f(int *a, int *b) {
  int c = *a + *b;
	return &c;
}
// int *c = f(&x, &y);

我光速就感觉到了不对劲,于是便问

您这么写不考虑栈空间被清理吗?

我以为他不知道这个事情,但是没想到他回了个更让人沉思的“正确”答案

这只是演示用的。如果不调用其他函数,变量是不会被覆盖的。

我想从现代编译器只会汇编成这样来反驳他、

; gcc v9.x
; gcc -Og -S 1.c
f:
	move %0, $eax
	ret

我想从现代操作系统对内存的保护解释、我想从这是C语言的未定义行为来说……

但,这又如何呢? 一句 我们用的是VC6.0,就可以反驳我一切理由。还能够在下节课时候讽刺:“有个同学上课不好好听讲……”,来作为指针返回本地变量的开场白。

有时候,以开心为主,就会少了很多烦恼。

孔乙己自己知道不能和他们谈天,便只好向孩子说话。有一回对我说道,“你读过书么?”我略略点一点头。他说,“读过书,……我便考你一考。茴香豆的茴字,怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。


Written by Himself65, node.js collaborator, undergraduate, and working from school now.
You can follow him on Twitter
Or Github