分类: 开发

Awk JSON 解析器:高效的键值提取函数

2025-06-29

这段代码实现了一个强大的Awk函数,用于解析JSON数据并提取指定键的值。它能够处理嵌套对象和数组,支持点分隔符路径,并优雅地处理各种JSON数据类型。该函数利用Awk的字符串处理能力,高效地遍历JSON结构,找到目标键并返回其对应的值,展现了Awk在数据处理方面的强大功能。

(akr.am)
开发 Awk

AGL:一种编译到 Go 的简洁脚本语言

2025-06-29
AGL:一种编译到 Go 的简洁脚本语言

AGL 是一种编译成 Go 代码的全新编程语言,它借鉴了 Go 的语法,并引入了诸多改进,例如单返回值、元组类型、结果类型和选项类型以简化错误处理,以及简洁的匿名函数和数组内置方法等。AGL 支持操作符重载、枚举和泛型,并提供 VSCode 插件和 Shell shebang 支持,极大地提升了开发效率。其编译方式灵活,既可编译成 Go 代码,也可直接运行,方便开发者快速迭代和测试。

开发 AGL

arXivLabs:与社区协作者共建arXiv新功能

2025-06-29
arXivLabs:与社区协作者共建arXiv新功能

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

开发

MCP:意外的通用插件生态系统

2025-06-29
MCP:意外的通用插件生态系统

本文讲述了MCP(模型上下文协议)的意外用途。最初设计用于增强AI助手,但其“连接AI模型与不同数据源和工具的标准化方式”的特性,使其超越了AI领域。就像USB-C接口不仅用于充电和传输文件,还可能连接烤面包机到显示器一样,MCP也成为一个通用的插件生态系统,开发者可以创建各种功能插件,而无需了解其他应用程序的内部运作。这使得应用程序的功能扩展性大大增强,创造出意想不到的应用场景,例如,一个任务管理应用可以通过MCP服务器实现拼写检查、自动点咖啡等功能。

开发

英国护照申请:一场程序员也能参与的复杂游戏

2025-06-29

英国的护照申请流程,被一位程序员比喻成一个复杂的在线游戏。申请人需要收集各种证明材料,如同在游戏中收集道具,最终才能证明自己是英国公民。游戏规则复杂,充满了官僚逻辑,甚至需要追溯到祖先的出生证明。这位程序员用Haskell语言编写了一个程序,尝试模拟这一流程,并最终生成了所有可能的所需文件组合,帮助理解申请过程的复杂性,也引发了对政府机构流程自动化与人机协作的讨论。

Oracle“JavaScript”商标案:Node.js之父反击

2025-06-29
Oracle“JavaScript”商标案:Node.js之父反击

Node.js 创建者起诉 Oracle 对“JavaScript”商标的虚假主张被驳回,但核心争议在于该商标的通用性和放弃性。原告认为“JavaScript”是通用术语,而非 Oracle 品牌,Oracle 使用 Node.js 网站截图作为商标使用的证据更是加剧了争议。此案将继续审理,Oracle 需回应通用性和放弃性指控,最终结果将决定“JavaScript”是否能摆脱商标限制,回归社区所有。

开发

东京大学本科生自制CPU运行操作系统Xv6的传奇

2025-06-28

2015年,东京大学信息科学系学生在“CPU实验”课程中,挑战了前所未有的难度:设计并构建一个RISC指令集架构(ISA)的处理器,为其编写C语言编译器,最终成功运行了类Unix操作系统Xv6。这是一个耗时四个月的项目,团队克服了编译器构建、操作系统所需CPU特性、模拟器改进以及Xv6移植性等诸多挑战,最终不仅成功运行了Xv6,还实现了游戏(2048、扫雷)等娱乐功能,甚至在自制CPU上运行了课程要求的光线追踪程序。这是一个充满挑战和乐趣的经历,展现了学生们非凡的创造力和技术实力,也证明了“重新发明轮子”的价值和意义。

开发 CPU设计

AI 代码生成时代,资深开发者为何比以往更重要?

2025-06-28
AI 代码生成时代,资深开发者为何比以往更重要?

在AI代码生成工具盛行的时代,资深开发者比以往任何时候都更重要。文章指出,程序不仅仅是代码,更是构建在开发者对系统理解之上的理论模型。AI生成的代码缺乏这种理论基础,容易导致代码库混乱、技术债务累积。资深开发者能够构建和维护这种理论框架,确保代码与业务需求一致,并指导年轻开发者,将零散的代码转化为连贯的程序。因此,企业需要重视知识共享和理论传承,培养具有深厚理论基础的开发者,才能保障软件质量和长期可维护性。

Whitesmiths C 编译器开源计划:传奇编译器的回归

2025-06-28
Whitesmiths C 编译器开源计划:传奇编译器的回归

Whitesmiths C编译器,这款在1978年发布的编译器曾为DEC PDP-11、Intel 8080等多种架构生成代码,如今有望开源!其开发者P.J. Plauger已授权将其用于非商业目的。目前已有多个版本的二进制文件和部分源代码可供下载,包括CP/M-80版本和IBM System/36交叉编译器版本。 这款具有历史意义的编译器,将为C语言发展史的研究和学习提供宝贵资源。

开发

Nim 语言的 Raspberry Pi 裸机环境

2025-06-28
Nim 语言的 Raspberry Pi 裸机环境

这个项目展示了如何在 Raspberry Pi 1/Zero 上使用 Nim 语言构建一个精简的裸机环境。它实现了简单的协程调度器、异步编程模型以及直接硬件访问,无需依赖任何厂商特定的 API。项目还包含了内存管理、异常处理以及运行时监控等功能,并提供了详细的安装和使用说明。未来计划扩展到更多目标平台,并增加更多外设驱动支持。

开发

生成式AI:编程的范式转移

2025-06-28
生成式AI:编程的范式转移

大型语言模型(LLM)正在彻底改变软件开发,其影响程度堪比从汇编语言到高级编程语言的转变。作者认为,LLM不仅提升了抽象层次,更引入了非确定性,这与以往的编程范式截然不同。从Fortran到Ruby,编程语言的演进提升了效率,但其本质未变。而LLM带来的非确定性,要求程序员学习与之共存,这将带来新的挑战与机遇。

开发

多阶段编程与拼接变量:安全可预测的代码生成

2025-06-28

这篇论文介绍了一种名为“多阶段编程”(MSP)的新技术,它允许程序生成其他程序。为了保证代码生成的安全性与可预测性,研究人员引入了“拼接变量”的概念。拼接变量能够精确控制代码生成过程,并无缝扩展到高级特性,例如代码模式匹配和重写。类型系统自动跟踪变量依赖关系,确保生成的代码始终格式良好、范围正确且类型检查正确。文中通过一个计算x的n次方的例子以及代码模式匹配、重写等功能演示了拼接变量的强大之处。

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

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

arXivLabs是一个框架,允许合作者直接在我们网站上开发和分享新的arXiv功能。与arXivLabs合作的个人和组织都认同并接受了我们开放、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有一个可以为arXiv社区增值的项目创意,请了解更多关于arXivLabs的信息。

开发

Rust内核驱动开发:简洁的AX88796B以太网控制器驱动示例

2025-06-28

本文讲述了使用Rust编写Linux内核中AX88796B嵌入式以太网控制器驱动程序的经验。作者将Rust版本与C版本进行了对比,重点介绍了Rust在语法、类型和API上的差异。Rust版本代码简洁,仅100多行,利用宏简化了驱动注册过程,并通过trait和vtable宏实现了与C代码的无缝集成。文章深入浅出地讲解了Rust在内核驱动开发中的优势,例如通过引用保证内存安全,使用Result和try操作符简化错误处理等,为Rust内核驱动开发提供了宝贵的参考。

开发

bootc-image-builder:从容器构建可启动磁盘镜像

2025-06-28
bootc-image-builder:从容器构建可启动磁盘镜像

bootc-image-builder是一个强大的工具,用于基于Fedora/CentOS bootc容器或其衍生版本创建磁盘镜像。它支持多种镜像类型(qcow2、AMI、ISO等),并允许自定义用户、文件系统、内核参数等。通过Podman和QEMU,用户可以轻松构建和运行虚拟机。本文详细介绍了其使用方法、选项以及高级配置,例如使用AWS创建AMI镜像和自定义Anaconda安装程序。

开发

Rust 诡异表达式:类型系统的极限挑战

2025-06-28
Rust 诡异表达式:类型系统的极限挑战

本文探讨了Rust编程语言类型系统中一些极端且看似矛盾的表达式。通过分析`weird-expr.rs`测试文件中的例子,例如`return true`、嵌套循环和`break`语句的巧妙运用,以及对类型推断和强制转换机制的深入理解,解释了这些表达式在Rust中的有效性。这些并非错误,而是Rust灵活类型系统和强大的表达能力的体现,展示了其在处理极端情况时的强大之处。

开发

苹果传奇:14岁少年与初代Mac计算器的故事

2025-06-28

14岁的Chris Espinosa成为苹果早期员工,参与了Macintosh的开发。他负责Macintosh的文档编写,为了更好地理解Quickdraw绘图软件,他编写了一个计算器程序。Steve Jobs对最初的版本评价很低,但Chris灵光一闪,开发了一个可自定义参数的“Steve Jobs Roll Your Own Calculator Construction Set”,最终这个设计被采用,成为Macintosh多年来的经典计算器界面。

开发

SymbolicAI:神经符号大型语言模型框架

2025-06-28
SymbolicAI:神经符号大型语言模型框架

SymbolicAI是一个结合了经典Python编程和大型语言模型(LLM)可微分编程特性的神经符号框架。它具有模块化设计,易于扩展和定制,允许用户编写自己的引擎、本地托管引擎或与网络搜索、图像生成等工具交互。核心概念是符号对象和契约。符号对象有句法和语义两种类型,契约则通过装饰器来确保代码的正确性。SymbolicAI支持多种原语操作,并通过API支持OpenAI、Anthropic等神经符号引擎,以及Wolfram Alpha、搜索引擎等多种工具。它还具有优先级配置系统,方便用户管理配置。

开发 神经符号

c4wa:一款极简高效的C语言到WebAssembly编译器

2025-06-28
c4wa:一款极简高效的C语言到WebAssembly编译器

c4wa是一个将C语言子集编译成WebAssembly的编译器。它不同于其他编译器,它生成简洁高效的WebAssembly代码,无任何额外依赖或开销,并完全兼容任何WASM运行时。c4wa支持循环、条件语句、结构体、数组、指针等C语言特性,并能输出可读的WAT格式代码。它在C语言的高级性和WebAssembly的底层效率之间取得了平衡,为开发者提供了一种编写高效WebAssembly代码的新途径。

开发

Rust构建的超高速Python语言服务器ZubanLS

2025-06-27

2012年,作者创建了广受欢迎的Python自动补全库Jedi,但其速度限制日益凸显。2020年,作者使用Rust从零开始构建ZubanLS,历时五年,终于打造出首个真正高速的Python语言服务器。ZubanLS 专为追求精确、可靠和速度的专业人士而设计,它解决了Mypy和Pyright等工具长期存在的问题,在不牺牲功能的情况下注重性能。Django支持、跳转到定义、代码补全和其他LSP功能正在开发中。2025年的首个版本可能并非完美无缺,欢迎用户反馈以改进功能。

开发

在死寂的C语言海洋中的一次Lisp冒险

2025-06-27

本文通过类C语言的视角,探讨了Lisp语言强大的抽象能力以及C语言的局限性。作者以函数为切入点,分析了函数参数的评估策略,指出C语言中参数的传值方式限制了对函数参数的控制,无法实现像Lisp中的if、while、cond等灵活的条件语句和循环语句。文章进一步探讨了闭包和运行时创建函数等高级特性,这些特性在C语言中都无法实现,最终总结了C语言在可扩展性方面的不足。

开发

Linux 社区:自由的堡垒还是排斥的牢笼?

2025-06-27

一篇博文引发了关于 Linux 社区包容性的激烈讨论。博主分享了一条充满傲慢和排斥性的评论,该评论批评博主使用“Linux”而不是“GNU/Linux”,并指责博主试图“简化”系统。博主反驳道,真正的“自由”不应该以牺牲弱势群体为代价,并指出 Linux 系统在可访问性方面存在严重缺陷。这引发了关于社区文化、包容性和可访问性重要性的讨论,以及对那些为改进系统做出贡献的人的尊重。

开发

zenta: 专注编码的禅意呼吸工具

2025-06-27
zenta: 专注编码的禅意呼吸工具

zenta 是一款终端原生工具,旨在帮助程序员在编码过程中保持专注。它通过简单的呼吸练习引导用户回归当下,无需繁琐的追踪或数据统计。只需一个命令 `breath` 或 `breathe`,即可启动简短或较长的呼吸练习,以纯净的视觉动画和禅语提示辅助冥想。 `reflect` 命令则用于每日回顾。zenta 倡导真正的正念,而非将正念工具化,强调存在而非生产力。它支持多种操作系统,并采用 MIT 许可证开源。

开发

BQN矩阵乘法性能优化:缓存阻塞和分治法

2025-06-27

本文探讨了如何利用BQN语言优化大型矩阵乘法的性能。作者首先通过简单的方块划分方法,有效利用缓存,将性能提升了约六倍。随后,作者又介绍了一种基于分治策略的Strassen算法,并通过实验验证,该算法在处理大型矩阵时能实现高达9倍的性能提升。文章还比较了不同块大小和嵌套平铺策略对性能的影响,最终得出结论:单线程BQN实现的性能极限已基本达到。

开发

利用GPU和Thrust库加速斐波那契数列计算

2025-06-27
利用GPU和Thrust库加速斐波那契数列计算

本文介绍了如何使用GPU编程和NVIDIA的Thrust库来快速计算斐波那契数列。文章首先讲解了扫描算法的原理,然后演示了如何在Thrust中使用扫描操作进行简单的加法和乘法运算,以及如何扩展到矩阵运算。最后,文章展示了如何利用矩阵运算的特性,通过扫描操作高效地计算斐波那契数列,并通过模运算避免整数溢出,最终在NVIDIA GeForce RTX 3060 Mobile显卡上计算出F99999999 (mod 9837) 的结果。

开发 Thrust库

缓存局部性与数组求和性能:一次令人惊讶的实验

2025-06-27

本文通过实验探讨了数组元素顺序对求和性能的影响。作者比较了顺序访问和随机访问两种方式,发现当数组大小超过缓存容量时,随机访问的性能急剧下降,顺序访问则相对稳定。实验还涉及到内存映射文件和不同硬件平台的差异,结果表明,操作系统对内存映射文件的处理方式也会显著影响性能。最终,作者得出结论:对于大型数组求和,顺序访问是最佳策略,而对于超出内存容量的数据,需要更有效的算法和数据读取策略。

告别Flutter,全Rust开发提升AI应用性能

2025-06-27

一个小型AI应用BoquilaHUB的开发者分享了从Flutter+Rust转向纯Rust+egui的经历。最初使用Flutter_rust_bridge连接Flutter UI和Rust后端,但大量的代码生成、FFI问题以及跨语言API设计带来的复杂性让开发者感到沮丧。最终,开发者选择了egui,一个Rust的GUI库,并在周末重写了UI代码。纯Rust开发简化了项目复杂度,提升了代码可读性和可维护性,并显著改善了应用性能。开发者认为,egui的简洁易用性避免了Flutter中常见的UI刷新问题和繁琐的状态管理,最终实现了更快速、响应更灵敏的应用体验。

开发

开源应用监控SigNoz招募开发者布道师

2025-06-27
开源应用监控SigNoz招募开发者布道师

SigNoz,一个拥有21000+ GitHub星标和6000+ Slack社区成员的全球开源应用监控项目,正在招聘开发者布道师。该职位需要你热爱与人交流,撰写技术博客和视频,在开发者社区推广SigNoz,并帮助用户设置和使用该产品。你将有机会在全球开发者基础设施产品中工作,与开源社区互动,并获得YC和美国知名风投的支持。要求具备1年以上软件工程经验,熟悉多种编程语言和部署方法(例如k8s、Docker),积极参与开发者社区,了解云原生生态系统、Kubernetes和OpenTelemetry者优先。

Blender 5.0 Linux版迎来实验性HDR支持

2025-06-27

Blender 5.0即将推出,其Linux版本将实验性地支持HDR显示,但仅限于Wayland和Vulkan环境。这意味着你需要一台HDR显示器、Wayland桌面环境以及Vulkan加速才能体验此功能。目前该功能的兼容性还在测试中,最终是否会成为正式功能尚待观察。

开发 Blender 5.0

Swift进军Android:苹果的编程语言跨平台扩张

2025-06-27
Swift进军Android:苹果的编程语言跨平台扩张

苹果公司旗下的Swift编程语言正积极拓展至Android应用开发领域。虽然Android平台主要使用Kotlin语言,但Swift的Android工作组已成立,旨在将Android作为Swift官方支持的平台。该工作组的目标包括改进Android平台的Swift支持、优化核心Swift包以更好地适应Android,以及确定支持的Android API级别和架构等。虽然此前已有第三方工具支持Swift开发Android应用,但苹果此举标志着其在移动开发领域的战略性扩张。

开发
1 2 50 51 52 54 56 57 58 213 214