2005-03-24
Microsoft is famous for saying that software end-user-license costs don't matter at all in the grand scheme of things. Well, let's just ponder how much money we are talking about here...

1 Windows 2003 Premium Small Business Server, 20 clients

Description Quantity Cost Total
Dell PowerEdge SC420 Small Biz 1 $349.00 $349.00
Windows 2003 SBS Premium License 1 $1299.00 $1299.00
10 Client Access Licenses 2 $898.00 $1796.00

Total Cost $3444.00

20 Windows XP Professional workstations

Description Quantity Cost Total
Dell Precision 370 Workstation 20 $715.00 $14300.00
Windows XP Professional License 20 $379.00 $7580.00

Total Cost $21880.00


The Complete Windows System

Well, for $25,324 you have a basic Windows system. 50% of the total cost goes toward the various (41) Windows licenses you need to run the system. You have no end-user software. You also have no technical support beyond the hardware support Dell might provide.

At this point 20 people can share files or print if you had some software capable of creating/reading files or printing. Basically, it allows you to do almost nothing at this point. You have a matching set of $25,324 doorstops. (Well, you could play a killer game of pinball or solitaire!) If you need office applications you'll have to obtain an additional $14,000 worth of Microsoft Office licenses for the workstations. Not to mention the tens of thousands of dollars for whatever else you need just to begin to have a system capable of doing work. Don't forget that you'll need to spend another $10,000 or so on subscriptions for virus scanners, spyware removal, and elaborate server-side trojan/virus removal systems. To say nothing of having to either pay someone to walk around to each workstation and install security updates each week or buy a remote management system for several tens of thousands of dollars.

1 Red Hat Enterprise Linux ES Server, unlimited client access

Description Quantity Cost Total
Dell PowerEdge SC420 Small Biz 1 $349.00 $349.00
Red Hat Enterprise Linux ES RHN/Support 1 $349.00 $349.00
Client Access License (None!) 0 $0.00 $0.00

Total Cost $698.00

20 Red Hat Enterprise Linux WS workstations


Description Quantity Cost Total
Dell Precision 370n Workstation 20 $709.00 $14180.00
Red Hat Enterprise Linux WS RHN/Support 20 $0.00 $0.00

Total Cost $14180.00


The Complete Red Hat Enterprise system


So, for $14,878 you have a complete Red Hat Enterprise environment. You have no money in licenses and no draconian end-user-license agreements. There is no cost for the first year of technical support and RHN subscriptions with Red Hat Enterprise Linux Workstation. Over the course of 3 years the total cost of the system goes up to $21,516; accounting for $2,329 per year for 20 workstation and 1 server network subscriptions. The server provides email, web, database, Java web services, and so on. You have 20 workstations which include a full compliment of office applications, development tools, a full spectrum of desktop applications, and expert technical support and remote management for one year. You can immediately get to work with this system. If you have questions you can call Red Hat and talk to an actual human without per-minute charges.

The Red Hat Network (RHN) support fees are yearly. But I'd argue that the subscription fees are much less of a cost than the time RHN saves you from manually instructing each computer to install your approved security updates. You aren't legally required to maintain a subscription in order to use RHEL; but let's assume you're going to keep the subscriptions active because RHN is a useful service. RHN provides you access to technical support services, CD ISO images of the latest versions of Red Hat operating systems, updates tailored to your specific computers, and remote management interfaces which span not just individual machines but entire classes of machines in your company.

Please Note

I'd like to take special care to point out that with Red Hat Enterprise you are paying them solely for technical support and remote management services. There are no end-user-license fees like with the Windows system. With the Windows system each of those 41 license fees you pay are for nothing more than the privilege to use Microsoft software; this removes some of the fear of having your doors busted down by federal marshalls because you might accidentally have one too many copies of Excel installed. If you need technical support for Windows you'll have to buy extremely expensive support contract or pay per minute charges on the Microsoft 900 technical support number.

(Note: none of this information is definitive. It's taken simply by viewing Dell's online catalog. I could have made a mistake. If so, let me know so I can correct it. Always check this stuff out for yourself. Dell prices change from day to day. The prices I mention are the lowest price I could get by customizing the system on the day I wrote this blog entry. Any trademarks mentioned belong to their respective owners.)
2005-03-21
Loaded questions similar to "When will Linux be the best?" and statements like "Linux will be the best when it does X exactly like Y." really irritate me. First, it presumes that exactly one thing can be the best for everything. Second, the author of such a question always points to Windows, MacOS, or another OS the author favors as the current example of best. But that's not really my point at all.

My Point
My point is that Linux is the only system in the short history of computers that has even had the potential to be usable for everything. And I think most of that credit goes to the GNU GPL license which affords some amazing opportunities. It has brought together the engineers of bitter rivals, with their employer's blessing, to co-author common specialized systems based on Linux. The GPL requires them to pass along their Linux modifications which moves the basic technology forward for everyone. These projects would've been dozens of completely disconnected and incompatible trade-secret projects just 5 years ago. Linux gives everyone a common base which they can build upon. It also means that when their project finishes their contributed technology may continue to improve on its own. They don't have to hire someone else to do it for them. They don't have to license it from anyone. The only binding legal agreements they have to make are between each other and the end users of the technology they develop. They don't have to go through some week long approval process of their employer to share every tidbit of software code or information about it with each other. The GNU GPL license handles all of those negotiations for them. They can walk into a room and immediately start doing real work with each other.

Over a short period of time these interactions have pushed Linux in all directions. Linux itself can now be made to run well on nearly any device which has something resembling a CPU and memory. This means that in most cases the same exact programs without modification can be used on devices as diverse as a small wristwatch or a building-sized supercomputer. We no longer need to start from scratch and recreate the same types of programs over and over for every new computer design. The same programs run everywhere. This frees up an enormous amount of time for developers to create new technology. In the proprietary software model we are doomed forever to keep recreating the same old technology in order to even use the new technology. Up until proprietary software we would build new technology upon the knowledge gained from the past. Proprietary software simply has us building the past over and over again.

With Linux there are no more secrets in the OS. And this is a wonderful thing. Its better for everyone involved: engineers, developers, technicians, OEMs, resellers, customers. Take the case of a cell phone. Instead of having dozens of incompatible, proprietary operating systems all phones could share one common OS. This means one could use the same exact programs on all cell phones and not just one model from one company that was only made for 3 months in 2004. This also means that 17 different companies don't have to waste resources creating their own custom phonebook program. Instead they can just buy one off-the-shelf and drop it into their phone at the factory. For example, in the very near future maybe you won't have to spend those 3 days manually retyping your phone book entries using tiny buttons when switching to a newer phone. Just lay the phones next to each other and use Bluetooth to transfer your phonebook database from one phone to the other.

The Old
UNIX proper is long dead. UNIX is dead because every UNIX vendor added proprietary features into only their own version of UNIX. The proprietary nature of each system drove everyone into the ground at full speed because over time they were so different that software from one vendor could no longer be used on another vendor's system. Those who have moved away from proprietary UNIX are almost certain to never return. Nearly every major proprietary UNIX OS vendor (IBM, HP, SGI, etc) has spent the last 5 years or more stripping out useful technology they added into their proprietary UNIX derivative and reworking it for inclusion in the common Linux base. This is what should have happened with UNIX and indeed AT&T tried to implement this idea and failed probably because AT&T was seen as a direct competitor to other OS vendors. Linux is vendor neutral and it seems that vendors are much more comfortable with this situation. At least everyone benefits this way instead of just one competitor.

The only real holdout is Sun with Solaris. And they do have an advanced OS with a couple features found nowhere else, for now. But to be bluntly honest, using Solaris is a horrendous end-user experience compared to Linux. To be sure, it makes a nice high performance server. But as an end-user system it is terrible. USB doesn't work whatsoever that I've ever seen. The new hardware configuration in Solaris is quite easily the worst ever devised being very tedious and technically oriented. Solaris provides stunningly ancient versions of all the expected UNIX utilities. And the desktop utilities are an strange mixture of 3 or 4 totally different toolkits which look and work in different and sometimes conflicting ways. (Yes, Linux systems do provide programs using many different toolkits. But the major base distributions standardize on utilities using one or another toolkit to provide consistency.)

The BSD family is very good but it has never managed to soar into greatness. Every time a particular branch becomes popular someone steals it (and often its developers) away from the community project to add a bunch of neat, advanced stuff in a new, proprietary "based-on BSD" system. (SGI, Sun, NeXT/Apple, the list goes on for pages.)

Windows is religiously proprietary and as such it is doomed to eventually collapse under its own secrecy. There is simply no way that Windows can survive unless people are willing to accept that computers will never truly progress technologically. With Windows you are forever stuck with some minor variation on exactly what you have now. Windows is too dependent on the design of the PC and the PC is terribly outdated. The PC only has survived this long because of Windows. Imagine if today everyone was using AmigaOS on a slightly more advanced Commodore-style computer. And honestly, PCs aren't even that advanced with Windows. The computers that Windows runs on are permanently frozen somewhere in the early 1980s. And for most Windows users that's fine because they don't really know any better. This is not because Microsoft hasn't tried to break the shackles of the PC. But they have given up trying very hard. Why even bother to change their ways when what they have now is still making them insane sums of money. Well, the only reason is that changing now would spare them in the future. But the future doesn't matter as much as quarterly profit in this crazy little world.

MacOS X is one of those systems that kinda gets it. But they seem to have made the typical BSD mistake. In a sense, they "stole" away a popular, technically advanced BSD system (FreeBSD) and some core developers from the community and then made it their own. They added their own improvements and such to it. And they continue to pull in new features from FreeBSD every so often. For various reasons, perhaps the FreeBSD leadership itself, Apple did not choose to work directly within the FreeBSD community and build that up as their base OS. So now we have two somewhat incompatible systems, FreeBSD and Darwin, instead of a stronger FreeBSD. MacOS X itself further adds an entirely proprietary desktop environment on top of that. Which I suppose is fine since they decided to add provisions for FreeBSD programs to run on it. It's a lousy BSD, really. But it is a decent UNIX system with a very attractive and modern desktop environment running on cutting edge computer hardware. One can easily see why it is almost as popular as Linux.
2005-03-19
On Microsoft Windows, Yahoo Companion allows you to send email from any program or website using Yahoo! Mail. This is not the case on Linux systems. Only the Yahoo! Toolbar for Firefox works on Linux. So, I wrote a simple Yahoo! Mail mailto: script for the GNOME Desktop on Linux. Save this script into the bin folder in your home. (You may want to create a bin folder for stuff like this if you don't have one.) This script only works with the GNOME Desktop but could easily be modified by manually setting the BROWSER variable in the script.

Next, it is very important that you right click the ymail script, select Properties, open the Permissions tab, and then check all of the Owner boxes but specifically the one marked Execute.

An important note: you must login to Yahoo! before trying to send to any email addresses. Seems to be a minor quirk in their web mail. The Yahoo! Toolbar for Firefox should automatically do this for you, though.

Finally, to change your mail application to use this script open System->Preferences menu then select Preferred Applications. You will want to enter the full name of where you placed the ymail script. And don't forget the space and %s after it as this passes the email address along to the script. Here is an example of what it should look like:

2005-03-16
Every criticism I've ever seen written about Linux can be summarized in one of two ways:
  1. Linux is useless and technically inferior to my favorite OS. All hail the hypnotoad!
  2. Whatever is key if Linux is to something. Whatever will be the driving force behind adoption of something. And only something can provide Linux with the needed momentum to become whatever to whoever wants something. A fundamental paradigm shift is underway which could mean whatever is something to someone who something wasn't important whenever.
What if...Linux isn't about being everything to everyone? What if...Linux doesn't care about pleasing outsiders? What if...Linux isn't about being better than other software? Maybe...all those things are simply side effects of a healthy community.

What is the single most important feature of GNU and Linux over all other operating systems? A thriving community of developers and users who interact with each other as peers freely exchanging information and ideas. This is what Eric Raymond calls the bazaar. This type of peer-to-peer collaboration truly didn't exist in computer software before Linus Torvalds introduced it with Linux. This sort of environment can only develop in a free and open society of sufficient size.

Until you've been in the bazaar you can't understand the power it wields. Those outside are doomed to stand there forever pointing and making snide remarks about how it will never work. All the while they don't realize that it's been working all along. And since they aren't in the bazaar their needs will never be met. A few wander in but don't realize that merely standing in the middle of the bazaar doesn't make them part of it.

Those who stand idly by will find themselves ignored. The first reaction of many newcomers is to barge in and demand satisfaction. To their dismay they are consigned to blacklists and never spoken with again.

To be sure, other operating systems have their communities. The proprietary operating systems simply don't afford users the ability to interact with developers on a meaningful level. And the developers of other "open source" operating systems dominate their users and keep information tightly controlled. Then there's that fruit-flavored operating system which combines both proprietary and open source software in a way that keeps people from wanting to get involved.

What's the difference? Apathy. The Linux community encourages users and developers to work toward solutions to specific problems. Users of operating systems that follow proprietary and (cathedral-like) closed development models are largely content to sit on their hands hoping someone will eventually fix all of their problems for them. Never do they consider that no one knows about nor cares about their problems. There are two ways to get a problem fixed: fix it yourself or make someone else care enough about the problem to fix it. (e.g. pay them to fix it, ask them nicely to fix it, etc)
2005-03-11

The Paranoid Survive

Does anyone remember the Trojans? I implore you, stop implicitly trusting software development corporations. Believe nothing you see on TV, radio, in print or otherwise without verifying it is accurate. You aren't paranoid enough and they are out to get you any way they can.

Be very skeptical of third party endorsements of software. If A says that B's software is great then don't believe A no matter how reputable A might be. For example, Windows software is almost always distributed in proprietary form. Thus A has no way to know what B's software really does without lengthy lab tests.

Always obtain software directly from the author or using a method the author endorses. Obtaining software from unofficial sources may expose your computer to all manner of serious threats. For example, downloading software from so-called "warez" websites is extremely dangerous and will almost certainly end with your computer being attacked. To say nothing of the wrath you may draw from the author and their army of flying monkeys lawyers.

Peer Pressure

A friend of yours says to you, "Hey, I installed this really cool program and it doesn't cost anything! Go try it!" What is your normal response to that statement?
  1. Reply, "Hey that is neat!" and blindly install it.
  2. Reply, "I'll look into it." and glance through the end user license agreement then install it.
  3. Reply, "I'll look into it." and search Google for more information and install it only if it doesn't immediately look harmful.
  4. Look at the features, search Google, read the end user license agreement and privacy policy thoroughly and then only install if it has acceptable terms and is immediately useful.
  5. Reply, "No thanks." and don't install it.
  6. Hide under the desk in fear.
If you are someone who ever does 1 or 2 then you need to just stop the insanity. 3 is very risky because the program may be very new. 4 is perhaps reasonable. 5 is probably the best option for any program you see described as cool, neat, or new. 6 is what people do with their Windows computers after they've installed a "cool, it doesn't cost anything" program.

What's the Real Cost?

All software costs someone something. You really need to make yourself aware of how the software you use is being developed and who's paying for that software development. End user licenses, privacy policies, and other agreements should explain any questionable policies at least in passing. Beware of words like "bug" or "track" or "personal data" when reading these agreements. If they have to tell you they aren't sending "personal data" then they may be stretching the definition of "personal data." For example, many privacy policies will boast how they don't send "personally identifiable data." However, that is subject to their interpretation of the word "identifiable."

Some Specific Examples

What types of software am I talking about? Well, anything you don't need. A few examples of programs whose end user license agreement and privacy policy agreements you should read very thoroughly several times are WeatherBug, iDownload iSearch, Smiley Central, Stop Sign, Bonzi Buddy, Date Manager, Gator, WebSearch Toolbar, anything that claims you can win something, any program that promises to give you coupons, or anything calling itself a toolbar. Maybe the agreements for those programs are acceptable to you and maybe they are not. I certainly would never agree to their terms of use. In fact, I don't agree to the terms of use for most software.

Read all Agreements

Before you install anything on your computer I would urge you to thoroughly read the license agreements and privacy policies. Then search Google to see if you can learn about anything they might leave out or make unclear in their agreements. What you find about some programs or the companies which produce those programs may make you hide under the bed.

Beware of End User Agreements

I would suggest that you remain suspicious of any program (or website) which has an end user license agreement. End user licenses restrict how you are permitted to use a particular program; particularly "retail" programs you have purchased but nearly all proprietary programs have end user agreements. The extent and scope of those agreements may shock and surprise you. Obviously, most proprietary software is going to have an end user license agreement because they want to control how you use that software. Read any agreements as if your livelihood depends on it. Because it probably does. Failing to follow end user license restrictions, especially if you are a business, is very likely to land the SIIA or Business Software Alliance (aka The Software Police), software company lawyers, the FBI and/or some not-so-friendly federal marshals at your door.

Just Say No

Finally, don't be afraid to click "no" or "I don't agree" when a program (or website) asks you to accept their terms. I generally refuse to use accept any end user license agreement and I thoroughly scrutinize privacy policies. As such, I'm unable to use Microsoft Windows or most of the proprietary software that goes along with it. There are plenty of Free Software and Open Source Software (aka FOSS) alternatives which do not place any restrictions on their usage. You can use FOSS applications any way you choose and you can freely give a complete copy, including any modifications, to anyone who wants.
2005-03-07
Linux Reality Outstrips Linux Myth is well worth a read. It's much shorter and surely more interesting than what I've written here.

Myths
The article highlights a popular Linux "myth" as a sign that we've reached a tipping point in the public awareness of computer technology. There's this fascinating myth circulating among people who are unfamiliar with Linux. The myth is making the public aware that Microsoft and Windows are not their only choice in a grass-roots way. I've heard this myth first-hand numerous times from all sorts of people. The myth pits Linux against Microsoft in an epic battle that started long ago in a land far away. It goes on to explain how Linux aims to defeat big old Microsoft and save the world from buggy computer software. Those may be nice side effects but they have nothing to do with any motivations behind Linux. It does make an interesting story. A consequence of this myth is that people are able to consider alternatives. Once people consider that there are alternatives they may also consider that Windows is not even a good alternative.

Incidentally, you can buy a DVD copy of the great documentary Revolution OS detailing the real story behind Linux, GNU, Open Source, and Free Software. The extras and cut-scenes on the DVD are well worth watching.

Realities
The reality is that stagnation for much of the last 15 years defeats Microsoft. Sure, you can point to hundreds of little things that may be better now. But mostly we are talking about changing window decorations and replacing confusing option dialogs with wizards and cartoons. Among the most anticipated new features are workarounds like anti-spyware, anti-virus, and such for problems that shouldn't exist in the first place. That's especially sad since Microsoft has such a great research division. Meanwhile, UNIX and Linux have progressed forward in technical capability at a steady clip.

History Repeating History Repeating Itself
Since long before Linux became popular, Microsoft core desktop offerings have consisted of the same basic set of programs with the same basic features. Those programs are Windows, Word, Excel, Access, Visual C++, Visual Basic, and a few others. Their server offerings haven't changed much either. The most notable change between versions of each program is that the newer version almost always creates documents in a format older programs can't read or write. And for your convenience the newer program will happily translate all of your old documents into a format only the newer program can read. After nearly 2 decades of constant development one would think that the stability and compatibility of these programs would be drastically improved. Yet they are still chasing after the same old ghosts and providing the same basic features.

Why is Microsoft frozen in place? That is really quite obvious from the perspective of an outsider. They have found something people will pay insane sums of money to use and they don't want to screw up the cashflow. The only thing preventing them from improving Windows is their belief that the existing body of proprietary Windows software must be supported at all cost. There are large subsystems in Windows which deal with nothing but cataloguing and emulating the bugs found in previous versions of Windows. You might think that sounds insane and I think you'd be correct. However, Microsoft really can't force broken Windows programs to be fixed because Microsoft fiercely promotes the idea of proprietary software; that is, software which cannot be modified or repaired by anyone but the program's original developer. Windows provides what Microsoft calls "Shim Technology" to make a specific proprietary program work as if it was running on the outdated or broken version of Windows used to develop it. Windows needs to know about each specific program that a user might want to run and then provide a set of "shims" to make that program more or less work. A huge set of shims comes with each new version of Windows allowing old programs to remain more or less functional.

Contrast and Compare
A deeply concerning problem for Microsoft should be that the Windows environments and interfaces encourage programs to be deeply tied into the Intel x86 architecture. It isn't feasible to rebuild most native Windows programs for use on another architecture or OS. Microsoft has more recently created the .Net and C# programming environment to encourage developers to write proprietary programs that are not dependent on the x86 processor. However, by my count there are more Linux and UNIX systems running .Net software than Windows. .Net is still so uncommon that most developers of retail software simply don't use it.

A typical presumption when writing a UNIX or Linux program is that you have no clue which computer architectures might run your program. Indeed, you don't even know which operating systems might run your program. Consequently, UNIX and Linux programmers tend to write very portable programs that require only a trivial rebuild to support a new CPU or OS. UNIX and Linux development tools have always encouraged programmers to write portable programs. To further promote writing portable software services like SourceForge and even computer manufactures themselves provide free remote access to development systems. SourceForge has many different computer architectures and operating systems available for Free and Open Source Software developers to use as a test bed.

Another issue with writing Linux and UNIX programs is that most computer architectures don't allow programmers to make serious mistakes. For various reasons and excuses, Intel x86 processors allow a whole host of serious programming mistakes to occur without detection. Worms, memory errors, data corruption, and entire classes of problems Windows-x86 users experience every day simply aren't allowed to occur on other architectures. If a program makes a mistake most computer architectures will instantly abort that program. Then why doesn't Windows support these other architectures? Well, Windows NT did support several of them until around 1999 when Microsoft finally conceded that almost no one wanted Windows on those architectures. Almost no Windows programs existed for those architectures. And porting a mildly buggy Windows-x86 program to a bug-hostile architecture is often more trouble than writing a new, portable program from scratch.

Alternate Realities
Let's consider Mozilla Firefox, a popular Free and Open Source Software web browser, running on the Debian "universal" operating system. Debian can run Mozilla Firefox on Alpha, ARM, HP PA, Intel x86, Intel Itanium, Motorola 68000, MIPS, MIPSEL, Power (Apple & IBM), IBM s/390, and Sun Sparc computer architectures. Debian can run the same program on at least 10 completely incompatible computer architectures without modification. About half of those architectures are strictly 64-bit.

The standard Debian system includes 10,000 programs like Firefox. There are hundreds of thousands of programs like this available from SourceForge. There are over 1 million people helping develop Free and Open Source Software at SourceForge. And I'm barely scratching the surface. There are many other services similar to SourceForge. Many and probably most developers use none of these services and work by themselves or with a close group of friends.

Now consider that Debian provides a choice of 4 different kernels: Linux, FreeBSD, NetBSD, and GNU HURD. This isn't an install-time choice, either. You can quickly switch between the different kernels on an already installed system. Linux supports a huge variety of peripheral hardware and architectures, NetBSD runs equally well on many architectures, FreeBSD provides robust server technologies on popular architectures, and HURD is...well I'm not sure what HURD is good for.

Some Perspective
Natively running the same program without modification on dozens of incompatible architectures under dozens of competing operating systems must seem like complete fantasy to some software developers. And if that's fantasy then easily replacing the system kernel with a different, incompatible kernel must seem completely inconceivable. Believing that one kernel is the best for every purpose seems a bit shortsighted. Not entirely unlike tying your software to a single computer architecture that you don't manufacture...
2005-03-03
Well, iFilm.com has suddenly started working right with Firefox & Real Player 10 on Linux. No more crazy "You need RealONE player" prompts. Yay! So, I think they have vindicated themselves for now.

Sadly, wthr.com still sucks and will likely remain so for a long time. I've been told their media doesn't even play on the latest version of Windows Mobile edition on PocketPC. It displays the same "You need Internet Explorer 6 and Windows XP" message. You'd think that with the huge areas of Indianapolis covered by WiFi wireless Internet access they'd want people to be able to watch the news while they eat breakfast, lunch or whatever. Alas, I think they just don't get it at all.

For the last few days Firefox (a recent unstable snapshot from Ubuntu Hoary Hedgehog) has been refusing to view or save certain types of multimedia. Mostly things like Real .ram playlists. I found that throwing away mimeTypes.rdf in my profile fixed the problem. Of course, it also meant I had to tell it which programs open which types of files. But that's fine by me. The defaults are mostly right since, I think, it asks GNOME what programs support a particular type of file. The only thing I had to change was totem to realplayer for streaming Real Media. Totem is fine for most media formats but I think Real Player 10 generally does a better job of playing Real Media.

I installed the latest Real Player 10 release today since there was a security issue of some sort with older versions. I figured out how to make a Debian package out of it, also. I cheated and used Linspire's "src" package as an example. But I stripped out all of the KDE mimelnk files since they conflicted with existing KDE packages. I left just the launchers and icons specified by freedesktop.org standards.