July 26, 2018

Microsoft buys Github

For a while now I’ve been publishing my free software projects on Github. But last month Microsoft purchased Github, and that alarmed me. Traditionally, Microsoft has been the mortal enemy of free software, and Linux in particular. The company now claims to be the friend of free software, but trusting Microsoft, whose mission is total monopoly power, is like trusting an abuser who claims to be reformed and promises he will never hit you again. So I’ve starting moving my projects to Gitlab; see them here.

June 22, 2018

Mailing labels in Linux

Once a year our library sends out appeal letters to donors, using mailing labels that we print ourselves. The librarian keeps a list of donors in a spreadsheet that records their names, addresses, and past donation amounts. Formerly the librarian attempted to use MS Office to generate the labels, but this was an error-prone and time-consuming operation. I prefer to automate processes like this using scripts and open source software instead of GUIs, so I took on this task.

June 13, 2018

Cervantes on Criticism

The following explains much of the commentary on Youtube and other forums on the internet:

“Men who are famous for their talent, great poets, eminent historians, are always, or almost always, envied by those whose particular pleasure and entertainment is judging other people’s writings without ever having brought anything of their own into the light of day.”

– Cervantes, Don Quixote, Second Part, Chapter III

April 24, 2018

Disable low toner error in Brother printer

Our library has a Brother MFC-8950DW laser printer / copier device that started complaining recently about its toner cartridge being low on toner. The cartridge was nearly new and the print quality was still quite good. Then a couple of days ago, the printer stopped printing, saying that we needed to replace the cartridge. This was clearly ridiculous. After some poking around I found this video that showed how to disable the low toner error and get thousands more pages out of the cartridge. Here’s what to do:

  1. Remove the toner cartridge. This requires removing its carrier and then extracting the cartridge from the carrier.

  2. Notice that there is a small clear plastic lens on the right side of the cartridge. The printer shines a laser beam through this hole, and if the beam emerges on the left side of the cartridge, the printer assumes that the toner level is low.

  3. Place a small piece of duct tape over the lens and reinstall the cartridge. The low toner error should be gone.

I filed this note under “crapification of everything” because it’s another example of how making a device “smart” has actually made it stupider. The user can no longer decide when to replace the toner cartridge based on print quality. The printer now makes this decision on its own, and worse yet, refuses to function once it has made this erroneous decision.

April 15, 2018

Using the Coce book cover cache with Koha

Earlier I described how I installed the Koha library software system on Debian 8. Koha can display book cover images in search results by fetching the images from Amazon, if you enable the OPACAmazonCoverImages preference in Koha. But Koha needs to query Amazon to get the URL for the images. Furthermore, clicking on the image sends the user to the Amazon site for the book in question. I believe this behavior is required by Amazon’s terms of service, and I consider it incompatible with the goals of a public library. To avoid the use of Amazon entirely, and to speed up the queries for image locations, I installed Coce, a cover image URL caching server.

April 15, 2018

Extending MicroEMACS with Ruby

Years ago, when I had planned to rewrite MicroEMACS in Ruby, the motivation was to have support for Rails built into the editor. Eventually I did add some very minimal Rails support without rewriting the editor. But it was never quite satisfactory. Some things that are easy to do in Ruby, such as converting singular names to plural or camel-case names to underscores, are not easy in mimimal C, and I did not attempt all of them. The solution was to allow new commands to be written in Ruby.

April 11, 2018

Accursed Invention

“Happy were those blessed times that lacked the horrifying fury of the diabolical instruments of artillery, whose inventor, in my opinion, is in hell, receiving the reward for his accursed invention, which allows an ignoble and cowardly hand to take the life of a valiant knight, so that not knowing how it comes, or from where, a stray shot is fired into the courage and spirit that inflame and animate a brave heart, sent by one who perhaps fled in fear at the bright flare when the damned machine dischared it, and cuts off and ends in an instant the thoughts and life of one who deserved to enjoy many more long years. When I consider this, I am prepared to say that it grieves my very soul that I have taken up the profession of knight errant in an age as despicable as the one we live in now, for although no danger can cause me to fear, it still fills me with misgivings to think that powder and tin may deprive me of the opportunity to become famous and renowned throughout the known world for the valor of my arm and the sharp edge of my sword.”

– Cervantes, Don Quixote, First Part, Chapter XXXVIII

March 23, 2018

Progress in California

I thought it would be interesting to compare my income and costs as a fresh college grad in 1976 with those of today. Are things really so much more expensive in Silicon Valley now than they were way back then?

When I graduated from the University of California in 1976, annual tuition was $630. I was able to pay these fees by working a crap summer job at a warehouse in Redwood City. In 2012, the annual tuition was $14,460. So tuition has increased by at least 2295 percent.

My first apartment, near one of the busiest, noisiest intersections in Redwood City, cost me $160/month. Now that same apartment costs at least $1925/month. So rents have increased by 1203 percent.

My first job, as a software engineer at a now-defunct microprocessor manufacturer, paid around $10,000 per year, if I recall correctly. Today, the starting salary for a new college grad in Silicon Valley is $128,456 per year. (That figure seems high, but let’s just assume it’s not too far from reality). So salaries have increased by 1284 percent.

This tells me that in the last 40 years, salaries for the elites in Silicon Valley have kept pace with rents. But tuition has increased nearly twice as fast. UC used to be a bargain; now it is a source of long-term debt.

According to the Bureau of Labor Statistics’ CPI Inflation Calculator, the cost of living has increased by about 432 percent in the same period, on average. It is clear that Silicon Valley’s rents and high-tech salaries have grown far faster than inflation, which would help to explain the increasing gentrification throughout the Bay Area and environs.

March 22, 2018

Linux Mint 18.3 hang on ThinkPad T420i

I tried installing Linux Mint 18.3 on a ThinkPad T420i yesterday, and ran into a serious kernel problem that forced me to revert to Mint 18.1. The problem was a hang that is due to a bug in the driver for Intel graphics chips (such as that used in the T420i). The hang caused the desktop to freeze at random times, sometimes permanently, requiring reboots using Alt-SysRq magic keys.

Occasionally the hang appeared after logging out, and several messages like the following would appear on the text console:

[Wed Mar 21 12:02:00 2018] [drm:drm_atomic_helper_commit_cleanup_done
[drm_kms_helper]] *ERROR* [CRTC:32:pipe A] flip_done timed out

There are a number of web pages describing the problem, such as this one. The suggestions on some of these web pages, involving adding kernel boot parameters, did not work for me. As mentioned above, I chose to revert back to an installation of Mint 18.1, which uses an earlier kernel (4.4) that does not have the bug.

← Archive