Spyder on MX Linux

This is another example that non-commercial (open-source) Linux/Python does not have a feel of a finished product: things break out of the box when installed fresh, in the most simple, expected ways, without any tweaks.

Again, don’t get me wrong, open-source free software are good stuff (more modern concepts and people working on it for free), but it’s never going to beat professional companies (like Microsoft/MATLAB) in how well-funded they are so they can maintain their software and the user experience using their profits. So far, users are still expected to put up with a bunch of unjustifiably unnecessary work to get to where they want to go with community-maintained software like Linux/Python.

This time I’m installing Spyder on MX Linux. Look at how many damn hoops I have to jump to get Spyder 3 to function properly there:

  1. I installed python3-spyder from MX Package Installer
  2. Spyder complained about missing rope on start
  3. Installed python-rope on MX Package Installer. The complaint still won’t go away
  4. I tried follow the instruction sudo pip3 install rope_py3k  and realized pip3 was not installed already with the Python that came with Spyder! (Didn’t have the problem with the Windows counterpart).
  5. Installed python3-pip from MX Package Installer.
  6. Came back and run pip3 install rope_py3k. It choked at "Command 'python  setup.oy egg_info' failed with error code 1 in /tmp/pip-build-0nnknjhi/rope-py3k". Again, known problem.
  7. Followed the solution in the comments pip3 install --upgrade setuptools
  8. Then come back and run pip3 install rope_py3k again. It says "Failed building wheel for rope-py3k" in between, but nonetheless I’ll try to move on since it says "Successfully installed rope-py3k-0.9.4.post1"

Then Spyder launch uneventfully.

These are not design decisions (sacrificing one quality for another), but inter-operability wrinkles that nobody are paid enough to do the grunt-work babysitting it. So if your business profits heavily from it, consider sponsoring the developers!


It’s also slightly annoying that the version of Spyder maitained in MX Linux’s most recent repository is a little older than what’s actually available (3.1.3+dfsg1-3 instead of 3.3.4).

At first I followed instructions to have PIP to update it: pip3 install -U spyder, but it doesn’t work. I got a lot of “failed building wheel for (package)” error.

I also realized the Python that came with it is 3.5, not the 3.7(.3) I had in Windows. I checked the MX package manager and indeed it stopped at 3.5. After some searching, I learned the base system package was frozen in 2016! MX Test Repo (at your own risk) has Python 3.7 though.

Loading

Ubuntu to remember list – setup

Network

  • Install samba. Use smb:// as URL
    (MX Linux doesn’t need you to remember it. Windows computers and shares just shows up in File Manager right away!)

Extracting files

  • Need to install unrar or the built-in Archive Manager will show “Unsupported error during extraction” and extract RAR files partially! WTF! It’s 2019! No wonder Microsoft is still making big bucks! (MX Linux is much better about this out of the box. Not only it works, I can just drag and drop the contents directly to the desktop while I cannot do it with Ubuntu!)

Internationalization

  • Japanese fonts: sudo apt-get fonts-vlgothic
  • Get Foobar2000 to show Japanese fonts: install the above and File->Preferences->Display->Colors and Fonts->Fonts-Playlists-> VL PGothic
  • Need to log-off and re-login after installing Japanese Language Support (it’s not just for UI translation) before “Japanese (Mozc)” input option show up
  • It’s a major pain in the butt to emulate the Ctrl+Space shortcut that switches between IMEs in Windows in Ubuntu, but in MX Linux, you can set it in “IBus Preferences”->Keyboard Shortcuts.

Routine software to install

  • rdesktop / Remmina
  • foobar2000 (Clementine player that came with MX Linux worked just as good. I chose foobar2000 to conserve resource in Ubuntu on a slow computer.)

Loading

I see dead processor, the first time in my life I've dealt with hundreds if not thousands of PCs since I was a kid

Ever since I got my hands into assembling and troubleshooting PCs when I was a kid, both through my own experience and general consensus in the computer hobbyist community, CPU is almost the last thing to suspect at fault for a non-functioning computer, much less likely if:

  • There are no signs physical damages (mechanical or heat stress)
  • There were no shorts (burning electronic smells)
  • There weren’t any extreme overclocking (at least Vcore was pumped)
  • The computer used to boot, but has some random hangs

After 20+ years (and troubleshooted a few hundreds if not a couple of thousand PCs), today I encountered (actually zeroed-in that it’s the culprit) the first bad processor in my life. It was inside a M815G motherboard from a 54854A oscilloscope that I bought that wouldn’t boot into windows without random ‘file corrupted’ errors. Then after a few tries, the board wouldn’t even boot, not even any code on the POST card.

At first I suspected it’s an aging motherboard, since I checked the RAM and passes Memtest86+ on another board. It’d be either the motherboard or CPU, which I never considered it might be the CPU given how unlikely it is both by other people and myself.

I couldn’t be bothered to dig at the moment so I simply replaced the entire motherboard (with CPU and RAM installed) with another unit and confirmed that the 54854A I bought didn’t have any deeper problems. Then I put this ‘bad M815G motherboard’ on my back burner.


Today I was trying to revive a VP22 motherboard (which boots only if I apply pressure on certain areas of the PCB) that didn’t have the Fan+Heatsink+CPU+RAM. I happen to have a spare Pentium 3 and some PC-133 (SDRAM) lying around, but not the heatsink+fan, so I borrowed it from the M815G in the repair-if-I-feel-like-it pile.

The VP22 booted with pressure on the PCB (beeped, checked POST card) but I couldn’t see any display, so I thought of swapping-in the known-‘good’ CPU from the ‘faulty’ M815G to see if I had the wrong revision that the VP22 didn’t support. The VP22 used to get stuck in the boot process, but at least the POST card has a reading, this time after swapping in the CPU from the M815G, it has no POST code at all. No pulse.

I got suspicious and took the the CPU from the VP22 and put it in the ‘faulty’ M815G. Guess what? The M815G in question boots and runs fine!!! WTF! For all that time I thought my M815G has a difficult fault just because I had a marginally failing an then dead CPU, which I didn’t even consider the possibility given how unlikely the CPU is at fault.

And no, it’s not the thermal compound drying up, it’s freshly applied every time I move it to a different motherboard. The CPU was only used in M815G/VP22 which does not even have any means of overclocking. No burns or smells or physical damage, and the computer used to boot. The CPU just died of natural causes.

A black swan day!

Loading

Malware deleting TrustedInstaller.exe, therefore crippling Windows

My sister’s computer is was infected with a bunch of stubborn malware. Even after cleaning the offending files, a lot of things won’t wouldn’t work.

Windows Update, run sfc /scannow, or DISM /Online /Cleanup-Image fails with unknown reasons, which I found it somehow related to “Windows Module Installer” service not running.

I saw something weird in services.msc: “Windows Module Installer” doesn’t exist, but I know the underlying name is “TrustedIntaller” and noticed a service named as such is there, but it cannot be started, nor there are any descriptive information.

So I searched registry for “TrustedInstaller” and got to its entry. I noticed these two:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TrustedInstaller]
"DisplayName"="@%SystemRoot%\\servicing\\TrustedInstaller.exe,-100"
"Description"="@%SystemRoot%\\servicing\\TrustedInstaller.exe,-101"

It means the meaningful names and descriptions I saw on services.msc are generated by calling the underlying  service executable file with switches. I checked my “C:\Windows\servicing” and found that “TrustedInstaller.exe” is not there at all! Of course you cannot start a service where the file does not exist at the promised path (ImagePath).

I searched the hard drive and found only one instance of the file stored somewhere (like C:\Windows\winsxs\x86_microsoft-windows-trustedinstaller_31bf3856ad364e35_6.1.7600.16385_none_90e389a7ae7a4b6c) and I tried to move the file to “C:\Windows\servicing”. However the ownership and permissions to write to “C:\Windows\servicing” goes to “TrustedInstaller” account, not “Administrator”, so I took the ownership, gave Administrator full rights, then move the file over.

Everything worked after that! Just the mere trick of deleting TrustedInstaller.exe is enough to make the user miserable trying to clean the system up! “sfc /scannow” or the like requires TrustedInstaller/WIM to be working in the first place, so you cannot use it to repair TrustedInstaller/WIM problems.

Loading