summaryrefslogtreecommitdiff
path: root/blog/post/2019-06-24.html
blob: 77611e76900840775e436c2001939e9778a98412 (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
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
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
<!DOCTYPE html><html><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="#000000">
<title>Chrisoft::Blog(r#"Working as an intern for "the spyware corporation"")</title>
<meta name="description" content="«Working as an intern for &quot;the spyware corporation&quot;» de spelunca ursae">
<meta name="author" content="Chris Xiong">
<script type="text/javascript" src="/panel.js"></script>
<script type="text/javascript" src="/themer.js"></script>
<script type="text/javascript" src="/blog/footnoter.js"></script>
<script type="text/javascript" src="/blog/aes-js.js"></script>
<script type="text/javascript" src="/blog/scrypt.js"></script>
<script type="text/javascript" src="/blog/sha256.js"></script>
<script type="text/javascript" src="/blog/decryptor.js"></script>
<link rel="stylesheet" type="text/css" href="/common.css">
<link rel="stylesheet" type="text/css" href="/panel.css">
<link rel="stylesheet" type="text/css" href="/theme0a.css" id="theme0a">
<link rel="stylesheet" type="text/css" href="/theme0b.css" id="theme0b">
<link rel="stylesheet" type="text/css" href="/theme1a.css" id="theme1a">
<link rel="stylesheet" type="text/css" href="/theme1b.css" id="theme1b">
<link rel="stylesheet" type="text/css" href="/theme2a.css" id="theme2a">
<link rel="stylesheet" type="text/css" href="/theme2b.css" id="theme2b">
<link rel="stylesheet" type="text/css" href="/theme3a.css" id="theme3a">
<link rel="stylesheet" type="text/css" href="/theme3b.css" id="theme3b">
<link rel="stylesheet" type="text/css" href="/blog/blogext.css">
<script>
function ol()
{
	window.onresize=function()
	{
		if(window.innerWidth<768)
		setupevents();
		else unsetevents();
	}
	window.onresize();
	loadTheme();
	_decryptonload();
}
</script>
</head>
<body onload="ol()" style="overflow-x:hidden;">
	<div id="panel" class="TText">
		<ul id="panellist">
			<li><a href="/"><h1>Chrisoft</h1></a></li>
			<li><a href="/blog"><h2>Blog</h2></a></li>
			<li><a href="#"><h3 id="title">Working as an intern for "the spyware corporation"</h3></a></li>
			<li><span>Tags</span>
			<ul id="tagslist">
			<li><a href="/blog/list/garbage/">garbage</a></li><li><a href="/blog/list/sophistry/">sophistry</a></li></ul>
			</li>
			<li id="tocouter">
				<span>Table of Contents</span>
				<ul id="tocroot">
				<li><a class="toctarg" href="#tocanch0">A few notes upfront…</a></li><li><a class="toctarg" href="#tocanch1">The Decision</a></li><li><a class="toctarg" href="#tocanch2">The Workplace, the
Colleagues and the Life</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch3">My work</a></li><li><a class="toctarg" href="#tocanch4">Payment</a></li><li><a class="toctarg" href="#tocanch5">Final Days &amp; The days after</a></li></ul></li><li><a class="toctarg" href="#tocanch6">Shitty Code</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch7">pasteFilesV2 also deletes
file</a></li><li><a class="toctarg" href="#tocanch8">Practically no coding
conventions.</a></li></ul></li><li><a class="toctarg" href="#tocanch9">Weirdness, quirks and
other strange things</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch10">“Developers’ lives matter!”</a></li><li><a class="toctarg" href="#tocanch11">Incompetent coworkers
start to pop up</a></li><li><a class="toctarg" href="#tocanch12">“Designer-driven” development</a></li><li><a class="toctarg" href="#tocanch13">Code review, or “code
flattery”?</a></li><li><a class="toctarg" href="#tocanch14">Privacy issues?</a></li></ul></li><li><a class="toctarg" href="#tocanch15">Dick moves</a></li><li><ul class="tocnode"><li><a class="toctarg" href="#tocanch16">… as taken literally</a></li><li><a class="toctarg" href="#tocanch17">Rushing V20</a></li><li><a class="toctarg" href="#tocanch18">Lacking / bad community
interaction</a></li><li><a class="toctarg" href="#tocanch19">Illegal business practice</a></li><li><a class="toctarg" href="#tocanch20">Restructure shenanigans</a></li><li><a class="toctarg" href="#tocanch21">Walking away from “the
founders’ spirits”</a></li></ul></li><li><a class="toctarg" href="#tocanch22">Epilogue</a></li></ul>
			</li>
			<li style="margin-left:-0.5em"><a id="prevp" href="2019-04-25.html">Prev post</a></li>
			<li style="margin-left:-0.5em"><a id="nextp" href="2019-09-04.html">Next post</a></li>
		</ul>
	</div>
	<div id="content">
		<h2 id="titleh" class="TText" style="font-wight:normal;">Working as an intern for "the spyware corporation"</h2>
		<div id="datetags" class="TText" style="margin-bottom:1em;">2019-06-24<br>#garbage #sophistry</div>
		<hr><div id="article" class="TText"><article>
<h2 id="tocanch0" class="tvis">A few notes upfront…</h2>
<p>This post was supposed to come out as soon as it was finished. Well
it looks complete but for some reason I couldn’t remember, I never made
it public. Published 2024-02-17 without further modification.</p>
<p>Original post starts below.</p>
<p>If you are still unaware, the title is just sarcasm. As far as I
know, the division I was working for does not work on any spyware.</p>
<p>Also, this article is <strong>not</strong> approved by the propaganda
division whatsoever. Everything is straight up garbage.</p>
<h2 id="tocanch1" class="tvis">The Decision</h2>
<p>As I have made up my mind to ‘strategically’ delay my graduation by a
year, I initially hoped for taking the following months off and I did
not plan for my graduation thesis at all. Therefore I intentionally
skipped the subject selection process. All I wanted to do is chill for
half an year and maybe make some contributions to several free software
projects. Teachers noticed this and managed to persuade me to finish the
graduation thesis this year. Only at this time did I realize how stupid
I was – I am going to contribute to projects anyway, why don’t I take
the chance to finish my thesis?</p>
<p>However, as I have missed the opportunity to work on projects led by
professors in my college, I had to look for intern jobs elsewhere. As I
am not going to work for unethical companies, many companies my
classmates are rushing into are not feasible for me. But actually I
already have my choice in my mind: cause I am really interested in
spying on how the ‘spyware corporation’ works on a daily basis.</p>
<p>Finally, the choice was made. I tossed in my CV, which was put
together in 5 minutes to them. Before long I got a quick reply. With
everything settled down rather quickly, off I went.</p>
<p>To sum it up, it was because:</p>
<ul>
<li>I was curious.</li>
<li>I had plenty of time to waste.</li>
<li>I wanted to get away from the campus I already spent 3 years
in.</li>
<li>with the additional benefit of finishing my graduation project.</li>
</ul>
<h2 id="tocanch2" class="tvis">The Workplace, the
Colleagues and the Life</h2>
<p>The workplace is nothing fancy. Dimly lighted, the work area is
fairly cozy, possibly designed specially for us cavern-dwelling
programmers. Computing devices are scattered throughout the enormous
room, in which 90% of the local employees work.</p>
<p>Co-workers here are competent to say at least (until they started
rushing V20, as noted below). To list a few:</p>
<ul>
<li><a href="https://www.blumia.net/about.html">BLumia</a>: no more
elaboration needed.</li>
<li><a href="https://blog.justforlxz.com/about/">Kirigaya</a>: a little
bit mean, a little bit naughty, but still nice guy to chat with.</li>
<li><a href="https://github.com/zccrs">zccrs</a>: damn this guy
definitely knows what he is doing when reviewing my shitty code. Rumors
has it that he was once a wizard working for Nokia.</li>
<li><a href="https://hualet.org/">Hualet</a>: that one who interviewed
me. Passionate about free software. We talk quite a lot in private.</li>
</ul>
<p>Life quality in Wuhan was not a huge degradation compared to that of
my university times, I’d put it that way. Commute times weren’t super
long, foods here are nice (at least it rids me of the same kind of foods
I had to have everyday on the campus), also I could for the first time
cook for myself.</p>
<p>Stereotype of the climate in southern China was broken: your clothes
<strong>will</strong> be able to dry within a day, and you couldn’t
really squeeze water out of the air.</p>
<p>Public transit in Wuhan was tolerable until you got out of reach of
the metro: the bus service was <strong>horrendous</strong>. There was no
indication of where the actual station was, and the bus stops randomly
‘roughly around’. I tried it once and dreaded having to take a bus ever
since (fortunately, I didn’t).</p>
<p>I lived in a rental room provided by Ziroom, which is essentially an
apartment rental service broker. The apartment was shared by 5 persons,
from which formed 2 couples, and … you guessed it, me. The room was
relatively small (around 14m<sup>2</sup> in area), but super snug
compared to my dorm in university. The real reason I find it that way,
however, could ultimately be the fact that I was the only one inside and
could do what ever I want.</p>
<p>Interactions with roommates were minimal. In fact, I intentionally
avoid interactions with my roommates because I was that type of a
person.</p>
<p>By the way, cooking is really deep a rabbit hole and I’m just getting
down into it.</p>
<p>All in all, it was a freshing experience for ‘an extremely spoiled
child’ (as all my family members told me). I had fun, and I came back
with every body part intact. I’m content with it.</p>
<h3 id="tocanch3" class="tvis">My work</h3>
<p>I mainly worked on the following things:</p>
<ul>
<li>Adding basic optical disc authoring functionality to the file
manager.</li>
<li>Move network configuration in the control center to the new code
base.</li>
<li>Giving the computer view in the file manager its new look.</li>
<li>Random bug fixes in the file manager.</li>
<li>A small portion of utility classes in DTK.</li>
</ul>
<p>There’s a lot of other miscellaneous stuff I did, some of which
involves seizure-inducing programming languages
<a id="n1" href="#note1" class="note">[1]</a>. I’m not going to list those things here.</p>
<p>Actually, I promised to help revamping the infrastructure when I
entered Deepin, mainly to improve its transparency (like Debian).
However…</p>
<ul>
<li>They didn’t care.</li>
<li>I wasn’t given time to do anything about it.</li>
<li>I barely learned enough about how the current infrastructure
works.</li>
</ul>
<p>And the promise was thrown straight out of the window.</p>
<h3 id="tocanch4" class="tvis">Payment</h3>
<p>Now looking back, I guess I was basically free labor <a id="n2" href="#note2" class="note">[2]</a> , donating my time to Deepin. I
literately don’t care though, because I didn’t came for the money. It
could be cringe-inducing to say, but their payment actually exceeded my
initial expectation.</p>
<p>By the way I actually even saved up a couple thousand during my time
there. (Setting aside the fee ETS charged me for TOEFL and GRE of
course. Those are nothing but f*cking cash grabs.) Guess it’s due to my
extremely thrifty (stingy even) nature <a id="n3" href="#note3" class="note">[3]</a>.</p>
<h3 id="tocanch5" class="tvis">Final Days &amp; The days after</h3>
<p>I made my final commit on November 15th, and ended my internship on
the same day.</p>
<p>I stayed in Wuhan for another 30 days intermittently, finishing my
final TOEFL test, visiting places, meeting with people, and most
frequently of all, chilling in my ‘secret bear den’ (which refers to my
rental room, obviously). Quite shockingly, I somehow managed to keep
basically the same sleep schedule as the one before my internship
ended.</p>
<p>I returned home on January 3rd, and I was as lucky as one can ever
be, cause all the coronavirus shenanigans just started to cook up.</p>
<h2 id="tocanch6" class="tvis">Shitty Code</h2>
<p>Never have I felt so involved with a programmer humor post until I
have to actually deal with an old code base.</p>
<h3 id="tocanch7" class="tvis">pasteFilesV2 also deletes
file</h3>
<p>When called with some obscene parameters, this function actually
delete a file. What the hell.</p>
<p>Even my code is arguably less shitty in this regard.</p>
<h3 id="tocanch8" class="tvis">Practically no coding
conventions.</h3>
<p>Mixing tabs and spaces. Different indentation conventions.
Incompatible naming schemes and even misspelled words in identifiers.
You name it.</p>
<p>In fact, deepin does have coding conventions, as listed <a href="https://hualet.org/blog/2019/07/23/deepin-qt/c-%E4%BB%A3%E7%A0%81%E9%A3%8E%E6%A0%BC%E6%8C%87%E5%8D%97/">here</a>
and <a href="https://hualet.org/blog/2019/07/30/deepin-%E5%BC%80%E5%8F%91%E8%80%85%E8%A7%84%E8%8C%83/">here</a>.
<a id="n4" href="#note4" class="note">[4]</a>
Unfortunately, they are actively broken everyday in most projects.</p>
<p>In defense of deepin though, this problem bothers a lot of other open
source projects as well. My limited experience working with KDE’s
codebase has already exposed that at least parts of KDE (namely
libksysguard) suffers from the same problem.</p>
<h2 id="tocanch9" class="tvis">Weirdness, quirks and
other strange things</h2>
<h3 id="tocanch10" class="tvis">“Developers’ lives matter!”</h3>
<p>C’mon. If you have to equip your developers with computers that have
inferior specs than your system requirements, don’t expect them to be
super productive.</p>
<p>Of course I understand they are currently under a rather tight
budget, but they are offering quad core Core i5 to testers and new
employees (some of which are quite incompetent, as described in the next
section).</p>
<p>Also, they refrain to provide necessary hardware for development.
When I was adding optical disc authoring functionality to the file
manager, my request to have a dedicated external optical drive was
denied for some bizarre reason, and I had to share two optical drives
with the testing department and the technical support department. This
significantly hindered the development of the said feature, until I
found a spare internal drive in the warehouse.</p>
<p>Sometimes my friends there joked about the dessert as promised by the
recruiter wasn’t being resupplied in time. For me, the dessert was
really a surplus – I just want a computer that takes less than half an
hour to build something!</p>
<h3 id="tocanch11" class="tvis">Incompetent coworkers
start to pop up</h3>
<p>At a certain point of time (around June), I noticed a significant
increase of personnel inside deepin. Many of these new employees are
improperly trained. They don’t know how to incorporate git into the work
flow (some know nothing about basic git concepts, or even about Linux at
all), don’t look up documentation when troubled (instead they turn to
CSDN <a id="n5" href="#note5" class="note">[5]</a> for help). As a result, the company had to spend
extra time teaching them basic stuff, which to me seems a real waste of
time.</p>
<p>These incompetent employees are a major source of pain for project
leaders. Some of them spent an entire day trying to figure out the cause
of a very simple bug, without any level of success. Fortunately for
deepin, most of them can reach some degree of competency after a few
weeks of work (although they are still sometimes seen typing git
commands from their notebooks).</p>
<h3 id="tocanch12" class="tvis">“Designer-driven” development</h3>
<p>This is a truly hilarious one. Here at Deepin (especially the project
I’m personally working on, the file manager), product manager doesn’t
decide what the program should be capable to do, the artistic designer
does. The artistic designer almost has sole dictation on the
specification of the product in this regard. We as developers can
certainly dispute, but cases in which the designers changed their minds
were rather rare, and most effort we made to persuade them was
futile.</p>
<p>By the way the current artistic designer is a very dedicated Apple
fanboy. Expect some very Apple-ish bullshit in the next release.</p>
<h3 id="tocanch13" class="tvis">Code review, or “code
flattery”?</h3>
<p>Code review is mandatory for every commit in Deepin. However policy
of code review varied from people to people. The only one that really
took it seriously was zccrs, who could almost always pick out the code
where I screwed up <a id="n6" href="#note6" class="note">[6]</a>.</p>
<p>On the other end of the spectrum was my friend, BLumia. His code
review was usually just going through my code once, and seldom demand
changes. At first I thought he was just giving me free passes, until I
noticed obvious mistakes made by other coworkers that somehow slipped
through code review. <a id="n7" href="#note7" class="note">[7]</a></p>
<h3 id="tocanch14" class="tvis">Privacy issues?</h3>
<p>I didn’t get to work on anything that actively connects to the
Internet. So my position basically stayed the same as stated in my last
article. To reiterate:</p>
<ul>
<li>They did a poor job dealing with public relationship.</li>
<li>Telemetry should be off by default, or the user should be prompted
whether they want it on installation.</li>
<li>It’s free software though! You can check the code and strip
everything unwanted.</li>
</ul>
<p>However, it’s probably getting even worse for Deepin (the
distribution) users. I was told that an identifier of the user’s
computer along with its specification might be used in the future. If
you want to keep using DDE, but you still value your privacy, maybe
consider moving to another distribution and install DDE there
<a id="n8" href="#note8" class="note">[8]</a>.</p>
<h2 id="tocanch15" class="tvis">Dick moves</h2>
<h3 id="tocanch16" class="tvis">… as taken literally</h3>
<p>As the amount of employees increases, space originally designated for
everything else was re-purposed into work area. We had to move around
while still working. Things were not looking good.</p>
<p>Finally at the end of September, the company moved. This is regarded
as the reaction to their increasing demand of workforces (as the old
place has become very jam packed due to the sky rocketing number of
staff), but it was also a very under-prepared dick move. Formal
announcement of the move wasn’t published until the very last day. The
new place is in the middle of nowhere and barely furnished. There are
also two more completely empty floors, which are the source of later
pains.</p>
<p>The new place is much farther away, taking almost an hour by metro,
or 40 minutes by commute shuttles. This forces me to get up a lot
earlier, which is very disturbing. My overall life quality had
definitely taken a punch after that.</p>
<p>The place is actually bought from Huawei, who left a complete mess
behind when they withdrew themselves from the place. Soon after we moved
in, drilling and hammering sounds could be heard up stairs left and
right. It was actually very nerve wrecking.</p>
<p>As the company hasn’t yet settled down completely, many promised
treatments are thrown out of the window. These include: desserts served
during work hours (which are actually served as usual, but the amount
didn’t increase as the number of employee rises. As a result, it’s
basically gone.), monthly birthday celebration for employees, showering
facilities, etc.</p>
<p>This dick move made some of the coworkers staring to reconsider their
life choices seriously.</p>
<h3 id="tocanch17" class="tvis">Rushing V20</h3>
<p>V20 is going to be the next major release of Deepin. Initially the
planning for this release was rather relaxed: this major overhaul was
projected to take about a year to mature, during which another one or
two maintenance releases of the current Deepin 15 were planned. However,
for some reason unknown to us <a id="n9" href="#note9" class="note">[9]</a>, the deadline was pushed back by a huge margin: now it’s
expected to be released somewhere between Q4 2019 and Q1 2020.</p>
<p>Now, suddenly the rapid increase of personnel makes sense. But I have
to question the quality of the resulting software – and it’s not looking
too good for them either. Many of the new applications suffer from major
performance deficiency: one of the development snapshots of Deepin
picture viewer takes more than two minutes to startup, and completely
blacks out if the window is resized, the new archive manager can cause
major lags on the file manager. Hell, even my own creation, the new
computer view for Deepin file manager, suffers from some performance
issues while resizing. But I simply didn’t have the time to address it
completely.</p>
<p>Wheels have been reinvented during the sprint, lots of them. In fact,
it seems to be one of their goals to out-source no applications from
other desktop environments. They even created a browser (based on the
Chromium code base, of course) with the help from Qihoo 360 and an IME
with the help from Sougou. I could give Deepin credit for the effort,
but the quality of these wheels are questionable at best.</p>
<h3 id="tocanch18" class="tvis">Lacking / bad community
interaction</h3>
<p>This is more or less the same thing as what I have already wrote in
‘The “Deepin is spyware” problem’. But now that I have more insight, I
could write more on this topic.</p>
<p>Deepin is a for-profit company, feature requests from commercial
customers always take priority. As the number of employees barely meets
the need to develop those features, requests from the community are
usually ignored straight away. Such filtering happens before the
developers could see the feature requests – we won’t know about them
unless we browse the support forum ourselves.</p>
<p>The ‘designer-central’ process is very problematic too. In my
opinion, Deepin’s chief designer is extremely self-centric, narcissistic
even. This resulted in some very serious uproar in the community such as
this one:
https://github.com/linuxdeepin/developer-center/issues/1210#issuecomment-496341368
Sometimes even the developers couldn’t put up with these design choices,
and added hidden options for switching to something more sensible.</p>
<h3 id="tocanch19" class="tvis">Illegal business practice</h3>
<p>Namely, deepin-wine breaking GNU LGPL.</p>
<p>Deepin has been distributing a fork of an outdated branch of wine
without releasing the source code for quite some time, which is a very
explicit disregard to wine’s license.</p>
<p>They have promised to release the source code, but has yet to do so.
In the mean time, wine has made three stable releases. So far they have
only came up with a single justification: the fear of their domestic
commercial competitors <a id="n10" href="#note10" class="note">[10]</a>‘stealing’ their hard work. If
this bullshit stands for even a second, everybody on this planet would
have been a drug dealer ’cause laws don’t do shit.</p>
<p>To be frank, we have dozens of (L)GPL breakers here in China and we
never stop producing even more of them. We have Allwinner and XiaoMi, to
name a few. FFmpeg’s original hall of shame page would give you a even
longer list, and you will find the names of some gargantuan Chinese tech
companies in it.</p>
<p>I don’t even think Deepin’s international acceptance has anything to
do with its commercial success (or lack thereof). Do they even have any
overseas commercial customers? If Deepin has really been a commercial
success, I probably wouldn’t have to develop with a computer equipped a
shitty Pentium that otherwise would find its home in the dumpster.</p>
<h3 id="tocanch20" class="tvis">Restructure shenanigans</h3>
<h3 id="tocanch21" class="tvis">Walking away from “the
founders’ spirits”</h3>
<p>This is definitely, definitely a huge misstep and a real deal
breaker.</p>
<p>IMO Deepin was once among the best meritocracy free software
community in China. However with the changes applying to their roadmap
since v20, everything started to disintegrate.</p>
<p>Barriers were deliberately added to the community contribution
process (the repositories on GitHub are now merely synced with internal
repositories). Writing documentation was considered slacking (happened
to me a couple of times), making the already terrible documentation
situation even worse. They basically stopped even trying to make the
development process transparent to the public.</p>
<p>User’s freedom was thrown out of the window. Community edition now
requires logging into an online account to enable root access, which is
basically the first step to a complete vendor lock down. I imagine many
users would resort to other distros and install DDE instead (if they
still fancy using DDE in its new look and feel).</p>
<p>Don’t get me wrong. DDE was (and still is) a beautiful desktop
environment (even only superficially as some people might thought). It
has followers who will use it no matter what. However, it demands a
fork. A fork with its founders’ spirits in mind.</p>
<h2 id="tocanch22" class="tvis">Epilogue</h2>
<p>I’ve actually tried out the current public beta of Deepin V20 as of
writing this section, and the majority of the issues I mentioned above
still hold up. Grave performance degradation seems a lot less common
though, although my shitty-performing computer view code has barely been
touched since I left. A lot of applications are still in dare need of
polishing. They’d better keep those commits flowin’.</p>
<p>At this point of time I don’t even know what I was rambling about. It
was 1:40 in the morning. Did I just typed over 15000 characters only to
diss Deepin? Nope. Dwelling on our past success never makes us progress.
It’s the reflection upon the mistakes we made that does.</p>
<p>https://www.zhihu.com/question/344339517/answer/817025546</p>
</article>
<!--
vim: tw=0 syntax=markdown spell spelllang=en_us
-->
</div><br><hr>
		<div class="TText" id="notediv" style="font-size:80%;"><span class="TText"><a id="note1" href="#n1">[1]</a>: vala?<br></span><span class="TText"><a id="note2" href="#n2">[2]</a>:  and
definitely not a shitty one that only does repetitive work! In fact
while I was once chatting with Hualet, he told me I was probably among
the best interns ever here.<br></span><span class="TText"><a id="note3" href="#n3">[3]</a>: cough cough, RTX 2080,
cough cough.<br></span><span class="TText"><a id="note4" href="#n4">[4]</a>: These were formerly available on a documentation website on
one of deepin’s domains, but were somehow taken down later.<br></span><span class="TText"><a id="note5" href="#n5">[5]</a>:  CSDN is a blogging platform and a forum for Chinese
developers. We don’t have stackoverflow or a clone of it here in China,
so CSDN became the savior of many Chinese programmers. Unfortunately
most of the user base of CSDN are equally bad as these new
employees.<br></span><span class="TText"><a id="note6" href="#n6">[6]</a>: His code reviews were sometimes even to a
degree of nitpicking, but I’m not really complaining since my code is
shit.<br></span><span class="TText"><a id="note7" href="#n7">[7]</a>: To BLumia: if you are reading this, I’m
not trying to be harsh here. It’s just a small reminder that you should
probably pay more attention to code review (if you’re still doing
it).<br></span><span class="TText"><a id="note8" href="#n8">[8]</a>: A lot of this stuff is specific to Deepin (the distribution),
so you can get rid of most (but not all) of them by doing
so.<br></span><span class="TText"><a id="note9" href="#n9">[9]</a>: everyone has their own
speculations, of course. Mine is that they wish to hand out a surprising
present to their users, which I don’t feel super positive
for.<br></span><span class="TText"><a id="note10" href="#n10">[10]</a>: Please, don’t mention the ones backed
by the government (or in other words, ‘GuanXi’). They are not an excuse
for breaking laws or licenses.<br></span></div>
		<div id="insanch" style="height:3em;"></div>
		<div id="footer" style="">
		<div id="pagesw" class="TText" style="width:100%;height:0.5em;"></div>
			<div style="text-align:center;" class="TText">
				Proudly powered by SSBS <reduced style="font-size:70%;">(the static stupid blogging system)</reduced> 2.5
				<br>
				Content licensed under CC BY-SA 4.0. <span id="purgep" style="display:none;font-size:70%;">This page has passphrase(s) stored. Click <a href="javascript:_purgep()">here</a> to purge.</span>
			</div>
		</div>
		<div id="cmdbuf" class="TText" style="transition:500ms;padding:1em;font-size:2em;color:white;position:absolute;background-color:rgba(0,0,0,0.6);left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;">
		</div>
	</div>
	<div id="decryptui" style="display:none;opacity:0;color:white;z-index:1000;position:fixed;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,0.4);transition:opacity 0.5s;">
		<div id="decryptdlg" class="TText" style="padding:10px 20px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background-color:rgba(0,0,0,0.6);">
			<div id="keyhint" style="margin-bottom:8px;"></div>
			<div style="margin-bottom:8px;">Key: <input id="keyinp" type="text" style="color:#fff;"></div>
			<div style="height:2.25em;">
			<button id="btndecrypt" onclick="decryptor(decid,document.getElementById('keyinp').value);" style="position:absolute;left:20px;">Decrypt</button>
			<button onclick="hidedecryptui();" style="position:absolute;right:20px;">Cancel</button>
			</div>
		
	</div>


</div></body></html>