about summary refs log tree commit diff homepage
path: root/blog/2020/index.md
blob: e56971abcae70974b446cf41c6e3c1006e99115d (plain) (blame)
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
+++
title = "The 2020 Experience"
rss = "My life in 2020"
date = Date(2023, 1, 7)
tags = ["lyf", "exp"]
+++

# The 2020 Experience

!!! note "Not to be confused with <em>The 20/20 Experience</em>"

\toc

## The Germination

To understand my 2020, we have to travel back a few months,
when it all started.  No, not *that thing* beginning at the end of '19.
I am talking about *my* 2020 experience, remember?

The story started in October 1810 in the not-so-little city of Munich, Germany.
Alright, it sounds like I lied about the 2019 and my story part,
but bear with me, it's all connected.  Anyhow, some Bavarian couple
got married and threw a big party.  People like parties, so naturally
they celebrated the anniversaries, year after year until it became
a tradition known to in English as the [Oktoberfest].

Over two centuries years later, on the wedding day of another
Bavarian couple,[^wedding] DigitalOcean began to an annual PR campaign
on the same month called Hacktoberfest.  I know, to many of you maintaining
projects on GitHub (and more recently GitLab.com), the name might not
remind you of something festive, but it really opened a new chapter in my life.

[Back to the future] in 2019, it was my first year taking part in the event.
The premise was that one would receive a t-shirt after having filed at least
four GitHub Pull Requests™.[^pr]  Unlike *plethora*, this does not sound like
it was a lot, yet more than I ever had done.  Getting out of my comfort zone
was the first baby step, opening various opportunities in the upcoming months
and perhaps, years.

~~~
<figure>
  <img src=/assets/codersrank.png
       alt='Graph showing steeper growth from October 2019'>
  <figcaption>My activities on GitHub over the years</figcaption>
</figure>
~~~

## The Fruition

Probably what I benefited the most from participating in Hacktoberfest
was learning to not be afraid of communicating with complete strangers
maintaining the software I use.  Stepping into 2020, I started to do
a larger variety of stuff in Python, which made installing libraries
happen on a regular basis.  The international Internet connection from home
at the time was unstable and usually downloads from the package warehouse
was a few kBps and that definitely did not help.  A few moments later,
I found myself on [PyPA]'s IRC channel discussing strategies to speed up
pip downloading.

After several days of on-off conversations (mostly I was asking questions
to fill in the blanks), a proposal was under draft: I was an undergrad
sophomore and had been eyeing on Google Summer of Code (GSoC) for quite a while.
Applying for pip wasn't the plan, but rather [Octave], the first big project
I have contributed code to.[^1st]  Now thinking about it, it was
a better choice since I was more comfortable with pip's tech stack.
The [rest of the story](gsoc) was already noted down so I won't be
retelling it here.

## The Disease

When the world had been battling SARS-CoV-2 for a few months, Việt Nam
was barely affected.  By refusing inbound travelers and temporary switching
to work/study-from-home, the number of cases and deaths was neglible
and by the end of summer we were virtually back to normal.  I hated
that most organizations, my university included, straight up offered
big techs our data without a second thought, and was thankful online learning
did not last.

Like many others, I spent that summer rarely leaving the house.  I was grateful
of GSoC for keeping me busy and giving me the opportunity to socialize
with new cool people.  It was impossible for me to catch *the* virus, I thought.
I was not wrong though, but I got something else: [dengue fever].  The fever
wasn't too bad, I was high as a kite for half a week, but never critical.
The aftermath, however, was much less pleasant.

For the next week, I was in a living hell because of a throat infection.
I'd had sore throats before, quite regularly in fact, often at least
once every few months, but they had been a mere inconvenience.  Usually,
all I'd gotta do had been to [person up], swallow a few times and get on
with my day.  This was different.  Everything hurt like a bitch.  The slightest
texture or flavor could cause minutes of pain.  For the first time,
I experience throat lozenges being the opposite of soothing.

For the entire week, I survived on undercooked scrambled eggs
and mushy porridge.  I had to take α-chymotrypsin[^choay] before every meal
and was practically microdosing it throughout the day to be able
to drink water.  You can't imagine how happy I was when I could finally
eat rice again.  While the infection was not directly caused by dengue
(it only weakened my immune system), the trauma was enough to make me finally
care about home mosquito eradication.  Guess who learnt it the hard way!

## The Profit

GSoC gave me in stipend 3000 USD, minus Payoneer fees and shitty currency
exchange "tax".  That was the largest sum I'd ever had in my hands.
Because of the low cost of living in Việt Nam,[^cost] I no longer completely
financially dependent on my parents.  I could pay my own school fees
(scholarship would give back the money *months* after paying), hang out
more with friends (we had zero-COVID for a while, remember?), tip free software
projects and services I had (and have) been using for years.

More importantly, I could buy myself *future* e-waste.  I got a [Model M]
so that I no longer need to change keyboard every year, a [lefty] [Ploopy]
to ease my traffic-accident-injured right wrist that's prolly never gonna
fully heal, a [new DAP to replace my dead walk man][nano], my [first phone]
and perhaps some other things.  [No worries], I'm still daily driving them
today, they ain't ended up in the landfill (yet).

## The Migrations

Admittedly, the first *[freedesktop.org] smartphone* caught my eye was actually
the Librem 5, which I could afford neither the time nor the money for.
I know, the terminology sounds ridiculous, but *Linux* would include Android
and *GNU*'d exclude [postmarketOS].  Anyway, [Purism], the company behind
the Librems, has seriously invested in adaptive GUI and federated services.
My first [ActivityPub] account was provided by [Librem One].

It was not the first time I use a federated service.  I've used email
for as long as I can remember and begun to use [Matrix] intensively
since I entered university.  So what (were there to be) changed?
At the time, my online presence[^jargon] was primarily inside
[surveillance capitalist walled gardens][sphinx].  I was mostly active(ly
posting) on bird site socializing with people I acquainted during my GSoC
and publishing my development/shitpost[^log] videos to YouTube.

Nothing on fedi really caught my eyes, until I got (hyped up for getting)
my PinePhone.  Its software landscape was incredibly fast moving back then.
Most peripherals were barely working.  Desktop programs were being ported
for narrower screens using brand new convergent libraries.  Many developers
were contracted by Purism or sponsored by Pine64, a large fraction of whom
are free software purists, rejecting spyware disguised as social media.
Never before, hanging out in chat rooms[^bridge] and the Fediverse
were the absolutely best ways to keep up with life-quality-changing updates.

Like with desktop-handheld convergence, I was impressed with Fediverse's
interoperability between multiple media formats, from (micro)blogs
to picture albums to videos.  Imagine being able to share and comment
on a YouTube directly from Twitter!  Shortly, I registered for a [PeerTube]
account and migrate all my videos there.  The longer I stayed on fedi,
the more cool stuff I found and the more satisfied I was.  Fast forward
over two years, I have deleted or permanently logged out of most;
only quiddit[^reddit] is left.

One thing led to another, [Martijn Braam's apps][apps] introduced me
to [SourceHut], which embraces email for federation and focuses
on useful stuff like [SSH for CI], instead of trying to be
a [social media][game] or [relicense the projects it hosts][copilot].
I have moved most of the software I maintain [from GitHub] to sr.ht,
but the network effect is too strong: I still have to stick around
with the former to contribute to software I regularly use.

However, it's unlikely that most of those growing up with GitHub,
especially inexperienced contributors, will be [willing to adapt to
a workflow revolving around mailing lists][husky] for such kind of forge
to become mainstream again.  On the bright side, I start to seeing more
larger projects hosting their development platform, and I am watching
[forge federation] with great interest.

## The Moral

At this point, you probably wonder, what I am trying to tell from all these
random rambling.  Welp, nothing.  My life is [not like the movies],
there ain't no plot, no meaning.  The whole point of this log is to bridge
the gap between [/blog](..) and [/blog/2020/gsoc](gsoc).  2020 was indeed
positively life-changing for me, tho/so I can't expect most of y'all'll
be able to relate.  2023 is already underway, and I hope we will all
have a year we can look back to the same way I did in this post.  [Perchance.]

[^wedding]: There must be at least one wedding everyday in Bavaria, I think.
[^pr]: It is a vendor locked-in version of [git-request-pull].
[^1st]: Not counting Vim because it was a [keymap] contribution.
[^choay]: Proteolytic enzyme; taken orally for inflammation.  Shit's magic.
[^cost]: A meal at a diner costed around 1 USD at the time.
[^jargon]: Gah, I hate this term!
[^log]: I don't like keeping too serious logs.
[^bridge]: A room was bridged between 5 protocols, fun but also an eye sore.
[^reddit]: Hey, the site name was a pun on *read it* in the first place!

[Oktoberfest]: https://en.wikipedia.org/wiki/Oktoberfest
[Back to the future]: https://www.whoismrrobot.com
[PyPA]: https://pypa.io
[Octave]: https://octave.org
[dengue fever]: https://en.wikipedia.org/wiki/Dengue_fever
[person up]: https://en.wiktionary.org/wiki/person_up
[Model M]: https://www.pckeyboard.com
[lefty]: https://video.hardlimit.com/w/uucN1eWVurTSzY325PLS2s
[Ploopy]: https://ploopy.co
[nano]: https://nixnet.social/notice/AI9eETauDunmiiIfHE
[first phone]: gsoc/article/4/#snap_back_to_reality
[No worries]: https://www.youtube.com/watch?v=5z25pGEGBM4
[freedesktop.org]: https://freedesktop.org
[postmarketOS]: https://postmarketos.org
[Purism]: https://puri.sm
[ActivityPub]: https://activitypub.rocks
[Librem One]: https://librem.one
[Matrix]: https://matrix.org
[sphinx]: https://github.com/McSinyx/mcsinyx.github.io/commit/af8e02ec3989.patch
[PeerTube]: https://joinpeertube.org
[apps]: https://blog.brixit.nl/apps
[SourceHut]: https://sourcehut.org
[SSH for CI]: https://man.sr.ht/builds.sr.ht/build-ssh.md
[game]: https://arxiv.org/abs/2006.02371
[copilot]: https://githubcopilotlitigation.com
[from GitHub]: https://GiveUpGitHub.org
[husky]: https://adol.pw/2022/05/09/maintaining-first-project-part-iv-end
[forge federation]: https://forgefriends.org/blog/2022/06/30/2022-06-state-forge-federation
[Perchance.]: https://fe.disroot.org/@mcsinyx/posts/ALaW77HgCSPq4pLxpo
[not like the movies]: https://www.youtube.com/watch?v=9ewTkrfaWtA
[git-request-pull]: https://git-scm.com/docs/git-request-pull
[keymap]: /works/#simplified_vietnamese_keymaps