Jan 182012
 

Here is Google’s way of protesting proposed copyright legislation: black out the company logo and direct users who click on it to a protest page.

And then here is Wikipedia’s form of protest: black out the entire site. Never mind that the people you are most likely to hurt are your friends, and the people who are the least affected are your opponents. Why not be vindictive about it, if you can?

Indeed, while you are at it, why not black out Wikipedia even for non-US users, just for good measure, despite the fact that there is very little they can do that would affect the decisions of the US Congress.

Fortunately, the blackout is easily circumvented.

Nonetheless, doing what Google did would have been just as effective, and far less harmful both to Wikipedia’s reputation and to users who rely on its services every day. Unfortunately, radical activism prevailed over common sense: the difference between public protest and sabotage was forgotten. This is what dooms revolutions: they may be started by idealists and poets but ultimately, it is characters like Boris Pasternak’s Strelnikov in Doctor Zhivago, who set the tone.

 Posted by at 1:11 pm
Jan 152012
 

Meet the father of all hackers: Nevil Maskelyne.

In 1903, this gentleman gained notoriety by hacking into Guglielmo Marconi’s purportedly long-distance secure wireless telegraph, causing it to tap out unflattering messages about Marconi minutes before it was to be demonstrated at the Royal Institution. Maskelyne was a disgruntled competitor, his business suffocated by Marconi’s overly broad patents, but he justified his actions claiming that it was in the public interest to expose the flaws of Marconi’s system.

If his name sounds familiar, by the way, it’s perhaps because of his famous namesake, Nevil Maskelyne, the Astronomer Royal who a century and a half earlier was the cause of so much frustration to John Harrison, creator of the marine chronometer.

 Posted by at 1:15 pm
Nov 262011
 

BYTE was once the most influential computer magazine. I, too, was an avid reader. But the old BYTE is long gone, and an attempt to revive it as a subscription-based service also ended a few years ago.

But now, much to my surprise, I am finding BYTE alive and well again, as a beta site ran by Information Week. How could I have missed this? Even Jerry Pournelle is back, with his venerable Chaos Manor opinion column. Yay!

 Posted by at 4:56 pm
Nov 242011
 

2012 is supposed to be the year when the world comes to an end, courtesy of a stray planet or something. No, this is not something that I worry about, not the least bit.

Yet the world as we know it may still come to an end of sorts. Here are some of the things I do worry about:

  1. Germany is having trouble raising cash. This alarming news may mark the beginning of the end for the Euro, triggering a massive worldwide depression.
  2. A collapse of the Eurozone may trigger a collapse of the Chinese economic bubble. The consequences of an economic depression in China are unimaginable.
  3. Recently, a successful SCADA attack on a water plant in the US was confirmed. Perhaps in 2012 we shall see the first large scale SCADA attack on some essential infrastructure in the United States or Western Europe. How Western governments might respond is anyone’s guess.
  4. Israel may actually commit an act of utmost self-destructive stupidity and attack Iran.

Thankfully, there is one item that I can strike out from my list: it seems increasingly unlikely that one of the tea party fundamentalists would win the Republican nomination in the United States and go on to defeat Barack Obama. Obama may end up a one-term president, but if he is defeated by a Gingrich or a Romney, I’d know that at the very least, an adult remains in charge of the White House.

 Posted by at 5:14 am
Nov 212011
 

Operating systems can be so infuriating.

Ages ago, I used to have a CD-changer type CD-ROM drive into which I could load four CD-ROMs, each of which appeared under its own drive letter. This was very convenient, except for one thing: every so often, when a program (usually needlessly) enumerated the drives on my system, Windows insisted on sequentially loading all four disks: clickety-click, buzz-buzz, vrooooom, cli-click, cli-click, swoosh, clack… clickety-click, buzz-buzz, vrooooom, cli-click, cli-click, swoosh, clack… clickety-click, buzz-buzz, vrooooom, cli-click, cli-click, swoosh, clack… clickety-click, buzz-buzz, vrooooom, cli-click, cli-click, swoosh, clack… Yes, I can still hear it in my mind. And while this was taking place, the program in question was usually unresponsive; if the program happened to be Windows Explorer, my entire desktop would stay frozen for a while.

I no longer use this CD changer, but I do use several external hard drives. External hard drives that spin down when not in use, reducing wear and saving energy. But every so often, programs insist on enumerating all drive letters, and guess what… Here we go again. Cli-click, zip, woosh, click-a-tick… cli-click, zip, woosh, click-a-tick… cli-click, zip, woosh, click-a-tick… cli-click, zip, woosh, click-a-tick… cli-click, zip, woosh, click-a-tick… cli-click, zip, woosh, click-a-tick… cli-click, zip, woosh, click-a-tick…

The infuriating bit is that these enumerations are most of the time totally unnecessary. They happen, for instance, when all I am doing is clicking inadvertently on a drop-down containing a list of folders… to list drive letters (not their contents!)

OK. A while back, I promised myself that I’ll never maintain a list of things I hate, as that is one surefire way to become a grumpy old man, and this instance is no exception. So rather than grumble about it, I am now test driving an idea: mounting the drives in question under folder names, instead of assigning them drive letters. I can already see one downside: Western Digital’s helpful little utility, the WD Drive Manager (which I use because it keeps me informed about the drives’ health status) doesn’t really like it when drives do not have letters assigned to them. It’s blinking in the taskbar incessantly. Nonetheless, that may be a small price to pay if I can eliminate the unnecessary drive spinups.

 Posted by at 3:58 pm
Nov 202011
 

Last May, when I tried to upgrade a motherboard that had trouble recovering from hibernation under Windows 7, I ran into an unpleasant problem: after the BIOS upgrade, the system refused to boot. No BIOS screen, nothing. I do have a test card that shows POST (BIOS diagnostic) codes during boot, but even with its help, I could not revive the board; clearly, its BIOS was busted.

Or perhaps not. Today, I looked at that motherboard again: Same symptoms. But then, for no particular reason that I can remember, I decided to remove memory modules from this board and reinsert them in different slots. Much to my astonishment, the board came back to life!

My guess is that either this was an unfortunate coincidence (a bad contact occurring just as I was rebooting after the BIOS flash) or, much more likely, the new BIOS did not like the particular combination of memory slots that I was using (I picked the two slots farthest from the CPU to minimize heating.)

Whatever the reason, the board now works fine. So what am I to do with it? I really don’t need it anymore (this is a board with a single-core CPU and I now have several dual-core boards either in test machines or as spares). Perhaps I should put it up on eBay while it is still worth something?

 Posted by at 11:34 pm
Nov 152011
 

This comic, from xkcd.com, would be funny if it weren’t so darn frightening:

The original caption, which also appears as hover-over text, reads: “I hear in some places, you need one form of ID to buy a gun, but two to pay for it by check. It’s interesting who has what incentives to care about what mistakes.”

 Posted by at 2:02 pm
Nov 062011
 

In his delightful collection of robot stories Cyberiad, Polish science-fiction author Stanislaw Lem tells us how to build a computer (a sentient computer, no less): the most important step is to pour a large number of transistors into a vat and stir.

This mental image popped into my mind as I was reading the last few pages of Andrew Pickering’s The Cybernetic Brain, subtitled Sketches of Another Future.

Beyond presenting a history of (chiefly British) cybernetics (and cyberneticians) the book’s main point is that cybernetics should be resurrected from the dead fringes as a nonmodern (the author’s word) alternative to the hegemony of modern science, and that the cybernetic approach of embracing unknowability is sometimes preferable to the notion that everything can be known and controlled. The author even names specific disasters (global warming, hurricane Katrina, the war in Iraq) as examples, consequences of the “high modernist” approach to the world.

Well, this is, I take it, the intended message of the book. But what I read from the book is a feely-goody New Age rant against rational (that is, fact and logic-based) thinking, characterized by phrases like “nonmodern” and “ontological theater”. The “high modernist” attitude that the author (rightfully) criticizes is more characteristic of 19th century science than the late 20th or early 21st centuries. And to be sure, the cyberneticians featuring in the book are just as guilty of arrogance as the worst of the “modernists”: after all, who but a true “mad scientist” would use an unproven philosophy as justification for electroshock therapy, or to build a futuristic control center for an entire national economy?

More importantly, the cyberneticians and Pickering never appear to go beyond the most superficial aspects of complexity. They conceptualize a control system for a cybernetic factory with a set of inputs, a set of outputs, and a nondescript blob in the middle that does the thinking; then, they go off and collect puddle water (!) that is supposed to be trained by, and eventually replace, the factory manager. The thinking goes something like this: the skills and experience of a manager form an “exceedingly complex” system. The set of biological and biochemical reactions in a puddle form another “exceedingly complex” system. So, we replace one with the other, do a bit of training, and presto! Problem solved.

These and similar ideas of course only reveal their proponents’ ignorance. Many systems appear exceedingly complex not because they are, but simply because their performance is governed by simple rules that the mathematician immediately recognizes as higher order differential equations, leading to chaotic behavior. The behavior of the cybernetic tortoise described in Pickering’s book appears complex only because it is unpredictable and chaotic. Its reaction in front of a mirror may superficially resemble the reaction of a cat, say, but that’s where the analogy ends.

In the end, the author laments that cybernetics has been marginalized by the hegemony of modernist science. I say no; I say cybernetics has been marginalized by its own failure to be useful. Much as cyberneticians would have preferred otherwise, you cannot build a sentient computer by pouring puddle water or a bag of transistors into a vat. The sentient machines of the future may be unknowable in the sense that their actions will be unpredictable, but it will be knowledge that builds them, not New Age ignorance.

 Posted by at 3:00 pm
Nov 032011
 

Facebook didn’t hate me after all. They just discontinued posting from RSS feeds.

Instead, I now installed a new WordPress plugin that will supposedly help me automatically post my entries to Facebook.

In the process, I also updated my blog site to use a more modern theme rather than the beautiful but somewhat archaic theme I set it up with several years ago.

Let’s see if all of it was worth the effort.

 Posted by at 9:47 pm
Oct 222011
 

I’ve been using WordPress for this blog for the last several years. Lately, I noticed a problem: every new post I add appears in the “Uncategorized” post category, and it is impossible to remove a post from a category.

I’m sure the good folks at WordPress will fix this problem soon, but until then, here are the SQL statements I need to remove all posts from the “Uncategorized” category:

 DELETE vttoth_term_relationships FROM vttoth_term_relationships, vttoth_posts
  WHERE term_taxonomy_id=1 AND object_id=ID AND post_type='post';
 UPDATE vttoth_term_taxonomy SET count=0 WHERE term_taxonomy_id=1;

My WordPress database is called ‘vttoth’; for a WordPress database that uses a different name, the above instructions must be altered accordingly.

 

 Posted by at 2:10 pm
Oct 142011
 

I’m reinstalling Windows 7 on my main computer. I am doing an Upgrade (upgrading Windows 7 with itself) to avoid having to reinstall everything else. This is kind of a last resort solution, to deal with a problem that defeated all my previous attempts to fix, including some machine code level debugging. I hope the reinstall will do the trick. I’ll know in a few hours.

 Posted by at 10:19 pm
Oct 132011
 

While the world mourns Steve Jobs, another computing pioneer, Dennis Ritchie, died. Our world wouldn’t be the same without UNIX or the C programming language. My own life would have been very different without him. Jobs will long be forgotten when Ritchie’s legacy will still live on, decades from now.

#include <stdio.h>

main()
{
    printf("goodbye, dennis\n");
}

 Posted by at 12:27 pm
Oct 112011
 

Yesterday, I watched Terminator Salvation, the latest movie in the Terminator franchise.

Today,  I am reading in the news about an attempt to reconstruct visual images from MRI brain scans.

I am also reading about US military drones hacked by a virus of unknown origin and purpose.

All of which makes me wonder just how close we are actually to the kind of dystopian future depicted by the Terminator movies.

 Posted by at 8:08 pm
Sep 062011
 

It has been a while since I did anything in machine language. Until this past weekend, that is, when I spent a fair bit of time starting at disassembled code with a debugger.

Last week, I upgraded my Sony Ericsson smartphone to the latest version of its operating system. The upgrade process failed on my main computer when, after updated USB drivers for the phone were downloaded, they failed to install. The problem was not specific to the phone: all driver installations failed, with a not very informative code (0xC0000142, which just means that the application failed to initialize.)

Using the very helpful ProcMon utility from sysinternals (now owned by Microsoft) I managed to identify that it was a process named drvinst.exe that failed. This process is invoked automatically by the system every time a USB device is inserted, and also during device driver installations. So why did it fail?

I downloaded the latest Windows debugger (windbg.exe) from Microsoft; this debugger allows me to do things like debug child processes spawned by a parent process. (I later learned that drvinst.exe actually has a feature whereas it waits for a debugger after startup, to help with driver installation debugging; but chances are that I would not have been able to make much use of this feature, as the failure occurred before drvinst.exe actually started to execute its own code.) I attached the debugger to the DCOM service process (which is the one that spawns copies of drvinst.exe.) I was able to determine that it was during the initial process setup stage that this process failed, when it was attempting to attach to the gdi32.dll system library.

I still have no idea why this happens. But with the help of the debugger, I was able to tinker with this process, changing a processor register’s value at just the right spot, allowing it to continue. This inconvenient but workable process allowed me to install drivers for my phone and also updated drivers for my wireless mouse from Microsoft Update.

Perhaps the most incomprehensible bit is that the same thing works fine on an essentially identical computer. The actual failure occurs inside a kernel subroutine (undocumented system call 123Ah, called from GdiDllInitialize in gdi32.dll) that I cannot debug without a kernel debugger (and since I am trying not to mess my machine up too much, I opted not to do kernel debugging). That subroutine does not appear to be doing anything particularly magical. I checked and all relevant files and Registry settings are identical on the two machines. So it remains a mystery for now… nonetheless, it was educational. I learned a lot about driver installation in Windows 7, about process startup, and incidentally, about the ReactOS project whose open source equivalents to the relevant system components helped me a great deal to understand what was going on.

 Posted by at 8:13 pm
Aug 272011
 

I never thought Apple computers were hip. Every so often, I thought about buying Apple hardware, but if I did so, I’d want a development system, so my shopping cart at apple.ca rapidly ballooned to some 2,000 dollars… by which time I inevitably realized that I’d be buying expensive toys that would become obsolete long before I’d find the time needed to become proficient with Apple’s development tools.

And now here is an interesting article, from the Ottawa Citizen no less, elaborating on something that I felt all along: that despite its hip image, what Apple sold to the masses all along was really mediocrity.

Of course this probably means that I am not one of the cool kids, but if that is the case, so be it… life is way too short to worry about coolness.

 Posted by at 8:11 pm
Aug 172011
 

I am not usually in the business of recommending software or hardware products, and it’s certainly not something anyone pays me to do… but recently, I began using two products, both of which have exceptional value, even though one came free of charge and the other cost only 150 dollars.

The free product is Secunia’s Personal Software Inspector (PSI), a software application that turned from something I never heard about into something I cannot live without virtually overnight. It is an application that keeps tabs on all the software installed on your computer and lets you know if any of them are out of date and require updates. Like antivirus software, PSI sits quietly in the background most of the time, but it pops up an unobtrusive warning whenever a new update becomes available, and even offers a direct link to the manufacturer’s download site. It is nice, incredibly useful, it recognizes hundreds of installed applications, and, well, it works as it is supposed to and doesn’t cost a penny.

The product I paid money for is a Cisco RV042 small business router. It does what small business routers do, connects your internal network to an external (DSL, cable, etc.) Internet connection. What makes it special is that it allows your internal network to be connected to two external connections at the same time, and it performs dynamic load balancing and failover functions between the two. I now set up my network architecture to take full advantage of it… and in the coming days, it will be working overtime, as I am planning a major change to my DSL service which will likely involve some unpredictable downtime. The router has other useful functions, too, not the least of which is that it can act as a VPN server, allowing a remote computer to connect to the internal network. The best part is that, like Secunia’s software, it simply works as advertised.

 Posted by at 8:47 pm
Aug 122011
 

Back when I was learning the elementary basics of FORTRAN programming in Hungary in the 1970s, I frequently heard an urban legend according to which the sorry state of computer science in the East Bloc was a result of Stalin’s suspicious attitude towards cybernetics, which he considered a kind of intellectual swindlery from the decadent West. It seemed to make sense, neglecting of course the fact that the technological gap between East and West was widening, and that back in the 1950s, Soviet computers compared favorably to Western machines; and that it was only in the 1960s that a slow, painful decline began, as the Soviets began to rely increasingly on stolen Western technology.

Nonetheless, it appears that Stalin was right after all, insofar as cybernetics is concerned. I always thought that cybernetics was more or less synonymous with computer science, although I really have not given it much thought lately, as the term largely fell into disuse anyway. But now, I am reading an intriguing book titled “The Cybernetic Brain: Sketches of Another Future” by Andrew Pickering, and I am amazed. For instance, until now I never heard of Project Cybersyn, a project conceived by British cyberneticists to create the ultimate centrally planned economy for socialist Chile in the early 1970s, complete with a futuristic control room. No wonder Allende’s regime failed miserably! The only thing I cannot decide is which was greater: the arrogance or dishonesty of those intellectuals who created this project. A project that, incidentally, also carried a considerable potential for misuse, as evidenced by the fact that its creators received invitations from other repressive regimes to implement similar systems.


Stalin may have been one of the most prolific mass murderers in history, but he wasn’t stupid. His suspicions concerning cybernetics may have been right on the money.

 Posted by at 3:03 pm
Jul 122011
 

I was trying to resolve a tricky problem today with the domain name system on one of my servers. One possibility was that a broken root server might have been responsible for the faulty behavior. So I began reading about broken root servers. Reading up on this topic, I happened upon an article published a few years ago discussing the pros and cons of internationalizing the Internet’s numbering authority. So I went to Wikipedia to read up about the current status of ICANN. This led me to another article about the proposed Interplanetary Internet, and about delay-tolerant networking in general. Soon I found myself reading a variety of articles on the history of computing, including the legendary decline of once famous companies like Data General and Digital… and eventually, after reading about early computer architectures and calculators, I was staring at an article discussing the early inventions of Hero of Alexandria, who indeed had a steam reaction engine and another invention that used expanding hot air to displace water which then opened church doors, two inventions that are often confused these days, leading many to believe that Hero’s engine was capable of useful work.

Unfortunately, I am not capable of useful work when I get lost like this on Wikipedia. My problem with DNS remains unsolved.

 Posted by at 3:18 pm