2作者: Kyome225 个月前原帖
嗨,HN!<p>我开发了 lobster.js,这是一个扩展的 Markdown 解析器,可以直接在浏览器中渲染——无需构建工具、框架或配置。<p>整个设置只需一个脚本标签:<p><pre><code> &lt;script type=&quot;module&quot;&gt; import { loadMarkdown } from &quot;https:&#x2F;&#x2F;hacknock.github.io&#x2F;lobsterjs&#x2F;lobster.js&quot;; loadMarkdown(&quot;.&#x2F;content.md&quot;, document.getElementById(&quot;content&quot;)); &lt;&#x2F;script&gt; </code></pre> 这对于希望在 GitHub Pages 网站上使用 Markdown 驱动内容而不引入 Jekyll 或 Hugo 的用户特别有用。<p>---<p>与 marked.js 或 markdown-it 的不同之处在于:<p>标准解析器将 Markdown 转换为 HTML——仅此而已。lobster.js 在 Markdown 语法中添加了布局原语:<p>- :::warp id 定义一个命名的内容块;[~id] 将其放置在一个静默的表格单元格内。这就是如何完全在 Markdown 中构建多列布局,而无需接触 HTML。 - :::details Title 渲染一个原生的 &lt;details&gt;&#x2F;&lt;summary&gt; 可折叠块。 - :::header &#x2F; :::footer 定义语义页面区域。 - 静默表格 (~ | ... |) 创建无边框的布局网格。 - 单元格合并:水平(\|)和垂直(\---)跨度。 - 图像大小调整:![alt](url =800x)。<p>---<p>以 CSS 为先的设计:<p>每个渲染的元素都有一个可预测的 lbs-* 类名(例如 lbs-heading-1,lbs-table-silent)。没有默认的样式表捆绑——你可以使用自己的 CSS,完全控制外观。<p>---<p>展示网站本身就是用 lobster.js 构建的。侧边栏是 nav.md,每个页面都是通过 ?page= 查询参数动态加载的独立 Markdown 文件——没有 JS 路由器,没有框架。<p>Markdown 是人类和大型语言模型(LLM)都能流利书写的唯一格式。如果你想要一个没有构建管道的结构化静态网站,lobster.js 让 Markdown 成为一个完整的网页——包括布局。<p>GitHub: <a href="https:&#x2F;&#x2F;github.com&#x2F;Hacknock&#x2F;lobsterjs" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Hacknock&#x2F;lobsterjs</a> 展示网站: <a href="https:&#x2F;&#x2F;hacknock.github.io&#x2F;lobsterjs-showcase&#x2F;" rel="nofollow">https:&#x2F;&#x2F;hacknock.github.io&#x2F;lobsterjs-showcase&#x2F;</a>
1作者: jbdamask5 个月前原帖
这是一个Claude技能,可以让我为特定的工作单元开启或关闭成本追踪。 我在互动的Claude代码会话中使用它。例如,如果我想在一个应用程序中添加一个Claude API功能,我通常会先在CC中进行快速开发。这个技能让我可以开始和停止追踪,从而了解API的成本。 例如: ``` /cost-tracking [执行操作] 停止追踪 ``` 然后我会得到一个漂亮的小表格,显示所使用模型的令牌和成本: Haiku成本报告(本次会话的工作): ``` ┌───────────────────┬───────────┬─────────┐ │ 类别 │ 令牌数 │ 成本 │ ├───────────────────┼───────────┼─────────┤ │ 基础输入 │ 182 │ $0.0002 │ ├───────────────────┼───────────┼─────────┤ │ 输出 │ 3,276 │ $0.0164 │ ├───────────────────┼───────────┼─────────┤ │ 缓存写入 (1小时) │ 25,619 │ $0.0512 │ ├───────────────────┼───────────┼─────────┤ │ 缓存读取 │ 1,585,531 │ $0.1586 │ ├───────────────────┼───────────┼─────────┤ │ 总计 │ │ $0.2264 │ └───────────────────┴───────────┴─────────┘ ```
2作者: sauercrowd5 个月前原帖
我一直是 fly.io 的忠实粉丝,因为它的开发体验非常好,但冷启动和定价一直是个持续的问题。即使是侧项目,如果加载时间达到 30 秒,那也是相当痛苦的,这会彻底破坏整个体验。 随着编码代理的不断进步,我开始构建更多的项目,我只想运行这些项目!GCI 就是为了解决这个问题而创建的。它只是一个命令行工具,通过 SSH 与目标机器进行交互,并依赖 Docker Swarm 来运行你的服务(在我看来,Docker Swarm 被低估了,即使在单节点情况下也能提供好处)。 它可以部署在任何可以通过 SSH 访问并运行 Docker 的机器上。GCI 填补了 Docker Swarm 和 fly.io 之间缺失的开发体验差距。它可以在本地构建镜像,将其传送到目标机器,获取日志,管理不同的服务器,等等。 可以在 GitHub 上查看,或者访问 <a href="https://gci.jonas.foo/" rel="nofollow">https://gci.jonas.foo/</a> 获取更详细的文档。
1作者: BladeRunningMan5 个月前原帖
我购买了Ulanzi TC001像素时钟,并使用AWTRIX——一个开源的ESP32固件对其进行了刷写。它不断崩溃和重启。我深入研究了代码,发现了内存泄漏、缺乏测试以及混乱的架构。于是我进行了分支,修复了数十个bug,添加了测试,并将其重构为模块。现在可以通过MQTT与Home Assistant进行自动发现和连接。我还构建了一个在线刷写工具,可以直接通过浏览器进行刷写。
2作者: digital-arcadia5 个月前原帖
加利福尼亚州的AB 1043法案将于2027年1月生效。如果您的应用程序服务于加利福尼亚州用户,您需要向苹果/谷歌请求操作系统级别的年龄信号,并将其视为用户年龄的“实际知识”。对于故意违反规定的行为,每个受影响的儿童将面临7500美元的罚款。 我们在意识到法律存在一个无人讨论的空白后开始构建A3([https://www.a3api.io](https://www.a3api.io)):浏览器没有操作系统的年龄信号。如果您有一个网页应用程序,法律会产生合规义务,但平台并未提供任何机制。而在原生应用中,您需要自己将苹果的声明年龄范围API和谷歌的Play年龄信号拼接在一起——这两者是不同的API,响应格式也不同,集成路径也各异。 行业的标准解决方案是身份识别上传和自拍扫描。但我们不想这样做。这些方法会降低转化率,增加个人身份信息的责任,并且与问题的严重性不成比例。因此,我们选择了不同的方向:被动行为信号融合。 这个想法是,儿童和成人与设备的互动方式在可测量的方面是不同的——运动控制、滚动模式、打字节奏、表单完成速度。我们的浏览器SDK(<5 KB)从标准DOM事件中收集这些信号,在设备上计算聚合分数,并仅发送匿名的比例和平均值。没有原始坐标,没有击键日志,文本内容永远不会离开浏览器。API在内存中处理所有内容并立即丢弃。 在原生应用中,我们将苹果/谷歌的操作系统信号规范化为单一响应。在网页上,行为信号成为主要评估依据。无论哪种方式,您都会获得相同的响应格式:一个判决、年龄区间、置信分数、证据标签,以及一个用于审计跟踪的HMAC-SHA256签名收据。 坦率地说,行为信号是概率性的,而非确定性的。一个自信的12岁儿童和一个匆忙的成人在短时间内可能看起来相似。我们通过五个信号类别(行为指标、输入复杂性、设备上下文、上下文信号、账户时长)来缓解这一问题,这些类别经过加权和交叉验证,当类别数量较少时,我们会施加覆盖惩罚。但这只是年龄估算,而非身份验证——它是为法律实际要求的“商业合理”标准设计的,而不是身份证检查所暗示的虚假确定性。 我们的技术栈是基于AWS Lambda的NestJS,客户端SDK支持React/Vue/原生JS、SwiftUI和Jetpack Compose。如果您想试用,有一个免费套餐(每月100次检查),以及一个游乐场,地址是[https://www.a3api.io/playground](https://www.a3api.io/playground)。 如果您维护一个开源项目,我们有一个程序可以为您提供专业级别的访问权限(每月5万次检查),唯一的要求是在您的年龄验证用户界面或自述文件中标注“由A3提供支持”。详细信息请见[https://www.a3api.io/open-source](https://www.a3api.io/open-source)。 文档:[https://www.a3api.io/docs](https://www.a3api.io/docs) 欢迎就信号融合方法、法律细节或我们认为的不足之处提出问题。
3作者: gepheum5 个月前原帖
我为什么要构建 Skir: <a href="https://medium.com/@gepheum/i-spent-15-years-with-protobuf-then-i-built-skir-9cf61cc65631" rel="nofollow">https://medium.com/@gepheum/i-spent-15-years-with-protobuf-then-i-built-skir-9cf61cc65631</a><p>快速开始: npx skir init<p>所有配置都在一个 YML 文件中。<p>网站: <a href="https://skir.build" rel="nofollow">https://skir.build</a><p>GitHub: <a href="https://github.com/gepheum/skir" rel="nofollow">https://github.com/gepheum/skir</a><p>非常希望能收到反馈,特别是来自使用混合语言栈的团队。