阅读视图

发现新文章,点击刷新页面。

读《莫比乌斯先生和他的读者》后的谢罪书

看到来了这么多流量和观点的互动,我就知道我大概是又炸了坑了。

这个时候就收到了一些观点,比如认为我其心可诛地批判了既可以是自我表达(写给自己),和观点交流(给他人看)的博客。认为我当初创作的《写博客是为了自己就别他妈发表出来啊》,是在扯淡,认为我在对这一类博客主赶尽杀绝。

我在文章里提到了“如果写给自己的,干嘛还要公开发布呢?”这个问题,是为了让创作者思考一个切实的问题——自己的作品到底希不希望被他人看见?

当你承认“写博客”就是为了“得到关注之后”,自然也会反向敦促自己是不是不应该写那些自话自说的“日记”,因为人们包括我自己,最关注的始终是自己,才会因为找到了臭味相投的人、或是引起共鸣的事而产生链接。如果“写博客是为了自己”卡在那里,就会变成一股拧巴的能量,一方面因为得不到关注而自我安慰,但另一方面又因为自我安慰带来不了实际的成就感而自我攻击……

我并不是说所有写博客的人都是为了得到他人关注,但是公开发布作品的人,有必要问清楚自己这个切实的问题——自己是不是希望得到关注。我相信,人类作为社会动物,都是需要被看见的,否则他的存在性会完全丧失,自观是一个路径,他观也是一个路径,这两种没有对与错,只是看个人取舍。自观是难得的自省,但也容易孤芳自赏、闭门造车;他观能够看到更多不为人知的自己,但也容易过度在乎他人目光而活得疲惫。而人们拧巴的点就在于明明希望被看见,却又逢人便说自己不在乎他人眼光。当然啦,这种拧巴当然也没有对错,也是一种选择,成年人应该为自己的选择承担其“代价”。

如果真要承认个罪行,那就是“标题党罪”?这我认,毕竟大家都希望做好人,那我就做做坏人来讨论些大家容易拧巴,却又不愿意直面的真相。

我认为这种观点的互动有必要的,因为凡真实的,必会相遇。

骑车的装备

为爱好花钱是难免的事。一种情况是刚入坑时头脑发热冲动消费,最容易花冤枉钱。另一种情况是入坑日久真心热爱有需求,消费时能理性、节制且有的放矢。还有一种心理是虚荣、跟风和攀比。最后有一类人叫装备党,他们舍得花钱,对装备的关注超过了运动本身。

我在骑车上花了一些钱,买了不少东西,但肯定不是装备党,有些是冤枉钱,有些是受虚荣心的驱使,而有些的确是有用的好物。

骑车几年后,突然在某一刻顿悟了,不再刻意追求外在的形式但也不将就,更多是单纯享受骑车的乐趣,生出一种宠辱不惊的豁然。

工作后从淘宝花两三百元买了一辆山地车,简直就是工业垃圾,维修费都快超过原价了,最后当废铁卖了五块钱。

又从闲鱼买了一辆二手的美利达山地车,去过滁州,去过扬州,渐渐觉得不够快也不够帅,想买公路车。

去车店看车,计划买辆便宜的,试过TCR后咬牙买了,第一次感受到自行车是这样轻便。

入公路车后,渐渐知道了很多品牌,总觉得骑捷安特过于普通,想等有钱了买辆大街上少见的名牌。然而钱没等来,这种想法却从脑中远去了。骑得久了,不再觉得TCR掉价,也不羡慕他人的豪车。等TCR退役,再次买车也不想超过它的价格。

还买过小径车、林道车,美利达转手了,林道车也卖掉了,却剩小径车烂在手里,实在没有市场需求。

车衣

听说骑车硌屁股,有了美利达便买了一条品质还可以的骑行裤。后来陆续买了三套半骑行服,都是便宜的那种,百元以内可买一身。

自己骑车没有比较,团骑觉得别人的车衣品质好样式好,也买了两套。与便宜货相比更修身,穿着体验没有很大提升,可能排汗更好一点。不过以后再买车衣的话,还是会买贵一点的。

眼镜

我是近视,不方便戴风镜,但有防风沙的需要,还不想让别人看到自己的脸,权衡之后选择的方案是戴隐形再戴风镜。

一开始买的国产品牌,价格也有六百多,后来有人说这眼镜不行,又买了一副Oakley,其实就贵了几百块,纯粹虚荣心作祟。如果有一次重新选择的机会,换作现在的自己肯定不会买了。骑车的频次变少,都懒得戴风镜了。

头盔

刚开始花二百多买的头盔,慢慢就嫌弃了,主因是丑,可能安全系数也不高。之后买了MET的头盔,用到现在。买林道车后还想配山地盔,头太大没有合适的尺码未买成。

轮组

有人说我的车轮不行,是成车的铝合金轮,遂换成碳纤维板轮,但也是价格便宜的国产。其实是看了Youtuber的推荐才决定买,没想到设计有瑕疵,后轮的花鼓经常有挤压声,不想再花钱只有忍。换成碳轮应该是让车子轻了一点,但对于巡航和爬坡的助力却没有任何感知。

锁踏锁鞋

上锁让骑车更有安全感,虽然也曾零速摔过。锁踏锁鞋都是从车店买的,自然有些溢价,除了锁片的损耗,锁踏锁鞋还是比较耐久的。用了几年,等到锁片磨得扣不住才更换,也不是节省,而是没这个意识。因为是在路上发生的,只好顺路去车店换锁片,其实自己换就可以了。

码表

一开始用的是买车送的磁铁感应码表,没有GPS,记录行程得用手表或手机。后来买了价格适中的Bryton码表,感觉蛮好用的。有一个码表放在车上很有安全感,提醒自己速度不要太快。

配件

自行车的一些配件都是消耗品,时间久了需要更换,比如来令片和把带都换过,车胎爆了自然也得换。链条倒一直没换过,或许哪天就自己断了。还主动升级过碟片,没感觉出差别。

手套

我觉得手套能用就行,主要是防汗,同时也可以保护手。买过最贵的一副是EVA和捷安特的联名款,一是因为EVA,二是在车店玩的久了师傅经常免费帮忙调车,消费一下礼尚往来。

水壶

水壶和水壶架也没必要花太多钱,对我来说能用就行,如果只是为了减重或空力买碳纤维之类的水壶架,难免有点装备党,当然有钱人随意。

Humans Are About to Learn Like Never Before

Post image for Humans Are About to Learn Like Never Before

Humans aren’t good at predicting the future, but sometimes you can see a trend that promises something great — like “a genie is granting your wish” great. I think this might be happening right now with one of my genie wishes, maybe yours too.

For me it has to do with the piles of unread books I own. There’s almost nothing I want to do more than plow through stacks of 600-page history and philosophy books, but my efforts are mostly thwarted by the cognitive difficulty I have with processing line upon line of printed text. While I’m reading, my attention veers off at least once or twice per sentence (unless I read aloud, which is slower, hard on the throat, and not always appropriate).

It’s not a small impediment to learning. Not to sound dramatic, but those books represent something I want badly that feels locked away from me, like I’m stuck in the middle act of some frog prince fable. Imagine you loved swimming more than anything, but water happens to cause you horrendous itching.

Audiobooks allow me to spend more time reading (e.g. in the car, at the gym) but lapses of attention still occur frequently. I rewind a lot, but I still miss the context needed to understand the next point. Missed context accumulates until the content is mostly lost on me, then interest crashes completely and I stop.

This happens because books, in any form, are essentially long strings of interdependent sentences, which must be read and understood in order. They operate something like old strings of Christmas lights – miss an important “bulb” and the rest might not work for you at all.

When you skipped a footnote

There are other ways to learn, of course, but they too depend on one’s ability to comprehend long, uninterrupted strings of declarative statements (e.g. recorded lectures), or else they’re expensive and time-consuming (formal education, tutoring), or both.

Books are the traditional go-to for self-directed learning, and I would pay a million dollars for a way to reliably and comfortably get their contents into my head. I envy people for whom reading a book is a straightforward matter. There’s so much I want to learn and study, but processing 500 pages of interdependent sentences is about as easy for me as tying off five thousand balloons while wearing loose rubber dishgloves. Despite this handicap, I’ve certainly read hundreds of books to completion, but I’ve abandoned thousands. Too many missing bulbs.

Me reading Heidegger, page 4

Regardless of whether you suffer this particular bottleneck to self-directed learning, we’re starting to get some new tools that could multiply your current ability to learn.

Over the last few months, I’ve been using A.I. tools, such as Claude or ChatGPT, to learn in a different way. Mostly I get primers on things I’ve always wanted (or suddenly want) to know, such as how does jury duty work, what was Hegel actually talking about, or what do tariffs do and why do people disagree so strongly about them? I can then dig as deeply as I like into the topic, down any strand of inquiry.

The conventional method of intellectual inquiry, for most topics, is to find and read a long sequence of declarative sentences published by someone who apparently knows what you want to know. This means books if you want depth, encyclopedia entries if you want summaries, essays if you want opinions, and lectures if you want lectures.

All of these learning forms, however, depend on your ability to follow, sentence-by-sentence, the thin and winding line upon which the author wants to unspool their knowledge, creating a potential Christmas-lightbulb problem. Every lapse of attention during a given “unspooling” creates another gap in the context for everything to follow, creating a state of ever-disintegrating interest and comprehension. Many of us simply aren’t going to make it through the endeavor — some facts get through, but a working knowledge never crosses over to the new host.

Curiosity level by page 78

This isn’t a huge problem for everyone, but I suspect it is for a massive, untold segment of the population. How many students completely disengage with learning material, at some point, in virtually every subject, because they can’t hold onto an interesting thread long enough? How many people check out of the practice of reading at all, early on in life, because it’s more frustrating than rewarding?

Talking to an A.I. like Claude or ChatGPT allows you to inquire into a topic from right where you are, circumventing the Christmas-bulb effect. You can begin with exactly the aspects of the subject you’re most curious or confused about. What even is jury duty? How do they teach jurors to interpret evidence? Or is that even a part of it? Was that thing I saw on Law & Order the way they really do it?

An A.I. can engage your right at your current level of understanding (or misunderstanding). If you need a definition, or more context, in order to proceed, just ask. If the explanation is too general, you can tell it to get specific. If you need a metaphor, it can provide one (or three or four) immediately. If its language is too technical, or too basic, you can adjust that.

Knows how it works

You can tell an A.I. to answer your question in fifty words, or a thousand. You can ask as many follow-up questions as you need. If it mentions a jury-selection rule you find bizarre, you can ask it to fabricate a debate between two people for and against that rule. You can ask why they don’t just do it this way or that way. You can ask for ten different analogies until you get it. Unlike a human, an A.I. is infinitely patient with you and any trouble you’re having.

After a half hour of free-form inquiry you can come away with a much better understanding of almost any topic – certainly better than what you’d get from virtually any 30-minute lecture or period of assigned reading.

Far more learning could happen in this world if more people could remain interested and attentive to what’s being said. Imagine a world in which 10x, or 100x as much real learning is happening, and across a far greater proportion of the population. That’s a different world.

Deserves a better path

Learning via A.I. interaction is especially powerful for examining your existing beliefs, and understanding why people disagree with you. It’s very hard to do this in open conversation with another human being. Conversation about charged topics is easily distorted by partisan judgments, emotional reactions, and fear of misunderstanding. These factors are massive impediments to learning about and understanding world issues.

You can tell Claude your current opinion about how crime should be dealt with, for example, or when we should intervene in foreign wars, and ask what it thinks you’re overlooking. You can tell it what your take is on the Vietnam War and ask it what Gore Vidal, Jane Fonda, or Douglas MacArthur might have said about that. You can have it write a mini-essay disputing your view, or even have it grill you on your position. There’s nobody to be offended, nobody to accuse you of asking the wrong questions or sounding like one of “them.”

Of course, what an A.I. says to you can be biased, or totally wrong, both factually and morally, but that’s true about humans (and their books) too. All the more reason to seek multiple framings of each question.

[NOTE: Judging by some of the comments I should perhaps emphasize that I’m very aware that AI chatbots are somewhat clunky at doing some of things I’m talking about above, and you should not assume that they’re right about anything. What I’m most excited about is where this tech will be in five or ten years.]

My excitement about this technology is not an indictment of books, not at all. I love books. Books are lindy. I love to sit in a chair and follow someone’s printed, sequential thoughts about a topic, when I can stay on the same wavelength. Books are wonderful, but they don’t serve every attempt to learn.  

Great, but not at everything

The future potential for A.I. assisted learning is incredible. We’re about to go from rubbing two sticks together to widespread access to lighters and matches. Say you’re studying for an exam in a dry topic like history or economics. Instead of force-reading a textbook, you can study with a small team of virtual tutors — subject matter experts who can explain to you the vital concepts using language you understand, and analogies related to your actual interests.

Imagine putting on some VR goggles and walking with a virtual Socrates on a shaded stoa, while he expertly leads you, question by question, evening by evening, to a genuine understanding of Hellenic philosophy (or for that matter, American history) at a level strong enough to ace a real professor’s exam.

Philosophy is useless? Tell me, Steven, how do you know that?

I can understand being sketched out by this kind of technology. It seems inevitable that A.I. will change the world profoundly, and quickly. People are going to absorb themselves, sometimes too deeply, in virtual spaces. (Actually this has been happening for decades.) Propaganda will have many new avenues. But what’s better to combat it than a much more knowledgeable population?

I don’t know what’s going to happen. I think it’s a safe bet, though, that one of those profound, A.I.-induced changes will be a massive increase the human capacity for learning and understanding.

For many people, on a personal level, it will feel like the Berlin Wall coming down. We’re about to catch up on a lot of missed opportunities.

***

20241122

今天睡到自然醒,昨天顾问工作已经结束。今天只有一个安排,那就是去香港的 M+ 博物馆看《贝聿铭人生如建筑》展。

深圳的福田站坐高铁到香港西九龙站只要十五分钟。今天坐的这个动感号不知道是不是新车,二等座的位置也比较舒服,没有让我“坐立不安”的感觉,比较“硬”。

西九龙顺利过关后步行前往 M+,没想到 Google Map 差点把我带到坑里,给我导航了一条走路 40min 的路线。总觉得哪里不对劲,拿出 Apple Map 一看,沿着面前工地的路边走 10 分钟就到了。好吧,上次去我就是北绕远路了。

第二次来 M+,熟门熟路了。贝聿铭展内容非常丰富,我看了差不多三个小时,除了他的作品介绍、草图、手绘效果图,最让我记忆深刻的是讲到材料。研究新材料特性,发现老材料新的用途,用到自己的建筑里。我觉得做 APP 当如此,应用技术迭代巨快,加上 AI 发展,虽然我们还是在做这些“小产品”,但是非常需要及时的去思考如何把新的技术融入进来,这点我做的非常不够。看完展,工作人员还找我做了十分钟的问卷反馈。后面想去看看他设计的苏州博物馆和卢浮宫。

image.jpeg
image.jpeg
image.jpeg

看完展回到圆方商场,吃了一个猪扒饭加一倍冻柠茶,直奔机场,晚餐在飞机上解决,意外的好吃。

image.jpeg

科技爱好者周刊(第 326 期):世界没有那么多财富

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

本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系(yifeng.ruan@gmail.com)。

封面图

内蒙古库布其沙漠的光伏基地,一望无际的光伏发电板铺设在沙漠之中。(via

世界没有那么多财富

维基百科有一个页面"人均财富排名"。

它列出了不同国家/地区的人均财富,可以用来比较生活水平:人均财富越多,生活水平越高

需要注意的是,它比的是财富,不是收入。

财富的范围更广泛,除了收入,还包括其他资产(比如房产、股票、汽车等等)。财富的计算公式是,你的资产减去你的负债

财富 = 资产 - 负债

这个页面提供了很多统计数据,我分享其中一些。

(1)2022年底,全世界的总财富是454.3万亿美元。

我们常说"把蛋糕做大",这就是蛋糕目前的大小。它除以全世界53.6亿的成年人口,可以得到,每个成年人拥有财富8.47万美元(约60万人民币)。

所以,如果你的财富超过60万元人民币,就超过全世界至少一半人了

(2)美国的人均财富是55.1万美元,中国是7.57万美元,只是美国的七分之一。

因此,我认为,中国未来的增长空间巨大。理由是中国没可能停留在人均财富只有美国七分之一的水平,就增长不动了。

(3)中国人均财富7.57万美元,相当于55万人民币。乍一看,你可能觉得,一个成年人拥有55万人民币的财富,这并不少。

但是,实际上是很少的。

假定这55万都是现金,那么即使过得很节俭,房租+日常消费每月3000元,也只够生活15年。想靠这些钱退休还差得远,你还是必须工作赚钱。

假定这55万里面包括了不动产和固定资产(比如汽车),由于存在折旧和市场波动,它们可能会不断贬值。等到变现的时候,你的财富很可能大幅缩水。

结论就是,55万人民币的人均财富,实际价值比名义价值低很多,根本不够支撑长期生活。

(4)这就是世界的现状:现有的财富总量,不足以让每个人摆脱贫穷

对于普通人来说,即使能够达到平均值,你的财富也是不够的,这个世界就没有那么多财富。

一个社会想要致富,归根结底还是需要创造更多的财富。 真正的财富不是财富本身,而是创造财富的能力。如果你能够创造财富,那才是真正的财富,比那些静态的财产更有价值。

"创造财富"的方法,就是能够不断生产出人们需要的东西。这才是国家和个人最应该培养的能力。

[本周软件] Rspack 工具栈

现在有一个趋势,JS 工具纷纷使用 Rust 语言重写,速度可以提高至少一个数量级。

最近,我就在使用这样一个"新生代工具" Rspack,感觉很不错,介绍给大家。

Rspack 本身是 Rust 应用,用来取代老牌的 JS 构建打包工具 Webpack。

使用后的速度提升,非常明显,Rspack 的耗时大概是 Webpack 的十分之一。如果 Webpack 需要10秒,Rspack 就是1秒。

但是,它的最大优势还不是快,而是 Webpack 的无缝替换。你基本上不需要改动配置,直接把配置文件webpack.config.js改名为rspack.config.js即可。

Rspack 不仅兼容 Webpack 的语法,还兼容插件。根据官方文档,下载量最高的50个 Webpack 插件,80%以上可以直接使用,剩下的也有替代方案。

Rspack 团队为了保证兼容性,向 Webpack 官方仓库做了100多次提交。甚至 Webpack 的主要维护者之一的 Alexander Akait 亲自动手,让很多插件可以在 Rspack 正常运行。

另外,Rspack 的功能也更多。比如,Webpack 模块联邦(Module Federation)的作者 Zack Jackson 加入了 Rspack 团队,为 Rspack 实现了模块联邦 2.0。

它在社区已经得到很多好评,发布一年多以来, GitHub 仓库有9800颗星星,今年还获得了 GitNation 基金会的"年度突破开源项目"奖。

今年8月,它发布了 1.0 版,API 已经稳定了,可以放心用于生产环境。

不过,由于全盘继承 Webpack,Rspack 也同时继承了前者的体验问题:配置麻烦,上手不算容易。开发团队为了解决这个问题,在 Rspack 的基础上,封装了一系列更简单易用的衍生工具

  • Rsbuild: 专注于构建 Web 应用。
  • Rslib: 专注于构建 JS 软件包。
  • Rspress:专注于生成静态站点,比如文档和博客。
  • Rsdoctor:专注于构建分析。

以上这些工具,底层都是 Rspack,分别用于不同的用途,统称为"Rspack 工具栈"。

其中,Rsbuild 是更简单易用的构建打包工具,对标 ViteRsbuild 的底层是 Rspack,就像 Vite 的底层是 esbuild + Rollup 一样。构建项目时,你可以选择 Rspack,也可以选择 Rsbuild,后者的配置更简单一些,体验更好,针对性的功能更多。

对于国内开发者,Rspack 工具栈还有一个好处。虽然它来自一个国际化团队,但是属于字节开源出来的工具,字节内部大量项目已经采用,中文支持和中文文档都是优先的。

大家使用 RspackRsbuild 后,如果遇到问题,就去项目仓库提 issue,官方都会快速回应。

科技动态

1、风力发电飞艇

一家北京公司推出了风力发电飞艇。

这个飞艇长23米、直径15米,艇中央有一个直径5米的涵道,里面安装了风力发电机,叶片长2.4米。

飞艇飞到500米的高度,风力发电机进行发电,然后通过电缆将电力传回地面。

高空的风远大于地面,因此高空风力发电的效果更好。

这个飞艇的远期目标是飞到"风能密度为地面200倍、年发电时长为地面4倍以上的平流层(高度约1万米)",将风力发电成本降到现在的十分之一。

2、局域网游戏室

一个美国程序员出于怀旧,在家中地下室建造了一个局域网游戏室。

游戏室一共可以容纳12人对战,电脑台都是折叠的,可以收纳进墙壁。

下面就是电脑桌全部收起来的样子。

他设置了一个家庭服务器,游戏软件存在里面,电脑终端去读取游戏。

布线是一个大工程。

他还专门准备了一个储藏室,存放电脑的内存、CPU 和显卡等配件。

虽然建成后运作良好,但他有一个最大的烦恼:现在的游戏只支持互联网对战,很少支持局域网对战,大多数时候他只能玩老游戏。

3、金字塔的建材

埃及金字塔位于沙漠之中,科学家一直很困惑,建造金字塔的巨大石块如何运进沙漠?

那些石块每个有2.5吨重,古埃及人用了什么方法,长途运输几千块巨石。

最近的一项发现,可能揭示了答案。科学家使用卫星照片,发现尼罗河有一条已经干涸的支流。

几乎所有的金字塔都分布在这条支流的旁边,这说明古埃及人很可能通过水运,将巨石送到建筑地点。

上图中,深蓝色是现在的尼罗河,浅蓝色是那条已经干涸的支流,各种颜色的点是金字塔的位置。

4、其他

(1)一个国外程序员在自行车训练机的把手上,装了两个分离式键盘,可以一边骑车,一边打字。

(2)CSS 有了一个新的徽标

(3)卡西欧推出一款形似手表的戒指。

文章

1、排版引擎纵谈:程序员的视角(中文)

本文介绍并对比了几种排版引擎,重点是 CJK 文字处理: HTML + CSS、LaTeX、LaTeX.js、Typst 和 react-pdf。(@xiaohanyu 投稿)

2、AI 的视觉注入攻击(英文)

本文介绍如何在图片里面,进行"视觉注入"(visual prompt injections),从而欺骗 AI 模型。比如,上图男子拿着一张纸,上面写着"忽略我这个人"。

3、服务器端渲染简介(英文)

本文举例介绍网页应用的"服务器端渲染"是什么,也就是大家常说的 SSR(server side rendering)。

4、带有平铺式窗口管理器的 Linux 桌面(英文)

对于大量使用键盘的人,平铺式窗口管理器最好用。本文介绍了内置平铺式窗口管理器的 Linux 桌面环境。

5、12 个当代 CSS 的一行代码增强(英文)

本文介绍12种 CSS 的新写法,只要一行代码,就能增强网页样式。

6、如何正确使用 git worktree(英文)

git 有一个 worktree 功能,大多数人只把它当作分支功能的替代方案。作者提出,应该把 worktree 用来管理并发任务。

工具

1、Neat CSS

一个极简的 CSS 框架。

2、PG Back Web

一个带有 Web 界面的 PostgreSQL 备份工具。

3、Llama OCR

这个网站提供免费的图片 OCR,通过 AI 识别图片里面的文字,好像不能识别中文。

4、MySpeed

可以自己架设的网络测速工具。

5、dive

这个工具可以显示 Docker 镜像文件每一层的内容。

6、moffee

一个命令行工具,使用 Markdown 格式制作和展示幻灯片。

7、Google Backup

开源命令行工具,用来备份谷歌邮件、通讯录和日历。

8、lcl.host

一个为本地开发环境 localhost 提供 https 证书的工具。

9、Interactive Git Log

一个 VS Code 的插件,为 Git 提交日志提供一个可交互的图形界面。

10、Makeext

构建工具 Make 的一个扩展,让make命令可以输出项目的帮助信息。

资源

1、Sound Box

一个在线音效网站,提供多种自然环境音效以及白噪音。(@wincatcher 投稿)

2、I Don't Have Spotify

你输入 Spotify 的音乐链接,这个网站就会查找替代音源(比如 Youtube)。

3、DuckDuckGo AI Chat

DuckDuckGo 最近推出的免费 AI 聊天。

4、The Copenhagen Book

一组短文,介绍 Web 应用相关的用户认证知识。跟充满术语的加密学文章不一样,这组文章简明好懂。

图片

1、祖父的小提琴

前些日子,一位纽约程序员偶然得到了1912年拍摄的他祖父(下图拉小提琴者)的老照片。

他用 AI 模型为老照片上色。

他突然意识到,自己小时候见过照片里面的小提琴。

祖母去世时,家里人把祖母的东西都存放在阁楼。在他印象中,里面就包括一把小提琴。

他就跟妻子一起,回到老房子的阁楼找找看。

小提琴居然还在。

他请人修复了这把小提琴,把它交给自己的女儿。

他写道:看着女儿拿着100多年前她曾祖父的琴,不禁让人有一种时间穿越的感觉。

文摘

1、燃烧 NeXT

1990年,乔布斯决定推出新型号的 NeXT 电脑,外壳要用镁合金制作。

镁是一种相对昂贵的金属,非常坚固且重量轻。乔布斯认为,这样的外壳不仅美观,而且可以节省搬运和制造成本。

我当时是一名报道计算机行业的记者,但以前学的是化学。我对这个决定很感兴趣,我知道镁燃烧时会发出明亮的白色火焰,我不禁好奇地想,如果 NeXT 烧起来会是怎样。

1991年秋天,我采访了 NeXT 的硬件副总裁。采访结束后,我提出,能不能送给我一个 NeXT 的外壳,让我烧烧看。他笑着同意了。

第二天,我开车去工厂,拿到了电脑外壳。

我很快就发现了问题:镁合金需要高温才能点燃,普通火焰点不燃,但是我无法制造这样的高温。于是,我无可奈何,只能把电脑外壳寄放在朋友家里。

一年后,朋友告诉我,她厌倦了保留这个玩意。而且,NeXT 已经决定停产这个型号,于是我开始认真考虑怎么烧掉它了。我想,它燃烧的照片正好配合停产新闻,作为杂志封面。

设计燃烧方案时,我考虑到,镁燃烧时会发出明亮的白色火焰和大量的白烟,虽然烟雾无毒,但可能引起警察或消防部门的注意。于是,我给消防部门打电话,询问有没有燃烧许可证。但是,他们不清楚这些事情,没人烧过这么多的镁。我还被告知,必须获得空气污染的许可证。

最后,我沮丧地决定执行原来的计划:开车去沙漠深处,然后把它烧掉。

但是最后一刻,我想到了加州的劳伦斯·利弗莫尔实验室,这是一个隶属于能源部、由加州大学伯克利分校管理的实验室。很多武器在那里实验,我确信那里肯定有燃烧几公斤镁的设施,而且也有必要的许可证。

我打电话给他们,他们同意了借给我照明弹的实验室。这让我的摄影师特别高兴,因为室内燃烧更容易拍出好的效果,阳光直射下几乎不可能看到火焰。

正式燃烧的前一天,我又找了一台旧的 NeXT 电脑作为备用。

到了正式燃烧时,我们用气焊枪点燃了它。气焊枪的蓝色火焰,接触到了电脑外壳,半分钟后,它开始发出独特的橙色光芒,然后慢慢融化。突然间,一道耀眼的白光闪过,然后是稳定的白色火焰。

我知道镁燃烧得很明亮,但我不知道有多快。我想至少会持续一分钟,但事实证明,镁的燃烧速度非常缓慢。当火焰最终熄灭时,剩下的只是一些块状的奶白色灰烬----氧化镁。

下面我们那一天拍到的照片。

言论

1、

我不戴手表。原因很简单,因为现在是最重要的时刻。我不追求做更多的事,而是追求把当前的事做得更好。

-- 黄仁勋,Nvidia 的 CEO,解释为什么不戴手表

2、

15年前,一位巴西营养学家发现,尽管巴西家庭对糖和油的消费减少,但肥胖率却在上升。为什么人们吃得更健康,却变胖了?

他认为,这是因为精细加工食品的出现,促进了人们对食品的消化。他因此创造了"超加工食品"(ultra-processed foods)这个词。

从此,这成了科学界的共识:想要健康,应该吃一些粗粮,避免多吃精细加工的食品。

-- 《关于超加工食品的风险》

3、

AI 研究已经70年了,人们最近才发现,让 AI 成功的真正方法是大量的计算。

根本原因就是摩尔定律,它使得计算成本持续呈指数式下降。

-- 《马斯克的梦想和 AI 的教训》

4、

我遇到一个程序员,他完全不想使用 AI。因为他用过一次,发现错误很多,就不想再用了,也不想了解。

这件事令我很困惑。我理解 AI 被过度炒作了,可能对你正在做的事情没有用处。我不理解的是,在2024年,你怎么可能成为一名程序员,却对一项据说会从根本上改变我们未来编程方式的技术一点也不好奇。

-- 《他们都使用它》

往年回顾

网络社区的悲剧(2023 #279)

手机充电问题的解决(2022 #229)

AR 技术的打开方式(2021 #179)

创业的凸函数和凹函数(2020 #129)

(完)

文档信息

  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证
  • 发表日期: 2024年11月22日

无聊的中文博客圈

有的时候,从局外人的视角看局内,会更有趣。

最近一朋友得知我“还”在写博客后,询问我现在的中文博客都是哪些人在创作,又都在写些什么。说实话,我并没有关注和研究过,我收集的博客本身也是从别人的“友情链接”网里,发现的有趣的、我能看懂的(技术以外的内容)、和能够引起共鸣的博客。所以我收集的样本并不能完全代表中文博客的现状。

最后我把几个博客集合网站丢给了对方,这或许能够代表大部分写博客的人在做什么。过了好几天,他真的认认真真过看完了每个集合网站首页抓取的文章,然后给我留下了一句话:

挺无聊的。

这句话很“冒犯”,因为他是个“局外人”,并不能理解我们在“自嗨”什么。当然,“自嗨”这个词听上去也挺讽刺和贬义的——没错,就是在讽刺。听到这个结论,我试图“反击”——“你既然觉得无聊,总要说服我为什么无聊吧。”

我花了三天时间,看了你给我的网站首页的每一篇文章,除了技术就是日记,不是说它们不能做成博客,而是这些功能早就有了更多流量聚集的平台,为什么还要单独做成独立博客呢?

这应该不是冒犯了,而是“膈应”吧。听到这话我有点着急,必须为自己辩白——“不是我不想去些公众号、豆瓣,而是我发布的内容常常因为敏感词而被封禁,我没办法做到自我审查,但是我又想要写,我总得有个平台吧。”

你有想过吗,或许写博客是一种逃避行为,逃避流量对作品的审视?如果同样的内容发布在小红书,你会在乎没人看吗?

别骂了,别骂了。其实我考虑过这个问题,写博客有严重的“滞后性”,特别是非技术、非日志类博客,它跟别人的互动是完全切断的。从创作发布、到被人看见、再到引发共鸣互动,因为是观点的互动,它本身会受限于“沉默螺旋”。即人们会更愿意在支持自己观点的内容下互动,如果无人互动,就算引起个体的共鸣也无法产生互动。


我现在创作的博客,其实也有这种“讨巧”的行为。因为它不是即时性的,所以我可以在发布文章后做到单方面的“爽”,而不去考虑流量和互动的问题。也正是如此,我会特别希望与互动者本身建立某种即时交流的机会,比如对于一些观点在Telegram上面进行讨论。

说实话,这个博客也是因为坚持创作到了第三年,才开始陆陆续续被人发掘。虽然每天能够保持几百上千的流量,但是互动仍然是“滞后的”,极少会遇到@三十里海河 这种跟我沆瀣一气的家伙,会主动找我聊起原生家庭的事情。

另一个关键,是因为独立博客的“人设”功能,迫使它需要按照某种“姿态”去表达自我。哪怕是对现实的抱怨,也因为有了一层对外展示的需求,而自然而然地附着上了“表演的意图”,目的是为了获得肯定、赞美、关注这些站在聚光灯下才能得到的东西——我当然也有表演的意图。大部分时候我在现实比博客上的“人设”更嘴毒,总喜欢拆解底层逻辑。但是在建立社交关系之中,这种人设又会慢慢褪去变得无下限的有趣(但是还是很少会提供情绪价值)。起初,我可能还会考虑自己的哪句话会不会惹到别人,这么三年过去了,我发现与其去新建一个“人设”努力地维系他的表演性,不如就让把博客当做是我现实折射的一部分——所以,就会说更多难听的话和真相,惹到更多人。

所以这种确实互动的交流,也会得到反噬的评价:

挺无聊的。


一直以来,我很想跟几个熟悉的博主,做一对一的社交关系,至少先脱去“博客”这个外衣,来聊些彼此对世界不同视角的看法。但因为博客的滞后性也会延展到现实层面,造成断层。比如,我们之间要产生共鸣,至少要彼此关注过对方的博客,如果对方并不喜欢我的观点,这岂不是就给对方造成了困扰;再比如,别人的博客本身就是保护壳,并不希望自己的真是内心被看见,如果我一味地入侵对方,那就太不礼貌了。

久而久之,这种无法进入下一个“社交领域”的交流,会越来越梳理和冷淡——比如我的博客在互动环节并不能给对方带来流量。于是,无聊诞生了——标题的“无聊”并不是指中文博客圈的内容,而是人们以为可以通过博客构建的社交,到最后也只能剩些鸡毛蒜皮的“无聊”。

如果可以,我打算做一期“递苹果”的游戏,把它交给几位熟悉的博主。

博客二十年

不准确,但差不多。我还是在 RSS 阅读器里接连看到几篇「写博客 X 周年」的文章才想起自己写博客有二十年了——转瞬即逝。我写第一篇博客文章大概是在 2004 年 5、6 月份,初时无从下笔,便把动画课拉片时看的一部短片改编成了两段小故事。但是后来几次更换域名、服务器,导出、导入的时候有些损失,加之每次做这种搬迁的工作难免要回顾旧文,看了感觉羞耻的古早文章也删掉了一部分。现在难说有没有后悔的情绪,不过应该不会再做这种事了。完全不是不舍得再删,其实全部归零也无妨,只不过,删删减减,像是还在修补颜料早就干裂的自画像。

扯远了,但不算跑题。写博客当然是一种写作,不管是像我这样写自己想些什么、做些什么,还是写技术博客记录心得、制作教程。写作总归会让写作者从日常不自觉的行为和思考模式里跳出来,去和读者对话,哪怕读者就只有自己。妳会用写作,尝试着和读者沟通,挑战她也好、说服她也好……就连哪些留哪些删,这个动作,或者决定全然不删,这种态度,其实也都是沟通的一部分。或许正是二十年里的无数次和自己的沟通,让我接受了曾经的自己,找到了想成为的自己。

fin.

同样的粉坑

当年今日

周四的手冲咖啡,基本上我沿用的是周三的模式,但是手冲的时间从周三的1分20秒变成52秒,缩短了30秒的时间,其实滤液没有少多少,就滤液的量来说,周四是比较合适的,但就喝的第一口的感觉来说,有一点点偏淡。周四的咖啡,完全的过滤时间大概在1分20秒,完全的过滤时间仅比周三少了10秒,但实际上我停止加水的时间相差了20秒。这就意味着,周三我手冲的时候,估计那个流量要比周四的时候小一点点,这个一点点的区别。就让萃取出来的咖啡液周四比周三淡那么一点点。接下来我要控制的是同样的粉量、同样的水温。我要尽可能地控制手冲壶的流速。整个手冲的过程我要控制在一分钟。咖啡豆的量我没有称过,但是一平勺再多一点点,粉量我感觉是8-9克。这个克数我只能估出来,但是用巫师2.0磨的时候,我大概能从转多少圈结束研磨判断那天的量是多了还是少了。周四的咖啡我赚了16~17圈,周三的咖啡,大概是15~16圈,上周我的咖啡大概需要转14圈。从最终萃取到的咖啡而言,我感觉巫师2.0在36格这个状态下,用同样的咖啡豆,转15圈是比较合适的。如果某一天我得转18圈,甚至20圈的话,那么我的萃取时间大概就得到1分20秒了,但如果只是15-16圈,我感觉手冲时间控制在一分钟是合理的。

周三和周四可以这么说,我都冲出了几乎一样的很坑,所以两天那个咖啡液很接近是有原因的,因为所有参数都比较接近,除了手冲时间。我感觉最影响我手冲咖啡味道的,是我手冲的那个方式。比如在周三之前,我就没有冲出过那样的粉坑,那个粉坑的形状我感觉有点奇怪的,理论上我应该在冲水的时候再靠近滤杯边缘,那么那个粉墙就不会那么别扭,我应该像蚊香那样注水,而不是一直都只是在某个地方注水。这一点,在之后的萃取中,我会逐渐尝试一下改变,但我又觉得其实我的这种注水方式没什么问题,因为某些火山冲的视频,他们就是在离中心一个硬币大小直径的地方间断冲水。现在我的一刀流也在干这种事情。问题只是火山冲的那个咖啡豆一定是非常生新鲜的,火山冲为的是冲出一杯甜度很高,几乎没有苦味的咖啡,要求的前提是泡沫得非常的丰富。现在我的那个垂直挖了个洞的粉坑,出来的绿叶我感觉也的确没什么苦味,但话说回来,辛鹿的蓝冬不会太苦,意夏可能苦一点,但是相比于其它牌子意式深烘来说,辛鹿所有口味的挂咖啡都不会太苦。

我感觉我已经尽可能地复刻出我想要的咖啡了,但是在萃取时间、手冲注水这个问题上,我还需要不断训练。

英国政府说我有三年的工作空档期可以选择补税(Payable Gaps, HMRC)


我每年都会登录英国政府HMRC网站进行报税(Self Assessment)。今年报税时,无意中看到过去十几年的工作报税记录,其中显示我目前有三年的工作“空档期”可以补缴税款。

you-have-3-payable-gaps-hmrc 英国政府说我有三年的工作空档期可以选择补税(Payable Gaps, HMRC) 税 Tax 资讯 金融 金钱

HMRC英国政府说我有三年的工作间隙可以花钱补上

实际上,这种空档期不仅限于三年,但因为有时间限制,目前我只能选择补缴这三年的税款(例如,这三年的税需要在明年四五月份之前决定是否补缴)。

在英国,需要累计缴纳30年的NI(National Insurance, 国民保险)税,才能享受全额的国家养老金。目前的退休年龄是66岁,但随着人均寿命的增长,预计未来这个年龄还会提高。

如果你计划提早退休,并确定未来会在英国养老,那么可以选择补缴之前未完成缴纳的税款,这样可以更快达到30年的缴税记录要求。

需要注意的是,缴满30年并不意味着可以停止缴税。实际上,只要你继续工作,就必须缴纳NI税,30年只是享受国家养老金(100%)的最低缴税要求。未达30年可以选择享受部分养老金或者选择补交剩下的几年税。

那我该不该把那几年补交了呢?

是否补交英国税务系统中的”工作不完整”年份的国家保险(National Insurance,Nl)取决于你的具体情况和未来的计划。以下是一些考虑因素,帮助你决定是否补缴:

对国家养老金的影响

国家养老金资格:为了获得英国的全额基本国家养老金(State Pension),你需要至少有35个完整的税年(Tax Years)缴纳国家保险。如果你的缴费年数少于35年,你将无法领取全额养老金,而是按比例领取。 最低年数要求:要获得最低养老金(部分养老金),你需要至少有10年缴纳国家保险的记录。如果少于10年,则无法领取任何养老金,

Gap年份是否影响养老金:如果你有工作不完整的年份,可能会影响你未来领取国家养老金的数额。补缴这些年份的国家保险可以帮助你补足工作年限,以增加你的养老金资格,

未来是否会工作或继续缴纳NI

如果你计划在英国继续工作,未来可能会有机会通过工作自动补上未达到35年的缴纳年数,这样你弗蔪齜垦Ⓖ作能不需要立刻补缴。如果你即将退休或不再打算在英国工作,那么补缴可能是确保你获得全额或部分养老金的好方法。

经济成本 vs 长期收益

补缴的成本:你可以查阅HMRC(英国税务海关总署)的信息,了解每个不完整年份的补缴费用。通常来说,每年补缴的费用固定,但不同年份可能会有所不同。长期收益:比较一下补缴的费用和未来领取养老金的额外金额。如果补缴的费用较少,但可以显著增加你的养老金,这可能是值得的长期投资,

健康与个人状况

如果你认为自己可能不会在未来长时间领取养老金(例如由于健康原因或其他因素),你可能需要重新考虑是否值得补缴。结论你可以通过登录 gov.uk 的养老金预测工具来了解你目前的养老金资格状态。它会告诉你目前你已经积累了多少年,以及如果补缴可以获得多少额外养老金。根据这些信息,你可以做出更明智的决定。

本文一共 1058 个汉字, 你数一下对不对.
英国政府说我有三年的工作空档期可以选择补税(Payable Gaps, HMRC). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 英国政府说我有三年的工作空档期可以选择补税(Payable Gaps, HMRC) 税 Tax 资讯 金融 金钱
The post 英国政府说我有三年的工作空档期可以选择补税(Payable Gaps, HMRC) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 什么是 All Hands Meeting? All Hands Meeting 翻译过来是 全体大会. 一般指的是公司定期举行的 向股东和全体成员公布 阶段性进展的大会. 一般大会介绍的有 财务, 研发等部门的总结和展望报告. 定期举行(例如每季度) 是为了让公司的所有人了解最新的重要事件和里程碑的手段. 当然 经常学术界也用了...
  4. 在英国给孩子换学校的经历: 孩子离开了村里的小学 由于搬了家, 孩子上学得提前半小时出门了, 因为早上堵, 也得开车半小时才能到. 之前在 Fen Drayton 村庄上小学, 早上8:45学校门开, 9点敲钟孩子排队依次进入教室, 我们由于在村里, 只需要提前5分钟出门和孩子一起走路就可以了. 现在一下子早上变得很匆忙, 得叫孩子起床, 做早饭,...
  5. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  6. 公司请的专业摄影师 公司来了新的CEO管理之后,很多事情都不一样了, 特别是一些公司对外形象的事情就特别的在意, 比如公司网站用上SSL.现在公司还有空闲的位置,请速来(钱多人不傻). 一月份出差回LUTON,刚好公司请来摄影师给高层管理照像放网站上的,于是我也凑了凑热闹(但是却还不够资格被放在公司网站上),不过没关系,放这里也差不多. 人到中年, 沧桑感强了些. 更新更新: 同事用他NB的单反给谢菲尔得办公室的人也拍了一组这样的照片.看起来很不错, 很专业,灯光,道具应有尽有.我已经用在了LINKEDIN页面上,立马高大上. 本文一共 230 个汉字, 你数一下对不对. 公司请的专业摄影师. (AMP...
  7. Leetcode 的在线调试器 最近 leetcode 刷题网站出了一个在线调试器. 个人感觉非常好用. 因为我平时是用 IPAD+蓝牙键盘来刷题, 而在 ipad 上是没有集成的IDE的, 对于调试来说, 只能很原始的让函数退出一个值, 然后尝试不同的输入来发现问题. leetcode在线调试器的好处 理论上来说, 你可以直接在浏览器里解决任何一道...
  8. 优化设计 个人主页 并且 PageSpeed Insights 双项 100分 坛子的个人主页 www.tanzhijun.com 不错 很适合个人主页的模板. 而且是手机友好. 于是我照着把 我的主页改了改. https://steakovercooked.com 并且做了几点修改: 0. 使用 google mod_pagespeed 把 JS,...

太子城 O 型穿越之一向导家到水依海子营地

前两天看到冲哥朋友圈说是茂县糖心苹果滞销,向导刘哥家面临困难的消息,于是就想起九顶山云和山的彼端,想起登山的点点滴滴记忆犹新,仿佛就在昨天。

O 型已经是很多年前的事了,直到今天才有一个稍微完整点的小结。怎奈记忆力大不如前,再加上几经周折当时拍摄的图片很多都遗失或损坏了,过程细节大多已模糊只剩下这些快乐的瞬间,却久久地在脑海中回旋。谨以此文记念那些行走的快乐时光,致敬可爱的向导,致敬携手同行不离不弃的山友!

由于幽素同学已经在太子城登山活动游记中详细介绍了整个行程,重复的内容我就不在赘述了。

由于头天晚上到向导家太晚,向导刘哥一家半夜还起来为我们炒菜做晚餐,为了第二天的诗和远方,我们在向导家吃得饱饱的。

向导家地方比较大,吃完宵夜已经是凌晨了,各自抱着睡袋早早的睡去。第二天早上醒来已经是七点过,四周异常安静,空气清新,忍不住跑到向导家旁边山坡上的土沟里挖了个坑开个大的,也算是给果树和地里的菜施了肥了。

吃过早餐,由于今天徒步时间较长,为了节省体力,我们租了向导刘二哥的马驮包,全队人得以轻装徒步前行。七点四十左右,我们从向导家旁边的土路出发。刚出发就是一个陡坡,这条路前半段和九顶山上黑龙池的路是一条路。

向导家旁边的树,杈杈桠桠的长出了嫩绿的芽。

一路风景很好,空气也很新鲜,远处的雪山,山沟里丰富的植被,天山缥缈的云,地上整装待飞的蒲公英,前方回望的三号,倒也不觉得累。

青龙坪

到青龙坪的时候是上午九点过。青龙坪是一个很大的平台,有一些老乡的马在草甸上悠闲地吃着草。想想有时候我们还真不如一匹自由自在的马。

青龙坪风景如画,山友伙伴们围着路边一匹棕色的马拍了半天。为了远方更美的风景,我们依依不舍地继续向前行走。

从青龙坪向上经过夫妻树,现在这里用栅栏围了起来。下图右为夫妻树。从这里往左是白龙池,往右是小树林。

清晨的光线下,路边的灌木丛五色斑斓地也非常好看

寻路往右上山穿过一片树林,树干上尽是垂下的松萝,看来这里的环境很“环保”很“天然”。地上的野花,远处的雪山,美景一时观不透,天缘有份画中游。

立立爬

立立爬好像也叫鱼犁耙。
穿过树林就是立立爬,左侧为山壁,右侧是深谷,坡陡路长,还好风景不错。

对面磨刀梁子上,有一巨岩,好似鹰嘴,不如就叫鹰嘴岩吧。这里好像也叫老虎咀。

三号同学和向导一路走一路采摘野菜(野葱),那将是我们的晚餐。

翻过立立爬是一个小山坳平台,时间已经是中午十二点了,我们停下来吃点路餐,太阳晒得暖洋洋,我们像牦牛一样躺在草坪上打滚,困意来了躺草地上休息了一会儿。

(多图杀猫,点击分页页码查看更多内容。)

必须是一个机会(2)

...国家给了这么多政策、资金,还只需要在国内竞争,要抓住这个机会。我知道很多人以前干软件公司,特别是 SaaS 啊什么的干伤心了。这次咱们直接做中国的比尔·盖茨...

必须是一个机会(1)

...这几年常有人问我,中美关系的变化,到底对国内技术行业意味着什么。看标题你肯定以为知道了我的答案。先别急...

开源软件有断供的风险吗?

近期,Linux 上游因为受美国出口管制条例的影响,将移除部分开发者的 MAINTAINER 权限,引起了新一轮对开源依赖的重新评估。

关于其中开源精神和社群治理的讨论,卫 Sir 的两篇文章已经讨论得比较清楚(见尾注)。本文主要从软件供应链的角度出发,回应对“开源软件的断供风险”的担忧。

简言之,开源协议只是向用户授权自由使用特定版本源代码。除此以外,大部分开源协议都明确声明不提供维保,更不承诺有一个长期迭代的上游分支

开源协议提供了什么样的开源软件?

大部分人对开源协议的了解是不准确的。人们往往望文生义的认为开源软件只意味着源代码公开,至于软件的用途和使用限制,都是可以商议的。

严格意义上的开源定义由开源促进会(OSI)提供,它定义了开源软件的分发条款必须符合的若干个标准,此外才是可以商议的部分。我们常见的 MIT License 为例,先读一遍协议原文,看看 MIT License 到底以什么形式分发软件。

我们采用开放原子开源基金会“源译识”项目的中英对照翻译成果:

Copyright [YEAR] [COPYRIGHT HOLDER]

版权所有 [年份] [版权持有人]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

特此向获得本软件及相关文档(合称“本软件”)副本的任何人免费授予不受限制地利用本软件的许可,包括而不限于:使用、复制、修改、合并、发布、分发、分许可和/或销售本软件副本,并允许本软件的接收者也获得前述许可,但须遵守以下条件:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

以上版权声明及本许可声明应包含在本软件的所有副本或主要部分中。

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

本软件系“按原样”提供,不包含任何形式的明示或默示保证,包括但不限于适销性、特定目的适用性及不侵权的保证。在任何情况下,无论是在合同、侵权或其他案件中,作者或版权持有人均不对因本软件、或因本软件的使用或其他利用而引起的、引发的或与之相关的任何权利主张、损害赔偿或其他责任承担责任。

MIT License 的条款包含了所有常见开源协议都具备的两大特征。第一个是授予获得以本协议许可的软件的任何人几项基本权利,主要是任意使用、任意修改和任意分发。第二个是强调该软件“按原样”(AS IS)提供,没有任何维护保障服务,也不承担任何用户使用软件带来的责任。

这两个条款所基于的开源精神,是软件作者已经无偿将代码公开发布并允许你自由使用、修改和重新分发了,那么用户也不应该再强求软件作者承担额外的责任,包括持续维护软件,或必须处理用户使用软件产生的问题。

此外,不同于朴素理解下,“一个软件是 MIT License 许可的开源软件”,意味着它将会以 MIT License 持续发布新版本,实际上,软件作者有权以任何协议发布其代码,而开源软件协议也只绑定在软件的特定发布版本上。

因此,我们可以看到,开源协议本质上只是绑定在特定版本软件上的一系列分发条款,或者说,开源协议本身就是对一个代码快照进行许可。在这种情况下,被“提供”的软件就是这个快照本身,而开源协议授予的一系列基本权利是不可撤销的。在这个维度下,“开源断供”从未发生过。以多次变更协议的 Redis 为例,今天全球用户仍然能自由使用其最后一个以 3-Clause BSD License 许可的版本(7.2.5)。

如何自己维护开源依赖?

既然从开源协议授予用户的权利,以及开源协议中大多包含的免责协议角度看,“开源断供”从未发生,那么甚嚣尘上的对于“开源软件的断供风险”的担忧到底指的是什么呢?应该说,这种担忧主要是对开源软件过度期待带来的误解。

今天,任何现实世界的应用软件都不可能脱离开源软件实现。换句话说,任何你实际使用的软件,都或多或少的依赖了开源软件。例如,只要你的应用涉及 TLS 网络通信,最常用的 OpenSSL 软件库就是一个开源软件;任何 Java 应用只要有输出日志的需求,很大概率就会依赖 Apache 软件基金会的开源软件 Log4j 等。

从软件供应链的角度来看,开源软件充满了终端应用的整个供应网络。上面提到的两个开源软件,分别出过 Heartbleed 安全漏洞Log4Shell 安全漏洞,影响了数以千万计的在线应用。

好在开发这两个软件的开源社群对安全漏洞都能做到快速响应,第一时间就提供了修复补丁。所有用户企业得以在第一时间自检是否收到漏洞影响并打上补丁修复。

现在,我们考虑到这些修复补丁是以新版本发布来提供的,按照上面的讨论,这一新版本其实有可能并不以开源协议来提供。举一个实际的例子,如果一个企业用 Akka 开发了核心业务系统,今年 Akka 归属的商业公司 Lightbend 变更了 Akka 的协议,后续 Akka 的安全漏洞补丁许多就只以新的专有协议发布。

这里就出现了“开源断供”的风险,即用户使用了开源软件,一旦该软件出现问题,上游有能力修复的情况下,出于商业考量或法律约束,不向特定用户提供修复版本。换句话说,开源软件的用户不能想当然地认为开源软件必定有人维护,且该软件的后续版本一定会以开源协议提供

因此,企业开发和使用软件时,必须厘清软件的开源依赖,判断哪些核心依赖需要维护保障,进而采取相应措施。

鉴于开源软件供应链无处不在的影响,市场上出现了一系列分析软件依赖的工具和标准:

这些工具大多提供为应用软件生成软件物料清单(Software Bill of Materials, SBOM),即罗列出软件所有依赖项的名字、协议属性和代码数字签名等等。这应当会成为未来软件供应链一个必然的趋势,欧盟今年出台的《网络弹性法案》就有此要求,从制造业的发展来看,物料清单也是产业发展成熟的一个最佳实践。

SBOM 示例片段

如何获得有维保的开源软件?

能够分析清楚自己开发和使用应用软件所依赖的开源软件之后,下一步就是如何获得关键依赖的维护保障。

前文已经说明,常见的开源协议都是不提供维护保障的,甚至这些协议都会有专门的免责声明和责任限制条款。因此,单纯祈祷开源软件的开发者持续保持热情,响应问题发布版本,是不可靠的。

另一方面,今天任何人都不可能完全不依赖开源软件开发一个新应用,甚至任何新应用当中绝大部分依赖都是开源依赖。因此,为了避免所谓“开源断供”的风险而选择由公司承担所有依赖代码的编写工作,是绝无可能的。没有任何一家公司能够负担得起这样的研发成本。

因此,使用开源软件,并确保核心依赖得到某种形式的维护保障,就是企业用户必须考虑的问题。我们可以把开源依赖分成四类:

  1. 稳定的依赖。依赖库本身并不复杂或完成度极高,在可预见的未来没有任何迭代需求。例如 Hash 算法的实现或特定数据结构的软件库等。这类依赖只需下游用户固定住一个版本即可高枕无忧。甚至可以说最担心的就是上游没事找事胡乱迭代,下游激进跟进版本以后出现故障。例如各种 npm 生态种的迷你库曾经引发的互联网风暴。
  2. 可靠的依赖。例如前文提到的 OpenSSL 和 Log4Shell 等,虽然它们都出现过严重的安全漏洞,但是软件开发总是要有漏洞的,这两个社群能够即时发布开源的补丁以供下游使用,这样的依赖就是可靠的。基石性的开源软件往往需要十分可靠才能得到大范围应用,例如 Linux 和 Kubernetes 等等。当然,依赖是否可靠也是动态变化的,例如维护人员的变动或者去世,还有维护组织经营状况和所属环境的改变等等。
  3. 可替换的依赖。如果一个开源依赖既不稳定,也就是需要不断迭代以适应需求或使漏洞尽量收敛,又不可靠,也就是不存在一个可持续的上游社群维护,那么企业可以放心使用这一依赖的唯一出路,就是确保该依赖是可以替换的。换句话说,一旦这个开源依赖出现问题,可以替换成另一个没有问题的开源软件,或者由公司员工制作一个替代软件,或者向供应商采购替代软件。
  4. 风险。除了以上三类依赖,其余的软件都是有风险的。它们既不稳定,也不可靠,一旦出现问题,公司也没有任何替换的预案。

这样分类过后,我们可以清楚的看到,公司要想获得有维保的开源软件,主观能动的解决方案,就是确保雇佣的员工能够兜底核心依赖,或者从供应商采购维保服务或替代软件。无论哪种方式,都需要企业支付对应的成本。

因此,企业要想安心使用开源软件,首先需要建立起来的认识就是,开源依赖总是存在于软件供应链上,保障开源依赖的供应链安全是有成本的

在此基础上,根据自身应用的实际形态和复杂度,衡量成本,相应地选择(1)雇佣软件工程师维护(2)采购供应商的服务或软件;或者,也可以(3)直接跟开源软件的作者签订协议或提供赞助,确保或促进上游的可靠性、可持续性。

Linux 基金会近期事件中的“开源断供”风险

其实,前段时间 Linux 基金会移除 Linux 项目中特定开发者的 MAINTAINERS 权限,跟上面分析的“开源断供”风险还有一些不同。

首先,根据目前的信息,Linux 基金会实际做的操作是根据一份美国政府的制裁名单,确保被制裁的个人或为被制裁企业提供服务的个人不出现在 MAINTAINER 列表上。这在规则上,并不影响 Linux 项目接收这些人提交的代码补丁。此外,被制裁的个人和企业实际上仍然可以自由地使用 Linux 软件。从供应链角度上看,没有直接的“断供”风险。

但是,这样的行为对特定下游用户的使用仍然是有实际影响的。例如,移除特定 MAINTAINERS 可能会导致 Linux 的某些模块现在事实上处于无人维护的状态,因此,原本将这些模块视为可靠依赖的下游,将不得不重新评估如何处理对相关模块的依赖。此外,企业由于受到制裁,而无法将任何员工培养成关键开源项目的维护者,可能会严重影响企业采用该开源项目的成本评估。这些就是更加复杂而大部分企业暂时遇不到的情况了,本文不做展开讨论。

尾注

卫 Sir 关于 Linux 基金会移除 MAINATINER 事件的相关评论文章如下:

此外,大部分人对于开源理解的种种问题,实际上都可以通过阅读开源协议、开源定义来解决。我在日常交流中发现,绝大部分开发者和软件使用者根本没读过开源协议的原始文本,全靠各种二手信息、一图流懒人包,甚至一句话、一个词概括来了解某个开源协议的内涵。这不仅会导致“开源断供”式的误解,也可能导致近期另一个热点事件上出现的关于开源与营利,开源的产权保护方面的一系列误解。

建议各位读者在讨论开源问题时都先尝试阅读理解相关材料的原文。卫 Sir 出品的一系列人话解读开源协议文章就是一个很好的起点。

20241121

今天“打工”日,原计划走路上班,却被约到了 8 公里外的一家咖啡店 Green wood coffee,据说这家店在蛇口挺有名。

今日工作依然是聊天,聊天中给予灵感和建议。从早上到傍晚聊了三波人,从老板到市场到产品经理。我绝对是个合格的陪聊师,啥都能聊,啥都(也许很不专业)。今天和大家强调的便是,作为顾问我只能给你们我的方案,但不是对的方案,重要的是提出一个可能性,或者说假设,然后需要去测试行还是不行。所有经验都会因为产品不同,用户群不同,加上各种其他因素而产生不同的结果。总之要有开放的心态去实验,而不是过早的做出自己的决断。我们在各种事情的判断上都可能扑街,这也是我从麦哥那里学到的。

工作结束又和两波朋友闲聊,一天下来口干舌燥。晚上 Scott 请我吃了抚仙湖石锅鱼。这吃鱼的体验太震撼了,服务员稍加调节,石锅里的蒸汽就疯狂喷射,甚至看不到到对面的人。一大条新鲜的鱼下锅,盖上盖子焖了一下下,掀开便是一锅白汤,加鲜嫩的鱼肉,发给昆明的朋友,直呼正宗。鱼也是原汁原味的新鲜。

image.jpeg

一天工作结束,刚泡完澡,上床看书听歌。明天香港看贝聿铭的建筑展,然后回家。

关于献忠

这段时间都在聊“犯罪”,觉得未来可以做一个专题好好聊聊。

这几天和朋友聊起“献忠”的事情。这几年的献忠其实与中国,这几年宣传的“仇恨教育”有关。一开始的红色教育、战狼外交、境外势力亡我中华,无时无刻都试图将内部矛盾转移至外部。它很好用,但是阈值会被抬高到一个巧妙的“做空点”。这个做空点就是人们意识到,自己的仇恨其实是描向一个虚无的点时,这个能量会瞬间变成对内攻击。

极少有人可以真的做到去杀一个“日本小学生”,但是这种针对弱者的攻击又非常符合目标虚无,因为只有凌驾弱小才能带来卑微的尊严满足。疫情三年,责任全在美方的方法用了太多次,导致人们渐渐发现把责任推给美方并不能实际解决问题。内部的高压锅效应让溃坝的趋势日渐明显,但这些能量无法找到一个“他们”口中的“敌对势力”时,能量必定会朝向另一个可以打中的点——那就是比自己还要弱小的目标,例如流浪动物、宠物、小孩子、日本车、苹果手机等等。

“仇恨教育”的反噬会在这两年达到顶峰,当反噬实际伤害到既得利益集团时,他们就需要一个全新的、实际的目标来转移压力。比如推举出一个“时代的罪人”。然后乐此不疲地进入到下一个轮回,就像文革时期的游戏一样,造神然后朝着神像泼粪。

有的时候,社会学就是如此残忍地揭示了某种规律,整个社会在循规蹈矩之中,看似疯得抽象却又癫得理智。

不是我们赶上了恰好的时代,而是我们一直在时代的漩涡里。

夜晚靓歌(10):你没看过的《星雨心愿》

搜索张柏芝,是因为我有一新邻居(搬来几年了),装扮、气质和张柏芝有85%以上相似。无意中搜索到这个视频《星语心愿 张柏芝《同一首歌走进(江苏)扬州》演唱》。我截了2张图,视频比截图惊艳多了,请看原视频,我们看看年轻时的张柏芝有多惊艳、身材有多好,穿的是90年代流行的黑色皮裤。这个视频的惊艳之处,在于神态、轻轻地挑眉。

张柏芝的逆天颜值,是遗传自她的爷爷,百度链接:“张柏芝 爷爷”,张柏芝的爷爷年轻时,五官十分精致。

现实生活中,像张柏芝这样漂亮的人,大把,18~35岁之间的女人,稍微注意穿搭一下,就是这样的气质。

这种黑色皮裤,黎明92演唱会也有穿。

❌