From 4e1a29cab8d31cff30d88d2dfc0f526372fc33bd Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Sat, 22 Jun 2024 19:59:16 -0400 Subject: Move blog posts out of the tree. --- blog/post/2019-06-24.html | 473 ---------------------------------------------- 1 file changed, 473 deletions(-) delete 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 deleted file mode 100644 index 77611e7..0000000 --- a/blog/post/2019-06-24.html +++ /dev/null @@ -1,473 +0,0 @@ - - - - -Chrisoft::Blog(r#"Working as an intern for "the spyware corporation"") - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
-

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