分类: 开发

用NaN隐藏数据:Stuffed-Naan库的奇技淫巧

2025-04-26
用NaN隐藏数据:Stuffed-Naan库的奇技淫巧

Stuffed-Naan是一个新库,它利用JavaScript中NaN(非数字)值的特性来隐藏和传输数据。通过巧妙地将数据编码到NaN的尾数部分,Stuffed-Naan可以在进行数学运算后仍然保留原始数据。文章以幽默的语气介绍了这个库,并强调其压缩率高、速度快、隐私性好等优点,同时也提到了企业版的附加功能。虽然这个方法略显古怪,但它有效地利用了IEEE 754浮点数的特性。

开发 NaN

告别邮件服务器的烦恼:NNCPNET,你的私有邮件网络

2025-04-26

从1995年到2019年,作者自己运行邮件服务器,经历了UUCP、公寓服务器到VPS的历程。但如今邮件服务器的维护变得困难重重,SPF、DKIM、DMARC和TLS等协议让配置变得复杂。为此,作者开发了NNCPNET,一个基于NNCP协议的邮件系统。NNCP类似于SSH之于Telnet,它安全、异步且支持多种传输方式,甚至可以脱离互联网运行。NNCPNET提供Docker镜像,包含Exim邮件服务器、NNCP、验证工具和自动节点列表更新等功能,让用户轻松构建私有邮件网络,享受邮件的乐趣,无需公网IP和始终在线的网络连接。

重温DOS:一个USB启动的怀旧写作神器

2025-04-26
重温DOS:一个USB启动的怀旧写作神器

现代操作系统过于庞大和复杂,让人怀念起DOS时代:只需三个文件就能启动系统,配置也只需编辑寥寥数行的文本文件。尽管功能有限,DOS却曾风靡全球。如今,一个基于SvarDOS的USB启动盘项目重现了这一经典系统,并预装了WordPerfect、Arnor Protext等经典写作软件,为那些寻求远离网络干扰的专注写作环境的用户提供了一个独特的解决方案。虽然功能有限,但它却能提供一个简单、高效的写作体验,将用户带回那个纯粹的写作时代。

开发

RetrOS-32: 一个32位趣味操作系统

2025-04-26
RetrOS-32: 一个32位趣味操作系统

RetrOS-32是一个由C和汇编语言编写的32位操作系统,支持图形界面、多任务和网络功能。它具有用户创建、文件系统和一些基本应用程序(如终端、计算器和简单的游戏)。该项目支持在多种硬件平台上运行,并提供Docker镜像方便跨平台编译。虽然仍在开发中,但其已经具备了相当的功能,是一个值得关注的开源项目。

开发

YC孵化的AI原生测试平台招募后端工程师

2025-04-26
YC孵化的AI原生测试平台招募后端工程师

一家由资深移动应用开发者创立的种子轮AI原生QA解决方案初创公司GPT Driver,正在招聘远程后端/平台工程师。该公司产品专注于移动应用的端到端自动化测试,并计划扩展至Web、桌面和非功能性测试。该职位需要3年以上相关经验,熟悉云端后端系统,并有运行移动模拟器和无头浏览器的经验。公司提供具有竞争力的薪酬(4000-7000美元/月)、远程办公和股权激励。

开发

终端输入神器:Empty Enter Expander

2025-04-26
终端输入神器:Empty Enter Expander

Empty Enter Expander 是一款提升终端效率的 zsh 工具,通过简单的按键组合即可快速执行预设命令。它将命令存储在模块目录中,目录及文件名需以小写字母开头,作为快捷键使用。例如,按下 Enter 后,输入 'g, l, Enter' 即可执行预设的 git log 命令。用户可自定义命令及快捷键,只需将脚本文件放入模块目录的对应子目录即可。配置过程需要修改 .zprofile 文件,设置模块路径并加载 zsh 函数。

开发

ACM旗舰杂志CACM征稿:实践专栏

2025-04-26

ACM旗舰杂志《Communications of the ACM》(CACM) 正在招募其全新“实践”专栏的稿件。该专栏旨在帮助计算机从业人员提升专业技能和工作效率,文章主题涵盖技术进步、开发实践、组织结构、成功系统案例等,篇幅限制在10页(约6000字)以内。CACM欢迎来自各行各业的投稿,但更倾向于具有广泛实用价值的文章,而非高度专业化的技术细节。投稿前可与专栏联合主席联系,文章将经过同行评审和专业编辑。

开发 ACM CACM 征稿

告别龟速配置:利用Makefile并行化构建过程

2025-04-26

作者Tavian Barnes吐槽了现有构建系统(Autoconf、CMake、Meson等)配置阶段的低效,其耗时远超构建阶段。他提出了一种基于Makefile的并行化解决方案,通过将配置过程分解成多个可并行执行的任务,显著提升了效率。核心思想是利用make的并行能力,将原本串行的编译器测试任务并行化,最终将配置时间从38秒缩短到0.4秒。文中详细介绍了实现方法,包括辅助脚本、Makefile编写技巧以及并行化策略。这篇文章对于追求构建速度的开发者具有重要的参考价值。

开发

GS-Calc:一款能处理海量数据的现代电子表格软件

2025-04-25

GS-Calc 是一款重新定义了桌面软件“大数据集”含义的现代电子表格软件。它能够轻松处理包含数百万行和数万列的超大型 CSV 和 XLSX 文件,并支持无限数量的工作表和子文件夹。其强大的性能优化使其在加载文本文件、复制粘贴、执行 VLOOKUP 和 MATCH 等操作上显著优于其他电子表格软件。此外,GS-Calc 还提供了丰富的功能,例如强大的数据透视表、蒙特卡洛模拟、正则表达式支持以及 Python 集成等,使其成为处理大型数据集的理想工具。

开发

单提示生成功能性Logo制作器:LLM的潜力与局限

2025-04-25
单提示生成功能性Logo制作器:LLM的潜力与局限

作者使用单一提示在Aider中生成一个功能完整的Logo制作器,包含导出功能等。代码片段展示了LLM生成字体链接、依赖项以及内联CSS样式的能力,甚至包含了CDN库的最新SHA哈希值。然而,使用Sonnet 3.7扩展代码时,项目复杂度显著增加,最终代码无法编译。作者探讨了不同LLM(如Claude、GPT-4o)在代码生成和扩展方面的差异,以及上下文窗口大小、输出限制等因素对LLM应用的影响,指出LLM的上下文窗口限制和输出限制是其应用中需要克服的关键挑战。

开发

D语言编程:一本全面指南

2025-04-25

这是一本关于D语言编程的全面指南,涵盖了从基础语法到高级特性的方方面面。书中通过清晰的章节结构,逐步介绍了D语言的核心概念,包括变量、数据类型、运算符、控制流、函数、类、面向对象编程、模板、并发编程等。此外,还包含大量的代码示例和练习题,帮助读者更好地理解和掌握D语言的编程技巧。无论是D语言初学者,还是有一定编程经验的开发者,都能从本书中获益良多。

Magnitude:一款基于AI的开源Web应用测试框架

2025-04-25
Magnitude:一款基于AI的开源Web应用测试框架

Magnitude是一个革命性的开源Web应用端到端测试框架,它利用视觉AI代理来“查看”你的界面并适应其中的任何变化。通过自然语言轻松构建测试用例,强大的推理代理规划和调整测试,快速的视觉代理可靠地执行运行。它支持本地或CI/CD管道运行测试,并能自动处理测试过程中遇到的问题。Magnitude支持多种LLM模型,包括Gemini 2.5 pro、Anthropic、OpenAI等,并提供免费的Moondream视觉模型。它使得编写和运行测试变得前所未有的简单和高效。

开发 Web测试

调试利器:差异代码覆盖率分析

2025-04-25

本文介绍了一种强大的调试技巧——差异代码覆盖率分析。通过比较通过测试和失败测试的代码覆盖率,可以快速定位错误代码。作者以Go语言的`math/big`库为例,演示了如何利用`go test`和`go tool cover`工具生成覆盖率报告,并通过`diff`命令比较差异,最终精准地找到了导致测试失败的代码片段,仅需检查少量代码即可解决问题,效率远高于传统方法。

开发

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

2025-04-25
arXivLabs:与社区协作者的实验性项目

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

开发

用Lean4形式化罗素的《数学原理》

2025-04-25
用Lean4形式化罗素的《数学原理》

这个项目旨在使用Lean定理证明器形式化伯特兰·罗素教授的《数学原理》第一卷。目标是确保形式化与书中相应的定理清晰一致,避免混淆。该项目遵循罗素的证明过程,尽量避免添加额外的语句。作者还创建了一个新的战术`Syll`,以处理更一般的三段论形式。尽管《数学原理》被认为是“巨大的失败”,但作者认为这个形式化过程是一个丰富的学习体验。

开发 数学原理

Curry 编程语言:函数式与逻辑式编程的完美融合

2025-04-25
Curry 编程语言:函数式与逻辑式编程的完美融合

Curry 是一种声明式多范式编程语言,它无缝地结合了函数式编程(嵌套表达式、高阶函数、强类型、惰性求值)和逻辑式编程(非确定性、内置搜索、自由变量、部分数据结构)的特性。与单一编程范式相比,Curry 提供了额外的功能,例如针对逻辑导向计算的优化求值和具有用户自定义函数的灵活、非确定性模式匹配。

arXivLabs:社区协作的实验性项目

2025-04-25
arXivLabs:社区协作的实验性项目

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

开发

UIT:云端高性能文件处理库

2025-04-25
UIT:云端高性能文件处理库

UIT是一个用于在云端大规模进行高性能、模块化、低内存文件处理的库。它通过一个四步流程来收集来自任何所需模式的文件层次结构,应用过滤器和转换,并将其输出到任何所需的模式。UIT具有模块化设计,支持并行化和流处理,使其能够在Cloudflare Workers等低内存环境中运行。它还提供各种模块,例如ZIP文件处理、数据合并、格式转换和搜索等,并支持自定义模块的添加。UIT的目标是成为云端流式处理、过滤和转换文件层次结构的标准,并为开发者提供一个强大的文件处理工具。

开发

打造你自己的 Linux 调试器:从零开始 (第一部分)

2025-04-25

本文是系列教程的第一部分,教你如何从零开始构建一个 Linux 程序调试器。教程将涵盖调试器的核心机制,并逐步实现启动、暂停、继续执行、设置断点(内存地址、代码行、函数入口)、读写寄存器和内存、单步执行等功能。作者使用 C/C++ 语言,并依赖 Linenoise 和 libelfin 库。教程分十部分,每部分对应 GitHub 上的分支。后续还会介绍远程调试、共享库支持、表达式求值和多线程调试等高级特性。

开发

Substack 编辑器的神秘“网络错误”:WAF与技术写作的博弈

2025-04-25
Substack 编辑器的神秘“网络错误”:WAF与技术写作的博弈

作者在 Substack 上撰写关于 DNS 解析的技术文章时,发现包含某些 Linux 系统文件路径(例如 /etc/h*sts)时,编辑器会显示“网络错误”并阻止自动保存。调查发现,这是由于 Substack 的 Web 应用防火墙 (WAF) 触发了路径遍历或命令注入攻击的防御机制。虽然 WAF 的目的是保护平台安全,但这给技术写作带来了困扰,因为作者需要讨论这些系统路径。作者建议 Substack 改善 WAF 的上下文识别能力,提供更清晰的错误信息和可行的变通方案,以平衡安全性和技术写作的便利性。

开发

GCC 15.1 重磅发布:GNU编译器集合迎来重大更新

2025-04-25

GCC开发团队欣然宣布GCC 15.1正式发布!这是个重要的版本更新,相较于GCC 14.x,它包含许多新特性和改进。GCC,曾经代表GNU C编译器,如今已发展为支持多种编程语言的GNU编译器集合。此次发布感谢众多贡献者提供的特性、改进、错误修复等。欲了解更多信息,请访问GCC项目网站或联系GCC开发邮件列表。

开发

GCC 15.1:C++26 新特性抢先看

2025-04-25
GCC 15.1:C++26 新特性抢先看

GCC 15.1 预计将于2025年4月或5月发布,它带来了大量C++改进,包括C++26特性:包索引、结构化绑定属性、改进的`=delete`函数支持等。此外,它还修复了许多缺陷报告,改进了模块支持,并提升了编译速度。一些值得关注的新特性还有:constexpr placement new、改进的range-based for循环、更早诊断的限定查找失败以及新的警告选项。GCC 15.1 将为 C++ 开发者带来显著的效率提升和更强大的功能。

开发

AI 辅助编程:效率提升还是技能退化?

2025-04-25
AI 辅助编程:效率提升还是技能退化?

AI 辅助编程工具的兴起带来一个悖论:虽然提高了生产力,但也可能导致技能退化。研究表明,过度依赖 AI 会降低批判性思维和解决问题的能力。文章探讨了 AI 辅助编程的利弊,并建议开发者采取“AI 卫生”措施,如验证 AI 输出、定期进行无 AI 编程练习等,以保持技能的敏锐度,避免成为 AI 的附属品,最终成为一个真正掌握编程技能的工程师。

开发 技能退化

告别繁琐Mac设置:Brewfile、defaults和Zsh插件助你高效配置

2025-04-25
告别繁琐Mac设置:Brewfile、defaults和Zsh插件助你高效配置

厌倦了新MacBook繁琐的应用安装和手动配置?作者分享了使用Brewfile批量安装命令行工具、应用和字体,以及利用macOS defaults命令行工具自定义系统设置的经验。此外,他还推荐了5个提升效率的Zsh插件和一些便捷的别名,最终目标是创建bash脚本实现自动化配置,告别重复劳动。这篇文章适合追求效率的Mac用户参考。

Rust异步运行时可视化:并发与并行

2025-04-25
Rust异步运行时可视化:并发与并行

本文通过可视化的方法,深入探讨了Rust异步运行时Tokio的并发与并行特性。作者巧妙地利用正弦波图形绘制,直观地展现了不同异步任务的执行顺序和CPU占用情况。实验结果显示,CPU密集型任务会阻塞其他异步操作,而通过Tokio的`tokio::spawn`和`tokio::task::spawn_blocking`可以有效地利用多核资源,提升程序性能。文章最后总结了Tokio任务调度策略以及CPU密集型任务处理方法,是一篇深入浅出、图文并茂的优秀教程。

开发

GCC 15 新警告引发的内核编译风波

2025-04-25

Linus Torvalds 在 6.15-rc3 内核发布前夕,因 Fedora 42 预装的 GCC 15 编译器新增的 -Wunterminated-string-initialization 警告,仓促提交补丁解决编译问题,却导致在旧版 GCC 编译器下构建失败。此举引发了与内核开发者 Kees Cook 之间的争论,凸显了提前使用未发布编译器版本的风险以及沟通协调的重要性。最终,Torvalds 回退了补丁,暂时禁用该警告。

开发

Faasta:毫秒级冷启动的WebAssembly FaaS平台

2025-04-25
Faasta:毫秒级冷启动的WebAssembly FaaS平台

Faasta是一个基于WebAssembly的FaaS平台,它以极快的速度和效率著称。冷启动时间低于1毫秒,内存开销低于1KB。它利用WASI P2和WASIHTTP标准,实现高性能HTTP请求处理和函数间的安全隔离。Faasta支持自托管,方便用户在任何地方运行自己的实例。目前处于实验阶段,但已提供免费托管实例faasta.xyz。

开发 FaaS

Kafka 的未来:超越分区,走向更强大的消息队列

2025-04-25

本文探讨了Kafka的未来改进方向,核心在于摆脱分区限制,转向以键为中心的访问模式。这将带来更高效的数据访问和回放,支持动态消费者数量调整,并解决分区阻塞问题。此外,文章还建议引入主题层次结构、并发控制、Broker端Schema支持、可扩展性、同步提交回调、快照功能和多租户支持等特性,以提升Kafka的性能、可靠性和易用性,使其更适合构建现代数据应用。

开发

Git 提交签名:传统方法的局限与未来展望

2025-04-25

作者探讨了Git提交签名的现状和挑战。传统方法如GPG签名存在密钥管理复杂、身份持久化带来的风险等问题。文章分析了GitHub和GitLab平台上GPG、SSH和S/MIME签名的不足,并介绍了Sigstore的Gitsign和OpenPubkey等新兴方案,它们利用短期身份和透明日志来增强安全性,但目前仍存在一些局限。作者最终建议,在Sigstore方案成熟之前,优先关注SSH密钥管理和分支保护规则等措施。

开发

可观测性2.0:告别三支柱,拥抱广域事件

2025-04-25
可观测性2.0:告别三支柱,拥抱广域事件

Honeycomb的Charity Majors提出了“可观测性2.0”的概念,它标志着可观测性从传统的“指标、日志和追踪”三支柱模式的演变。可观测性2.0的核心是采用“广域事件”作为单一数据源,这种高基数、高维度的事件数据包含了丰富的上下文信息,允许事后动态地派生指标、日志和追踪,从而避免了传统方法中数据孤岛、预聚合带来的信息损失以及静态监控的局限性。然而,这种转变也带来了挑战,例如事件生成、数据传输、存储和查询的效率等。GreptimeDB作为一款开源的分析型可观测性数据库,旨在解决这些挑战,它支持OpenTelemetry格式数据,并具有内置转换引擎、高吞吐量实时数据摄取、实时查询API以及物化视图等特性,为可观测性2.0提供了坚实的基础设施。

开发
1 2 103 104 105 107 109 110 111 213 214