# 科技爱好者周刊（第 297 期）：饮水鸟玩具

这里记录每周值得分享的科技内容，周五发布。

本杂志[开源](https://github.com/ruanyf/weekly)，欢迎[投稿](https://github.com/ruanyf/weekly/issues)。另有[《谁在招人》](https://github.com/ruanyf/weekly/issues/4204)服务，发布程序员招聘信息。合作请[邮件联系](mailto:yifeng.ruan@gmail.com)（yifeng.ruan@gmail.com）。

## 封面图

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041107.webp)

香港中环布置了两百多个3米～5米的“发光蛋”，一部分在陆地上，一部分漂在海上。一到夜晚，它们就发出不同的光色与声效。（[via](https://www.sohu.com/a/766773393_123753)）

## 饮水鸟玩具

前几天，我看到有人介绍“饮水鸟”玩具，心痒痒，就从网上买了一个。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041303.webp)

价格很便宜，十几元人民币。到手以后，我玩了一下，觉得很有意思，分享给大家。

它是一个物理学玩具，有点像永动机，只要把鸟头按到水杯里，让鸟嘴碰到冷水，它就会一直弹起、倒下、弹起、倒下……

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041304.webp)

我买的那个，这样运动了一天一夜，都没有停。

更有意思的是它的原理，你想不到可以这样用。

首先，去掉那些故意迷惑人的外部装饰，它就是一个密封的异型玻璃容器。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041305.webp)

两头是圆球，中间由一根玻璃管相连，下部装了一些易挥发的液体（比如二氯甲烷、乙醚、酒精）。

鸟嘴被毛毡包裹，保证冷水会充分附着在上面。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041807.webp)

遇到冷水以后，由于水温低，以及水份蒸发带走热量，使得容器上部的气压下降，下部的气压就会大于上部。

下部的气压就会压着液体，让它顺着玻璃管上升，被压入上部。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041808.webp)

随着液体流入，鸟头越来越重，最终倒入水中，再次变成饮水的姿势。

鸟身倾斜以后，玻璃管在鸟尾的一端就会露出水面，从而玻璃管两端的气压就会变得相等。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041809.webp)

由于重力的作用，上部的液体重新流回下部，从而鸟头再次弹起。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041810.webp)

这个过程会一直重复下去，只要冷水使得上部与下部之间存在温度差。**本质上，饮水鸟是一个热机，不需要其他动力，靠温度差驱动。**

我觉得，这真是热量转换为能量的一个绝佳演示。但是，除了这个玩具，没听说过有其他的实际应用。

我倒是看到过[一篇报道](https://www.cnn.com/2024/03/14/climate/drinking-bird-energy-power-gadgets-climate-intl/index.html) ，有人[提出](https://www.cell.com/device/fulltext/S2666-9986(24)00108-X)，将饮水鸟做成发电机，利用温度差发电。虽然我猜测，发电效率一定很差，但如果实现了，一定很有趣。

## 掘金动手实验室：HarmonyOS 活动

“掘金动手实验室”是一个以“参与”为特色的技术活动，联合厂商，为开发者提供一个实践与创新的平台。

这一次，**它邀请了华为鸿蒙团队，让大家提前接触 HarmonyOS NEXT 系统**，对鸿蒙和手机应用开发感兴趣的同学，不要错过了。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041706.webp)

本次活动面向所有业内人士，开发者、设计师、产品经理都可以参加。你不仅可以了解 HarmonyOS NEXT 的新特性 ，跟官方团队面对面，**还有动手实操的机会**。

活动的下半场，会分组进行头脑风暴，看看什么创意可以在鸿蒙上实现。如果具备实现条件，现场还能动手，让大家熟悉这个系统。可以多人一起参加，也可以一人为一组。

**活动时间是本周日（4月21日）一整天，免费参加**，地点在上海漕河泾。参加者可以获得 HarmonyOS NEXT 内测名额，获胜者还有奖品。 

报名和活动详情，请扫描上方海报的二维码，也可以点击[这个链接](https://www.bagevent.com/event/8819409?bag_track=ruanyifeng)。报名后，活动小助手会将你加入本次活动的微信社群，请务必注意微信好友申请！

## 科技动态

1、[恒星爆炸](https://phys.org/news/2024-04-huge-star-explosion-sky-lifetime.html)

从现在到9月之间的某个时间，人类将可以亲眼看到恒星爆炸。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041101.webp)

距离地球3000光年的北冕座，存在一个双星系统，里面的两颗恒星离得很近。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041103.webp)

每隔80年左右，它们会运行到最接近的位置，彼此的引力将引发恒星内部物质的核爆炸。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041102.webp)

爱尔兰学者约翰·伯明翰1866年发现了这个现象，然后它在1946年再次出现。现在，2024年它又将重现。

需要注意的是，这次爆炸还没有出现在我们眼前，但它其实发生在3000年前。

2、[迪拜暴雨](https://finance.eastmoney.com/a/202404173048968557.html)

4月17日，迪拜下了1949年有气象记录以来，最大的一场暴雨。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041707.webp)

迪拜处于沙漠地区，终年炎热，缺少淡水，根本没有发达的排水系统。大雨造成了严重积水，全城一片混乱。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041708.webp)

迪拜国际机场那么大的停机坪，全部积水，变成了水上机场。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041801.webp)

由于全球变暖，一些地方更干旱，另一些地方有更多的降雨。很多沙漠地区，包括中国的西北，都出现了阴雨或暴雨天气，不知道沙漠以后会不会变成绿洲。

3、[远程店员](https://www.nytimes.com/2024/04/11/nyregion/nyc-restaurants-virtual-remote.html)

很多餐馆为了节省成本，采用点餐机，只雇佣很少的店员，或者根本没有店员。

但是，有些客人不会或不愿使用点餐机，需要真人服务。这种情况下，纽约几家餐馆想出了一个绝妙的点子：远程店员。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041418.webp)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041415.webp)

餐馆在纽约，店员在菲律宾，客人点餐时会自动发起一个远程视频会议，通过屏幕跟菲律宾的店员点餐。

然后，店员再从菲律宾将客人的需求，发到纽约的后厨，完成上菜。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041416.webp)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041417.webp)

菲律宾店员的工资是每小时3美元，是当地类似工作的两倍，而纽约州的最低工资是每小时16美元。

## 文章

1、[我如何搭建一个相似图片搜索引擎](https://harper.blog/2024/04/12/i-accidentally-built-a-meme-search-engine/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041406.webp)

作者使用向量嵌入技术，为自己的图片加了一个相似图片搜索功能，意外发现非常简单。

2、[与 Tailscale 一起旅行](https://mrkaran.dev/posts/travel-tailscale/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041601.webp)

有些网络服务有地域限制，比如只限于美国境内使用。本文的前半部分介绍一种简单的 Tailscale 用法，让你在出国期间也能用本国的服务。

3、[UUID 的用户体验](https://unkey.dev/blog/uuid-ux)（英文）

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041410.webp)

UUID 指的是独一无二的 ID 标识符，本文讨论怎么让它对于用户更好用。

另外，UUID 有多个版本，[这里](https://blog.daveallie.com/ulid-primary-keys/)解释各版本的差异。结论是，一般情况使用 UUIDv4，如果需要单调递增，使用 UUIDv7。

4、[如何找到 Chrome 的崩溃原因？](https://blog.5udou.cn/blog/detail/1711630845567)（中文）

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041607.webp)

Chrome 浏览器打开页面时，经常崩溃，作者就从闪退时产生的 Crash dump 文件，着手寻找崩溃原因。（[@linxiaowu66](https://github.com/ruanyf/weekly/issues/4277) 投稿）

5、[理想的 PR 长度为50行](https://graphite.dev/blog/the-ideal-pr-is-50-lines-long)（英文）

![](https://cdn.beekka.com/blogimg/asset/202402/bg2024021104.webp)

GitHub 提交 PR 的最佳长度是多少？本文认为是50行，可接受范围为25行～100行。

少于25行，代码变动会过于频繁和琐碎；多于100行，提交的复杂度和审查时间都会增加。

6、[为什么我不看好 Tailwind](https://nuejs.org/blog/tailwind-misinformation-engine/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202402/bg2024021901.webp)

Tailwind 是当红的 CSS 框架，最大卖点为样式代码的复用。作者解释，为什么他不喜欢也不看好这个框架。

## 工具

1、[sshx](https://sshx.io/)

![](https://cdn.beekka.com/blogimg/asset/202311/bg2023110602.webp)

这个工具可以通过链接，与其他人共享你的终端。

2、[Hyphen](https://github.com/00000o1/-)

一个 Web 组件的基类，你可以在它的基础上定义自己的 Web Component。类似的工具还有 [Cami.js](https://github.com/kennyfrc/cami.js)。

3、[Hono](https://github.com/honojs/hono)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041608.webp)

一个 Node.js 的轻量级 Web 框架，专注于边缘节点的使用场景。

4、[Shiro](https://github.com/Innei/Shiro)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041609.webp)

一个极简主义的个人网站，作为 [Mix Space](https://github.com/mx-space) 架设的站点的前端。（[@Innei](https://github.com/ruanyf/weekly/issues/4274) 投稿）

5、[Cover your tracks](https://firstpartysimulator.org/)

![](https://cdn.beekka.com/blogimg/asset/202311/bg2023110603.webp)

这个工具可以查看，服务器能够拿到多少客户端信息，从而生成你的指纹。

6、[TeleMonitor](https://github.com/bboysoulcn/telemonitor)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041403.webp)

Python 写的系统监控工具，监控 CPU、内存和磁盘的使用情况，并通过 Telegram 发送警告。（[@bboysoulcn](https://github.com/ruanyf/weekly/issues/4260) 投稿）

7、[Amprobe](https://github.com/amuluze/amprobe)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041404.webp)

一个 Go + Vue3 开发的轻量级主机及容器监控工具。（[@amuluze](https://github.com/ruanyf/weekly/issues/4261) 投稿）

8、[ElemSnap](https://chromewebstore.google.com/detail/elemsnap/mblkhbaakhbhiimkbcnmeciblfhmafna)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041606.webp)

Chrome 浏览器截图 + 美化插件。（[@AydenGen](https://github.com/ruanyf/weekly/issues/4273) 投稿）

9、[stokado](https://github.com/KID-joker/stokado)

浏览器存储对象（比如 localStorage、IndexDB）的包装库，提供统一的 API，以及一些便利的功能（比如过期时间）。（[@KID-joker](https://github.com/ruanyf/weekly/issues/4279) 投稿）

10、[PPResume](https://ppresume.com/)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041802.webp)

一个基于 LaTeX 的简历生成器，可以生成精美的简历，并提供极高质量的 PDF 输出。（[@xiaohanyu](https://github.com/ruanyf/weekly/issues/4285) 投稿）

11、[自律石头](https://apps.apple.com/cn/app/%E8%87%AA%E5%BE%8B%E7%9F%B3%E5%A4%B4-%E8%B5%B0%E8%B7%AF%E8%AF%BB%E4%B9%A6%E6%8D%A2%E6%97%B6%E9%97%B4-%E4%B8%8D%E5%81%9A%E6%89%8B%E6%9C%BA%E6%8E%A7/id6479392365)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041803.webp)

一个 iOS 手机应用，可以限制指定 App 的使用时间，防止过度沉迷手机。（[@tuesda](https://github.com/ruanyf/weekly/issues/4284) 投稿）

12、[音虫](https://www.soundbug.com/)（SoundBug）

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041804.webp)

一款国产的音频工作站，用来音乐编曲和录音的制作工具，追求简洁直观的用户界面和易于上手的操作。（[@asoiso](https://github.com/ruanyf/weekly/issues/4286) 投稿）

13、[极简朋友圈](https://github.com/kingwrcy/moments)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041805.webp)

一个仿照微信朋友圈 UI 的个人短博客网站，参见 [Demo](https://m.mblog.club/)。（[@kingwrcy](https://github.com/ruanyf/weekly/issues/4288) 投稿）

14、[Newcar](https://github.com/dromara/newcar)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041806.webp)

一个 JS 语言的前端动画引擎，基于 Skia 的WebAssembly 版本，在 Canvas 画布上生成动画。（[@sheepbox8646](https://github.com/ruanyf/weekly/issues/4287) 投稿）

## AI 相关

1、[Suno AI API](https://github.com/gcui-art/suno-api)（非官方）

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041401.webp)

一个开源项目，为 Suno AI 提供 API，用于“文生音乐”。（[@blueeon](https://github.com/ruanyf/weekly/issues/4262) 投稿）

另有一个[类似项目](https://github.com/SunoApi/SunoApi)，提供非官方的 Web 客户端。（[@SunoApi](https://github.com/ruanyf/weekly/issues/4263) 投稿）

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041414.webp)

2、[头像的动漫转换](https://www.animefilter.online/)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041202.webp)

基于 stable diffusion 模型，将头像照片转成三种动漫风格。（[@Lucas-YYB](https://github.com/ruanyf/weekly/issues/4253) 投稿）

3、[StockCake](https://stockcake.com/)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041408.webp)

无版权的 AI 图片搜索引擎。

4、[StockTune](https://stocktune.com/)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041407.webp)

无版权的 AI 音乐搜索引擎。

5、[x-crawl](https://github.com/coder-hxl/x-crawl)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041702.webp)

一个 AI 辅助的爬虫库，基于 Node.js，抓取网页后，可以用文字描述所要的操作。（[@coder-hxl](https://github.com/ruanyf/weekly/issues/4281) 投稿）

6、[DeepLearning Interview Awesome 2024](https://github.com/315386775/DeepLearing-Interview-Awesome-2024)

这个仓库收集 AI 的 面试题库。（[@315386775](https://github.com/ruanyf/weekly/issues/4278) 投稿）

## 资源

1、[中国大学矢量校徽合集](https://www.urongda.com/)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041201.webp)

高校校徽的矢量文件下载，目前收集了100多个校徽，还在不断增长中。（[@incidunt](https://github.com/ruanyf/weekly/issues/4252) 投稿）

2、[生成式 AI 和 LLM 学习资料](https://pankajpipada.com/posts/2024-04-15-genai-resources/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041501.webp)

一个老外整理的 AI 学习的网络资源，一共十几个，都是免费的。

3、[《Linux 内核实验》中文翻译](https://linux-kernel-labs-zh.xyz/)

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041605.webp)

布加勒斯特理工大学的 Linux 内核教学课程，动手实践设备驱动的编写。（[@hanyujie2002](https://github.com/ruanyf/weekly/issues/4269) 投稿）

## 图片

1、[勾股定理的错误图片](https://mathtourist.blogspot.com/2009/02/pondering-artists-perplexing-tribute-to.html)

2009年1月号的《大学数学杂志》（CMJ）的封面，是一张勾股定理的插图。

![](https://cdn.beekka.com/blogimg/asset/202404/bg2024041409.webp)

这张图片引起了很多数学家的议论，因为它是错的。

它的三条边长度之比是 2-3-4 ，所以这个三角形不可能是直角三角形，而是钝角三角形。

## 文摘

1、**高速摄影的诞生**

> 以下内容摘自科学作家瓦科拉夫·斯米尔（Vaclav Smil）的著作《数字不会撒谎》（Number Don't Lie）。

1867年，美国加州的前州长找到了摄影师迈布里奇（Eadweard Muybridge，1830-1904），请他来解决一个古老的争议：**马的四条腿在奔跑时是否都离开了地面？**

摄影师发现很难证明这一点，当时的快门不够快，他拍了许多照片，都看不清楚。

他不得不设法缩短快门时间，最终在1878年造出了快门速度1/1000秒的相机（每秒钟拍1000张），可以用来拍高速移动的物体。

1878年6月19日，结论性的一天来到了。摄影师在斯坦福大学的帕洛阿尔托农场，把底片装在一个高速滚动的圆盘上，拍摄了一系列奔跑的马。

![](https://cdn.beekka.com/blogimg/asset/202311/bg2023110607.webp)

显然，在疾驰时，马的四只蹄子都离开了地面。

这种高速摄影的技巧被继承了下来，不断改进，速度从每秒1000张很快变成了每秒10000张。

1940年，旋转镜面相机的专利设计将速率提高到每秒100万张。

1999年，艾哈迈德·泽维尔（Ahmed Zewail）因开发一种光谱仪而获得诺贝尔化学奖，该光谱仪可以在飞秒（10<sup>-15</sup>秒）上捕获化学反应的过渡态。

今天，我们可以使用强烈的超快激光脉冲来捕获仅相隔阿秒（10<sup>-18</sup>秒）的事件，这种快门速度使得人们甚至有可能看到电子的运动。

## 言论

1、

1986年，第一批癌症的放疗机上市，型号是Therac-25，使用电脑控制。但是使用后，发生了几起严重事故，病人的放射剂量大大超标。

事后发现，这不是硬件错误，而是软件错误。程序员没有考虑到键盘的连击，一旦操作人员击键速度快，发生连击，就会连续发出射线。

-- [《THERAC-25 事故》](https://thedailywtf.com/articles/the-therac-25-incident)

2、

很多时候，我们觉得某样东西非常糟糕，但是其他人却很欣赏。

与其怀疑别人，不妨换个角度，假定那确实是很好的东西，然后尝试去理解它。有了这种态度，更容易学到新东西，并会为你省去很多挫折、误解和与他人的冲突。

-- [《你无法欣赏你不理解的东西》](https://stan.bar/appreciate/)

3、

软件开发的最重要规则，始终是做最简单可行的事情。

不要做愚蠢的事情，也不要做明显行不通的事情，简单性是取得快速进步的最重要因素。

-- [《做可能有效的最简单的事情》](https://ronjeffries.com/xprog/articles/practices/pracsimplest/)

4、

许多大型组织存在“死海效应”，那些更有才华、更高效的工程师最有可能离开，而没有才华和效率的工程师都留了下来，整个公司慢慢变成了一片死海。

-- [《死海效应》](https://brucefwebster.com/2008/04/11/the-wetware-crisis-the-dead-sea-effect/)

## 往年回顾

[新技术的最大风险](https://www.ruanyifeng.com/blog/2023/04/weekly-issue-250.html)（2023 #250）

[低期望，多尝试](https://www.ruanyifeng.com/blog/2022/03/weekly-issue-200.html)（2022 #200）

[当音乐还是稀缺的时候](https://www.ruanyifeng.com/blog/2021/03/weekly-issue-150.html)（2021 #150）

[零利率时代](https://www.ruanyifeng.com/blog/2020/03/weekly-issue-100.html)（2020 #100）

（完）

