1 分•作者: adletbalzhanov•28 天前
返回首页
最新
1 分•作者: vivekv•28 天前
1 分•作者: ndom91•28 天前
1 分•作者: paulpauper•28 天前
2 分•作者: lucianh•28 天前
2 分•作者: trinhngocdieu•28 天前
12 分•作者: rzk•28 天前
51 分•作者: metrofun•28 天前
1 分•作者: trap0xcc•28 天前
2 分•作者: bookofjoe•28 天前
1 分•作者: serjts•28 天前
1 分•作者: rzk•28 天前
1 分•作者: __alam__•28 天前
您好。我开发了一个名为 BentoPDF 的开源工具。它是一个在浏览器中运行的开源 PDF 工具包。通过最新的更新,您实际上可以在浏览器中直接编辑现有的 PDF 文本、图像和对象。
实时网站:<a href="https://www.bentopdf.com" rel="nofollow">https://www.bentopdf.com</a>
代码库:<a href="https://github.com/alam00000/bentopdf" rel="nofollow">https://github.com/alam00000/bentopdf</a>
随着最新更新,我还想向您介绍 Hyper Compress。它是一个高保真、内容保留的压缩引擎,可保持 PDF 的合规性,并超越所有其他开源 PDF 压缩工具。
它可以在任何地方运行:CLI、Node SDK、C API、自托管服务,以及通过 WebAssembly 在浏览器中运行。
实时网站:<a href="https://hyper.bentopdf.com" rel="nofollow">https://hyper.bentopdf.com</a>
代码库和基准测试:<a href="https://github.com/alam00000/bentopdf-hyper-compress" rel="nofollow">https://github.com/alam00000/bentopdf-hyper-compress</a>
Kura 是一个 PDF 标准、转换和印前检查引擎。
它支持:
- 所有 11 种 PDF/A 合规级别:PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-2u, PDF/A-3a, PDF/A-3b, PDF/A-3u, PDF/A-4, PDF/A-4e 和 PDF/A-4f
- 可访问性:PDF/UA-1 和 PDF/UA-2
- 印刷制作:PDF/X-1a, PDF/X-3, PDF/X-4, PDF/X-4p, PDF/X-5g, PDF/X-5n 和 PDF/X-5pg
- 工程和可变数据打印:PDF/E-1 和 PDF/VT
- 电子发票:Factur-X, ZUGFeRD, XRechnung 和 Order-X
- 396 个捆绑的印前检查配置文件
它已针对多个标准套件进行了测试,包括 veraPDF语料库、Isartor、BFO、Ghent Output Suite 5.0、PDF/UA 参考套件和 Cal Poly 的 PDF/VT 套件。
在 30,677 次 PDF 转换中,它实现了零崩溃和零超时,中位转换时间为 0.05 秒。
与 Hyper 一样,它提供 CLI、C 库、npm 包、Docker 镜像和 WebAssembly 构建。
实时网站:<a href="https://kura.bentopdf.com/" rel="nofollow">https://kura.bentopdf.com/</a>
代码库和基准测试:<a href="https://github.com/alam00000/bentopdf-kura" rel="nofollow">https://github.com/alam00000/bentopdf-kura</a>
Kura 和 Hyper Compress 都运行 WASM 版本,因此您的任何 PDF 都不会被上传,所有操作都在您的浏览器中完成。
如果可能,我希望大家能尝试一下,并就您的使用体验给我反馈。
谢谢。
1 分•作者: geox•28 天前
1 分•作者: tosh•28 天前
1 分•作者: gr4vityWall•28 天前
2 分•作者: swolpers•28 天前
1 分•作者: Eridanus2•28 天前
4 分•作者: lopatin•28 天前
各位 HN 的朋友们,我刚刚重写了 Snaketron,这是一款多人竞技贪吃蛇游戏。(是的,没错,是用 Rust 写的)
关于这款游戏的历史,有一个简短有趣的插曲:
早在 2012 年,我(拙劣地)实现了 Snaketron 的第一个版本。当时的问题在于,游戏状态保存在客户端,虽然我意识到这不安全,但又不知道如何在不增加延迟到无法接受的程度的情况下解决这个问题。我当时还在上学,没有游戏开发经验,甚至都没听说过“网络代码”这个词。发布第一个个人项目的兴奋感冲昏了头脑,我把这个安全隐患归类为“理论问题”,然后就发布了。
我想,没人会注意到,就算注意到了,也不会花时间去破解我这个小小的贪吃蛇游戏项目,对吧?
大错特错!Hacker News 名副其实。当我忙于应对第一次流量高峰、扩展数据库和修复 bug 时,有几位玩家发现了安全漏洞,并开始肆虐游戏。我收到了关于“杀不死的蛇”的报告,于是决定亲自上手一局,看看能不能抓到他们。
我加载了一局 1v1 对战,我的对手是……太空侵略者。我的蛇是一条蛇。而他们的“蛇”则是太空侵略者游戏的渲染画面。不用说,它们也在移动,而且是无敌的。我真希望当时能录个视频,但我简直惊呆了,HN 不仅玩了我的游戏,还以如此史诗般的方式破解了它。
我一直想好好地重建它,所以这是 V2 版本!这次的架构和动机有了很大的不同。
首先,状态由服务器权威管理,客户端通过状态预测来补偿延迟。游戏引擎是用 Rust 编写的,并编译成 WASM 作为客户端库。
为了最大限度地减少运维负担,我还为这个项目设定了一个严格的弹性要求:它必须是自动可扩展的。这样,一个节点就可以加入集群,正在进行的游戏就会重新平衡到它上面,而不会中断游戏进程。
我还试图让新的 Snaketron 更有趣一些。核心机制仍然是经典的贪吃蛇,收集食物而不碰撞。但现在团队比赛有了目标,让竞技游戏更加结构化。还有一个青铜到宗师的排名子系统(如果玩的人够多,校准这个会很有趣),以及一些有趣的功能,比如加速、连击、皮肤和“今日最佳击杀”检测。
关于 Rust:我最初用 Rust 来做这个项目的目标之一是学习这门语言。但结果并不如我预期的那么好。我通常是通过实践来学习的,但 AI 实在太强大了,我停止了手动编写代码,宁愿把我的夜晚和周末花在我更感兴趣的事情上,而不是纠结于借用检查器的错误:游戏设计和高可用性方面的内容。
关于 AI:不知道没有 AI,这个项目是否能完成。可能不能,考虑到我的本职工作和其他生活中的事情。它有 20 万行代码(大部分是测试,不用担心),但仍然是这样。
总之,这是项目的链接。感谢您的阅读,希望您喜欢这款游戏,任何反馈都非常感激!
[0] <a href="https://snaketron.io" rel="nofollow">https://snaketron.io</a>
[1] <a href="https://github.com/lopatin/snaketron" rel="nofollow">https://github.com/lopatin/snaketron</a>
[2] <a href="https://news.ycombinator.com/item?id=4028597">https://news.ycombinator.com/item?id=4028597</a> (2012 年的原始帖子)
27 分•作者: nickslaughter02•28 天前