codedump的电报频道
4.43K subscribers
151 photos
4 videos
2 files
622 links
发布个人博客(主页 codedump.info)、想法、推荐等。RSS订阅地址:https://rsshub.app/telegram/channel/codedump_notes,过往汇总搜索可以到:https://app.shokichan.com/c/tg/codedump_notes。
Download Telegram
#博客

周刊(第13期):重读Raft论文中的集群成员变更算法(一):理论篇

最近又重读了大论文这部分的内容,以下是重读时做的一些记录。这部分内容打算分为两篇文章,上篇讲解成员变更流程的理论基础,下篇讲解实践中存在的问题。

博客:https://www.codedump.info/post/20220417-weekly-13/
公众号:https://mp.weixin.qq.com/s/HGdJF_cN4yybmn3orERRPw
邮件订阅:https://www.getrevue.co/profile/lichuang
#杂

divio出品的技术写作指南。这份文档中,将技术文档分为四类:教程(tutorials)、上手指南(how-to guides)、技术参考(technical reference)、解释原理类(explanation),分别给出了相关的写作技巧。

https://documentation.divio.com/
#杂

上网久了,难免会跟人就不同的问题起冲突。

这些冲突,除去意识形态、屁股在哪里等难以弥合的gap之外,还有相当一大部分是在于冲突的双方对同一件事情的定义不一样导致的。举几个例子:

我记得以前知乎上有一个问题“现在的男生为什么不追求女生”,下面的回答里有一个简洁的回答我印象深刻,大意是说“可能是因为这些女生没把屌丝当人看”。在这个有点抖机灵的回答里,回答的一方想表达的是:对“追”这个事情的定义,什么样的人追才算是“追”,两者的定义并不一样。

类似的,还有一个问题是,如何看待有些公司的老板一天工作十几个小时还能保持精力充沛(大意,忘记了具体的题目),有一个回答说:那是因为老板把和用户应酬、打高尔夫之类的事情也算作“工作”了,当然不会觉得这样下来十几个小时还会累。这又是一个因为大家对“工作”的定义不一致导致的gap。

我最近在看辩论类节目《奇葩说》的时候,也是感觉到:同一个问题,正方可以从自己的角度去解释这个问题,反方也是,辩论的题目通常是一个“光谱”,而不是非黑即白的,如何有利于自己就怎么解释。

当然我们很多时候都不必去和人“辩论”,但是为了提高沟通的效率、减少争端,当有gap出现的时候,应该想想:

1、这个问题双方有gap,是不是因为对问题的定义就不一样?
2、对方提出了问题,我是否清楚ta的疑问在哪里?这时候,可能需要一个反问来确定问题,比如“你说的是XXX这样的情况吗”,之类的。
3、我的角度对方get不到,这才是常态,所以才需要沟通和交流,而不是争执,争执最后变成了各说各话。

总之,这一大段话下来,我想表达的是:语言通常只有一个维度,而如何解释又有很多维度,先对齐两边的解释和维度,才有利于交流沟通。
想起知乎上那个问题:既然知道读书很快就忘了,那读书的意义在哪里(大意如此)?
#杂

由于最近换了一台Apple M1架构的笔记本,原先Intel架构上的应用全部需要重新安装,花了几天时间基本把常用的软件装齐全了,下面列表做一个简单的记录。

括号中的备注说明如下:
cli:命令行工具。
买断:一次性买断再无后续费用。
年会员:需要每年续费。

* 编辑器:sublime text 4、Beyond Compare(买断)、MacVim
* IDE:vs code
* IM:微信、电报、飞书、QQ
* 终端:wezterm、iTrem2
* 影音播放器:网易云音乐(年会员)、QQ影音
* 输入法:搜狗输入法
* 笔记类软件:typora(买断)、obsidian、flomo(年会员)
* 浏览器:chrome、firefox
* 翻译类软件:有道词典、deepL
* 代码管理工具:git(cli)、fork、Notifier for GitHub(chrome插件,用于接收Github通知)
* 画图工具:OmniGraffle(买断)
* 文档阅读:pdf expert(买断)、MarginNote3(买断)
* 下载工具:迅雷、Downie 4(买断)
* 密码管理:Enpass
* 解压缩工具:Unarchiver
* 截图工具:Snipaste
* 书签管理:Raindrop
* VPN类:Panda、ShadowSocks 客户端
* 图床:Picgo
* 系统监控类:Stats、Tencent Lemon
* 快速启动:Alfred 4
* 软件安装管理:brew、pip
* 其它:tokei(cli,代码统计工具)、wget(cli)、youtube-dl(cli)、hugo(cli,静态博客生成器)、cmake、clang、delta、lnav(cli,看日志工具)、Oh-My-Zsh
#文章
有知有行创始人孟岩(不是以前程序员圈CSDN的那个孟岩)的文章《理性》,可能是最近这段时间看过的最好的一篇文章,奈何因为战争、疫情等等原因,淹没在了一群信息里。

我也在下面留言了:”文章是很好,但是我可能认为《十三邀》的那句开场slogan“看世界,带着偏见”才更接近现实世界的样子,绝大部分时候都是带着偏见看世界,由着偏见来解释看到的,这才是常态,反倒是所谓的“客观”、“理性”,最后也被放到“偏见”下被解释:即认为我看到的才是客观理性,而你不是。so sad。“

看完这篇文章之后,任何时候再看到新闻、信息然后再潜意识的筛选我“看到”的信息时,会下意识地反问一下自己:明明这篇报道里有很多信息,为什么我只看到这些,只看到这些意味着我有哪些倾向才会下意识地做出这些过滤?

https://mp.weixin.qq.com/s/Ct52vs4GO7A5oUiEhFXVqA
👍2
#项目
mas:一款在Mac终端下命令行形式安装、卸载、管理app store软件的工具。

按常理来说,直接到app store里面找软件安装即可,但是有时候会出现app store一直在转圈又装不上的情况,于是这个工具就有了用武之地,我用它把装到一半卡在中间进度不动的Xcode装上了。

至于原理,我粗浅的理解。那些卡在一半没有装完的软件,用mas的list命令(列举当前所有已安装软件)实际上是找不到的,而app store的UI界面没有一个入口能够删除这种未安装成功的旧数据重试,这样残留的安装进度一直在启动台里。mas相当于提供了一个“不管3721清除重装软件”的入口:只要这个软件在已安装列表里找不到,就能用它来安装。

https://github.com/mas-cli/mas
👍9
#项目
G家出品的Go语言内存版本的Btree实现:https://github.com/google/btree

Btree这样的数据结构,更多是为了应付磁盘读写慢,所以设计成了每次读写磁盘的数量单位至少为一个物理页面。因此,要实现使用Btree的存储引擎,要加一个“页面管理器”模块,这个模块也可以用mmap来做,这些都在我之前的博客有涉及。

所以G家的这个内存版Btree实现,实际在项目里用的应该不多,因为如果定位是“内存里的容器”,有更多别的选择。但是嘛,拿来阅读理解Btree算法总还是不错的。

之所以看到这个项目,是因为这篇文章的推荐:

https://www.scylladb.com/2022/04/27/shaving-40-off-googles-b-tree-implementation-with-go-generics/
👍7👏2
Forwarded from 不求甚解
#Web #GitHub

🧠 可视化概率论 —— Seeing Theory

👀 Seeing Theory 是一个非常有趣的网站,致力于用数据可视化让人们更容易理解统计概念,由Daniel Kunin在布朗大学读本科的时候制作。网站具有以下特点:

🔸 支持英语、简体中文、西班牙语三种语言;
🔸 课程支持交互,并非完全静态内容;
🔸 支持下载英文版 PDF 教材;
🔸 适配移动设备;

🎲 整个网站让教学和概念以非常互动和友好的方式呈现给用户,寓教于乐,质量颇高。开发者将项目开源于 GitHub
👍17
#杂
"跟学生聊天,说尽量要从事喜欢的工作。这话经常被解读为“理想主义”,但其实非常实际。不仅是因为喜欢做的事情更容易做好,也是因为成人的世界和学生不同,比较冷漠,比较孤独。工作不比考试,往往没有立竿见影的成绩,没有小红花,很少有认可,甚至暖心的话都很少,但批评和指责却很多。在这样一个世界里,只能自己给自己加油,自我认可,努力坚持,并坚持努力。如果是喜欢的事,这一切会容易很多。"

这条微博的博主是《置身事内》一书的作者兰小欢。

https://weibo.com/1808814424/LqZBJtzUD
👍123