TGViewer
Channel Public Channel
开发者工具箱|编程·开发工具·资源

开发者工具箱|编程·开发工具·资源

@devtoolboxhub

面向开发者的实用工具、库与效率技巧,写代码更快更爽。投稿 @BDHT1
#开发者 #编程工具 #效率 #程序员 · 开源总站 @GitHubTrendingHub
Subscribers
560
Photos
1.4K
Videos
0
Links
774

Showing posts older than #1238 · Back to latest

Older Posts 15 shown
Post #1237 4
AI代码生成面临“社交媒体式”问题

作者发布产品后收到一条看似友好、实则AI生成的评论——它复述了文章观点,然后建议作者去构建该文章要发布的产品。这条评论成本几乎为零,但作者阅读、判断并回复却消耗了真实精力。

这种“低成本产出、高成本甄别”的模式并不新鲜,社交媒体早已演示过一遍:发布变便宜,筛选成本转移到读者身上。AI代码生成在2022-2024年间急速普及,GitClear分析了2.11亿行代码变化,发现复制粘贴代码占比持续攀升,而重构(清理复用)比例持续下降,两者在2024年首次交叉,复制粘贴超过重构。

问题在于,低质量社交媒体帖一天后就沉入信息流,但低质量代码一旦合并进仓库,就被叠加上后续功能,多年维护。AI代码外表整洁(格式规范、命名合理)容易通过快速审查,因为传统“草率代码”的迹象消失了,实际却缺乏思考。


一篇糟糕的帖子只浪费你几秒,一次糟糕的合并则每月都消耗你,直到最终被拆掉。两者的洪流表象相似,区别在于一个自行消退,另一个在你离职那天还留在仓库里。

#开发者 #工具 #AI代码生成 #代码质量 #代码审查 #GitClear #CodeReview
@DevToolboxHub
Post #1236 3
让IKB在终端中可读的Claude Code主题

作者日常使用 Claude Code 读取大量散文(工具输出、推理轨迹、权限提示),但现有终端主题为语法高亮设计,深色背景配细调关键字颜色,不适合 80% 英文段落的场景。作者希望为长文本可读性优化一个主题,锚定 Yves Klein 的 IKB(hex 002FA7)。但纯 IKB 在深色背景上 APCA 得分仅为 -12,完全不可见,只能用于装饰、边框、高亮。

解决方案:拆分角色。ansi:blue 分配纯 IKB(装饰边框、结构元素),ansi:blueBright 分配提亮后的克莱因族蓝色(A8BEF0,用于权限提示正文)。主题提供四种变体:Klein Void Prot 严格通过 APCA 门限(正文 ≥ Lc 90,微妙 ≥ 75,柔和 ≥ 45,强调 ≥ 60);其他变体在严格性与温暖感之间取舍,例如 Sand & Sea 接受 Claude 的 ansi:redBright 沙色作为第二主角。需注意:必须将 Claude Code 的 /theme 设置为 dark-ansi,否则 Claude Code 的硬编码 RGB 调色板会忽略终端 ANSI 颜色。主题作为 macOS Terminal.app 配置文件提供,含 install.sh 和 restore.sh,可完全回滚。Prot 变体使用 CommitMono-Regular 字体,Gallery 变体使用 IBM Plex Mono。


GitHub

#开发者 #工具 #ClaudeCode #终端主题 #IKB #APCA #KleinVoid #macOS #Terminal
@DevToolboxHub
Post #1235 2
Genkit Agents:小原语组合的合力

Genkit 没有给你一个包含五十个选项的大 Agent 类。它的理念是:代理由你已在使用的同一套小原语(工具、中间件、中断、会话、流式)逐层组合而成,复杂行为是叠加出来的,而非硬塞进去。这样,人工审批、沙箱编码助手、多代理委托不再各自独立,而是同一组想法的不同组合。</>

一个可运行的 agent 只需约 10 行代码:ai.defineAgent({ system, tools, store }) 加 agent.chat().sendStream()。状态管理也灵活——传 store 则服务端管理会话,省略则客户端管理状态 blob,同一 agent,同一 API。

中断将工具调用变成暂停按钮:定义一个无处理器的工具,调用时 agent 暂停,交由你处理,之后再精确恢复。这是最干净的人工介入原语。

中间件以一行一个能力的方式叠加。use: [...] 数组可以串联文件系统、技能库、审批门、重试和子代理委托。审批门中间件基于同样的中断机制;子代理就是作为工具的 agent。

同一 agent 可在服务端和浏览器中运行。后端用 expressHandler(agent) 暴露 HTTP 端点,前端用 remoteAgent({ url }) 连接,流式、中断恢复语义完全一致。

更多示例代码和详细说明见正文末尾链接。

</>

多个原语互相增强:中断实现人工介入,中间件将文件系统、技能、重试、委托变为一行配置;审批门就是中断,子代理就是工具,浏览器客户端就是服务端 API 的镜像。学一遍原语,剩下的就是重组,这正是“整体大于部分之和”的意思。

#开发者 #工具 #Genkit #AI #TypeScript #中间件 #代理 #中断 #Web
@DevToolboxHub
Post #1232 5
Netflix 用动态分区拆分将 Cassandra 读延迟降到毫秒级

Netflix 工程师引入元数据驱动的动态分区拆分机制,解决 Cassandra 时间序列工作负载下的宽分区问题。系统自动检测过大的分区,将其拆分为更小的单元,并将读取请求路由到子分区。

该方案使生产集群的读延迟从秒级降至两位数毫秒,同时减少读取超时、降低 CPU 利用率和线程排队。Netflix 称这一方法在保持透明性的同时提升了集群稳定性。

#开发者 #工具 #Netflix #Cassandra #动态分区拆分 #分布式数据库 #延迟优化 #时间序列
@DevToolboxHub
Post #1231 4
用持久上下文层实现一致的 AI 编码

AI 编码 agent 的上下文不在于聊天历史或跨会话记忆,而在于磁盘上实际可读的文件。每次启动都是全新状态——没有组件库、没有约定、没有过去如何写代码的记录。带真实代码库的 agent 与空沙箱中的 agent 输出天差地别。

沙箱中每次 session 重置:没有测试、没有 CLAUDE.md、没有 .cursorrules、没有设计令牌、没有 git 历史。Agent 从空白开始即兴创作,大规模即兴只是熵的伪装。所谓“上下文”对 agent 而言,按重新读取频率排列三者:可见文件(函数签名、类型、已有模式)、测试(唯一 ground truth)、约定文件(CLAUDE.md、.cursorrules、AGENTS.md 等)。没有这些,agent 做的是自由生成——在 30 秒演示中神奇,在 200 文件仓库中尴尬。

简单修复:在仓库根目录放约 600 字节的约定文件——标明组件位置、样式规则、测试命令。无需向量存储或微调。任何遵守项目规则的 agent(Claude Code、Cursor、Codex CLI、Aider、Continue)都能每次以相同方式启动。模型会变,约定不变。


OTF kit 进一步将此打包:约 200 个跨平台组件、预写约定文件与 20+ 测试过的提示模板、设计令牌、上线脚本。agent 从第 1 天到第 200 天保持相同的心智模型。

本周行动:打开实际交付产品的仓库,确认根目录有 CLAUDE.md、.cursorrules 或 AGENTS.md。没有的话,花 30 分钟写三条规则:组件放哪里、如何设计样式、测试命令是什么。提交推送,下次 agent session 会看到效果。若想跳过空白仓库,可直接运行 OTF kit CLI,生成已预配好组件、令牌、约定文件和提示库的项目。

#开发者 #工具 #AI编码 #持久上下文 #OTFKit #沙箱 #CLAUDEmd #CursorRules
@DevToolboxHub
Post #1229 4
Model Context Protocol推出企业集中授权稳定版

Model Context Protocol 团队将 Enterprise-Managed Authorisation 扩展升级为稳定版本,为组织提供一种通过身份提供者集中控制 MCP 服务器访问的方式。该扩展旨在用零接触流程取代逐个服务器的同意弹窗——用户只需登录一次,即可访问已批准的服务器,无需额外配置。

• 中心化授权:通过企业身份提供者统一管理 MCP 服务器权限,替代原本分散的同意提示。
• 零接触体验:用户单次登录后自动获得授权服务器访问权,减少重复操作和配置负担。

#开发者 #工具 #MCP #企业授权 #身份提供者 #零接触
@DevToolboxHub
Post #1228 5
ATtiny85 EEPROM解释器概念验证

本工程在 ATtiny85 上构建了一个微型解释器,直接从 EEPROM 而非 FLASH 执行指令。每条指令仅占 2 字节(1 字节命令 ID + 1 字节位打包参数),支持设置 GPIO、非阻塞延时、ADC 到 PWM 映射三个命令。程序以紧凑字节流形式存放,解析简单,指令密度远高于等效的编译 C 代码。

解释器核心代码用 AVR C 编写,依赖 avr-gcc、avr-libc、avrdude 及 CMake。EEPROM 程序通过 EEMEM 属性驻留,主循环从 EEPROM 读取指令并送入 ExecuteInstruction 函数解码执行。0xFF 0xFF 作为程序结束标记,触发指令指针归零循环。编译和烧录均通过 CMake 自定义目标完成:先用 flash_eeprom 目标单独写入 EEPROM 程序,无需每次重刷固件。
此类架构类似 AVR 上的微型虚拟机,适合自动化、GPIO 序列控制、LED 或传感器映射等场景,在紧凑性优先于原始速度时效率可观。


#开发者 #工具 #ATtiny85 #EEPROM #嵌入式 #解释器 #CMake #AVR #概念验证
@DevToolboxHub
Post #1227 6
自动化反向链接监控:Python + Cron

反向链接是SEO排名的强信号,但获得链接仅是第一步,保持追踪更重要。手动逐个检查每个URL既低效又难扩展。用Python脚本配合cron任务,即可自动验证链接可访问性、检测断链,省时又一致。

创建 ping_backlinks.py:
import requests
import time
backlinks = [
"",
"",
]
def check_url(url):
try:
response = requests.get(url, timeout=10)
print(f"{url} -> {response.status_code}")
return response.status_code
except Exception as e:
print(f"Error checking {url}: {e}")
return None
for url in backlinks:
check_url(url)
time.sleep(2)

通过 crontab -e 添加定时任务,每两天凌晨2点执行一次:
0 2 */2 * * /usr/bin/python3 /home/user/ping_backlinks.py

脚本中的 time.sleep(2) 降低服务器负载,模仿自然浏览,避免单次过多请求。
基础版可扩展:从CSV读URL、导出结果、邮件告警、记录历史、创建定时报告仪表板,适合多站点管理。


无论管理个人博客还是多个客户网站,这样的小型自动化工作流都能节省时间、提升一致性,让你专注于更高价值的SEO任务。

#开发者 #工具 #Python #Cron #SEO #自动化 #反向链接 #HTTP #效率
@DevToolboxHub
Post #1226 8
Cognee Hackathon 技术复盘:AI 记忆矛盾与深度修剪层

Cognee 是为 AI Agent 设计的记忆层,底层混合使用 LanceDB(向量嵌入)和 Kuzu(图数据库),通过 cognify() 对原始文本进行 LLM 驱动的实体与关系抽取,构建知识图谱。

一位 NIT Silchar 大三学生(Geetansh Vikram)在 WeMakeDevs × Cognee 黑客松中,发现了一个被忽视的痛点:AI 记忆的“上下文腐烂”(context rot)——当同一主体的信息被多次更新时,简单的向量存储无法区分新旧,导致模型回答错误。

他构建了 ContextRot Bench 基准测试,包含 15 个事实流场景(职位申请状态、用户位置、订阅计划等),每个场景有真实答案和不应出现的陈旧值。
他原本计划使用 Cognee 的 improve() 函数来解析矛盾——文档称其“运行摄入后增强、修剪陈旧节点”。但实测发现,improve() 并非物理删除,而是通过 LLM 在图中添加调和边。查询时再由 LLM 推理正确结果,这导致 75% 的情况下朴素管道仍会出错,且陈旧节点始终残留。
于是作者调用底层图引擎 (get_graph_engine()) 和向量引擎 (get_vector_engine()),构建了自定义深度修剪层:先在图库中查询匹配 subject+value 的 Fact 节点并删除,再在 LanceDB 各表中删除关联的向量块,实现双存储的原子清理。
过程中还发现了两个静默 bug:安装 fastembed 但不安装 cognee[fastembed] 会导致图构建无任何向量;LLM 抽取会改写谓词,需改用 subject+值匹配而非谓词匹配。


基准测试结果:朴素向量存储准确率为 0%,Cognee + 深度修剪层为 100%。作者指出,问题只出现在被矛盾的事实上,稳定事实两者都能正确回答。

最终,作者向 topoteretes/cognee 仓库提交了 Graphiti 迁移教程和 Mem0 迁移教程两个 PR,目前正在审核中。

GitHub: Geetansh-12/cognee_hackathon

#开发者 #工具 #Cognee #WeMakeDevs #ContextRotBench #知识图谱 #AI记忆 #LanceDB #Kuzu #深度修剪
@DevToolboxHub
Post #1225 5
DevTime v0.1.2 为编码代理注入可信仓库记忆

DevTime 是一个本地优先的工程智能 CLI,能扫描代码仓库并基于证据解释软件概念。最新 v0.1.2 版本将其内存暴露为 MCP 服务器,编码代理可直接查询而不必猜测。

DevTime 通过 dtc mcp start 命令启动 stdio MCP 服务器,暴露三个只读工具:
• list_concepts — 列出仓库支持的概念及置信度
• explain_concept — 返回某概念背后的声明、证据文件和不确定性
• get_context_pack — 生成治理后的上下文包,包含支持的声明、禁止修改的路径和需运行的测试
安装:pipx install "devtime-ei[mcp]"
扫描:cd your-repo && dtc init && dtc scan
接入 Claude Code:claude mcp add devtime -- dtc mcp start
设计原则:只读、仅本地 stdio、不返回源码、弱证据产生不确定性而非自信。无证据则不声明。


代理现在可以在编辑前查询仓库的真实边界,而不是凭猜测行事。

GitHub
PyPI

#开发者 #工具 #DevTime #MCP #本地优先 #工程智能 #CLI #AI代理
@DevToolboxHub
Post #1224 5
Claude达GA微软Foundry,欧洲企业无法部署

Anthropic与微软宣布Claude模型(Opus 4.8、Haiku 4.5及后续Sonnet 5)在Microsoft Foundry上达到通用可用性(GA),提供Azure原生计费与治理,预付费可抵扣Azure承诺消费。然而,欧洲数据区域尚未就绪——Anthropic文档明确数据驻留保障仅适用于Bedrock和Vertex AI,不涵盖Foundry。欧洲银行与医疗行业从业者反馈,该服务未被批准用于生产环境。

#开发者 #工具 #Claude #Anthropic #Microsoft #Foundry #Azure #欧洲 #数据驻留 #GA
@DevToolboxHub
Post #1220 6
TypeScript 6.0 isolatedDeclarations 详解

TypeScript 构建性能的瓶颈在于声明文件生成依赖类型检查器逐文件分析依赖关系,无法并行。6.0 的 isolatedDeclarations 用纯语法变换替代类型推断,让每个文件的 .d.ts 生成独立并行,大型 monorepo 构建时间从分钟级降到秒级。

代价是强制:所有导出的函数、类、变量必须显式标注类型。迁移时需补充返回类型和属性类型,暴露此前隐藏的 implicit any。该特性也让 esbuild、swc 等快速转译器能直接生成声明文件,无需嵌入类型检查器。

传统模式下,修改一个共享工具包后增量构建需 4-6 分钟,因为类型检查器要重新分析所有依赖包。启用 isolatedDeclarations 后同一变更只需 8-12 秒:并行工作线程只做语法分析,跳过类型检查。类型检查仍可在 CI 或按需运行,不再阻塞本地迭代。

典型迁移错误:export const add = (a: number, b: number) => a + b 缺少返回类型,必须改为 export const add = (a: number, b: number): number => a + b。导出对象字面量需手动标注类型或用 as const。官方建议先对工具包启用,再逐步扩展。

与外部工具(如 api-extractor)相比,isolatedDeclarations 消除后处理步骤,直接生成纯净声明。适合 monorepo 和注重 API 契约的团队;小库或遗留代码库可暂缓启用。


真实收益在 monorepo 场景最明显:包拆分不再受构建时间惩罚,声明生成规模与文件数线性相关而非依赖深度。

#开发者 #工具 #TypeScript #isolatedDeclarations #Monorepo #构建性能 #声明文件 #esbuild #swc
@DevToolboxHub
Post #1219 5
从提示驱动到目标驱动:Agentic软件开发入门

传统AI交互像对话:提问、回答、再提问。Agentic模式则是把完整目标交给AI,它自行规划、执行、评估、改进,直到任务完成。一位前端开发者的学习笔记,帮你快速理解这个新范式。

传统AI交互:开发者每次输入提示,AI回复,开发者判断下一步。
Agent循环:设定目标 → 规划 → 执行 → 评估 → 改进 → 重复,直至目标达成。
前端视角的应用:自动搭建项目结构、创建可复用组件、连接API、编写测试、重构重复代码、更新文档。
开发者仍需负责:理解需求、设计架构、审查代码、做技术决策、确保安全/可访问性/性能。


AI代理不会取代开发者,而是改变开发者时间分配,从写代码转向更高层次的思考。

#开发者 #工具 #Agentic #前端 #AI代理 #软件开发 #React
@DevToolboxHub
Post #1218 6
实时体育赔率API的五点教训

构建实时体育赔率平台时,原以为最大难题是爬取博彩网站,后来才发现爬虫只占10%工作量。真正的挑战是每秒收集、处理、归一化并交付数千条实时更新,同时保持低延迟和高可靠性。以下是开发中遇到的五个意外工程难题。

1. 爬虫易写,持续维护难。 博彩前端、端点或Cloudflare防护随时变化,字段更名常导致凌晨排查生产故障,需同时维护数十个爬虫并保障7x24运行。

2. 每家博彩商对“同一场比赛”定义不同。 利物浦vs阿森纳在不同平台可能表述为“Liverpool Arsenal”“Liverpool FC Arsenal FC”或含联赛前缀,部分用数字ID,部分无ID。匹配事件成为比预料大得多的数据工程问题。

3. 实时不只是“快”。 高峰期数秒内数千条赔率变动,基础设施必须快速检测、高效处理、避免重复、低延迟恢复,30-60秒刷新对许多实时应用远远不够。

4. 监控比代码更重要。 爬虫可能静默漏掉市场、WebSocket保持连接但停止更新,无监控时用户看到过期数据看似正常。如今花在改进监控与报警上的时间几乎与写新功能持平。

5. 开发者要的不是原始数据,而是一致性。 各博彩商结构、命名、格式不同导致集成痛苦。归一化后提供统一接口,开发者才能专注产品而非转换逻辑。


最终团队构建了PulseScore,一个聚合Bet365、DraftKings、FanDuel等十余家博彩商的实时赔率API,通过REST API和WebSocket提供统一JSON响应,覆盖足球、篮球、网球、冰球、棒球、赛马、橄榄球、排球、乒乓球、电竞等数十种运动,支持每秒更新的实时赔率和多平台赛前数据。

#开发者 #工具 #实时数据 #体育赔率 #API #PulseScore #数据聚合
@DevToolboxHub
Post #1217 6
为何考虑将作品集切换至 Astro.js

很多开发者默认用 React + Vite 搭建一切,但面对个人作品集这类以内容为主的静态网站,React 的 hydration 机制显得过重。浏览器需要下载、解析并执行整个 JavaScript 包,用户才能交互,而作品集多数时候只是展示信息。

Astro.js 采用不同哲学:默认不加载 JavaScript,只对真正需要交互的组件注入脚本。通过岛屿架构和客户端指令(client:load、client:visible),开发者可以精确控制哪些部分需要 hydration,其余全输出静态 HTML,显著减小 JS 体积、提升加载速度和 Core Web Vitals,同时对 SEO 友好,搜索引擎可直接读取页面内容。

典型 React 应用从 hydration 开始,整个应用变成一个大型 JS 应用。对于仪表盘、管理面板,这一 trade-off 合理;但对作品集,多数访客只想浏览你的项目、博客和 GitHub,全量 hydration 显得浪费。

Astro 页面构建后输出纯 HTML,访问者无需等待 JS 即可看到内容。例如:npm run build 直接生成静态文件。

岛屿架构中,只有标记了 client:load 或 client:visible 的组件(如主题切换、轮播)才会下载并执行 JS,其余保持静态。这减少了带宽消耗和浏览器工作量。

由于默认输出 HTML,搜索引擎能立即抓取页面标题、描述、标题、内容链接,无需等待 JS 执行完毕,在博客和作品集场景下是明显优势。

适用场景:开发者作品集、个人博客、文档网站、公司落地页、营销页面、电商首页等以内容为核心的网站。


这不是说 React 不好——对于交互密集型应用(表单、图表、实时更新),React 仍是优秀选择。但选工具要匹配问题本身。对于作品集和博客,Astro 的静态先行加上按需加载 JS 的策略更合理。

#开发者 #工具 #Astro #React #Vite #前端 #性能优化 #SEO #岛屿架构
@DevToolboxHub
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →