The long tail can sting #

If you read the blogs, you'll learn how the long tail is great for business. The long tail can also be a curse. Consider developer communities. If you have a long tail of developers, it's harder to coordinate with all of them. The long tail of developers typically will attach itself to the dominant development platforms (C/C++, Intel x86, DOS/Windows), whereas other platforms (Java, PowerPC, Mac) have small development communities. The dominant platforms cannot coordinate with all the developers, so they must retain backwards compatibility. Their strategy is not to abandon their old systems, but to extend them. C was extended to C++. Intel 8086 was extended to 286 and 386 (remember "real mode" and "protected mode"?) and then later x86 was emulated inside Pentiums. DOS was extended to Windows and then replaced by NT, which still could run DOS programs. In all of these cases, the platforms have become incredibly ugly due to the backwards compatibility. Ask developers if C++ or Java is cleaner, if x86 or PowerPC is cleaner, if Windows or Mac is cleaner, and the answer will be clear: the system that was more recently designed is cleaner and more pleasant to work with. However most developers are still tied to the ugly systems. Why? Because backwards compatibility is the path to success. When you have that long tail of developers, you can't afford to abandon them, so you bend over backwards to keep their old programs working. I can still run Windows programs I worked on in 1993. I can't run Mac programs from 1993 in any nice way. I can still run 8086 programs on a Pentium IV without emulation. I can't run 6800 programs on a PowerPC without emulation. I can compile most C libraries in a C++ compiler. I can't compile C code in a Java compiler. The most popular systems have this curse.

This leaves me pessimistic about ever having clean successful systems. The successful systems are laden with backwards compatibility requirements. Those requirements make the system unclean.

Volume control - an operating system's job #

What should an operating system do? It should manage computer resources. It runs programs, controls access to hard drives and speakers and graphics, allows you to manage files, and so on.

Something I want from the operating system is volume control per application. By default, I want only the focused appliation to play sounds. If another application wants to play sounds, I'd like control over the volume.

The prime use of this, I think, would be to control your web browser's volume while you are surfing the web. I don't like most pages that play music or sounds. I especially don't like it when I have multiple pages up and they want to play their own music. I'd like to play music in a music player while surfing the web, and with only a single volume control, I can't do this.

Operating system makers: please add volume control to every window's titlebar!

Update [2006-01-21]: I just read that Windows Vista will have per-application volume control. Hooray! Unfortunately it won't be in the titlebar. It'll be up to each application to create a widget to integrate volume into their own app, and you can also control volume from a separate window.


Sirius radio security risk #

I contacted Sirius satellite radio customer support, and they emailed back asking me to send them my password in clear text email. They also want the last four digits of my credit card number. Ick.

Sirius seems to have some other bad security practices too.