操作系统有个代号不稀奇,但轮番换了多个就离谱了

5 月 13 日
阅读 2 分钟
189
操作系统厂商通常会为旗下的操作系统赋予有别于正式名称的代号。比如,微软曾用 Chicago、Memphis、Whistler 分别作为 Windows 95、Windows 98、Windows XP 的代号;苹果则一开始是大猫系列的代号,Cheetah、Panther、Tiger……,后来改走国家地理风,什么 Yosemite、Mojave、Big Sur……。这些代号往往只是开发团队用来区分...

浅谈Go语言的time.Duration:优雅还是鸡肋?

5 月 7 日
阅读 3 分钟
281
在日常的代码中,我们经常要和时间间隔(duration)打交道。比如设置超时时间或过期时间、接口调用失败后等几秒再重试、测量某段代码跑了多久,等等。总之——不是在设置等待多久,就是在计算花费了多长时间。

PHP核心开发者Nikita的首次提交,就实现了个寂寞啊

4 月 25 日
阅读 2 分钟
490
Nikita Popov 曾是 PHP 社区中备受尊敬的核心开发者之一。几年间,他深度参与了性能优化工作,一边不断实现新功能,一边修复历史遗留的大量错误,是把 PHP 从“老旧脚本语言”推动为“现代编程语言”的关键人物之一。

会写TypeScript就能理解日语语法——Typed Japanese项目能做到(吗?)

4 月 16 日
阅读 6 分钟
372
近日,Yifeng Wang 和 Satoshi Terasaki 发布了名为 Typed Japanese 的开源项目。该项目旨在借助 TypeScript 的类型系统帮助程序员学习日语。会写 TypeScript 就能理解日语语法——自然语言的语法规则完全可以映射到 TypeScript 的类型系统之中。
封面图

AI画疯了,扛着AI反AI的也来了!开发Chrome插件专门屏蔽吉卜力风格的图片

4 月 9 日
阅读 3 分钟
479
近日,ChatGPT 解锁了全新的 AI 图片生成功能,现在只需一句话,就能把照片变成“吉卜力风格”。没过几个小时,网络就已经被各种吉卜力风格的图片和梗图攻占。

PHP又出Bug了?md5('240610708')竟然等于 md5('QNKCDZO')!

3 月 30 日
阅读 2 分钟
567
如下图所示,'240610708' 和 'QNKCDZO' 是两个完全不同的字符串,它们的 MD5 哈希值自然也不相同。可为什么明明不同,PHP 还会认为这两个哈希值相等呢?更离谱的是,从 2004 年底的 PHP 4.3.10 版本开始,这个“问题”至今一直存在,所有后续版本都会认为它们是相等的!

氛围编程Vibe Coding的梗图

3 月 27 日
阅读 2 分钟
531
今年 2 月初,OpenAI 联合创始人、前特斯拉 AI 负责人 Andrej Karpathy 于社交平台上提出了氛围编程 Vibe Coding 这一概念。仅仅过了一个多月,这一术语就迅速席卷了开发者社区。

难以想象!cURL的前身竟是如此粗糙的300多行代码?

3 月 20 日
阅读 4 分钟
498
今天,cURL 无疑是全球最受欢迎的网络工具之一,下载量突破百亿次,几乎每个开发者的工具箱里都少不了它。无论是大型项目,还是写着玩的小脚本,往往都要依赖 cURL 来进行数据传输。据说 NASA 使用了 cURL 进行火星探测器数据传输!这让 cURL 成为第一个在地球外运行的开源软件。

Python 3.14版本的彩蛋

3 月 17 日
阅读 2 分钟
505
使用 3.14 版本的 Python 创建一个虚拟环境,会看到在虚拟环境的 bin 目录中,不仅有 python3、python3.14 等常规文件,竟然还存在一个特殊的文件 𝜋thon。

用汇编语言编写计算两整数之和的程序(下)

3 月 4 日
阅读 3 分钟
411
本文节选自《计算机是怎样跑起来的(第2版)》第 3 章“体验汇编语言”的草稿。在翻译本章时,我们发现原书所使用的软件仅提供日文界面,并且介绍的是主要用于日本计算机相关考试的 CASLⅡ 汇编语言,其通用性相对较低。为了让内容更广泛适用,并便于读者实践操作,与作者及编辑老师商议后,决定采用更为通用的 NASM 汇编语...

用汇编语言编写计算两整数之和的程序(中)

3 月 3 日
阅读 4 分钟
602
本文节选自《计算机是怎样跑起来的(第2版)》第 3 章“体验汇编语言”的草稿。在翻译本章时,我们发现原书所使用的软件仅提供日文界面,并且介绍的是主要用于日本计算机相关考试的 CASLⅡ 汇编语言,其通用性相对较低。为了让内容更广泛适用,并便于读者实践操作,与作者及编辑老师商议后,决定采用更为通用的NASM 汇编语...

用汇编语言编写计算两整数之和的程序(上)

3 月 3 日
阅读 4 分钟
560
本文节选自《计算机是怎样跑起来的(第2版)》第 3 章“体验汇编语言”的草稿。在翻译本章时,我们发现原书所使用的软件仅提供日文界面,并且介绍的是主要用于日本计算机相关考试的 CASLⅡ 汇编语言,其通用性相对较低。为了让内容更广泛适用,并便于读者实践操作,与作者及编辑老师商议后,决定采用更为通用的 NASM 汇编语...

还记得十几年前PHP那个0x00+2=4的Bug吗

2 月 28 日
阅读 4 分钟
523
十几年前,在还能因“PHP 是最好的语言”而争论起来、还能在上海举办 PHPCon 的那个时代,记得看到过 0x00+2=4 这么一个有关十六进制加法的 Bug([链接])。

也许错过了这期杂志就没有今天的微软公司了

2 月 24 日
阅读 2 分钟
549
1974 年 12 月,冒着剑桥市清晨刺骨的寒风,保罗·艾伦兴奋地捧着一本《Popular Electronics》(大众电子)杂志,像跑步冠军一样飞奔到哈佛大学去找好友比尔·盖茨。谁能想到,这本 1975 年 1 月刊的杂志,竟然促成了微软公司的诞生。

在2000年前后,硬盘分区把26个字母都用完会怎样?——c(24)来自DOS v4.0源代码的答案

2 月 20 日
阅读 3 分钟
461
2000 年前后,主流的 Windows 95/98 并未提供图形化的硬盘分区工具,人们不得不先使用一个叫作fdisk的命令来创建分区,再格式化 C 盘,然后才能开始安装 Windows。

Rust中non_exhaustive的enum

2023-11-01
阅读 3 分钟
782
Rust中non_exhaustive的enum所谓non_exhaustive的enum就是定义中带有#[non_exhaustive]的enum,如 {代码...} 在定义了这个enum的crate中,non_exhaustive没有任何效果。 {代码...} 但若引用的crate中存在non_exhaustive的enum,会发生什么呢?以libpnet这个crate为例,在[链接]这个页面给出的示例代码中,可以看到这么一...
封面图

用Rust实现UDP Echo服务器和客户端

2023-10-27
阅读 9 分钟
1.1k
相较于TCP Echo服务器(参考用Rust实现TCP Echo服务器),UDP Echo服务器要简单不少,不但没有listen()和accept()之类的系统调用,也不需要为每个客户端都创建一个新线程。数据通过所有客户端共享的?(待确认)套接字server_socket到达UDP Echo服务器后,服务器就将数据再通过这个套接字原样返回,仅此而已。
封面图