diff --git a/README.md b/README.md index 95ab813..821d752 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ $ grep -nri css docs | cat --number **四月** +- 第 297 期:[饮水鸟玩具](docs/issue-297.md) - 第 296 期:[xz 后门的作者 Jia Tan 是谁?](docs/issue-296.md) **三月** diff --git a/docs/issue-297.md b/docs/issue-297.md new file mode 100644 index 0000000..b36478c --- /dev/null +++ b/docs/issue-297.md @@ -0,0 +1,398 @@ +# 科技爱好者周刊(第 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-15秒)上捕获化学反应的过渡态。 + +今天,我们可以使用强烈的超快激光脉冲来捕获仅相隔阿秒(10-18秒)的事件,这种快门速度使得人们甚至有可能看到电子的运动。 + +## 言论 + +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) + +(完) +