In some ways the CAD software industry is a lot like the fashion industry. The movers and shakers are trying to establish new fads that are just recycled from older fads, while guiding the unwashed masses into adopting new trends that have been carefully molded to ensure perpetuation of the system. Meanwhile the up and comers try desperately to get a share of the action, while an entire industry of hangers-on tries to eke out a living from the scraps left behind by the big players.

It’s a tired old symphony played on the world stage, with pretty much the same players today as twenty years ago. The same seamstresses making the same old faux fluff, dressing it up a bit, draping it over a new model, and parading it down the same old runways.

Bah! I’m going outside, maybe that’ll cheer me up.

The secret world of file formats

No matter the communication protocol used to transmit it, most information gets packaged into a file format for consumption. File formats are like virtual checkpoints along the information superhighway, and we would do well to pay attention to who is manning the gates.

We’ve heard a lot of noise lately about the need for “open” file formats, but documenting a file format is not the same thing as relinquishing control of the format. The key consideration is who decides when and how the file format changes. This is a dirty little secret about file formats that you are not supposed to know. By controlling when and how a file format changes, an organization can maintain a mindshare monopoly over consumers of its file format — even when the format is “open”.

It may be that the relative anarchy of the internet has given us a false sense of security. We happily use “open” formats like PDF, DWF, DXF, HTM, and others with relatively little concern about who controls them, but all of those formats (HTM perhaps to a lesser degree) are controlled by corporations whose allegiance is first and foremost to their shareholders. For example, PDF is “open”, but did you know that third party developers need a digital ID signed by Adobe in order to create forms-enabled PDF files that can be opened in the free Acrobat Reader?

In April of 2006, Autodesk filed a trademark application for the word “DWG” when used to refer to DWG files. This may seem benign on the surface, but if successful it will give Autodesk more legal leverage in “defending” the file format. A few weeks ago, Autodesk filed a trademark infringement lawsuit against the Open Design Alliance claiming that the ODA infringed their “AUTODESK” trademark by embedding the mark inside DWG files created with its DWGdirect libraries.

Much has been written by the pundits about the pros and cons of the ODA lawsuit, and the Electronic Frontier Foundation predictably suggests that Autodesk is using trademark claims to stymie interoperability, but the bottom line is that the contention centers around a file format — a file format that Autodesk considers valuable enough to wage war over.

Have you made your mistake today?

It may seem strange to some of you, but I consider myself an artist. Visual Studio is my canvas, and the keyboard is my paintbrush. This is why I wouldn’t survive in a stuffy corporate environment with committees, red tape, and politics. I’m a visionary, not a software engineer. I don’t like to plan every little detail; I’d rather start with a grand vision and just let the code go wherever my vision leads it.

I confess this can be both a strength and a weakness. For example, I’ll spend two weeks refactoring perfectly working code because I don’t think it’s elegant enough. On the other hand, aesthetic beauty of structure and architecture is every bit as important in software as it is in other fields. It’s just that the benefits are intangible and more difficult to quantify.

Perfectly working code, you say? I admit, that’s a bit of a rarity these days. It’s a rarity precisely because not many programmers consider programming as an art form. Real artists are never satisfied with their work; they never stop working toward absolute perfection of both form and function.

This leads me to my real point. I have a favorite saying, “Have you made your mistake today?” Ironically, perfection can only be achieved by making mistakes. If you’re not making mistakes, you’re not learning. If you’re not learning, you’re not taking any risks. If you’re not taking any risks, you’re achieving mediocrity at best. Learn to make mistakes gracefully. Enjoy your capacity to learn and evolve toward perfection, no matter what kind of art you create.

Teaching and learning at AU

This year I taught an ObjectARX class at AU. As usual, there wasn’t nearly enough time to cover all the things I wanted to cover. I’m still contemplating what I want to do differently next year in order to be able to spend more time on the subject without boring everybody to death.

By the way, fellow programmers, do you agree that we need a Programming campus at AU 2007? I hate being lumped into a generic category like General Design. I suggest a new campus just for programmers, with our own industry reception (I’m thinking pizza, beer, and a Pink Floyd tribute band — and Lynn Allen of course).

If any of you went to the Programming Gurus Go Head To Head panel discussion on Thursday afternoon and were wondering why I wasn’t present… well, er, next time, could you please call me on my mobile phone a few minutes before the class to jog my aging memory? Sheesh. I always enjoy the quasi-chaotic gurus panel, and I can’t believe it completely slipped my mind.

Speaking of chaos, I like chaos — but more on that subject later. I like unscripted discussions where the topics are limited only by the imaginations of the participants. I usually sit in on a few classes at AU, but with a few rare exceptions, the only time I learn something new at AU is outside the structured classrooms.

This year I did learn something new in a class, though. I sat in on Josh Johnson’s Demystifying Installers class, and I learned how to create a new registry key that AutoCAD’s secondary install uses to trigger a third party secondary installer (this would occur when a new user logs in for the first time). Thanks, Josh! I did not know that! [An interesting sidenote: Josh taught the class with his father in the audience. How cool is that? Er, not cool at all, especially in Vegas! Seriously, I thought it was cool, and it was a pleasure to meet both of the Johnsons. Good thing I brought… never mind.]