Older blog entries for johnnyb (starting at number 48)

14 Oct 2002 (updated 19 Dec 2002 at 17:36 UTC) »

It's been a long time since I posted here, especially since I posted something that was simply a repost of something I said in a different board.

Anyway, that's because my life has been quite busy. I finally got the job I desired (it's a Linux-mostly job, thought not a Free Software one - but I may be able to change that over the long run). I'm working to start the IT Services branch of a new company.

Some Sleight-of-Hand

Ballmer is pretty tricky with words. You have to read them carefully and know the situation to see the lies. For example, take this paragraph:

"We do not anticipate offering software on Linux. Nobody pays for software on Linux. Even StarOffice, sold by Sun, was originally a free product. And IBM, arguably the No. 1 player in the Linux market, promotes Linux to big users, but does not actually sell Linux"

Notice he starts by talking about selling software on Linux, but the points he makes about IBM are about Linux itself, not selling software on Linux. In fact, every counterexample he used is actually an instance of people selling software on Linux. However, in the Ballmer reality distortion field, this somehow proves his point. It is true, IBM does not sell Linux. The do sell MANY APPLICATION that run on Linux, which was what the paragraph was presumably about. As is usual, Microsoft is trying to scare people out of providing applications on Linux.

The problem with anything that Microsoft says is that much of it is either deception or outright lies. For example, they point out Linux's system requirements as too large for embedded work here http://www.microsoft.com/windows/Embedded/xp/evaluation/compare/notlinux.asp yet their own product requires an even larger footprint.

Anyway, it's true Microsoft needs to come up with a new way of providing value, because the programming community at large has largely obsoleted most of their technology. Open-source isn't about taking on Microsoft or anything like that - it's about professionals working together to further their profession. When the entire worldwide professional computer community works together, there's nothing that other companies can really do to stand in their way - they either need to join or become obsolete.

On my Linux box, I play games, create 3D animations, write music, develop applications, manage my personal finances, write email, create presentations and so on. Why would I (or anyone else) need Microsoft's help for $700 per computer (OS + Office)?

While more and more people start realizing that the software industry at large has been massively overcharging them, the market will flood toward companies who a) are part of the global development community, and b) leverage their knowledge from the community to provide products that provide much more value than they cost. That is the open-source way.

The following is my response to the article "is a circle an ellipse" at dbdebunkings.com:

First of all, let me say that I love your site. I am a much better-informed person for reading it.

Secondly, let me say that you, like most people even in the OO community, have missed what inheritance is really about. As you know, many people in the database community have missed what databases are all about, so it's shouldn't come as a surprise to you that other computer fields have the same problems.

The article focused on inheritance as a type/subtype relationship. There are two ways to define type/subtype relationships - by restriction or generalization. Neither of these are useful for object-oriented programming.

Object-oriented programming is defined by one thing - interfaces. The ability for an object to "do" something. In your circle/ellipse example, you did not list any operations for them to "do", so it is impossible to tell what kind of relationship they would have in the object-oriented programming world. For example, if they both implemented a function called "enlarge", then they would both implement the interface Enlargeable. In fact, squares and pentagons could be part of this category as well. With this in place, an application can enlarge an object independent of what type it is, or what data it carries.

My philosophy teacher always asked "how do you define a chair"? He gave possible examples - a flat board with four legs and a back. However, this did not work for three-legged chairs. Any definition along these lines would fail for some chair invented somewhere. The bean-bag chairs really threw people. However, this is because it needed an operational definition - a chair is something that you sit on. Or, in computer terms, implements the SitOn interface. Object-oriented programming gives operational definitions, and thus makes itself a very powerful tool in programming.

Interestingly, this makes object-oriented programming completely orthogonal to databases, since one deals with the operational characteristics and the other deals with the data and data dependencies of a system.

Anyway, I wrote a short paper on this in college - you can read it at


23 Jul 2002 (updated 23 Jul 2002 at 03:07 UTC) »

Just finished a new release of xmltangle - doing literate programming in XML. It differs from previous attempts at this as it uses processing instructions for handling the data instead of tags and attributes. I do plan on creating a few more processing instructions to map elements and attributes to the Literate functions, kind of like an architectural engine. You can find the code at


My response to a question on a Yahoo newsgroup:

Do YOU see Linux making a big impact on the desktop?


I certainly do. Microsoft relies entirely on the OEMs to survive. In addition, Microsoft's licensing has totally prevented OEMs from differentiating themselves in any way other than price - making their margins horrible. OEMs want to get out and Linux is the best way. The problem is who will be the first to jump. Wal-Mart may well set the standard here and cause a windfall. Remember - Wal-Mart can afford to sell cheaper than ANY other.

On the business front, the value proposition of Linux on the desktop is real and credible. In fact, CIOs are going to be called to account for the places they AREN'T using open software very soon. The only real problem is that people underestimated the time scale required for this change to happen.

However, the first place the desktop revolution is going to happen is schools. This is happening right now all over the country. The early-adopters are starting all over the country. Microsoft has made the donated PCs running Windows essentially illegal - the only real option for donated PCs under Microsoft's new rules is running Linux. Using Linux in a terminal environment, you can do a computer lab with REALLY OLD donated PCs for $6,000 including server, cabling, etc that runs OpenOffice, Mozilla, and all the other wonderful open-source programs.

With Wine's derivatives being as good as they are now, schools can even use their existing software they have purchased.

I think of this in terms of chemistry - the potential energy here is magnanimus, however, it takes a lot of extra energy to start the reaction, unless there is a catalyst of some sort. It's just a simple amount of time before Linux has the buildup it needs to start the reaction.

Reminder to myself to rant about XML styling languages and the current state of XML publishing.

My thoughts on a recent newsforge article:

To the problem of Linux being hard to install, I say phooey. Linux and Windows both have trouble installing, just on different systems. When it does install, Linux is usually easier.

To the problem of third-party package management - that is actually a real problem. There are several reasons and solutions:

1) The dists have done a good job of kitchen-sinking their distribution. Most of what anyone needs is already in the distribution, thus leaving little reason for people writing the applications to make it easy-to-install.

2) package formats cannot contain dependencies. Unfortunately, the current package formats do not have support (that I'm aware of) for shipping all of their dependencies. This can be solved by shell scripts, but because of #1 most people don't bother. However, maybe a universal install script might be a good project for someone. Have a script for collecting dependencies into a .shar file, and extend the .shar file to actually run the installer, which will install whatever dependencies are needed.

3) what is the operating system? The blurring of lines between operating system and add-on is great in Linux. Is Red Hat Linux it's own operating system? Is GNOME it's own operating system? How should someone communicate what operating system a package runs under? I think we need to stop viewing Linux as an operating system, and start viewing the distributions as operating systems. The distributions define their compaitibility requirements, and therefore should be what developers aim their packages for, since it is a stable, known quantity. I know you'll say LSB, but I don't think that the LSB is good for Linux.

Remember how Windows does this - they basically stick a new version of Windows with Office. Have you seen how many .dll's it updates? They basically replace the entire Windows infrastructure when you install Office. Therefore, I think the best way is for developers to ship the dependencies with the programs. Maybe they should also statically link more of their libraries. Maybe the libraries/toolchains should make it easier to choose which libraries are statically/dynamically compiled.

Creating a new section of my web site for a potential consulting business. I'm kind of wavering between staying where I am (EDS), going out on my own, and going with my friend Chris. There's a lot of potential I could do with Chris, but I know he has no clue about free software. Using free software wouldn't be a problem for certain projects, but writing free software I'm sure would be a problem. However, it might be doable over a period of time.

Doing my own consulting business might be good on the side of my EDS job, especially since I work 2nd shift. I'm pretty free until 3, unless you count my family :)

As of right now, I can't do consulting by itself simply because my son requires good insurance (lots of health problems).

Anyway, my site for the theoretical consulting biz is at


The "solving problems" link has a semi-manifesto on which I plan on basing the business around.

Anyway, I have to wait until my wife pops out child #2 anyway (should be any day now), so I can kind of stick it in the back of my mind until life normalizes a little bit :)

Anyway, not sure what I want to do. In addition, I want to be spending more time in the church, but I don't see that happening to a great extent anytime soon.

This is my response to a post on NewsForge about whether or not programmers will get less money with the GPL:

Remember. Your can fulfill ALL of your obligations to the GPL by simply providing them with source on the CD that is covered by the GPL. What this means:

* for consulting work, you get paid the same.

* if an industry group wants you to write an industry-specific application, you get paid the same.

* if you are selling boxed software, you basically will still get paid the same. Why?

a) noone will be able to download it until after people start buying it in the stores, since that's where the source code is.

b) the value of the software in the store is greater than the value of it in cyberspace. Why? Because of the salesperson who can help the user find the software they need.

c) people respect brand names. It's human nature. Build a good brand and your brand will sell at higher prices than the same product from other brands.

d) only offer support on the purchased product.

Doing so will also reduce your R&D time because you will have users who will send you patches for things they want, if they are skilled an interested enough.

Now, if you are overcharging for your product anyway, sure, the market will correct you. However, I wouldn't be proud to say I made a living extorting customers because they didn't have any alternatives.

Users want freedom. They are even willing to pay for it. Remember, a lot of new computer sales were made to young people so they could get a piece of the "free" music. They paid thousands of dollars to get "free" music. Think about that. The money isn't the problem - the freedom is.

Add to this that very, very few people in the U.S. consider piracy to be unethical, and you remove any reason why the GPL would reduce sales on products offered at a reasonable price.

After much complaining about my outdated links, the GNU Compiler Writer's Jump Point has been updated. I haven't kept up with this information in years, so I thought the least I could do is update the links.

Also, I added a new essay on why Christian's shouldn't try to moralize non-believers at http://www.eskimo.com/~johnnyb/spiritual/MoralizingNonBelievers.xml and an essay on the ethical problems with Corporations at http://www.eskimo.com/~johnnyb/spiritual/EthicalProblemsOfCorporations.xml .

In addition, I added a sucky DocBook CSS stylesheet for my articles, and removed the non-DocBook editions. The only one left in that section is the LaTeX one.

Hopefully, I'll get a better CSS stylesheet soon, maybe from the web.

39 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!