返回首页

一周热榜

1作者: Vextoly大约 15 小时前
kilo 的一个分支,一个不到 1000 行代码的小型文本编辑器,支持语法高亮和搜索,并集成了社区的 pull request、issue 讨论以及个人改进的修复。 特性: - 高级语法高亮 - 配置文件 (~/.femtorc) - 批量查找和替换 - 撤销/重做(最多 100 级) - 支持查找并进行下一个/上一个导航 - 支持鼠标定位光标 - 支持备用屏幕缓冲区(可通过 --no-alt-screen 禁用) - 可配置的制表符大小 - 自动缩进 - 行号 - 当前行高亮
1作者: mercutio93大约 14 小时前
大家好,我是一名平台工程师,日常工作主要围绕 Kubernetes 集群和 Terraform,偶尔也会涉及 C# 和 TypeScript 来构建服务,所以这可能完全超出了我的能力范围。Jolt 最初是一个实验,看看我是否能完全构建自己的网络。我也会坦诚地说,大部分代码都是通过 AI 辅助编写的。然而,高层决策和架构是基于我的研究、实验、试错得出的。当以这种方式构建时,金丝雀测试(Canary testing)就成了必然,你需要一些东西将你 AI 驱动的自信拉回现实。 今年我问了自己一个问题……是否可能存在一个没有平台的“无平台世界”?一个没有平台控制你的数据、利用你的数据进行广告定位,或者封禁你并带走你的受众的世界。所以我开始挑战自己,看看是否可能……最终我创造了 Jolt。 Jolt 是一个点对点(p2p)的分布式内容分发网络。听起来很复杂,但它基本上是我解决“无平台内容分发”的方案。任何人都可以使用加密身份发布内容,其他人也可以发现这些内容。应用程序可以构建在网络之上,但它们与受众或账户是解耦的。 Jolt 通过一种守护进程(daemon)能力模型来实现这一点,有点像移动应用请求权限,但这是针对你的身份和内容的。 应用程序不拥有你的身份。它们会向守护进程请求一个有范围的会话(例如,“在 `/pastes/*` 下发布”),由你批准或拒绝。你可以卸载应用程序,但仍然保留你的受众和数据。 在这篇文章中,我将简要介绍这项工作,并在评论中讨论架构,如果你想深入了解,可以查看 GitHub Pages 网站上的 RFC 部分。 在构建这个项目时,最难的部分不是协议设计或加密。有趣的是,是测试。局域网(LAN)欺骗性地简单,一切似乎都能正常工作;为什么?mDNS 会立即找到你的节点,让你感觉自己很厉害。但当你进行一个 3 节点金丝雀测试来尝试在小范围内复制混乱的真实世界时,你就会被现实打败。 这个三方金丝雀测试使用了我的笔记本电脑(家庭宽带)、Hetzner 的一个中继服务器,以及我运行在手机热点上的 Mac。我知道这很折腾,但这也是我当时仅有的条件。我试图回答一个 v0 的难题:两个不同网络上的节点能否通信,更重要的是,它们能否在实际的 NAT 后面通信,以及如何通信。 第一次尝试是通过中继服务器,所以我知道那可行,但我并不满意。我想要直接通信,我花了大约两天时间才让 QUIC 穿透(hole punching)工作起来,实现了节点间的直接通信。 话虽如此,我并不完全确定它在实际环境中是否有效,我现实的一面认为它不行。我确定的是,一次金丝雀测试并不能涵盖所有边缘情况。我需要更多的节点和网络上的用户来告诉我哪里出了问题,我就是这样工作的,哈哈,所以我才发了这篇帖子。 你可以在这里找到 Jolt:[https://alexanderwanyoike.github.io/jolt/](https://alexanderwanyoike.github.io/jolt/) 那么,这个东西到底能不能用呢?我很高兴地说,我已经能够在此基础上构建两个应用程序:Spoke([https://alexanderwanyoike.github.io/spoke/](https://alexanderwanyoike.github.io/spoke/)),这是我尝试构建的无平台社交网络;以及 Pastey([https://alexanderwanyoike.github.io/pastey/](https://alexanderwanyoike.github.io/pastey/)),一个简单的类似 pastebin 的应用程序,用于将数据发送到不同地方。Spoke 的维护更完善,我计划让 Pastey 也达到同样的打磨水平。它们仍然是非常早期的“Hello World”原型。 另外,如果你想聊天,可以在 Spoke 上加我:fsjj2nvibhmztsw2w3klgkbjorqbze3qsi2tcwzbs5pepdigohiq.jolt ;)