# 科技爱好者周刊（第 236 期）：中国的阳光地带

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

## 封面图

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022121606.webp)

12月16日清晨，柏林水族馆的世界最大的圆柱体水族箱（高达14米）突然爆裂，原因据说是夜间低温造成了玻璃裂痕，1000吨水和1500条热带鱼倾泻而出，淹了一条街。（[via](https://www.theguardian.com/world/2022/dec/16/huge-cylindrical-aquarium-housing-1500-exotic-fish-bursts-in-berlin)）

## 本周话题：中国的阳光地带

入冬以后，上海都是冷飕飕的阴沉天气。偶尔有几天，太阳露一下脸。

每年的这个时候，我就想换一个城市过冬，去那种阳光充足的地方。

今年真的打算成行，我就想确定一下，**中国阳光最多的是哪些城市。**

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122007.webp)

气象学真的有这个统计，叫做[“全年日照时数”](https://en.wikipedia.org/wiki/Sunshine_duration)（sunshine duration）。维基百科还明确列出了，影响这个指标的三个因素。

> （1）**干旱的地区** 日照多，湿润的地区日照少。
>
> （2）**高海拔地区**，空气稀薄，云不多，所以日照多。
>
>（3）**高纬度地区** 的太阳在地平线附近的时间比较长，因而太阳低于地平线时、还能看到阳光的时间也比较长。

每个城市的气象局都有这个统计，全国主要城市的数据可以在[《中国统计年鉴》](http://www.stats.gov.cn/tjsj/ndsj/)查到。最新在线版是[2021版](http://www.stats.gov.cn/tjsj/ndsj/2021/indexch.htm
)，《表8-8》就是前一年的数据。

我做了数据排名，先看看日照最少的10个城市。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122009.webp)

不出所料，四川盆地是阳光最少的地方。意外的是华中、华东、华南都属于阳光偏少的地区。

日照最多的10个城市如下。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122010.webp)

上图的排名非常令人惊讶。高原地区（青藏高原、云贵高原）排名靠前，这是能想到的，没想到的是东北、华北、西北都是阳光偏多的地方。

这说明中国北方其实是一个阳光地带，原因可能是纬度高，也可能是干旱少雨。如果能够好好地改善和维护环境，再加上阳光充足，北方城市肯定是宜居的。

## 科技动态

1、[躺平使用的头盔](https://news.nweon.com/89728)

一家日本公司[宣布](https://diver-x.jp/news/en/20220131.html)，取消早前宣布的躺着使用的头盔项目，原因是财务困难，以及难以达到设计目标。

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072610.webp)

这个项目看上去很不错，用户只要戴上头盔，就能躺在床上使用互联网和 VR。

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072611.webp)

它有专属的眼罩和耳机，并且因为在床上不能使用鼠标，它特别设计了一对脚底传感器，戴在脚上，通过调整脚的倾斜度，控制操作。

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072612.webp)

2、[建筑业采用游戏引擎](https://spectrum.ieee.org/unreal-engine)

大型建筑项目往往需要 3D 建模，向客户展示建成后的效果。以前，建模都采用建筑专业软件，现在开始转向用游戏引擎建模。

![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080202.webp)

这主要因为，游戏引擎的渲染效果远超其他软件。另外，游戏引擎有资源包，可以方便地引入各种物体模型。

![](https://cdn.beekka.com/blogimg/asset/202208/bg2022080203.webp)

并且，游戏引擎有漫游的效果，允许客户在模型中随意漫游，还支持 3D 游览。游戏引擎的建模可能会成为一个大产业。

3、[藻类水泥](https://interestingengineering.com/biogenic-limestone-from-microalgae)

水泥是地球上使用最广泛的建筑材料，但是它的生产污染很大。焚烧石灰石会释放大量二氧化碳，还严重影响空气质量。

![](https://cdn.beekka.com/blogimg/asset/202206/bg2022063012.webp)

一位美国教授突发奇想，既然石灰石（主要成分碳酸钙）是自然生长出来的（碳酸与水中的钙相互作用而生成），那么有没有办法人工种植水泥呢，这样就可以避免污染？

![](https://cdn.beekka.com/blogimg/asset/202206/bg2022063013.webp)

他使用一种叫做球石藻的微藻，通过光合作用吸收二氧化碳，成功生产出来了生物石灰石。他认为只要大规模培养这种藻类，让它生产我们所需的建筑材料，水泥行业就会变成绿色行业。

4、[滚筒打印机](https://minimalissimo.com/articles/roller-jet-printer)

普通打印机通常只能打印固定大小的纸张，哪怕只打印一行字，也需要完整的一张纸。

一个韩国设计师因此发明了滚筒打印机，它使用滚筒纸打印。

![](https://cdn.beekka.com/blogimg/asset/202209/bg2022091001.webp)

它可以打印出任意长度的内容，特别适合短内容的打印，比如发票、便条、通知等等，不会浪费纸张。

![](https://cdn.beekka.com/blogimg/asset/202209/bg2022091002.webp)

它采用热敏打印，不需要碳粉和墨盒。如果有公司愿意量产，可以改造成喷墨打印机或激光打印机。

5、[奶油色球衣](https://paullukas.substack.com/p/exclusive-the-inside-story-of-why)

NBA 的密尔沃基雄鹿队的球衣，传统上是奶油色。但是，他们最近放弃了这个球衣颜色。

![](https://cdn.beekka.com/blogimg/asset/202211/bg2022111701.webp)

原因是现在的电视台转播 NBA 比赛，采用软件添加球场广告和比赛统计。

在球场的白色灯光下，奶油色球衣跟地板颜色有时很接近，广告会直接打在球衣上，导致奇怪的画面。下图左下角，雄鹿球员的短裤就消失了。

![](https://cdn.beekka.com/blogimg/asset/202211/bg2022111702.webp)

冰球转播也有类似的情况，下图球员的上半身也消失了。

![](https://cdn.beekka.com/blogimg/asset/202211/bg2022111703.webp)

## 文章

1、[三分钟读懂核聚变](https://mp.weixin.qq.com/s/44H689gZQ-26ZbzC9D-RTg)（中文）

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122110.webp)

美国能源部最近宣布，实现了可控核聚变的“净能量增益”。本文通俗解释了这是什么意思。（[@marmul2](https://github.com/ruanyf/weekly/issues/2811) 投稿）

2、[美国的地理优势](https://unchartedterritories.tomaspueyo.com/p/world-chessboard)（英文）

这篇英语长文详细介绍了美国的地理优势：两边都是海洋，周围没有强敌；中部有巨大的平原，保证了粮食生产；内河水运距离超过其他国家的总和，运输成本极便宜。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122106.webp)

文中有一张图片，很震撼：郑和下西洋的宝船（上方）与哥伦布环球航行的船只（下方）的大小对比。不过，郑和的宝船大小是后人根据古文献推算的，并没有足够的实物证据。

3、[Mastodon 介绍](https://wordsmith.social/elilla/a-futuristic-mastodon-introduction-for-2021)（英文）

![](https://cdn.beekka.com/blogimg/asset/202211/bg2022110306.webp)

Mastodon 是一个类似推特的社交媒体，但是采用分布式结构，任何人都可以架设实例。本文详细地介绍它的运作机制。

4、[动态生成头像的最简单方法](https://bunny.net/blog/introducing-bunny-optimizer-ai-a-new-way-of-creating-content/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022121602.webp)

CDN 服务商 Bunny.net 让 AI 绘图引擎自动生成用户头像，每个用户都有一个不一样的兔子头像。

5、[如何使用 HTML `<picture>` 标签](https://jfhr.me/optimizing-images-with-the-html-picture-tag/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202211/bg2022110309.webp)

本文是一篇初级教程，介绍网页`<picture>`标签的使用方法。

6、[如何关闭 favicon 请求](https://tdarb.org/blog/under-1kb.html)（英文）

作者想制作一个体积尽量小的网页，文章里面介绍了一个技巧，如何让浏览器不发出 favicon 请求。

7、[关系型数据库的优缺点](https://www.simplethread.com/relational-databases-arent-dinosaurs-theyre-sharks/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072613.webp)

本文讨论跟 NoSQL 数据库相比，关系型数据库的优势在哪里。

8、[分布式系统的8个错误观念](https://architecturenotes.co/fallacies-of-distributed-systems/)（英文）

![](https://cdn.beekka.com/blogimg/asset/202206/bg2022060504.webp)

初学者对于分布式系统，往往有一些错误观念，忽视了这种系统的复杂性。本文总结了8个常见的错误观念，比如网络是可靠的、延迟为零、系统间通信没有成本等等，看完你就会了解分布式系统的难度在哪里。

## 工具

1、[tremor](https://www.tremor.so/)

![](https://cdn.beekka.com/blogimg/asset/202210/bg2022101103.webp)

一个专门制作控制面板的 React 组件库。

2、[GPTAnywhere](https://chrome.google.com/webstore/detail/gptanywhere/pklibapjplkpanekidgnckgjablljhni)

一个浏览器插件，只要点击工具栏，就可以跟 ChatGPT 对话。它需要 OpenAI 账号。

3、[Obsidian Canvas](https://obsidian.md/canvas)

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122104.webp)

开源笔记软件 Obsidian 本周发布新功能，可以在画布上画出思维图。

4、[Enhance Speech](https://podcast.adobe.com/enhance)

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022121904.webp)

Adobe 公司推出的一个工具，用来增强语音效果，使得普通的录音变得像在专业录音室录制的。

5、[One Tab Group](https://www.onetab.group/)

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122111.webp)

一个浏览器插件，有效地管理浏览器标签页，支持云同步。（[@xiaoluoboding](https://github.com/ruanyf/weekly/issues/2812) 投稿）

6、[Forgejo](https://forgejo.org/)

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022121603.webp)

著名 Git 托管软件 Gitea 最近成立了[商业公司](https://blog.gitea.io/2022/10/a-message-from-lunny-on-gitea-ltd.-and-the-gitea-project/)，导致社区分裂。一部分开发者出走，创立了 Forgejo 这个项目。

7、[Satori](https://github.com/vercel/satori)

![](https://cdn.beekka.com/blogimg/asset/202210/bg2022101102.webp)

这个 JS 库可以把 HTML 和 CSS 代码转为 SVG 图形，很适合为组件生成缩略图。

8、[Agreper](https://github.com/Demindiro/agreper)

![](https://cdn.beekka.com/blogimg/asset/202210/bg2022101101.webp)

一个最简化的论坛程序，号称不需要 JS，使用 Python 写的。

9、[Rmt.rs](https://github.com/AmineZouitine/rmt.rs)

一个命令行程序，可以用作`rm`命令的替代，用来删除文件。特点是有回收箱，删掉的文件可以恢复。

## 资源

1、[纸制日晷](https://www.sundialzone.com/zh/)

![](https://cdn.beekka.com/blogimg/asset/202209/bg2022091802.webp)

日冕是古代的计时工具，这个网站教大家怎么做一个纸制日冕。

2、[The Ruby Reference](https://rubyreferences.github.io/rubyref/)

一本 Ruby 语言参考教程，免费在线阅读。

3、[macOS 默认壁纸下载](https://512pixels.net/projects/default-mac-wallpapers-in-5k/)

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071426.webp)

这个网址提供 macOS 所有版本的默认壁纸的 6K 清晰度下载。

4、[The Algorithms](https://the-algorithms.com/zh_Hans)

![](https://cdn.beekka.com/blogimg/asset/202209/bg2022092405.webp)

这个网站收集 GitHub 上面的各种算法实现，按照种类和语言进行分类。

## 图片

1、 **俄罗斯矿机**

俄罗斯生产一种叫做 1ГПКС 的矿机，专门用于煤矿和钾矿。它的外形非常奇特，具有浓重的科幻色彩。

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071702.webp)

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071704.webp)

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071705.webp)

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022071706.webp)

2、[ET 模型](https://people.com/movies/e-t-the-extra-terrestrial-model-from-1982-movie-files-off-with-2-million-at-auction/)

1982年的经典电影《外星人》轰动一时，里面的外星人 ET 采用机械模型制作。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122107.webp)

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122108.webp)

这个模型最近要拍卖了，估价达到250万美元。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122109.webp)

如果是现在拍这部电影，肯定不会用机械道具，成本高、操作难，而是改用绿幕和表情捕捉，再用计算机图形生成。

3、[胜利女神](https://www.louvre.fr/en/explore/the-palace/a-stairway-to-victory)

法国卢浮宫有一个胜利女神的古希腊雕塑，是世界最著名的雕塑之一。

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072001.webp)

它是从海底找到的，缺少头部。

它表现了胜利女神展开翅膀，降落在船头。历史学家猜测，这是为了一场海军战役的胜利，而树立的。

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072002.webp)

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072003.webp)

## 文摘

1、[幂等性导致的一次重大事故](https://threadreaderapp.com/thread/1502947315279187979.html)

大概三年前，外卖平台 Uber Eats 在印度发生了一次重大事故，使得用户可以免费获得食品。

![](https://cdn.beekka.com/blogimg/asset/202212/bg2022122206.webp)

一天早上，有人试图通过印度的 Uber Eats 订购食物，并使用印度的支付平台 Paytm 付款。但是，他的账户里面没有足够的余额，没有下单成功。

但是，这个人不死心，继续订购，这一次居然成功了！让他在没有付款的情况下，可以订购食物。

消息传开以后，人们疯狂地下单。Uber Eats 短时间涌入大量订单，餐馆无法接单，不得不下线。平台发现了以后，立刻停止使用 Paytm 作为付款方式。

事后调查发现，这个事故与 Paytm 团队前一天上线的一个看似无害的代码变更有关。他们把付款失败的 API 从幂等改为非幂等。

所谓幂等性，指的是如果你重复请求同一个 API，每次都得到相同的响应。

以前，如果余额不够，API 总是返回相同的错误对象，就像下面这样：

1. “尝试在没有资金的情况下向 X 钱包充值”-> 返回 Error1
2. “尝试再次在没有资金的情况下向 X 钱包充值”-> 返回 Error1

现在变成了：

1. “尝试在没有资金的情况下向 X 钱包充值”-> 返回 Error1
2. “尝试再次在没有资金的情况下向 X 钱包充值”-> 返回 Error2

这看起来只是一个很小的变化，偏偏 Uber Eats 的代码有问题。他们假设这个 API 是幂等的，只比较了再次请求失败返回的结果，跟上一次失败的结果是否相同。如果不相同，就认为第二次支付成功了。

事后，餐馆得到了报酬，滥用这个 bug 的用户也没被追究，免费享用了食物。外界并不知道，谁支付了这些食物的费用，到底哪一方应该对这件事负责呢？

只能说两方都有责任。Paytm 在未告知合作伙伴的情况下，API 返回了一个全新的响应。而 Uber Eats 代码不严谨，没有做足够的检查。正是因为双方都有过错，所以责任划分很困难。

## 言论

1、

我面试应聘者有一个窍门，就是看他说话是否具体。那些合适的应聘者会告诉你大量的细节，而那些只会夸夸其谈术语和概念的人，几乎总是不合适的。

-- David Perell

2、

我原以为，进入太空会感到欢欣鼓舞。但是实际上，看到的宇宙是一片寒冷、黑暗的空虚。

我们唯一的家园——地球——显得那么渺小，而我正在远离它。我感到了强烈的悲伤。

-- [威廉·沙特纳](https://variety.com/2022/tv/news/william-shatner-space-boldly-go-excerpt-1235395113/)谈2021年乘坐“蓝色起源”观光飞船进入太空的感受

3、

我们生活在软件如此丰富的年代，无数免费代码就像一艘小舟，载着我们穿越“PyPI 海”或者“npm 洋”。海上有惊涛骇浪，小舟还会突然漏水，我们必须尽快用胶带和木板修补漏洞，一不小心就会葬身大海。

-- [《我们正在沉没》](https://snarfed.org/2022-03-10_were-drowning-software-dependencies)

4、

好几次，我都被工作搞得精疲力尽，了无生趣，觉得这辈子再也不能编程了。不过每一次，都是因为又接触到新东西，让我慢慢恢复，能够重新开始工作。

-- [Hacker News 读者](https://news.ycombinator.com/item?id=33261055)

5、

当你跳上飞机、使用汽车的辅助驾驶系统、或者在重症监护病房与病魔作斗争，那么你就是把生命托付给计算机。

-- [《走向知识驱动的系统管理》](https://research.redhat.com/events/toward-knowledge-driven-system-management-to-control-timeliness/)

## 历史上的本周

2021年（第188期）：[音乐是反社交](https://www.ruanyifeng.com/blog/2021/12/weekly-issue-188.html)

2020年（第138期）：[失业难以避免，重构人生规划](https://www.ruanyifeng.com/blog/2020/12/weekly-issue-138.html)

2019年（第86期）：[千万不要当完美主义者](https://www.ruanyifeng.com/blog/2019/12/weekly-issue-86.html)

2018年（第35期）：[“一人份”的服务越来越多](https://www.ruanyifeng.com/blog/2018/12/weekly-issue-35.html)

## 说明

周刊每周五发布在[我的个人网站](http://www.ruanyifeng.com/blog)和微信公众号《阮一峰的网络日志》，欢迎订阅。

周刊是开源的，自由使用，仓库在 GitHub: [ruanyf/weekly](https://github.com/ruanyf/weekly)，投稿请到仓库提交 issue。我们还开设了[《谁在招人？》](https://github.com/ruanyf/weekly/issues/2771)服务，欢迎发布或查看程序员招聘信息。

商业合作和产品推广，请邮件联系我（Email： yifeng.ruan@gmail.com ）。

## 鸣谢

文档和笔记服务 [FlowUs](https://flowus.cn?promotionChannel=GW_RYF_01) 对周刊提供支持，非常感谢。

[FlowUS](https://flowus.cn?promotionChannel=GW_RYF_01) 是新一代知识管理与协作平台，集成了“文档+表格+网盘”，具有写文档、制作主页、管理数据、存储文件等多种用途。

周刊开设了[ FlowUs 专栏](https://ruanyf-weekly.flowus.cn/?code=FLOWUS&promotionChannel=WX_RYF_00)，欢迎大家也去开设自己的专栏和页面。

![](https://cdn.beekka.com/blogimg/asset/202207/bg2022072108.webp)

（完）

