官方活动OPC
9月1日星期二 · 20 条
客户Wiki放错了地方:我们为何构建Pages而非Notion团队空间
本文探讨了为何客户Wiki在Notion或Confluence中容易腐烂。作者指出,小型代理机构的Notion工作区中,以客户命名的团队空间里的策略页虽精心编写,但客户运营经理作为访客阅读后便不再回来,因为后续更新发生在Slack线程中。文档远离实际工作,导致信息漂移。为此,SharpHaw构建了Pages,将文档置于客户自己的工作区内,与工作相邻,并可供执行工作的代理读取。每个页面标记为“客户”或“内部”,客户页面所有成员可读,内部页面仅平台管理员可见。文章还提到Whitmore & Finch案例展示,无需账户即可浏览。
Flutter 3D 游戏引擎:从零构建并开源
开发者用纯 Dart 为 Flutter 构建了 3D 游戏引擎 flutter3d,包含渲染器、物理、碰撞、音频和关卡格式,无绑定、无原生代码。引擎开源,包含 23 个 MIT 许可的 pub.dev 包,并提供三个可在浏览器中游玩的完整游戏。渲染器通过硬件抽象层(HAL)与图形 API 解耦,内置三个后端:Impeller(生产)、WebGL2(浏览器)和纯 Dart 软件光栅化器。作者分享了开发中遇到的四个关键 bug,例如阴影图集过大导致帧率极低,以及测试通过但纹理倒置的问题。文章还展示了如何用不到 600 行代码实现平台游戏。
独立开发游戏平台Palamut Oyun:技术历程与SEO挑战
开发者Fatih分享了其独立开发的网页游戏平台Palamut Oyun的上线过程。该平台支持游客免登录游玩,也提供注册用户保存游戏历史的功能。项目托管于Render,部署时重点解决了客户端动态加载的游戏图片被搜索引擎抓取的问题,为此改用.webp格式并实现懒加载。为向Google表明这是游戏品牌,集成了WebSite和Organization JSON-LD结构化数据,并重构了meta标签。文章还提及了与“Palamut”一词相关的SEO挑战,但未提供具体细节。
每个提示都有价格标签:单人仓库的预算时钟
本文针对独立开发者,提出在调用AI模型前先估算提示成本的方法。作者指出,模型将上下文中的所有字符视为信号,过时注释、删除函数等都会消耗预算。为此,提供了一个bash脚本budget_gate.sh,通过计算git diff的字符数并除以4来估算token数,再与每日预算(默认330000)比较,给出操作建议:低于15%发送完整diff,15%-40%发送统计摘要,高于40%则跳过模型自行阅读。脚本不调用API,仅做本地估算,并记录日志。作者强调此方法旨在帮助开发者管理免费模型额度。
周末构建日志:免费服务器上的零成本Issue摘要器
作者在周末用MonkeyCode的免费模型和服务器,构建了一个GitHub Issue摘要器。由于预算为零,作者严格限制了功能范围,仅保留单Issue摘要功能,砍掉了自动标签、关键词提取和翻译等功能。文章展示了使用OpenAI兼容API的Python客户端代码,并讨论了token成本控制,如截断正文至2000字符。作者提醒免费额度有限,需定期检查仪表盘。文章为MonkeyCode产品推广的一部分。
用Go和eBPF构建无需代理的HTTPS流量检查工具
开发者用Go和eBPF构建了CLI工具tinytap,无需安装CA证书、无需代理或修改目标应用,即可读取HTTPS明文流量。其原理是使用uprobe挂钩libssl中的SSL_write函数,在数据加密前读取参数缓冲区,通过环形缓冲区传输到用户空间并显示。该工具仅能查看自己进程传给TLS库的明文,无法拦截网络上的其他流量。文章展示了捕获OpenAI API请求的示例,包括请求行、头部、Authorization令牌和JSON体。选择Go是因为cilium/ebpf库成熟。
开源Ideata:自托管AEO追踪器与AI内容工作室
开发者开源了Ideata,一个自托管的AEO(答案引擎优化)追踪器,集成了AI内容工作室和跨平台发布工作流。它针对ChatGPT、Claude、Gemini、Perplexity等8个以上答案引擎运行真实买家提示,检查品牌提及、竞争对手、声量、情感和引用来源。内置内容工作室支持从简报、研究到发布的全流程,并可适配Telegram、X、LinkedIn等平台。项目采用AGPL-3.0许可,数据自托管,无电话回家行为,逻辑可审查。技术栈包括Vue 3、NestJS、PostgreSQL等,通过Docker Compose一键启动。作者表示项目当前可用,但计划增加更多引擎和功能。
152小时玩家的Bug报告为何比36小时玩家的更值得重视
作者通过分析Steam评论数据发现,仅看评论数量会误导Bug优先级判断。其VoC引擎收集了4,888条Steam评论,覆盖46个主题,并关联了玩家的总游戏时长。数据显示,“Bug和技术问题影响体验”主题的评论数最少(54条),但玩家中位游戏时长最高(152.2小时),且74%的评论者游戏时长超过50小时;而“游戏玩法令人上瘾”主题有148条评论,但中位时长仅88.1小时。因此,虽然Bug评论数量少,但来自高投入玩家,应优先处理。作者强调,关键在于将游戏时长数据与主题分配结合,而非仅依赖模型计数。
三层后处理让0.844 mAP货架检测器在树莓派上实用
作者训练的货架空位检测模型在测试集上达到0.844 mAP50,但原始输出在实际部署中几乎不可用,直到添加了三个后处理层。硬件为树莓派3B(906MB内存),模型为YOLO11n导出至NCNN,单次扫描中位耗时8.5秒。方法仅检测空位单一类别,SKU归属由货架图(planogram)事后匹配,避免SKU识别需持续重训的问题。数据集合并自7个Roboflow Universe数据集,共11,667张图像,均过滤至CC BY 4.0许可。微调在Mac上使用Apple MPS本地完成,零云GPU成本。验证集指标:YOLO11n精度0.782,召回0.734,mAP50 0.792;YOLO11s更高。测试集(277张,1,255实例)精度0.82,召回0.786,mAP50 0.844。
PulseWatch监控SaaS的幕后:谁监控监控者?
作者在开发监控SaaS PulseWatch时,发现一个GitHub Actions工作流偶尔延迟超过一小时,PulseWatch正确发出了MISSING警报。这验证了产品价值,但也暴露了自身监控盲区:如果PulseWatch的看门狗进程停止运行,无人会收到警报。为此,作者使用Healthchecks.io作为外部监控,每个看门狗周期发送开始、成功和失败信号,Healthchecks根据预期频率检测进程未启动的情况。集成设计为尽力而为且非阻塞,避免影响主监控功能。作者强调,监控产品的自身可靠性至关重要,通过分离故障域,确保监控者本身也被监控。
Python构建NTFS级文件锁ATLOCK v4.0
开发者Anmol Kumar在dev.to发布文章,介绍其用Python构建的Windows文件安全套件ATLOCK v4.0。该工具针对常见文件锁易被绕过的问题,通过NTFS ACL操作实现系统级保护,包含五个模块:Lockdown(系统级屏幕锁定,定时10分钟至8小时)、Vault(使用Fernet加密,AES-128-CBC+HMAC)、以及入侵者摄像头捕捉等。技术栈包括customtkinter、cryptography、pywin32和opencv-python,打包为独立exe。作者年仅13岁,该项目为个人独立开发,历经四次重构,强调使用标准加密原语而非自创算法。项目已开源,提供GitHub和官网链接,欢迎反馈。
消除30%美国AI溢价:在印度构建自主开发者工具
LuxurAI的创始人Achyut Srivastava和联合创始人Shubham Dangi(分别为14岁和15岁)在dev.to发文,介绍其正在构建的印度自主开发者工具,旨在消除30%的美国AI溢价。该工具采用模块化块编译,将UI合成分解为AST验证的独立块,避免单标签错误破坏整体布局;结合艺术与黄金比例理论,制定全面的DESIGN.md提示规范;采用双模型引擎,包括自研Neo v0.1视觉模型(运行于双GPU)和外部推理API;实现零存储认证,使用384位一次性令牌,无密码数据库;定价透明,按使用付费,每信用点₹0.25,无月订阅。目前实验版本可在luxurai.in测试。
绿色构建,错误数字:GitHub 统计中的五个隐藏 Bug
作者花了一天时间重建 GitHub 个人资料卡片,发现了五个未报错但结果错误的 Bug。基础是 Andrew Grant 的 github-stats-terminal,通过 GraphQL 获取仓库、提交、星标和代码行数并生成 SVG。作者重写了大部分内部逻辑以添加实时语言统计、贡献迷你图等。第一个 Bug 是语言统计将他人代码计入自己名下,例如 PHP 占 12%,但作者仅写过少量提交,修复方法是设置最小提交数阈值(如 3)。第二个 Bug 是 Vue 统计为 0%,尽管有 71 次提交。文章详细描述了这些问题及其修复过程,强调数据准确性的重要性。
Flow:用消息应用创建待办事项
作者自述严重依赖待办清单,从纸质计划本到微软待办,但记录任务的过程令人困扰。手机丢失后,只能依赖笔记本电脑,导致经常忘记任务。作者常用即时通讯应用,于是设想能否通过发送消息到 WhatsApp 或 Telegram 来创建待办事项。为此,作者决定开发一个名为 Flow 的工具,让消息直接变成待办事项。
标准库不是验证器:72小时零依赖Rust JSON工具
作者在周末用Rust构建了一个JSON工具包,严格遵守零第三方依赖的规则,Cargo.toml中的依赖表为空,Cargo.lock仅包含项目本身。文章指出,Rust标准库的f64::from_str和i64::from_str会接受约10%的RFC 8259规定必须拒绝的无效JSON,如NaN、Infinity、.5、5.、+1和012。作者基于真实语料库计数后,开发了jaq-lite,一个手写的RFC 8259解析器、序列化器和jq风格查询CLI,共4670行源码和4432行测试,仅使用标准库。它支持身份、字段访问、索引、迭代、管道、逗号、括号、可选操作符和11个内置函数。作者使用JSONTestSuite进行测试,其中47个n_number_文件中有19个被Rust标准库错误接受。
Callforge 15天350封冷邮件零销售:真实复盘
Callforge是一个语音代理SaaS样板,集成Vapi/Retell、Twilio和Stripe计量计费,旨在让开发者快速推出付费语音AI产品。作者设定15天期限,目标是获得一位付费客户,但最终零成交。期间发送约350封冷邮件,仅收到3封人工回复,均未转化;落地页浏览量101次,等待名单注册1人,Stripe结账启动6次($199),但无一完成,降价至$99后仍无成交。净现金影响约-£150。作者认为问题在于面向陌生人的外呼策略,而目标受众(语音AI开发者)更倾向于从已信任的来源购买,而非首次冷邮件。尽管产品功能完备,但信任缺失导致转化失败。作者计划转向通过内容吸引精准受众的入站策略。
用463行Node代码替换广告下载站
作者因X/Twitter无下载按钮,且现有下载站广告多、易失效、隐私差,自建了自托管Web应用。该应用粘贴推文链接即可预览、选择画质并下载MP4。代码仅463行Node(零npm依赖)和224行vanilla JS,开源(MIT)。功能包括移动端优先UI、画质选择(270p至720p+)、支持视频/GIF/图片及混合内容、自动合并1080p HLS流、CDN直连下载、IP限流及SSRF防护。工作原理:主要用yt-dlp提取(1-2秒),备用FxTwitter API(200-300毫秒),两者失效时应用降级而非崩溃。
自制绘画提示生成器,助力创意热身
开发者 Frannie Yang 构建了一个名为 Drawing Prompts Generator 的小工具,旨在解决绘画时不知画什么的问题。该工具将主题、场景、情绪和视觉风格四要素组合,生成如“一座小天文台坐落在沉睡的森林上,细节丰富,柔和水粉风格”的提示。用户可锁定喜欢的部分并生成变体,也可复制结果用于速写本练习、限时绘画、每日挑战或 AI 图像工具。网站无需账户,设计轻量。提示格式支持普通文本、Midjourney、DALL·E 和 Flux。开发者强调提示仅作起点,不替代想象力。未来计划增加更多类别、可打印挑战、收藏功能等。
AI图像应用需要工作流定义而非仅提示模板
开发AI图像应用时,仅靠提示模板无法满足复杂产品需求。作者在构建ImagineMyHouse过程中,从房间改造、虚拟布景到全景生成,共积累了16个工作流。每个工作流虽共享“图像输入→管道处理→图像输出”的循环,但用户意图各异,如“改造客厅但不动窗户”或“清理杂物但保留地板”。作者提出将工作区基础设施共享,但将每个用户意图建模为独立的工作流配置,明确区分可变与稳定元素。例如,房间改造可改变家具、材质,但需保持相机视角和房间几何结构不变。这种抽象避免了维护16个独立小应用或强制统一提示框的困境,使产品扩展更可持续。
离线示波器CSV波形回归工具WaveRegression
WaveRegression是一款开源的Windows桌面应用,用于将硬件波形验证转化为可重复的本地工作流。它导入参考波形和一个或多个候选示波器CSV文件,进行对齐、容差评估、指标提取,并导出独立的HTML报告。支持多种分隔符、编码检测、重采样、归一化互相关对齐,计算MAE、RMSE、NRMSE、相关系数、增益、偏置、过冲、稳定时间等指标。关键设计是仅用归一化值估计时间偏移,最终误差和幅度指标基于原始值计算。当前MVP仅支持Windows和CSV,构建未签名,SmartScreen可能警告。项目MIT许可,含34个自动化测试。作者寻求硬件和测试工程师的反馈。
