MoreRSS

site icon科技爱好者周刊修改

由阮一峰(RuanYiFeng)主理,可能是中文互联网最受欢迎的技术分享周刊。每周五发布。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

科技爱好者周刊的 RSS 预览

科技爱好者周刊(第 331 期):你可能是一个 NPC

2024-12-27 08:19:28

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

本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系[email protected])。

封面图

南京城北万象汇商场,与红山动物园合作,架设了一个38米高的长颈鹿。(via

你可能是一个 NPC

最近,美国发生了一起轰动的大案,一家医疗保险公司的 CEO 当街被人击杀

嫌疑人很快抓到了,是一个26岁的青年,名为路易吉·曼吉奥内(Luigi Mangione)。

媒体纷纷挖掘这个青年的背景,发现他是一个作家的粉丝。

就在几个月前,他向作家打赏200美元,并进行了多次视频通话。

媒体就去采访作家,询问两人在通话中说了什么。

作家详细地回忆了他们的通话内容。其中有一段,我觉得很有意思,分享给大家。

曼吉奥内对作家说,他很喜欢作家的一篇文章《你可能是一个 NPC》

NPC 指的是电子游戏的"非玩家角色",比如路人、门卫、警察等等,用来模拟现实环境,由程序控制,一举一动都是设计好的,没有自主意识。

作家的那篇文章提出,人类越来越像机器人,彷佛 NPC 那样,行为逻辑都是预设好的

曼吉奥内高度认同这个观点。他前不久去日本旅行,认为日本充满了 NPC。他说了一件亲身见闻。

一天早上,他在街上看到一名男子癫痫发作,倒在地上。他跑到最近的警察局求助,警察就跟着他去现场。

路上遇到了红灯,警察立刻就停下来,坚持要等绿灯再过马路,即使那时马路上根本没有汽车。

曼吉奥内很不理解,病人正在发病,神智不清,可能有生命危险,警察却坚持遵守交通规则。救人难道不是更重要的事情吗?

他由此认为,日本人"缺乏自由意志",规则怎么说就怎么做,不会自主行事,就是活着的 NPC

他还观察到,日本存在一种"隐蔽族"(hikikomori),他们不出门,一个人整天待在卧室里,用电子游戏、上网、视频来消磨时间。

曼吉奥内认为,这些人也是 NPC,他们失去了对生活的控制,无法参与社会生活,就选择放弃,等于丧失了生活的自主权。

他观察到,这种现象不仅存在于日本,正在向全世界蔓延,世界各地越来越多的人正在成为 NPC。他们要么无法自主的生活,要么无法选择自己的行为,而是根据规则和指令来行事,就像被程序控制一样。

科技公司推动和加剧了这种趋势,互联网使得人们越来越分心,把时间都花在网上肤浅的娱乐,不再集中注意力于自己的生活,把生活都交给程序,无法形成自主的意识和行为。

以上就是曼吉奥内的观点,我认为是很真实的观察。一方面,人工智能使得机器人越来越像人类,另一方面,人类的自主性在消退,越来越像机器人。现实与游戏、人类与机器人,越来越难以区分了。

AI 编程挑战赛,即将报名截止

这几期的周刊一直在介绍,正在举行的全国 AI 编程挑战赛。

它的报名马上就要截止了。

(1)应用赛道的作品提交,到1月5日截止。如果你有好的创意,能用 AI 做出可运行的作品,就可以报名参加。

(2)如果你善于刷题,可以报名参加算法赛道,但不能用 AI 来解算法题。

我是鼓励大家参加。大赛有丰厚奖品,设了20万的奖金池,获奖者还有机会拿到岗位 offer。就算没得奖,也是一个很好的锻炼,能够动手编程、熟悉 AI。

大赛由豆包 MarsCode 和稀土掘金技术社区共同主办。详细介绍和报名方法,请看前两期的周刊,或者点击这里

科技动态

1、观鸟神器

一个美国女子发明了一种观鸟神器,在网上引起了轰动。

她在墨镜上挂了一个托盘,上面洒了鸟食。小鸟就会停在上面,完全没有意识到,就停在她的鼻子前面。

这种观鸟神器,简单又体验独特,怎么以前没人想到。

2、自豪版本规范

一个开发者提出自豪版本规范(pride versioning),对软件版本进行编号。

如果你对新功能感到非常自豪,就发一个大版本(递增第一个版本号),否则就发一个小版本(递增第二个版本号)。

如果你对某个地方感到尴尬和羞耻,就发一个补丁版本进行改正(递增第三个版本号)。

3、能量收集电子贺卡

一位国外的程序员,制作了一张可以收集能量的电子贺卡。

这张贺卡就是信用卡大小,上面有电路,但是不带电池,通过收集周围环境的能量,LED 灯会闪烁。

最简单的方式,就是放在灯光下,它会收集光能。

你也可以用 USB 供电。

它甚至可以放在路由器或微波炉旁边,吸收 WIFI 和微波的能量。

4、糖打印机

你想过用糖来 3D 打印吗?有人就真的做出了一台糖打印机。

它用热风枪,将白砂糖吹塑成型,打印出各种形状。

下面是它打印的一颗钉子。

它可以打印出很复杂的形状。

这些东西都可以食用,因此这种机器在食品行业应该很有用,在夜市可能也会很轰动。

文章

1、我的几何人生(中文)

著名华人数学家丘成桐,回顾自己的成长道路。

2、编程十年的感悟(中文)

"代码写多了才意识到,程序员的竞争力并不是写代码,也并不是哪门语言或者框架, 其核心竞争力是通过技术解决问题的能力"。(@ramsayleung 投稿)

3、我给博客添加 dark mode(中文)

作者介绍他为博客添加 dark mode 的处理方法和注意事项。(@Spike-Leung 投稿)

4、七个最佳的生产力 Docker 镜像(英文)

本文介绍七个可以自己用 Docker 镜像架设的生产力服务。

5、不可变 Linux 发行版(英文)

越来越多的开发者开始使用不可变的 Linux 发行版(immutable Linux distro),即系统文件在运行期间不可更改。这样会让系统更稳定,也更容易迁移和回滚。

6、macOS 命令行内置的工具程序(英文)

本文介绍 macOS 内置的一些命令行工具程序,比如 security、open、pbcopy、pbpaste 等。

工具

1、YunoHost

一款虚拟机软件,内置了常见的云服务,可以一键启用,省去了安装云服务的麻烦,参见介绍文章

2、MarkItDown

微软官方推出的工具,将各种格式的文件(主要是 Office 文件)转成 Markdown 格式。标题是 GitHub 仓库链接,下面是线上体验

3、爱幕

在线字幕编辑器,支持音频提取和字幕翻译,免费使用,自己部署需付费。(@zhw2590582 投稿)

4、Beautify Screenshots

截图美化工具。(@cxhello 投稿)

5、单词收藏助手

Chrome 插件 + 微信小程序,在网页上收藏单词,建立自己的词库,然后通过小程序加强记忆。(@yuuk 投稿)

6、Free Open Graph Image Generator

根据模版制作"网页分享图"(open graph)的在线工具。(@javayhu 投稿)

7、Kyanos

一个命令行的网络流量采集和分析工具,具有较强的数据过滤和分析能力。(@hengyoush 投稿)

8、在线 Excel 协同编辑器

一个开源的类 Excel 电子表格网页应用,支持多人协同编辑。(@nusr 投稿)

9、红枫云盘(maple-file)

一个多协议云端文件存储的客户端,支持安卓和 macOS,基于 Flutter + Go 开发。(@honmaple 投稿)

10、GitHub Cards

将 GitHub 用户个人数据转换成卡片图。(@iAmCorey 投稿)

AI 相关

1、GCOP

基于 AI 的 Git 提交消息生成和工作流程优化工具。(@Undertone0809 投稿)

2、github-assistant

该网站可以对 GitHub 代码库提问,由 AI 来回答,比如"过去30天谁的提交次数最多"。

3、Liubai

开源的微信机器人,在微信里面同时调用三个 AI 模型,完成各种任务。(@yenche123 投稿)

4、AI OCR

在线免费 AI OCR(图片文字识别)工具,所使用的前端代码和 AI 提示词见这里,灵感来自 llama-ocr。(@ringcrl 投稿)

5、Smart Alt Text Generator Generator

上传图片,生成 SEO 友好的 alt 描述,支持多种语言。(@wang1309 投稿)

6、AI 调色盘生成器

该网站可以根据输入的关键词,生成对应的色彩组合。

资源

1、WebSpy.Site

网站流量分析平台,根据域名查询网站流量情况。(@wincatcher 投稿)

2、PNGFree.ai

免费的百万级 PNG 图片库。(@shawnlee000 投稿)

图片

1、无头鸡

1945年,一个美国科罗拉多州的农民杀鸡时,砍掉了一只五个半月大的鸡的大部分头部。

但是没有砍到颈静脉,并且一只耳朵和大部分脑干完好无损。因此,这只鸡虽然没有脑袋了,仍然可以保持平衡并笨拙地行走。

农民发现这只鸡没有死,就决定继续养它,用滴管给它喂食。

后来,这只鸡被巡回展出,门票是25美分,每月为主人带来4,500美元收入。

1947年3月,它死于巡回展出途中。

2、Windows 3.1 时钟

市场上出现了 Windows 3.1 时钟,钟面就是 Windows 3.1 的桌面,看上去很有怀旧感。

注意,上图的钟面不是液晶屏,而是印刷上去的。它是石英钟,使用一节五号电池。

文摘

1、长期软件开发

有些领域的软件会持续运行几十年,比如发电厂、起搏器、飞机、桥梁、重型机械的软件。它们可能几年都不会改动,然后推出一个新的大版本。

如果一个软件的开发周期长达几十年,需要长期维护,那么最好做到下面几点。

(1)尽量减少依赖。

软件的依赖项越多,长期越难以维护。依赖包括开发时依赖和运行时依赖,都是越少越好。

现在,很多软件在运行时会调用云服务,这也不利于长期维护。

(2)完备的测试用例。

测试对于重构、删除/添加功能,会提供极大的帮助。当你中断3年后,重新开始开发,测试也会让你快速了解系统。

(3)减少复杂性。

复杂性是软件开发的头号敌人,会让最好的程序员和团队都铩羽而归。

由于熵增定律和人类行为,除非你有意识地遏制,否则复杂性总是会增加。

因此,你需要养成严格的开发习惯:尽早和频繁地重构,删除不必要的或重复的代码,花时间简化。

(4)编写简单无趣的代码。

代码越简单越好,重点是代码的运行逻辑要显而易见。你永远不会后悔编写了简单的代码。

那些看上去很聪明、很高深的代码,会让后期的调试和理解变得复杂。特别注意那些高性能代码,只有当你正确理解它们时,它们才有效。

另外,那些眼下时髦、被热炒的明星技术,如果没有得到充分验证,也需要规避。

你最好只使用至少有10年历史的可靠技术。有一条规则是,某项技术的寿命与它们当前的年龄成正比,即存在越久的东西越可能继续存在。

(5)日志、遥测和文档

如果软件不是持续更新,开发者的注意力就会转到其他地方,不会立即跟进,所以需要有日志和遥测,能把运行过程记录下来。

文档则可以帮助我们理解几年前、甚至十几年前,编写原始代码时的想法。可能的话,记录所有事物,不仅仅是代码,还有理念、想法和为什么。

(6)团队

团队人员变化是很常见的。在许多地方,在一个团队呆三年,就已经很久了。虽然你可以用良好的文档和出色的测试,来抵消这种人员变化,但这很困难。

软件长寿的最简单办法之一,就是让开发成员长期稳定,保持工作十年。这意味着,你必须给你的程序员提供良好待遇,否则人们会离开。

在某些地方,软件是外包公司或咨询顾问写的,他们将代码丢到你的系统中后离开。对于长期运行的软件,这是非常糟糕的安排。

(7)开源

让你的代码暴露在外界的眼光,是保持代码可靠的好方法。一个有趣的事实是,只有质量良好的代码,人们才愿意对外分享,也就是说,如果不开源,人们会愿意在组织内部接受质量更差的代码。

开源代码有更高的标准、更多的测试,这是让代码不过时的绝佳机制。

言论

1、

银行的 API 特别难用,设计得也很奇怪。我在为银行工作时,发现了原因。

API 不是银行通信的方式,文件才是。银行执行的指令,不是通过我们习惯的 API 传送,而是通过文件接收。

-- 《为什么软件工程师与银行整合如此痛苦?》

2、

美国有很多问题,绝非理想的社会,但是第三世界国家的很多人,尤其是低收入人群,尽管对美国的真实情况一无所知,依然非常向往。

在他们心目中,美国有财富、空间、自由、人性化管理等等。这不是真实的美国,而是美国在他们心目中的投影,他们向往的其实是自己想象中的生活方式。

这是美国的一个很大的优势,尽管自身的诸多问题,依然能够对其他国家的人民产生吸引力。

-- 《美国比欧洲好吗?》

3、

产品经理的职责就是三件事:(1)了解用户需求;(2)提出解决方案;(3)安排任务执行。

-- 《产品经理的 AI》

4、

一个生物学家说过:"每个细菌的梦想都是变成两个。" 这是生活的基本真理:你经历的一切只是使自己更加重要的一种手段。

-- Sean Carroll,进化生物学家

5、

我喜欢科学的一点是,无论你喜不喜欢,它都会让你相信。

-- 肖恩·卡罗尔,物理学家

往年回顾

YouTube 有多少个视频?(2023 #284)

AI 聊天有多强?(2022 #234)

政府的存储需求有多大?(2021 #184)

未来的游戏业比现在大100倍(2020 #134)

(完)

文档信息

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

科技爱好者周刊(第 330 期):李开复梳理人工智能

2024-12-20 08:17:25

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

本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系[email protected])。

封面图

上个月正式开放的杭州良渚玉湖公园,公园的设计象征良渚文化和运河文化的连接。(via

李开复梳理人工智能

前些日子,我读了李开复老师的两本书:《AI·未来》(浙江人民出版社,2018)和《AI·未来进行式》(浙江人民出版社,2022)。

这两本书都是面向社会大众解释 AI,不是技术类书籍,但是有一些段落,阐述 AI 概念。

李开复老师用通俗的语言来解释,人工智能、机器学习、神经网络、深度学习......这些词到底是什么意思?彼此有什么关系?

我觉得,这些介绍对理解 AI 的体系,挺有启发的。它们分散在各个章节,我将它们整理在一起。

为了行文连贯,我没有完全照搬原文,而是用自己的语言重新叙述,如果有错误,也归咎我。

(1)人工智能

1956年夏天,计算机科学家约翰·麦卡锡(John McCarthy)首次提出"人工智能"(AI)这个概念。

人工智能指的是,通过软件和硬件,来完成通常需要人类智能才能完成的任务。它的研究对象,就是在机器上模拟人类智能。

(2)机器学习

早期,人工智能研究分成两个阵营。

第一个阵营是规则式(rule-based)方法,又称专家系统(expert systems),指的是人类写好一系列逻辑规则,来教导计算机如何思考。

可想而知,对于复杂的、大规模的现实问题,很难写出完备的、明确的规则。所以,这种方法的进展一直很有限。

第二个阵营就是机器学习(machine learning),指的是没有预置的规则,只是把材料提供给计算机,让机器通过自我学习,自己发现规则,给出结果。

(3)神经网络

神经网络(neural network)是机器学习的一种主要形式。

神经网络就是在机器上模拟人脑的结构,构建类似生物神经元的计算网络来处理信息。

一个计算节点就是一个神经元,大量的计算节点组成网络,进行协同计算。

神经网络需要极大的算力,以及海量的训练材料。以前,这是难以做到的,所以20世纪70年代开始,就陷入了停滞,长期没有进展。

(4)深度学习

深度学习是神经网络的一种实现方法,在20世纪80年代由杰弗里·辛顿提出。它让神经网络研究重新复活。

深度学习是一种让多层神经元可以进行有效计算的方法,大大提高了神经网络的性能。"深度学习"这个名字,就是比喻多层神经元的自主学习过程。

多层神经元包括一个输入层和一个输出层,它们之间有很多中间层(又称隐藏层)。以前,计算机算力有限,只能支撑一两个中间层,深度学习使得我们可以构建成千上万个中间层的网络,具有极大的"深度"。

(5)Transformer

早些年,深度学习用到的方法是卷积神经网络(CNN)和循环神经网络(RNN)。

2017年,谷歌的研究人员发明了一种新的深度学习处理方法,叫做 Transformer(转换器)。

Transformer 不同于以前的方法,不再一个个处理输入的单词,而是一次性处理整个输入,对每个词分配不同的权重。

这种方法直接导致了2022年 ChatGPT 和后来无数生成式 AI 模型的诞生,是神经网络和深度学习目前的主流方法。

由于基于 Transformer 的模型需要一次性处理整个输入,所以都有"上下文大小"这个指标,指的是一次可以处理的最大输入。

比如,GPT-4 Turbo 的上下文是 128k 个 Token,相当于一次性读取超过300页的文本。上下文越大,模型能够考虑的信息就越多,生成的回答也就越相关和连贯,相应地,所需要的算力也就越多。

豆包 MarsCode 动手实验室(杭州站)

先提一下,上周说的全国 AI 编程挑战赛

应用赛道的作品提交,从12月16日已经开始了,大家可以上传自己用 AI 完成的作品了。

算法赛道目前还在报名中,只要你有信心,在 AI 的辅助下解出算法题,不妨报名试试,也是一种体验和锻炼。

比赛规则和报名链接,请访问这里,也可以看上周的周刊。

(此处有分隔线)

本周介绍的活动,是12月28日(星期六)下午两点,在杭州的字节工区举行的豆包 MarsCode 动手实验室

到时,大家可以现场深度体验豆包 MarsCode 的 AI 编程能力,并跟字节的同学当面交流。在动手环节,你可以用 AI 实现自己的创意。如果你的作品很优秀,还有机会直通 AI 编程挑战赛的决赛。

活动的详细介绍,以及报名链接,请访问这里

科技动态

1、硬盘打孔机

硬盘报废时,一般需要擦除数据。最保险的方法,莫过于物理破坏硬盘。

但是,这样很费事,你要找把锤子,把硬盘敲碎了。

为了解决这个问题,一家日本公司推出了"硬盘打孔机"。这种机器可以在硬盘上轻松打四个孔,保证彻底破坏数据。

它采用电动液压系统,产生12吨的压力,足以穿透任何硬盘。

它的尺寸为 410 x 289 x 187 毫米,跟台式电脑差不多大小,但是重达18公斤,适合那些有成千上万硬盘需要销毁的大公司。

2、沙子国际象棋

一位英国设计师用沙子作为材料,3D 打印了一套国际象棋。

他说,这样做只是为了追求一种奇特的感觉。沙子是一种无形且流动的材料,塑造成坚固耐用的东西,让人感到难以把握、随时可能变化。

而且,沙子表面是不光滑的,当你用沙子下棋时,会有真实的、与众不同的触觉。

3、玻璃砖

大家考虑过吗,房子为什么需要墙?难道不能建造一所没有墙、全部是窗户的房子吗?

回答是不能,因为建筑的重量由墙承受,窗户不承受重量。如果把墙全改成窗户,建筑物就会倒塌。

那么,能不能用玻璃来造墙呢?玻璃既可以承重,又可以透光。

麻省理工学院的科学家,最近就发明了这样一种全透明的玻璃砖(上图),根据测试具有跟普通砖相同的承重能力。

除了透光,玻璃砖还有一个好处,可以重新利用。只要高温加热,玻璃砖就会融化,能够塑造成其他形状,还能 3D 打印,但这也导致它不防火。

总的来说,玻璃砖比红砖更环保,在很多场合有推广潜力。

4、其他

(1)本周发生了一笔史上最大的风险投资,AI 公司 Databricks 一次性募集了100亿美元。

(2)GitHub 宣布,编程助手 GitHub Copilot 向所有用户免费开放。

(3)OpenAI 推出了免费电话 1-800-ChatGPT,北美用户可以拨打该电话,跟 AI 语音聊天,每月额度为15分钟。

(4)小米官方开始支持,小米物联网设备接入智能家居管理助手 Home Assistant。

文章

1、汇编语言的一点入门介绍(中文)

这篇短文通俗解释了汇编语言的基本概念。

2、CSS 网格区块详解(英文)

这篇长文详细介绍 CSS grid 布局的区块功能(template area)。

3、网页如何插入 JSON-LD 语义数据(中文)

本文详细介绍网页的 JSON-LD 数据块,用来插入机读的语义数据。

4、13个对前端开发有用的 Chrome 插件(英文)

本文介绍13个用于前端开发的 Chrome 插件。

5、谷歌不再是最好的搜索引擎(英文)

本文是一篇新闻分析,作者认为 Perplexity 的 AI 搜索体验已经优于谷歌了。

6、如何为 Windows 添加6个 macOS 最好的功能(英文)

一篇 Windows 使用技巧,教你怎么为 Windows 添加一些 macOS 功能,比如文件浏览器可以文档预览。

工具

1、Presenterm

将 Markdown 文件转成幻灯片,在命令行播放的开源工具。(@lengyijun 投稿)

2、Rslib

制作 JavaScript 软件包的工具,可以直接开发组件库和命令行工具。(@fi3ework 投稿)

3、Midscene.js

AI 驱动的网页 UI 自动化测试框架,通过文字描述,生成 UI 测试用例。(@yuyutaotao 投稿)

4、wechatDataBackup

Windows 桌面 PC 端的微信聊天记录一键导出。(@git-jiadong 投稿)

5、MoeMail

基于 Next.js + Cloudflare 技术栈构建的临时邮箱服务,在线体验。(@beilunyang 投稿)

6、my-github-2024

一个 Python 程序,生成你在2024年的 GitHub 代码提交统计。(@WCY-dt 投稿)

7、Vanilla

Canonical 公司的 CSS 框架,就是 Ubuntu 官网采用的样式。

8、OpenAuth

网页登录的第三方认证的集成库。

9、Schemio

基于 Web 的示意图可视化编辑器。

10、Buzee

一个桌面软件,提供本地文件的全文搜索(包括图片里面的文字),支持 Windows 和 Mac。

AI 相关

1、Hika AI

免费的 AI 搜索。(@atlas-comstock 投稿)

2、Slea.ai

免费的 AI Logo 生成器。(@aaamomo64 投稿)

3、AI 音效生成器

免费生成各种音效,比如雨声、风声。(@aurthur 投稿)

资源

1、SQL 风格指南

一份书写 SQL 语句的风格约定。

2、颜色代码表

在线配色设计工具集,做在一个网站。(@nettsz 投稿)

图片

1、机器蜻蜓

美国首都华盛顿的中央情报局博物馆,有一只上个世纪70年代制造的机器蜻蜓。

它其实是一架微型直升机,飞到目标对象附近,窃听对方的谈话。

这只蜻蜓可以飞200米,然后落下来,通过激光捕捉空气振动,来还原谈话声。

但是,它不防风,也难以控制,所以从来没有实际用过。

2、荷兰的邮资代码

荷兰寄信不用邮票,而是用一种9个字母和数字组成的代码。

你花钱买一个代码,以 3 x 3 的格式写在信封上,就能代替邮票,作为付款证明。

因为代码的有效期只有五天(以邮戳为准),需要购买后及时寄出,被猜到的可能性很小。

文摘

1、没有编程生产力这样的东西

正如马丁·福勒(Martin Fowler)所观察到的那样,程序员的编程生产力无法有效地衡量,因为它不存在。

软件开发并不是一项必然会产生任何东西的活动。

假设你有两个开发人员在同一个项目上工作,并且偶然地,他俩在同一天接受了相同的任务。

甲写了一个1000行的框架,完美地解决了这个问题。代码编写良好,并经过充分测试,每一步都有详细记录。

乙则是当天去了公园,一边喂鸽子一边思考问题,然后漫步回到办公室,删除了100行代码,部署了更改......问题就解决了。

请问谁的生产力更高?

回答是,这不重要。重要的是乙解决了问题,同时降低了团队的长期维护成本。甲也解决了这个问题,但是他通过增加代码,增加了维护成本,因此(在其他条件相同的情况下)他的解决方案较差。

我们能说,乙具有更高的生产力吗?显然,很难找到编程生产力的正确衡量指标。

我认为,优秀的软件开发者所做的就是解决问题。但是,生产力的衡量指标,比如代码、文档、数据等等,都只是解决问题的工具,并不是解决问题本身。

言论

1、

我写 SQLite 的时候,从来没人教过我 B 树的知识。我需要自己实现 B 树,我就从书架取下高德纳的《计算机编程艺术》,找到了 B 树的章节。他描述了算法,我就照着实现。

有趣的是,高德纳详细介绍了搜索 B 树和插入 B 树的算法,没有提供从 B 树删除数据的算法,这是放在本章末尾的练习。所以我在实现自己的 B 树之前,还必须先做完该章的练习。谢谢高德纳,我真的很感激。

-- 理查德·希普《SQLite 不为人知的故事》

2、

瑞典南部的马尔默市,洗一次10分钟的淋浴,电费高达2.65欧元(约20元人民币)。原因是该市接入的是德国电网,德国能源短缺,推高了电价。

-- 《瑞典能源危机》

3、

职业生涯最重要的一课是,你需要认识到,你工作的目的不在于使得公司的客户满意,而在于使得那些控制你的加薪、奖金和晋升的人满意。

-- Hacker News 读者

4、

正在开发的水下无人机技术,会使得以航空母舰为中心的海军战略过时,从而大幅削减军事开支。

举例来说,美国开发的水下无人机 Orca XLUUV,可以携带8吨的有效载荷,行驶数千英里,并且不需要长时间浮出水面。

-- Hacker News 读者

5、

我第一次尝试 MidJourney(文生图工具)和 Suno(文生音乐工具)时,我想知道未来是否每个人都会成为数字艺术家。

很快,我就意识到我没有"创作冲动",即使看过很多别人的创作,我也常常不清楚自己想要创作的东西。

因此,未来的 AI 即使具备无比强大的绘画和编曲能力,还是只有少数人能成为画家和音乐家。程序员也是如此,即使 AI 会编程,也无法人人成为程序员。

-- 《Cursor 深度体验》

往年回顾

没有目的地,向前走(2023 #283)

生活就像一个鱼缸(2022 #233)

腾讯的员工退休福利(2021 #183)

贵州变瑞士,有没有可能?(2020 #133)

(完)

文档信息

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

科技爱好者周刊(第 329 期):示意图利器 D2

2024-12-13 08:06:46

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

本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系[email protected])。

封面图

哈尔滨冰雪大世界即将开园,工人正在松花江上采冰,每天需要开采近万块大冰块。(via

示意图利器 D2

制作示意图的工具有很多。

我喜欢使用基于文本代码的作图工具,来绘制线框图,比如 Mermaid、Plantuml、Graphviz。

它们都能根据代码,生成图片,非常适合放入代码仓库,进行版本管理。

最近,我发现了一个更易用的同类工具 D2,简单直观,功能强大,下面介绍给大家。

D2 可以命令行使用,也可以浏览器使用。假定你有一个图片代码文件example.d2,那么生成图片的命令如下。

$ d2 example.d2

大部分时候,我都通过浏览器使用它。它有一个线上生成器 play.d2lang.com(下图),把代码贴进去,按下"compile"按钮,马上生成图片。

想要 A 节点(节点的名称为 A),直接输入 A 就可以了。

A

A 只是节点名称,如果要定制节点的内容,就像下面这样写。

A: 甲

接着,添加一个节点。

A: 甲
B: 乙

把它们连起来。

A: 甲
B: 乙
A -> B

连接可以用正箭头(->)、也可以用反箭头(<-),甚至双向箭头(<->)。如果不需要箭头,就直接连线(--)。

箭头上还能添加文字。

A: 甲
B: 乙
A -> B: 连接

节点之间可以有多根连线。

A: 甲
B: 乙
A -> B: 请求
A <- B: 响应

节点的连接也可以写在一行。

甲 -> 丙 <- 乙: 连接

阶段一 -> 阶段二 -> 阶段三 -> 阶段四
阶段四 -> 阶段一: 反馈

这些语法就够画出基本的线框图了,是不是挺简单。

D2 可以绘制非常复杂的图,更多语法参考文档

最后提一下,如果想修改节点形状,方框改成圆形,就像下面这样写。

A: 甲
A.shape: circle

形状甚至可以改成一朵云,表示云服务。

A: 甲
A.shape: cloud

线条颜色也可以改。

A: 甲
A.style.stroke: red

[活动] AI 编程挑战赛

程序员同学看过来,全国性的 AI 编程大赛来了。

只要你善用 AI 编程,在 AI 的帮助之下,做出创新应用,或者快速解出算法题,就能参赛。

参赛不仅锻炼 AI 编程能力,还能丰富自己的经历,如果得奖,就能在简历上写一笔,帮助就业。

(1)比赛总奖池20万,一等奖的奖金4万元。学生和非学生分开评奖,获奖者还有 offer 机会,可以直通终面(包含实习岗与正式岗)。

(2)比赛分为算法和应用两个赛道,可以提交自己的创新应用,也可以选择完成算法题。

(3)大赛现在已经开始报名。创新应用在12月16日开放作品提交,算法比赛现在可以参加线上常规赛,决赛是线下举行的黑客马拉松。

(4)两个赛道的决赛阶段,都要求使用豆包 MarsCode 的 AI 编程能力,作为辅助工具。

本次 AI 编程巅峰挑战赛,由豆包MarsCode 和稀土掘金社区共同发起,面向全国程序员。大赛规则和报名入口,详见活动官网,也可扫描上方海报二维码,祝愿大家得奖。

科技动态

1、深湖冷却

加拿大最大城市多伦多,就在安大略湖旁边。安大略湖是一个很深的湖,最深处达到244米。

多伦多市正在建设一个非常酷的项目,使用安大略湖底的冷水,为城市提供冷却系统。

安大略湖底部的水温是很低的,该项目从水底85米处取水,即使盛夏,水温也只有4摄氏度。

这些水经过40公里的管道,进入市中心的热交换站,为城市带来天然的冷气。

2、自走桌

一位国外工程师,制作了一张会自己行走的桌子。

这张木头桌子有12条腿,每次可以同时移动三条腿,每条腿都用电机驱动。

桌子内部有无线接收器,用来接收遥控信号。远端计算机发出遥控命令,并计算出移动哪几条腿,每条腿移动的角度和幅度。

3、瘫痪网络的机器狗

很多犯罪分子都在屋外装了摄像头,监控室外的风吹草动。

美国国土安全部研发了一款机器狗,它的唯一作用就是瘫痪无线摄像头的通信。

这个机器狗配备了一个天线阵列,接近目标后,会侦测周围无线信号的频率和信道,然后发送大量干扰信号,使得网络堵塞,无法通信。

所有无线通信的智能家居设备,都会因此失效,包括摄像头。所以,重要地点的摄像头必须是有线的。

4、无豆咖啡

一些西方公司最近推出"无豆咖啡",就是不使用咖啡豆制作的咖啡。

它采用废弃的枣子或果核,提取生物质,然后添加提取自茶叶的咖啡因,使其具有咖啡的味道。

因此,它比较环保,可以减少食物垃圾,也不必破坏森林种植咖啡树。

据说,它的味道非常接近优质咖啡,普通人喝不出差异。只是成本不便宜,略高于传统的优质咖啡豆。

文章

1、CSS 重置(2024版)(英文)

作者提出,最新的 CSS 重置(CSS reset,即更改浏览器默认样式)只需要9条规则,每一条都详细解释。

2、Monokai 的历史(英文)

本文介绍流行的代码编辑器配色方案 Monokai 的诞生历史。

3、并发运行(Concurrency)和并行运行(Parallelism):以 JavaScript 为例(英文)

本文解释并发和并行的区别,然后给出 JavaScript 的示例。

4、直接链接网页的某段文本(英文)

浏览器现在支持,URL 直接链接到网页的某个文本片段(text fragment)(上图的高亮部分),本文介绍如何使用。

5、了解多重 DNS(英文)

多重 DNS 就是同一个域名有多个 DNS 解析记录,可用来均衡负载。作者就测试了,均衡负载是否真能生效。

6、感知器是什么(英文)

本文解释神经网络的基础概念"感知器"(Perceptron)。

工具

1、EasyTransfer

开源的文件传输工具,匿名加密,只需访问网页,即可连接到其他设备,基于 webRTC 和 Vue.js,访问试用网址。(@ch3ny4ng 投稿)

2、Screen Sharing

从浏览器分享你的屏幕给其他人,适合用来演示。(@markliuyuxiang 投稿)

3、PMAtron

将 phpMyAdmin 用 Electron 封装成跨平台桌面软件。(@MaskerPRC 投稿)

4、FastExcel

基于 Java 语言的 Excel 文件解析工具,可以用来提取数据。(@JerryFan626 投稿)

5、Readest

一款开源电子书阅读器,跨平台桌面应用,基于 Next.js 15和 Tauri v2。(@chrox 投稿)

6、IMG2AVIF

一个网页工具,将各种格式的图片转成 AVIF 格式。(@malagebidi 投稿)

7、YT Pics

一个 Web 应用,输入 YouTube 网址和指定时间,它会自动截取该时间的截图。

8、Web2pdf

一个命令行工具,将网页保存成 PDF 文件,有很多增强功能(自定义样式、生成目录等)。

9、CheerpJ

浏览器里面的 JVM 编译器,让 Java 程序可以在浏览器运行。

10、fuzzy-search

一个前端的模糊搜索库,支持东亚语言。

AI 相关

1、BabelDuck

基于 AI 的口语对话练习应用。(@Orenoid 投稿)

2、AIGIF

GIF 动图搜索,可对图片人物进行换脸。(@markliuyuxiang 投稿)

3、Imagenie

跨平台的桌面应用,使用 AI 在本地处理图片,比如人像修复、超分辨率放大、背景移除。(@zhongweili 投稿)

资源

1、启动过程:Android 与 Linux

这篇文章记录了 Linux 和 Android 各自的系统启动顺序。

2、深入高可用系统原理与设计

开源的中文电子书,梳理网络、云、容器、集群等知识。(@isno 投稿)

3、English News in Levels

英语新闻分级阅读网站,实时更新新闻,分为三种难度,有重点词汇、理解测试和朗读音频。(@meterscao 投稿)

4、GitHub Weekly

这个网站将周刊讨论区的投稿,转成新闻卡片形式呈现。(@inshub 投稿)

图片

1、密室照片

2010年,美国互联网上流传一组密室照片,看上去非常空旷神秘。

它们没有任何说明,不知道是在哪里拍的,也不知道是谁拍的。

这样反而激起了网友的兴趣:昏黄的灯光,陈旧潮湿的地毯,黄色的荧光灯和墙壁,无限的空房间,没有任何窗户,你被困在里面。

经过不断转发,这些照片逐渐成为美国互联网经久不衰的一个神话,成为了很多电影和游戏的灵感,比如《命运规划局》、《黑暗城市》、《异次元杀阵》。

最近,通过互联网档案馆(archive.org)的努力,现在终于查明,这组照片是一家家具店的二楼,当时正在进行翻新,一间间的小房间正是家具的陈列室。

文摘

1、大众审美

人们眼中的美和丑,其实都是受到社会的影响,很少有人拥有自己独立的审美标准。

1990年代初期,两位俄罗斯艺术家委托一家美国市场研究公司,进行市场调查,向1001位美国人询问下面的问题。

  • 你最喜欢的颜色是什么?
  • 你喜欢锐利的曲线还是柔和的曲线?
  • 你喜欢光滑的笔触还是厚重的笔触?
  • 你喜欢裸体还是穿着衣服的人物?
  • 你喜欢休闲的人物还是工作的人物?
  • 你喜欢室内场景还是室外场景?
  • 你喜欢什么样的风景?

调查完成后,两位艺术家根据大多数人的偏好,绘制一幅画。理论上,这幅画应该受到最多社会大众的喜爱。

后来,他们又在其他国家做这个调查,得到一个惊人的结果:每个国家的调查结果(即大众偏好),几乎都是一致的。

"人们想要的都是风景画,周围有几个人物,前景是动物,主要色调是蓝色。"

他们根据11个不同国家的调查结果,画出来的11幅画看上去几乎一样。

这证明了,全世界的大众审美正在趋同。从电影到时尚,从建筑到广告,全世界的人们喜欢差不多的东西,各国审美越来越接近,独特性越来越少。

举例来说,AirBnB 上面的公寓,不管是哪个国家,装潢风格很多都是雷同的,可以称为 AirBnB 美学:白墙、原木、胶囊咖啡机、扶手椅、裸砖、木搁板、灯泡。

这种 AirBnB 美学既有工业主义的粗犷原始,又有古典主义的优雅极简。

这种风格还影响到了咖啡店。

世界各地的咖啡店(包括餐厅),也慢慢变得相似:粗糙的木桌、宽大的窗户、朴素的吊灯。

总之,随着互联网连接全球,全世界正在形成统一的大众审美。以后,无论去到哪个国家,旅馆和咖啡店可能都是一样的装修。

言论

1、

我生活中一切顺利的事情都遵循相同的过程:

(1)我关注自己喜欢的​​事情。

(2)我找到多做这些事情的方法。

(3)我让有趣的人很容易发现我在做这些事情。

(4)我和他们一起出去玩,一起做项目。

-- 亨里克·卡尔森

2、

伟大的科学家是想法大胆的人,但是对自己的想法同时持有高度批判的态度。接受自己的猜想之前,他们首先会严厉尝试反驳它。

只有发现很难反驳成功时,他们才相信自己的想法是对的。

-- 卡尔·波普尔,科学哲学家

3、

作为一个至少用过十几种语言进行过商业开发的程序员,我完全不同意有人说,一种语言的编程速度优于另一种语言。

语言的编程速度因人而异,符合程序员的个人经历和思维习惯的语言,写起来最快。

-- Hacker News 读者

4、

我长期以来一直认为地球是一个"水星球",存在着大量的水覆盖星球。

直到我做了数学计算,才意识到地球实际上是太空中的一块湿岩石,更像是用喷雾器喷了十几次的保龄球。

-- Hacker News 读者

往年回顾

电动皮卡 Cybertruck 的 48V 供电(2023 #282)

好用的平面设计软件(2022 #232)

新人优惠的风险(2021 #182)

快能力和慢能力(2020 #132)

(完)

文档信息

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