#开源项目
krep - 一个C写的高性能的字符串搜索工具
github.com/davidesantangelo/krep
krep 的设计以性能为主要目标:
🌟内存映射 I/O:避免昂贵的 read() 系统调用
🌟优化算法:默认使用 Boyer-Moore-Horspool 算法
🌟SIMD 加速: 在可用时利用 SSE4.2 或 AVX2
🌟多线程: 并行处理大文件的块
🌟最小化内存分配: 减少内存开销和碎片化
感觉可以拿来学一学SIMD编程,正好不会。
krep - 一个C写的高性能的字符串搜索工具
github.com/davidesantangelo/krep
krep 的设计以性能为主要目标:
🌟内存映射 I/O:避免昂贵的 read() 系统调用
🌟优化算法:默认使用 Boyer-Moore-Horspool 算法
🌟SIMD 加速: 在可用时利用 SSE4.2 或 AVX2
🌟多线程: 并行处理大文件的块
🌟最小化内存分配: 减少内存开销和碎片化
感觉可以拿来学一学SIMD编程,正好不会。
GitHub
GitHub - davidesantangelo/krep: Fast text search tool with advanced algorithms, SIMD acceleration, multi-threading, and regex support.…
Fast text search tool with advanced algorithms, SIMD acceleration, multi-threading, and regex support. Designed for rapid, large-scale pattern matching with memory-mapped I/O and hardware optimizat...
🆒5👍4
#分布式
Paxos解决的核心问题是:分布式系统里如何确定一个值。Paxos的做法是:给每次提交一个版本号,一个版本确定之后就不再能修改。
这里的“版本号”不一样非得是自然数,只需要满足全序性(total order,简单理解一个全序关系里的任意两个元素都能对比大小)就可以了。正因为版本号必须满足全序关系,才能保证前面说的“版本的值确定之后,不能再进行修改”。
比如Raft里面的版本号就是(Term,Index),这也是满足全序关系的,Raft里面对比(Term,Index)大小关系的算法大体是:
所以从这个意义上来说,Raft本质上还是Paxos,可以理解为换了另外一种版本号来实现的Paxos。
多说一句,实际上定义一类新的数据类型时定义这类型数据之间的比较关系,C++里面早就有了,提供了operator >、>=、<、<= 这些操作符函数。很早之前学C++的时候就已经知道,但是那时候还没有上升到数学的层面理解为什么需要定义这些关系,一直到我接触了全序、偏序关系的概念才恍然大悟。
再推一次XP的这篇讲解Paxos原理的文章,其它讲Paxos的文章,多是一上来给读者按照论文给出流程,专注在How,而这篇文章反向来推导过程,给出了Paxos的Why。
Paxos解决的核心问题是:分布式系统里如何确定一个值。Paxos的做法是:给每次提交一个版本号,一个版本确定之后就不再能修改。
这里的“版本号”不一样非得是自然数,只需要满足全序性(total order,简单理解一个全序关系里的任意两个元素都能对比大小)就可以了。正因为版本号必须满足全序关系,才能保证前面说的“版本的值确定之后,不能再进行修改”。
比如Raft里面的版本号就是(Term,Index),这也是满足全序关系的,Raft里面对比(Term,Index)大小关系的算法大体是:
if (left.Term == right.Term)
return left.Index > right.Index
else
return left.Term > right.Term
所以从这个意义上来说,Raft本质上还是Paxos,可以理解为换了另外一种版本号来实现的Paxos。
多说一句,实际上定义一类新的数据类型时定义这类型数据之间的比较关系,C++里面早就有了,提供了operator >、>=、<、<= 这些操作符函数。很早之前学C++的时候就已经知道,但是那时候还没有上升到数学的层面理解为什么需要定义这些关系,一直到我接触了全序、偏序关系的概念才恍然大悟。
再推一次XP的这篇讲解Paxos原理的文章,其它讲Paxos的文章,多是一上来给读者按照论文给出流程,专注在How,而这篇文章反向来推导过程,给出了Paxos的Why。
Wikipedia
Total order
In mathematics, a total order or linear order is a partial order in which any two elements are comparable. That is, a total order is a binary relation
≤
{\displaystyle \leq }
on some set
…
≤
{\displaystyle \leq }
on some set
…
❤12👍2
#方法论
写技术博客时,我很喜欢画图来表达原理。也因为自己画的图多了,有了一层感悟:但凡能把技术原理通过画图清晰表达出来的,一般文章内容也不会太差。这是因为,画图不同于文字和简单的贴代码,是经过作者理解了原理再翻译成图形语言的。
按照这个推论,得到一个搜索优质技术文章的技巧:使用Google搜索技术文章时,以前是根据关键字搜索相信搜索引擎的排名,现在可以试一下切换到Google搜索中“图片”那一栏看看。图片这一栏可以在不用点击文章的情况下马上看到文章中的一些缩略图,根据画的缩略图能大体判断文章的质量。
写技术博客时,我很喜欢画图来表达原理。也因为自己画的图多了,有了一层感悟:但凡能把技术原理通过画图清晰表达出来的,一般文章内容也不会太差。这是因为,画图不同于文字和简单的贴代码,是经过作者理解了原理再翻译成图形语言的。
按照这个推论,得到一个搜索优质技术文章的技巧:使用Google搜索技术文章时,以前是根据关键字搜索相信搜索引擎的排名,现在可以试一下切换到Google搜索中“图片”那一栏看看。图片这一栏可以在不用点击文章的情况下马上看到文章中的一些缩略图,根据画的缩略图能大体判断文章的质量。
👍47
#杂
去年十月份去了一趟普陀山。从舟山机场出来,还得转轮船才能到达普陀山所在的小岛。去往普陀山的码头门口上大字写着“彼岸”两个字,普陀山是中国佛教圣地,所以“彼岸”在这里有一语双关的意思,感觉太酷啦。
去年十月份去了一趟普陀山。从舟山机场出来,还得转轮船才能到达普陀山所在的小岛。去往普陀山的码头门口上大字写着“彼岸”两个字,普陀山是中国佛教圣地,所以“彼岸”在这里有一语双关的意思,感觉太酷啦。
👍9🥰1
#分布式
公众号荒了很久,转一篇XP写的《理解 Calvin - Fast Distributed Transactions》。
最近忙着写面试的论文题目,分布式教程的撰写又停滞了一段时间,目前写到分布式事务章节了,整体进度50%。
公众号荒了很久,转一篇XP写的《理解 Calvin - Fast Distributed Transactions》。
最近忙着写面试的论文题目,分布式教程的撰写又停滞了一段时间,目前写到分布式事务章节了,整体进度50%。
Telegram
codedump的电报频道
#分布式
从2025年开年后开始写一本分布式教程,到现在过去了20天(中间还花了小一周时间准备面试,最后还不合适),初步写好了两章,大家可以看看。由于只是初稿,错漏在所难免,就是给大家看看目前的完成度。两章内容里,自己手画了20多张图,按照我预估全部完成可能有8章的内容,所以最后可能要画200+张的图。我挺喜欢画图解释原理的,一图胜千言。
从2025年开年后开始写一本分布式教程,到现在过去了20天(中间还花了小一周时间准备面试,最后还不合适),初步写好了两章,大家可以看看。由于只是初稿,错漏在所难免,就是给大家看看目前的完成度。两章内容里,自己手画了20多张图,按照我预估全部完成可能有8章的内容,所以最后可能要画200+张的图。我挺喜欢画图解释原理的,一图胜千言。
❤7
#杂
特别喜欢下面这段话,尤其是“「专业化」是为虫子准备的”:
特别喜欢下面这段话,尤其是“「专业化」是为虫子准备的”:
一个人应该懂得如何更换尿布、策划战争、杀猪、开船、设计建筑、创作诗歌、算清账目、搬砖砌墙、接续断骨、安抚将死之人、听从命令、发布命令、与人合作、独断独行、解方程组、分析前所未见的问题、清理肮脏的畜栏、编写计算机程序、烹制美味佳肴、高效地战斗,并勇敢地死去。「专业化」是为虫子准备的。
-- 罗伯特·海因莱因《时间足够你爱》
豆瓣
时间足够你爱
【故事简介】
他是前无古人的长寿者,从19世纪活到星际殖民时代,活了足足两千年。
他是智者中的智者,亲历过人类两千年的历史,提炼出逢凶化吉的生存大智慧。
他是拉撒路·朗,人类独一无二的老祖。
在一场“...
他是前无古人的长寿者,从19世纪活到星际殖民时代,活了足足两千年。
他是智者中的智者,亲历过人类两千年的历史,提炼出逢凶化吉的生存大智慧。
他是拉撒路·朗,人类独一无二的老祖。
在一场“...
👍7
#工具
国内很多网站(微博、知乎等)在跳转外链时,会弹出一个提醒确认界面。可以安装油猴脚本Open the F**king URL Right Now实现自动跳转。最新的版本里,还把微博跳转外链时加上的continueflag参数去掉了,这个功能在收藏网页的时候挺实用的,因为像Raindrop这样的收藏网页工具里,同一个地址带的参数不同会被认为是不同的网址。
作者是之前推荐过的Douban book+插件的作者OldPanda。
国内很多网站(微博、知乎等)在跳转外链时,会弹出一个提醒确认界面。可以安装油猴脚本Open the F**king URL Right Now实现自动跳转。最新的版本里,还把微博跳转外链时加上的continueflag参数去掉了,这个功能在收藏网页的时候挺实用的,因为像Raindrop这样的收藏网页工具里,同一个地址带的参数不同会被认为是不同的网址。
作者是之前推荐过的Douban book+插件的作者OldPanda。
👍12👏2
#杂
中国南方很大一块民间势力就是宗族。我以前没有什么感觉,直到我被拉进了宗族群(不是家族群)。这里的活动主要就是宗族相关的祭拜、扫墓、宗祠维护等等。我想可能是因为现在中国南方的很多人,往上数都是外地迁徙过来的,一群人到一个陌生的环境,就需要抱团,而宗族就是最好的抱团共识吧,这可能也是南方人如此重视清明节的原因吧。比如我们家,按照我爸的说法,就是明代从福建迁徙到了海南,附近的村里有不少李氏宗族的人。
2025年了,我也是第一次在我的日常生活里看到了“宗亲”这个词,过去只是在三国里一直听刘备自称自己“汉室宗亲”,对我来说真的是复古又遥远的称呼。
中国南方很大一块民间势力就是宗族。我以前没有什么感觉,直到我被拉进了宗族群(不是家族群)。这里的活动主要就是宗族相关的祭拜、扫墓、宗祠维护等等。我想可能是因为现在中国南方的很多人,往上数都是外地迁徙过来的,一群人到一个陌生的环境,就需要抱团,而宗族就是最好的抱团共识吧,这可能也是南方人如此重视清明节的原因吧。比如我们家,按照我爸的说法,就是明代从福建迁徙到了海南,附近的村里有不少李氏宗族的人。
2025年了,我也是第一次在我的日常生活里看到了“宗亲”这个词,过去只是在三国里一直听刘备自称自己“汉室宗亲”,对我来说真的是复古又遥远的称呼。
❤8👍2
#Latex
#开源项目
两本技术书的中译本Latex代码,看了一下排版效果挺好。鉴于我正在用Latex写书,无疑能给我提供了很多排版上的参考。
《Programming Rust》
《C++17 the complete guide》
#开源项目
两本技术书的中译本Latex代码,看了一下排版效果挺好。鉴于我正在用Latex写书,无疑能给我提供了很多排版上的参考。
《Programming Rust》
《C++17 the complete guide》
GitHub
GitHub - MeouSker77/ProgrammingRust: 本书为《Programming Rust - Fast, Safe Systems Development》第2版的个人中文翻译,仅供学习和交流使用,如有侵权请联系作者删除
本书为《Programming Rust - Fast, Safe Systems Development》第2版的个人中文翻译,仅供学习和交流使用,如有侵权请联系作者删除 - MeouSker77/ProgrammingRust
👍8❤1
👍9
#工具
之前忘记在哪里看到别人推荐了只有几十块的cherry KC 1000的薄膜键盘,买下来用了几天,除了键盘感觉稍微紧了一些以外,意外地感觉还挺好用,手上的宁芝静电容用了五年多有点审美疲劳,可以放心出闲鱼了。
之前忘记在哪里看到别人推荐了只有几十块的cherry KC 1000的薄膜键盘,买下来用了几天,除了键盘感觉稍微紧了一些以外,意外地感觉还挺好用,手上的宁芝静电容用了五年多有点审美疲劳,可以放心出闲鱼了。
#分布式
《图解 paxos 论文《The Part-Time Parliament》》
这篇文章的图画的不错,按照以前提到的一个标准,应该是不错的技术文章。只不过我之前没有看过Lamport写的第一篇关于Paxos的论文,感觉有点晦涩,之前都是看的《Paxos Made Simple》,之后有时间结合这篇文章看看。
《图解 paxos 论文《The Part-Time Parliament》》
这篇文章的图画的不错,按照以前提到的一个标准,应该是不错的技术文章。只不过我之前没有看过Lamport写的第一篇关于Paxos的论文,感觉有点晦涩,之前都是看的《Paxos Made Simple》,之后有时间结合这篇文章看看。
Cnblogs
图解 paxos 论文《The Part-Time Parliament》 - 杨领well - 博客园
本文以图文并茂的方式重新演绎 Paxos 开山之作 《The Part-Time Parliament》[1],并尝试解释原论文中语焉不详的地方。 背景 在 Paxos 小岛上,施行着一种 Parliament(议会) 政治。小岛上执行的所有 decree(法令) 都需要先由 Parliament
🐳5