分类: 开发

Servo项目强势回归:贡献者激增,功能升级

2025-02-05
Servo项目强势回归:贡献者激增,功能升级

两年沉寂后,Servo项目强势回归!2024年,其GitHub贡献者数量激增143%至129人,合并的pull requests数量更是达到惊人的1771个。这得益于Igalia等组织的大力支持以及社区的蓬勃发展。Servo在性能上也取得了显著提升,通过升级核心依赖库并添加对浮动、表格、Flexbox等布局的支持,其WPT测试通过率达到79%。此外,Servo还增加了对Android和OpenHarmony平台的支持,并成功进行了与Tauri等应用的集成测试,未来发展规划也已公布。

开发

Catgrad:基于范畴论的深度学习编译器

2025-02-05

Catgrad是一个利用范畴论将深度学习模型静态编译成其前向和反向传播过程的框架。这意味着你的训练循环无需任何深度学习框架(甚至不需要Catgrad本身!)即可运行。它基于多篇关于范畴论在深度学习中的应用的论文,实现了数据并行算法和可微分多项式电路等高级功能。安装方式简单,只需使用pip install catgrad即可。

开发

Ubuntu 的 Snaps 噩梦:我转向 Fedora 的原因

2025-02-05
Ubuntu 的 Snaps 噩梦:我转向 Fedora 的原因

长期以来,Ubuntu 一直是我的首选 Linux 发行版。然而,从 2016 年开始,每次升级都伴随着各种问题,从微小的图标错误到系统崩溃,不一而足。最糟糕的一次升级甚至导致我母亲的笔记本电脑不得不重装 Windows。

Canonical 对 Snaps 的强制推行更是雪上加霜。Snaps 的自动更新和与传统 Debian 包的冲突导致了大量的兼容性问题和功能故障,严重影响了工作效率。我身边就有同事因为 GNOME 桌面环境的 Snaps 问题而损失了一整天的工作时间。

相比之下,Flatpak 的实现方式则更为合理。最终,我转向了 Fedora,它虽然并非完美,但稳定可靠,目前为止的体验良好。希望 Canonical 能够重新考虑其 Linux 发行版的构建方法。

开发 Snaps

Fiwix:一个轻量级、兼容POSIX的开源操作系统内核

2025-02-05

Fiwix是一个基于UNIX架构、完全兼容POSIX的开源操作系统内核,其代码量不到50K行,主要面向学习和爱好者。它采用单内核设计,用ANSI C编写,支持i386架构并兼容大量GNU应用。FiwixOS是基于Fiwix内核的完整操作系统发行版,包含GNU工具链、库和其他开源软件。它使用Newlib作为标准C库,Ext2作为主要文件系统。开发者鼓励用户测试、反馈和贡献代码,以改进Fiwix和FiwixOS。

开发

F-Droid获巨额资助,保障开源应用未来

2025-02-05
F-Droid获巨额资助,保障开源应用未来

F-Droid,一个致力于提供免费开源安卓应用的平台,近日获得了Open Technology Fund 396,044美元的资助。这笔资金将用于解决F-Droid长期可持续性面临的挑战,包括重构代码、改进法律策略应对政府审查、优化本地化流程、加强捐赠机制以及提升基础设施。此举将确保F-Droid继续为全球用户,特别是网络连接有限地区的用户,提供隐私保护的开源应用。

开发 资助

Apitally API 分析和监控:轻量级数据收集,保护你的敏感信息

2025-02-05
Apitally API 分析和监控:轻量级数据收集,保护你的敏感信息

Apitally 的 API 分析和监控客户端库仅收集关于你的端点、请求和响应的非敏感元数据,包括 HTTP 方法、路径、响应状态码、计时以及请求和响应正文的大小。数据在客户端聚合后才发送到 Apitally 服务器。对于 API 请求日志记录,其客户端库允许你配置所有被记录内容的方面,并方便地屏蔽敏感字段,确保数据安全。

轻松计算语言模型文本令牌数量

2025-02-05
轻松计算语言模型文本令牌数量

本文介绍了一种简单的方法来计算字符串中语言模型的令牌数量。这对于估计应用程序运行成本、检查文本是否适合语言模型的上下文窗口以及确定是否需要分块都非常重要。虽然可以用字符数除以4粗略估计,但更精确的方法是使用你实际使用的语言模型(Hugging Face或OpenAI模型)。作者提供了一个Jupyter Notebook,可以计算字符串、文件或文件夹中所有文件的令牌数量,无需依赖外部服务,安全且免费。

开发 令牌计算

十年软件开发经验:我的想法转变

2025-02-05

一位软件工程师回顾十年职业生涯,分享了他对软件开发理念的转变。他不再迷信简单,认为优雅并非真正的衡量标准,好的管理至关重要。他认识到沟通在工程中的重要性,并强调了为年轻开发者提供空间的重要性。同时,他坚持一些观点,例如代码风格不必过于苛刻,代码覆盖率与代码质量无关,微服务需要合理性,大多数项目无需过度追求扩展性。这篇文章为软件开发者提供了宝贵的经验和反思。

开发 经验总结

Go语言数据结构内存布局详解

2025-02-05

本文深入浅出地讲解了Go语言中基本数据类型、结构体、数组和切片的内存布局。通过图文结合的方式,清晰地展示了各种数据类型在内存中的表示方式,例如int、float、数组、结构体以及指针。文章还特别解释了Go语言中字符串和切片的底层实现,以及`new`和`make`函数的区别,帮助读者更好地理解Go语言高效运行的机制,并对Go语言的内存管理有更深入的认识。

开发

Julia和JuliaHub:创新与增长的飞跃

2025-02-05
Julia和JuliaHub:创新与增长的飞跃

Julia编程语言及其生态系统JuliaHub在过去五年取得了令人瞩目的成就。Discourse浏览量增长494%,GitHub星标数增长412%,核心论文引用量增长391%,注册包数量增长322%,JuliaCon参与者数量大幅增加,JuliaHub员工规模扩大至100多人,并开发了JuliaSim等一系列产品,用于电池模拟、HVAC系统建模和药物研发等领域。未来,Julia和JuliaHub将继续引领创新,推动技术发展。

开发 JuliaHub

MTR:一款强大的网络诊断工具

2025-02-05

MTR 是一款结合了 traceroute 和 ping 功能的网络诊断工具,它能够追踪网络连接路径并测试每个节点的连接质量。用户只需指定目标主机,MTR 就会显示每个网络跃点的地址和连接质量统计信息,帮助用户快速定位网络问题。MTR 开源且跨平台兼容,虽然一些旧的二进制分发和在线服务已失效,但仍可在 GitHub 获取源码并编译,或通过 Debian 等发行版直接使用。

开发 网络诊断

NsJail:Linux进程隔离利器

2025-02-05

NsJail是一个强大的Linux进程隔离工具,利用Linux命名空间、资源限制和seccomp-bpf系统调用过滤器,为网络服务隔离、CTF竞赛、模糊测试等提供安全沙箱。它支持多种隔离方式,包括UTS、MOUNT、PID、IPC、NET、USER命名空间,以及文件系统限制、资源限制和可编程的seccomp-bpf过滤器。通过NsJail,你可以安全地运行不受信任的代码,保护你的系统免受恶意软件的攻击。

开发

GNU Make 标准库:强大的 Makefile 函数库

2025-02-05

GNU Make 标准库 (GMSL) 是一个用原生 GNU Make 功能实现的函数集合,提供列表和字符串操作、整数运算、关联数组、堆栈和调试工具。它包含逻辑运算符、列表和字符串操作函数、集合操作函数、整数运算函数、关联数组、命名堆栈以及函数记忆功能和调试工具。GMSL 使用 BSD 许可证发布,并包含测试套件。其功能涵盖了 Makefile 开发中常见的需求,极大简化了复杂 Makefile 的编写。

开发 函数库

使用 Terraform 工作空间管理多账户 AWS 架构

2025-02-05
使用 Terraform 工作空间管理多账户 AWS 架构

本文介绍了如何使用 Terraform 工作空间管理多账户 AWS 架构。文章重点关注账户与工作空间的关联,并没有深入模块化、安全性和远程状态存储等方面。文中提供了一个使用 Localstack 在本地环境测试的方案,并使用 OpenTofu 作为 Terraform 的开源替代方案。通过创建不同的工作空间并动态加载变量文件,实现了对不同环境(例如开发和 UAT)的配置管理。

14岁少年自制Transputer Pascal编译器

2025-02-05
14岁少年自制Transputer Pascal编译器

1993年,14岁的作者利用父亲购置的昂贵Transputer芯片,凭借着对Pascal语言、编译原理和Transputer编程的掌握,历时数月,成功编写了一个几乎完整的Pascal编译器。这并非易事,他先编写了汇编器,再将Tiny Pascal编译器移植并改进,最终实现了Pascal编译器的自编译。这个项目不仅展现了作者的编程天赋和毅力,也反映了当时Transputer芯片在并行计算领域的探索和局限性。

开发 Transputer

五年磨一剑:一个音乐创作 Web 应用的诞生与 Hacker News 之旅

2025-02-05
五年磨一剑:一个音乐创作 Web 应用的诞生与 Hacker News 之旅

一位工程师历时五年,克服技术栈迭代、性能瓶颈等重重困难,最终发布了一款极简的在线音乐创作 Web 应用「signal」。从最初的 C++ 到 Electron、CoffeeScript、React、Riot.js、TypeScript,再到最终的 WebGL 和 styled-components,他不断尝试、迭代,最终在 Hacker News 上获得了一些关注,并收获了 GitHub 星星和赞助。虽然应用仍处于早期阶段,但作者已实现其最初的愿景,并期待未来能实现多人协同创作的功能。

开发

Zig 语言:数月使用体验后的反思

2025-02-05

作者在使用了数月Zig语言后,对其进行了深入的反思。文章从优点和缺点两方面进行了阐述。优点包括任意大小整数、紧凑结构体、类型级别的泛型函数以及优秀的 C 互操作性等。缺点则集中在错误处理机制的不足、禁止阴影变量、编译时鸭子类型带来的不确定性、缺乏类型类/特性以及内存安全性的误解等方面。作者认为,Zig 牺牲了内存安全性和健壮性来换取简洁性,这在大型项目中可能带来风险,最终决定放弃使用Zig。

开发

LSD:赋予Claude访问互联网能力的MCP服务器

2025-02-05
LSD:赋予Claude访问互联网能力的MCP服务器

LSD-MCP 服务器通过 Claude 连接互联网,并使用 LSD SQL(一种用于网络的 DSL)直接从网站聚合高质量信息。它允许开发者将互联网连接到应用程序,如同 PostgreSQL 数据库一样。LSD 的设计目标是浏览器,支持强大的并行处理,并具有即时表功能,无需预先创建表即可获取数据。通过简单的命令行安装,并配置 LSD_USER 和 LSD_API_KEY 后,即可让 Claude 执行 LSD 查询。如有错误,需检查 uv 路径和 claude_desktop_config.json 文件配置。

Ambsheets:让电子表格容纳不确定性

2025-02-05
Ambsheets:让电子表格容纳不确定性

想象一下,如果电子表格中的一个单元格可以同时容纳多个值,会发生什么?Ambsheets项目正是基于这样的设想,它扩展了传统电子表格的功能,允许单元格包含“amb值”,代表多个可能的值。这使得用户可以轻松地探索多种可能性,例如在预算规划中同时考虑不同价位的汽车和公寓,而无需繁琐地修改表格结构。与Excel的“What-If Analysis”相比,Ambsheets具有更简洁的界面和更强大的自动组合功能,能够高效处理多维度可能性空间。目前,研究人员正在探索Ambsheets在过滤、可视化和连续分布等方面的应用,以期将其发展成为更强大的情景探索工具。

开发

CodeCrafters闪电面试流程:两天搞定!

2025-02-05
CodeCrafters闪电面试流程:两天搞定!

CodeCrafters公司推出了一个超快速的面试流程,只需1-2天即可完成。流程包括:15-30分钟的初步Zoom视频面试,了解彼此背景和期望;2-3小时的CodeCrafters编程挑战,采用半实时的方式,允许自行选择编程语言,重点考察解题思路和代码结构(提前练习不作弊);最后是30-60分钟的Zoom视频面试,详细讨论工作经历和入职时间等。

开发 快速招聘

行动者信息安全指南:保护你的数字足迹

2025-02-05

这份指南旨在帮助活动家保护他们在数字世界中的安全和隐私。文章强调了在当今技术环境下,活动家面临的风险越来越大,因为执法部门可以轻易地获取用户数据。指南建议使用注重隐私的工具,例如DuckDuckGo搜索引擎、Signal通讯软件、Jitsi视频会议软件以及Bitwarden密码管理器,并提供了详细的手机安全设置指南,包括禁用GPS、蓝牙和WiFi等功能,以及设置强大的密码和启用双因素身份验证。指南还建议活动家在参与活动前、活动中和活动后采取相应的安全措施,以最大限度地减少个人信息泄露的风险。

Beej's Git 指南:一份详尽的 Git 学习资源

2025-02-05

Beej's Git 指南提供了一份全面的 Git 教程,涵盖了各种格式的 PDF 和 HTML 版本,方便读者学习。指南作者诚恳地指出内容可能存在错误,并欢迎读者指正。此外,指南还提供了多种纸张尺寸和打印模式的选择,方便读者打印学习。对于翻译者和撰写者,指南也提供了GitHub仓库链接,方便参与贡献。

1
开发

APL编程挑战赛:赢取100美元奖金

2025-02-05
APL编程挑战赛:赢取100美元奖金

Dyalog Ltd举办的APL编程挑战赛正在火热进行中!每年四轮,每轮十道题,持续三个月,奖金丰厚。无需编程基础,题目会逐步引导你学习APL编程语言。即使你只想了解APL,也可以注册关注后续赛事。快来挑战你的编程能力,赢取100美元奖金吧!

开发 奖金

Handmade Cities与Handmade Network分道扬镳

2025-02-04
Handmade Cities与Handmade Network分道扬镳

Handmade Cities (HMC) 和 Handmade Network (HMN) 正式分家,但双方表示分歧友好解决。由于对品牌发展方向存在根本性分歧,两者决定分道扬镳。HMC 将专注于提升编程技能,未来会议内容将 80% 侧重经典工程技术,20% 关注科技工作者权益。作者同时宣布推出原生桌面终端软件 Terminal Click,并更新个人网站为 abner.page。

开发

Oracle试图垄断“JavaScript”商标引争议

2025-02-04
Oracle试图垄断“JavaScript”商标引争议

Deno公司起诉Oracle公司滥用“JavaScript”商标,指控其在商标续期申请中提交虚假证据,使用Node.js网站截图作为使用证明。Oracle辩称提交了两个样本,Node.js截图仅用于软件产品类别,而其主要样本——Oracle JET页面——足以涵盖所有类别。然而,这一说法并未解释为何同时提交Node.js截图,以及Oracle JET的实际使用情况。Deno公司认为Oracle此举意图拖延诉讼,逃避对“JavaScript”商标是否具有通用性的讨论。此事件引发了关于商标制度及大型企业滥用商标的担忧。

开发

TrailBase:速度惊人的轻量级数据库

2025-02-04

TrailBase 是一款轻量级数据库,它结合了低开销语言、高速 HTTP 服务器和轻量级关系型 SQL 数据库。基准测试显示,TrailBase 在插入 100k 条记录的速度上比 SupaBase 快 20 倍以上,比 PocketBase 快 10 倍以上,甚至比本地 SQLite 还快。尽管 SupaBase 功能更强大,但内存占用却高达 TrailBase 的 50 倍。TrailBase 的读取延迟极低,与 Redis 处于同一水平,但它处理的是原始数据而非缓存。TrailBase 的 JavaScript 性能也十分出色,其 V8 引擎比 PocketBase 的 goja 引擎快 40 倍。总而言之,TrailBase 是一款速度惊人、资源占用极低的数据库,但需根据实际应用场景进行测试。

开发

程序员如何高效利用大型语言模型

2025-02-04

一位资深软件工程师分享了他如何将大型语言模型(LLM)融入日常开发工作,提高效率。他主要使用LLM进行代码补全、编写一次性代码、学习新领域、最后手段的bug修复以及润色文档。他强调LLM并非万能,尤其不适合编写核心业务逻辑或撰写正式文档,但作为辅助工具,能显著提升效率,尤其是在处理不熟悉的代码或学习新技术时。

开发

Roame:寻找下一个AI全栈工程师,重塑旅行体验

2025-02-04
Roame:寻找下一个AI全栈工程师,重塑旅行体验

Roame,一家YC夏令营2023届的初创公司,致力于利用信用卡积分和里程预订机票,现招聘首位AI全栈工程师。该职位要求候选人具备3年以上经验,精通NextJS、Firebase、Go和移动开发,并对AI管道建设有深入理解。Roame强调高度的自主性和责任感,鼓励快速迭代和创新,提供丰厚的福利待遇,包括免费午餐和商务舱差旅。如果你渴望在快速发展的初创公司中承担重要角色,并对旅行和积分领域充满热情,这将是一个绝佳的机会。

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

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

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

开发

告别数据库计数器锁竞争:分槽计数器模式

2025-02-04
告别数据库计数器锁竞争:分槽计数器模式

高并发场景下,数据库计数器更新容易产生锁竞争,导致性能下降甚至死锁。文章介绍了一种名为“分槽计数器”的模式,通过将计数器分散到多个槽中,有效缓解锁竞争问题。这种模式将计数操作分散到多个行上,避免了单行更新的瓶颈,从而提升了并发性能。GitHub也曾使用类似的方案解决计数问题,其核心思想是将更新操作分散到多个行,最后再汇总得到最终计数。

开发
1 2 168 169 170 172 174 175 176 213 214