返回首页

一周热榜

2作者: superstarryeyes5 天前原帖
我确实尽力了。我必须这样做,因为它有一个受“数字极简主义”启发的独特之处。 这个独特之处在于,它只允许你每天(或每X天)获取一次新文章。 为什么呢?让我来解释一下…… 我希望我的互联网内容像一份无聊的报纸。你早上拿到它,边喝早咖啡边读完整份,然后就结束了!今天没有更多的新信息了。没有提示,没有警报,宁静、安静、禅意等等。 但为了实现这一点,我需要能够在一次操作中从我数百个源中获取所有文章。这就是Zig和curl优化发挥作用的地方。我尝试了所有的技巧。如果我遗漏了什么,请告诉我! 首先,我在网络层使用了curl multi。它的一个好处是自动进行HTTP/2复用,这意味着如果你的源托管在同一个CDN上,它会重用相同的连接。我将其配置为总共处理50个连接,每个主机最多6个,这似乎是在服务器开始变得可疑之前的最佳点。此外,还使用了条件GET。如果一个源自上次以来没有变化,服务器会直接返回“未修改”,我们立即退出。 在curl下载源的时候,我不想让CPU闲着,所以当curl完成下载一个源时,它会触发一个回调,立即将XML抛入一个工作线程池进行解析。主线程继续管理所有网络事务,而工作线程则并行处理XML。Zig的内存模型非常适合这个。每个源都有自己的ArenaAllocator,这基本上是一个可以在解析过程中分配字符串的游乐场,然后当我们完成时,我们只需一次性清除整个区域。 在解析方面,我使用了libexpat,因为它不会像DOM解析器那样将整个XML加载到内存中。这一点很重要,因为某些播客源的XML文件大小通常超过10MB。因此,通过智能截断,我们下载前几MB(可配置),向后扫描以找到最后一个完整的项目标签,然后在此处截断,只解析这一部分。即使在源的大小变得庞大时,也能保持内存使用的合理性。 至于用户界面,我只是将所有内容通过系统的“less”命令进行管道处理。你可以免费获得vim导航、搜索和分页功能。此外,我还使用了OSC 8超链接,因此你实际上可以点击链接在浏览器中打开它们。完全不需要TUI框架。我还添加了OPML导入/导出和源分组作为附加功能。 结果是:在几秒钟内从数百个RSS源中检索到内容,余下的时间则心安理得。 代码是开源的,采用MIT许可证。如果你有想法让它更快或更好,请在下面评论。功能请求和其他建议也欢迎在这里或GitHub上提出。
2作者: ychandler6 天前原帖
大家好!我们已经决定继续在公立学校就读。我完全理解我们应该更加关注社交/情感和课外活动方面。关于学术教育,除了标准的Kumon(公文式学习)、俄罗斯数学学校和新加坡数学之外,你们是如何补充他们的教育的? 我听说很多关于Alpha学校和人工智能学习的“东西”,但有没有人尝试过一些他们喜欢的?我们尝试过: 1. 像Tynker这样的东西 2. 我们喜欢可汗学院儿童版 3. 还没有尝试过任何订阅盒子的内容
2作者: nsantos4 天前原帖
嗨,HN。 电梯演讲:brig 是一个命令行工具,用于根据 devcontainers 规范启动容器,能够验证配置是否符合该规范,并旨在成为官方 CLI 工具的几乎无缝替代品。 验证这一点对我个人来说非常重要;我希望继续使用我团队正在使用的相同 devcontainer.json 文件,并希望我所做的任何增强仍然可以在他们的 VSCode 环境中使用。 --- 我非常喜欢 devcontainers 的理念,并推动我的团队在几乎所有代码库中采用它们。我也很喜欢它们名义上并不依赖于 VSCode(它们只是带有一些便利功能的容器)。多年来,我一直依赖一个简单的 shell 脚本来根据项目的 Containerfile/Dockerfile 启动容器。 直到最近我才开始深入研究该规范;当我这样做时,我发现了一些相当不错的功能(例如,生命周期脚本),这些功能在不需要对我的 start-dev-container.sh 脚本添加临时解决方案的情况下会非常好用。 顺便提一下,我已经很多年没有写过比 shell 和 Python 脚本更复杂的东西(甚至更久没有为自由开源软件做出贡献)。由于 Go 在我使用的工具(OpenTofu、Podman、Docker)中被广泛使用,我觉得这不是学习 Go 的坏借口。 我将对 devcontainers 的兴趣和学习 Go 的愿望结合在一起,这就是结果。 虽然我写这个是为了满足我自己的需求,但我希望其他人也能从中受益。 [1]: [https://containers.dev](https://containers.dev) [2]: [https://github.com/nlsantos/brig/blob/38d4ae10557422c37af349c9df3b460c343d487c/start-dev-container.sh](https://github.com/nlsantos/brig/blob/38d4ae10557422c37af349...)
2作者: hardiksondagar7 天前原帖
嘿,HN!我在婚礼后创建了这个工具,因为我有5000张照片需要整理。 关键见解:大部分照片整理的时间都花在审查近似重复的照片上。专业摄影师通常会连续拍摄,因此你会得到同一时刻的10张以上的照片。 PicPick利用CLIP嵌入技术对视觉上相似的照片进行聚类,然后添加人脸识别功能,以保持组内的一致性(这样你就不会因为“新娘与父母”和“新娘与朋友”看起来相似而混淆)。 技术栈: - 使用CLIP进行语义相似性分析(不仅仅是感知哈希) - 使用face_recognition(dlib)进行人脸检测 - 在组合特征上进行DBSCAN聚类 - 使用FastAPI和原生JS构建用户界面 - 使用SQLite存储所有数据 这项技术将我的审查集从5000张减少到了大约1000个聚类,我在几个小时内将其过滤到300张用于相册,而不是几天。 聚类参数是可调的——对于重复较多的专业拍摄可以设置得更紧凑,对于休闲照片则可以放宽一些。 欢迎反馈!特别是在以下方面: 1. 更好的聚类算法(目前使用的是基于CLIP嵌入 + 时间戳 + 人脸向量的DBSCAN) 2. 快速审查的用户界面改进 3. 处理没有人脸的照片(风景、食物等) 该工具完全离线工作,无需云上传。
2作者: gpu_systems5 天前原帖
我开发了一个小型Linux工具,用于确定性地验证GPU PCIe链接的健康状况和带宽。<p>该工具报告以下内容: - 协商的PCIe代数和宽度 - 主机到设备(Host→Device)和设备到主机(Device→Host)的内存拷贝带宽峰值 - 通过NVML获取的持续PCIe发送(TX)/接收(RX)利用率 - 基于可观察硬件数据得出的规则性判断<p>之所以开发这个工具,是因为PCIe问题(如代数降级、通道宽度减少、扩展卡、分叉)通常在应用层是不可见的,且无法通过内核调优或异步重叠来解决。<p>仅限Linux:该工具依赖于sysfs和PCIe AER暴露,而Windows并不提供这些功能。