I Hate Automake

Sometimes people wonder whether my blog is purely political and recreational, since I don’t often engage in technical matters with the same zeal as those other issues. Well, to these people, I proudly say: Fuck Automake! Fuck it, fuck the horse it rode in on, and fuck its little dog Libtool too! I’m not first to reach this conclusion either, in exactly those terms no less! Oh, and the same goes for putrid little Autoconf as well. Technical enough?

The whole steaming Automake/Autoconf/Libtool pile of GNU is anathema to end user-friendly binary compatibility and portable software in general. It’s a mess, a kludge, a hack. It gives the illusion of convenience and portability for small open-source projects, but all the while it’s sucking you deeper into maintenance and support hell. Want to write powerful, robust system level code? Not without a ton of impossible to maintain #ifdef’s you won’t. Curious what your system library dependencies are? Good luck! Want to be able to recreate a particular build to reproduce a bug? Hope you can find the machine it was built on!

In case you’re curious about how this highly elegant system works, here’s the most simplistic diagram possible:

Automake Diagram

So, in conclusion, I think Automake is great… for me to poop on!

Java ClassLoaders

I just read an interesting article about Java ClassLoaders: Find a way out of the ClassLoader maze. It’s a couple of years old, but still completely relevant. If you’ve ever had to reference a ClassLoader, you’ll want to read it.

Consumating

Aubi and I stumbled across an amusing quasi-personals site called Consumating. It started as a dating site spoof, but seems to have taken off. The tagline, “Hot nerdy girls and indie rock boys! With glasses!”, was enough to grab my attention. The unique thing about the site is that it uses tags and random “Question of the Week” contests to allow people to describe themselves rather than boring old singles profiles. Also, don’t ask me how, but the photos seem uniformly bigger and more attractive than other such sites.

From a technical/business standpoint, I found two things interesting about the site:

  • The use of the Ajax approach to design the site. Basically, it uses techniques similar to Google Maps and Flickr to enrich the end-user experience and improve responsiveness.
  • The Question of the Week pages, which allow users to vote on the cheekiest answer to each of the oddball questions, feature Google AdSense ads. I imagine this is a great source of targetted ad revenue. For example, the ‘What’s your plot twist in, “George W. Bush: The Movie?”’ question features various ads for (anti-)Bush merchandise. Lots of specific ads + lots of impressions -> lots of ad clicks -> lots of $$$. All for the cost of posting a stupid question.

GemStone Facets

I just read a really interesting whitepaper about an object database for Java called GemStone Facets. It’s basically like virtual memory for persistent Java objects; objects are faulted into local memory from a shared transactional cache. The downside is that it requires a custom JVM, currently based on the Sun JDK 1.4.2 codebase. Supposedly, they’ve released a free Linux version, but the license does not appear to be easily accessible. (The download is a 111MB install script.) Still, it’s an interesting idea.

Gaim

Note to self (and others): try out the Gaim IM client. Supports more networks than Trillian, and looks less annoying.

Holy Verification!

My company is planning to release the Java-based hardware design verification environment I created over the last year and a half under an open source license. We’ve been calling it JavaDV internally, but figure we’ll have to pick a new name so that Sun doesn’t jump all over us for infringing on their aggressively protected Java trademark. Of the many names we’ve brainstormed, the one that really makes me chuckle is Jihad, which could stand for something like Java Integrated Hardware Analysis and Debugging. The tagline writes itself: “Declare Holy War on Bugs!”

Microsoft .CRAP

I wanted to install the SharpReader RSS Aggregator for Windows. Unfortunately, like many other Windows RSS readers out there, it requires .NET framework 1.1. You know, Microsoft’s takeoff on Java that combines the large footprint and installation hassles of a bulky VM [err, "CLR"] with their legendary security vulnerabilities. Let’s get this puppy installed!

Step 1: Go to Windows Update and try to install .NET framework.

This should be easy enough; Windows Update usually works okay. Oh wait, it failed with error code 80246005. WTF is error 80246005?!? How is it acceptable for modern software to print an error code like that with no explanation? Was there no room in the >1 GB Windows distribution for an error message? Clip-It will wipe the drool from your chin as it helps you try to change fonts in Word, and yet Microsoft still doesn’t have the technology to supply useful error messages.

Step 2: Try to install other critical updates. (Dependency problem?)

As expected, same error.

Step 3: Follow link to Windows Update installation history to try to get an explanation of error 80246005.

“Failed” link in status column pops up an empty window. Huh, let’s click it again. This time, I get boilerplate text that repeats the error code and contains generic links to the knowledge base and support, but provides no explanation or useful information. Couldn’t they at least decode the fields in the OLE error code for me?

Step 4: Search for error 80246005 in MS Knowledge base.

As usual, no documents found.

Step 5: Google for 80246005.

Also as usual, Google comes through with numerous relevant hits. Apparently, no problem is too common for Microsoft to ignore. Anyway, Ali’s Knowledge Base contains a simple workaround. I love you, Ali.

Step 6: Try to install .NET framework again.

After several minutes of grinding the hard drive like a rock tumbler, I have a shiny new .NET installation. Or at least I will after the beloved Windows restart.

Step 7: Install .NET framework 1.1 Service Pack 1.

Are you kidding? Why didn’t you just send me an updated version to begin with? Is your packaging technology really that cumbersome? Fine, go ahead and install it. And of course you want another restart…

Step 8: Security Update for Microsoft .NET Framework, Version 1.1 Service Pack 1 (KB886903)?

Unbelievable! Another install and restart to have a .NET installation that doesn’t “allow an attacker to compromise your Windows-based system running the Microsoft .NET Framework and gain access to restricted data”!

Step 9: Install SharpReader.

It works great, but was it worth it?

WordPress

I migrated the blog to WordPress today. Why? Because it has a pirate theme available, of course!