-
Notifications
You must be signed in to change notification settings - Fork 0
/
wanna-be-a-mediocre-oss-worker.html
409 lines (231 loc) · 13.1 KB
/
wanna-be-a-mediocre-oss-worker.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
<!DOCTYPE html>
<html>
<head>
<title>想成為「平凡」的開源工作者?</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="styles.css">
<style type="text/css">
.text-red {
color: firebrick;
}
</style>
</head>
<body>
<textarea id="source">
class: middle, center
# 想成為<br>「平凡」的開源工作者?
<img
style="border-radius: 50px"
src="https://www.gravatar.com/avatar/67644641ead7ae60a795a14b7e102973?s=100"
alt="Weihang Lo">
<a href="https://github.com/weihanglo">@weihanglo</a>
---
class: top, center
# 開源工作者<br>需具備什麼特質?
<img width="80%" src="https://doc.rust-lang.org/book/img/ferris/does_not_compile.svg">
---
class: top, center
rsc - Go 語言最知名的維護者;Distinguished Engineer @ Google
<iframe loading="lazy" width="100%" height="550" src="https://swtch.com/~rsc/"></iframe>
---
class: top, center
[Niko Matsakis] - Rust 語言元老級維護者; Senior Principal Engineer @ Amazon
<img width="100%" src="wanna-be-a-mediocre-oss-worker/niko-eurorust23.jpg">
[Niko Matsakis]: https://github.com/nikomatsakis
---
class: top, center
[Niko Matsakis] - Rust 語言元老級維護者; Senior Principal Engineer @ Amazon
<img width="40%" src="wanna-be-a-mediocre-oss-worker/niko-profile.png">
---
class: middle, center
<video width="560" height="420" controls>
<source src="wanna-be-a-mediocre-oss-worker/linus-nvidia.mp4" type="video/mp4">
</video>
---
class: middle, center
# @weihanglo 是誰?
---
## @weihanglo 是誰?
* Cargo 專案貢獻者
* Cargo - Rust 程式語言御用套件管理器
<img width="70%" src="https://user-images.githubusercontent.com/3369694/216223523-68999f79-76ae-48ce-bd83-3a8018c35d24.jpg">
---
## Rust 程式語言
<img width="25%" src="https://foundation.rust-lang.org/img/member/microsoft.png">
<img width="25%" src="https://foundation.rust-lang.org/img/member/aws.png">
<img width="25%" src="https://foundation.rust-lang.org/img/member/microsoft.png">
<img width="25%" src="https://foundation.rust-lang.org/img/member/meta.png">
<img width="15%" src="https://assets-global.website-files.com/6257adef93867e50d84d30e2/636e0a6a49cf127bf92de1e2_icon_clyde_blurple_RGB.png">
<img width="15%" src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/33/Figma-logo.svg/800px-Figma-logo.svg.png">
<img width="20%" src="https://www.whitehouse.gov/wp-content/uploads/2021/04/P20210303AS-1901-cropped.jpg?w=1536"><sup>*</sup>
[\* White House: Future Software Should Be Memory Safe (e.g. Rust)][whitehouse]
[whitehouse]: https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/)
---
## Cargo 專案貢獻者
* 不是教授
* 不會反轉二元樹
* 沒有顯赫的學經歷
* 仍是普通的軟體工程師,連 senior 都不是
* 沒有養貓 🐈
---
class: middle, center
# 那憑啥維護這麼重要的專案?
![](https://memeprod.sgp1.digitaloceanspaces.com/user-wtf/1584110302261.jpg)
---
class: middle, center
# 我貢獻的初衷是什麼?
---
class: top, center
### 想花三天打造 [PyCon Taiwan 會議御用 App](https://github.com/weihanglo/pycontw-mobile)
<img width="70%" src="wanna-be-a-mediocre-oss-worker/pycontw17mobile.png">
---
### 想複製 Swift Algorithm Club 名利雙收
<iframe loading="lazy" width="100%" height="550" src="https://rust-algo.club/"></iframe>
---
## 開源的初衷
* 履歷鍍金 🏆
* 名聲、成就感 🙌🏾
* 樂趣 🛝
---
## 替 mdbook 加[可開闔的側邊目錄欄](https://github.com/rust-lang/mdBook/pull/1027 expandable sidebar)
![](https://weihanglo.tw/posts/2022/make-the-world-better-even-you-arent-a-super-hero/mdbook-expandable.gif)
---
## 感受到對方的用心
![](wanna-be-a-mediocre-oss-worker/close-pr-8622.png)
---
<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="en" dir="ltr">Just renovated issue label system in rust-lang/cargo. It's much easier for contributors to know what's next with new S-* labels. Helping issue triages is also welcome 👋🏾<br><br>Please read the doc! <a href="https://t.co/czx5M9k6CY">https://t.co/czx5M9k6CY</a> <a href="https://t.co/ogzeW40sWD">pic.twitter.com/ogzeW40sWD</a></p>— Weihang Lo 𓃺𓃹 (@weihanglo) <a href="https://twitter.com/weihanglo/status/1650065110205956097?ref_src=twsrc%5Etfw">April 23, 2023</a></blockquote>
---
## Review 6500 行的 PR
![](wanna-be-a-mediocre-oss-worker/cargo-add-pr.png)
---
### 替內部私有 API 加上文件
<iframe loading="lazy" width="100%" height="550" src="https://doc.rust-lang.org/nightly/nightly-rustc/cargo/sources/git/source/struct.GitSource.html"></iframe>
---
### 2022-09-09 至 2024-05-03</small>
| 貢獻種類 | 數量 |
| ----------- | --- |
| Issue 討論回覆 | 914 |
| Pull Request 審核 | 751 |
| Pull Request 貢獻 | 463 |
| RFC 討論審核 | 18 |
| FCP 討論審核 | 18 |
---
class: middle, center
# 事情並不總是一帆風順
---
### [有弄壞整個 library 的事蹟](https://docs.rs/crate/cargo/0.55.0)
<blockquote class="twitter-tweet"><p lang="zh" dir="ltr">今天才發現 Cargo 0.55.0 as a library 炸了,而且是我的 refactor 間接導致,覺得與有榮焉 🙇🙇♀️🙇🏾♂️<a href="https://t.co/166QjoP9Oo">https://t.co/166QjoP9Oo</a> <a href="https://t.co/kpfh2AnjHv">pic.twitter.com/kpfh2AnjHv</a></p>— Weihang Lo 𓃺𓃹 (@weihanglo) <a href="https://twitter.com/weihanglo/status/1427860255715725318?ref_src=twsrc%5Etfw">August 18, 2021</a></blockquote>
---
### [或是差點毀掉全世界的 bug](https://blog.rust-lang.org/inside-rust/2023/05/01/cargo-postmortem.html)
<iframe loading="lazy" width="100%" height="550" src="https://blog.rust-lang.org/inside-rust/2023/05/01/cargo-postmortem.html"></iframe>
---
最後,收到了 Cargo team member 的邀請
> Would you be interested in joining the weekly meeting of the Cargo Team? This would be the next step toward inviting you onto the team.
以及[幾個月後正式成為 member](https://blog.rust-lang.org/inside-rust/2022/03/31/cargo-team-changes.html)
> * Weihang has been <em class="text-red">providing thoughtful and helpful replies</em> on our issue tracker.
>
> * He has often had <em class="text-red">the patience to explain</em> to people what problem they're hitting and how to get unstuck.
>
> * He often <em class="text-red">summarizes technical conversations</em> clearly describing the available solutions and their costs both technical and <em class="text-red">more importantly human</em>.
---
## 平凡人也能有貢獻
* 比起超級英雄,更需要能信任的長期夥伴
* 不需執著於創造價值,減少成本也是思考方向
* 思考一下比較利益
* 適時回顧自己的初衷
---
<blockquote class="twitter-tweet"><p lang="zh" dir="ltr">以前一直想推廣「用貢獻開源專案取代刷題」的職涯發展路線,但貢獻的越久越覺得這條路完全沒有比較輕鬆欸<br><br>除非對貢獻某些專案特別有愛,而且願意以及知道怎麼用貢獻紀錄幫自己加分,不然以找工作來說刷題還是最佳解</p>— Stan Lo @[email protected] (@_st0012) <a href="https://twitter.com/_st0012/status/1579182510059433988?ref_src=twsrc%5Etfw">October 9, 2022</a></blockquote>
---
<blockquote class="twitter-tweet"><p lang="zh" dir="ltr">我理解做开源很重要的一件事是要放低期待,如果指望做个开源产品赚大钱那大概率会失望。<br><br>但如果你当成游戏来玩:欸!我游戏玩的好居然还能赚零花钱!而当你玩成了 Top 10%,可能就会有公司来找你签约做职业选手(全职开源),或是也可以借由流量转行去做主播或评测(赞助/教育/顾问 etc.),方法有很多</p>— Anthony Fu (@antfu7) <a href="https://twitter.com/antfu7/status/1700072532907282478?ref_src=twsrc%5Etfw">September 8, 2023</a></blockquote>
---
class: middle, center
# 有了頭銜,是否就不再平凡
---
### Cargo 成員準則
<iframe loading="lazy" width="100%" height="550" src="https://doc.crates.io/contrib/team.html#membership-expectations"></iframe>
---
### 責任開始變重
* 別人開始對你有更多期待
* 更多責任,害怕說錯話
* 產生「權威靜默效應」
<img width="30%" src="https://ih1.redbubble.net/image.1738795502.8816/bg,f8f8f8-flat,750x,075,f-pad,750x1000,f8f8f8.jpg">
---
class: middle, center
### 甚至為了該不該將 Rust org 秀在 GitHub Profile 苦惱了很久
<img width="100%" src="wanna-be-a-mediocre-oss-worker/rust-org-member.png">
---
<img width="20%" style="border-radius: 50%" src="https://avatars.githubusercontent.com/u/176295?v=4">
知名 live coder [@jonhoo](https://www.youtube.com/@jonhoo) 跟我說過:
_You don't need to worry about that._
> * 不需害怕標籤,標籤反應了現況,你有決策權,那其他人就應該評估你說出來話的份量
>
> * 如果因為害怕而選擇不貼上,貢獻者聽了他人意見,但最後被你拒絕,一來一回更消耗大家的精神
>
> * 說話時,有多少東西就說多少東西,不確定就說不確定,確定就說確定,這樣溝通效率往往更好
>
> * 不要害怕標籤。接受它,利用標籤來改善這個世界
---
class: middle, center
![](wanna-be-a-mediocre-oss-worker/pink-blob-exit-frame.jpg)
---
#### 知名專案 curl 作者收到死亡威脅
<iframe loading="lazy" width="100%" height="550" src="https://daniel.haxx.se/blog/2021/02/19/i-will-slaughter-you/"></iframe>
---
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Today in "Weird open source stuff":<br><br>I got a strangely passive aggressive email from <a href="https://twitter.com/NASA?ref_src=twsrc%5Etfw">@NASA</a>.<br><br>I mean, I love you <a href="https://twitter.com/NASA?ref_src=twsrc%5Etfw">@NASA</a>, and it's a real honour that you're using <a href="https://twitter.com/pydantic?ref_src=twsrc%5Etfw">@pydantic</a>, but why on earth are you (presumably) paying <a href="https://twitter.com/KPMG?ref_src=twsrc%5Etfw">@KPMG</a> lots of money to ask unimaginably dumb and uninformative… <a href="https://t.co/wrJwSURRez">pic.twitter.com/wrJwSURRez</a></p>— Samuel Colvin (@samuel_colvin) <a href="https://twitter.com/samuel_colvin/status/1785961190117536068?ref_src=twsrc%5Etfw">May 2, 2024</a></blockquote>
---
### [反正rust 文档稀烂,无力改进,爱谁谁吧](https://github.com/rust-lang/cargo/pull/10505)
<img width="60%" src="wanna-be-a-mediocre-oss-worker/pr10505.png">
<img width="50%" src="wanna-be-a-mediocre-oss-worker/who-cares.png">
---
### 維護者不是忘記 100+ emoji 的 issue<br>[而是害怕想起來](https://github.com/rust-lang/cargo/issues/1734#issuecomment-1911469616)
<img src="wanna-be-a-mediocre-oss-worker/rant-pr1734.png">
(全文 1,274 字,抱怨工具沒有尊重它的自由意志)
---
### 面對惡意的時候
* 培養額外的興趣
* 找尋志同道合的朋友一起分享吐槽
e.g. 源來適你
---
### 吐槽很爽
<img width="75%" src="wanna-be-a-mediocre-oss-worker/telegram2.png">
---
### 對心理支持也很有效
<img width="66%" src="wanna-be-a-mediocre-oss-worker/telegram1.png">
---
### 當然,也有溝通良好的例子
<img width="50%" src="wanna-be-a-mediocre-oss-worker/thank1.png">
<img width="50%" src="wanna-be-a-mediocre-oss-worker/thank2.png">
<img width="50%" src="wanna-be-a-mediocre-oss-worker/thank3.png">
<img width="50%" src="wanna-be-a-mediocre-oss-worker/thank4.png">
---
### 如果社群要崩解了 — Rust 基金會 logo 事件
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">Don't know how far it will go. <br>Just want everyone we care about to stay healthy, and we can continue resolving old and new issues together.<a href="https://t.co/rW7k7hRrCt">https://t.co/rW7k7hRrCt</a></p>— Weihang Lo 𓃺𓃹 (@weihanglo) <a href="https://twitter.com/weihanglo/status/1662985987641819136?ref_src=twsrc%5Etfw">May 29, 2023</a></blockquote>
---
### 給維護者的錦囊
* 開源貢獻是一種人生態度
* 永遠要記得對面是人類
---
### 給貢獻者的錦囊
* 開源貢獻是一種人生態度
* 永遠要記得對面是人類
---
## 一些分享
* [《Working in Public: The Making and Maintenance of Open Source Software》](https://www.amazon.com/Working-Public-Making-Maintenance-Software/dp/0578675862)
* [《Mental Health in Open Source》](https://antfu.me/posts/mental-health-oss)
* [《Things I Don’t Know as of 2018》](https://overreacted.io/things-i-dont-know-as-of-2018)
* [《The Mediocre Programmer》](https://themediocreprogrammer.com/)
* [YouTube - Helping an Ecosystem Fade Away](https://youtu.be/90B_AmxN_iw)
* [Podcast - Soft Skills Engineering](https://softskills.audio/)
---
class: middle, center
# 不必是眾星拱月那個月 也能替世界增添光芒
---
</textarea>
<script src="https://remarkjs.com/downloads/remark-latest.min.js" type="text/javascript">
</script>
<script type="text/javascript">
var slideshow = remark.create();
</script>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</body>
</html>