颠覆认知:SQLite在大规模应用中的优势

2025-03-03
颠覆认知:SQLite在大规模应用中的优势

传统认知中,SQLite仅适用于小型应用。然而,文章指出,借助Cloudflare Durable Objects和Turso等服务,SQLite在超大规模应用中展现出意想不到的优势。这些服务将SQLite数据库按实体分配,取代了传统分片数据库的复杂分区策略,有效解决了分片数据库带来的架构僵化、schema变更困难、跨分区操作复杂等问题。虽然SQLite在大规模应用中也存在一些挑战,例如缺乏开源自托管方案和标准化协议,但其在ACID事务、高效I/O和丰富的SQL扩展方面的优势使其成为一种极具潜力的替代方案。

阅读更多
开发

Ruby 3.4 新特性:更快的连接、更清晰的异常追踪和更便捷的代码

2025-01-01

Ruby 3.4 发布了!博主Chris Sinjakli重点介绍了三个令人兴奋的新特性:首先是默认的块参数名称`it`,简化了代码;其次是实现了RFC8305(Happy Eyeballs Version 2),改进了TCP套接字连接处理,尤其在IPv4和IPv6双栈网络环境下表现出色;最后是更清晰的异常回溯,方便开发者调试。这些改进提升了开发效率和体验,展现了Ruby团队对开发者体验的重视。

阅读更多
开发 Ruby 3.4

歌德的《魔法师的学徒》:权力凌驾于智慧之上

2025-01-30
歌德的《魔法师的学徒》:权力凌驾于智慧之上

歌德的诗歌《魔法师的学徒》讲述了一个古老的寓言故事,迪士尼动画《幻想曲》也将其搬上了银幕。故事中,学徒未经许可便使用魔法,结果导致失控的局面。这则寓言警示了权力凌驾于智慧之上的危险,以及人类创造物失控的风险。文章探讨了“魔法师的学徒综合征”,指出许多科幻故事中人类无法控制其创造物(例如机器人)最终反噬自身的情节正是源于此。

阅读更多

Idris 中安全高效的 printf 实现

2025-02-14

本文介绍了如何在 Idris 语言中,利用依赖类型系统实现一个安全且高效的 printf 函数,无需借助不安全的宏或变长参数。作者通过巧妙地运用类型级编程,将格式字符串解析成数据结构,再根据数据结构动态生成函数类型签名,从而实现了类似 C 语言 printf 的功能,同时保证了内存安全和类型安全。文章还探讨了如何处理运行时格式字符串,并指出了该实现的一些不足之处,例如错误信息不够清晰等,预示着后续改进的方向。

阅读更多

重温Barricelli的细胞自动机:生命的自发生成

2025-01-07

本文探讨了Nils Aall Barricelli在约翰·康威之前15年开创的细胞自动机研究。Barricelli的“共生有机体”模型在一个有限的环形一维空间中,通过简单的碰撞消除、位置复制和变异规则,模拟了不同元素的运动和相互作用。模拟结果显示,即使规则简单,也能自发产生稳定的周期性模式,类似于生命的自发生成。作者深入分析了模式的稳定性,并提出了将宇宙早期模拟与生命起源模拟结合的猜想,试图寻找生命起源的更有效方法。

阅读更多
AI

开源认证服务器OpenAuth:简化身份验证,赋能开发者

2024-12-17
开源认证服务器OpenAuth:简化身份验证,赋能开发者

OpenAuth是一个通用的、基于标准的开源认证提供商,它可以作为独立服务部署,也可以嵌入现有应用程序。它支持多种平台和框架,包括Node.js、Bun、AWS Lambda和Cloudflare Workers。OpenAuth遵循OAuth 2.0规范,可定制,并提供预构建的主题化UI。与其他开源认证解决方案不同,OpenAuth是一个集中的认证服务器,运行在用户自己的基础设施上,简化了自托管过程。它不处理用户管理,而是通过回调机制允许开发者实现自己的用户查找/创建逻辑。OpenAuth使用简单的KV存储,并提供多种实现,例如Cloudflare KV和DynamoDB。它还提供可主题化的UI,方便开发者快速上手。

阅读更多

Hyperspace:利用APFS克隆技术释放Mac磁盘空间的神器

2025-02-25
Hyperspace:利用APFS克隆技术释放Mac磁盘空间的神器

资深开发者John Siracusa推出了一款名为Hyperspace的Mac应用,它巧妙地利用APFS文件系统的克隆特性,帮助用户释放宝贵的磁盘空间。不同于其他删除重复文件的应用,Hyperspace通过将具有相同内容的文件转换为共享同一数据实例的克隆文件,从而实现无损回收空间。文章详细介绍了Hyperspace的开发历程,以及作者在使用SwiftUI和Swift 6过程中的经验和挑战。尽管Hyperspace操作文件的方式存在风险,但其强大的功能和易用性使其成为Mac用户的一大福音。

阅读更多
开发

arXivLabs:与社区协作者合作的实验项目

2025-02-08
arXivLabs:与社区协作者合作的实验项目

arXivLabs是一个框架,允许合作者直接在arXiv网站上开发和分享新的功能。参与arXivLabs的个人和组织都秉持着开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,只与遵守这些价值观的合作伙伴合作。如果你有想法能为arXiv社区增值,那就了解更多关于arXivLabs的信息吧!

阅读更多
开发

DoubleClickjacking:绕过所有Clickjacking防护的新型UI攻击

2025-01-17
DoubleClickjacking:绕过所有Clickjacking防护的新型UI攻击

DoubleClickjacking是一种新型网络攻击,它利用双击事件的计时特性绕过所有已知的Clickjacking防护措施,包括X-Frame-Options头、CSP的frame-ancestors和SameSite: Lax/Strict Cookie。攻击者通过诱导用户双击一个看似正常的按钮,在毫秒级的时间内切换到另一个窗口,从而劫持用户的操作,例如授权恶意应用程序或更改账户设置。这种攻击几乎可以影响所有网站,因为它利用了mousedown和onclick事件之间的细微时间差,即使是最快或最慢的双击也无法避免。目前,一些网站已经采取了防御措施,例如在用户进行鼠标移动或键盘交互前禁用关键按钮,但这需要客户端的保护措施。长远来看,浏览器需要开发新的标准来防御DoubleClickjacking。

阅读更多

Linux内核维护者辞职:因“我们才是那道防线”言论

2025-02-15

Linux内核维护者Karol Herbst因对社区内“我们才是那道防线”(thin blue line)言论无法容忍而辞职。他认为这番话缺乏包容性,尤其在美国当前的政治环境下更是如此,并认为维护者应该为其言论负责。Herbst强调了他对开源社区包容性和尊重的坚定信念,并表示自己因维护工作的压力和倦怠而选择离开。

阅读更多

土豆游戏Kartoffels v0.7更新:洞穴生成算法与RISC-V架构切换

2025-02-17
土豆游戏Kartoffels v0.7更新:洞穴生成算法与RISC-V架构切换

Kartoffels是一款让玩家为虚拟土豆编写固件的游戏。v0.7版本更新包含122次提交,主要改进包括:采用基于细胞自动机的白噪声算法生成更真实的洞穴地图,并解决了此前地图可能出现过多孤立洞穴的问题;将游戏引擎的CPU架构从64位RISC-V切换到32位,以优化内存使用;新增了对每个机器人的行为历史记录功能,为未来排行榜等功能打下基础;重做了部分UI界面,并改进了一些游戏机制。此次更新还重置了服务器,所有上传的机器人程序都将被清除。

阅读更多
(pwy.io)
游戏

重温虎年:一键连接Xbox自制软件服务器的复古应用Uppercut

2025-01-26

Uppercut是一款为OS X Tiger (10.4)系统打造的复古应用,它能够一键连接到Xbins Xbox自制软件FTP服务器。这款应用的设计理念是对2005年Xbox自制软件开发和探索的怀旧致敬。它简化了连接过程,无需复杂的IRC或FTP配置。Uppercut的灵感来源于现代的Xbins连接工具Pandora,但它模拟了2005年用户可能使用的连接方式。如果你使用的是现代操作系统,建议使用功能更强大的Pandora。作者还在Twitch上直播软件开发过程。

阅读更多

面对网络中断的未来:组建互联网韧性俱乐部

2025-06-16

战争、地缘政治和气候变化正使欧洲面临日益频繁和严重的网络中断风险。本文作者Valerie Aurora倡导组建“互联网韧性俱乐部”,利用廉价的LoRa无线电和开源Meshtastic软件,在没有中心化基础设施的情况下建立本地通信网络,以应对潜在的灾难性通信中断。该俱乐部成员由志愿者组成,利用自身的技能和资源,在危机发生时快速恢复网络连接,弥补政府和企业应对不足的现状。文章详细介绍了俱乐部的组建方法、所需设备(LoRa无线电、Meshtastic软件、移动电源、太阳能板等)和使用方法,并分享了乌克兰在网络韧性方面的经验。

阅读更多
科技

萤火虫航天蓝色幽灵号月球着陆器进入月球轨道

2025-02-16

德克萨斯州的萤火虫航天公司研发的蓝色幽灵号月球着陆器成功进入月球轨道,即将在未来几周内着陆。此次任务是美国宇航局商业月球有效载荷服务计划(CLPS)的第三个任务,搭载了10个NASA有效载荷,用于进行一系列科学和技术实验,包括对月球表面热流和着陆羽流进行研究。蓝色幽灵号携带的NASA有效载荷数量创下了CLPS计划的新纪录。着陆预计在3月2日进行。

阅读更多

Nepenthes:一个反爬虫陷阱

2025-01-16

Nepenthes是一个旨在捕获网络爬虫的工具,特别是针对为大型语言模型(LLM)抓取数据的爬虫。它通过生成无限的页面序列,每个页面都包含数十个链接,这些链接会引导爬虫回到陷阱中。页面是随机生成的,但以确定性方式生成,使其看起来像永不改变的静态文件。Nepenthes还会添加延迟来阻止爬虫拖慢服务器速度,并消耗爬虫的时间。此外,还可以添加可选的马尔可夫文本生成功能,为爬虫提供一些数据,希望能加速模型崩溃。此工具会消耗大量CPU资源,尤其是在启用马尔可夫模块的情况下。部署前请谨慎考虑。

阅读更多
开发

GIMP 3.0 插件开发指南:拥抱 Python 3 和 GTK 3

2025-02-16

GIMP 3.0即将发布,它将使用GTK 3和Python 3,这使得插件开发更加便捷和可持续。本文总结了GIMP 3插件开发资源,包括Python 3教程、API文档以及插件存放位置等信息。作者还提到,插件可以使用C、Python 3、Scheme、JavaScript和Vala编写,并建议将插件放在`~/.config/GIMP/3.0/plug-ins/`目录下。此外,文中还介绍了GIMP的Python REPL以及如何处理外部Python模块。

阅读更多
开发 插件开发

LogLayer:统一你的 JavaScript 日志记录

2025-01-06
LogLayer:统一你的 JavaScript 日志记录

LogLayer 是一个 JavaScript 日志记录库的统一层,提供一致的日志记录体验。它支持多种日志库(如 Pino、Bunyan 等)和云服务(如 Datadog、New Relic 等),并允许通过插件扩展功能,例如数据过滤和加密。开发者可以轻松添加标签、元数据和错误信息,并随时切换日志提供商,而无需更改应用程序代码。

阅读更多
开发 LogLayer

单元测试的真相:打破教条,拥抱更灵活的测试策略

2025-02-15

传统单元测试方法论常常陷入教条,导致大量无效测试和时间浪费。本文挑战了“单元”的概念,主张从用户视角出发,编写集成测试和端到端测试,而非死板地为每个类或方法编写单元测试。作者建议减少对代码隔离和mock的依赖,利用真实数据库和Docker等工具,提高测试效率和意义。同时,文章强调测试驱动开发(TDD)并非万能,软件架构设计应优先考虑非功能性需求。最终,作者指出,选择测试策略的关键在于权衡质量保证、重构能力和反馈速度。

阅读更多
开发

英伟达股价:泡沫即将破裂?

2025-01-26
英伟达股价:泡沫即将破裂?

一位拥有十年对冲基金经验的投资分析师兼AI开发者,对英伟达股票的未来表示担忧。虽然AI发展迅速,英伟达在GPU市场占据垄断地位,但其高估值面临多重挑战:新兴的“推理计算”规模法则使得对计算能力的需求可能低于预期;Cerebras和Groq等公司推出的新型芯片架构绕过了英伟达的互联技术优势;各大科技公司纷纷研发定制芯片,削弱英伟达的市场份额;新的软件框架降低了对CUDA的依赖;DeepSeek公司的高效模型训练方法大幅降低了计算成本。这些因素综合起来,可能导致英伟达的营收增长和利润率下降,其当前的高估值难以持续。

阅读更多
科技

中世纪投石机射程计算:一个基于能量守恒的物理学问题

2025-02-06
中世纪投石机射程计算:一个基于能量守恒的物理学问题

本文通过计算能量守恒来估算中世纪投石机的射程。作者首先分析了投石机中重物的势能转化为投射物的动能的过程,并考虑了能量损失。然后,作者通过简单的积分方法(避免了复杂的微积分计算),计算了投射物在空中的飞行时间,最终估算出投石机的射程,并与历史文献中的数据进行了比较,结果令人惊讶地吻合。文章指出,投石机的射程与重力加速度无关,这与直觉相反,但作者通过分析解释了这一现象。

阅读更多

如何高效协作:避免激怒资深工程师的七宗罪

2025-02-23
如何高效协作:避免激怒资深工程师的七宗罪

本文总结了七种常见的、容易激怒资深工程师的行为,例如:未经尝试直接升级问题、含糊其辞地要求紧急处理、随意给出粗略估算并将其作为最终期限、安排含糊不清的会议、突然安排不必要的简短会议、使用“快速修复”但未规划后续清理、频繁变更优先级。作者指出,这些行为会浪费时间、降低效率、破坏团队士气。文章建议,在寻求帮助时应提供充足信息,对紧急程度进行甄别,谨慎对待估算,提前规划会议,尊重工程师的专注时间,对临时方案制定后续计划,保持优先级的稳定性,从而构建积极高效的工程师团队。

阅读更多

eserde: 一次性返回多个反序列化错误

2025-02-21
eserde: 一次性返回多个反序列化错误

Serde库在反序列化时遇到第一个错误就终止,这对于处理用户提供的JSON数据(例如API请求体)非常不便。eserde库应运而生,它能够一次性返回所有反序列化错误,极大地提升了开发者体验。通过将`#[derive(serde::Deserialize)]`替换为`#[derive(eserde::Deserialize)]`,并使用eserde提供的反序列化函数,开发者可以轻松获得所有错误信息,从而减少与API的交互次数。eserde目前支持JSON格式,并计划未来支持YAML和TOML格式。

阅读更多
开发 反序列化

C语言的改进:编译时函数执行和模块导入

2025-01-12

文章探讨了C语言中一些长期存在的不足,例如无法在编译时执行函数、需要冗余的声明以及繁琐的头文件管理。作者基于D语言编译器中的ImportC(一个C编译器)实现了这些改进,例如支持编译时函数执行以进行单元测试,允许任意顺序声明全局变量,以及直接导入C源文件的能力。这些改进显著提高了开发效率和代码可维护性,并说明了现代编译技术在解决C语言历史遗留问题上的潜力。

阅读更多
开发

JavaScript 运行错误:你的应用需要启用 JavaScript

2025-01-16

网页显示“你需要启用JavaScript才能运行此应用”,提示用户需要在浏览器设置中启用JavaScript才能正常使用该网站或应用。这是一个常见的错误信息,表明网站或应用依赖JavaScript来实现其功能,而用户的浏览器当前禁用了JavaScript。解决方法是前往浏览器设置,找到JavaScript设置并将其启用。

阅读更多
杂项

Lox:一款现代化的航天动力学库

2025-02-20
Lox:一款现代化的航天动力学库

Lox是一个用于现代航天工业的安全、易用的航天动力学库。它提供了一个全面的API,涵盖了从高层次的任务规划与分析到低层次的工具。该库支持多种坐标系,包含各大天体的星历数据,并能轻松处理地球定向参数。Lox还提供Python绑定,方便交互式使用,并具有可扩展性,允许用户添加自定义的时间尺度、转换算法和数据源。该项目由欧洲航天局委托,是一个新一代的开源空间任务模拟器。

阅读更多
1 2 1077 1078 1079 1080 1081 1082 1083 1085 下页 →