summaryrefslogtreecommitdiff
path: root/blog/post/2019-06-24.html
diff options
context:
space:
mode:
Diffstat (limited to 'blog/post/2019-06-24.html')
-rw-r--r--blog/post/2019-06-24.html471
1 files changed, 471 insertions, 0 deletions
diff --git a/blog/post/2019-06-24.html b/blog/post/2019-06-24.html
new file mode 100644
index 0000000..2affd40
--- /dev/null
+++ b/blog/post/2019-06-24.html
@@ -0,0 +1,471 @@
+<!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</title>
+<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> \ No newline at end of file