返回首页
最新
我创建了 GRSH,因为我想要一个现代的、内存安全的 shell,它在 FreeBSD 上感觉原生,但在 macOS 上也能无缝运行。
虽然市面上有很多 shell,但 GRSH 是我对一个简约、快速且安全的命令解释器的理解,它完全用 Rust 编写。它的设计旨在为那些希望享受 Rust 安全保障的用户提供服务,而不需要承受更臃肿替代品的负担。
我目前正在开发官方的 FreeBSD 移植版。希望能从社区获得关于 shell 行为和性能的反馈。
Github: [https://github.com/antoniomalara301289/grsh](https://github.com/antoniomalara301289/grsh)
你好,HN!我正在整理一个由社区维护的个人网站目录,网址为 <https://hnpwd.github.io/>。关于该项目的更多细节可以在 <https://github.com/hnpwd/hnpwd.github.io#readme> 的自述文件中找到。
如你所见,目录目前只有少数条目。我需要你的帮助来扩展它。如果你有个人网站,我很高兴你能在这里分享。如果你的网站托管在你可以完全控制其设计和内容的空间上,并且在过去的HN讨论中获得了良好的反馈,我可能会将其添加到目录中。只需在评论中留下链接即可。如果你不希望你的个人网站被包含在目录中,请告诉我。
此外,我希望这个资源能够由社区共同维护,因此如果你想作为维护者加入GitHub项目,请在这里或通过自述文件中的IRC链接告诉我。
顺便提一下,看看“Ask HN: Could you share your personal blog here?” - https://news.ycombinator.com/item?id=36575081 - 2023年7月 - (1014分,1940条评论)。不过在这篇帖子中,范围并不限于博客。任何个人网站都欢迎提交,无论是博客、数字花园、个人维基还是其他任何形式的网站。
“我修复了Microsoft AutoGen中的‘僵尸状态’错误。
问题:操作性缺血。在原子转换期间的进程中断使得代理处于一种矛盾状态:工作量大于0,但队列为空。工作流停滞,错误地报告完成。
解决方案:主权图守护。
铁封协议:用原子fsync + 重命名(POSIX持久性保证)替代标准文件写入。这确保了零妥协状态的持久性。
缺血修复:实现了一种自愈逻辑(load_and_heal),在状态加载时扫描并重新注入待处理的代理。
零分配序列化:将我在优化谷歌的Go-GitHub库时的经验(通过缓冲池实现了3倍的速度提升)移植到Python的序列化逻辑中。
结果:维护者称其为‘典范’和‘杰出’。不再有僵尸工作流。
理论:这实现了我在黎曼假设论文中证明的相同‘拓扑稳定性’原则——系统必须在同调结构上是健全的,才能抵御熵的影响。
<a href="https://www.academia.edu/145999987/The_Spectral_Geometric_Proof_of_the_Riemann_Hypothesis_An_Isomorphic_Mapping_of_Computational_Complexity_to_Arithmetic" rel="nofollow">https://www.academia.edu/145999987/The_Spectral_Geometric_Proof_of_the_Riemann_Hypothesis_An_Isomorphic_Mapping_of_Computational_Complexity_to_Arithmetic</a>”
<i>wxpath</i> 是一个声明式的网络爬虫,网络爬取和数据提取直接通过 XPath 表达。<p>与其编写命令式的爬取循环,不如在一个表达式中描述要跟随的内容和要提取的内容:<p><pre><code> import wxpath
# 爬取、提取字段,构建维基百科知识图谱
path_expr = """
url('https://en.wikipedia.org/wiki/Expression_language')
///url(//main//a/@href[starts-with(., '/wiki/') and not(contains(., ':'))])
/map{
'title': (//span[contains(@class, "mw-page-title-main")]/text())[1] ! string(.),
'url': string(base-uri(.)),
'short_description': //div[contains(@class, 'shortdescription')]/text() ! string(.),
'forward_links': //div[@id="mw-content-text"]//a/@href ! string(.)
}
"""
for item in wxpath.wxpath_async_blocking_iter(path_expr, max_depth=1):
print(item)
</code></pre>
关键的新增功能是 `url(...)` 操作符,它获取并返回 HTML 以供进一步的 XPath 处理,以及 `///url(...)` 用于深度(或分页)遍历。其他部分都是标准的 XPath 3.1(映射/数组/函数)。<p>特点:<p>- 异步/并发爬取,结果流式输出<p>- 受 Scrapy 启发的自动限速和礼貌爬取<p>- 自定义处理的钩子系统<p>- 快速实验的命令行界面<p>另一个示例,通过 HN 评论(通过 "follow=" 参数)分页并提取数据:<p><pre><code> url('https://news.ycombinator.com',
follow=//a[text()='comments']/@href | //a[@class='morelink']/@href)
//tr[@class='athing']
/map {
'text': .//div[@class='comment']//text(),
'user': .//a[@class='hnuser']/@href,
'parent_post': .//span[@class='onstory']/a/@href
}
</code></pre>
限制:仅支持 HTTP(尚不支持 JS 渲染),不支持爬取持久性。如果有需求,这两项功能都在开发计划中。<p>GitHub: <a href="https://github.com/rodricios/wxpath" rel="nofollow">https://github.com/rodricios/wxpath</a><p>PyPI: pip install wxpath<p>欢迎对表达式语法和可能解锁的任何用例提供反馈。<p>谢谢!
大家好,
这是我过去一年一直在进行的一个项目。
除了将多个联邦来源的数据整合到一个统一的用户界面中,我还构建了一个基于2500多个规则的正则表达式解析器/伪状态机,能够将每一项立法行动分类为不同的状态和阶段。这使得我们能够生成过去50年中每一项法案的逐日时间线,以及一张图表,显示在任何时刻有多少(以及哪些)法案处于每个主要立法状态。总共解析了1,555,069个行动,分为41个阶段中的1,157个独特枚举。
我还将官方法案文本的XML重新解析为现代格式,并在CSS中重建了大型法案文本XLS样式系统,这大大提高了加载速度,并且据我所知,这是首次几乎完整地在CSS中重建该XLS样式。
希望你们觉得这个项目有趣 :)