分类: 开发

Foqos:NFC 驱动的专注神器

2025-01-21

Foqos 是一款利用 NFC 技术帮助用户专注的应用。它允许用户创建多个配置文件,以应对不同的场景(例如工作、学习或睡前)。这些配置文件可以被写入 NFC 标签,只需轻触标签即可快速启动或停止,无需解锁手机或打开应用。Foqos 完全免费、私密且开源,永不订阅,不追踪,不收集数据。

开发 专注应用

Jupyter Notebook 与大型语言模型:成本控制的意外收获

2025-01-21

作者使用大型语言模型辅助编码,起初使用ContinueDev + OpenRouter的方案很有效,但成本突然飙升。经排查发现,Jupyter Notebook(.ipynb) 文件包含大量隐含内容(代码输出、元数据、Base64 编码的图像等),导致token数量剧增,从而增加了LLM调用成本。解决方案是将.ipynb文件转换为.py文件,并移除Base64编码的图像。此方法使成本降低了94%,延迟也相应减少。这篇文章强调了在使用LLM时注意输入内容的重要性,并建议定期检查成本。

开发

通过测试套件的美丽来指导:一个Rust编写的Uxn虚拟机的故事

2025-01-21

作者在去年发布了Raven,一个独立实现的Uxn CPU和Varavara协调器。最近,为了提升稳定性和性能,作者构建了一套完善的测试基础设施,包括GitHub Actions持续集成、快照测试、静态恐慌预防和模糊测试。这篇文章详细描述了作者在构建这些测试过程中遇到的挑战和解决方案,例如GitHub Actions的Windows和ARM运行器的可靠性问题,以及在静态证明无恐慌和模糊测试中遇到的陷阱。最终,作者成功地提升了Raven的性能和可靠性,并保证了其在不同平台上的可移植性。

开发

挑战Alpine Linux:一次性安装多少软件包?

2025-01-21

本文讲述了作者如何利用约束求解器,最大化一次性安装Alpine Linux软件包的数量。作者解析了Alpine的APKINDEX文件,提取了软件包的依赖关系、冲突和提供关系等信息,并将其转化为约束条件,使用PuLP求解器进行求解。最终,作者成功安装了main仓库中98.5%和main+community仓库中97.8%的软件包。这是一个很有趣的实验,展示了如何利用算法优化软件包安装,并为构建更精简的容器镜像提供了新的思路。

开发 约束求解

大型语言模型应用开发经验总结

2025-01-21

作者总结了开发大型语言模型(LLM)应用的经验教训。LLM擅长将大量文本转换为更精简的文本,不擅长生成比输入更多文本的内容或依赖其预训练数据进行复杂推理。有效的LLM应用应提供LLM所需的所有信息,让LLM进行文本浓缩。作者建议避免使用LLM完成需要人类专业知识的任务(如医疗诊断),并强调LLM应作为人类的辅助工具,而非替代品。

开发

Apache NuttX RTOS 的 uname bug 修复:静态变量的陷阱

2025-01-21
Apache NuttX RTOS 的 uname bug 修复:静态变量的陷阱

本文讲述了作者在 Apache NuttX RTOS 中修复 uname 命令 bug 的过程。最初,uname 命令输出缺少提交哈希值。调查发现,问题源于存储提交哈希值的静态变量 `g_version` 在 NuttX 应用中无法正常工作。通过一系列调试步骤,包括检查内核映像、在内核启动时调用 uname、分析应用反汇编代码等,作者最终确定了问题根源:NuttX 应用中的静态变量出现异常,导致提交哈希值丢失。这个案例强调了即使是细微的异常也可能预示着更严重问题的存在,并突出了调试嵌入式系统时细致入微的重要性。

开发

Dokploy:简化部署流程的开源神器

2025-01-21
Dokploy:简化部署流程的开源神器

Dokploy是一个开源的、易于使用的多服务器部署平台,旨在简化应用部署和管理。它支持多种部署方式,包括Nixpacks、Heroku Buildpacks和自定义Dockerfile,并原生集成Docker Compose。Dokploy提供高级用户管理、数据库管理(包括备份)、API和CLI访问,以及Docker Swarm集群支持。此外,它还提供实时监控和告警,并拥有丰富的开源模板和强大的社区支持。无论是小型项目还是大型应用,Dokploy都能提供灵活、高效的部署解决方案。

开发

Redis UNLINK vs DEL:深度解析内部机制

2025-01-21
Redis UNLINK vs DEL:深度解析内部机制

Redis 的 UNLINK 和 DEL 命令都用于删除键,但内部实现有所不同。DEL 命令同步删除键并释放内存,而 UNLINK 命令则将键的删除操作异步化,将其放入后台队列处理。UNLINK 的“非阻塞”特性并非绝对,它会计算删除对象的成本:如果成本小于 64,则同步删除;否则异步删除。文章深入分析了 Redis 源码,解释了 UNLINK 和 DEL 命令的实现细节,包括键槽计算、两阶段解链和异步删除等机制,并探讨了 LAZYFREE_THRESHOLD 的作用。

开发

框架疲劳:开发者对新技术的愤怒源于何处?

2025-01-21
框架疲劳:开发者对新技术的愤怒源于何处?

近年来,层出不穷的JavaScript框架让开发者疲惫不堪。从Svelte到Solid再到Qwik,每个新框架都号称速度更快、性能更好,但开发者们却陷入了学习新技术的循环中,耗费大量精力。这引发了激烈的讨论,有人认为是新技术重复造轮子,浪费时间;也有人认为是出于对就业的担忧,害怕旧技术被淘汰,失去竞争力。文章指出,开发者对新框架的愤怒,实则是一种自我保护机制,反映了对未来职业发展的焦虑。理解这一点,才能促进行业健康发展。

开发 框架疲劳

Perl 社区动态:新播客、研讨会和每周挑战

2025-01-21
Perl 社区动态:新播客、研讨会和每周挑战

Perl 社区近期喜讯不断!新播客“The Underbar”上线,带来 Perl 最新动态;慕尼黑 Perl/Raku 研讨会即将举办,为开发者提供交流学习机会;“每周挑战”活动获得赞助,继续为 Perl 爱好者提供编程练习平台。此外,本期还涵盖了多个 Perl 模块的更新和文章,主题涉及 MIDI 音乐创作、地理位置数据处理以及性能分析等,内容丰富精彩。

开发 社区活动

OpenSSL拒绝提供QUIC API:HTTP/3发展受阻?

2025-01-21
OpenSSL拒绝提供QUIC API:HTTP/3发展受阻?

OpenSSL,最流行的TLS库,拒绝在其即将发布的版本中提供QUIC API,这使得HTTP/3的广泛采用面临挑战。尽管此前有项目提交了包含QUIC API的代码(PR8797),但OpenSSL委员会决定自行构建完整的QUIC协议栈,这将耗费数年时间。此举引发了社区的广泛不满,因为已经有成熟的QUIC库可用。为了解决这个问题,微软和Akamai创建了quictls,一个包含QUIC API的OpenSSL分支。然而,这并非长久之计,OpenSSL的决定对HTTP/3的普及造成了不确定性。

开发 OpenSSL

Go 2 应该摒弃 context 包吗?

2025-01-21

Go 语言的 context 包虽然解决了协程取消的问题,但却以牺牲代码可读性和可维护性为代价,如同病毒般蔓延至整个代码库。作者认为 context 包过于复杂,接口方法过多,ctx.Value 的使用方式存在诸多问题,并且效率低下。他建议 Go 2 应该直接在语言层面解决协程取消问题,提供一个更简洁、高效、非侵入式的解决方案。

AWS App Mesh停用,迁移至Amazon ECS Service Connect指南

2025-01-21
AWS App Mesh停用,迁移至Amazon ECS Service Connect指南

AWS宣布将于2026年9月30日停止AWS App Mesh服务。文章详细介绍了从AWS App Mesh迁移到Amazon ECS Service Connect的策略。Service Connect提供内置健康检查、异常值检测和重试机制,并通过将应用程序级网络指标发送到Amazon CloudWatch来增强可观察性。文章比较了两种服务的抽象层,并阐述了蓝绿部署迁移策略,以最大限度地减少停机时间。最后,文章还对两种服务的特性进行了比较,例如网络可靠性、流量路由、可观察性和安全性。

用Python乌龟绘图库绘制世界国旗

2025-01-21

作者讲述了利用Python的Turtle绘图库,通过解析SVG文件来绘制世界各国国旗的经历。从最初简单的Java绘图练习,到后来用Python和Turtle实现更复杂的SVG解析,作者克服了坐标转换、贝塞尔曲线绘制、样式应用等诸多挑战,最终成功绘制了大量国旗,包括一些以前被认为“不可能”绘制的复杂国旗,例如威尔士国旗。虽然过程中还存在一些未解决的问题,但这篇文章展现了作者的编程技巧和毅力。

开发 Turtle

吉他卡拉OK:用AI自动生成和弦字幕

2025-01-21
吉他卡拉OK:用AI自动生成和弦字幕

博主Dylan Beattie为了提升他每月举办的吉他卡拉OK之夜的体验,开发了一个系统,能自动将歌曲的和弦显示在视频上。他利用Vamp插件提取音频中的和弦信息,然后使用ImageSharp和FFmpegCore生成包含和弦的透明视频,最后将该视频与原视频合成。整个过程涉及音频分析、图像处理和视频合成等多个步骤,最终实现了在卡拉OK视频中实时显示吉他谱的功能。未来,他计划改进系统,实现自动节拍检测和批量处理功能。

开发

Ruff:一款超高速的Rust编写Python代码检查与格式化工具

2025-01-21
Ruff:一款超高速的Rust编写Python代码检查与格式化工具

Ruff 是一款用 Rust 编写的 Python 代码检查和格式化工具,速度比现有工具快 10 到 100 倍。它支持 Flake8、Black、isort 等工具的功能,并具有内置缓存和自动错误修正功能。Ruff 兼容性高,拥有超过 800 条内置规则,并被众多知名开源项目使用,例如 FastAPI、Pandas 等。其高效性和多功能性使其成为 Python 开发者的有力助手。

开发 代码检查

WordPress之乱:CEO的独断专行将如何重塑未来?

2025-01-21
WordPress之乱:CEO的独断专行将如何重塑未来?

WordPress创始人Matt Mullenweg与托管公司WP Engine的冲突,正深刻影响着WordPress的未来。Mullenweg的一系列激进举动,包括封杀WP Engine、向不同意其决策的员工提供遣散费以及削减对开源项目的贡献,引发了社区的强烈反弹和法律诉讼。这场风波不仅动摇了WordPress的稳定性,也引发了人们对平台未来发展方向的担忧,甚至促使一些用户和开发者开始寻求替代方案。这场权力斗争的核心是开源软件的治理和商业利益的冲突,其结果将对整个科技行业产生深远的影响。

开发 社区冲突

Meta发布全新视频编辑应用Edits,挑战CapCut缺位

2025-01-20
Meta发布全新视频编辑应用Edits,挑战CapCut缺位

在抖音母公司字节跳动旗下视频编辑应用CapCut被下架后,Meta于周日宣布推出新的视频编辑应用Edits。Instagram负责人Adam Mosseri表示,该应用将于下月在iOS平台上线,Android版本随后推出。Edits将提供一系列创意工具,包括灵感标签、创意追踪标签和高质量相机,并支持与朋友或合作者分享草稿。Meta此举被认为是填补CapCut缺位造成的市场空白,类似于此前Instagram Reels的推出以及Threads的发布。

开发 Edits CapCut

C语言提案:引入核心类型系统中的效果系统

2025-01-20

本文提出一个增强C语言核心类型系统的提案,该提案建议引入一个类型和效果系统,迫使函数和代码块声明其评估将产生的效果类别。这将提高元编程的可组合性,并简化MISRA风格限制的定义。该系统跟踪并检查效果,但不处理动态效果。提案定义了三种主要效果组:局部效果(例如局部写入)、持久效果(例如非局部写入)和控制效果(例如非局部控制转移)。该系统通过对每个语句、表达式和函数体赋予类型和效果来实现静态效果检查,并丢弃局部效果以确保正确排序。该提案还建议一些最佳实践,例如限制`mut`和`vol`效果的幅度,并为运算符和控制结构指定效果检查。最终目标是增强C语言的安全性、可读性和可组合性,特别是对于元编程和资源管理。

开发

SRCL: 基于终端美学的React组件库

2025-01-20
SRCL: 基于终端美学的React组件库

SRCL是一个开源的React组件和样式库,它帮助你使用终端美学构建Web应用程序、桌面应用程序和静态网站。它包含各种组件,例如动作栏、手风琴、按钮、警报横幅、头像、徽章、加载器、博客文章、面包屑、卡片、复选框、国际象棋棋盘、代码块、组合框、数据表、日期选择器、仪表盘、数据库示例、下拉菜单、空状态、输入框、表单、链接、列表、消息、模态框、导航栏、弹出框、进度条、单选按钮、选择框、侧边栏、滑块、表格、文本区域、工具提示和树状视图等,这些组件都具有终端风格的外观。

开发 终端UI

WordPecker:个性化语言学习应用,结合Duolingo和自建词汇表

2025-01-20
WordPecker:个性化语言学习应用,结合Duolingo和自建词汇表

WordPecker是一款个性化语言学习应用,它结合了Duolingo式的课程和用户自己整理的词汇表。你可以从书籍、文章或视频中轻松添加单词,并通过互动测验和LLM生成的课程复习它们。该应用旨在解决传统语言学习中词汇积累的痛点,通过将学习与上下文联系起来,提高学习效率和记忆效果。目前支持多种题型,未来还计划增加更多功能,例如进度追踪、列表分享等。

开发

在大型组织中生存的秘诀:提升你的挫折容忍度

2025-01-20
在大型组织中生存的秘诀:提升你的挫折容忍度

在充满挑战的大型组织中,领导者和员工常常面临目标与现实脱节的困境。本文探讨了“挫折容忍度”这一关键因素,它决定了个人在面对组织复杂性、冲突和缓慢进展时能否保持目标导向。拥有高挫折容忍度的人能够将挑战视为必然,并有效管理负面情绪;而低挫折容忍度则会导致放弃、消极和倦怠。文章分析了低挫折容忍度的四个主要原因:对舒适、公平、成就和情绪控制的非理性需求。通过重新看待组织摩擦,将其视为创新和变革的驱动力,我们可以培养更高的挫折容忍度,从而在复杂的环境中取得成功。

开发 挫折管理

本科生可除性问题的数学奥秘:Pólya-Redfield计数法

2025-01-20
本科生可除性问题的数学奥秘:Pólya-Redfield计数法

本文探讨了本科生数学课程中常见“证明多项式总是某个整数的倍数”这类问题的来源。作者指出,这类问题源于组合计数,特别是Pólya-Redfield计数法。该方法利用群作用下的轨道计数公式,将多项式的值与某种组合结构的计数联系起来,从而保证多项式总是某个整数的倍数。文章通过手镯计数和井字棋盘计数两个例子,详细解释了如何运用Pólya-Redfield计数法构造这类问题,并提出了一个关于这类多项式是否都源于Pólya-Redfield计数法的猜想。

systemd:一场由Red Hat主导的Linux生态控制之战

2025-01-20

本文深入探讨了systemd的真实动机,揭示了Red Hat如何利用其在嵌入式设备领域的商业利益,逐步将systemd从一个简单的init系统发展成为Linux操作系统的重要组成部分。文章指出,Red Hat通过各种策略,例如游说开源项目依赖systemd、挖角其他Linux发行版开发者等,试图控制Linux生态,引发了开源社区的强烈反弹,并导致多个Debian开发者辞职。作者认为,systemd已成为一个庞大的整体,存在隐私问题,且Red Hat的野心是将其打造成下一个Windows。文章最后呼吁回归社区驱动开发模式,并推荐了替代systemd的方案,例如runit和s6。

开发

Parinfer:让Lisp编程更轻松的编辑器模式

2025-01-20

Parinfer 是一种创新的 Lisp 编辑器模式,它通过巧妙地关联括号和缩进,简化了 Lisp 代码的编写。它解决了 Lisp 编程中令人头疼的括号问题,并为新手和专家提供了更直观的编辑体验。Parinfer 提供两种模式:Indent Mode 和 Paren Mode,分别让用户专注于调整缩进或括号,而另一个由 Parinfer 自动处理。它还实现了类似 Paredit 的功能,无需复杂的快捷键。Parinfer 的核心在于其对括号和缩进之间关系的正式定义,以及基于此定义的智能自动调整机制。

开发

CFRS[] 社区演示:用六个命令绘制神奇图案

2025-01-20

CFRS[] 是一种极简的绘图语言,仅使用六个命令 (C, F, R, S, [, ]) 即可生成各种图案。本文汇集了社区成员贡献的 CFRS[] 演示,包括动态演示(使用 'S' 命令实现动画效果)和静态演示。这些演示涵盖了各种形状,例如花朵、十字架、万花筒、叶子等,展现了该语言的强大表现力,即使是简单的命令也能创作出令人惊叹的艺术作品。无论是初学者还是编程爱好者,都能从中获得乐趣和灵感。

TypeScript 枚举:用例和替代方案

2025-01-20

这篇博文深入探讨了 TypeScript 枚举:它们如何工作?有哪些用例?如果不想使用它们,有哪些替代方案?文章最后总结了何时使用什么方案的建议。文章涵盖了枚举的基础知识、用例(例如用作具有原始值的常量的命名空间、具有唯一值的自定义类型、具有对象值的常量的命名空间)、替代方案(例如对象字面量、字符串字面量类型联合)、以及如何进行穷举性检查和枚举成员。

开发

Linux 6.13稳定版发布:AMD优化、更广Apple支持及更多

2025-01-20

Linux 6.13 稳定版正式发布!此版本带来了许多令人兴奋的功能,包括针对AMD 3D V-Cache Ryzen X3D 处理器和AMD EPYC 9005 “Turin”服务器处理器的优化,对更多旧款苹果设备的支持,以及对AutoFDO和Propeller编译优化的支持。此外,它还包含Intel Xe3显卡的初步支持, NVMe 2.1规范支持,以及更多Rust语言基础设施。Linux 6.13 标志着2025年首个主要内核版本的发布,为Linux生态系统带来了显著的性能提升和硬件兼容性改进。

开发

GitHub Actions的局限性:一个大型单体仓库的痛点

2025-01-20

在一个拥有15名工程师、持续向主分支推送代码的大型单体仓库中,使用GitHub Actions进行CI/CD并非一帆风顺。文章作者指出,GitHub Actions在处理大型monorepo项目时的required checks机制存在缺陷,难以确保所有检查通过才能合并pull request;其工作流的可重用性差,YAML配置文件难以维护;缺乏本地开发环境,且GitHub对用户反馈的响应迟缓。作者最终建议考虑其他CI/CD平台,例如GitLab、Jenkins等,以寻求更佳的解决方案。

开发

Terraform HRUI交换机提供程序:简化网络配置

2025-01-20
Terraform HRUI交换机提供程序:简化网络配置

开源项目`terraform-provider-hrui`提供了一个Terraform插件,用于管理HRUI品牌交换机(如Horaco, Sodola, XikeStor等)。该项目利用goquery库与交换机的网页UI交互,支持多种型号,目前已在Horaco ZX-SWTG124AS上测试成功。开发者欢迎贡献代码,项目采用MPL-2.0许可证。

开发
1 2 180 181 182 184 186 187 188 213 214