人员、任务、进度、工时、周期、依赖关系 一目了然。无论项目大小、简单复杂都能轻松管理
TUIC 终究又是一个失败的开源项目,至少现在看来如此。一方面是社区上的失败,另一方面是我个人的失败。
开源项目到底是什么
究其根本,一个没有商业化的开源项目,本质上就是开发者的技术热情。换句话讲,这样的开源项目就是其开发者荷尔蒙在成果上的体现。
人类的本性永远是自私的。为什么我们会将自己辛苦思考并创作的结果,不求任何回报地分享给他人?
对技术的热爱
分享欲
成就感
“我要让世界变得更好”
捐赠收入
可惜,这些都不足以支撑一个开源项目长期发展。
我为什么要开发且开源 TU
已经一年多没有再更新了。其间发生了很多事情,也有很多想法,但是我没有记录下来。这是一个很大的遗憾。
首先,关于本博客。
这些年来,我对一些事物的理解发生了很大的变化。对于这个记录我多年来技术与想法的记事本,我觉得其最有价值的是其中的内容,而非是它的形式,或是它本身。所以,我决定将它迁移到一个新的平台上。
从 2015 年到最近,我一直在用 Typecho 作为博客引擎。Typecho 是一个非常棒的项目。对我而言,它还是很特殊的意义,甚至可以说,是它引导我开始在技术方面探索。
论文原文:Tolerating Slowdowns in Replicated State Machines using Copilots
以下内容是对这篇论文的阅读总结,以及部分重要章节(§3 Design、§5 Optimizations)的翻译。
前言
现有的分布式状态机共识协议,不论其是何种流派,何种实现,都在模型中将节点状态抽象为仅有“在线”与“下线”两种情况。然而在实践上,节点状态并非只有这两种互斥的状态——节点可能因配置错误,节点侧网络问题,部分硬件出现问题,
QUIC 协议汲取了大量人们给 TCP 糊墙的经验教训,把连接结构优化到(目前来看)极致。但是现在市面上的代理工具还没有能完全利用 QUIC 特性的存在,所以我自己动手写了一个基于 QUIC 协议的新代理工具:TUIC
https://github.com/EAimTY/tuic
1-RTT TCP 中继
0-RTT UDP 中继,且 NAT 类型为 FullCone
在用户空间的拥塞控制,也就是说可以在任何系统平台实现双向的 BBR
两种 UDP 中继模式: native
我之前对 HashMap 有很多错误的理解,特别是在 hash 函数对性能的影响上。最近我对 HashMap 的了解稍稍深入了一些,所以写了这篇笔记,对之前的错误理解修正总结。
“透明”的 hash 函数
首先从 hash 函数说起。
在我之前的理解中,hash 的用处就是:
能根据一个任何(支持被 hash)类型的值计算出一个无符号整数
对于两个相同的值,hash 出的值必须相等
对于两个不同的值,hash 出的值必须有极大概率(接近 100%)不同,也就是碰撞概率要低
我从今年六月开始学 Rust,到现在差不多有半年了。写 hummingbird 这个项目的想法我在八月就已经有了:写一个用 git 仓库作为数据库的内容管理系统,给 git repo 中 markdown 格式的文章套 HTML 模板,然后 serve。
这样能结合传统 CMS 和 GitHub Pages 的优点——能用对于 CMS 本身只读的 git 仓库保证数据的安全性,也能像传统的 CMS 一样提供动态内容,比如搜索文章内容,甚至支持在一次搜索中使用多个 filter
最近架了个 Mindustry 游戏服务器和朋友一起玩 PvP(然而没玩几天就弃坑跑去 MC 了),感觉不错,只是每次输命令和上传地图的时候都要 ssh/sftp 到服务器上有点不方便,所以就写了个 Telegram 机器人用来输命令和上传地图:
teledustry - Manage your Mindustry server through Telegram bot
我不会写 Java,所以没把这个 bot 写成 mod 的形式,而是直接把游戏服务器进程创建为子进程,然后
Pangu 是一个有名的用来在全角字符与半角字符间添加空格的库,支持多种语言,其中 Node.js 版 pangu.js 可以作为命令行前端来使用。
但是由于是 Node.js,想要用 pangu 就需要装很多依赖,类 Unix 系统有包管理还好说,在 Windows 平台下装 node 只为了用 Pangu 实在是有点麻烦。
为了解决这个问题,我写了一个 Pangu 的命令行前端 Xuanwu,基于 pangu-rs,非常简单,只有六十行代码😂,还没有任何依赖。
需要用 P
最近一段时间在学 Rust,想写一些简单的小工具来巩固一下。之前用其它语言写过 Telegram bot,所以我就用 Rust 写 Telegram bot 吧。
Rust 相比于其它流行的语言网络上的资源比较少,中文内容更是寥寥无几。虽然我的 Rust 连入门都谈不上,代码里可能会有不少不合理的地方,但是还是想把过程记录一下,供他人参考,希望可以为 Rust 社区做一些微不足道的贡献,也算是抛砖引玉吧。
成品 bot 在 EAimTY/eaimty_bot。这是个用来练手的
又是整整一年过去,是时候该总结一下之前的一年了。
过去的一年我干了什么?无非只是吃饭、睡觉、摸鱼、应付考试而已。有时候心血来潮会学习或写一些新东西,可惜都是三天打鱼两天晒网,没有向哪个方向深入就停下了。深知自己没什么技术,可是却一直提不起干劲。
由于大流行,去年有近9个月的时间都是在家中度过的,经常熬夜,靠外卖度日,下半年回到学校后也是经常摸鱼。过了这样一年“懒散”的生活,再加上作息与饮食的不规律,我感觉自己变“老”了。这里的“老”指的并不是年龄的增长,而是指精神状态变差。我