Weekly#23

周天天气还不错,和女朋友一起出门散步买咖啡,路过了彩票店,想着买着玩玩,没想到中了 100,小赚 50 元,俩人都开开心心。

这周应该不少人都请假回家了,我要工作完这周才能回去。所幸离家不远,打车也就一个多小时的时间。

如果没啥事,下周我应该还是会整理一些看过的内容,或许内容不会那么多。

你过年计划做点什么呢?

我或许会花点时间回顾 2024,整理一下 GTD 和笔记,立一些新年的目标,见见那些很久不见的朋友。

新的一周开心呀,best wishes ヾ(´∀ ˋ)ノ

News | Article

Browser adaptation

为什么要改变故事?

  • 接触新受众。有些受众不会使用某些媒介。用不同的媒介呈现故事,就能接触到这些人。
  • 用不同的眼光看同一个故事。不同的媒介以独特的方式传递信息,创作者通过独特的视角演绎同一个故事。改编作品能让观众与故事建立更深的联系,丰富他们对原著的理解和欣赏。

每种媒介都有优缺点。书籍可以有效传达人物的思想,而电影则很难做到这一点。

另一方面,电影擅长传达事物的外观,这也是书籍无法做到的。

作者认为网页是讲故事的一种不错的媒介,也有它的特点。

例如,网页上可以增加图片,交互,音频,2D / 3D 的呈现,让故事更丰富,以更直观的方法传达信息。

“如果信息以正确的形式,正确的界面出现,人类大脑可以吸收和处理大量的信息。”。

Source

Why is my CPU usage always 100 (Upgrading my Chumby 8 kernel part 9)

作者定位 Chumby 8 上 CPU 占用率总是显示为 100% 的问题的过程。

虽然对细节不太了解,但是作者这一路寻找问题端倪,最终解决问题的过程也挺有趣的。

文章的写作可以学习。

How to know when it's time to go

什么时候该辞职,重新出发?作者给出了一些建议:

  1. 工作中过于舒适,只是在出卖时间,而没有成长,无法提高自身的能力和价值,没有乐趣,也无法让你找工作中得到优势。
  2. 周围的人都变蠢了,随着职业发展,最终会到达一个无法胜任的位置,其他人也是,可能会发现共事的人是草台班子,共事的人不够优秀。
  3. 如果自己一直处于一个不在其位的状态,一个是会不开心,因为能力达不到,得不到成就感;另一个是,当再次找相同职级时,可能会发现不符合别人对于职级的要求。

而真的要离职的时候,作者建议:

  1. 提前沟通好,不要太突然,导致上司尴尬,因为这样对自己没有好处。

    首先要说的是,你的离职不应该让你的团队领导或直线经理感到惊讶。

    这会让他们在职业上感到尴尬——他们应该知道自己下属的情况——而没有必要这样做。

    实际上,你希望得到他们的善意,理想情况下是以良好的推荐信的形式,因此你应该尽一切可能来顺利过渡这个潜在的困难时期。

    特别是,你应该给你的老板一个改变你想法的机会——或者至少,让他们感觉他们有这个机会。

    隐忍着私下的怨恨多年,同时每周告诉你的老板一切都很好,然后突然离开他们,这样是没有好处的。

    相反,你应该确保如果你对某件事感到不满,你的老板几乎在你知道的第一时间就知道。

  2. 拒绝离职面谈,不要离职时各种吐槽。

    公司有时会要求你参加“离职面谈”,通常被呈现为一个信息收集的活动,你可以在其中诚实地反馈你的工作经历以及离开的原因。

    有时他们会询问一些建议,以帮助改善留任员工的工作环境。听起来无害,对吧?

    这是一个陷阱。不要同意进行离职面谈:这对你没有好处,因为你反正要离开。事实上,这甚至可能对你造成伤害。

    一旦你开始讲话,就有可能说得太多,倾诉你最深的挫折和批评。这可能会损害你与公司及相关人员的关系。

    相反,只需礼貌地拒绝离职面谈或任何其他反馈请求。他们不能强迫你回答任何问题。

    如果你觉得无法拒绝,那么就给出一些平淡的回答,比如“我想不起来什么”。

Standard Patterns in Choice-Based Games

游戏中往往会有很多任务,选择了不同的任务,会有不同的剧情发展。

文章总结了这种任务分支的模式。

in the belly of the MrBeast

一篇关于 MrBeast 的分析文章,作者认为 MrBeast 是 “YouTube 机制最自豪的产物”。

你在社交媒体上消费的内容,观看 YouTube、电视、玩游戏等,我称之为你的信息饮食。

Chris Tyson(我们的第一位订阅者和视频中的那个人)是信息饮食完美运用的绝佳例子。

这个家伙真是太搞笑了。我一生中从未遇到过能像他那样让人发笑的人,直到我和他一起生活了几年,我才明白他为什么这么擅长。

这个家伙看了大量的卡通和愚蠢的东西。他的眼睛存在的目的就是吸收大量搞笑、愚蠢和让人脑袋麻木的内容。

Source

所读所见所感所为,会塑造一个人。

如果你仔细想想,最好的书其实就是极其漫长的咒语,它们会让你在余生中变成一个不同的人。

Jonathan Edward Durham

The best laptop ever

作者认为他买的丐版 MacBook Air 是他用过最好的电脑。

我不需要最新最好的。我只需要一个能用的工具。我的 MacBook Air 正是这样,它是有史以来最好的笔记本电脑。

我的手机也有 6 年没有换过了,背壳稀烂,电池用量也撑不了很久,但它依然能满足我所有的日常使用,只要它不是完全用不了,应该还能撑到第 10 年。

Why does Cloudflare Pages have such a generous Free tier?

Cloudflare 免费版本的带宽竟然是无限的!

我现在用的是 Netlify,浏览我网站的人不多,暂时没有带宽用完的担心。

我追求就是方便部署和能够快速响应网页的访问,如果有更好的平台,欢迎推荐~

The 46 Best Pens for 2025: Gel, Ballpoint, Rollerball, and Fountain Pens

一些好用的笔的推荐。

好久没有用笔来写字了,Lamy 的钢笔不错,不是很贵,书写起来也很顺滑。镂空的笔身还能看到墨水是否用完了。

Nobody Cares

算是一篇作者的牢骚吧,但生活中也是碰到很多类似的事情,别人根本不在乎你是怎么想的,是什么样的。

就像我住的楼下,总有人不把垃圾丢到垃圾收集点,而是放到门口,他们才不在乎你怎么想,自己方便就行,影不影响卫生,他们才不管。

我改变不了别人,我能改变的只有我自己,我可以选择做什么,我希望我成为一个会在乎一些事情的人,而不是那些对很多事情很不在乎,给人造成困扰的人。

我也可以选择和那些在乎的人一起生活和共事,而不是那些不在乎的人。

Always Go To The Funeral

作者的父亲叫她总是去参加葬礼,因为参加葬礼,可以给失去至亲的人带来一些安慰。

“总是去参加葬礼”意味着当我真的、真的不想去的时候,我必须做正确的事情。

当我可以做一些小的举动,但我并不真的需要这样做,而且我绝对不想去的时候,我必须提醒自己。

我说的是那些对我来说只是麻烦的事情,但对别人却意义重大。

你知道的,那些痛苦地缺席的生日派对。在欢乐时光期间的医院探访。为我前任的一个叔叔的悼念电话。

在我平淡无奇的生活中,日常的斗争并不是善与恶的对抗。根本没有那么史诗般。

大多数时候,我真正的斗争是做好事与无所作为之间的斗争。

在参加葬礼时,我逐渐相信,虽然我在等待做出一个伟大的英雄举动,但我应该坚持那些小的不便,让我能够分享生活中不可避免的偶尔灾难。

Source

Very Wrong Math

FaultyFlightTimes.png
图1  来自 Facebook 的航班时间图片

咋一看图片好像挺有道理的,认为飞机飞得越高,飞过的弧长越长,需要的时间越长。

但是按照公式实际计算,会发现如果图上的结论成立,地球的半径只有约 1.5 米,而实际上地球的半径约为 6371 千米。

按照地球实际半径画图的话,两条弧长相差不足 1%,而高空中空气阻力小,说不定速度还会更快。

这提醒我在网上冲浪的时候要思考和辨别,不要人云亦云,自己不懂的就不要随意传播。

错误信息和虚假信息之间的区别在于无知和恶意之间的区别。

Source

一个副业应用的开发心得

可以了解一下开发一个应用需要注意的事情。

一个副业应用的开发心得,本文介绍一个副业的应用定位、收费模式、申请软著、上架商店、素材版权、收集反馈、账号体系、集成支付、宣传推广、统计分析等内容。

Tutorial

The DevOps engineer’s handbook

DevOps 的工程师手册。

octopus-devops-infinity.png
图2  DevOps 生命周期: 计划,编码,构建,测试,打包,发布,部署,操作,监控。不断重复以上的步骤。

FFmpeg By Example

通过例子学习 FFmpeg 的使用。

Learn Yjs by Jamsocket

Yjs 是一个 CRDT(Conflict-free Replicated Data Types) 实现,CRDT 主要用于那些实时协作工具上。

这个教程是一个交互式的教程,教你如何使用 Yjs。

The 2025 AI Engineering Reading List

Latent Space 在人工智能工程的 10 个领域中挑选了 50 篇论文/模型/博客:LLMs、基准测试、提示、RAG、代理、代码生成、视觉、语音、扩散、微调。

入门 AI 的一些不错的资料。

Path to LLMs

文章作者尝试从了解一点机器学习到理解最先进的语言模型的最短路径。

它包括了里程碑论文和作者找到的理解一个概念的最佳资源。

作者喜欢了解事物的历史,所以会有一些论文可能仅仅具有历史意义。

HardBreak - Hardware Hacking Wiki

HardBreak 的目标是将关于硬件黑客/物联网黑客的知识集中在一个地方。

虽然有许多关于硬件黑客的优秀博客,但在不同格式的多个博客中搜索所需信息是一种相当不愉快的体验。

HardBreak 旨在将所有信息组织在一个可访问且易于使用的平台上。

自洽的程序员

这本书教你解决工作过程中碰到的焦虑、倦怠、迷茫、抑郁等情绪,聚焦于解决具体问题,通过改变认知将自己从负面情绪的泥淖中走出来,做到更坦然,真诚的面对自己的内心,成为一个自洽的程序员。

Writing Compilers

作者鼓励程序员去学会编译原理,编写编译器,并提供了一些学习资源。

一些理由:

如果你不知道编译器是如何工作的,那么你就不知道计算机是如何工作的。

如果你不确定自己是否知道编译器是如何工作的,那么你就不知道它们是如何工作的。

Source

不要成为一个模板化的程序员。相反,为用户和其他程序员构建工具。

回顾纺织和钢铁行业的历史:你想要制造机器和工具,还是想要操作那些机器?

Source

Oh Shit, Git!?!

一些常见的 Git 场景,以及如何用对应的 Git 命令解决。

Accessibility essentials every front-end developer should know

这些是我认为每个前端开发者在构建组件时应该使用的工具和原则。

无障碍设计不是一个单独的任务,待会再处理,而是应该从一开始就成为你开发过程的一部分。

作者分享了一些实现无障碍需要注意的原则。

HTML & CSS for Absolute Beginners

一套 YouTube 上的课程,涵盖了 HTML 和 CSS 的基础知识,教你如何搭建一个网站。

Code

Running animations without keyframes

不用 @keyframe 也可以实现 CSS 动画,那就是用 @starting-style,它可以定义一个初始的 CSS 状态,结合 transition 就可以实现动画。

<style>
  body {
    padding: 2rem;
  }
  .box {
    width: 200px;
    aspect-ratio: 1;
    background: conic-gradient(in hsl longer hue,red 0 0);
    border-radius: 30px;
    transition: 60s linear 1s; /* duration easing delay */
    rotate: 0turn; /* To (can be removed as it's the default value) */
    @starting-style {
      rotate: -20turn; /* From */
    }
  }
</style>

<div class="box"></div>

如果你看到这里的时候,demo 中的方块不会转动,你可以刷新一下页面,因为 transition 的 duration 只有 60 秒,很可能你看到这里的时候已经结束了。

Code reviews: A success story

严格的 Code Review 往往能提高代码的质量,而随意的 Code Review 可能无法发现问题,流于形式主义。

Code Review 过程中也可以学习对方的实现思路,设计,方法等,也能助长自己的成长。

我所在的公司里,Code Review 更多是开会,大家分享某些功能是如何实现的,而不会细致地看每一行代码。

我觉得这是不足够的,会议上时间有限,无法 review 所有改动代码,就可能存在一些漏网之鱼,最终导致问题出现。

我更倾向于向 GitHub 一样的 Pull Request 的 Code Review 方法。

Split Out Unrelated Changes

拆分无关更改,和原子化提交的概念挺像的,要求改动/提交尽可能小,但要完整。

使用原子 Git 提交意味着您的提交是尽可能小的。每个提交只做一件简单的事情,可以用一句简单的话来概括。

代码更改的数量并不重要。它可以是一个字母,也可以是十万行,但你应该能够用一句简单的短句来描述这个变化。

Source

作者给出了一些建议:

  • 与其提交一个解决多个问题的拉取请求,不如为每个问题单独提交一个拉取请求通常更好。
  • 将影响代码逻辑的更改与仅影响布局、格式或样式的更改分开。

David A. Wheeler's Review of Debugging by David J. Agans

一些 debug 的建议:

  1. 理解系统 : 阅读手册,深入阅读所有内容,掌握基础知识,了解路线图,熟悉工具,并查阅细节。
  2. 重现问题 : 再次尝试,从头开始,触发问题而非模拟问题,找到导致间歇性问题的失控条件,记录一切并找出间歇性问题的特征,不要过于依赖统计数据,知道“那种情况”可能发生,永远不要丢弃调试工具。
  3. 停止猜测,观察数据 : 先获取数据,不要基于猜测进行复杂修复。观察问题,关注细节,内置工具,添加工具,不要害怕深入,注意海森堡效应(观察影响结果),猜测仅用于聚焦搜索方向。
  4. 分而治之 : 通过逐步逼近缩小搜索范围,确定范围,判断问题的位置,使用易于识别的测试模式,从问题点开始,修复已知问题,先解决干扰因素。
  5. 一次只改一个变量 : 隔离关键因素,抓住核心问题(在修复前先理解问题),一次只修改一个测试,与正常情况进行对比,确定自上次正常工作以来的变化。
  6. 记录审计日志 : 写下你做了什么、按什么顺序做的以及结果如何,理解任何细节都可能是关键,关联事件,认识到设计中的审计日志对测试也有帮助,记录下来!
  7. 检查基础 : 质疑你的假设,从头开始,测试工具。
  8. 获取新视角 : 寻求新的见解(即使向人偶解释问题也可能有帮助!),借助专家意见,倾听经验之谈,知道帮助无处不在,不要自负,报告症状(而非理论),并意识到你不必完全确定。
  9. 如果没修好,那就是没修好 : 确认问题确实已修复,确认是你的修复起了作用,知道问题不会自行消失,修复根本原因,并改进流程。

我觉得第 3 条 “停止猜测,观察数据” 是不错的建议,有时定位问题,容易陷入猜测中,而不是观察数据,找到复现方法,要有充足的证据,证明找到了问题的根因。

其次,“记录审查日志” 也是不错的建议,不然操作步骤多了,可能会遗漏了那些关键的触发问题的步骤。

A checklist for your `tsconfig.json`

了解 tsconfig.json 常用配置项的作用。

Everything You Need to Know About Node.js Type Stripping

NodeJS 23 默认支持 TypeScript 了,如果你对里面的技术细节感兴趣,可以看看这篇文章。

The :empty pseudo-class in CSS

可以使用 :empty 选中没有子元素的元素。

Misleading Icons: Icon-Only-Buttons and Their Impact on Screen Readers

页面上的按钮只有一个图标,导致一些需要无障碍的人搞不明白按钮的作用。

文章给了 2 种方法添加无障碍支持。

:hover > :not(:hover), sorry not sorry

常见的 hover 效果是突出 hover 的元素,可能是变颜色,改变大小等。

另一种办法是降低非 hover 元素的样式,也能突出 hover 元素,这样的效果感觉更好,更突出。

<style>
ul {
  @media (hover) and (prefers-reduced-motion: no-preference) {
    & > li {
      transition: opacity .3s ease;
    }

    &:hover > li:not(:hover) {
      opacity: .25;
    }
  }
}
</style>
<ul>
  <li>Apple</li>
  <li>Banana</li>
  <li>Orange</li>
  <li>Mango</li>
  <li>Pineapple</li>
  <li>Strawberry</li>
  <li>Blueberry</li>
  <li>Grape</li>
  <li>Watermelon</li>
  <li>Peach</li>
</ul>

Balancing Text In CSS

关于 text-wrap: balance; 的详细介绍,交互式的例子很好。

text-wrap: balance; 可以一定程度上提高文字排版的美观性。

Custom dropdowns just got a whole lot easier (finally!) (4:32)

Customizable <select> element 这个提案建议支持 <select> 实现自定义内容。

我觉得很棒的一点是,对于 HTML,你可以自由使用这些新的功能,如果旧的浏览器不支持,也只是回退到原来的 <select> ,而不会影响用户进行选择。

这种容错性的设计真棒,推荐看看 Resilient Web Design

Adam Wathan on "Designing a Component Library" | Laracon US 2024 in Dallas, TX (45:16)

作者用纯 CSS 解决了不少平时开发中碰到的麻烦点,通过将类名作为 props 传入组件,得到了对组件更灵活的配置,推荐看看作者的用法。

视频中看到作者用到 isolation 解决了 zIndex 的问题,之后可以试试。

视频中还用到不少新的 CSS 功能,如 :has, subgrid,解决了一些问题。

作者还带了 6 岁的女儿过来听他的演讲,最后邀请大家给她女儿一起唱生日歌,真有爱(゚∀。)

CSS Popover + Anchor Positioning is Magical (20:43)

Popover and Anchor Positioning 的实践,包括如何使用,如何处理 popover 的溢出,如何处理 popover 显示隐藏的 transition 效果。(也用到了 @starting-style

Cool Bit

Stimulation Clicker

一个点击游戏,页面上只有一个点击按钮,随着你的点击次数越来越多,可以解锁很多东西。

这个游戏非常上头,答应我,一定要玩玩看!!!(ノ>ω<)ノ

一个小小的剧透

如果最后你选择去海边,游戏就结束了,但是你可以收获你的宁静(゚⊿゚)

作者做的其他东西也挺有趣的。

Stories from the Internet

一些互联网的趣闻。

无法发送超过 500 英里的邮件 这个应该很多人都有看到过吧。

A Story About ‘Magic' 也挺有趣的:

几年前,我(GLS)在麻省理工学院人工智能实验室的 PDP-10 机柜里闲逛时,注意到一个小开关粘在一个机柜的框架上。

显然这是一个自制的装置,是实验室的一个硬件黑客添加的(没有人知道是谁)。

你在不知道开关作用的情况下,不会去触碰电脑上的未知开关,因为你可能会导致电脑崩溃。这个开关的标签非常不清楚。

它有两个位置,金属开关本体上用铅笔潦草地写着 “magic” 和 “more magic”。开关处于 “more magic” 位置。

我叫了另一个黑客过来看看。他也从未见过这个开关。仔细检查后发现,这个开关只有一根线连接到它!

这根线的另一端确实消失在计算机内部的电线迷宫中,但电的基本事实是,开关不能做任何事情,除非有两根线连接到它。

这个开关一侧连接了一根线,另一侧没有线。

很明显,这个开关是某人的愚蠢玩笑。我们被说服认为这个开关是无效的,于是我们翻动了它。电脑立刻崩溃了。

后来还有不少人尝试打开开关,毫无意外,都导致电脑崩溃了。

这周开发的时候,我也碰到一个类似 “magic” 的事。

有个组件里 import 了一个依赖,紧接着是一句 conosle.log 将依赖打印,我全局搜索了代码库,没有任何使用这个依赖的地方,于是我就移除了,因为看起来没什么用。

但是测试时发现,下拉框搜索失效了,原来这个依赖是用来将汉字转换成拼音的,它直接修改了原型链,往 String 上添加了方法。

尽管搜索依赖的名称看不到相关引用,但实际是对代码有影响的。

这提醒我不能随便移除代码,光是搜索代码仓库还是不够的,要了解一下删除的东西是什么。

the Free Movie

这是一个项目,每个人都可以参与绘制一帧画面,然后所有画面组成一部电影。

30535 只 “工蜂” 聚集在一起,以手绘/群众剽窃(crowd-pirated)/逐帧的方式再现了整部《蜜蜂电影》。

由此产生的免费电影是一个自由的产物,属于创造它的人群。

混乱的、不连贯的、欢乐的,这些画面记录了许多人为了一个共同的目标而团结在一起。

挺有趣的,下一部电影是复刻《沙丘》,感兴趣也可以参与进去~

Fluid Simulation Pendant

流体模拟吊坠,LED 灯像是流体一样运动,酷。

Snake

A minimal snake in assembly.

https://donno2048.github.io/snake/

这是一款为 DOS 制作的 x86 蛇形游戏,但也有一个不需要 BIOS、引导加载器或操作系统的版本。

一个看起来很简单,很复古的贪吃蛇游戏。

Nintendo Switch 2 – First-look trailer - YouTube

Switch 2 准备要发售啦!!!期待 (ノ>ω<)ノ

还有人在这之前,往 Switch 1 里集成了 AI

Anna's Archive

Anna's Archive 是一个针对影子图书馆的搜索引擎,自称为“人类历史上最大的真正开放图书馆”,并表示其目标是“编目所有存在的书籍”和“追踪人类在通过影子图书馆使所有这些书籍易于获取方面的进展”。

它由化名为 Anna 的人于 2022 年执法部门关闭 Z-Library 后不久推出。

该网站聚合了来自多个主要影子图书馆的数据,包括 Z-Library、Sci-Hub 和 Library Genesis,以及其他来源。

他们最近计划可视化所有的 ISBN 数据,并且在征集代码实现,如果你感兴趣的话可以参与,有奖金。

Cosmos Keybaord

高度定制的键盘,可以用手机扫描手,得到贴合手型的键盘;还可以添加各种零件。

Tool | Library

TabbyML/tabby: Self-hosted AI coding assistant

Tabby 是一款自主托管的人工智能编码助手,是 GitHub Copilot 的开源和内部部署替代方案。

STORM

一个由 LLM 驱动的知识策展系统,研究一个主题并生成带有引用的完整报告。

感觉用来做论文研究之类的挺好的。

jdecked/twemoji: Emoji for everyone.

一个简单的库,提供跨所有平台的标准 Unicode 表情符号支持。

driver.js

一个轻量级、无依赖的原生 JavaScript 引擎,用于引导用户了解页面操作。

Umi-OCR 文字识别工具

OCR software, free and offline. 开源、免费的离线OCR软件。

支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。

内置多国语言库。

glicol

Glicol( "graph-oriented live coding language" , “图形导向实时编码语言” 的缩写)是一种计算机音乐语言,其语言和音频引擎均使用 Rust 编程语言编写。

鉴于其低级特性,Glicol 可以在许多不同的平台上运行,例如浏览器、VST 插件和 Bela 板。

Glicol 的合成器般的语法和强大的音频引擎也使得在实时中结合高级合成器或音序器控制与低级样本精确音频合成成为可能。

Arnis

可以将你选中的地点,转换成 Minecraft 的世界。

Comic Mono | comic-mono-font

一种易读的等宽字体……你从小就被训练去识别的那种字体。

Open Props UI

The UI library of the future (or now, with feature flags).

使用一些较新的浏览器特性实现的组件库。

barbar.js

Barba.js — 也称为 Barba — 是一个小型(压缩后为 7kb)且易于使用的库,帮助您在网站页面之间创建流畅平滑的过渡。

它使您的网站像单页应用(SPA)一样运行,并帮助减少页面之间的延迟,最小化浏览器的 HTTP 请求,并增强用户的网络体验。

官网就是它的 demo,过渡效果确实不错。

chess.js

一个用于国际象棋走法生成/验证、棋子放置/移动以及将军/将死/平局检测的 TypeScript 国际象棋库。

file-type

检测文件、流或数据的文件类型的 JS 库。

Explore Agent Recipes

探索常见的代理配方,提供可直接复制的代码,以改善您的 LLM 应用程序。

这些代理配方主要受到 Anthropic 文章的启发。

一些话

“Having Friends in HR Is Fine, but HR Is Not Your Friend”

人力资源部门存在的目的是代表公司的利益,而这些利益与员工之间总会有一定程度的分歧。

了解自己的权利是有必要的,因为你的人力资源和法律团队不会为你做这些。

这并不是说你的人力资源团队是坏人。他们几乎肯定不是。他们只是在做他们的工作。

但不要忘记他们的工作是什么,而不是保护你的利益,所以确保在桌子上有一个保护你利益的人。

IP Addresses through 2024

看起来,耗尽剩余未分配的 IPv4 地址池的过程与向 IPv6 过渡的过程一样漫长。

Source

更一般地说,我们正在目睹一个行业不再将技术创新、开放性和多样化作为其主要扩展手段。

NATs 在 IPv4 中的广泛使用将互联网的技术基础限制为一种非常有限的简单客户端/服务器交互模型,使用 TCP 和 UDP。

NATs 的使用迫使交互变为客户端发起的交易,而开放网络的模型以及在通信方式上具有相当灵活性的特性在今天的网络中不再得到维持。

现有企业正在巩固其地位,而创新和企业精神则在我们经历这场漫长的 IPv4/IPv6 过渡期间退居次要地位。

Source

Some things to expect in 2025

最终,全球的敌对情绪将在我们的社区中显现出来。

整体来看,世界似乎并没有朝着和平的方向发展;即使新的冲突没有出现,现有的冲突也足以影响开发社区。

来自不受欢迎地区的开发者可能再次发现自己被排除在外,无论他们对自己政府或雇主的恶行是否有任何个人责任。

Source

Things I got from specific people

有时候,我惊讶于我认为在生活中至关重要的事物——那些构成我身份的一部分——可能从未找到过我。

只有通过偶然的机会,我才了解到这些事物。人们恰好进入我的生活,向我介绍了这些我所爱的事物。

我觉得提到其中的一些可能会很有趣。我在这里沉浸在一点怀旧之中。

但这没关系。当你拥有自己的博客时,你可以做你想做的事只需发布

Source

2,000-year-old wine and the uncanny immediacy of the past

好吧,因为我们这个物种最大的盲点之一是对 1000 多亿个生活在我们之前的人类生活缺乏想象力。

我发现我的学生往往将过去视为伟大的艺术作品和伟大的历史人物——例如,将整个 16 世纪简化为科尔特斯君主论蒙娜丽莎

我不能真正责怪他们以这种方式看待过去。

历史经验往往被保留下来——当然也往往被教授——作为一系列著名文化产品,这些产品作为更大故事的转喻。

三千年的古埃及通过大金字塔和图坦卡蒙的死亡面具而具象化;明朝则模糊成一片青花瓷;整个伊丽莎白时代的英格兰主要是从一个名叫威廉·莎士比亚的人的独特视角被记住。

这种“转喻方法”老实说对教学非常有帮助。我在我的世界历史课程中一直使用它。

但它并没有真正捕捉到过去日常生活的质感。

正因为这些作品如此卓越——因此研究得如此透彻——我们往往将它们视为模糊的“人类文化遗产”的一部分,而不是特定时间和地点的具体产物。

这些普通生活的幽灵痕迹做到了连最伟大的艺术作品也无法做到的事情。

它们提醒我们,过去不仅仅是名人和重大事件的游行。

它是由那些喝酒、吃面包、使用工具和走在地毯上的人们所构成的,正如我们现在所做的。

Emacs

  • Emacs Users: I'm Okay, I Promise

    作者从 Emacs 转到 Vim 的原因,主要是 Emacs 导致了他出现了重复性劳损,所以转向了 Vim。

    Emacs 被设计为可扩展的编辑器。

    当你的工作需要的不仅仅是一个编辑器时,Emacs 就成为了一个超越编辑器的工具。

    Vim 的设计只为做好一件事:编辑。不过,为了弥补对功能的狭隘关注,Vim 非常善于与邻居友好相处,并与其他工具挂钩。

    Source

    也许从编辑器内部开始并从那里发展起来的想法是 Emacs 在程序员中如此受欢迎的原因。

    就像现代汽车一样,Emacs 最初是一个简单的汽车,就像福特 T 型车。

    它最初只是一个编辑器,就像 T 型车只是一个带有自推进轮子的盒子。

    随着时间的推移,福特和 Emacs 都增加了功能:汽车的空调、电气和娱乐系统,Emacs 的编译器和外壳。

    最后你得到的是一辆房车:一种可以做任何事情的车辆,包括有一个厨房水槽。

    Source

    Vim 设计得很好,可以在其他环境中工作。就像汽车的演变一样,它也在发展,但仅限于某个程度。

    Vim 并没有发展成房车,而是发展成了一辆皮卡车。它成为了一个可以添加到更大生态系统中的东西。

    如果你需要房车,你可以在车斗里放一个露营车,或者可以在后面拖一个第五轮拖车。

    Vim 展现出的灵活性和与其他工具的松散耦合吸引了 Vim 用户。

    Source

  • 谁是你的 Emacs 领路人?

    我最开始是用的 VSCode,后来对 Vim 比较感兴趣,就先在 VSCode 装了 Vim 插件用了一段时间,又转到了纯 Vim。

    一直听说 Vim 和 Emacs 之争,也是想尝试点新鲜的东西,就换到了 Emacs 阵营,从 2019 年用到了现在。

    入门的时候是看的 Master Emacs in One Year,现在也会自己改一下配置用用。

    博客也是在 Emacs 中编写,构建的

  • Recursive project search in Emacs (17:56)
  • Taking control of your life with org mode

    可以看看 org-mode 的使用,或许你会感兴趣试试 Emacs?

  • 2025-01-13 Emacs news

多媒体

Music

叶喜儿的专辑《惫忘录》的封面,蓝色的背景,叶喜儿穿着白色的衣服,红色的袜子和鞋子站在左边,眼睛被蓝色的涂抹遮盖

这周推荐叶喜儿的《惫忘录》,这是和丁世光合作的专辑。

上周推荐过丁世光的《神经志》,如果你对比这两张专辑的第一首歌,会发现它们听起来的感觉很像。

因为《神经志》也是丁世光和叶喜儿合作完成的,他俩原来是一对 ♥ 。

惫忘录整张专辑我都很喜欢,其中《火箭》这首我在好久以前就听过了,只是当时没有听专辑的习惯,遗漏了专辑里其他好听的歌。

》的歌词和旋律我都很喜欢:

像是有某种记忆

无声中的变换

有时泛滥 有时干旱

时间冲上岸

总有湿搭搭的遗憾

你为我的放肆

写下最美好的修辞

Author: Spike Leung

Date: 2025-01-20 Mon 00:00

Last Modified: 2025-01-20 Mon 09:17

License: CC BY-NC 4.0