如何实现多人协作功能
最传统以及多人写作的文本编辑器采用的算法多为 Operational transformation。
OT Explained对OT算法提供了可视化演示。
🇬🇧Figma是如何设计多人协作功能的?
Figma团队针对设计应用特有的需求,调研了OT、CRDT 方案。最终基于CRDT算法进行了修改,改为有中心,多CRDT结构。
🇨🇳实时协同编辑的实现
这篇是2014年的文章,介绍了现有的协同编辑现有的实现方案,对各个方案的基本原理解释的不错。
🇨🇳在macOS上如何快速搭建自己的开发环境
搭建开发环境主要分为三部分:
- 管理与同步所有的配置
- 初始化各种配置。环境变量,shell、ssh配置等
- 安装常用软件。命令行工具和App
管理与同步所有的配置
我在Google Drive中创建一个 dotfiles
的文件夹,里面的配置文件软链到目标目录下。这样修改配置文件时,能够立刻同步到网盘中。当然用iCloud或者DropBox也没问题。
之所以没采用 git
主要出于两个原因:
- 我希望在修改配置后能立即同步,如果其他设备也用网盘同步,无需任何操作立即生效。
- 不需要历史记录
初始化各种配置。环境变量,shell、ssh配置等
在 dotfiles
中放一个 bootstrap.sh
脚本,里面包含:
- 请求
sudo
权限 - 安装
Xcode Command Line Tools
- 安装 HomeBrew
- 建立配置文件的软链,或者拷贝配置文件到目标目录
- 安装常用软件。
对于 dotfiles
怎么管理,也可以看看这个repo:Awesome dotfiles
安装常用软件
几乎所有软件都通过 Brewfile
维护。这个文件里包含:
只需要 brew bundle --file=Brewfile
即可安装所有。
如果希望实时更新 Brewfile,也可以在安装软件后,通过 brew bundle dump
生成 Brewfile。
小工具推荐
exa: 一个使用Rust编写的现代版 ls
。可以查看文件的git状态,速度也更快。可以作为 ls
命令的 alias
ripgrep: 一个使用Rust编写的行搜索工具,比现有的大多数工具都要快。可以替代 thesilversearcher、grep
与 ack
。
CLI: improved: 这篇文章中也介绍了很多比系统自带更好用的命令行工具