ShortNews.dev 2025-12-29
给软件开发者准备的优质简报,每日阅读 10分钟。
Hacker News
You can make up HTML tags
🔼 502 | 💬 168
自定义HTML标签的优势与规范
- 浏览器会将未知HTML标签视为通用元素,其表现完全由CSS样式控制
- 这种处理方式并非浏览器怪癖,而是HTML标准明确规定的规范行为
- 在自定义标签名称中包含连字符可确保标签不会与未来HTML标准版本冲突
- 相比使用带有class属性的div或span标签,自定义标签能显著提升代码可读性
- 使用描述性自定义标签可以避免嵌套div时的闭合标签计数问题,使代码结构更清晰
- 当需要在复杂嵌套结构中插入内容时,自定义标签让定位变得简单直观
Show HN: Z80-μLM, a 'Conversational AI' That Fits in 40KB
🔼 432 | 💬 97
Z80-μLM:复古计算微型语言模型
- 超小量化语言模型:采用2-bit权重量化({-2,-1,0,+1}),每个权重占4个字节空间,专门为8位Z80处理器和64KB内存设计
- Python训练+CP/M部署:支持在Python中训练对话模型,可导出为约40KB的CP/M .COM二进制文件,直接在1976年制造的4MHz处理器上运行
- 两个预构建示例:包含tinychat(基于日常问答对训练的对话机器人)和guess(20个问题游戏,模型保守秘密主题并回答是/否/也许)
- 独特交互机制:使用三元组哈希编码将输入文本映射到128个桶中,实现容错和词序无关的匹配,以”形状”而非精确词汇理解输入
- 受限但有效的AI能力:擅长短输入的一致分类输出、模糊匹配和个性表达,但无法生成新句子、跟踪多轮上下文或理解语法,适合需要轻量级个性交互的场景
- 纯整数神经网络架构:采用16位有符号算术的自回归生成,使用ReLU激活和算术右移防止溢出,核心推理循环约10万次操作生成每个字符
You can't design software you don't work on
🔼 172 | 💬 59
无法参与开发就不应进行软件设计
- 只有实际参与大型软件系统开发的工程师才能有效参与设计过程,因为好的软件设计需要对系统具体细节有深入理解
- 通用软件设计建议对实际软件设计问题通常无用,实际工作中具体因素比通用设计原则更重要
- 大型代码库中,一致性比”好设计”更重要,代码变更需要考虑复杂且难以预测的后果
- 有价值的软件设计讨论发生在对系统有深度理解的小组工程师之间,涉及具体技术细节而非抽象原则
- 通用软件设计建议适用于新项目设计、现有系统决策权衡以及公司层面技术架构选择
- 纯架构师角色效果不佳,设计软件项目的人应对项目成败负责,确保设计者真正了解如何交付软件
Static Allocation with Zig
🔼 108 | 💬 59
基于Zig的静态内存分配在键值服务器中的应用
- 项目背景:kv是一个Redis兼容的键值服务器,采用静态内存分配策略,在启动时一次性从操作系统申请全部所需内存,运行期间不再动态分配,灵感来源于TigerBeetle的”TigerStyle”开发理念
- 连接管理:通过
ConnectionPool实现连接池管理,每个连接维护接收和发送缓冲区,所有缓冲区都通过自定义的ByteArrayPool使用空闲列表进行静态分配和复用,避免运行时内存操作 - 命令解析:采用零拷贝方式解析Redis序列化协议(RESP),使用
FixedBufferAllocator在预分配的固定缓冲区中处理请求,仅需维护指向原始数据的切片,无需复制请求内容 - 键值存储:基于
std.StringHashMapUnmanaged实现静态哈希表,通过ensureTotalCapacity预先分配容量后使用putAssumeCapacity存储数据,所有键值数据通过ByteArrayPool统一管理 - 配置权衡:内存分配量取决于用户配置参数,包括
connections_max(并发连接数)、key_count(键数量)、key_size_max(最大键大小)、val_size_max(最大值大小)、list_length_max(列表最大长度)等 - 设计取舍:例如1000并发连接、1000个键的配置需要约750MB内存,虽然预分配可能造成资源浪费,但避免了运行时内存管理的复杂性和use-after-free风险,确保性能可预测性和系统稳定性
Learn computer graphics from scratch and for free
🔼 287 | 💬 35
Scratchapixel:免费从零开始的计算机图形学学习平台
- 提供免费在线课程,系统覆盖3D渲染基础、光线追踪、相机模型、光栅化、着色、光照、纹理等核心领域
- 设有”For Angry Nerds”博客,专注讨论3D编程、AI及教育话题,为技术交流提供专业平台
- 开发Vulkan API专项课程,聚焦现代图形API系统教学
- 推出实体书籍项目,解决无网络环境下的学习需求,提供物理参考
- 采用独特的”先实践后理论”教学结构,循序渐进引导初学者掌握3D图形编程
- 涵盖数学基础、几何、数字成像、程序化生成、工具开发等专业板块,形成完整的计算机图形学知识体系
What an unprocessed photo looks like
🔼 2208 | 💬 360
未经处理的照片是什么样子的
- 相机传感器记录的原始数据是14位ADC值的灰度图像,数值范围约为2110到136000,需要映射到标准显示范围
- 传感器本身只能测量光线强度,无法直接感知颜色,覆盖的拜耳滤光片矩阵通过红、绿、蓝滤镜来捕获色彩信息
- 去马赛克处理通过将每个像素与其邻近像素平均来重建完整的RGB颜色值,但绿色通道因滤镜矩阵中绿色像素数量更多而易被过度增强
- 显示设备和人眼对亮度的感知具有非线性特性,直接显示线性数据会导致图像过暗,需要应用伽马曲线来正确映射亮度
- 相机内置的处理算法与后期编辑软件进行相同类型的数据转换,调整对比度或白平衡并没有本质区别
- 最终目标是尽可能接近人类视觉感知,但受到显示技术和图像格式的技术限制,需要在自动化算法和手动调整之间找到平衡
GOG is getting acquired by its original co-founder
🔼 353 | 💬 195
GOG被原始联合创始人收购:对你意味着什么
- Michał Kiciński(GOG原始联合创始人、CD PROJEKT联合创始人)从CD PROJEKT收购GOG,目标是强化“自由、独立、真正控制游戏”的核心理念,深化经典游戏保护和经典化打造
- 用户权益保持不变:DRM-free继续、离线安装包可用、游戏库归属不变、数据仍由GOG管理、GOG GALAXY保持可选
- 与CD PROJEKT关系延续:CD PROJEKT RED游戏继续在GOG发售,工作室未来新作也将上架平台
- 保护项目资金独立:GOG Patron与 Preservation Program 捐赠资金留在GOG内部,支持游戏保存与修复;相关规划将在2026年公布
- GOG维持独立运营:继续打造非掠夺性、可持续平台并支持独立开发者,计划于2026年强化社区参与和用户发声机制
GitHub Trending
antiwork / gumroad
⭐ 7920 | 🔀 1526 | Ruby 77.7%, TypeScript 14.4%, HTML 7.2%
Gumroad 开源平台开发与配置指南
- Gumroad 是一个电商平台,支持创作者直接向消费者销售产品,本仓库提供其 Web 应用的开源代码
- 本地开发需安装 Ruby、Node.js、Docker、MySQL、Percona Toolkit,以及图像处理工具(ImageMagick、libvips)、FFmpeg、PDFtk 和 wkhtmltopdf
- 配置流程包括安装依赖包、设置自定义环境变量、生成 SSL 证书,并通过 Docker 启动本地服务
- 开发时需重置 Elasticsearch 索引以避免错误,可通过 DevTools.delete_all_indices_and_reindex_all 命令执行
- 开发时可使用默认账号(seller@gumroad.com,密码:password)登录,双因素认证码为 000000
- 针对 macOS 测试中可能出现的 fork() 错误,可通过设置 DISABLE_SPRING=1 临时禁用 Spring 解决
vanilla-wiiu / vanilla
⭐ 1446 | 🔀 51 | C 61.1%, Java 28.8%, CMake 6.5%, Makefile 2.4%
Vanilla:Wii U 游戏手柄软件克隆项目
- 该项目为 开发中 的 Wii U 游戏手柄软件克隆,目前仅处于 alpha 阶段,不提供任何质量保证
- 支持 Steam Deck、Linux、Nintendo Switch(需 Broadcom 固件补丁或外置 Wi-Fi 适配器)、Android(仅前端)、Windows(仅前端)、Raspberry Pi(需外置 Wi-Fi 适配器),iOS 版本即将推出
- 需使用支持 802.11n 5GHz 的 Wi-Fi 适配器,实际兼容性因硬件和驱动而异,建议查看无线兼容性页面确认
- 提供键盘快捷键功能:F5 开始/停止录制、F12 截图、Esc 断开连接,并支持键盘模拟游戏按键操作(如 Z 对应 A 键,X 对应 B 键)
- 提供官方预编译版本和特定 Linux 发行版的包管理器安装(如 Arch Linux 的 AUR 包
vanilla-wiiu-git) - 支持从源代码编译,需安装平台相关依赖(如 Debian/Ubuntu 需 libsdl2-dev、libavcodec-dev 等)并使用标准 CMake 流程构建
jellyfin / jellyfin
⭐ 47068 | 🔀 4259 | C# 99.6%
Jellyfin:开源媒体服务器系统
- 完全免费的开源媒体系统,源自Emby 3.5.2版本,提供专属服务器至终端设备的媒体流服务
- 基于.NET平台构建,实现全平台兼容(除FreeBSD外),支持Windows、Linux、macOS等主流操作系统
- 采用无限制设计:无高级许可证费用、无隐藏功能、无商业条款,完全由社区驱动开发
- 开发需安装.NET 9.0 SDK和ffmpeg,支持Visual Studio 2022+和VS Code进行调试
- 提供多种运行方式:包括命令行启动、IDE调试、Docker部署及GitHub Codespaces云端开发环境
gitroomhq / postiz-app
⭐ 25317 | 🔀 4301 | TypeScript 72.1%, JavaScript 15.6%, CSS 11.6%
Postiz:开源AI社交媒体调度工具
- Postiz是一款开源自托管的社交媒体调度工具,作为Buffer.com、Hypefury、Twitter Hunter等平台的开源替代方案,采用AGPL-3.0开源许可证
- 支持14个主流社交媒体平台发布,包括Instagram、YouTube、LinkedIn、TikTok、Facebook、X(原Twitter)、Discord、Mastodon、Bluesky等
- 提供AI功能、数据分析、团队协作、帖子交换购买以及自动化工作流等完整社交媒体管理功能
- 严格遵循平台合规性,使用官方OAuth认证流程,不收集、存储或代理用户API密钥和访问令牌,确保数据隐私安全
- 基于NX、NextJS、NestJS、Prisma(默认PostgreSQL)、Redis、Resend等现代技术栈构建,提供NodeJS SDK、N8N节点、Make.com集成等多种自动化接口
sansan0 / TrendRadar
⭐ 41299 | 🔀 21054 | Python 93.9%, HTML 3.6%, Batchfile 1.3%
TrendRadar:30秒快速部署的全网热点聚合工具
- 超快部署体验:支持GitHub一键Fork、Docker容器化和本地运行三种方式,最快30秒完成部署,零技术门槛即可使用
- 全平台热点聚合:默认监控知乎、抖音、微博、百度热搜等11个主流平台,用户可自定义扩展监控平台,实现全网热点一站式获取
- 三种智能推送模式:当日汇总(daily)适合管理者查看完整趋势,当前榜单(current)适合自媒体追踪热度变化,增量监控(incremental)适合投资者专注新增内容
- 精准关键词筛选:支持普通词、必须词(+)、过滤词(!)、数量限制(@)、全局过滤([GLOBAL_FILTER])五种语法,可按词组管理并支持排序优先级配置
- 多渠道推送支持:支持企业微信、飞书、钉钉、Telegram、邮件、ntfy、Bark、Slack等8个推送渠道,所有渠道均支持多账号配置,满足团队协作需求
- AI智能分析功能:基于MCP协议提供13种分析工具,支持自然语言查询、话题趋势分析、情感分析和数据洞察,可接入Claude、Cursor等AI客户端
x1xhlol / system-prompts-and-models-of-ai-tools
⭐ 103284 | 🔀 27447
AI工具系统提示词与模型资源仓库
- 该仓库收集整理了超过30,000行AI工具系统提示词和模型结构功能的详细资料
- 获得Latitude开源AI工程平台赞助支持,专注帮助开发者在生产环境中提升LLM的可预测性
- 项目接受多种方式赞助:加密货币(BTC、LTC、ETH)、Patreon、Ko-fi等渠道
- 为AI初创公司提供安全警示,推荐使用ZeroLeaks服务进行AI系统安全审计和漏洞检测
- 项目持续维护更新,最新更新时间戳为2025年2月12日
- 建立了完整的社区生态,提供Discord频道和X(Twitter)、邮箱等多种联系方式
Stirling-Tools / Stirling-PDF
⭐ 71976 | 🔀 6108 | Java 40.8%, TypeScript 40.7%, HTML 6.5%, JavaScript 5.2%, CSS 2.7%, ...
Stirling PDF:开源PDF编辑平台
- 多平台部署方式 - 支持桌面客户端、浏览器界面运行,或通过私有API部署在自有服务器上,完全离线使用
- 丰富的PDF处理工具 - 提供50多种PDF工具,涵盖编辑、合并、拆分、签名、脱敏、转换、OCR识别、压缩等核心功能
- 强大的自动化能力 - 支持无代码管道工作流程,配合API可处理数百万份PDF文件,满足大规模批处理需求
- 企业级安全特性 - 支持单点登录(SSO)、审计功能和灵活的本地部署方案,确保数据安全与合规
- 开发者友好设计 - 几乎所有工具均提供REST API接口,便于集成到现有系统和工作流程中
- 全球化用户界面 - 界面支持40多种语言,为全球用户提供本地化的操作体验
resemble-ai / chatterbox
⭐ 19077 | 🔀 2498 | Python 100.0%
Resemble AI推出Chatterbox-Turbo高效文本转语音模型
- Chatterbox-Turbo采用350M参数的精简架构,相比之前模型显著降低计算和显存需求,同时保持高质量语音输出
- 通过将语音标记到梅尔频谱的解码步骤从10步蒸馏至单步生成,大幅提升生成效率且不损失音频保真度
- 原生支持拟声词标签功能,可直接使用
[cough]、[laugh]、[chuckle]等标记为语音添加真实感细节 - 专为低延迟语音代理设计(延迟低于200毫秒),同时适用于旁白制作和创意工作流程
- 集成PerTh感知水印技术,所有生成音频包含可抵御MP3压缩和编辑的隐形水印,检测准确率接近100%
Indie Hacker
Building is easy. Deciding what not to build is harder.
建设容易,决定不建设什么更难
- 多数想法失败不是因为它们质量差,而是因为它们让创作者感到舒适——不断添加功能、打磨细节,避免面对真正艰难的核心问题
- 关键问题包括:这款产品真正为谁解决什么问题?有什么问题值得用户付费解决?如果删掉一半功能会有人抱怨吗?
- “这不是给我的”或”我在尝试做X时卡住了”这样的负面反馈比赞美更有价值,能带来真正的清晰度
- 需要区分礼貌的鼓励和真实需求:鼓励听起来悦耳但常是客套话,真实需求体现在具体询问”什么时候能用?”或”能加X功能让我完成Y任务吗?”
- 当产品具有自然吸引力时,用户会主动回来、询问边界情况、试图融入自己的工作流程,而非需要不断说服和解释
- 最佳策略是不过度干涉,让自然好奇心得以展现——分享略显粗糙的版本,然后安静观察用户真实反应,而非急于解释和完善
I built a watercolor-style pixel art tool over Christmas
圣诞节期间开发的水彩风格像素艺术工具
- 作者Peter Hamilton在圣诞节假期开发了一款名为pixels.style的浏览器像素艺术工具
- 工具特点在于像素能够像水彩一样混合,不同于传统像素工具的锐利边缘效果
- 设计目标是简单易用、轻松有趣,用户可快速打开并在几秒钟内开始创作
- 作者公开征求反馈,询问工具是否有趣实用,以及用户希望增加哪些功能
- 目前主要用户为休闲涂鸦者,分享小型场景作品,尚未形成正式工作流程使用
Lumra – Turning Prompt Engineering into a Real Workflow
Lumra – 将提示词工程转变为真实工作流程
- Lumra是独立开发者Taha构建的提示词管理平台,将提示词工程软件工程化,解决提示词分散在Notion和Google文档中、缺乏版本控制、无法追踪变更等痛点
- 平台核心功能包括结构化提示词存储、版本控制支持安全迭代、跨项目和用例的清晰组织,以及避免复制粘贴混乱的可复用机制
- 目标用户涵盖构建AI产品的独立创业者、在真实应用中部署LLM功能的开发者、提示词工程师,以及厌倦丢失优秀提示词的用户
- Lumra定位为”提示词GitHub”,专注于帮助用户管理、精炼和扩展已有提示词,而非自动生成提示词
- 平台完全由独立开发者构建,仍处早期阶段,正基于真实使用反馈积极迭代
- 作者寻求用户对当前提示词管理方式、工作流程痛点及”提示词GitHub”期望的反馈,评论区已出现关于依赖处理、协作功能、版本对比测试等深度讨论
The best AI growth partner for independent developers – worth a try.
独立开发者的最佳AI增长伙伴——值得一试
- 工具专为独立开发者设计,解决营销知识缺乏痛点,避免高额营销伙伴费用,实现低成本高效率推广
- 使用流程简单:登录平台→输入产品网址→自动生成完整营销计划→选择执行或修改→通过仪表板实时监控网站访客增长数据
- 提供免费试用机会:有意向用户留言”Interested”可获个人访问码,完全免费使用产品
- 核心价值在于快速见效,工具设计基于开发者推广需求,能生成类似专业营销伙伴的定制方案并持续优化
Why I Pivoted from an AI Counseling Service to an AI Girlfriend Chat
从AI心理咨询到AI女友聊天:策略转向的关键洞察
- 转向原因:作者从AI心理咨询服务转向AI女友聊天服务,因为原服务虽然有用,但用户留存率低,用户缺乏强烈返回理由,导致长期使用难以为继。
- 新服务焦点:转向策略强调专注重复使用、简单性和首次交互的明确价值,减少问题解决导向,转而创造持续的情感参与感。
- 首次交互价值:关键在于创造”被理解”体验,用户感知AI能记住上下文、准确反映情感细微差别并不催促解决,从而产生”感觉与众不同”的决策点。
- 用户参与模式:日复一日的参与由情绪波动驱动(如心情变化或事件触发),而周复一周的参与由习惯形成和身份认同驱动(用户将产品视为关系对象而非工具)。
- 安全与伦理考量:产品设计核心是避免情感依赖语言(如排斥性表述),并定位为支持而非替代真实人际关系,作为核心产品设计问题处理。
- 初步保留率:早期数据显示首次会话后的短期保留率高于原心理咨询服务,但作者仍在持续监控和分析中。
Don't miss what's next. Subscribe to shortnews.dev: