分类: 开发

手工打造你的Git仓库:探索Git底层机制

2025-07-17
手工打造你的Git仓库:探索Git底层机制

本文深入浅出地讲解了如何不使用git命令,而是通过手工创建Git仓库的过程。作者从创建必要的目录和文件开始,逐步解释了Git对象(blob、tree、commit)的存储方式,以及内容寻址存储(CAS)的原理。文章还探讨了Git的pack文件和索引文件,以及如何手工创建一个包含文件的提交。最后,作者总结了Git设计的优雅性,以及通过理解底层机制可以更好地使用Git。

开发 底层机制

Elegoo Arduino Uno R3 入门套件:一个电子实验之旅

2025-07-17
Elegoo Arduino Uno R3 入门套件:一个电子实验之旅

作者入手了Elegoo Arduino Uno R3入门套件,并进行了200多个组件的实验。从简单的LED灯控制到复杂的步进电机控制,作者详细记录了学习过程,包括PWM、74HC595扩展、传感器应用(超声波、PIR、MPU-6050)、执行器控制(电机、伺服电机)、以及各种通信接口(串口、IR、RFID)的实践。文章还包含了对核心电子概念的深入探讨,例如RC电路的延时触发,以及一些有趣的故障排除经验。

开发 电子实验

Metaflow:让AI/ML系统开发更轻松的框架

2025-07-17
Metaflow:让AI/ML系统开发更轻松的框架

Metaflow是一个以人为本的框架,旨在帮助科学家和工程师构建和管理真实的AI和ML系统。它支持各种规模的团队,简化了从笔记本电脑上的快速原型设计到可靠、可维护的生产部署的整个开发生命周期,使团队能够快速迭代并高效地交付强大的系统。Metaflow最初由Netflix开发,现由Outerbounds支持,已被亚马逊、Doordash等众多公司用于数千个AI/ML项目。它提供简单的Python API,支持本地原型设计、云端扩展、依赖管理和一键式生产部署。

开发 Metaflow ML

robots.txt封禁引发的LinkedIn文章预览失效及Open Graph协议学习

2025-07-17
robots.txt封禁引发的LinkedIn文章预览失效及Open Graph协议学习

博主为了保护博客数据,在robots.txt中禁止所有爬虫访问网站,结果却导致LinkedIn文章预览失效,并减少了文章的曝光度。通过LinkedIn Post Inspector工具,博主发现是robots.txt阻止了LinkedIn爬虫抓取页面元数据(Open Graph协议),从而无法生成预览。修改robots.txt后,问题解决。这次经历让博主学习了Open Graph协议,并强调了全面测试代码更改的重要性。

WaitLock:轻量级POSIX锁工具,简化Shell脚本进程同步

2025-07-17
WaitLock:轻量级POSIX锁工具,简化Shell脚本进程同步

WaitLock是一个轻量级的POSIX命令行工具,为shell脚本提供互斥锁和信号量功能,实现跨进程资源同步访问,并支持自动清理。它提供互斥模式(单锁持有者)、信号量模式(多个并发锁持有者)以及自动清理机制。WaitLock还具有CPU感知锁、锁检查、多种输出格式(人类可读、CSV、空分隔)、命令执行、UNIX集成(环境变量、stdin、syslog)等特性,并使用可移植的C语言实现,可在任何POSIX系统上运行。

开发 进程同步

mkosi:构建定制化操作系统镜像的利器

2025-07-16

mkosi是一个强大的工具,它简化了定制化操作系统镜像的构建过程。它巧妙地封装了dnf、apt、pacman和zypper等包管理器,允许用户轻松创建包含各种附加功能的个性化磁盘镜像。无论是添加新的发行版、构建RPM包、创建自定义initrd还是构建系统扩展,mkosi都能提供便捷的支持,极大地提高了构建效率。

开发 镜像构建

BloomSearch:基于分层布隆过滤器的海量数据集关键词搜索引擎

2025-07-16
BloomSearch:基于分层布隆过滤器的海量数据集关键词搜索引擎

BloomSearch是一个高性能的关键词搜索引擎,针对海量数据集设计。它巧妙地利用分层布隆过滤器,结合可插拔存储接口,实现了极低的内存占用和快速的冷启动搜索。支持字段搜索、词元搜索和字段:词元组合搜索,并允许使用AND/OR运算符组合查询条件。此外,BloomSearch还支持分区、最小最大索引和TTL功能,进一步提升了查询效率和数据管理能力。其可扩展的架构使其能够处理无限的摄取和查询吞吐量,非常适合处理日志、JSON文档和高基数关键词搜索等场景。

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

2025-07-16
arXivLabs:与社区合作的实验性项目

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

开发

赋予大型语言模型时间感知能力的MCP服务器

2025-07-16
赋予大型语言模型时间感知能力的MCP服务器

一个名为“时间流逝”的MCP服务器项目旨在解决大型语言模型(LLM)无法可靠计算时间差的问题。该项目通过人机协作开发了一套时间计算工具,赋予LLM对时间的感知和计算能力,并意外地发现LLM可以利用这些工具洞察对话模式、工作节奏和人类对时间的体验。该服务器提供多种时间计算功能,包括计算时间差、提供时间上下文信息、转换时间戳格式等,并支持多种时区。

开发

PostgreSQL 的活跃-活跃复制扩展:pgactive

2025-07-16
PostgreSQL 的活跃-活跃复制扩展:pgactive

pgactive 是一个 PostgreSQL 扩展,用于创建活跃-活跃数据库集群。传统数据库复制多为主动-被动模式,而 pgactive 允许在多个数据库实例上同时写入数据,从而实现更高的可用性、更低的写入延迟以及更便捷的蓝绿部署和数据迁移。它利用 PostgreSQL 10 后引入的逻辑复制功能,并通过扩展解决冲突和序列问题,为构建高可用性、多区域数据库集群提供了一种新的解决方案。

开发

cppyy:Python与C++的无缝桥梁

2025-07-16

cppyy是一个运行时Python-C++绑定生成器,允许在Python中调用C++代码,反之亦然。它无需任何语言扩展或中间语言,即可实现高性能、低内存占用、跨继承和回调等功能,支持运行时模板实例化、自动对象向下转换和异常映射。cppyy基于Cling C++解释器,能够动态、交互地混合使用C++和Python特性,甚至支持像Boost这样的现代C++库。它适用于CPython和PyPy,并针对大型项目进行了优化,在性能和内存管理上都有出色表现。

开发

无需编写SQL,即可轻松探索PostgreSQL和MySQL数据库

2025-07-16
无需编写SQL,即可轻松探索PostgreSQL和MySQL数据库

这款工具允许你只需连接数据库凭据,即可立即浏览数据库模式,查看表、列、类型和关系(主键、外键)。它提供了一个简单的可视化界面,无需编写SQL语句即可过滤、排序、连接和汇总数据。你可以点击展开相关记录,例如嵌套表,直观且强大。此外,你还可以可视化地插入和更新数据,无需担心语法错误。保存查询后,随时可以查看。当然,你也可以随时切换到SQL模式并运行自己的代码。

FluentBird:Thunderbird 的 Windows 11 Fluent Design 主题

2025-07-16
FluentBird:Thunderbird 的 Windows 11 Fluent Design 主题

FluentBird 是一款为 Mozilla Thunderbird 邮箱客户端打造的 userChrome.css 主题,它实现了 Windows 11 的 Fluent Design 和 Mica 透明材质效果。该主题支持深色和浅色模式,并增强了 Windows 11 系统上的 Mica 透明度。虽然目前为 Beta 版本,可能存在一些 bug,但它已经基本完成了邮件部分的主题美化,并修复了一些已知问题。安装方法需要用户手动将文件复制到 Thunderbird 配置文件目录下的 chrome 文件夹。需要注意的是,由于 Thunderbird 部分区域使用 Shadow DOM 渲染,因此并非所有元素都能被完全主题化。

开发 Fluent Design

Python全栈开发利器:从AI到部署的完整工具链

2025-07-16
Python全栈开发利器:从AI到部署的完整工具链

作者分享了其6个月内使用Python进行AI应用开发的经验,并介绍了一套完整的工具链,涵盖项目结构、依赖管理(uv)、代码检查(ruff)、类型检查(ty)、测试(pytest)、数据验证(Pydantic)、文档生成(MkDocs)、API构建(FastAPI)、数据类(dataclasses)、版本控制(GitHub Actions)、依赖更新(Dependabot)、安全扫描(Gitleaks)、预提交钩子(pre-commit)、自动化任务(Make)以及Docker容器化等方面。该工具链旨在简化开发流程,提高代码质量,并实现高效的持续集成和持续交付。作者强调了其偏好于monorepo结构以及轻量级工具组合的理念,为Python全栈开发者提供了宝贵的实践参考。

开发

基于Physarum算法的迷人有机模拟算法

2025-07-16
基于Physarum算法的迷人有机模拟算法

本文介绍了用于创建令人惊叹的有机模拟的算法技术,例如基于Physarum多头绒泡菌行为的模拟。作者详细解释了Jeff Jones提出的算法,包括粒子运动、轨迹绘制、扩散和衰减等步骤,并展示了如何通过调整参数(传感器距离、传感器角度、旋转角度、移动距离)来实现不同的模拟效果。文章还介绍了Sage Jenson的“36 Points”项目,该项目通过引入参数变化公式,使模拟效果更加多样化和复杂。最后,作者分享了自己的实现,包括利用GPU加速计算和多种颜色实验,并提供了代码示例和交互式项目链接。

Nextflow:简化可扩展工作流的利器

2025-07-16
Nextflow:简化可扩展工作流的利器

Nextflow是一个基于数据流编程模型的强大工作流系统,它简化了并行和分布式数据处理管道的创建。你可以轻松地将工作流部署到本地机器、HPC调度器、云平台(AWS、Azure、Google Cloud)以及Kubernetes等环境中。Nextflow支持多种软件依赖管理工具,例如Conda、Docker和Singularity等。它拥有活跃的社区,提供丰富的文档、论坛和Slack支持,并拥有nf-core项目提供高质量的预建工作流。

传奇程序员Mel:用十六进制代码编写黑杰克游戏

2025-07-16

本文讲述了上世纪80年代一位传奇程序员Mel的故事。Mel精通机器码编程,为Royal McBee公司编写了一个在LGP-30计算机上运行的黑杰克游戏,并在RPC-4000上进行了优化。他拒绝使用编译器和优化汇编器,因为他能通过手动优化代码,充分利用计算机的鼓式内存结构,使程序运行速度更快。即使是简单的循环,他也能通过巧妙的技巧,例如利用指令地址溢出实现循环结束,避免使用测试条件。最后,虽然被迫添加了控制输赢的开关,但他却反向实现了功能,让程序在开启开关后总是赢,展现了他独特的编程风格和对职业道德的坚持。

开发 编程传奇

提升代码效率的秘密武器:代码证明

2025-07-16

本文介绍了一种提高代码编写速度和准确性的技巧:在编写代码时进行“在线”证明,即在不中断代码编写流程的情况下,在脑中证明代码的正确性。作者介绍了几种辅助证明的方法,例如关注代码的单调性、使用前置条件和后置条件、维护不变式以及隔离变化的影响范围。此外,作者还强调了归纳法在处理递归函数和数据结构时的作用,并建议将“证明亲和性”作为衡量代码质量的标准。最后,作者建议通过练习编写数学证明来提高代码证明能力。

开发 代码证明

Firefox 141 Windows版正式支持WebGPU!

2025-07-16
Firefox 141 Windows版正式支持WebGPU!

经过多年的开发,Firefox 141 Windows版本终于正式支持WebGPU!WebGPU为网页内容提供了一个现代化的图形处理器接口,能够实现高性能计算和渲染。Mozilla表示,WebGPU将提升网页游戏、可视化和本地计算的性能上限。目前WebGPU已在谷歌Chrome和即将发布的Safari中可用,Firefox计划在未来几个月内为Mac、Linux和Android平台推出WebGPU支持。

开发

Blender 4.5 LTS发布:Vulkan加持,性能大幅提升

2025-07-16
Blender 4.5 LTS发布:Vulkan加持,性能大幅提升

Blender 4.5长期支持版发布,带来Vulkan渲染、多线程加速的适应性细分、GPU加速的合成器节点以及改进的几何节点等诸多特性。该版本显著提升了性能和响应速度,并修复了近500个bug。同时,Blender 4.5也标志着对Intel Mac和部分旧功能的支持结束,未来将专注于Apple Silicon和更现代化的工作流程。

开发

利用GLIBC hwcaps实现高性能动态分发

2025-07-16

本文介绍了如何利用GLIBC 2.33+的hwcaps特性,为amd64和POWER架构的共享库实现简单的动态分发。通过在`/usr/lib/glibc-hwcaps/`下创建不同CPU指令集版本的库文件(例如x86-64-v4, x86-64-v3等),动态链接器会根据CPU支持的最高指令集自动加载对应的库文件,从而实现性能优化。这解决了在不同CPU架构上保持库性能一致性的难题,例如在llama.cpp和whisper.cpp使用的ggml库的Debian打包过程中得到了应用。

开发 hwcaps

Typage:使用Passkey增强Age文件加密

2025-07-16
Typage:使用Passkey增强Age文件加密

Typage是一个TypeScript实现的age文件加密格式库,支持Node.js、Deno、Bun和浏览器环境。最新版本0.2.3增加了对Passkey的支持,允许使用WebAuthn API进行对称加密,并提供一个CLI插件用于在浏览器外使用FIDO2安全密钥。Passkey是一种防钓鱼的认证机制,结合PRF扩展可以生成加密密钥。Typage实现了age-encryption.org/fido2prf格式,保证了文件的硬件绑定和不可链接性。通过WebAuthn API和age-plugin-fido2prf插件,用户可以在不同设备上方便地加密和解密文件,提升安全性。

开发

那些影响深远的“已死”编程语言

2025-07-16

本文探讨了历史上一些虽已不再流行却影响深远的编程语言,例如COBOL、ALGOL、APL、BASIC等。作者通过分析这些语言的背景、意义和衰落原因,揭示了它们对现代编程语言的深远影响,例如COBOL的记录数据结构、ALGOL的词法作用域和结构化编程,以及APL的数组处理等。文章强调了编程语言历史研究的重要性,以及那些未被广泛知晓但对编程发展做出重大贡献的语言。

沉寂已久的Plasma Bigscreen复活:KDE电视界面重获新生

2025-07-16
沉寂已久的Plasma Bigscreen复活:KDE电视界面重获新生

被搁置的KDE电视界面Plasma Bigscreen项目,在Plasma Mobile贡献者Devin的努力下重获新生。经过一周的代码重构,Plasma Bigscreen焕然一新,拥有了扁平化设计、背景模糊效果、KRunner搜索功能以及重新设计的设置应用。虽然仍需完善,例如添加虚拟键盘和明确长期方向,但它有望回归Plasma 6.5的正式发布计划,为电视用户带来更现代化的KDE体验。

复活古老的助记软件Genius:一次充满怀旧和技术的旅程

2025-07-16

作者在学习荷兰语的过程中,对一款名为Green Owl的语言学习应用感到失望,它虽然有趣,但缺乏实用性。作者回忆起一款名为Genius的旧版助记软件,这款软件简洁高效,并拥有令人愉悦的反馈机制。由于Genius已停止更新且不再兼容现代macOS系统,作者决定尝试将其源码复活。通过git-svn将SVN代码库迁移到Git,并解决编译过程中遇到的兼容性问题,最终成功编译并运行了Genius。这个项目不仅让作者找回了旧日的学习工具,也让他学习了Mac开发知识,更体现了科技史的传承与发展。

开发 Mac开发

Go语言原生支持FIPS 140-3加密模块,安全合规新纪元

2025-07-16

Go语言团队携手Geomys公司推出原生FIPS 140-3加密模块,彻底解决了Go语言在受监管环境中FIPS 140合规性的难题。该模块已获得CAVP证书A6650,并通过CMVP审核,现已包含在Go 1.24及以上版本中。它不仅提供无缝的开发者体验,而且在安全性方面也毫不妥协,例如采用优化的ECDSA签名算法和基于AES-256-CTR的NIST DRBG,并支持广泛的平台和算法。与之前的Go+BoringCrypto相比,该模块拥有更广泛的算法覆盖范围、更好的性能和更强的安全性,为Go开发者构建符合FIPS 140-3标准的应用提供了最简单、最安全的途径。

(go.dev)
开发 加密模块

Firefox用户呼吁:优化、功能与设计升级

2025-07-16
Firefox用户呼吁:优化、功能与设计升级

一位Firefox用户表达了对浏览器速度、功能和设计的改进诉求。PC端需优化页面加载速度、降低资源消耗,并增加工作区、分屏和便携版等功能,同时改进图标和界面设计。移动端则需解决标签反复加载问题,提升加载速度,并增加自定义壁纸、标签分组和工作区功能。用户还希望了解各项功能的开发进度。

开发

Bitvise因控制开源项目PuTTY域名而引发争议

2025-07-16

Bitvise公司控制着PuTTY.org域名,该域名长期以来与广受欢迎的开源SSH和Telnet客户端PuTTY相关联。Bitvise是一家提供自身SSH客户端的商业公司,此举引发争议,被批评为误导性品牌行为和对开源软件公众信任的利用。Bitvise拒绝将域名转移给PuTTY的维护者,并以不友好的态度回应批评,进一步加剧了争议。事件的核心问题并非法律,而是伦理:Bitvise的行为是否利用了PuTTY的声誉,误导用户?

开发 域名争议

Tilck内核:一个精简易用的教学型内核

2025-07-16
Tilck内核:一个精简易用的教学型内核

Tilck是一个旨在与Linux二进制兼容的教育性单体内核,目前运行在i686和RISCV64架构上。其小巧简单的设计使其成为学习内核编程的理想平台,同时允许用户比较相同的用户态代码在Linux内核和Tilck上的运行情况。Tilck无需自定义应用程序,可以直接运行BusyBox等主流Linux程序。未来,Tilck可能广泛应用于需要确定性和超低延迟的嵌入式系统,填补嵌入式Linux和FreeRTOS等实时操作系统之间的空白。

开发

软体触手机器人Shoggoth Mini:赋予机器人表达能力的探索

2025-07-16

本文讲述了作者研发名为Shoggoth Mini的软体触手机器人的过程。该机器人通过巧妙的硬件设计和控制策略,实现了令人印象深刻的表达能力。作者从简单的硬件原型出发,逐步完善了硬件设计,包括解决电缆缠绕、添加校准脚本等。在控制方面,作者利用简单的二维映射实现直观的触手控制,并结合GPT-4和强化学习,实现了多种控制模式,包括手动控制、基于视觉的追踪和开放式行为。最终,作者探讨了机器人表达能力与“生命感”之间的关系,并展望了未来的研究方向。

开发
1 2 40 41 42 44 46 47 48 213 214