Fazal Majid's low-intensity blog

Sporadic pontification

Fazal Fazal

Donating old computers

I recently upgraded my laptop, and donated my old (but still functional) one to StreetTech, a group that trains disadvantaged youths so they can obtain certifications that will get them jobs in IT. I found them using the Cristina foundation, an organization that matches donors to groups like StreetTech.

If you are a compulsive computer shopper like myself, who has functional but not-quite bleeding edge equipment lying around gathering dust, or an IT manager in a company looking to upgrade its computer fleet, please consider donating them this way rather than putting them on eBay. It’s certainly a much better way of disposing of old computers than this one in China.

Objects are aristotelician

One of the unquestioned assumptions behind object-oriented programming is that objects are instances of a class, and thus implicitly stay that way. This is akin to the philosophical concept of nature, as in an invariant quality of something, that cannot be changed:

But is there any one thus intended by nature to be a slave, and for whom such a condition is expedient and right, or rather is not all slavery a violation of nature?

There is no difficulty in answering this question, on grounds both of reason and of fact. For that some should rule and others be ruled is a thing not only necessary, but expedient; from the hour of their birth, some are marked out for subjection, others for rule.

Again, the male is by nature superior, and the female inferior; and the one rules, and the other is ruled; this principle, of necessity, extends to all mankind.

It is clear, then, that some men are by nature free, and others slaves, and that for these latter slavery is both expedient and right.

Aristotle, Politics I, 5 (emphasis mine)

Needless to say, this concept is reactionary. One may well object that given slavery’s omnipresence in antiquity, even a great philosopher such as Aristotle could not be entirely free of the prejudices of his time. This conveniently ignores the fact Aristotle was a pupil of Plato, himself a disgruntled aristocrat who collaborated with Spartans when they overthrew Athenian democracy after the Peloponnesian war, and is arguably one of the theoretical founders of the totalitarian state. I would say it is rather the presumed greatness of Aristotle that should be reexamined, but I digress. For more on this subject, read Karl Popper’s The Open Society and its Enemies – Volume 1, The Spell of Plato.

Thus, OOP carries within it the conservatism of Plato and Aristotle, people who resented how the young Athenian democracy had usurped the aristocracy’s natural (in their eyes) right to rule over others. This is not just an academic consideration. Computer programmers influence society, specially those who work for governmental information systems, and if you consider the Sapir-Whorf hypothesis, the language they use affects the way they think.

This is why I like Python’s ability to morph an object from one class to another:

Python 2.2.1 (#1, Apr 18 2002, 13:06:27)
[GCC 2.95.3 20010315 (release)] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> class Slave:
...     def whip(self):
...             return 'Yes, master'
...
>>> class Freeman:
...     def whip(self):
...             return 'Die, fascist scum!'
...
>>> man = Slave()
>>> man.whip()
'Yes, master'
>>> man.__class__ = Freeman
>>> man.whip()
'Die, fascist scum!'

Windows configuration management

The key to running a reasonably reliable Windows system is configuration management. A typical Windows will have tens of thousand of files and hundreds of software components installed. It’s a numbers game: the more components interacting on the system, the greater the probability that two of them will conflict.

Windows gets a lot of heat from Unix zealots (I am one myself) for being unreliable, but any operating system that attempts to comprehensively support all the wide variety of oddball peripherals and software out there is going to experience the same integration problems; certainly, Linux is converging towards Windows in terms of the number of security advisories released. Of course, using an obsolete version like 98 or ME without modern protected memory is a prescription for disaster, but the NT-based versions, i.e. 2000 and XP can have reasonable reliability, at least for desktop usage.

The rest of this article describes my strategy minimizing entropy in my Windows systems.

Separation

The way I approach my Windows configuration is to establish a clear separation between Operating System/Applications and Data.

The OS and Applications do not mean anything special to me other than the amount of work required to reinstall. Data represent actual productive work on my part and must be protected. I separate OS/Applications from data clearly, and make regular checkpoints of OS/Apps after installation and every now and then before I make major changes like installing an application or OS service packs. If my system becomes unstable at some point in time, I can easily revert to a known stable configuration.

The specific tools used to provide this backup of system configuration are a question of personal choice. A number of commercial software like Roxio GoBack or Powerquest SecondChance (since discontinued) purport to do this, as does Windows XP.

I personally don’t trust these programs all that much, and prefer to make a total backup of my system using Norton Ghost. To ensure my data is not erased when I restore from a Ghost image, I have at least two partitions on each of my systems:

  1. C: for Windows and applications (NTFS)
  2. D: for my personal data (NTFS on desktops, FAT32 on laptops)
  3. I: for my Ghost images on desktops (FAT32), on a different drive than C: so I can survive a drive failure

That way I can destroy C: at my leisure, in the worst case I will have to reinstall a couple of applications and reapply some settings that were lost since the last release. My data sits safely on the D: partition (and backups).

Backup strategy

I don’t trust CD-R media or removable drive cartridges for backup purposes, and tape is either too slow or too expensive in the case of DLT. I keep full duplicates of my data partition and some Ghost images on a pair of 100GB external FireWire drives, one I keep at home and one at work. I rotate them weekly so even if my house burns down I will have lost in the worst case only a week of work or photos.

Limitations of this method

This technique doesn’t work very well if the underlying hardware configuration changes too often, and assumes a linear install history. If I install software A, then B, then C, I can go back from A+B+C to A+B or A but not to A+C.

How-to

This section shows how to extricate the data from OS/Apps which Windows and most apps usually try and commingle. The TweakUI utility from Microsoft is an absolute must-have. It is a control panel that allows you to change the behavior of the OS in vital ways that are not accessible otherwise short of editing the Registry directly.

Outlook

Outlook files are the single largest data files on my system (Ghost images do not count). By default, Outlook will create its PST file in the Documents and Settings directory. You can either relocate this directory to the D: partition, or create a new PST file in a location of your choice and use Advanced properties in the properties dialog for the PST in Outlook to make it the default location for POP delivery, after which you can close the old one and delete it.

My Documents

And derivatives like “My Pictures”, can be relocated to D: using TweakUI.

Favorites

For IE users, TweakUI allows you to relocate the Favorites directory to another place than the default. This way, you will not lose your favorites when you have to restore your system.

For Netscape/Mozilla users, the Profile manager utility allows you to set up a new profile with files that are stored where you want, e.g. on the D: partition.

Nikon D100 tests

I got my father a Nikon D100 digital SLR for his birthday. I tested it for a couple of weeks beforehand, and have posted some tests. There is a small gallery of macro shots, and an informal comparative test of three normal lenses.

How to make long flights more bearable

I just returned from a cousin’s wedding in Houston. One very effective way I found to make the flight bearable is to carry an Apple iPod MP3 player with a pair of Sony MDR-NC10 noise-canceling earbuds.

The iPod holds hundreds of CDs’ worth of music (without being interrupted constantly by the PA) and its lithium-ion battery lasts enough for a Paris-San Francisco flight. The Sony earbuds cancel noise passively (as ear plugs) and actively through destructive interference, and reduces engine noise to a low hum, so even pianissimo passages in classical music are audible.

Updated (2004-04-02):

I have trouble making the Sony earbuds stick in my ear, they have a tendency to work their way loose. I have switched to a better solution, the Etymotic ER-4P earphones reviewed here.