这里记录每周值得分享的科技内容,周五发布。
本杂志开源[1],欢迎投稿[2]。另有《谁在招人》[3]服务,发布程序员招聘信息。合作请邮件联系[4][email protected][5])。

封面图

香港中环布置了两百多个3米~5米的“发光蛋”,一部分在陆地上,一部分漂在海上。一到夜晚,它们就发出不同的光色与声效。(via[6]

饮水鸟玩具

前几天,我看到有人介绍“饮水鸟”玩具,心痒痒,就从网上买了一个。
价格很便宜,十几元人民币。到手以后,我玩了一下,觉得很有意思,分享给大家。
它是一个物理学玩具,有点像永动机,只要把鸟头按到水杯里,让鸟嘴碰到冷水,它就会一直弹起、倒下、弹起、倒下……
我买的那个,这样运动了一天一夜,都没有停。
更有意思的是它的原理,你想不到可以这样用。
首先,去掉那些故意迷惑人的外部装饰,它就是一个密封的异型玻璃容器。
两头是圆球,中间由一根玻璃管相连,下部装了一些易挥发的液体(比如二氯甲烷、乙醚、酒精)。
鸟嘴被毛毡包裹,保证冷水会充分附着在上面。
遇到冷水以后,由于水温低,以及水份蒸发带走热量,使得容器上部的气压下降,下部的气压就会大于上部。
下部的气压就会压着液体,让它顺着玻璃管上升,被压入上部。
随着液体流入,鸟头越来越重,最终倒入水中,再次变成饮水的姿势。
鸟身倾斜以后,玻璃管在鸟尾的一端就会露出水面,从而玻璃管两端的气压就会变得相等。
由于重力的作用,上部的液体重新流回下部,从而鸟头再次弹起。
这个过程会一直重复下去,只要冷水使得上部与下部之间存在温度差。本质上,饮水鸟是一个热机,不需要其他动力,靠温度差驱动。
我觉得,这真是热量转换为能量的一个绝佳演示。但是,除了这个玩具,没听说过有其他的实际应用。
我倒是看到过一篇报道[7] ,有人提出[8],将饮水鸟做成发电机,利用温度差发电。虽然我猜测,发电效率一定很差,但如果实现了,一定很有趣。

掘金动手实验室:HarmonyOS 活动

“掘金动手实验室”是一个以“参与”为特色的技术活动,联合厂商,为开发者提供一个实践与创新的平台。
这一次,它邀请了华为鸿蒙团队,让大家提前接触 HarmonyOS NEXT 系统,对鸿蒙和手机应用开发感兴趣的同学,不要错过了。
本次活动面向所有业内人士,开发者、设计师、产品经理都可以参加。你不仅可以了解 HarmonyOS NEXT 的新特性 ,跟官方团队面对面,还有动手实操的机会
活动的下半场,会分组进行头脑风暴,看看什么创意可以在鸿蒙上实现。如果具备实现条件,现场还能动手,让大家熟悉这个系统。可以多人一起参加,也可以一人为一组。
活动时间是本周日(4月21日)一整天,免费参加,地点在上海漕河泾。参加者可以获得 HarmonyOS NEXT 内测名额,获胜者还有奖品。
报名和活动详情,请扫描上方海报的二维码,也可以点击这个链接[9]。报名后,活动小助手会将你加入本次活动的微信社群,请务必注意微信好友申请!

科技动态

1、恒星爆炸[10]
从现在到9月之间的某个时间,人类将可以亲眼看到恒星爆炸。
距离地球3000光年的北冕座,存在一个双星系统,里面的两颗恒星离得很近。
每隔80年左右,它们会运行到最接近的位置,彼此的引力将引发恒星内部物质的核爆炸。
爱尔兰学者约翰·伯明翰1866年发现了这个现象,然后它在1946年再次出现。现在,2024年它又将重现。
需要注意的是,这次爆炸还没有出现在我们眼前,但它其实发生在3000年前。
2、迪拜暴雨[11]
4月17日,迪拜下了1949年有气象记录以来,最大的一场暴雨。
迪拜处于沙漠地区,终年炎热,缺少淡水,根本没有发达的排水系统。大雨造成了严重积水,全城一片混乱。
迪拜国际机场那么大的停机坪,全部积水,变成了水上机场。
由于全球变暖,一些地方更干旱,另一些地方有更多的降雨。很多沙漠地区,包括中国的西北,都出现了阴雨或暴雨天气,不知道沙漠以后会不会变成绿洲。
3、远程店员[12]
很多餐馆为了节省成本,采用点餐机,只雇佣很少的店员,或者根本没有店员。
但是,有些客人不会或不愿使用点餐机,需要真人服务。这种情况下,纽约几家餐馆想出了一个绝妙的点子:远程店员。
餐馆在纽约,店员在菲律宾,客人点餐时会自动发起一个远程视频会议,通过屏幕跟菲律宾的店员点餐。
然后,店员再从菲律宾将客人的需求,发到纽约的后厨,完成上菜。
菲律宾店员的工资是每小时3美元,是当地类似工作的两倍,而纽约州的最低工资是每小时16美元。

文章

1、我如何搭建一个相似图片搜索引擎[13](英文)
作者使用向量嵌入技术,为自己的图片加了一个相似图片搜索功能,意外发现非常简单。
2、与 Tailscale 一起旅行[14](英文)
有些网络服务有地域限制,比如只限于美国境内使用。本文的前半部分介绍一种简单的 Tailscale 用法,让你在出国期间也能用本国的服务。
3、UUID 的用户体验[15](英文)
UUID 指的是独一无二的 ID 标识符,本文讨论怎么让它对于用户更好用。
另外,UUID 有多个版本,这里[16]解释各版本的差异。结论是,一般情况使用 UUIDv4,如果需要单调递增,使用 UUIDv7。
4、如何找到 Chrome 的崩溃原因?[17](中文)
Chrome 浏览器打开页面时,经常崩溃,作者就从闪退时产生的 Crash dump 文件,着手寻找崩溃原因。(@linxiaowu66[18] 投稿)
5、理想的 PR 长度为50行[19](英文)
GitHub 提交 PR 的最佳长度是多少?本文认为是50行,可接受范围为25行~100行。
少于25行,代码变动会过于频繁和琐碎;多于100行,提交的复杂度和审查时间都会增加。
6、为什么我不看好 Tailwind[20](英文)
Tailwind 是当红的 CSS 框架,最大卖点为样式代码的复用。作者解释,为什么他不喜欢也不看好这个框架。

工具

1、sshx[21]
这个工具可以通过链接,与其他人共享你的终端。
2、Hyphen[22]
一个 Web 组件的基类,你可以在它的基础上定义自己的 Web Component。类似的工具还有 Cami.js[23]
3、Hono[24]
一个 Node.js 的轻量级 Web 框架,专注于边缘节点的使用场景。
4、Shiro[25]
一个极简主义的个人网站,作为 Mix Space[26] 架设的站点的前端。(@Innei[27] 投稿)
5、Cover your tracks[28]
这个工具可以查看,服务器能够拿到多少客户端信息,从而生成你的指纹。
6、TeleMonitor[29]
Python 写的系统监控工具,监控 CPU、内存和磁盘的使用情况,并通过 Telegram 发送警告。(@bboysoulcn[30] 投稿)
7、Amprobe[31]
一个 Go + Vue3 开发的轻量级主机及容器监控工具。(@amuluze[32] 投稿)
8、ElemSnap[33]
Chrome 浏览器截图 + 美化插件。(@AydenGen[34] 投稿)
9、stokado[35]
浏览器存储对象(比如 localStorage、IndexDB)的包装库,提供统一的 API,以及一些便利的功能(比如过期时间)。(@KID-joker[36] 投稿)
10、PPResume[37]
一个基于 LaTeX 的简历生成器,可以生成精美的简历,并提供极高质量的 PDF 输出。(@xiaohanyu[38] 投稿)
11、自律石头[39]
一个 iOS 手机应用,可以限制指定 App 的使用时间,防止过度沉迷手机。(@tuesda[40] 投稿)
12、音虫[41](SoundBug)
一款国产的音频工作站,用来音乐编曲和录音的制作工具,追求简洁直观的用户界面和易于上手的操作。(@asoiso[42] 投稿)
13、极简朋友圈[43]
一个仿照微信朋友圈 UI 的个人短博客网站,参见 Demo[44]。(@kingwrcy[45] 投稿)
14、Newcar[46]
一个 JS 语言的前端动画引擎,基于 Skia 的WebAssembly 版本,在 Canvas 画布上生成动画。(@sheepbox8646[47] 投稿)

AI 相关

1、Suno AI API[48](非官方)
一个开源项目,为 Suno AI 提供 API,用于“文生音乐”。(@blueeon[49] 投稿)
另有一个类似项目[50],提供非官方的 Web 客户端。(@SunoApi[51] 投稿)
2、头像的动漫转换[52]
基于 stable diffusion 模型,将头像照片转成三种动漫风格。(@Lucas-YYB[53] 投稿)
3、StockCake[54]
无版权的 AI 图片搜索引擎。
4、StockTune[55]
无版权的 AI 音乐搜索引擎。
5、x-crawl[56]
一个 AI 辅助的爬虫库,基于 Node.js,抓取网页后,可以用文字描述所要的操作。(@coder-hxl[57] 投稿)
6、DeepLearning Interview Awesome 2024[58]
这个仓库收集 AI 的 面试题库。(@315386775[59] 投稿)

资源

1、中国大学矢量校徽合集[60]
高校校徽的矢量文件下载,目前收集了100多个校徽,还在不断增长中。(@incidunt[61] 投稿)
2、生成式 AI 和 LLM 学习资料[62](英文)
一个老外整理的 AI 学习的网络资源,一共十几个,都是免费的。
3、《Linux 内核实验》中文翻译[63]
布加勒斯特理工大学的 Linux 内核教学课程,动手实践设备驱动的编写。(@hanyujie2002[64] 投稿)

图片

1、勾股定理的错误图片[65]
2009年1月号的《大学数学杂志》(CMJ)的封面,是一张勾股定理的插图。
这张图片引起了很多数学家的议论,因为它是错的。
它的三条边长度之比是 2-3-4 ,所以这个三角形不可能是直角三角形,而是钝角三角形。

文摘

1、高速摄影的诞生
以下内容摘自科学作家瓦科拉夫·斯米尔(Vaclav Smil)的著作《数字不会撒谎》(Number Don't Lie)。
1867年,美国加州的前州长找到了摄影师迈布里奇(Eadweard Muybridge,1830-1904),请他来解决一个古老的争议:马的四条腿在奔跑时是否都离开了地面?
摄影师发现很难证明这一点,当时的快门不够快,他拍了许多照片,都看不清楚。
他不得不设法缩短快门时间,最终在1878年造出了快门速度1/1000秒的相机(每秒钟拍1000张),可以用来拍高速移动的物体。
1878年6月19日,结论性的一天来到了。摄影师在斯坦福大学的帕洛阿尔托农场,把底片装在一个高速滚动的圆盘上,拍摄了一系列奔跑的马。
显然,在疾驰时,马的四只蹄子都离开了地面。
这种高速摄影的技巧被继承了下来,不断改进,速度从每秒1000张很快变成了每秒10000张。
1940年,旋转镜面相机的专利设计将速率提高到每秒100万张。
1999年,艾哈迈德·泽维尔(Ahmed Zewail)因开发一种光谱仪而获得诺贝尔化学奖,该光谱仪可以在飞秒(10-15秒)上捕获化学反应的过渡态。
今天,我们可以使用强烈的超快激光脉冲来捕获仅相隔阿秒(10-18秒)的事件,这种快门速度使得人们甚至有可能看到电子的运动。

言论

1、
1986年,第一批癌症的放疗机上市,型号是Therac-25,使用电脑控制。但是使用后,发生了几起严重事故,病人的放射剂量大大超标。
事后发现,这不是硬件错误,而是软件错误。程序员没有考虑到键盘的连击,一旦操作人员击键速度快,发生连击,就会连续发出射线。
-- 《THERAC-25 事故》[66]
2、
很多时候,我们觉得某样东西非常糟糕,但是其他人却很欣赏。
与其怀疑别人,不妨换个角度,假定那确实是很好的东西,然后尝试去理解它。有了这种态度,更容易学到新东西,并会为你省去很多挫折、误解和与他人的冲突。
-- 《你无法欣赏你不理解的东西》[67]
3、
软件开发的最重要规则,始终是做最简单可行的事情。
不要做愚蠢的事情,也不要做明显行不通的事情,简单性是取得快速进步的最重要因素。
-- 《做可能有效的最简单的事情》[68]
4、
许多大型组织存在“死海效应”,那些更有才华、更高效的工程师最有可能离开,而没有才华和效率的工程师都留了下来,整个公司慢慢变成了一片死海。
-- 《死海效应》[69]

往年回顾

低期望,多尝试(2022 #200)
零利率时代(2020 #100)
(完)

References

[1]
 开源: 
https://github.com/ruanyf/weekly
[2]
 投稿: 
https://github.com/ruanyf/weekly/issues
[3]
 《谁在招人》: 
https://github.com/ruanyf/weekly/issues/4204
[4]
 邮件联系: 
mailto:[email protected]
[5]mailto:[email protected]
[6]
 via: 
https://www.sohu.com/a/766773393_123753
[7]
 一篇报道: 
https://www.cnn.com/2024/03/14/climate/drinking-bird-energy-power-gadgets-climate-intl/index.html
[8]
 提出: 
https://www.cell.com/device/fulltext/S2666-9986(24)00108-X
[9]
 这个链接: 
https://www.bagevent.com/event/8819409?bag_track=ruanyifeng
[10]
 恒星爆炸: 
https://phys.org/news/2024-04-huge-star-explosion-sky-lifetime.html
[11]
 迪拜暴雨: 
https://finance.eastmoney.com/a/202404173048968557.html
[12]
 远程店员: 
https://www.nytimes.com/2024/04/11/nyregion/nyc-restaurants-virtual-remote.html
[13]
 我如何搭建一个相似图片搜索引擎: 
https://harper.blog/2024/04/12/i-accidentally-built-a-meme-search-engine/
[14]
 与 Tailscale 一起旅行: 
https://mrkaran.dev/posts/travel-tailscale/
[15]
 UUID 的用户体验: 
https://unkey.dev/blog/uuid-ux
[16]
 这里: 
https://blog.daveallie.com/ulid-primary-keys/
[17]
 如何找到 Chrome 的崩溃原因?: 
https://blog.5udou.cn/blog/detail/1711630845567
[18]
 @linxiaowu66: 
https://github.com/ruanyf/weekly/issues/4277
[19]
 理想的 PR 长度为50行: 
https://graphite.dev/blog/the-ideal-pr-is-50-lines-long
[20]
 为什么我不看好 Tailwind: 
https://nuejs.org/blog/tailwind-misinformation-engine/
[21]
 sshx: 
https://sshx.io/
[22]
 Hyphen: 
https://github.com/00000o1/-
[23]
 Cami.js: 
https://github.com/kennyfrc/cami.js
[24]
 Hono: 
https://github.com/honojs/hono
[25]
 Shiro: 
https://github.com/Innei/Shiro
[26]
 Mix Space: 
https://github.com/mx-space
[27]
 @Innei: 
https://github.com/ruanyf/weekly/issues/4274
[28]
 Cover your tracks: 
https://firstpartysimulator.org/
[29]
 TeleMonitor: 
https://github.com/bboysoulcn/telemonitor
[30]
 @bboysoulcn: 
https://github.com/ruanyf/weekly/issues/4260
[31]
 Amprobe: 
https://github.com/amuluze/amprobe
[32]
 @amuluze: 
https://github.com/ruanyf/weekly/issues/4261
[33]
 ElemSnap: 
https://chromewebstore.google.com/detail/elemsnap/mblkhbaakhbhiimkbcnmeciblfhmafna
[34]
 @AydenGen: 
https://github.com/ruanyf/weekly/issues/4273
[35]
 stokado: 
https://github.com/KID-joker/stokado
[36]
 @KID-joker: 
https://github.com/ruanyf/weekly/issues/4279
[37]
 PPResume: 
https://ppresume.com/
[38]
 @xiaohanyu: 
https://github.com/ruanyf/weekly/issues/4285
[39]
 自律石头: 
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
[40]
 @tuesda: 
https://github.com/ruanyf/weekly/issues/4284
[41]
 音虫: 
https://www.soundbug.com/
[42]
 @asoiso: 
https://github.com/ruanyf/weekly/issues/4286
[43]
 极简朋友圈: 
https://github.com/kingwrcy/moments
[44]
 Demo: 
https://m.mblog.club/
[45]
 @kingwrcy: 
https://github.com/ruanyf/weekly/issues/4288
[46]
 Newcar: 
https://github.com/dromara/newcar
[47]
 @sheepbox8646: 
https://github.com/ruanyf/weekly/issues/4287
[48]
 Suno AI API: 
https://github.com/gcui-art/suno-api
[49]
 @blueeon: 
https://github.com/ruanyf/weekly/issues/4262
[50]
 类似项目: 
https://github.com/SunoApi/SunoApi
[51]
 @SunoApi: 
https://github.com/ruanyf/weekly/issues/4263
[52]
 头像的动漫转换: 
https://www.animefilter.online/
[53]
 @Lucas-YYB: 
https://github.com/ruanyf/weekly/issues/4253
[54]
 StockCake: 
https://stockcake.com/
[55]
 StockTune: 
https://stocktune.com/
[56]
 x-crawl: 
https://github.com/coder-hxl/x-crawl
[57]
 @coder-hxl: 
https://github.com/ruanyf/weekly/issues/4281
[58]
 DeepLearning Interview Awesome 2024: 
https://github.com/315386775/DeepLearing-Interview-Awesome-2024
[59]
 @315386775: 
https://github.com/ruanyf/weekly/issues/4278
[60]
 中国大学矢量校徽合集: 
https://www.urongda.com/
[61]
 @incidunt: 
https://github.com/ruanyf/weekly/issues/4252
[62]
 生成式 AI 和 LLM 学习资料: 
https://pankajpipada.com/posts/2024-04-15-genai-resources/
[63]
 《Linux 内核实验》中文翻译: 
https://linux-kernel-labs-zh.xyz/
[64]
 @hanyujie2002: 
https://github.com/ruanyf/weekly/issues/4269
[65]
 勾股定理的错误图片: 
https://mathtourist.blogspot.com/2009/02/pondering-artists-perplexing-tribute-to.html
[66]
 《THERAC-25 事故》: 
https://thedailywtf.com/articles/the-therac-25-incident
[67]
 《你无法欣赏你不理解的东西》: 
https://stan.bar/appreciate/
[68]
 《做可能有效的最简单的事情》: 
https://ronjeffries.com/xprog/articles/practices/pracsimplest/
[69]
 《死海效应》: 
https://brucefwebster.com/2008/04/11/the-wetware-crisis-the-dead-sea-effect/
继续阅读
阅读原文