blob: 00de5b2d0a713a3597ee59c20550fe6d6eb0bf3d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
---
title: 稻草人周刊 Vol.16
subtitle: 为什么你说话别人不爱听
description: 黑客与画家、卡夫卡的判决、丧偶与新生、没人看写什么博客、赞美 Lua 语言、蛋挞
tags:
- 编程
- 写作
- 游戏
date: 2025-02-17 09:49:48
categories: 稻草人周刊
draft: false
toc: true
aliases:
- /posts/weekly/稻草人周刊-vol-16/
- /posts/稻草人周刊-vol-16/
---
> [!note] 🔖
> 你正在阅读稻草人周刊,一个读者的自述,每周一更新。
## 🏃 这周做了什么?
正在制作一款名叫 Heart Hunter 的电子游戏,因为画面过于简陋所以就先不放出来了。这个游戏使用 [LÖVE 引擎](https://love2d.org) 和 Lua 语言开发,如果你有编程基础,相信我,这个框架非常容易上手,Lua 语言也十分简单。

## 📚 这周读了什么?
{{< bookcard "黑客与画家" >}}
---
{{< bookcard "为什么你说话别人不爱听" >}}
---
{{< bookcard "判决" >}}
## 🔍 有趣的话题
### 死亡:丧偶与新生
有幸在 Substack 上读到一篇[丧偶母亲的自述](https://bessstillman.substack.com/p/the-year-i-didnt-survive),题目为「我没能活下来的这一年」。她的丈夫死于癌症,女儿才刚刚降临,同时处理失去亲人的悲痛和收获新生命的喜悦让她觉得「自己」的很大一部分已经死掉了,跟着亡夫一起埋进了土里,也出现在女儿的身体里。
本博客起名叫「极客死亡计划」也是想要探讨「死亡」这个话题,读完这篇文章,我才更深刻地理解到自己对死亡的认识有多么匮乏,我也更清楚地了解到,「死亡」是一个值得我花一生去认识的东西。
毕竟,到现在为止,唯一让我感到真正悲痛的死亡体验,只是在我小学的时候,我的家人杀了一只我很喜欢的鸡来吃,我现在还记得那只鸡的名字。[^2]
### 没人读还写什么博客?
> [!note] 📖
> 相关阅读:[Why Blog If Nobody Reads It?](https://andysblog.uk/why-blog-if-nobody-reads-it/)
这篇文章的作者的语气和文字风格我不太喜欢,因为他似乎刻意地夸大了某些事实,甚至过于悲观。他说写博客就是没人在乎的,就是没几个人会读的,然而,他的博客下有超过 1000 的点赞数。我有种偏见:他似乎在用夸张和偏执的语气来吸引读者的眼球,这很不讨喜。
不过,他表达的一些思想是值得学习的,他认为博客的意义在于:
1. 为未来的自己而写,让文字见证你思维的进化过程
2. 为那一两个人无意中发现你博客的读者而写
3. 对于博客文章来说,作品本身比作品获得的关注更重要
不过,我还是不赞同博客文章只为「无意中发现你博客的人」而写这个说法。据我所知,我订阅了很多有趣的博客,我的博客也有经常来访的访客。
哦对,这篇文章算是出现在 Hacker News 上的「爆款」,语气夸张地令人讨厌大概是意料之中。
## 💡 新知复盘
### Lua 语言的表
Lua 语言不直接支持面向对象编程,对象是用 `table` 和它的元表实现的;Lua 也没有数组,数组就是索引为数字的 `table`(而且不是从 0 开始,是从 1 开始的);Lua 没有枚举类型,枚举是索引为字符串,值为数字的 `table`。使用下来,我感觉 `table` 的易用性差点可以媲美 JSON。
`table` 的写法如下:
```lua
array = { "I", "am", "an", "array" }
-- 这等价于
-- array = {
-- 1 = "I",
-- 2 = "am",
-- ...
-- }
enums = {
TOP = 1, BOTTOM = 2, LEFT = 3, RIGHT = 4
}
```
要遍历 `table` 也非常方便。
```lua
for k, v in ipairs(tbl) do
-- ...
end
```
`table` 可以用来写模块,Lua 的模块几乎不需要用太多的代码来定义。
```lua
local module1 = {}
module1.variable = 1
function module1.doSomething()
-- ...
end
return module1
```
元表(metatable)是一个有点难理解的概念,它是附属于 `table` 存在的,可以用 `setmetatable()` 函数为一个表设置它的元表,元表也可以是这个表自己。元表可以用来修改算数操作(如果你用表定义了一个向量,那么你可以用元表来定义向量的 `+` 加法运算)、自定义索引规则(例如在访问一个不存在的索引时,返回一个默认值)、自定义字符串表示(类似 Java 的 `toString()` 方法),还有一些其他的控制行为。
## 🗣️ 碎碎念
- 看到有人把 Scripting Language 错译成「手稿语言」,我才意识到 Script 这个单词既是「手稿」又是「脚本」的意思。
- 试了试 [Pages CMS](https://pagescms.org),据说是可以给 Hugo 这样的静态博客做内容管理器,但它是基于 GitHub 的,一方面需要自己写 yaml 设置文件指定 markdown 文件中用到的 frontmatter,准备步骤太繁琐了;另一方面,加载实在是太慢,还不如我本地打开呢。似乎有 bug,我的一些文章会加载不出日期来,所以就算能忍耐速度也没法用。期待能变好,或者有适用于本地的版本。
- 下载视频不是刚需,但偶尔要用到的时候就会到处找在线的视频下载器,现在发现了一个叫做 [you-get](https://github.com/soimort/you-get) 的命令行工具,不占地方,试了试很好用,还能配置 cookie 下载高分辨率的视频。不过第一次用的时候找了半天没找到下载好的文件,才发现视频被直接放在命令行执行的目录下了。
- [Hacker News](https://news.ycombinator.com) 上好像有一半的帖子都在谈 AI,作为本周刊的信息源之一,它让我最近几期的周刊也填满了 AI 相关的内容。说实话,我有些厌倦了。
- 这周在写小说的时候,发现自己其实相当自我,我写的几乎是一个人的故事,或者是一个人和另一个人的对话,而且他们之间极少有深入的交流,甚至没有激烈的冲突。这大概反应了我自己待人接物的方式,但我觉得我该写点不一样的故事,兴许我故事里的人物能改变我。
- 一周追完了《人生切割术》现有的剧集,正好赶上周五更新,连着把新剧集也看完了,然后就是痛苦的等待了。可恶啊!这大概就是为什么我不喜欢追剧吧。==追剧的等待算不算给悬疑剧又增加了一丝神秘感呢?==
- 在读《绝佳时间》这本书,分明是写得很好的科普书,可我读起来忍不住打瞌睡。有可能是我本来就对生物学不感兴趣,而作者又扔了一大堆专业名词炸弹,让我难以提起兴趣。兴许写文章也一样,如果读者不全是专业人士,应该少用一些专业名词。
## 🐈

[^2]: 其实还有一次是我差点溺死,但那次只是纯粹的恐惧。
[^3]: 读书也要看人,如果你身边有不怎么爱看书,也不会说话的长辈,我其实相当推荐你让他们去读这本书。不过,这大概是不太可能的。¯\_(ツ)_/¯
|