20年后,我删除了我的Steam账户

2025-07-09
20年后,我删除了我的Steam账户

一位资深PC游戏玩家,在经历了20年的Steam使用后,最终删除了他的账户。文章指出Steam客户端日益臃肿,其DRM机制多次失约,导致旧游戏无法在老硬件上运行;Steam的专有API也阻碍了游戏兼容性和可玩性,甚至强制更新导致游戏功能缺失。作者对比了Epic、Microsoft Store和GOG等平台,认为这些平台在DRM和用户体验方面更胜一筹,并建议玩家考虑订阅服务或从其他平台购买游戏,以获得更好的游戏体验和软件保有权。

阅读更多
游戏

大型语言模型的规模:一场军备竞赛

2025-07-02
大型语言模型的规模:一场军备竞赛

本文追溯了大型语言模型(LLM)规模的演变历程。从GPT-2的1.61B参数到Llama-4的2T参数,模型规模呈指数级增长。文中详细列举了各个关键模型的参数量、训练数据量以及架构特点,包括密集型模型和混合专家(MoE)模型。MoE架构的出现,使得训练和使用更大规模的模型成为可能。然而,模型规模的增长也带来了新的挑战,例如数据偏差、模型可解释性等。文章最后探讨了未来LLM发展的方向,并呼吁更多研究关注纯文本续写引擎的开发,而非仅仅追求在基准测试上的高分。

阅读更多

S-expr: 一种奇特的S表达式解析库

2025-06-18
S-expr: 一种奇特的S表达式解析库

S-expr是一个用于解析S表达式的库,它对S表达式的语法做了独特的扩展,包括支持单行和多行字符串、单行和多行注释,以及一种名为“转置块”的新特性。转置块允许代码以列为行,行 为列的方式书写,提高了某些复杂嵌套表达式的可读性。这种设计使得S-expr在保持S表达式简洁性的同时,增强了代码的可读性和表达能力,虽然比传统的Lisp语言复杂一些,但其目标是平衡简洁性和可用性。

阅读更多
开发 S表达式

仅用数据类型实现复数和FFT(无浮点数)

2025-05-25
仅用数据类型实现复数和FFT(无浮点数)

本文介绍了一种仅使用代数数据类型,无需浮点数即可实现复数和快速傅里叶变换(FFT)的方法。作者首先解释了为什么使用代数数据类型实现数字是可取的,并指出了传统FFT实现中隐藏的低效之处。然后,作者展示了如何用简洁优雅的方式,仅用代数数据类型实现整数和复数。最后,作者推导出了一个纯函数式实现的复数FFT,同样无需浮点数。这通过使用平衡三进制表示整数,以及利用高斯整数的扩展来表示复数,巧妙地避免了浮点数运算带来的融合障碍,从而提高了算法效率。

阅读更多

优化Cloudflare D1数据库查询的历程

2025-04-07
优化Cloudflare D1数据库查询的历程

一位前端开发者在使用Cloudflare Workers和D1数据库的过程中,遭遇了数据库查询效率低下的问题。通过监控D1 dashboard、检查查询语句和行读写计数等方法,他发现了几个关键问题:单次查询耗时过长、批量写入效率低下、更新操作包含ID字段导致额外行读取、计数查询导致全表扫描、多表连接导致笛卡尔积爆炸以及批量插入效率问题。通过使用D1批量操作、排除ID字段、使用游标分页、拆分多表连接查询以及优化批量插入语句等方法,他显著提升了数据库查询效率,将某些查询的执行时间从78ms缩短到14ms。这个经验总结强调了持续监控和迭代优化的重要性,以及服务器端问题与客户端问题的不同之处。

阅读更多
开发 Cloudflare D1

生成特定 SHA-1 前缀的代码:一次巧妙的字符大小写组合

2025-03-31
生成特定 SHA-1 前缀的代码:一次巧妙的字符大小写组合

这段代码尝试通过改变输入文本中单词的大小写,生成SHA-1哈希值以匹配目标前缀“20250327”。它解析文本,找到可修改的单词,然后遍历所有可能的字符大小写组合,计算哈希值并进行比较。如果找到匹配项,则会将修改后的文本写入文件。该程序展示了一种巧妙的暴力破解方法,利用字符大小写的变化来尝试生成特定哈希值前缀,体现了对哈希算法和组合数学的理解。

阅读更多

Xfinity XB3硬件修改:禁用WiFi并节省2瓦功耗

2025-03-30
Xfinity XB3硬件修改:禁用WiFi并节省2瓦功耗

为了节省电费,用户对Xfinity XB3调制解调器进行了硬件修改。XB3调制解调器是Comcast Xfinity NOW服务的配套设备,功耗高达14.9瓦。通过拆卸调制解调器,找到并接地TPS54328稳压器的EN引脚,用户成功禁用了WiFi功能,并将功耗降低至12.5瓦,节省了2瓦电能。虽然修改后设备的管理页面短暂不可访问,但整体网络功能不受影响。

阅读更多

重建Ubuntu软件包,速度提升90%!

2025-03-19
重建Ubuntu软件包,速度提升90%!

通过重新编译Ubuntu使用的jq源代码包,可以获得高达90%的性能提升。作者使用GeoJSON文件测试,发现重新编译后的jq速度显著提高。文章详细介绍了几个步骤:首先,简单地重新编译软件包即可获得2-4%的提升;其次,使用clang编译器和更优的编译选项(-O3, -flto, -DNDEBUG),速度提升20%;然后,使用TCMalloc内存分配器,速度提升40%;最后,使用mimalloc内存分配器,无论是动态加载还是重新编译,都能获得高达90%的性能提升。实验结果表明,重新编译并使用mimalloc的jq处理速度是Ubuntu默认包的两倍。

阅读更多
开发

编程语言分级与多语言协同开发

2025-03-16
编程语言分级与多语言协同开发

作者根据编程语言的类型和特性,将编程语言分为四个级别:解释型动态类型语言(如JavaScript)、解释型静态类型语言(如TypeScript)、编译型自动内存管理语言(如Go)和编译型手动内存管理语言(如Rust)。作者认为,针对不同需求,选择合适的语言级别至关重要,并提出构建一个由Rust、RustGC(2/3级混合语言)和RustScript(4级语言)组成的语言集,以提升开发效率和代码性能。这套语言集共享语法,并支持不同级别语言间的无缝调用,从而解决了不同语言工具集维护、人员培训等问题,最终目标是提高编程效率和代码质量。

阅读更多

Svelte5:并非如宣传的那般美好?

2025-03-08
Svelte5:并非如宣传的那般美好?

Svelte5 发布后,其响应式状态系统“runes”备受赞誉。然而,作者在实际项目中发现,runes 存在诸多限制:只能在 Svelte 组件或 .svelte.ts 文件中使用,需要将状态包装在函数中才能保持反应性,对类的支持也不完善。此外,Svelte 的模板特性在 JavaScript 中难以实现,绑定属性的测试也较为繁琐。表单组件默认情况下是不可控的,这可能会导致问题。作者认为,尽管 Svelte5 试图模仿 React/Vue,但在易用性和功能完整性上仍有差距,SolidJS 或许是更好的选择。

阅读更多

从零开始构建微型异步事件循环库

2025-02-28
从零开始构建微型异步事件循环库

这个项目从零开始实现了一个微型的异步事件循环库,用于教学目的。它演示了异步编程的核心概念,包括任务调度、非阻塞套接字的I/O多路复用、超时和休眠功能、任务取消以及基于协程的并发。该库使用Python的基于生成器的协程和select模块进行I/O多路复用,提供了一个简化的模型,展示了像asyncio这样的现代异步框架底层的工作原理。通过这个项目,你可以深入理解await关键字背后的机制、yield from的工作方式以及协程与事件循环之间的通信方式。

阅读更多
开发

Roc编译器:从Rust到Zig的华丽转身

2025-02-04
Roc编译器:从Rust到Zig的华丽转身

Roc编程语言的编译器团队决定将30万行Rust代码的编译器重写为Zig语言。这并非简单的语言迁移,而是为了解决Rust编译速度慢、以及代码库中累积的技术债务等问题。重写过程中,团队将改进解析器、格式化器、规范化、文档生成、类型推断和LLVM代码生成等多个模块,并计划采用解释器作为开发后端,以提高开发效率。此次重写旨在提升编译速度、改进代码可维护性,最终目标是发布Roc 0.1.0版本。

阅读更多
开发

LLM能否解开这道简单的国际象棋谜题?

2025-01-26
LLM能否解开这道简单的国际象棋谜题?

作者尝试用一道简单的国际象棋谜题测试各种新的LLM模型。这道题目的特点是棋子数量少,解法涉及到少见的“欠升变”技巧,并且需要考虑50步规则。结果显示,即使经过引导,大多数LLM也无法正确解答,这反映出LLM在处理需要逻辑推理和特定领域知识的任务上的局限性。作者认为,这道谜题可以作为快速评估LLM能力的基准,并引发了对LLM未来能否在国际象棋等领域达到大师级的思考。

阅读更多
AI

高科技钓鱼攻击:我差点被骗了

2025-01-24
高科技钓鱼攻击:我差点被骗了

作者详细描述了一次复杂的钓鱼攻击,攻击者伪装成Google员工,通过电话和邮件诱导作者重置账户。攻击者利用g.co域名和Google Workspace的漏洞,成功模拟了Google客服的场景,几乎骗过了作者。作者最终识破骗局,并分享了这次经历,提醒大家警惕高科技钓鱼攻击,加强安全意识。

阅读更多
科技 钓鱼攻击

15岁少年发现惊天漏洞:利用Cloudflare缓存进行0点击去匿名化攻击

2025-01-21
15岁少年发现惊天漏洞:利用Cloudflare缓存进行0点击去匿名化攻击

一名15岁的中学生Daniel发现了一个惊人的0点击去匿名化攻击漏洞,该漏洞利用Cloudflare的缓存机制,能够通过恶意载荷攻击Signal、Discord等数百个应用,在用户毫不知情的情况下获取其地理位置信息。攻击者无需任何用户交互即可实现,甚至可以通过推送通知实现0点击攻击。Daniel开发了名为Cloudflare Teleport的工具来实现这一攻击,并向相关公司报告了漏洞,但收效甚微。该漏洞揭示了CDN缓存机制的潜在安全风险,提醒用户重视自身隐私安全。

阅读更多
科技

Stack Overflow的衰落:ChatGPT的冲击与未来的不确定性

2025-01-08
Stack Overflow的衰落:ChatGPT的冲击与未来的不确定性

一份GitHub上的数据分析显示,Stack Overflow平台自2023年3月至2024年12月,新提问数量下降了70.7%,从87105降至25566。这与ChatGPT的兴起密切相关,自ChatGPT发布以来,Stack Overflow新提问数量减少了近83000个。文章作者,一位Stack Overflow顶级贡献者,也亲身经历了提问被迅速关闭的现象,认为这是平台衰落的重要原因之一。数据显示,Stack Overflow提问数量的下降速度令人担忧,甚至回到了2009年上线初期时的水平,暗示其可能面临一年内寿终正寝的风险。

阅读更多
开发 平台衰落

提升PGP加密邮件安全性的实战指南

2024-12-24
提升PGP加密邮件安全性的实战指南

这份指南并非教你如何安装和使用PGP加密邮件,而是教你如何更安全地使用PGP进行邮件通信。它强调除了加密邮件内容外,更要关注操作流程安全,包括邮件撰写、存储、密钥管理等方面。指南建议使用文本编辑器撰写邮件,避免在邮件客户端保存草稿;定期生成新的密钥,并及时销毁旧密钥;避免在密钥服务器上发布公钥;邮件主题应保持为空,以减少元数据泄露;使用`gpg --throw-keys`选项加密数据,以防止泄露密钥元数据;默认情况下启用邮件加密,并明确选择是否签名邮件。总之,这份指南旨在帮助用户将PGP的安全性能最大化。

阅读更多
开发 PGP 邮件安全

基于SQLite的键值存储库:支持类似JS的对象操作和自动JSON序列化

2024-12-22
基于SQLite的键值存储库:支持类似JS的对象操作和自动JSON序列化

GitHub 上开源了一个基于 SQLite 的键值存储库,它允许像操作 JavaScript 对象一样操作数据,并自动进行 JSON 序列化。该库提供了一个名为 `createDatabaseClient` 的函数,该函数创建了具有独立读取器(`rdr`)和写入器(`wtr`)的并行客户端。写入器使用代理来实现部分 JSON 更新,而读取器返回普通的 JavaScript 对象。该库还包含全面的测试用例,涵盖了基本 CRUD 操作、嵌套更新、删除以及数组操作等功能。

阅读更多

Blender 导入 USD 场景速度慢的奇特案例

2024-12-22
Blender 导入 USD 场景速度慢的奇特案例

一位开发者在使用Blender导入USD场景时,遇到了导入速度极慢的问题。通过性能分析,他发现瓶颈在于Blender内部的ID排序函数`id_sort_by_name`。该函数原本预期为O(N)复杂度,但由于USD文件中的命名方式导致其退化为O(N^2)复杂度。开发者通过修改命名方式和优化排序算法,成功将导入时间从4分40秒缩短到8秒(对于较小的文件)。然而,他发现问题根源在于Blender对ID的排序要求,并提出了使用Trie树或哈希表等数据结构来替代当前的链表结构的建议。

阅读更多
开发 USD

QEMU虚拟机迎来Vulkan加速:Virtio-GPU驱动重大更新

2024-12-12
QEMU虚拟机迎来Vulkan加速:Virtio-GPU驱动重大更新

QEMU 9.2.0及以上版本通过Venus补丁实现了对Virtio-GPU的Vulkan加速支持。这标志着QEMU虚拟机在Vulkan图形渲染方面取得了重大进展。文章详细介绍了配置步骤,包括安装必要的软件包(Linux内核6.13+,QEMU 9.2.0+,Vulkan驱动等),以及如何构建QEMU和创建虚拟机镜像。虽然virt-manager目前尚不支持Vulkan配置,但可以通过命令行参数直接传递配置选项。文章还提供了故障排除指南,并指出了当前virt-manager和libvirt的相关限制。

阅读更多

iPad Pro 12.9 (2020)妙控键盘竖屏模式DIY智能连接器线缆

2024-12-11
iPad Pro 12.9 (2020)妙控键盘竖屏模式DIY智能连接器线缆

本文介绍了如何DIY制作一根智能连接器线缆,使iPad Pro 12.9 (2020)的妙控键盘可以在竖屏模式下使用。作者详细描述了所需的组件、线缆制作步骤、连接器准备工作以及外壳的改装。该方法涉及到焊接、环氧树脂填充等操作,并提醒操作不当可能损坏iPad。文章末尾的评论区讨论了充电及数据传输方面的问题。

阅读更多
未分类 妙控键盘

使用纯 JavaScript (VanillaJS) 在单个文件中实现前端库(React、Vue、Angular)及其基本工作原理

2024-10-31
使用纯 JavaScript (VanillaJS) 在单个文件中实现前端库(React、Vue、Angular)及其基本工作原理

该项目展示了如何使用纯 JavaScript 在单个 HTML 文件中实现类似 React、Vue 和 Angular 的核心功能。它通过简单的计数器示例演示了每个库的基本原理,包括响应式系统、组件化、虚拟 DOM 和数据绑定等概念,旨在帮助开发者更好地理解这些前端库的底层机制。

阅读更多
未分类 VanillaJS

配置语言比较

2024-10-27
配置语言比较

本文比较了四种配置语言 YAML、JSON、ConfigParser 和 TOML,分析了它们各自的优缺点,并结合 Python 包管理的应用场景,最终认为 TOML 是更合适的选项。

阅读更多
未分类 TOML

侯世达谈Lisp:原子和列表

2024-10-16
侯世达谈Lisp:原子和列表

本文是侯世达于1983年2月在《科学美国人》杂志上发表的一篇关于Lisp语言的介绍文章。文章以通俗易懂的语言解释了Lisp的基本概念,包括原子、列表、函数、递归等,并通过与“Lisp精灵”对话的方式展示了Lisp的交互式编程特点。侯世达还介绍了Lisp在人工智能领域的应用,以及函数式编程的理念。

阅读更多
未分类

利用 OpenAI 的结构化输出功能提取财务披露报告和报纸警方记录信息

2024-10-14
利用 OpenAI 的结构化输出功能提取财务披露报告和报纸警方记录信息

这篇文章介绍了如何使用 OpenAI 的 gpt-4o-mini 模型,通过提供文档截图的 URL,并根据用户定义的模式提取数据。文章以国会财务披露报告和报纸警方记录为例,展示了如何定义数据模型并使用 Python SDK 和 pydantic 库进行数据提取。结果表明,即使在定义数据方面几乎没有做出努力,也没有进行数据准备的情况下,结果也相当可靠。

阅读更多
未分类

一个漏洞,五万美元赏金:Zendesk 如何在数百家财富 500 强公司中留下后门

2024-10-12
一个漏洞,五万美元赏金:Zendesk 如何在数百家财富 500 强公司中留下后门

15 岁的安全研究员 Daniel 发现 Zendesk 存在一个严重漏洞,该漏洞允许攻击者利用电子邮件欺骗漏洞访问任何使用 Zendesk 的公司的客户支持票据,并可能接管公司 Slack。Zendesk 最初以漏洞利用程序超出范围为由拒绝承认该漏洞,但在 Daniel 向受影响公司报告并获得超过 5 万美元的赏金后,Zendesk 最终修复了该漏洞,但没有向 Daniel 提供任何赏金。

阅读更多

即时 HTML 预览书签

2024-10-07
即时 HTML 预览书签

这篇文章介绍了一个 Chrome 书签工具,可以将复制到剪贴板的 HTML、CSS 和 JavaScript 代码渲染成完整的网页,并支持 SVG 代码。该工具特别适用于 ChatGPT Canvas,可以快速预览生成的代码效果,而无需使用 IDE 或保存文件。

阅读更多
未分类
← 前页 1