Ubuntu on Windows 10

For some years now, Windows and Ubuntu have been coexisting to a degree, if you enable the Linux subsystem on windows and download the Ubuntu for Windows package from the Windows App store.

It makes it possible to muck about with Windows drivers and the Windows kernel from within a UNIX environment. Even make your own drivers that can send direct commands to the Windows kernel and even the TCP/IP stack. So long as you like the command line, there are some pretty cool tools and languages, such as C/C++, python, perl, and many of the other usual suspects at your disposal. It doesn’t really have support for Java, except as a runtime envirnonment. That shouldn’t stop you from installing JDK manually. You can install the one for Linux or the one for MS-Windows. Your choice. Also, there is no support at all for X-Windows.

The /mnt directory is used to house all of the drive letters that are visible to Windows. Here they are mounted as folders each named after their drive letter.

I can’t run MS-Windows commands like Notepad from the shell; but it turns out the Windows paths are not set by default in Ubuntu. Typing /mnt/c/Windows/notepad.exe allowed it to run. In fact, it can run any windows command, if you take the time to fix the $PATH variable. In addition, the Ubuntu subsystem doesn’t yet support the reading of ext3 filesystems, although it has no problem reading NTFS filesystems. An EXT3 driver I tried was able to identify and mount EXT3 filesystems (assigning it a drive letter) from within Windows, but no files were visible. I was offered to format the drive, but I declined. So, I wasn’t sure of the rationale for even having this driver if I can’t see any files.

Apart from that, it appears as if the main architect of the ext2 driver project, Matt Wu, has abandoned the project and has reduced his website to a blank webpage. I don’t see any updates on SourceForge later than 2015.

Cygwin’s (many) downsides

Cygwin is a free (as in freedom) open-source suite which tries to be a POSIX-based subsystem that runs on top of MS-Windows. It tries to behave as if it can do all tasks that Windows can, as if it were a wrapper for Windows. But essentially, even with an X-Window manager, it ends up being just another windowed application with windowed apps running inside it, which can be minimized so you can actually work with MS-Windows itself when you want to.

I wish to say at the outset that this is more of a review than anything. There is a lot of important info missing to construe this discussion as a how-to manual for un-installing or fixing a Cygwin system after a Windows reinstallation. If it were such a manual, this article would have to be much, much longer. In reality, I am really just venting frustration as to how Cygwin, a “program” (for lack of a better word) which I have been using for over a decade, is still very far from getting its act together.

An Eterm, running under WindowMaker. Yes, I was using the EMACS Cheat Sheet as wallpaper!

It has been a hobby of mine to make something of this subsystem for some years, and I have found it most useful as a programming environment. It has as much support for perl, python, C/C++ and vim as you like, and can even run windowed file managers, web browsers (among them, chromium, and lesser known ones like Opera and Midori), and editors like XEmacs. It has wide support of the standard window managers, such as GNOME, KDE, xfce, lxde, fvwm2, enlightenment, WindowMaker, right down to twm. And because all of this runs in a glorified window under MS-Windows, I can switch back and forth to and from MS-Windows whenever it suits me.

If Cygwin doesn’t have the packages for a “free” (as in beer) computer language, I found I can just install a Windows version of it under Cygwin, and that is fine. All Cygwin executables are “exe”, just like Windows, so I can also run Windows commands under a Bash shell. I wanted the latest Java from the Oracle website, and I found I was able to just unpack it somewhere, under, say, /opt, and link its executables to /bin or to any directory defined in my $PATH. Or, of course Java provides a “bin” directory which you can add to your $PATH without the need for making symbolic links.

All tickety-boo if you can get Cygwin up and running. Most applications ported from other unix systems will work if you recompile from source and run the configure script. Others will compile and install after some minor editing.

The downsides of Cygwin are apparent from the point of installation. When you first install Cygwin, the installer is somewhat cryptic, although you might be able to figure most of it out. The installer allows you to decide what packages you want and which ones you don’t. But it is really an illusion. If you want stuff such as your window managers to work on Cygwin, including your chosen X-Window manager, then just install everything. Maybe decide which window manager (or managers) you want and which ones you don’t want. I also was picky about the texmf language packs, which slow down the install to over 6 hours, so I do take the trouble to deselect most texmf language packs that are not English or which don’t use the “Latin” alphabet, while choosing any math or other academic fonts. Being otherwise indiscriminate about package selection means you have to live with scores (or possibly hundreds) of programs and window managers you will never care to use. My installation is typically about 26 gigs unpacked, spanning over 1 million files (1,017,806 files, to be exact) in some 65,000 folders. That is not counting my /home folder.

Another thing to know is that Cygwin has no uninstall tool to uninstall itself. So un-installation of Cygwin is infinitely more difficult than installation, for reasons we shall see.

I said earlier I found the installer cryptic. What I mean is that the installer has to download and install each package one at a time, which is a bugger if a remote server goes down or hangs. And, especially with those texmf language packs it appears to hang, when in reality it is just plain being slow. If you stop the installer and start it again, you get no indication of whether it remembered where it left off. What you do is behave as if it does remember, and click install. It does pick up from where it left off, but it is not very reassuring about it.

And God help you if you, for some reason need to reinstall MS-Windows. This is where you find when you go back to the directory with the installation, that it has introduced its own permissions, but that is not the worst permission problem. The ownership of the distribution becomes hard to untangle, in large part because when you reinstall MS-Windows the user and admin accounts you created become reduced to SID numbers of users no longer known to the system. And of course, you can remove those unknown users with Windows’ Properties, and reassert your ownership similarly, or by using the “takeown” and “icacls” commands which their cmd shell provides (running as Administrator). This takes hours when the number of files is over 1 million with 65,000 folders. This is slowed down further by the fact that there are several files and folders which have un-knowable permissions and un-knowable ownership which require you to change tactics when that happens. After an evening and the following morning, I was able to get rid of the now-bogus users while respecting other owners as much as possible. Using the inheritance option in MS-Windows has to be done judiciously, respecting that different folders have differing sets of system permissions. Some have no system permissions (just user and group permissions), while others have strange ones like “Creator Owner”, “Creator Group”, “None”, and “NULL SID”.

Some examples of strange “users”. “Everyone” isn’t considered strange, and includes all users on your system.

If you are able to untangle the Cygwin permission problems after re-installing MS-Windows, then congratulations! You are now at a point where you can decide two things: 1) you can still configure an icon to run a shell under mintty and content yourself with a bash shell as a reward for your work on permission changing; or 2) you can delete the entire Cygwin directory tree and decide if you want to reinstall again. Both prospects are hard-won, and here you are. I wish to emphasize that option 2 is not a joke. Deletion would have been impossible without taking ownership and fixing the permissions. It just sounds like a joke.

Notice that there is no choice “3” for trying to run X-Windows or a window manager. X-Windows will complain one way or another about not being able to find :0 (the root window), or will give an X window briefly, which crashes in seconds with no error message logged. Some X apps work, such as the aforementioned mintty, but except for shell commands, that’s it. If you wanted to run an application that needs any of the X-windows widgets, then you have to delete the whole thing (except possibly /home) and install from scratch. In other words you are basically screwed in all but the bleakest of ways if you reinstalled MS-Windows.

Over the years there had been several reasons for reinstalling. Sometimes it was to freshen a windows installation which was becoming increasingly sluggish and full of problems. “Freshening” a windows installation involves, for me, a formatting of C: drive. This is not so bad for me. Only programs and system files go on my C: drive. My documents and other files are on other physical hard drives. My Cygwin installation is also situated on one of the other physical drives, so it doesn’t take up valuable room on C:. So, I don’t feel as nervous about reinstallation as some would; but there is that darned Cygwin distro I have to reckon with sooner or later. You are screwed if you sort out the permissions under Cygwin, and screwed even more if you don’t.

This is /etc/fstab in its entirety. The edited line on the bottom contains the “noacl” option needed to fix this file permission bug.

As a post script, I found out how you get NULL SID, as well as incorrect ordering of permissions on many of the Cygwin files, the source of the majority of my permission headaches. The /etc/fstab has just one uncommented line, a filesystem called “none” allowing all of your Windows drives to be herded under /Cygdrive. This is supposed to have the advantage of allowing you to navigate to any physical drive or partition on your computer entirely within Cygwin (which is what it does). A missing option needs to be added: “noacl” (quotes omitted). This prevents Windows from trying to assign a user SID as if “none” was a user, thereby fixing many of the permission headaches.

I don’t understand why the designers of Cygwin don’t add “noacl” before they distribute it. I think the majority of us are running some form of NT-based windows system: Windows 2000, XP, 7, 8, 10, and now 11 are packaged with most computers these days, and their hard drives are usually NTFS. These bugs are specific to NTFS systems, and these bugs don’t show up on FAT-32 filesystems, which don’t store info on ACLs, SIDs, or anything of the sort.

The Cygwin website discusses these issues, but it seems that Cygwin is trying to be POSIX compliant when Windows obviously isn’t trying to be. If they are choosing MS-Windows as the host system, they will have to do things their way and not try to fight it with Cygwin’s “correct” way, or to disenfranchise the majority of their users for the sake of backwards compatability. Would it kill the owners of FAT-32 filesystems, whom I think are in the minority, to delete “noacl” for the sake of the majority? Once the system is installed it is too late to do it then, since by then the installed apps will all have the permission bug.

In the event you decide you wish to delete the whole shebang after hours of sorting out permissions, there is one little tiny file that completely thwarts nearly all attempts at deletion. I have found it on two of my installations, and it was a problem in that specific file. It is the file located at \usr\share\avogadro\crystals\zeolites\CON.cif, relative to the Cygwin top-level folder. It cannot be deleted, and its permissions and ownership cannot be changed or even known to humans. The reason Windows appears to go braindead with this file, is because of the filename. CON is a reserved word in MS-Windows, short for “console”, going back to the days of MS-DOS. So is naming your file LPT1, short for “line printer”, a Windows reserved word with the same MS-DOS heritage. You can’t delete it with anything in Windows, so you need a POSIX tool, like, ahem, Cygwin, to affect the deletion.

So I deleted CON.cif using my later installation of Cygwin, and I was thus able to delete the entire directory tree as a result. More to this issue is: what happens when you need to delete CON.cif and have no intention of reinstalling Cygwin? Stack Exchange has a whole discussion on this which makes my long story even longer, so I will end my article here.

Shopping for a printer, and network troubleshooting mysteries

Brother HL-3170CDW
Brother HL-3170CDW. My current printer with the dodgy network card.

I vaguely remember the network card not working when I bought the new Brother computer I am currently using. But I decided about a year or two later to test what is wrong using my network tester, which can test a connection over a cat 5 cable. Plugging both ends of the cable into the tester seemed to work. So I know the cable is fine. Plugging one end into the printer and the other end into the tester, it seemed to work also. Then testing the connection on the router using the same cable worked as well, in the sense that the lights on my testing device were blinking in the right order. But when I finally hooked up the printer to the router, I noticed no lights were flickering on the router end. So, maybe that port was the problem? I took a working connection from a switch I didn’t care about, and plugged it into the same ethernet port on the router. Suddenly that port came to life. So, I finally recalled that the printer had something wrong with the network card. I had the card on the printer replaced early on, and it was defective again. That, I remember, was the reason why I hooked up my printer by USB. It has wireless capability, but 1) both my desktop PCs have only cat-5; and 2) the printer is not visible on my router’s wireless settings anyway.

I stuck with the printer because it was a simple printer that did duplex printing and did it well. But I am going to have to consider shelving this printer and getting another one which with a network port that works. So far, my best bet is to order online, since almost nothing appears to be in stock. I am reading Amazon reviews of some decent printers and there are many harrowing tales about multiple DOA printers (original was DOA and so was its replacement), sketchy tech support  – and this is for a Xerox printer, which one would have thought would be an established brand. This will take some thought, and maybe a bigger budget than planned. And this is for a single-function duplex laser printer. I am not asking for anything crazy here.

For now, I refreshed the drivers, and cleaned out the system using CCleaner. The printer will have to serve me for now.

Speccy
Speccy

I was reviewing my computer’s specs using a software called “Speccy”. You might have heard of it. It is one of those small bits of software that came with my “Pro” copy of CCleaner. It just tells you details about your system and components. I wanted a printout of what I saw on the screen regarding what drive letters are intended for which empty ports on my card reader. And about 30 pages of printing later, … not much on that, but a lot on each and every other detail I wasn’t interested in. It would have still kept printing had I not hit the “cancel” button on the printer. I specified double-sided printing, but because I changed the driver to the functioning printer in front of me, the duplex setting was forgotten about by the driver, and the 30 or so pages are all single-sided. What a waste.

Looking at the website for Consumer Reports, I notice that the field is dominated by Brother or HP printers. Xerox is way down below the top 10, receiving scores in the 50s, but no single-function printer I looked at scored above 68. Also, the most expensive are not necessarily the highest-rated. Another workhorse brand, Lexmark, also is not in the top 10.

Brother HL-3230CDW
Brother HL-3230CDW. Not all that different.

My top two criteria are “Predicted Reliability” and “Ink/Maintenance”. The latter criteria, I found out later, are mostly relevant to inkjets, since it refers to the ink used during their self-cleaning/maintenance cycle. All printers shown to me were duplexing color lasers. No printer scored 5/5 for reliability. The top-rated printer, a Brother HL-3230CDW (CR score of 67), has the familiar problem in that it refuses to print in black (or print at all) if a color cartridge runs out. My printer is similar in this regard. I like that it duplexes, something I am willing to pay a little extra for. But apparently it does not print color photos very well, a “feature” shared by these sorts of printers, apparently. The tray takes up to half a ream. Prices vary from $350 to over $550 depending on the seller.

Hewlett Packard Color LaserJet Pro M255dw
YASTDCLP (Yet another single-tray, duplexing, color laser printer), this time the HP M255dw.

Just below that is a Hewlett-Packard Color LaserJet Pro M255dw, given a rating of 66. Photo quality is still bad; and this one will reject generic cartridges, forcing you to have to shuck out the full price of HP cartridges. Horrible business practice. The printer I have right now is using generic cartridges. In fact, it has never used cartridges from the manufacturer since I had purchased it three years ago. The four generic cartridges cost me a total of $200. Each HP cartridge costs around $80, and four of them would pay for the cost of the HP printer they fit in. CR estimates that with the long life of the cartridges, your cartridge outlay will be in the neighbourhood of $500 over 4 years. I am converting to Canadian dollars and lowballing. Lexmark printers also insist on their proprietary cartridges. Xerox doesn’t appear to suffer from this problem; and Brother certainly doesn’t. CR’s priorities are not the same as mine, it appears.

HP AIO
The ultimate HP AIO color laser printer. The fastest, and boasting the lowest printing cost per page. At a $10K price tag, it could only be the lowest cost per page for me if they were giving away free reams of paper. It might pay off in a business setting where the printer is in very high usage, due to its monthly duty cycle of 125,000 pages.

Generally, the ratings are depressingly low. Higher ratings (starting at 78 and going down) are given to monochrome AIO (“all-in-one”) printers, and I am not interested in that. Many of them are also mostly suitable for offices. When it comes to color AIO models, the scores drop to 70 starting with a Brother MFC printer. These generally have higher price tags. AIOs generally print, scan, fax, and photocopy. I haven’t had the need to photocopy, and have separate scanners which perform much better than the AIOs I’ve used. And is faxing still a thing with anyone? Most of us just receive documents sent as emailed attachments these days. In my experience, the fax feature, when I had bothered to hook it up, is only just an avenue for a grifter to send junk faxes to me, at the expense of my ink and my paper.

I guess while CR wouldn’t have known that I have a high-performing scanner and have no need of an AIO, it has helped me to clarify my own priorities: 1) Color laser; 2) duplexing (inkjets do color better, but I am not sold on inkjets doing that on both sides of the same sheet without bleeding, and lasers have a lower per-page cost); 3) reliability with a cat-5 (wireless is OK too, but only if cat-5 is working); 4) compatability with refillable, aftermarket toner cartridges.

As a postscript, my outlay for my working, networked printer was $0.00. I turns out that there was nothing wrong with the network card. What tipped me off was that I got the printer to print out the network information, and noticed the printer had an IP address, and knew the IP of the router. Paradoxically, the printer was not visible anywhere on the network. So, rather than untangle that, a factory reset was all that was needed.

My Introduction to the Raspberry Pi

The Raspberry Pi version 4B

I was recently sent a Raspberry Pi 4B computer, disassembled, with little introduction or fanfare. I have heard much about the miniature hobby computer over the past decade, but hadn’t actually used one or seen one up close until now. I put it together, and observed that it didn’t POST on its own. Being a tiny motherboard, it has no BIOS at all, and is completely dependent on the installed operating system for hardware detection and testing. I downloaded and installed a Debian image made for Raspberry Pi using their imager you could download from their website.

It boasts a quad-core ARM Processor (Revision 3). It is not your average Intel processor. All of the largest chips on the motherboard each take up no more than 1 square cm, and the heat sinks are so small that they attach like little aluminum decals to their processors. It comes with 4GB RAM installed, and a place for a Micro-SD for the operating system and limited storage. It can support up to two 4K HD monitors at 60 frames per second, each connected with micro-HDMI connectors. It has connectors for legacy Type-A USB2 and USB3 devices. I am using the two USB2 connectors for the mouse and keyboard; and the other two for “anything else”. There is a third Type-C USB3.1 connector which is used for power. The power switch itself is on the same cable as for the power supply. You can also hook up a standard Ethernet cable for connecting to a network. If you don’t have ethernet, the Pi boasts a WiFi receiver. The motherboard goes inside a plastic system box about the size of a small pack of cigarettes.

On the motherboard are pinouts which resemble the ones used for the old parallel ATA connectors from decades ago. After learning how to send power to which pin through a comnputer program, the possibilities of operating small electrical devices (lights, speakers, an arduino device, what else …?) expand greatly.

Uh, (ahem) ….

The installation had a few hitches, since it appears I cracked the first two micro SD cards either on the supplied USB adaptor, or on the micro-SD mount provided underneath the motherboard. I went and purchased a third, a 32GB Sandisk Ultra (I could have gone as low as 4GB, but this was the smallest sold by Staples). I installed the OS using their installer again, and this one booted. Since I was at home, I didn’t have access to my supplied monitor, keyboard and mouse, so I just reconnected existing devices at home, and was rewarded by a rather nice X-Windows display.

The CanaKit Raspberry Pi 4: A $100 Office PC and More ...
The default desktop for Raspberry Pi 4, with some icons added. It comes with a minimal set of default apps, and access to a BASH shell.

The Pi is bluetooth-enabled, but I hadn’t tried it yet. I did plug in a wireless adapter for a Logitech keyboard/mousepad combo (the K400 Plus), and it worked instantly.

Now, since I was given this computer as a teaching tool for students, I made the default account password-protected, and created a new account named “student” with fewer priveleges: they can’t install or remove software, and are not part of the “games” group. The first restriction appears effective when I tested it, but the latter exclusion from the “games” group still meant they were able to play  some games, for example those that originate from the python graphics libraries. My students, like teenagers everywhere, have at least a mild addiction to computer games, so I decided to remove them as a possible distraction. Since all students will use  a single account, they will need their own USB thumb drive, since there won’t be many other ways to save files edited on the Raspberry Pi. However, since it has WiFi, there is always G-Drive or OneDrive.

Not knowing what to do with my psh

psh, or the Perl shell, is supposed to be, among other things, a kind of “immediate mode” for perl code segments, as well as a way of injecting Perl commands and syntax into other shells such as bash.

It is always a bit ambitious at the best of times, to install anything from source into a Cygwin installation. Cygwin lacks much of the trappings of a full UNIX installation, which is understandable, having to run on top of MS-Windows. But Cygwin does support X-Windows and subsequently big-ticket window managers like Mate or Gnome, and also Java when you unpack it. It supports GCC, perl, and many of your other favourite open source languages.

The source for psh was downloaded from GitHub, and I downloaded the ZIP file for it in an empty directory.

I had to install psh as root (actually admin, because Windows), before running it with my joeuser account. When it ran, I observed that it actually re-ran the incumbent shell, and really had no actual shell of its own that would result in its own prompt style.

For all of the rest of its behaviour, it seems to be a bash shell (my default shell). Entering some perl commands appeared to just be ignored, such as something like “my $i=10; print $i*5;”

But then I tried to do an ls in my home directory in the following way:

ls -al | s/p/Q

and as predicted it turned all occurrences of p to Q in the file listings. I tried to pipe ls through s/[pP]/q, but that didn’t work for me. So if I wanted to turn both upper and lowercase from p or P to Q, I would require a second pipe:

ls -al | s/p/Q | s/P/Q

This might be somewhat understandable, but I tried this on my Cygwin installation (on a native Perl interpreter, not just a shell, and s/p/Q changed both uppercase and lowercase p. [pP] is a sed/vi convention that specified a substitution upon detection of any letter inside the square brackets, in this case, p or P. I normally use that thinking as a shorthand for not needing to know all of the Perl string handling parameters. It the kind of thing that enamoured me to perl in the first place, due to its low learning curve if you already know how to use sed or the substitution commands in vi, both of which are pretty much the same as each other.

So, it looks like psh could be a good testbed for experimental commands or interesting shell scripts, but its actual usefulness is incubment in how well its output and behaviour matches up with your native perl installation.

Digital Headphones

Go on Google and there are any number of headphones for sale for your computer. I once required a headset with a built-in mike which could be used for online sessions and so on. It turns out that shopping for these things is full of traps.

Just because you spent a lot of money for a headset, it definitely doesn’t mean more money is better. My best headphones were both Logitech G330’s, which Logitech has stopped making. I had a new set simply because the earpads wore out and the headband cracked. Being cheap, it was pretty much all plastic. But they fit around the back of my head rather than over my head, which was a selling point (apart from the great sound).  But the sound, whether from the noise-cancelling mike or to the headphones, was really good, pretty much perfect, which is high praise for $19.00 headphones.

I needed a replacement for my second set last year, and couldn’t find the same kind for sale, not even on E-Bay. They will sell you a replacement adaptor, replacement earpads, but never the headset. Slight changes in model number – whether G332 or G230, all led to radically different, chunkier, and more expensive, headphones. Amazon had an entry for the G330 with a full description, but reports that the manufacturer discontinued it, and have no G330 to sell.

This is the G330, and this is exactly how you wear it: the headpiece goes around the back of the head rather than over the head. For support, the headpiece curls over the ears. For me, this was also a very comfortable fit, since I have a big head.

SADES Spellond Pro
The SADES Spellond Pro with a blue light which I am sure impresses people below a certain age.

I decided to see what I could get and was able to spend a little more money, and bought a pair of Sades Spellond Pro headphones, and to my disappointment there was not much else available at or above the $65.00 price point among the large stock they had. Sades was not a brand that I heard about, and when I tried them I was not bowled over, but I thought they were a competent set of headphones, but not at the level of the G330s bought at a third of the price. Both headphones were of the USB variety, with controls on the cable.

The Sades headset was a bit on the gaudy side. I wasn’t aware until I put them on at home that the headpiece and microphone gives off a blue light, but only after a few days when I noticed it in my reflection. I have no need of blue light from the earpieces or microphone, as I am sure they don’t improve the sound. I would suppose this appeals to a gamer audience, and I am not really that big on gaming. The sound is boxy, and the microphone for recording video is just okay. It apparently has two sound settings, both aimed at gaming, and I would suppose that gamers find the boxy sound appealing. The Spellond also had a chunky control module part way down the cable which made it hard to pack away neatly. The rubber cable tie provided would come apart on its own, so you had to be be particular as to how tightly you bound the cables with it.

Logitech H600 wireless bluetooth headset: plastic, plastic, and more plastic, but a good mike, good sound, and the freedom of movement that comes with wireless bluetooth.

Recently at work, we were handed a USB wireless headset, and they were Logitech H600 wireless headsets. These list on logitech.com for close to $70, and are apparently sold out. They came in a plain-looking blue and clear box, and actually looked cheap. Just about all plastic, with a bare minimum of metal parts, even for the headband. I wasn’t expecting Bose Aviator headsets or anything, but for $70, they could have been constructed with better materials. The earpieces were covered by a thin layer of foam plastic. They were worn over-the-head, and were wireless, which I never warmed up to, since the charge life of the batteries limits their use. But when I tried them, my opinion changed. The sound both from the mike and through the headset was far superior to the Sades model. Sades makes up for it by superior construction and padding in the headband and the earpieces, but the sound of the Logitech appealed to me more. Also, the wireless had a range of about 30 feet, which allowed me to move away from the comptuer without missing anything or for others online to hear me. There was that freedom also. Another plus was freedom from cables. As a plus, the USB-A receiver/transmitter neatly packs away though a cavity in the headset when the headphones are not in use.

It appears that headphone manufacturers are beginning to notice that we like clear sound, and are increasing the price of their low-end headphones, since this was the kind of sound quality I got from my wired G330’s. My concern is that for the price, something so cheaply made isn’t likely to last, regardless of the sound quality.

Losing 200 million dollars in bitcoin on your hard drive because you forgot your password: A Marxist interpretation

bitcoin
Bitcoin only exists digitally. This will only provide a mental image and nothing else.

(Based on a New York Times commenter going by the name of Franz, from Germany):

Bitcoin’s increase in value is quite remarkable – the virtual increase in value is not matched by any actual value.

The generation of the Bitcoin is not a product of human labour, but that of a computer; a large amount of energy was consumed by computers around the world for this reason. As a result, the world climate, to the disadvantage of all, further heated up.

Bitcoin is neither the product of labour nor creative efforts. It is simply created out of nothing and now you lost the password and cannot have it. You see it in on the hard drive in front of you but you can not get it.

I feel sorry for the people who lose their house and belongings in a hurricane or fire, these are usually the product of a lifetime of labour. Sorry, but I can spare little empathy for Bitcoin victims.

As an asside, I think a light bulb joke is in order. Q: How many Marxists does it take to screw in a lighbulb? A: None, because it contains the seeds of its own revolution.

Trendy Google Searches of 2020

I have heard about Google’s cataloguing their top search terms. They don’t really curate the “top 10” of all time or anything; rather, they divide their search terms into categories. I have discovered something about myself when I saw these lists: I don’t give a shit about most of it. Here is Google’s finger on the world’s pulse for 2020:

  • Top search:  Coronavirus. Celebrities and politicians have been beat out in the search rankings by a submicroscopic, nonliving viral particle. It was also top in the news category also.
  • Top Actor: Tom Hanks was at the top.
  • Top Athlete: Ryan Newman. This NASCAR guy  survived a grisly crash on the last lap of the Daytona 500 back in February.
  • Top Game: Among Us trended after late August.
  • “Top” Recent Deaths: Kobe Bryant, also the third most frequent search term overall.
  • Top Movie: Parasite is at the top. I saw this movie. It’s about how the protagonists, a servant for a rich family lowers their morals continuously to obtain more of their master’s wealth, to the point of murdering their masters. I thought the idea was supposed to be that a parasite doesn’t kill its host. Personally I don’t like movies where you can’t root for the protagonist.
  • Top TV Show: I have no appreciation of television shows. What’s “Tiger King”? Maybe I should Google it. Oh, I see. It’s a show about cat breeding on Netflix.

If you want a meaningful life, quit filling it with glorified lolcat programming like this and actually take on something intellectually challenging, with the TV shut off. In my case, I do  have the TV on as I type this, but it is tuned to a spotify-like music-only station playing smooth jazz. No words. I can concentrate. I seem to have a low tolerance for mindless programming.

Google Reviews of the Quality of Service at Mount Everest Base Camp IV

A screenshot of what I saw when I looked up Mount Everest. It seems to have a new set of pictures, and gave me the left panel when I clicked on “Everest Base Camp IV” on the map. This is in Sattelite View.

Base Camp IV is the camp nearest to the summit of the tallest mountain in the world. It is situated at 26,000 feet above sea level, in the oxygen-deprived region of the mountain called the “death zone”. It gets its name from the fact that at that altitude your body is consuming oxygen faster than you can breathe it in. When you surf there on Google Maps, you get a map of the summit, and depending on how much screen you have, the snow-encrusted Base Camps III and IV. If you went there on a search, Google likes to present you with a panel with hopefully useful information on the left-hand side.

With that, some rather questionable user options that seem out of place here. One of them is a phone number (do they really have phone service?), and a checkbox to “Claim this business”, making assumptions that are really unsuitable.

But the least suitable of all is that Google Maps offers a “Review” section, as if this is some kind of swanky hotel or neighbourhood restaurant. The people who climb Everest aren’t going there for room service or good food, and are probably assuming that Base Camp IV doesn’t have any kind of entertainment or any other reference to normal urban civilization that most of us are used to. To anyone not in the know: that isn’t why you climb Everest.

The truth is, one-third of climbers never make it to the summit, and 2% never make it back alive. If the weather is unfavourable to climb the rest of the way up after 48 hours at Camp IV, climbers are forced to return, effectively giving up their bid to make it to the top.

Then came the reviews. The authors of the reviews knew that the review section was out of place, and decided to put absurd, obviously fake, reviews which may be found here, and some zingers are given below:

From David Bell: The pool was closed when I checked in and they didn’t know when it would re-open, which was very disappointing. I also found it concerning that there was no bellhop available to help with my luggage and i had to carry it all myself. As for my accommodations Camp IV was rather cold and had a horrible draft. I was also told I would be given sherbet each day, orange is my favorite, yet when I arrived I was assigned a Sherpa who wasn’t sure what I was inquiring about. Pro tip: Don’t bother bringing ice for cocktail hour, there is plenty to be had. Overall I have to rate the local 5 stars for its location and scenery alone., simply majestic views and wildlife. The Yeti were very welcoming!

From Cheyenne Nicole Philips: Broke a nail on the way up! Very long walk from the parking lot! No cell service, wore the wrong shoes. Was told I would get a king size bed. When I showed up they only had sleeping bags. Didn’t pack a colorful enough outfit. Wind messed up my hair. Starbucks was closed! Will have to try again in the summer. Hopefully pool will be open, the views were average too.

From Shawn Speller: It was, well, alright I guess. Complimentary breakfast was alright: toast, jam, various fruits. Played bingo at the pavilion in the afternoon which was fun, although I have to say the sherpa caller was a little hard to hear so it made for a couple false bingos which was a little annoying. As far as the views, I mean, you get what you get. It’s a little cloudy in the mornings by mid day it clears up a bit but all you’re seeing is a rock and yeah I guess it’s a big rock but as other reviewers said too the brochure makes it look a lot bigger (false advertising). I’m giving a 3 star review simply because cell service was not an issue, I got 3 bars at the top of the mountain and was able to chill for a bit and binge watch Game of Thrones.

From Nick Randall-Smith: This is the 21st century and there is absolutely no provision for the disabled at this camp, there was no place to charge the battery on my wheelchair. All was not lost as I persuaded a Sherpa to carry me up to the viewing point at the top of the mountain, thank goodness I remembered my American Express card because the Sherpa charged a fortune with the feeble excuse that he was risking his life to get me up to the summit, and he had a problem getting the card machine to work too. The view was pretty good but I was hoping to see the sea from the top but you can’t so that was a disappointment. When we got down I offered the Sherpa a $5 tip but he rudely told me where to shove my good American dollars, ungrateful brute.

From Justin Mehoni: Bit rocky for sunbathing. I could feel the stones below my beach towel. And when I got up some darned yeti stole all my clothes!

From Martino Keates: No proper rooms, just TENTS!!! Food very boring. Asked for an omelette and salmon, received a biscuit. Worth noting that evenings can get very cold. Bring a cardigan.

From Kelly Zitterkopf: It was pretty cool, but the mountain wasn’t as tall as the brochure made it look. The camp didn’t provide wifi and cell reception was terrible. I was able to get one bar at the top of the mountain, but I found it tedious to walk up to the summit every time I wanted to update my twitter.

A composite of some reviews: No pets allowed. The wi-fi was pretty bad. Also the local CVS said they didn’t sell cigarettes anymore. Poor sea view. You have to go through Everest to the nearest TESCO. Also – I was under the impression that there was to be a “wise man” or some such personage at the summit. There wasn’t; instead I was subjected to the inane yammering of a veterinarian from Brisbane who kept calling me a “tough little sheila” whatever the heck that’s supposed to mean.

More reviews: Too far from the nearest parking lot, and no beer store. Starbucks was open when I came, but they couldn’t fill my order for “Double Ristretto Venti Half-Soy Nonfat Decaf Organic Chocolate Brownie Iced Vanilla Double-Shot Gingerbread Frappuccino Extra Hot With Foam Whipped Cream Upside Down Double Blended, One Sweet’N Low and One Nutrasweet, and Ice”. Oh and there is no cell service or wi-fi. This is the 21st century, how can there be no wi-fi? Won’t go back any time soon.

Still more: OK, I suppose, but the views were ruined by a great big mountain in the way. Also, there is poor signage and no ski lift. When I complained, they said they expected me to walk to the top of Everest! Do you know how freakin’ high Everest is? Apart from that, the toilets smelled and there were no antibacterial wipes either. I misread the equipment manifest and as a result brought tanks of helium rather than oxygen. As a result, the sherpas never took my commands seriously due to my now high-pitched voice. I had to put up with the sherpas, since they wouldn’t let me drive my camper to the summit.

Compiling The Linux Kernel Docs

In the last article, I said that compiling and installing source versions of software was akin to “going rogue”. I must confess that I have compiled from source and installed software that wasn’t in my distribution, most recently TexStudio, as being one of the larger projects, requiring tons of other libraries and whatnot to also be installed (or quite often, compiled from source on the side), since it wasn’t a part of the linux distro I was using at the time. It also wasn’t a part of Cygwin, and I compiled for that too. It was a great way to kill an afternoon.

But there was a time that I had compiled the kernel from source. It was necessary for me, as speed was an issue and I had slow hardware at the time. What I also had was a mixture of hardware pulled from different computers at different times. I researched specs on sound cards, network cards, video cards and the motherboard chipsets, and knew what specs to tweak on the kernel compilation dialogs, so I could get the kernel to do the right thing: which is to be fast and recognize all my hardware. I was doing this before the days of modules, with the version 1.x kernel. It worked, and it was noticeably faster than the stock kernels. X-Windows on my 80486 PC ran quite well with these compiled kernels, but was sluggish to the point of un-useable with a stock kernel running. Every few versions of the kernel, I would re-compile a new kernel for my PC, and pretty soon using the tcl/tk dialogs they had made things pretty easy, and I could answer all the questions from memory.

But then that all ended with version 2. Yes, I compiled a version 2 kernel from source, and yes, it ran OK. But it also had modules. The precompiled kernels were now stripped down and lean, and the modules would only be added as needed when the kernel auto-detected the presence of the appropriate hardware. After compiling a few times, I no longer saw the point from a performance standpoint, and today we are well into kernel version 5.3, and I haven’t compiled my own kernel for a very long time.

For the heck of it, I downloaded the 5.3 kernel, which uncompressed into nearly 1 gigabyte of source code. I studied the config options and the Makefile options, and saw that I could just run “make” to create only the documentation. So that’s what I did.

It created over 8,500 pages of documentation across dozens of PDF files. And 24 of them are zero-length PDFs, which presumably didn’t compile properly, otherwise the pagecount would have easily tipped the scales at 10,000. The pages were generated quickly, the 8,500 or more pages were generated with errors in about 3 minutes. The errors seemed to be manifest in the associated PDFs not showing up under the Documentation directory. I have a fast-ish processor, an Intel 4770k (a 4th generation i7 processor), which I never overclocked, running on what is now a fast-ish gaming motherboard (an ASUS Hero Maximus VI) with 32 gigs of fast-ish RAM. The compilation, even though it was only documentation, seemed to go screamingly fast on this computer, much faster than I was accustomed to (although I guess if I am using 80486’s and early Pentiums as a comparison …). The generated output to standard error of the LaTeX compilation was a veritable blur of underfull hbox’es and page numbers.

For the record, the pagecount was generated using the following code:

#! /bin/bash
list=`ls *.pdf`
tot=0
for i in $list ; do
        # if the PDF is of non-zero length then ...
        if [ -s "${i}" ] ; then 
                j=`pdfinfo ${i} | grep ^Pages`
                j=`awk '{gsub("Pages:", "");print}' <<< ${j}`
                # give a pagecount/filename/running total
                echo ${j}	    ${i}    ${tot}
                # tally up the total so far
                tot=$(($tot + $j))
        fi
done

echo Total page count: ${tot}