咖啡馆的体验,我的随身装备与软件工具分享:ra-multiplex, sunshine, moonlight, watchman
· ☕ 3 min read
近期的生活日记🍂北方的秋天🍂
· ☕ 3 min read
黄山 爬山
· ☕ 1 min read
记录第一次给 GNU/Emacs 上游贡献代码的经历
· ☕ 2 min read
云南 大理
· ☕ 1 min read
Enhance Emacs rg.el with which-function support
· ☕ 2 min read
近期的生活日记 ❄️ 北方的冬天 ❄️
· ☕ 6 min read
Linux 下使用 xkb 将 CapsLock 键映射为 Ctrl 键, 同时将 Ctrl 键映射为 Hyper 键
· ☕ 2 min read
SearXNG,启动!
· ☕ 1 min read
爬山 香山
· ☕ 0 min read
入手了一款分体式红轴机械键盘
· ☕ 1 min read
浙江 舟山
· ☕ 0 min read
Cargo Test 的测试隔离性;使用 nextest-rs/nextest 来运行 Rust 的单元测试
· ☕ 5 min read
一个有趣问题: 如何让 3 个 goroutine 按顺序循环打印出 ABC?
· ☕ 2 min read
康威的生命游戏(Rust + WebAssembly)
· ☕ 2 min read
很早之前就知道有一个有趣的东西叫 conway’s game of life (康威的人生游戏),前段时间我用 Rust
实现了一遍,并且尝试将原作者提出的 2d
版本改成3d
版;还尝试了 Rust WebAssembly
,在网页上欣赏生命游戏。
秦皇岛 北戴河
· ☕ 1 min read
我是一匹来自西北高原的极寒荒瀚之地的西北狼。
但是,
为什么我这么喜欢看海?
游山玩水 十渡漂流
· ☕ 0 min read
[翻译/搬运] 写出安全 bash script 的简洁模板
· ☕ 9 min read
爬山 阳台山
· ☕ 0 min read
介绍一下我的生产力工具
· ☕ 10 min read
我的计算机是我日常打交道最多的设备, 就像是我的一位老朋友. 他懂我的心意.
不容忽视的 Goroutine Leak 以及如何排查
· ☕ 4 min read
我们可以用 golang
很轻松地进行并发编程,但是在并发编程过程中,得留意 goroutine
的泄露。
什么是 goroutine 泄露
其实 goroutine
泄露就是内存泄露的一种:你开启了一个 goroutine
,但是你开启完了就把它忘了或者不管它了,它以后是死是活,忙不忙,是不是阻塞了,你都就不关心它!(渣男/渣女行为)。然后这个 goroutine
要是一直活着就会占用你的内存资源,虽然一个 goroutine
占用的内存资源很少,但是要是成千上万的 goroutine
泄露了,后果还是很严重的。这就是 goroutine
泄露。
Condition Variables: 搞明白 go 语言的 sync.Cond
· ☕ 3 min read
条件变量(Condition VAriables)是一种并发原语,条件变量允许一个线程在某个条件不满足的时候进入睡眠状态,当条件满足时再唤醒它。条件变量还支持当条件满足时,唤醒一个(wake one)和唤醒所有(wake all)。
MIT 6.S081 操作系统 课后实验笔记[Lab Utils & System Call]
· ☕ 7 min read
实验环境搭建
课程主页:MIT 6.S081 Operating System
最开始make qemu
报错,提示我没有 riscv64 版本的 binutils:
|
|
ArchLinux
这样安装相关依赖,其他系统参考: 6.S081 tools / Fall 2020
MIT-6.824 分布式系统 课后实验 Lab3 A (Fault-tolerant Key/Value Service)
· ☕ 3 min read
在lab2
已经完成了简单的raft
, 在lab3
里要完成一个key-value
数据库。
数据库服务端应该有这三个接口:
Get(key string)
Put(key, value string)
Append(key, value string)
// 如果 key 不存在,那么有等同于 Put
客户端和 Clerk
交互, Clerk
和raft server
交互。
MIT-6.824 分布式系统 课后实验 Lab2 A/B/C (Raft Election, Log Replication, Persistence)
· ☕ 9 min read
raft 简要介绍
raft
是一种分布式一致性算法,可以先看看这里:Raft Consensus Algorithm 的互动小程序来对raft
有个感性的认知,然后再读 paper。
raft 的角色
论文:/In Search of an Understandable Consensus Algorithm 里描述的 raft 算法有这几种角色:
MIT-6.824 分布式系统 课后实验 Lab1 (Map Reduce)
· ☕ 6 min read
Map-Reduce 论文阅读
分析
实验要求 在 mr/master.go, mr/worker.go, and mr/rpc.go.
中编码,并且只指定了 reduce worker
的数量:nreduce
。
master
最后要以 go run mrmaster.go pg-*.txt
的方式运行,每一个.txt
文件对应一个split
,一个split
分派一个mapworker