diff options
| author | eltrac <hi@eltr.ac> | 2026-03-08 14:41:19 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-03-08 14:41:19 +0800 |
| commit | fe0bafba4a126fef9c169bfefa09201a6ea400ca (patch) | |
| tree | 66b77deef5773a56f5f962ed3b65d8ac1330203c /content/posts/weekly/58.md | |
| parent | 5ccd892f23ba9cfa7145fec7137a49eb2077a447 (diff) | |
| parent | c09ffa2e5b0db615f4a4614da7d4811616afdf4f (diff) | |
merge branch restructure
Diffstat (limited to 'content/posts/weekly/58.md')
| -rw-r--r-- | content/posts/weekly/58.md | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/content/posts/weekly/58.md b/content/posts/weekly/58.md deleted file mode 100644 index e0aaf795..00000000 --- a/content/posts/weekly/58.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: 稻草人周刊 Vol.58 -subtitle: 我们在大量的 Java 代码里发现了少量的逻辑 -tags: - - 教育 - - 开源 - - 编程 - - 游戏 - - 效率 -date: 2025-12-08T10:59:00 -categories: 稻草人周刊 -draft: false -toc: true ---- -{{< music cover="https://r2.eltr.ac/uPic/2025/12/ab67616d0000b27319f3df3565e048e6d1afc469.jpeg" title="Time is a Place (Piano Version)" artist="Kan Gao" apple="https://music.apple.com/cn/album/time-is-a-place-piano-version/1510014377?i=1510014459" spotify="https://open.spotify.com/track/5QsG0xEWblqZV1hNY8wzC5?si=9da34c21a43e4157" >}} - -去月球系列游戏《Finding Paradise》的原声带,听完之后总感觉能把我身体里让我感到不舒服的东西都安抚下来。 - -<!--more--> - -## ⋈︎ · 连接 - -这周我什么也没读!为了在坦诚的同时不显得太没诚意,这期周刊其他的内容还算丰富,希望你能找到有意思的东西。本周我还发布了一篇文章,谈了谈自己写周刊的感悟,如果你感兴趣,或者也想尝试一下这种写作形式,可以阅读《[不做信息的消费者,从写周刊开始](/essays/why-blog-weekly/)》。 - -## ⁂ · 星群 - -### MIT OpenCourseWare - -这周准备开始复习离散数学,在 Bilibili 找教学视频的时候意外发现了一套来自麻省理工学院的课程,标题是《Mathematics For Computer Science》,点进去听了第一节课就有大脑被击穿的感觉,讲得太通透了,这几乎是我第一次全神贯注地听完了一节 45 分钟的课。Tom Leighton 教授的知识功底和教学素养令人赞叹,举例和讲解涉及到的不止数学和计算机,甚至还有社会学和哲学,语流很自然,不会强迫学生互动,只注重自己的教学,但也会给发言者很真诚的反馈。还没有被投影仪、PPT 和位置签到*强奸*的大学课堂原来是这样的。 - -可惜的是,这套课程和我要复习的内容不太对得上(尽管我觉得这套课程要实用不少),只能当作日常娱乐的一部分了,听完一节课真的会嘴角上扬。我还根据视频开头的信息找到了 MIT 公开的教学资源网站,在里面可以搜到各种课程的讲义、试卷、作业资料,一些课程有视频可看。这些内容都是公开的,无需注册,可以找到不少有意思的课程。 - -访问:[MIT OpenCourseWare](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010/) - -### Ghostty - -我之前在[第 42 期周刊](/posts/weekly/42/)里分享了 Ghostty 这个跨平台且开源的终端模拟器,这几个月用下来我感觉很顺畅,是很不错的软件。这周三,[Mitchell Hashimoto](https://mitchellh.com/) 在他的博客上宣布 Ghostty 现在成为了非盈利(Non-Profit)软件。尽管 Ghostty 一直是开源免费的,但在美国的法律上,被认可的非盈利组织可以收取减税或免税的捐赠,这无疑是一件好事,对于本身就很难收到捐赠的开源软件来说更是好事。Ghostty 现在被 Hack Club 赞助,这也意味着捐赠者的钱不会到开发者本人的钱包里,而是被一个组织管理用于维持开源软件的持续开发和维护。 - -访问:[Ghostty Is Now Non-Profit – Mitchell Hashimoto](https://mitchellh.com/writing/ghostty-non-profit) - -### Bun - -Ghostty 被认可为非盈利软件,而另一边,新兴的 JavaScript 运行时和开发工具 Bun 在周二发文宣布他们被 Anthropic 收购了。Anthropic 把 Bun 当作驱动 Claude Code 和未来 AI 代码产品的基础设施。这大概也算是好事,因为 Bun 仍然是开源的,并且保留 MIT 协议,被收购之后,Bun 的维护和发布或许还会更加频繁。 - -更重要的是,JavaScript 开发者们大概是不需要担心 Bun 作为开源软件会因为资金问题而无人维护了。我想起我在[第 55 期周刊](/posts/weekly/55/)分享的开源软件 ffmpeg 和 Google 的矛盾,要是 ffmpeg 也有 Ghostty 和 Bun 这样幸运就好了,ffmpeg 作为接近底层的基础设施,反而更容易被忽略。 - -访问:[Bun is joining Anthropic \| Bun Blog](https://bun.com/blog/bun-joins-anthropic) - -### try - -一个用 Ruby 编写的命令行工具,提供了一套不错的临时文件夹的管理方案。这个软件的使用场景是,对于那些经常在本地新建文件夹测试新技术、新工具、把玩软件的人来说,这些文件夹可能散乱得到处都是,很容易找不到之前写好的代码了(尤其是在凌晨两点头脑不清醒的时候,更不容易记得自己把文件放在哪了)。 - -`try` 提供了一个集中、统一的实验目录管理工具,可以自动标注日期,能很方便地进行检索。 - - - -访问:[GitHub - tobi/try: fresh directories for every vibe](https://github.com/tobi/try) - -### Slop Evader - -一个有些激进但非常实用的浏览器插件,支持 Chrome 和 Firefox,它会让搜索引擎只显示 2020 年 11 月 30 日前收录的内容。这个日期是 ChatGPT 公开发布前的日期,只显示这个时间之前的内容能够完美规避所有 AI 生成的垃圾内容。 - -访问:[Slop Evader - Tega Brain](https://tegabrain.com/Slop-Evader) - -## ◍ · 穿越 - -### 《大楼里只有谋杀》 - -算是悬疑喜剧的类型,不是最近的新剧,已经有三季的剧情了。原名是 Only Murders in the Building,实际上是双关——在第一集,主角团在录制播客的时候,Oliver 提起另一起谋杀案,说他们可以双管齐下一起调查,但 Charles 表示反对,说了一句:No, only murders in the building(只有大楼里的谋杀)。于是这句话就成了他们的播客题目。 - -我很喜欢谋杀、推理和悬疑类的作品,即便为了制造悬念和反转,一些剧情会显得有些牵强,但无论如何,悬疑作品都很适合放松时不带脑子观看。 - -### Matt Rife: Unwrapped - -Matt Rife 是我最喜欢的脱口秀演员之一。《Unwrapped》是他今年的圣诞节专场,这场几乎没有提前写好稿的抛梗,大部分都是和观众的互动,感觉在现场看的话参与感会很强。不过 Matt Rife 的笑话都比较 Edgy,基本不会避讳种族、性别和性玩笑,所以不是所有人都能接受的。 - -虽然我已经看完了,但我觉得可以收藏到春晚的时候再看一遍。 - -## ↯ · 当下 - -### 在网站上查看 Telegram 频道 - -如果你不使用 Telegram,查看我的频道[大脑充血](http://t.me/geedeapro)可能有些困难。尽管 Telegram 本身也提供频道预览,但需要额外点击,而且我想不会有人专门点开预览模式看一个人的频道的吧。 - -发现 [pseudoyu 的频道](https://daily.pseudoyu.com/)之后,我用相同的 [BroadcastChannel](https://github.com/ccbikai/BroadcastChannel) 也搭建了一个小型的博客,支持 RSS 订阅,欢迎访问[网页版的大脑充血](https://channel.geedea.pro/)。我会在这里分享不成文的想法、见闻还有一些生活琐事。 - -### 我们在大量的 Java 代码里发现了少量的逻辑 - -这周因为要赶课程项目的截止时间,所以花了很多时间写 Java 代码。虽然项目体量不大,但在兼顾前后端的同时还要用自己不喜欢的技术栈开发,实在是很耗费精力。星期四的下午我真的感觉自己被这门语言强奸了,后来我选择订阅了 Trae,一个 AI IDE,让它完成了收尾工作(其实也不算收尾,因为用 LLM 写的话,我还要帮它收尾)。 - -用 Spring 框架做开发的大部分时间我都在创建各种实体类、Mapper 接口、相关的 SQL 注解、Service 类和 Controller 类,我知道 MVC 架构在某种程度上是最佳实践,但我实在不理解创建这么多可以用程序自动生成的模板有什么用,而且管理这么多的文件和深层的目录结构真的很耗费精力,调试的时候要从各种耦合的模块里找问题。项目的选题是定死的,本质上来讲,除了做若干个实体的增删改查之外再无别的。这种毫无创造性、全是模板代码的开发体验带来不了丝毫的成就感,我想这才是我感到精疲力尽的原因。 - -顺带一提,这周也有在继续开发 [growel](https://github.com/BigCoke233/growel),一个用 Go 编写的 Web 框架,拿来练手,这周主要支持了 Cookies、表单、JSON Body 和路由嵌套。目前可以这样用: - -```go -e.Group("/api", func(api *growel.Group) { - api.Group("/user", func(user *growel.Group) { - user.GET("/", func(c *growel.Context) { - c.JSON(200, Users) - }) - - user.GET("/:uid", func(c *growel.Context) { - uid, err := strconv.Atoi(c.Params["uid"]) - if err != nil { - c.BadRequest("Invalid user ID") - return - } - - for _, user := range Users { - if user.ID == uid { - c.JSON(200, user) - return - } - } - - c.NotFound("User not found") - }) - }) -}) -``` - -继续开发的[路线图](https://github.com/BigCoke233/growel?tab=readme-ov-file#roadmap)在 README 里有写,我打算慢慢做。我最近发现,个人项目可能更需要「细水长流」,每周能推进的量不重要,但有一直做下去就好。 - -### 去了一次桌游店 - -三个人的局,室友是为了和 crush 相处才赴约的,我倒也不是去承担什么僚机的角色,只是纯粹想出去走走,而且也好久没玩桌游了。 - -第一个桌游叫《骰子小镇 2》,卡牌构筑的玩法,花费金币建造建筑,每轮行动时玩家要掷骰子,骰子的点数可以触发建筑的效果,效果大部分是产生金币、从其他玩家那里拿取金币。游戏胜利的条件是建造三个昂贵的地标建筑,先建造完地标的玩家获胜。整理而言是比较轻松愉快的游戏,竞争元素不大,刚入门的桌游玩家也能玩得很开心。 - - - -第二个游戏我记不清名字了,包装盒上写的好像是 Survive the island 之类的。每个玩家选择一个颜色的小人,轮流把它们摆放在岛屿上,游戏的目的是从岛屿上救回尽可能多的小人到岸上,同时也可以阻止其他玩家救援。每个小人有不同的分数,开始前可以记忆自己把高分的小人放到了哪里,但是游戏正式开始之后就不行了。每轮玩家行动时有三个操作:一、分配三次步数,移动小人或船只,同时可以使用技能卡;二、拆掉一个沿海地块模拟岛屿沉没的过程,拆掉的地砖可能会生成怪物、船只,也可能成为技能卡收入囊中;三、投掷一次怪物骰子,移动对应颜色的海怪,可以将怪物放得离自己的小人远一点,也可以去陷害别人。这应该是三个里面我最喜欢的游戏。 - -{{< gallery >}} - - -{{</ gallery >}} - -最后一个是花砖物语(原名 Azul,BoardGameGeek 上有[这个游戏的页面](https://duckduckgo.com/?q=boardgame+azul&ia=web)),玩法和记分规则都有些复杂,玩了一轮之后才搞懂,这里就不赘述了。大概得玩法是每个人轮流按照规则拿取砖块,场上的砖块拿完之后开始放置砖块并计分,根据临近的砖块数量和摆放方式,分数会有所不同,有一位玩家放满了一行游戏就结束了——不过我们搞错了规则,几乎是每个人都要放满了才结束的。其实是很有意思的玩法设计,多玩几轮之后大概就能体会到爽点了。 - -{{< gallery >}} - - - - -{{</ gallery >}} - -另外,我见识到了室友在心上人面前的奇怪的新版本,挺神奇的,当晚还被迫跟着他护送女生回家,我在后面看着他努力的样子还挺无奈的。 - -### 我的手机里空无一物 - -本来想换一个手机壁纸,打开设置界面的时候觉得选图太麻烦了,仔细一下自己很少有正事需要在手机上完成,不需要用好看的壁纸来提供情绪价值,于是我直接改成了黑色背景,顺便调整了主屏幕的布局,把不得不用的微信、钉钉之类的应用收进 Dock 栏的一个文件夹里,播客、音乐、RSS 阅读器等自己想看的信息源放进另一个文件夹,主屏幕上最显眼的位置放上当天的屏幕使用时间统计、一些健康和运动相关的 App 以及必要的记账、日历、备忘录等工具。图表也顺带调成了透明的玻璃样式,失去色彩之后,应用图标也就失去了一定的吸引力。 - -{{< gallery >}} - - - - -{{</ gallery >}} - -下午锻炼的时候换了衣服,顺带把手机放在了卧室里,结果一直到晚上才想起来,看来跟手机戒断得还算不错。 |
