14 分•作者: starfallg•3 个月前
在过去的几个月里,我们的团队越来越多地使用像 Claude Code 这样的编码辅助工具,利用 Web 前端技术来构建幻灯片。但一个普遍的抱怨是,即使是小的编辑,我们也需要手动或通过辅助工具来修改代码。 为了避免这种循环,我创建了 Bento,一个单一的 HTML 文件,包含了制作幻灯片所需的一切,包括动画和共享编辑。它无需安装或云登录,所有功能均可离线使用。默认的演示文稿大小约为 560 KB,一旦下载,无需任何额外加载。 在浏览器中打开它,然后你就可以进行编辑、演示、打印和保存。通过电子邮件或 Airdrop 分享,接收者只需一个浏览器即可进行编辑、演示,甚至实时协作编辑幻灯片。将现有的 pptx 文件拖放到 Claude 或 ChatGPT 中,即可将其转换为 Bento 幻灯片。整个过程不涉及云端,仅使用一个加密的盲转发器来实现共享编辑。转发器无法访问任何数据。 请访问 <a href="https://bento.page/slides/" rel="nofollow">https://bento.page/slides/</a> 了解更多信息,该链接将直接带您进入编辑器。 请访问 <a href="https://bento.page/guestbook/" rel="nofollow">https://bento.page/guestbook/</a> 尝试实时访客留言簿,体验共享编辑/协作。 网站上还有一个画廊,展示了一些示例演示文稿 - <a href="https://bento.page/" rel="nofollow">https://bento.page/</a>。 所有代码均采用 MIT 许可证,您可以在此处找到 - <a href="https://github.com/nyblnet/bento" rel="nofollow">https://github.com/nyblnet/bento</a>。我使用了 reveal.js 以及其他几个库(包括一些自研的库),以及 Claude Code。
4 分•作者: terminalbraid•3 个月前
我吃过亏才知道,如果你使用亚马逊账户登录,IMDB 现在会自动为你创建账户,而且我的姓名和电子邮件等详细信息似乎在未经我同意的情况下被共享了。还有其他人也报告了同样的问题。
12 分•作者: iluzone•3 个月前
Trifle 是一个开源的时间序列分析库,它聚合嵌套计数器而不是存储原始事件。所有这些都存储在你已有的数据库中。经过 10 年两次重构,它现在在我日常工作中每天跟踪约 10 亿个事件。 它始于 2015 年,当时是我自己的 Rails APM。我接入了 ActiveSupport::Notifications,吸引了一些小型用户,以及一个较大的用户,他的抓取应用搞垮了一切。这激发了核心想法:将计数器聚合到预定义的时段中,这样一次写入就可以同时增加多个计数器。APM 最终没有获得太多关注而逐渐消失。 2021 年晚些时候,我在日常工作中需要分析功能。我没有选择现有的方案,而是重新构思了 Trifle 的想法,将其作为一个更通用的分析库,借鉴了一些数据仓库的思路。最初使用了 Redis,然后是 Postgres,最终是 MongoDB。因此,Trifle::Stats 提供了多个驱动程序,在保持 DSL 统一的同时,存储层可以根据你的需求进行更改。在我们的案例中(巨大的写入量,少量读取),PG 在读取时速度更快,但在大量写入时会变慢。 嵌套值是这里的关键。单个: ```ruby Trifle::Stats.track( key: 'requests::aws::s3_uploads', values: { count: 1, status: { request.response_code => 1 }, size: payload.bytes, duration: { sum: request.duration, count: 1 } } ) ``` 一次性为多个时段构建请求计数、成功率、结果状态码和持续时间。2 点的单个时段看起来像这样: ```ruby { count: 14, status: { 200: 12, 500: 2 }, size: 5628341, duration: { sum: 43, count: 14 } } ``` 如果 request.duration 以秒为单位,那么 duration 下存储的 sum 也将以秒为单位。 成功率从不直接存储,而是通过将 200 的计数除以请求总数来计算。平均持续时间也是如此:sum 除以 count。你请求一个指标键、粒度和时间范围,就会在每个时间点得到聚合后的值。这些值可以直接用于图表,或者回答“过去 30 天的平均响应时间是多少?”这样的问题。 有一个 Series 包装器,可以通过一个简单的调用来聚合和格式化图表的值。由于构建仪表板对其他开发者来说并不像我预期的那样有趣,所以我构建了 Trifle App——一个带有仪表板、计划摘要和警报的可视化层。它用 Elixir 编写,所以我也将该库移植到了 Elixir。后来又为 CLI 移植到了 Go。这三个版本是兼容的,在一个版本中编写的内容可以在另一个版本中读取。 今天,我们每天跟踪超过 1 亿个后台作业的活动,这转化为约 10 亿个事件。当你愿意牺牲一些安全性(在 Mongo 中关闭日志记录和写入确认)时,它的运行成本出奇地低。一个 3 节点的 Hetzner MongoDB 集群,主节点利用率 20%,每月成本约 1000 美元。 它也有其局限性。载荷不能包含数万个键。文档会变得太大而无法高效更新。需要一些提前规划。而且它没有维度。有时你可以嵌套它们(例如国家——国家数量有限),有时最好为每个维度使用专用的指标键(例如客户——数量不断增长)。这会成倍增加跟踪的事件数量,因此 1 亿个作业会产生 10 亿个事件。 这些库是 MIT 许可。App 是 ELv2 许可的源代码可用——可以免费自托管,如果你想要托管服务,则提供付费云服务。我利用业余时间构建了这个项目,没有投资者的资金来烧钱提供免费服务。 我很乐意回答关于架构、存储模型、我的失败之处,或者为什么我还没有放弃这个项目的问题。