From 891f8eee12e6bdb2fad0fe0b28976362eb965236 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Sat, 17 Feb 2024 20:44:52 -0500 Subject: Massive blog regeneration. RBUS-related posts. --- blog/post/2019-06-24.html | 471 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 471 insertions(+) create mode 100644 blog/post/2019-06-24.html (limited to 'blog/post/2019-06-24.html') 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 @@ + + + + +Chrisoft::Blog + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+

Working as an intern for "the spyware corporation"

+
2019-06-24
#garbage #sophistry
+
+

A few notes upfront…

+

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.

+

Original post starts below.

+

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.

+

Also, this article is not approved by the propaganda +division whatsoever. Everything is straight up garbage.

+

The Decision

+

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?

+

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.

+

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.

+

To sum it up, it was because:

+
    +
  • I was curious.
  • +
  • I had plenty of time to waste.
  • +
  • I wanted to get away from the campus I already spent 3 years +in.
  • +
  • with the additional benefit of finishing my graduation project.
  • +
+

The Workplace, the +Colleagues and the Life

+

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.

+

Co-workers here are competent to say at least (until they started +rushing V20, as noted below). To list a few:

+
    +
  • BLumia: no more +elaboration needed.
  • +
  • Kirigaya: a little +bit mean, a little bit naughty, but still nice guy to chat with.
  • +
  • zccrs: 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.
  • +
  • Hualet: that one who interviewed +me. Passionate about free software. We talk quite a lot in private.
  • +
+

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.

+

Stereotype of the climate in southern China was broken: your clothes +will be able to dry within a day, and you couldn’t +really squeeze water out of the air.

+

Public transit in Wuhan was tolerable until you got out of reach of +the metro: the bus service was horrendous. 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).

+

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 14m2 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.

+

Interactions with roommates were minimal. In fact, I intentionally +avoid interactions with my roommates because I was that type of a +person.

+

By the way, cooking is really deep a rabbit hole and I’m just getting +down into it.

+

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.

+

My work

+

I mainly worked on the following things:

+
    +
  • Adding basic optical disc authoring functionality to the file +manager.
  • +
  • Move network configuration in the control center to the new code +base.
  • +
  • Giving the computer view in the file manager its new look.
  • +
  • Random bug fixes in the file manager.
  • +
  • A small portion of utility classes in DTK.
  • +
+

There’s a lot of other miscellaneous stuff I did, some of which +involves seizure-inducing programming languages +[1]. I’m not going to list those things here.

+

Actually, I promised to help revamping the infrastructure when I +entered Deepin, mainly to improve its transparency (like Debian). +However…

+
    +
  • They didn’t care.
  • +
  • I wasn’t given time to do anything about it.
  • +
  • I barely learned enough about how the current infrastructure +works.
  • +
+

And the promise was thrown straight out of the window.

+

Payment

+

Now looking back, I guess I was basically free labor [2] , 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.

+

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 [3].

+

Final Days & The days after

+

I made my final commit on November 15th, and ended my internship on +the same day.

+

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.

+

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.

+

Shitty Code

+

Never have I felt so involved with a programmer humor post until I +have to actually deal with an old code base.

+

pasteFilesV2 also deletes +file

+

When called with some obscene parameters, this function actually +delete a file. What the hell.

+

Even my code is arguably less shitty in this regard.

+

Practically no coding +conventions.

+

Mixing tabs and spaces. Different indentation conventions. +Incompatible naming schemes and even misspelled words in identifiers. +You name it.

+

In fact, deepin does have coding conventions, as listed here +and here. +[4] +Unfortunately, they are actively broken everyday in most projects.

+

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.

+

Weirdness, quirks and +other strange things

+

“Developers’ lives matter!”

+

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.

+

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).

+

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.

+

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!

+

Incompetent coworkers +start to pop up

+

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 [5] 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.

+

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).

+

“Designer-driven” development

+

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.

+

By the way the current artistic designer is a very dedicated Apple +fanboy. Expect some very Apple-ish bullshit in the next release.

+

Code review, or “code +flattery”?

+

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 [6].

+

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. [7]

+

Privacy issues?

+

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:

+
    +
  • They did a poor job dealing with public relationship.
  • +
  • Telemetry should be off by default, or the user should be prompted +whether they want it on installation.
  • +
  • It’s free software though! You can check the code and strip +everything unwanted.
  • +
+

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 +[8].

+

Dick moves

+

… as taken literally

+

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.

+

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.

+

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.

+

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.

+

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.

+

This dick move made some of the coworkers staring to reconsider their +life choices seriously.

+

Rushing V20

+

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 [9], the deadline was pushed back by a huge margin: now it’s +expected to be released somewhere between Q4 2019 and Q1 2020.

+

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.

+

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.

+

Lacking / bad community +interaction

+

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.

+

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.

+

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.

+

Illegal business practice

+

Namely, deepin-wine breaking GNU LGPL.

+

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.

+

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 [10]‘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.

+

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.

+

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.

+

Restructure shenanigans

+

Walking away from “the +founders’ spirits”

+

This is definitely, definitely a huge misstep and a real deal +breaker.

+

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.

+

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.

+

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).

+

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.

+

Epilogue

+

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’.

+

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.

+

https://www.zhihu.com/question/344339517/answer/817025546

+
+ +


+
[1]: vala?
[2]: 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.
[3]: cough cough, RTX 2080, +cough cough.
[4]: These were formerly available on a documentation website on +one of deepin’s domains, but were somehow taken down later.
[5]: 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.
[6]: His code reviews were sometimes even to a +degree of nitpicking, but I’m not really complaining since my code is +shit.
[7]: 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).
[8]: 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.
[9]: 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.
[10]: 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.
+
+ +
+
+
+ \ No newline at end of file -- cgit v1.2.3