前两天了解到一位朋友的两位至亲已经去世多年,让我非常震惊。
很难想象这位性格开朗的朋友已经失去了两位至亲,即便无法感同身受,但依然会忍不住去想象,这位朋友是怎么度过那些悲伤的日子的,在一个人的时候有多思念他们,在他乡的时候悲伤会不会加倍。

想起我大学最好的朋友,他很小的时候便没了父亲;我经常想,他在小时候挨了多少欺负、受了多少委屈。

高三的五一那天,和同学去鹤壁市区的一个小的博物馆,那天下着蒙蒙细雨,从博物馆不高的楼上向窗外望去,烟雨蒙蒙。同行的同学问我知道李白的那首《菩萨蛮》吗,然后就对我说了那句让我经常想起的词句:“平林漠漠烟如织,寒山一带伤心碧”。那时候也不理解是什么意思,只是按照字面意思觉得和那天的“朦胧”感很贴合。

高中周末一般只有四个小时的“假期”,我经常去县城最热闹的街上溜达,最喜欢去的是一家音像店,但是因为没钱,很少买。毕业的暑假,这位同学送了我一本 MJ 的专辑。我很感动。

大一的时候我经常站在校园里的假山上向西眺望,校园墙外一片开阔,除了一片低矮的房屋,白茫茫什么也看不清。我就这样在这座假山上经常思念我的这位同学,思念每个夕阳西下时小县城的的周末,思念每个慢慢离自己而去的朋友。

去年的春天和秋天,我两次驾车沿着相同的路线从郑州向西出发,经小浪底,沿着黄河向上游走;一路上静静流淌着的黄河水伴着岸边起伏的山路,很是惬意。
小浪底水库的岸边有许多小山,找一片开阔地驻足在山顶,用心地感受,感觉像回到了大学的那座假山上。

张楚有一句很美的歌词,“在空旷的星河下 想你”。

我很愿意相信每个人都有来世,让相亲相爱的人在未来重逢。

年初,记录一些最近的事情和想法。

电影

我经常会回味一些让我觉得幸福的电影片段:

肖申克的救赎:杜福瑞和狱友们在屋顶“工作”后在阳光下喝酒聊天,每次看这里都会让我感到“自由”。

速度与激情第一部:奥康纳和米娅在电影里第一次共同出现的镜头,我只有在这种时候才相信一见钟情的故事,从一开始就知道他们两个会在一起。

三块广告牌:电影里的阳光。这部电影是春天在电影院看的,我很喜欢电影的配乐。看完电影出来那天阳光很好,很暖和,坐在公交车站台的椅子上等车,耳机里听着电影配乐,觉得身边每个走过的陌生人都很友好。

朋友

昨天和 W 打了一会儿电话,聊了不到半个小时。不知道该怎么说,他的生活并不容易;但他心态比我好。
挺好的。

我和 W 是小学三年级认识的,他是隔壁村的。从小学三年级到初中,我们做了七年同学,初二初三我们一起上学、放学,这是我们关系好的开始;初中毕业后他去上中专了,我继续上高中。从高中到大学毕业,我们每年过年回家都会在一起喝酒,关系越来越好。

大学毕业买房,首付差一些,找同学借钱,我准备找他借。媳妇儿担心他条件不好不会借给我们,我说别担心,他即使没钱,他也会借别人钱再借给我——他借了我一万。
后来他买房用钱,我也借给他了。

我们俩打电话有一个习惯,默认是对方先挂电话,直到现在都是如此。

最近这些年和很多好朋友都慢慢没了联系,但是我们俩一直像小时候那么好。

往事

元旦第一天和球友们聚餐,酒后大家都有些高兴,说了很多话。席间坡哥提到学生时期写信的往事,我也提到我高中时给朋友写了很多信,这些信都还留着。
高中毕业的那个暑假,我去学校找她;我们坐在操场上聊天,大部分内容都忘了,只记得提到她们学校的男生宿舍楼叫“慎独楼”,问我知道“慎独”是什么意思吗,我摇摇头。
她说,独自一个人的时候也要品行一致。
在去北京工作的火车上,收到短信,简单聊了几句,恍如隔世。
前两天晚上和媳妇儿聊天,聊了高中和这位朋友的很多事情,说了很多从没说过的往事;过去十七年了。已经十多年不和这位同学联系了,听说生活的很好。

《我与地坛》应该是我最喜欢的一篇散文,前几天和朋友聊天时提到这篇文章;我想到史铁生去世那天,我正在教学楼顶楼为期末考试而背书,印象深刻,那天是一零年的最后一天。大一的时候我在郑州西区的一个图书市场买过他的盗版书,但是我忘了是哪本,只记得是十六块钱。前两年突然觉得应该买一本正版的《我与地坛》了,然后就买了一本。

大学的时候同学给我介绍古玩城二楼是卖二手书的,很便宜;后来我去过两次,一楼是卖玉石、古董什么的,二楼是卖书的,的确很便宜;但是离学校太远了,后面就没再去过了。前一段时间接球友去打球,路过一个路口觉得很熟悉:这不是古玩城吗!记得那时候路口比较窄,现在变化很大。觉得很奇妙——那时候的我肯定不会想到十几年后我再次来古玩城是这样的方式。

二零二五年一整年,我几乎每个周六都会跑很远的地方去打羽毛球,无论周五我打到多晚,加班到什么时候,第二天我都能赶去打球;周六是我唯一一次能够早起的一天。我很难解释清楚我的动力来自哪里,我觉得很幸福,甚至有些不真实。
我需要珍惜这段时光。
我知道以后会经常想起。

音乐

我记得高中的时候读过一篇罗大佑的文章,关于家、时光的,和他歌曲给我的感觉很一致。我很喜欢罗大佑这种“调性”。听他的第一首歌应该是《童年》,六年级音乐课学习的;大一的时候在郑州的西郊(荥阳)听了他好多歌:《你的样子》、《野百合也有春天》、《恋曲1990》。。。近些年最喜欢《恋曲1980》,尤其是前奏,歌词我也喜欢,我喜欢言之有物的歌词。

我最爱的歌手是张雨生,原因是初中毕业的那个暑假我听了他那本磁带无数遍。磁带 A 面的最后一首是《我的未来不是梦》,B 面的第一首是《自由歌》;这两首歌我都很喜欢,所以也不用倒带:听完 A 面最后一首听 B 面第一首,然后再反过来听。。。听了整个暑假,现在每次听到《自由歌》都会回到那个夏天。
那本磁带不是专辑,而是大杂烩,可能是精选集,具体忘了。

磁带没扔,但是找不到了。

又一年过去了,越来越觉得时间过得很快。
往年都是过完农历年写这些,但不知道为什么这次放在了阳历年后。

工作

工作压力很大,我经常感到焦虑。压力来自工作自身,也有 AI 带来的影响。能明显感觉到 AI 发展很快,一年前还觉得 AI 对于程序员来说是个不错的辅助,能做一些不错的事情;今天看来,AI 能帮助程序员完成大部分工作。尤其是和记忆力相关的能力,人不可能比得上 AI。
最近大部分代码都在 AI 的辅助下完成,我主要做的事情是做判断,给 AI 写的方向。

很难说 AI 给我带来好的影响多,还是坏的影响更多。

生活

今年是我工作后回老家次数最多的一年,主要是为了看爷爷。奶奶走后,爷爷一个人在家更孤独了。所以每次回去他都喜欢我带着他出去转转,终于在今年把我们周边的几个县市都走遍了:濮阳、清丰、淇县、林县。他很高兴,用他自己的话说:他没想到他还能去到这些地方。我也很高兴。

娃暑假,带他去了趟日照,但是因为工作原因第二天就匆忙返程了,这让我感到很遗憾。不过即使这样,依然实现了我多年的愿望:在海边听《大海》,永远爱张雨生。

羽毛球

羽毛球占据了大部分的业余时间。我此前从未为一个业余爱好付出过这么多时间和金钱,羽毛球是第一个。自从二四年年底重新开始打球后,我几乎把所有的业余时间用在了打球上:学球、练球、打球……可以说是到了痴迷的状态。上一个让我这样痴迷的事情是编程,但是已经过去好多年了。
过去的这一年,羽毛球让我认识了很多朋友,也带来了很多快乐,感谢羽毛球 😁。
比较遗憾是水平没有达到自己预期的目标,虽然进步不小,但是距离自己预期还是差了一些;未来一段时间继续努力,让自己的水平更进一步。

我一定会把羽毛球水平提升到不错的水平,只有偏执狂才能生存

此外,今年莫名其妙喝了好多次酒。我很不喜欢喝酒,酒量也很差,不到万不得已我不会喝酒;但是和朋友们在一起聚餐的时候是个例外,我喜欢和朋友在一起的时候喝一点,我喜欢这种感觉。

张思远

今年上了四年级,学习压力更大了,作业也更多了,每天晚上都要写到很晚。
好的一点是他在我的影响下开始打羽毛球了,身体状态明显更好了,瘦了一些。可惜的是除了寒暑假,平时只有周末才有时间打球。

白虎

白虎今年生了一次病,医生说是感染寄生虫了,治疗了一个星期才慢慢恢复。看着他那几天无精打采的样子,还是很心疼的。好在恢复了,现在又活蹦乱跳了。

总结

我今年最喜欢的一段话:

人生这趟列车轰呜向前,命运让我们暂时挤在了同一个摇晃的车厢里,透过同一扇车窗看风景。但我们手中的票根的票根终点并不相同,当到站的广播响起,总会有人要提起行李先走一步。留下的人不必追问,离开的人也不必回头,我们能做的,仅仅是在车门关闭前,好好地挥手告别。

我没办法预料什么时候会下车,但我知道我应该珍惜眼前的一切,珍惜和家人、朋友在一起的时光。

总之,过去的一年开心多过难过,希望未来的一年也能如此。

白虎
图: 白虎在海边

白虎是我们家的小狗,一只可爱的比熊。

起因

在养狗之前,我说不上讨厌狗,但是绝对说不上喜欢,甚至有些害怕。当初买狗的原因是张思远想养一只宠物,但是并没有确定养什么。一开始有三个选择:猫、狗、兔子。
兔子最先被淘汰了,因为总觉得养兔子不会长久。
猫很快也被淘汰了,因为我爱人害怕猫。
最后选择了狗,虽然我怕狗,但是我的意见并不重要:)。

决定养什么之后,找朋友打听在哪里可以买狗,很快就花了两千块人民币买了一条两个月大小的比熊。白虎这个名字是张思远起的,来自于”左青龙,右白虎“。买到家之后才发现味道有些难以忍受,在买来的第一天我基本没怎么看过。第二天之后才好了很多。

大麻烦

一开始我们就遇到了一个最大的问题:怎么让白虎去规定的地方上厕所。一开始我们没有太在意这个问题,因为它还太小,所以基本上都待在笼子里;只是偶尔放出来逗逗它,玩儿一会儿。但即使这样,它也在房间里拉了个遍–这让我觉得有些恶心。
适应了新环境后,我爱人就开始训练它在固定的地方上厕所;但是这件事的困难程度远远超过了我们的预期。来到我们家三个月后,它依然没学会。虽然一直在笼子里,但是拉在笼子里也很恶心。我爱人一贯很有耐心,但是训练上厕所耗尽了她的耐心;只要白虎拉在了笼子里,就免不了一顿揍。

转折

我觉得白虎太可怜了,出生两个月就离开妈妈,被卖到一个陌生的地方,还要因为吃喝拉撒挨揍;所以,我非常反对我爱人揍他,为此我还和她吵过架。
终于,三个月后,在白虎又一次因为乱撒尿挨揍后,我和爱人大吵一架;然后我决定我来训它定点上厕所。我在网上找了一些别人训练的方法,然后挑了一个觉得合理的开始尝试。尝试了几天,我爱人也觉得合理,然后继续交给她来训练。终于坚持了一个多星期后,有了很大改进。
最终,我忘了具体用了多长时间,白虎学会了定点上厕所。学会之后,我们也把它的笼子撤了。那个时候刚刚入秋,天气也慢慢地变得凉爽,白虎的免疫也做完了,我们也慢慢的开始在小区内遛它。

快乐

白虎带给我的快乐是我之前完全没有预料到的,随着它慢慢长大,和我们在一起的时间变长,我们的感情也慢慢地增进。我平时工作的时候,它很喜欢在我的桌子底下睡觉;家里没人的时候就趴在门口睡觉;我们回来的时候,一开门就开始朝我们摇尾巴。这种陪伴的幸福感是我之前完全没有过的,每天早上它会闹着让赶紧出门遛它;如果我们出门的时候没有给它戴牵引绳,它就知道不会带它出门,所以大部分时候会安静的看着我们出门,如果带了就会变得异常兴奋,迫不及待的在门口等着出门。

生活并不总是开心,但是生活总是有开心的事情。

又一年过去了。

2023年回顾

2023年发生了几件值得记录的事情:

房子的问题终于得到解决,这几年来一直困扰着我们的房子问题终于在2023年得到了解决。

暑假期间,张思远和他妈妈去了青岛旅行,这是他第一次见到海,给他留下了深刻的印象。

我们买了一只比熊犬,取名为白虎。起初花了2000块钱,觉得有点贵,但它非常可爱,现在看来觉得非常划算。刚开始训练它上厕所的时候花了很大的力气,甚至和媳妇吵了几次。不过最终结果是好的,它学会了,并且变得越来越可爱。过年时带回家,受到了家人的欢迎。

最后,和张思远相关的事情,他在2023年取得了很大的进步,无论是阅读量还是理解能力都有了明显的提高。最重要的是,他对阅读的兴趣不减反增,让我们感到非常欣慰。

过年

今年过年很开心,相当平静。带着白虎回家增添了不少乐趣。今年去了两次小河边。

小河

二零二二年七月二十号,终于回归自由了。
听了邓紫棋的《泡沫》,从没有像今天这样觉得好听。

特别厌烦一群人喊一些莫名其妙的口号,更然人厌烦的是这个口号成为了他们的专属,好像这些文字是他们发明的,邪教一样。比如:

You’ll Never Walk Alone

着实恶心。

如果你一直强调自己喜欢打羽毛球,其实你没那么喜欢打羽毛球。

如果你一直强调自己喜欢读书,其实你没那么喜欢读书。

如果你一直强调自己喜欢写代码,其实你没那么喜欢写代码。

如果你一直强调自己热爱生活,其实你没那么热爱生活。

如果你一直在强调,其实你什么也没强调。

一入冬网上就会有很多人讨论“为什么南方没有供暖,南方的冬天也很冷,湿冷湿冷的”,甚至还有的说“我是南方人,在北方上学,觉得北方的冬天还没有南方冷”,等等,诸如此类。像讨论其它话题一样,在网上谁也说服不了谁。我们国家很大,这里说的南方一般是指上海、武汉这些纬度的地方。

阅读全文 »

最近半年和张跳跳小朋友在一起生活,小朋友真是天真无邪,经常会说出一些让人哭笑不得的话。

阅读全文 »

最近一段时间工作状态和生活状态都很一般,一方面工作压力大,导致生活压力也大,自己也一直生病。虽然不是什么大病,但是总是不舒服。

阅读全文 »

在 JavaScript 中 NaN 不能通过 ==, !=, ===, !== 等操作符来比较是否相等. JavaScript 提供了一个全局的函数 isNaN(), 用来确定一个值是不是 NaN; 同时, ES2015 中添加了一个函数 Number.isNaN(), 功能和全局的 isNaN() 类似, 这两个函数有一些区别.

阅读全文 »

《黑色梦中》
– 窦唯

我的寂寞和我的淚 我的表現是無所謂
若要堅強需要受罪 若要後悔需要懺悔
最好閉上你的嘴
喔 對 這樣才算可愛 儘管別人會感到奇怪
這不公道 我不能接受
到處尋找 尋找安慰 對我來說那太珍貴
人海茫茫不會後退 黑色夢中我去安睡
夢中沒有錯與對 夢中有安也有危
夢的時代我在胡說 夢醒時刻才會解脫
我不知道 我不能去說
我不能 不能 不能. . .

RIP.吹哨人

《Rust编程语言》笔记之二

枚举

创建枚举的两种方式

1
2
3
4
5
6
7
8
9
enum IpAddrKind {
V4,
V6,
}

enum IpAddrKind {
V4(String),
V6(String),
}

使用第二种人方式可以直接给枚举赋值,而且枚举的数据类型可以不相同:

1
2
3
4
enum IpAddrKind2 {
V4(u8, u8, u8, u8),
V6(String),
}

枚举中可以是任意的数据类型:struct, enum 等等。

定义方法

使用impl关键字可以给枚举定义方法:

1
2
3
4
5
6
7
8
9
10
enum IpAddrKind {
V4(u8, u8, u8, u8),
V6(String),
}

impl IpAddrKind {
fn call(&self) {
println!("this is the method of a enum");
}
}

Option枚举

rust中没有空值,但是存在一个表达空值的枚举, Option:

1
2
3
4
enum Option<T> {
Some<T>,
None,
}

可以只用Option定义一个可能为空的值:

1
2
let age = Some(8);
println!("{:?}", age); // Some(8)

Option的存在保证了非Option为空值,少去很多预防性的代码,同时也减少了许多因为忘了预防性代码而导致的bug

match控制流运算符

match允许我们将一个值与一系列的模式相比较并根据相匹配的模式执行相应代码。
模式可以由字面值、变量、通配符和许多其他内容构成。

1
2
3
4
5
6
7
8
9
10
11
12
match coin {
Coin::Penny => {
println!("Luck penny");
1
}
Coin::Nickel => 5,
Coin::Dim => 10,
Coin::Quarter(state) => { // 绑定值的模式匹配
println!("State quarter from {:?}!", state);
25
}
}

每个分支关联的代码是一个表达式,表达式的返回值是整个match表达式的值。

配置Option

1
2
3
4
match x {
Some(i) => Some(i + 1),
None => None,
}

可以使用_通配符来匹配其余的情况。

1
2
3
4
5
6
7
let value = 10;
match value {
1 => println!("1"),
2 => println!("2"),
3 => println!("3"),
_ => (),
};

偶然发现match中的各个分支不能返回不同的数据类型

if let控制流

如果只需要匹配一个模式的话,match显得有些冗余, rust提供了if let表达式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#[derive(Debug)]
enum UsState {
Alabama,
Alaska,
}

enum Coin {
Penny,
Nickel,
Dim,
Quarter(UsState),
}

let coin = Coin::Quarter(UsState::Alaska);
let mut count = 0;
if let Coin::Quarter(state) = coin {
println!("State quarter from {:?}", state);
} else {
count += 1;
}

如上图, if let表达式后可以有else语句。

总结

没有空值的概念还是挺新奇的,只是没有实战经验还不太确定这样的特性是不是真的对编写安全的代码有帮助。
match语句和其它语言的switch语句比较像。

在Node.js中,事件循环是实现异步I/O的关键,是必须要了解的知识。
这篇笔记是我读官方文档里关于事件循环的文章得来的。

事件循环的概念

事件循环使单线程的JavaScript实现了异步I/O操作,通过将负载交给系统内核执行。由于大多数的现代操作系统都是多线程的,能在后台执行多任务的操作。当后台操作完成后,内核(kernel)通知Node.js,这样的话回调函数就可以添加到poll队列中,直到执行完成。

阅读全文 »

Node.js中有三个和定时相关的API: setTimeout(), setInterval(), setImmediate(),他们都位于timers模块中。而且timers模块是全局模块,不需要用require导入就可以使用。

setTimeout

setTimeout()的第一个参数时一段时间后执行的函数,第二个参数多少毫秒(ms)后;但是Node.js无法保证毫秒不差,只能保证不早于设置的时间。

返回Timeout对象,可以使用clearTimeout()取消定时任务,也可以使使用unref()函数改变其行为。

阅读全文 »

周末下午没有特别紧急的事情,所以在MDN上复习了一下JavaScript数组中方法的用法,还真有一些之前不了解的点。

阅读全文 »

2015年9月份在驾校报名,但是中间因为各种理由推脱,终于在2019年3月8号拿到了驾照。用了3年半的时间,不容易啊。

阅读全文 »
0%