Software

Articles about computer software development and tools.

Stroustrup on C++

Last week, the IEEE Computer Society Austin Chapter hosted a presentation by Bjarne Stroustrup, the inventor of the C++ programming language.

The event was amazingly well attended. I'd guess 250 people or more. Stroustrup was an entertaining presenter, talking more like the Bell Labs hacker he was than the Aggie academic he is now.

The presentation was, essentially, a sales pitch for the C++ programming language. Some points were convincing, some less so. One point he made effectively is that C++ is a good choice for systems programming. He highlighted how, for instance, it offers reliability and repeatability not available in a java implementation. The biggest knocks C++ takes, primarily by people advocating lower-level languages such as C or assembler, are size and performance. He claimed C++ programs can be reasonable size, without resorting to tricks like partial implementations that dumb down the language. He also claimed that C++ performance can be excellent. He presented a numerics benchmark. The C++ implementation performed so well, you could see the two inflection points as the test filled the L1 and L2 caches of the processor.

The second point was that C++ templates and containers are good. Of this I'm less convinced. I agree they are extremely powerful, in that they offer a way to generalize the datatypes used in classes. Nonetheless, templates make my head hurt. I understand their appeal and I'm sure, with time, I'd become more comfortable with them. My fear is how well understood this all is. Are such programs easily understood and maintained? Would I just end up writing elegant code that nobody but a few experts could figure out? I'm not sure.

At this point, I'm arguing mostly out of ignorance. Sometimes you see a language feature, such as exceptions, and it's readily apparent how cool it is. Not so with templates. Maybe with time I'll warm up to them. All I need is a test case to try them out. Unfortunately, I've been so badly corrupted by perl, I hardly use anything else these days for small systems programming problems.

Knoppix ... Ohhhh Pretty!

Earlier this month, there was an update release of the Knoppix Linux distribution. Knoppix is intended to be run as a live CD distribution. That is, you stick the CD into a PC, start it up, and Linux comes up. It runs off the CD without touching the hard disk. Thus, any PC--even one running Microsoft Windows--can run Linux without loading anything onto the hard disk or otherwise changing the existing system.

There has been enormous interest in this release. All of the download mirror sites have been getting hammered. I had difficulty finding one that would respond at all, and even then it took about 36 hours to retrieve the CD image.

Once the image was burned to CD, I tested it out on coldsnap, a 450MHz Pentium II beigebox system with 128MB memory. The system booted just fine and dropped right into the X graphical environment with the KDE desktop.

It is quite impressive, but ultimately I'm a bit puzzled. Knoppix is an excellent demonstration of the Linux environment. I'd feel comfortable handing a copy to somebody who was running Windows and wanted to see what all the Linux hoo-ha is about. Also, Knoppix could be a useful system recovery tool. If you have a system with disk problems, for example, you could boot Knoppix and effect repairs.

Other than that, I'm hard pressed to find applications for it. Maybe you could use it if you want access to Linux on public computer terminals, but even then it seems like it would be frustrating to be unable to save session state. When I'm on a public terminal and need access to a Linux environment, I'll run a java applet that implements an ssh client, and use that to access my home system.

The Knoppix distribution is very impressive. I wonder, however, if it has purpose beyond being a cool demo.

And the Winner is...not Gentoo

I've been doing a couple of Linux evaluations. One is to select a Linux distribution for my servers, another for workstations. It was time to make the workstation decision. After looking at a number of alternatives I selected Gentoo Linux as the best alternative. So, then, why am I typing this on my new Fedora Linux workstation?

Gentoo Linux offers Modest Performance Gain

Gentoo Linux is touted as one of the best performing Linux distributions. I recently ran some tests to verify this. My tests confirmed that Gentoo does indeed perform better. The gains, however, appear modest. I measured just a 15% improvement.

Debian Linux: First Step is a Doozy

With the new year, my server fell into limbo. It runs a version of Red Hat Linux that is a dead end. No further eratta will be issued and Red Hat has abandoned the product line to concentrate on high-price data center servers.

Thus I (and many other people) are evaluating replacement products. Debian Linux is the current leading contender in my search . What initially attracted me was the compatibility with our current programs and data, a robust software packaging scheme and aggressive release schedule for security patches.

Austin Considers Open Source Software

Link: Austin tests desktop Linux waters.

Two words that make any technology manager tremble: software audit. These audits examine every computer with a fine-toothed comb, ensuring every installed program is properly licensed. It's tough to assure absolute compliance across hundreds (or thousands) of desktop machines, and the penalties for unlicensed software can be severe.

Over a year ago, the City of Austin encountered this nightmare. Microsoft held out the threat of a software audit. Some cities, such as Houston, have responded to the threat by switching to another vendor. Austin, instead, ponied up for a pricey enterprise license.

Open source advocates, myself included, were disappointed by this move. It turns out, maybe it was a shrewd step. The enterprise license allowed the city to buy compliance and breathing room. The city has been using that time to evaluate open source alternatives. Their finding: many desktops could run just fine on open source software.

When Microsoft came to the city, there was little choice: either pay through the nose or enter a protracted battle. When the current enterprise agreement terminates at the end of 2004, the city will be in a much better position. Even if there are only nominal open source deployments, the city is in a significantly stronger position to negotiate better license terms with Microsoft.

That's open source at its best: restoring competition to the software marketplace.

Another Day, Another Portal

I seem to be creating a cottage industry out of coding backends to personal publishing portals. It's keeping me busy, I'm getting very good at it, and--of course--not making a bloody cent on the work.

I helped develop the Austin Bloggers web site, which aggregates articles that webloggers write about Austin. Last week, I built a portal for on-line journal writers called Holidailies 2003. The Holidailies project, now in its fourth year, consists of journalers who make "a solemn vow" to write an article every day during the month of December. It's quite an endeavor, especially considering that the only thing I've ever seen journal writers solemnly vow is to have a second margarita. (Oh boy, I'm going to get mail now...)

Don't be Stupid, be a Smarty

I've puttered around with PHP programming a bit. Until this month, I had not used it for any significant projects. Although PHP may be better suited for web applications than, say, perl, it is a terribly messy, inelegant programming language. You know, the kind where after you code for a few hours you feel dirty and have to wash your hands.

Gentoo and FreeBSD: Not for Me

For the last many years, I used an old 486DX-33 computer as a router between my local network and the Internet. I powered it down yesterday, but when I tried to bring it back the disk wouldn't spin up. Can't really blame it. That computer should have received an honorable burial sometime last decade.

The failure of my old router presented an opportunity to try out a new operating system, because: a) I like to turn a bad situation into a positive experience, b) I like to take bad situations and make them even more complicated, or c) pain is my friend. (correct answer: b)

Product is Shipping

Link: CATool Product Information

One of the reasons I like product design so much is because I get giddily excited when people are willing to pay good cash money for something I built. There hasn't been a lot of product shipping during this economic downturn, but last week I received a little piece of joyous news.

On-and-off over the past year, in conjunection with Amaranth Networks, I've been designing a product that implements a private certificate authority and manages X.509 certificates for an organization. These certificates are used to secure and identify everything from web servers to AOL Instant Messenger sessions.

The product is called CATool. There is a white paper (150KB PDF) with a pretty good overview of the features. Open System Consultants just signed on as the world-wide distributor. So, if you ever wanted to run your very own certificate authority out of your sewing room, your chance has come.

Syndicate content