分类: 开发

通过SSH与AI对话:一个Docker化的AI聊天服务器

2025-06-16
通过SSH与AI对话:一个Docker化的AI聊天服务器

这个项目提供了一个基于Docker的AI聊天服务器,用户可以通过SSH连接进行对话。它支持多种AI模型,并提供了详细的部署指南,包括环境配置、Docker Compose文件和依赖安装。用户可以自定义模型、速率限制、黑名单和白名单等参数。该项目还提供了在不同操作系统(macOS、Linux和Windows)上的部署建议,并感谢了V.PS提供的服务器赞助。

开发

Socket.io 的异步函数调用库:socket-call

2025-06-16
Socket.io 的异步函数调用库:socket-call

一个基于 Socket.io 的小型库 socket-call,可以让开发者像调用普通的异步 TypeScript 函数一样调用事件。该库简化了 Socket.io 的使用,提供了更简洁直观的编程体验。代码示例展示了如何在服务器端和客户端使用该库,实现了登录功能以及服务器向客户端发送消息的功能。

开发 Socket.io

Kubernetes Slack即将迁移至新平台

2025-06-16

Kubernetes的Slack工作区将于6月20日从定制企业版降级为免费版,这意味着历史消息将仅保留90天,部分应用和工作流程也将被禁用。此举是由于Kubernetes Slack规模庞大,已超过Slack的免费支持能力。Kubernetes社区正计划迁移到Discord平台,以期获得更好的功能和集成,例如与GitHub成员同步。未来平台的选择将由Kubernetes指导委员会决定。

开发

Rust实现的可寻址Zstandard压缩库Zeekstd

2025-06-16
Rust实现的可寻址Zstandard压缩库Zeekstd

Zeekstd是一个用Rust编写的Zstandard可寻址格式库,它将压缩数据分割成独立的帧,以便高效地访问压缩文件中的特定部分。它兼容原始的可寻址格式,并对该格式进行了更新。库中提供了编码器和解码器,可以对整个文件或指定帧进行压缩和解压。此外,该库还包含一个命令行工具。

Linux内核词频分析神器

2025-06-16

一个网站利用强大的搜索引擎,分析Linux内核源码中单词、人名、函数等出现的频率。用户可以输入关键词(支持通配符和正则表达式),查看结果。网站还提供交互式图表(需启用JavaScript),直观展示分析结果。这对于研究Linux内核,或理解其代码结构都非常有帮助。

开发 内核分析

用APL解决LinkedIn的皇后游戏

2025-06-16

博主Peter Vernigorov用APL语言解决LinkedIn上一个名为“皇后”的简单游戏的算法问题。文章详细介绍了解决方案的思路,包括数据结构的选择、广度优先搜索算法的应用以及核心函数`solve`、`place`、`avl`、`fill`和`fills`的实现细节。整个代码简洁高效,仅用11行APL代码就实现了该游戏解决方案,展现了APL语言的强大功能和表达能力。

开发

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

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

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

开发

Android API里的彩蛋和幽默:从猴子到死亡之星

2025-06-16
Android API里的彩蛋和幽默:从猴子到死亡之星

本文揭秘了Android公开API中隐藏的彩蛋和幽默元素,例如`isUserAMonkey()`方法,用于检测UI是否被“猴子”(UI测试工具)干扰;`isUserAGoat()`方法,曾用于检测Goat Simulator游戏是否安装;以及`DISALLOW_FUN`设备策略,可以禁止用户“玩乐”。此外,还有`Chronometer.isTheFinalCountdown()`方法,可以打开Europe乐队的《最终倒计时》MV;以及各种奇特的常量,如`SENSOR_TRICORDER`和`GRAVITY_DEATH_STAR_I`等。甚至还存在一个未公开的``标签,可以使子视图闪烁。这些幽默元素为枯燥的开发工作增添了一丝乐趣,也展现了Android开发者们的幽默感。

开发

Lisp-Stat:一个基于Common Lisp的统计计算系统

2025-06-16
Lisp-Stat:一个基于Common Lisp的统计计算系统

Lisp-Stat是一个类似于R的统计计算系统,它既适用于探索性数据分析,也适用于一线生产部署。文章指出,Common Lisp在Google的多个高可用性、高吞吐量事务系统中得到应用。选择Common Lisp的原因在于它满足了系统在探索性分析、企业级生产环境以及开源许可证方面的需求。作者援引R语言创始人之一Ross Ihaka的论文,指出Common Lisp能够克服R和Python在编译为机器码等方面的不足,是更理想的统计计算系统基础。

开发 统计计算

AI编码代理:从辅助工具到核心伙伴

2025-06-16

作者分享了AI编码代理对其工作方式的深刻改变。从最初的“智能自动补全”到如今的“自主完成任务”,AI已经成为其不可或缺的工具。作者详细描述了如何利用Claude和Codex等工具完成各种任务,从修复bug到生成代码,极大地提高了效率。虽然AI也存在一些局限性,例如容易陷入局部最优解,但作者认为,AI编码代理的出现标志着软件开发进入了一个新时代,它增强了开发者的能力,而非取代开发者。

开发

Twin:一个文本模式窗口环境

2025-06-15
Twin:一个文本模式窗口环境

Twin是一个支持鼠标、窗口管理器、终端模拟器和网络客户端的文本模式窗口环境,可以动态附加/分离模式显示器。它支持多种显示方式,包括纯文本终端、X11和自身。目前已在Linux、macOS和FreeBSD上测试,支持多种架构。该项目开源,采用GPL和LGPL许可证,提供详细的教程和开发文档,可从GitHub下载。

RPython GC 的对象分配速度有多快?

2025-06-15

本文通过一个 RPython 基准测试程序,评估了 RPython 垃圾回收器 (GC) 的对象分配速度。测试结果显示,RPython GC 的分配速度惊人,达到 34 GB/s 以上,远超 Boehm GC。通过分析生成的机器码和性能计数器数据,作者发现 RPython GC 的快速分配源于其高效的 bump pointer 机制和极低的 GC 开销。即使在普通 Python 代码中,利用 PyPy JIT,也能达到 17 GB/s 的分配速度。

开发 RPython

Seastar:一款快速、可扩展的跨语言构建系统

2025-06-15
Seastar:一款快速、可扩展的跨语言构建系统

Seastar是一个快速且可扩展的构建系统,目前支持C和C++,未来计划支持Rust和Zig。它旨在简化程序的创建、原型设计和迭代过程,目标是像Rust的Cargo工具一样易用,但支持更多语言的无缝编译。Seastar易于构建和运行,只需安装Cargo和Rust,克隆仓库,运行相关命令即可。目前Seastar仍处于早期阶段,不建议用于重要项目。

开发 Seastar

重拾编程乐趣:构建玩具程序的18个创意

2025-06-15

作者倡导“实践出真知”的编程理念,认为动手创造比阅读书籍更能理解技术原理。文章列举了18个不同难度和时间的玩具程序项目,涵盖操作系统内核、游戏模拟器、物理引擎、编译器、GUI工具包等,旨在帮助程序员重拾编程乐趣,提升技术能力。这些项目难度不等,适合不同水平的程序员,并附带了相关资源链接。

开发 玩具程序

SumatraPDF开发者16年后放弃std::function,自造回调函数

2025-06-15
SumatraPDF开发者16年后放弃std::function,自造回调函数

SumatraPDF的开发者在16年的C++开发历程中,因为`std::function`和lambda表达式在调试崩溃时难以追踪,导致难以定位问题,最终放弃了它们。他选择了一个更小巧、更易于理解的自定义回调函数实现方案`Func0`和`Func1`。尽管功能不如`std::function`强大,但它在内存占用和编译速度上具有显著优势,并且更易于调试。这篇文章详细介绍了`Func0`和`Func1`的设计和实现细节,以及为什么开发者认为这种方法更适合SumatraPDF的项目需求。

开发 回调函数

SQLite日期和时间函数增强:更强大的日期时间操作

2025-06-15

SQLite的日期和时间函数得到了增强,提供了更丰富的功能。文章详细介绍了`date`, `time`, `datetime`, `julianday`, `strftime`五个核心函数,以及多种时间字符串格式和修饰符,例如`unixepoch`、`localtime`等,允许更灵活的日期时间计算和格式化。此外,文章还介绍了一个用户贡献的补丁,增加了许多新的功能,例如`start of week`、`end of day`等修饰符,以及`group * by`功能,方便进行分组统计。

大型语言模型让我失去了编程的乐趣

2025-06-15

作者回顾了自己编程习惯的转变,从热衷于学习和解决问题的“旅程型”程序员,逐渐依赖大型语言模型(LLM)完成代码编写,变成了更关注结果的“目的地型”程序员。LLM虽然提高了效率,但也减少了作者在编程中学习和思考的时间,让他失去了编程的乐趣。作者反思这可能是多种因素造成的,包括对实用性项目的偏好以及对LLM的过度依赖。他希望能够减少对LLM的依赖,重新找回编程的乐趣。

开发

用 Apple Container 像 docker-compose 一样管理容器

2025-06-15
用 Apple Container 像 docker-compose 一样管理容器

一个名为 `container-compose` 的命令行工具,允许你像使用 docker-compose 配置文件一样使用 Apple Container。该工具目前处于 alpha 版本,可能存在 bug 或缺失功能。你可以通过 Homebrew 安装 (`brew tap noghartt/container-compose https://github.com/noghartt/container-compose.git; brew install noghartt/container-compose/container-compose`),或者从发布页面下载预编译的二进制文件。

用miniKanren和WebAssembly实现的Datalog引擎

2025-06-15

本文介绍了一个使用Scheme和miniKanren库构建的Datalog引擎,并通过WebAssembly在浏览器中运行。该引擎实现了Datalog的基本功能,包括事实断言、规则定义和不动点迭代。作者详细解释了数据结构、索引机制和规则应用的实现细节,并提供了一个图遍历的示例。这个项目展示了使用函数式编程和逻辑编程技术构建高效数据库系统的可能性,并利用WebAssembly实现了跨平台的运行能力。

开发 miniKanren

2025年程序沙盒化:安全简易指南

2025-06-15

本文调查了2025年在Linux、OpenBSD和FreeBSD等操作系统上进行程序沙盒化的难易程度。作者通过分析各种沙盒工具的文档长度和示例代码长度,评估了其易用性和维护成本。结果显示,OpenBSD的pledge因其简洁的文档和易于使用的特性而备受青睐,而Linux的seccomp则显得更为复杂。文章还以OpenSSH为例,分析了沙盒技术的实际应用和维护难度,并呼吁开发者贡献更多数据,完善对沙盒技术应用现状的了解。

开发 程序沙盒

1998年的GNOME:一个简朴而快速的桌面环境

2025-06-15

本文作者回忆了1998年Red Hat Linux 5.1中包含的早期GNOME桌面环境。那时GNOME还处于beta阶段,与今天的版本相比功能简陋许多,但启动速度却快得多。文章详细描述了当时GNOME的各种应用程序,例如简单的文件管理器、图片查看器Electric Eyes、文本编辑器gEdit 0.4.0以及一些游戏等,并与现今的GNOME版本进行对比,展现了技术发展的历程。这篇文章不仅是一次回顾,更体现了早期开源社区的努力和创造力。

计算机视觉基础:十年磨一剑的巨著

2025-06-15

历经十年,三位计算机视觉领域专家Torralba, Isola和Freeman完成了《计算机视觉基础》一书。本书并非试图涵盖计算机视觉的全部,而是专注于基础概念,从图像处理和机器学习角度出发,辅以大量可视化内容,循序渐进地讲解图像形成过程、学习基础、信号处理、神经网络等核心知识,并探讨生成模型和表征学习等前沿方向。全书结构严谨,深入浅出,适合本科生、研究生及从业人员阅读。

开发

Chrome新HTML元素`<permission>`:简化网页权限请求

2025-06-15
Chrome新HTML元素`<permission>`:简化网页权限请求

Chrome团队正在试验新的声明式HTML `` 元素,以简化网页应用请求强大功能(如位置访问)的权限流程。传统的请求方式面临权限滥发、上下文缺失和撤销困难等问题。`` 元素提供了一种更安全、用户友好的方式,允许开发者声明式地请求权限,浏览器将根据用户交互状态动态更新元素文本,并提供清晰的权限管理机制。该元素目前处于Chrome 126的源代码试验阶段,未来有望成为标准。

开发

PyTorch实现的概率扩散模型:2D数据集实验

2025-06-15
PyTorch实现的概率扩散模型:2D数据集实验

本文介绍了一个使用PyTorch实现的最小化概率扩散模型,用于处理二维数据集。作者通过一系列实验,探索了学习率、模型大小、扩散过程长度以及时间步编码等超参数对模型性能的影响。实验结果表明,合适的学习率至关重要,较长的扩散过程能生成更完整的样本,而模型容量并非主要瓶颈。此外,使用正弦嵌入对输入进行编码有助于学习低维问题域中的高频函数。

Rails安全审计报告发布:十年开源安全之路

2025-06-15

开源技术改进基金会(OSTIF)发布了对Ruby on Rails的安全性审计报告。历时四个月,由X41 D-Sec团队主导,GitLab和主权科技机构参与,该审计发现了7个安全影响,并提出了6项改进建议。报告指出,Rails的安全性在过去几年有所提高,但仍有改进空间。OSTIF也庆祝了其十周年纪念日,并邀请大家参加相关的见面会。

开发

三种软件复杂性概念的比较

2025-06-15

本文比较了Rich Hickey、John Ousterhout和Zach Tellman对软件复杂性的三种不同定义。Hickey认为简单性是单一性,即“一折、一角色、一项任务、一个概念、一维”,并强调客观性;Ousterhout认为复杂性是使软件难以理解和修改的任何与软件系统结构相关的事物,并强调依赖性和模糊性;Tellman认为复杂性是所有解释的总和,并强调解释对目标受众的依赖性。文章比较了这三种定义的优缺点,并讨论了它们在解决实际问题中的应用,最终认为Tellman的解释方法更佳,因为它更能捕捉到软件开发中主观经验,并能更好地指导实际决策。

使用OpenTelemetry监控GitHub Actions流水线

2025-06-15
使用OpenTelemetry监控GitHub Actions流水线

本文介绍了如何使用OpenTelemetry监控GitHub Actions流水线,实现对CI/CD流程的端到端可观测性。通过配置OpenTelemetry Collector的GitHub接收器,可以收集流水线的跟踪和指标数据,从而识别瓶颈、调试错误并分析依赖关系。文章详细讲解了配置过程,包括设置GitHub webhook、安装OpenTelemetry Collector、配置接收器和处理器以及认证等步骤,并提供了相应的YAML配置文件片段。最终,这些数据可以被发送到SigNoz等可观测性平台进行可视化分析。

开发

Lisp: 程序员的艺术创作媒介

2025-06-15

本文探讨了Lisp编程语言的本质,将其比作一种艺术创作媒介,而非单纯的工程工具。作者认为,优秀的编程如同写作,需要探索和发现,以及对呈现方式的完善。Lisp的动态性使其成为探索和实验的理想工具,如同作家不断修改稿件一样,程序员也可以在Lisp中灵活地调整和改进代码。作者以地图绘制、写作等为例,阐述了探索与完善的结合,并批评了以性能为先的编程语言设计理念,认为这阻碍了创造力和灵活性的发挥。

开发

攻破虚拟机更新机制获取安全课程 Flag

2025-06-15
攻破虚拟机更新机制获取安全课程 Flag

作者在安全课程中发现虚拟机更新文件(*.gpg)包含用于提交答案的令牌。通过分析更新程序installUpdate,发现其使用GPG解密,并依赖于`/root/.vmPassphrase`和`/root/.gnupg`文件。作者通过挂载虚拟磁盘,获取这些文件,成功解密更新文件,提取令牌并提前完成作业。更新文件包含Java代码,用于生成基于AES加密的令牌。作者指出,这种攻击方式依赖于对虚拟机磁盘的完全访问权限,并提出了使用远程虚拟机的改进方案。尽管提前完成作业,作者仍然强调学习过程的重要性,并表示最终仍需认真完成课程作业。

开发

ICONIC:GitHub自述文件中的炫酷技能图标库

2025-06-15
ICONIC:GitHub自述文件中的炫酷技能图标库

ICONIC是一个专注于开发者的图标库,提供简洁美观的泡泡状技能图标,专为GitHub自述文件、个人作品集和简历而设计。它包含清晰美观的泡泡图标、明暗主题变体以及易于嵌入Markdown和HTML的特性。此外,还提供HTML预览API(Django后端)和可下载的SVG矢量图,让开发者轻松展示技能。

开发
1 2 59 60 61 63 65 66 67 213 214