分类: 开发

Idris语言的新特性:绑定应用

2025-07-14

Idris语言即将推出一个名为“绑定应用”的新特性,它通过语法糖简化了依赖类型编程中依赖对和其它类型构造的编写方式。这项特性避免了依赖于特殊编译器魔法的需求,而是将这种能力开放给所有开发者。文章详细介绍了该特性在Sigma类型、Exists类型、Subset类型、Ornaments、ForAll、ForSome以及for循环等多种场景下的应用,展示了它如何提升代码可读性和书写效率,使Idris的依赖类型编程更加简洁直观。

Raycast Linux:开源的Raycast Linux启动器

2025-07-14
Raycast Linux:开源的Raycast Linux启动器

一个开源项目Raycast Linux,旨在将macOS上的Raycast启动器移植到Linux。它支持扩展命令面板、扩展支持(兼容部分Raycast扩展)、强大的计算器、剪贴板历史记录、代码片段管理以及AI集成(通过OpenRouter)。虽然力求兼容大部分Raycast扩展,但由于macOS和Linux系统的差异,部分扩展可能无法正常工作。该项目使用Rust、Node.js、Tauri和Swift开发,提供AppImage包,并支持从源码构建。

开发 启动器

VS Code Android 逆向工程神器:APKLab

2025-07-14
VS Code Android 逆向工程神器:APKLab

APKLab 是一款强大的 VS Code 扩展,将 Quark-Engine、Apktool、Jadx 等开源工具集成到一起,为 Android 逆向工程提供了一站式解决方案。它支持 APK 资源解码、反汇编、反编译,以及恶意软件分析报告生成、HTTPS 检查等功能,极大提高了逆向效率。APKLab 还支持自定义密钥库签名、项目初始化为 Git 仓库等高级功能,并兼容 Linux、Windows 和 macOS 系统。

开源视频编辑器OpenCut:本地优先,功能强大

2025-07-14
开源视频编辑器OpenCut:本地优先,功能强大

OpenCut是一个免费开源的视频编辑器,支持网页、桌面和移动端。它强调用户隐私,所有视频都保存在本地设备上。虽然其基础功能目前都处于付费墙后,但其易用性已得到验证。OpenCut采用时间轴编辑,支持多轨、实时预览,且无水印或订阅限制。项目采用Next.js开发,包含前端组件、自定义React钩子、实用程序和API逻辑、状态管理以及TypeScript类型定义等。项目还提供详细的安装和开发指南,欢迎贡献代码。

本地运行的AI写作助手:你的数据,你的隐私

2025-07-14
本地运行的AI写作助手:你的数据,你的隐私

这款macOS应用程序利用本地运行的大型语言模型(LLM),保证你的文档、文本和写作内容绝不离开你的Mac。它兼容大多数macOS应用程序,包括邮件、信息、Safari等,提供7天免费试用(无需信用卡),并为学生和教育工作者提供50%的折扣。所有处理都在本地进行,无需担心数据隐私和传输安全。

开发

x86-64汇编语言入门:环境搭建与第一步

2025-07-14

这篇博文是x86-64汇编语言教程系列的第一部分,作者回顾了大学里过时的x86汇编教学,并决定编写一个现代的x86-64汇编教程。教程使用Flat Assembler (FASM)和WinDbg作为工具,并讲解了x86-64架构的基本概念,包括寄存器、内存地址和64位Windows调用约定。最后,作者编写了一个简单的Windows程序,演示了如何使用FASM编译和使用WinDbg调试。

Infisical招募开发者关系专家,共建AI时代开源安全基础设施

2025-07-13
Infisical招募开发者关系专家,共建AI时代开源安全基础设施

Infisical,一家由Y Combinator、Google和Elad Gil投资的开源安全基础设施平台公司,正在招聘开发者关系专家。该职位需要具备优秀的沟通能力和技术背景,负责创建技术内容(博客、视频、直播等),并与开发者社区互动,推广Infisical的秘密管理、内部PKI、密钥管理和SSH工作流编排等功能。理想的候选人应该熟悉软件工程、开发者工具和基础设施,并拥有在多个平台上创建内容的经验。这将是一个具有挑战性和快速发展的机会,帮助塑造Infisical的开发者社区战略。

开发

C++协程:灵活的异步编程利器

2025-07-13

C++协程并非现成的库,而是定义了一套定制点的规范,需要库编写者实现才能发挥作用。它扩展了函数的概念,支持挂起、恢复和销毁等操作。通过`co_await`关键字标记协程,并利用`Task::promise_type`定制协程行为,包括调用、返回、挂起和恢复等环节。`awaiter`和`awaitable`机制则处理协程的挂起和恢复,允许在依赖项就绪时恢复协程执行,实现灵活的异步编程。

开发

TorchLeet:PyTorch深度学习实战练习题库

2025-07-13
TorchLeet:PyTorch深度学习实战练习题库

TorchLeet是一个涵盖PyTorch基础到高级应用的练习题库,分为PyTorch基础练习和大型语言模型(LLM)两个部分。基础部分包含线性回归、自定义数据集、卷积神经网络等练习,难度递进,适合初学者到进阶学习者。LLM部分则专注于从零开始实现LLM,例如实现注意力机制、词嵌入等,挑战性更高。每个题目都提供不完整的代码和解答,方便用户学习和实践。

开发

C3 编程语言的 Temp 分配器:告别内存泄漏

2025-07-13
C3 编程语言的 Temp 分配器:告别内存泄漏

C3编程语言引入了一种名为Temp分配器的创新内存管理方案,它结合了垃圾回收的易用性和手动内存管理的性能优势。Temp分配器利用内存区域(arena)的概念,在函数作用域结束时自动释放内存,有效避免内存泄漏,无需RAII、引用计数或垃圾回收的复杂性。通过`@pool()`宏定义内存区域,开发者可以轻松管理临时变量的生命周期,Valgrind测试证明其有效性。C3甚至在缺少显式`@pool()`的情况下,也能自动为`main()`函数添加内存区域,进一步简化开发流程。Temp分配器让C3开发者既能享受手动内存管理的性能,又免受内存泄漏的困扰。

开发 Temp分配器

极简家庭实验室监控:告别Prometheus,拥抱Go程序

2025-07-13

作者厌倦了复杂的监控工具,为其简单的家庭实验室搭建了一个极简监控系统。这个Go程序定期检查HTTP、DNS等服务,并通过ntfy.sh发送通知。它轻量、易维护,只需检查服务是否运行,并发送故障和恢复通知,无需历史数据或仪表盘。此外,作者还使用了healthchecks.io作为死人开关,防止监控程序本身失效。这个系统虽然简单,但满足了作者的需求,并避免了复杂的配置和维护。

开发 监控系统

通过REST API调用工具:分步指南

2025-07-13
通过REST API调用工具:分步指南

本文介绍了如何通过REST API调用工具,以实现LLM与外部工具的交互。以查询“是否有AirPods Pro库存”为例,首先将提示和工具定义发送到LLM提供商的聊天/完成端点,然后LLM响应工具调用请求,最终实现对外部数据的访问。这展示了LLM如何利用外部工具来扩展其功能,处理更复杂的任务。

开发

对Graham Lisp代码风格的评析

2025-07-13

这篇评论分析了Graham Lisp代码的可维护性和可移植性,认为其代码简洁,函数定义简短且目的明确。但批评了其命名风格过于简短隐晦,以及过度使用if语句嵌套、避免使用loop循环以及偏好递归而非迭代等方面,指出这些风格与主流Lisp编程实践有所不同,在某些情况下可能导致代码可读性下降甚至栈溢出。

开发

AI 编码工具:效率杀手还是未来希望?

2025-07-13
AI 编码工具:效率杀手还是未来希望?

一项针对16位经验丰富开发者的随机对照试验表明,AI编码工具并没有提高效率,反而使软件开发速度降低了19%。研究发现,开发人员对AI工具的过度乐观预期、自身丰富的经验、大型复杂代码库以及AI工具的低可靠性等因素导致了效率下降。虽然AI工具可以快速测试新场景并自动化某些日常任务,但最终仍需要人工验证代码,且无法像实习生一样学习和成长。研究者强调,这项研究结果并非否定AI工具的未来潜力,而是对当前AI工具效率的现实考量。

Firefox付费版:一个老Mozilla支持者的呼吁

2025-07-13
Firefox付费版:一个老Mozilla支持者的呼吁

一位资深Mozilla支持者呼吁Firefox推出付费版本。他认为,依赖广告的模式最终会导致产品质量下降,用户体验变差。付费模式下,用户可直接资助Firefox的开发,获得无广告、无追踪、注重用户隐私的体验。即使推出付费版,免费开源版仍然存在,用户可以选择。作者认为,这种模式能吸引更多用户,避免Mozilla重蹈Facebook的覆辙。

开发

Cloudflare Tunnel:安全便捷地部署你的 Web 服务

2025-07-13
Cloudflare Tunnel:安全便捷地部署你的 Web 服务

还在为复杂的服务器配置和安全问题烦恼吗?Cloudflare Tunnel 提供了一种简单安全的方案,让你无需公开端口即可轻松部署 Web 服务。通过创建一个从你的服务器到 Cloudflare 数据中心的出站连接,所有流量都将通过 Cloudflare 的安全网络进行传输,确保你的服务器安全可靠,无论它运行在何处。本文详细介绍了如何使用 Cloudflare Tunnel,包括安装 cloudflared 客户端、创建隧道、配置系统服务以及设置 DNS 记录等步骤,即使是新手也能轻松上手。

GhidrAssistMCP:让AI辅助逆向工程

2025-07-13
GhidrAssistMCP:让AI辅助逆向工程

GhidrAssistMCP是一个强大的Ghidra扩展程序,它提供了一个MCP(模型上下文协议)服务器,使AI助手和其他工具能够通过标准化的API与Ghidra的逆向工程功能进行交互。该扩展程序集成了31个内置工具,涵盖函数、数据、交叉引用等,并具有可配置的UI、实时日志记录和动态工具管理等功能。它允许外部AI助手、自动化分析工具和自定义脚本与Ghidra无缝交互,极大地提升了逆向工程效率。

开发

Rust/Lua 音乐序列生成引擎:pattrns

2025-07-13
Rust/Lua 音乐序列生成引擎:pattrns

pattrns是一个实验性的命令式音乐序列生成引擎,允许你使用Rust库(静态编译)或Lua脚本引擎(动态解释)编程生成音乐序列,非常适合现场编码音乐。它采用独特的节奏、门控和发射器三阶段架构,将节奏和音调部分分离,方便灵活修改和组合。此外,它还支持使用Tidal Cycles迷你记谱法创建音乐事件。目前pattrns只生成原始音乐事件,不生成音频,需要配合支持pattrns的应用程序使用。

开发

Python音视频处理:超越无聊的自动化

2025-07-13

本书第三版新增章节,教你用Python操控电脑的麦克风、摄像头和扬声器硬件,录制和播放多媒体内容。章节涵盖了音频和视频数据、从网络摄像头和麦克风录制、播放音频文件以及使用yt-dlp下载视频和ffmpeg编辑视频和音频等内容。通过学习,你可以自动化处理大量视频文件,例如降低音量或提取缩略图,甚至创建自己的时间推移摄影或照片亭程序。

告别数据验证:C语言中的“解析而非验证”策略

2025-07-13

本文介绍了一种名为“解析而非验证”的编程策略,它通过在C语言中创建自定义类型(如email_t, name_t),将未经验证的输入数据立即解析成安全、结构化的类型,从而减少C语言中因指针操作和类型不匹配带来的安全风险。这种方法将字符串处理限制在系统边界,防止内部函数误用数据,并利用编译器的类型检查来避免参数混淆等错误,最终提升代码的健壮性和可维护性。

开发

Aeron:高性能、低延迟的消息传输系统

2025-07-13
Aeron:高性能、低延迟的消息传输系统

Aeron是一个高性能、低延迟的消息传输系统,支持UDP单播、多播和IPC。它提供Java、C和C++客户端,并支持.NET客户端。Aeron具有极高的吞吐量和可预测的低延迟,并集成了Simple Binary Encoding (SBE)以优化消息编码和解码性能。此外,Aeron还提供Aeron Archive用于持久化消息存储和Aeron Cluster用于构建容错服务。Adaptive Financial Consulting公司拥有和运营Aeron,并提供相关的培训、咨询和增值服务,例如内核绕过和高速加密。

开发 消息传输

研发创业的惨痛教训:一个小bug引发的血案

2025-07-13
研发创业的惨痛教训:一个小bug引发的血案

一家研发创业公司在进行心理学研究数据收集时,由于PHP代码中使用了`mail() or die()`的错误处理方式,导致在测试环境没有网络连接时,程序提前退出,所有参与者的测试数据丢失。这凸显了在处理错误时,应采用优雅的方式而不是简单粗暴地终止程序的重要性,也反映了环境差异对代码测试的必要性。此次教训促使公司改进代码规范,并从PHP转向JavaScript、Go和Python等更安全的语言。

开发

Zig语言的异步I/O革新:解耦并发与执行模型

2025-07-13
Zig语言的异步I/O革新:解耦并发与执行模型

Zig语言正在革新其异步I/O模型,目标是解耦异步/等待与执行模型,提高代码可重用性和性能。新设计引入了`Io`接口,允许用户自定义I/O实现,并支持并发操作。通过`io.async`和`Future.await`,开发者可以轻松表达并发性,而无需担心执行模型的差异。Zig将提供多种`Io`实现,包括基于线程池、绿色线程和无栈协程的方案,以满足不同需求和平台兼容性。这项改进将显著提升Zig在处理异步I/O时的灵活性和效率,同时避免了传统异步编程中常见的“函数颜色”问题。

开发

在C语言中实现协程:一个疯狂的宏观实验

2025-07-13

本文讲述了作者在嵌入式系统开发中,为了避免使用RTOS,巧妙地利用C语言宏定义实现了协程,从而简化了复杂的控制流逻辑。作者首先以一个LED闪烁控制的例子说明了传统状态机方法的复杂性,然后通过宏定义,将协程代码转换为显式状态机,实现了类似于异步IO的功能。虽然这种方法代码繁琐,但它展示了在没有RTOS的情况下实现并发编程的可能性,也体现了程序员的创造力和对底层技术的深入理解。文章最后建议读者如果需要进行严肃的协程开发,最好选择Rust等更现代化的语言。

开发

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

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

arXivLabs是一个开放的平台,允许开发者与arXiv社区合作,直接在arXiv网站上开发和分享新功能。参与者必须遵守arXiv的开放、社区、卓越和用户数据隐私的价值观。你有好的想法吗?来加入arXivLabs,为arXiv社区贡献力量!

开发

使用Docker和VSCode Dev Container安全地运行Claude Code

2025-07-13
使用Docker和VSCode Dev Container安全地运行Claude Code

作者分享了将Claude Code集成到Docker容器中,并在VSCode的Dev Container功能下安全运行的经验。他指出,直接在本地运行AI Agent存在安全风险,而Docker容器则提供隔离环境,限制了Claude Code对系统文件的访问权限,从而降低了安全隐患。文章还提供了详细的设置指南,包括创建devcontainer.json文件以及使用Fine-Grained access token进行GitHub代码管理,方便读者快速上手。

开发

Chrome MV3扩展程序中的一个有趣漏洞

2025-07-13

谷歌Chrome浏览器从MV2升级到MV3后,去除了webRequestBlocking权限,导致许多广告拦截器失效。然而,作者发现了一个有趣的漏洞:由于Chrome扩展程序的API使用了JavaScript绑定,通过操纵`chrome.webRequest`事件构造函数的参数,可以绕过权限检查,实现广告拦截功能。尽管这个漏洞没有导致安全风险,但它展现了老旧代码中隐藏的潜在问题,以及巧妙利用技术细节实现意想不到结果的可能性。作者将漏洞报告给谷歌后,该漏洞已修复。

开发

BinaryRPC: 一个高性能C++ RPC框架

2025-07-12
BinaryRPC: 一个高性能C++ RPC框架

一位刚毕业的工程师为了解决Java WebSocket服务器的性能问题,转向C++并使用uWebSockets库开发了一个名为BinaryRPC的高性能RPC框架。BinaryRPC借鉴了Node.js和Express.js的理念,拥有现代化的中间件和会话管理机制,并支持多种QoS等级,确保消息传递的可靠性。该框架已开源,并提供了详细的文档和示例,方便开发者使用。

开发

用D语言编写Deus Ex速通计时器:一次游戏黑客之旅

2025-07-12

一位Deus Ex速通玩家因Linux平台缺乏合适的速通计时工具,决定自己动手,用D语言编写一个能够自动分割和去除加载时间的计时器。这篇文章详细描述了整个过程,从寻找加载标志的失败尝试,到学习Linux系统调用(ptrace和process_vm_readv),再到利用反汇编和内存映射找到合适的内存位置进行代码注入,最终实现了计时器的核心功能。作者分享了在D语言开发中的经验,并指出了目前计时器的一些不足之处,例如对异常处理和存档屏幕的处理不够完善。

开发

用《Writing a C Compiler》编写C编译器:一步步构建的快乐

2025-07-12
用《Writing a C Compiler》编写C编译器:一步步构建的快乐

博主计划逐章学习并实践《Writing a C Compiler》一书,并撰写博客记录学习过程。本书以循序渐进的方式讲解C编译器的编写,第一章即可构建一个可运行的编译器,后续章节逐步添加更多功能。书中包含大量的测试用例,方便检验编译器的正确性。作者积极回复邮件,并提供了丰富的额外练习。博主对本书的逐步构建方式、完整的测试套件以及对实际C语言的支持赞赏有加,认为这是一本非常优秀的编译器学习书籍。

开发
1 2 42 43 44 46 48 49 50 213 214