分类: 开发

SIMD优化卷积的教训:分支预测与编译器陷阱

2025-03-07

作者尝试使用SIMD指令优化卷积运算,却遭遇性能下降的难题。最初的实现使用了SIMD加载、FMA指令和循环优化技巧,但速度却比未向量化的实现慢两倍多。经过一番调试,发现问题在于过多的分支指令导致CPU分支预测失败,以及编译器内联函数大小限制导致AVX指令集无法正常使用。最终,通过减少分支、拆分循环和合理使用编译器内联属性,作者成功将性能提升至预期水平。这个案例说明了现代CPU架构的复杂性,以及性能优化中需要注意的细节问题。

开发

Lisp方言大比拼:Scheme、Common Lisp、Clojure和Racket哪个更适合你?

2025-03-07

Lisp家族庞大且复杂,本文探讨了四个主要方言:Scheme、Common Lisp、Clojure和Racket。Scheme以其极简主义和强大的学术基础而闻名;Common Lisp则拥有丰富的标准库和数十年的历史积淀;Clojure注重函数式编程、并发性和与JVM的互操作性;Racket易于上手,并专注于教育和可扩展性。文章还深入探讨了每个方言的历史、社区和特点,并对不同方言之间的“部落主义”现象进行了有趣的分析。最终,文章并没有给出哪个方言“最好”的答案,而是引导读者根据自身需求选择最合适的Lisp方言。

开发

StrictYAML: 一个安全的YAML解析器

2025-03-07

StrictYAML是一个类型安全的YAML解析器,它解析并验证YAML规范的一个受限子集。它优先考虑简洁的API、拒绝解析YAML中难以阅读和不安全的特性,并进行严格的标记验证和直接的类型转换。StrictYAML提供清晰易读的异常信息,并能作为pyyaml、ruamel.yaml或poyo的替代品。它可以读取YAML,进行修改并再次写入,同时保留注释。虽然目前速度不是其优先考虑的因素,但它在安全性、易用性和类型安全方面表现出色。

开发 YAML解析器

one.el:一个基于Emacs Lisp的极简静态网站生成器

2025-03-07

厌倦了复杂的静态网站生成器?one.el 应运而生!它是一个轻量级的静态网站生成器,完全基于 Emacs Lisp 和 org-mode,无需配置文件和外部依赖。只需一个 org 文件,通过 Emacs Lisp 代码和 CSS 即可轻松构建和修改网站。内置简单的模板和渲染函数,支持自定义页面路径和样式。想快速上手?访问 GitHub 仓库了解更多信息。

开发 org-mode

Windows 11 Insider 预览版 22635.4950 新功能:更便捷的文件共享和改进的开始菜单

2025-03-07
Windows 11 Insider 预览版 22635.4950 新功能:更便捷的文件共享和改进的开始菜单

Windows 11 Beta 通道发布了 Insider 预览版 Build 22635.4950 (KB5052078),带来了诸多改进。最引人注目的是新的拖拽文件共享功能,让文件共享更便捷快速。此外,开始菜单的“全部”页面新增了网格视图和类别视图,方便用户查找应用。本次更新还修复了文件资源管理器、任务栏和设置等方面的一些问题,并提升了文件资源管理器的辅助功能支持。一些新功能将逐步向用户推出,部分用户可能需要手动启用才能体验。

开发

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

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

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

开发

轻松阅读瑞典语电子书

2025-03-07

Ereader Easy Swedish是一个免费的在线电子书阅读器,可以将任何epub格式的书籍转换成简易瑞典语版本。即使你的瑞典语水平有限,或者你喜欢的书没有瑞典语版本,你也可以轻松阅读。该项目是瑞典语自学项目的一部分,近期更新修复了书籍封面背景、增加了显示原文的功能,并解决了翻译跳过部分原文文本的问题。

Linux Prepper播客更新:开源项目、社区活动和赞助商

2025-03-07
Linux Prepper播客更新:开源项目、社区活动和赞助商

本期Linux Prepper播客更新涵盖多个方面:首先,播客宣布了新的赞助商ameriDroid,并提供了支持方式;其次,重点介绍了Librewolf浏览器、PixelFed和Loops等开源项目,它们分别是Firefox、Instagram和TikTok的开源替代品;最后,播客还分享了听众反馈,并预告了Hungry Bogart关于播客起源的访谈以及Pimox 7项目(用于在arm64硬件上学习Proxmox)。听众可以通过多种方式参与,包括Matrix聊天室、反馈表单和邮件等。

开发

Gboard安卓版迎来圆形按键新设计

2025-03-07
Gboard安卓版迎来圆形按键新设计

谷歌正在为部分Gboard安卓版测试用户推出圆形或药丸形按键的新设计。这次更新并非简单的功能调整,而是对按键形状的彻底改变,将原先的圆角矩形按键替换为圆形和药丸形按键,空间键和其他按键也相应调整为药丸形。虽然触摸目标区域没有变化,但这项改动显著改变了Gboard安卓版的外观,使其看起来更现代化。不过,如果启用了“长按显示符号”功能,按键布局可能会显得有点拥挤。目前,该更新仅面向部分Gboard beta (版本15.1)用户推送,谷歌尚未决定是否将其广泛应用于所有用户。

开发

ChatGPT macOS版新增代码编辑功能

2025-03-06
ChatGPT macOS版新增代码编辑功能

OpenAI宣布ChatGPT macOS版新增直接编辑代码功能,支持Xcode、VS Code和JetBrains等开发工具。付费用户已可使用,免费用户下周开放。此功能基于去年11月推出的“与应用协作”功能,可减少代码复制粘贴。此举使ChatGPT与Cursor和GitHub Copilot等AI编码工具竞争更激烈,OpenAI未来还计划推出专门的软件工程产品。虽然AI编码工具越来越流行,但同时也存在安全、版权和可靠性风险,例如调试AI生成的代码和安全漏洞需要更多时间。

开发

Rust线性代数库:lin-alg

2025-03-06
Rust线性代数库:lin-alg

lin-alg是一个用Rust编写的线性代数库,提供向量、矩阵和四元数的数据结构和运算,支持f32和f64类型。它适用于计算机图形学、生物力学、机器人技术等领域。该库支持no_std环境,并提供计算机图形学功能和bincode编码解码功能。需要注意的是,该库不应使用cargo fmt进行格式化。

开发

通过晦涩的 Linux 进程标志将延迟降低 83%

2025-03-06
通过晦涩的 Linux 进程标志将延迟降低 83%

一位工程师在优化 Recall.ai 的 Output Media 功能时,遇到了一个棘手的难题:Chromium 进程在沙盒环境中随机终止。经过一番深入的调试,他发现问题根源在于 Linux 内核的 prctl(PR_SET_PDEATHSIG, SIGKILL) 函数,该函数追踪的是父线程而不是父进程。Tokio 的线程管理机制与之交互时,可能会导致父线程被回收,从而触发 SIGKILL 信号,终止子进程。最终,移除 Bubblewrap 的 --die-with-parent 标志解决了这个问题,将延迟降低了 83%。

Shelgon:Rust构建交互式REPL应用的强力框架

2025-03-06
Shelgon:Rust构建交互式REPL应用的强力框架

Shelgon是一个强大的Rust框架,用于构建交互式REPL(Read-Eval-Print Loop)应用程序和自定义shell。它提供了一个灵活的、类型安全的底层架构,并使用ratatui内置终端UI功能。Shelgon支持类型安全的命令执行、异步运行时集成、美观的TUI、丰富的输入处理(包括命令历史、光标移动、制表符补全和Ctrl+C/Ctrl+D处理)、自定义上下文支持、STDIN支持等特性。该项目还提供了详细的文档和示例,方便开发者快速上手和构建自己的shell。

开发

Rayhunter:一款反IMSI捕捉器的开源工具

2025-03-06
Rayhunter:一款反IMSI捕捉器的开源工具

Rayhunter是一款针对Orbic移动热点设备的IMSI捕捉器捕捉器,旨在对抗网络监听。该项目提供Linux和MacOS安装脚本,并包含详细的手动安装指南,包括针对Windows系统的说明。Rayhunter通过wifi或USB连接提供Web UI,用于启动/停止记录、下载捕获数据和查看分析结果。该项目强调其为概念验证,不适用于高风险场景,并包含免责声明,提醒用户注意法律风险。

开发 IMSI捕捉器

bcvi: 通过SSH后端通道在本地编辑远程文件

2025-03-06

bcvi是一个命令行工具,它利用SSH创建一个从服务器到工作站的“后端通道”,允许用户在本地编辑远程服务器上的文件,而无需X转发。用户Sally可以通过bcvi在本地gvim编辑器中编辑服务器上的文件,享受本地编辑器的所有优势,例如自定义键映射、插件和更快的响应速度。bcvi还支持文件传输和远程命令执行后的桌面通知。安装bcvi需要在服务器和工作站上分别安装客户端和服务器端,并配置SSH端口转发和shell别名。

开发

4.3BSD FFS:一次Unix文件系统的革命性改进

2025-03-06
4.3BSD FFS:一次Unix文件系统的革命性改进

本文回顾了1984年4.3BSD Unix操作系统中Fast File System (FFS)的革命性改进。面对传统Unix文件系统在文件大小、I/O速度和文件数量方面的瓶颈,FFS通过优化文件布局、增大磁盘块大小、利用磁盘物理特性以及引入新的文件类型和系统调用等措施,显著提升了文件系统的性能和稳定性。FFS的设计理念,例如将元数据和数据存储在一起,以及利用磁盘旋转速度优化I/O,对后来的文件系统设计产生了深远的影响,也为现代操作系统的高效运行奠定了基础。

开发 4.3BSD

Atlassian整合Opsgenie,加强Jira Service Management和Compass

2025-03-06
Atlassian整合Opsgenie,加强Jira Service Management和Compass

Atlassian宣布将Opsgenie的功能完全整合到其平台中,以更好地满足客户需求。Opsgenie的告警和值班管理功能将被整合进Jira Service Management和Compass。Jira Service Management将成为一个完整的事件管理解决方案,而Compass将提供上下文丰富的告警和值班管理。Opsgenie将于2025年6月4日停止销售,2027年4月5日停止支持。客户可以选择迁移到Jira Service Management或Compass,Atlassian将提供个性化的迁移工具和支持。

精简数据结构:节省内存的编程利器

2025-03-06

几个月前,作者在寻找代码优化方法时,偶然发现了精简数据结构这一领域。这些数据结构以紧凑的方式存储数据,同时支持高效的查询操作,例如 rank 和 select。文章介绍了位向量、小波矩阵和 FM-index 等几种重要的精简数据结构,并重点介绍了其在 Rust 语言中的应用和相应的开源库。作者还探讨了如何在 XML 处理和编程语言编译器中应用这些数据结构,以实现更高效的内存利用和更快的查询速度。精简数据结构为编程带来了新的可能性,值得更多开发者关注。

开发

YC创业公司:95%代码由AI生成,是潮流还是泡沫?

2025-03-06
YC创业公司:95%代码由AI生成,是潮流还是泡沫?

Y Combinator最新一批创业公司中,四分之一的项目代码有95%由AI生成。虽然AI辅助编程极大提升了效率,但YC合伙人警告,开发者仍需具备代码审阅和调试能力,AI生成的代码并非完美无缺,可能存在安全漏洞和错误。这引发了关于AI编程是未来趋势还是昙花一现的讨论,同时也推动了相关AI编程工具的融资热潮。

开发

CodeTracer:一款革命性的时间旅行调试器

2025-03-06
CodeTracer:一款革命性的时间旅行调试器

CodeTracer是一款用户友好的时间旅行调试器,支持多种编程语言。它将程序执行记录到可共享的自包含跟踪文件中,允许用户在GUI环境中向前和向后移动,检查所有内存位置的历史记录。与传统调试器相比,CodeTracer具有两大优势:轻松重现和调试难以重现的bug;通过追踪程序中任何值的来源,快速定位bug的根源。目前支持Noir语言,未来将支持更多Web3开发语言,并集成到VS Code等IDE中。

Go语言代码混淆技术:基于状态机的动态数据解密

2025-03-06
Go语言代码混淆技术:基于状态机的动态数据解密

这段Go代码实现了一种高级代码混淆技术,通过将数据分割成多个块,并使用状态机和随机索引进行动态解密。代码首先将数据随机分割,然后生成随机索引序列,用于控制解密顺序。解密过程利用一个随状态变化的密钥,对每个数据块进行逐一解密,最终重组得到原始数据。这种方法增加了逆向工程的难度,有效保护代码安全。

开发

Apache Iceberg:Hadoop 的继承者还是进化?

2025-03-06
Apache Iceberg:Hadoop 的继承者还是进化?

Apache Iceberg,现代数据湖的基石,正经历着与 Hadoop 当年相似的快速普及之路。文章指出,Iceberg 解决了数据湖中核心问题,但其采用速度超过了组织的运维能力,如同当年的 Hadoop 一样。文章还深入探讨了 Iceberg 在小文件问题、复杂生态系统、元数据开销以及自建与托管服务选择等方面面临的挑战,并指出 Iceberg 的未来发展趋势:格式和目录的整合、运维成熟度提升以及超越分析领域的应用。最终总结,Iceberg 的成功取决于组织的准备程度、技能以及战略目标。

开发 Hadoop

流处理入门:无需集群,轻松上手

2025-03-06
流处理入门:无需集群,轻松上手

许多人认为流处理难以学习和使用,成本高昂且缺乏实际应用场景。但事实并非如此!本项目提供一系列可执行的演示,展示如何使用SQL作为编程语言,利用现代流处理技术解决现实世界中的问题。通过Kafka、PostgreSQL和RisingWave,你可以在本地运行简单的示例,学习数据摄取、处理、转换和卸载的基础知识,并探索与其他数据平台的集成。无需集群,只需一台笔记本电脑即可开始你的流处理之旅!

开发 RisingWave

Agno:构建多模态智能体的轻量级库

2025-03-06
Agno:构建多模态智能体的轻量级库

Agno是一个轻量级的库,用于构建多模态智能体。它可以快速构建处理文本、图像、音频和视频的智能体,并根据需要添加记忆、知识和工具。Agno开源且可在任何地方运行,其设计理念是将AI工程视为软件工程,大部分代码是标准Python代码,少量代码使用智能体进行自动化。开发者可以使用熟悉的编程结构(如if、else、while、for)编写AI逻辑,避免复杂的抽象,例如图和链。

Arva AI 诚聘 AI 产品工程师:利用尖端 AI 技术革新金融犯罪情报

2025-03-06
Arva AI 诚聘 AI 产品工程师:利用尖端 AI 技术革新金融犯罪情报

Arva AI 正在招聘一位 AI 产品工程师,负责构建和迭代其 AI 驱动的合规平台的全栈功能。该平台利用尖端 AI 技术,例如大型语言模型和计算机视觉,来自动化人工审核任务,从而提高运营效率并降低成本。理想的候选人应具备全栈开发经验(TypeScript, React, NodeJS),以及提示工程、微调预训练模型和训练自定义模型(包括视觉模型)的经验。Arva AI 的文化强调快速交付价值、以客户为中心以及透明的沟通。该职位提供有竞争力的薪酬和股权激励,以及每年四个星期的远程办公机会。

xdg-ninja:守护你的$HOME目录

2025-03-06
xdg-ninja:守护你的$HOME目录

xdg-ninja是一个强大的Shell脚本,它可以检查你的$HOME目录中是否存在不属于那里的文件和目录。它基于XDG规范,并利用来自Arch Wiki、antidot以及社区贡献的配置,帮助你将这些文件移动到正确的位置。通过简单的命令即可运行,并提供详细的移动指导。同时支持多种安装方式,包括直接从GitHub克隆、使用Nix、或通过Homebrew安装。此外,还提供了一个名为xdgnj的工具,用于自动生成和管理配置文件,极大地方便了用户的使用。

告别虚拟环境配置:Aider 的巧妙安装方案

2025-03-06

Paul Gauthier 的 Aider CLI 工具提供了一种创新的安装方式,无需用户了解虚拟环境的概念即可轻松安装。只需运行 `pip install aider-install && aider-install`,Aider 便会利用 uv 工具自动安装一个独立的 Python 3.12 环境,并将 Aider 安装其中,并自动配置环境变量。这对于 Python 新手来说,是一种安全便捷的安装体验,避免了复杂的配置步骤。

开发 Aider

开源图像秘密共享工具包VisualCrypto

2025-03-06
开源图像秘密共享工具包VisualCrypto

VisualCrypto是一个基于Python的开源工具包,它提供了一个基于Web的界面,用于实现视觉秘密共享(VSS)。VSS是一种密码技术,它将秘密图像分割成多个份额,每个份额看起来像随机噪声,单独无法揭示任何信息,但组合在一起就能重构原始图像。该工具包主要关注(2,2)-VSS方案,即秘密图像被分成两份,都需要才能恢复隐藏内容。它支持视觉密码术(VC)和随机网格(RG)技术,并提供基于Web和脚本的两种执行方式,易于扩展和使用。

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

2025-03-06
arXivLabs:社区协作的实验性项目

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

开发

Varvara系统下的轻量级电子表格编辑器Nebu

2025-03-06

Nebu是一款专为Varvara系统设计的轻量级图形化电子表格编辑器,能够处理csv/tsv文件。其数学运算通过指定矩形单元格范围和运算符来完成,单元格范围用冒号分隔两个单元格标识符。每个单元格最多执行一次运算,范围必须在单元格之前,并且不能递归包含自身。支持四则运算(+ - * /),以及计算非空单元格数量(#)和字符串连接(")操作。未指定运算符时,默认为求和。Nebu启动速度极快,体积比空的Excel文件还小。

开发 Varvara系统
1 2 144 145 146 148 150 151 152 213 214