Moving to Debian Linux

I have been toying with the idea of switching to Linux as my primary operating system for some time now. Mac OS X has many of the features of a Unix-like system that I want, but there are still a number of things where it greatly differs from Unix, FreeBSD, or Linux.

In the past few weeks I have found myself booting into Linux on my PowerBook more and more lately. While I prefer FreeBSD from a principal standpoint, I have to admit that its PowerPC port is nowhere near close enough. It's also impossible to ignore the momentum behind Linux. My distribution of choice is Debian, primarily because its PowerPC port and several open source leaders I look up to also use it.

I know that some folks reading this are thinking something like "why bother with all of that; why not just use Mac OS X or even Windows?" Well, I suppose I can say it's like asking a skydiver "why jump out of a perfectly good plane?", or asking a rock climber "why not walk up around the side of the rock face?" There are some things people do because they have a passion for them, and expediency or simplicity play a less-important role in their evaluation. There is a reward that comes from the struggle that cannot always be easily explained. The gain is power and flexibility that Linux and/or an open source system offers to me is worth far more to me than it would be for a number of people.

Pragmatic Programming and craftsmanship

I finished reading through the first Pragmatic Programmer book this weekend. It is quite an inspiring read if you are a programmer and have a passion for what you do for a living. If you are a project manager, it can provide a few pointers as well as a great deal of insight as to what you should expect and encourage in the developers on your team.

I plan to implement a number of the Agile/Pragmatic methodologies on my current project at work. I will journal the results of them here.

Pragmatic Programming, Day 1

My Pragmatic Programmer books came in the mail today. Since I have the next week off from the J2EE study group, I decided to make my first pass through at least the original book. I am behind on EJB and design patterns, but these books hold so much promise for rubber-meets-the-road applicability that I can't wait.

Just the first few chapters are great. It's the kind of material that makes you wish you had come across it years ago. As each section is stepped through, an experienced developer with enough history on projects will find themselves identifying with every point, whether good or bad.

I think Dave and Andy have much to offer anyone involved with software development. Never before have I seen so much insight distilled into such a compact form. I am sure I will be writing about these books more as I progress.

AJUG DevCon 2004

Today was the first-ever conference for the Atlanta Java Users Group (AJUG), titled DevCon 2004. It was great; our president Burr Sutter lined up a pretty impressive array of speakers, including Andy Hunt of Pragmatic Programmer fame and Neal Ford, author of the recent Manning title The Art of Java Web Development. In case the term Pragmatic Programmer rings a bell, you may recall one of my earliest blog entries referring to Dave Thomas. He and Andy are the co-founders of the Pragmatic Programmer line of books. The stuff is wonderful; check it out.

We also had several of our local Java gurus who gave great sessions as well. A big thanks to the AJUG sponsors and all the speakers as well as the AJUG folks who pulled it all together.

If you want to see something really cool, keep an eye out for "Looking Glass", a 3D Java desktop from Sun. I saw demos of it today, and a cross between XWindows, Mac OS X Quartz with Expos?, and Minority Report came to mind.

Java Events and Listeners in Head First Java

I have not managed to journal my experience with the Head First Java book by Kathy Sierra and Bert Bates, but it has been great. One concept that I have had trouble with prior to Head First Java is the relationship between events and listeners with graphical user interface controls. Coming from a Visual Basic background, the programming of an interface was largely simplified, and subsequently limited.

While teaching the use of the ActionListener interface, the book fleshes out the concept of interfaces in general via the hands-on experience gained while working through the GUI-related chapters. In short, if you haven't learned Java yet, get the book!

Almost every spare moment I have had lately has been devoted to trying to get through the Head First book since I have so much work coming up with the J2EE study group. This weblog will probably be pretty sparse for a while.

Rolling up the sleeves with the Debian Installer project...

So I received a response on my queries concerning the Debian Installer PowerPC bug reports. You can read the whole thing here, but the key part of my reply from Sven Luther that grabbed me was this:

"Because the ones who care about powerpc are busy right now ? I think it

is exam time for some of them, or they are busy with other stuff. I

myself don't have a pmac, so there is not much i can do, and i think

gaudenz has gone to work on discovery mostly. Don't know about the


Maybe this is the right time for you (or others) to step in and have a

go at fixing this problem, if we want to have good powerpc support by

march 15.

Anyway, i have no idea about the keyboard problem you reported, but

this kernel issue, it should not be problematic. Does choosing unstable

instead of testing make a change here ?"

Well, I thought about that, and replied to Sven:


Thanks for the info; I didn't realize there were so few powerpc folks! Well, I guess there's no time like the present to learn C. I have seen posts that Alioth has moved to using Subversion; any pointers on what I need to get started? I will begin with getting Subversion 1.0 set up on my Mac."

Shortly thereafter, Sven replied:

Well, debian-installer is mostly very basic shell scripts and common sense stuff, no need to learn C for it.

Also, for subversion, the active repository is still in CVS, altough that may change in the future.

In order to fix this problem, you could start by :

1) trying out the unstable install instead of the sarge one, and see if the problem is still there.

2) look at the exact error on console 3, if there is one, and on the messages on console 4.

3) go to console 2 and run archdetect on it, then test the base-installer postinst to see which kernel should have been installed.

4) once you know that, make sure this kernel exists. Also, check with apt-cache search kernel-image which kernels are available from your mirror.

I suppose at this point I am out of excuses. So, I am trying to become proficient at these CVS commands (thank you, thank you Jennifer Vesperman for Essential CVS) and come up to speed on advanced shell scripts. It feels pretty good to be getting more involved with open source activity. It's a weird kind of good, though; assuredly not for everyone. If following a system messages log for 40 minutes to learn a little bit about why a keyboard selection routine is failing strikes you as fun, then I mean your kind of fun.

The rest of you - those who, like me, have been sitting on the sidelines downloading, compiling, and complaining for all these years - perhaps it is time for you, too, to jump in. Are you interested in Debian? The new installer is a great place to get started. See you on the list!

Debian Installer - plodding along

Well, I jumped back on the bandwagon to get the Debian Linux distribution running on my PowerBook G4. I have nothing to show but a little more experience with the Debian Bug Tracking System and some new coasters (junk CDs of install images that I burned). I am participating in the testing of the new Debian Installer. They are making some real headway, and overall Debian is great. It's just that my timing for attempting to install seems to always coincide with serious issues within the distribution system for Debian.

Web Services Count On Moore's Law Matching Hardware Buying Cycles

Tonight's AJUG meeting covered web services within the broader context of service-oriented architecture (SOA). While SOA can certainly have something other than web services involved, the focus of the discussion was web services, since that's been a hot topic for a while. The more I hear about web services, the more reservation I have about a wholesale embrace of them. They are certainly not the panacea for technological integration ills (and consultant salary ills) that so much marketing hypes them to be.

So, what's my big hangup with web services? XML versus a binary protocol, that's what. In every presentation on web services that I have attended in the last two years, I have heard reference to Moore's Law. The presenter makes reference to Moore's Law because invariably someone like myself asks the question, "so what kind of impact does the use of human-readable XML instead of a binary protocol have?" The presenter usually states that the overhead can be 2 to 3 times that of a comparable transaction using a binary protocol. But, according to the presenter, that's irrelevant, because with Moore's law the power of machines will double shortly and the overhead will be imperceivable.

Whew, that's a relief. Well, not really.

Moore's law doesn't apply to existing hardware, and it's not directly tied to hardware refresh cycles within most shops. So, for the hardware you have right now, running the solutions architecture you have right now, expect performance to take a 50-66% hit, if the resource requirements jump by a factor of 2 or 3. That should give anyone pause and cause a shop to really ask themselves why they are considering adoption of web services.

The central thrust of web services is ease of integration across various platforms. So, if you don't need to allow other new platforms to access your back end applications, web services will cut your performance significantly for no added value. It will also require a considerable revamping of your systems architecture.

Web services definitely have their place within the enterprise; I can even think of a few areas where it would be great to have at my current job. I just don't think it fits everywhere. If you don't need to integrate with other systems beyond what is in use now, why take the performance hit?

I think the days of massive cash outlays on the possibility that you might need a given technology at some point down the road are over. The belts have been tightened for some time now. Even with the economy picking up, I doubt it will ever return to that venture capital feeding frenzy of the late nineties. I also think that is a good thing.

So, as a developer or architect, don't get too rabid on web services as the de facto "way to go". You may find yourself with a hard sell on your hands. If you can sell it, be darn sure that the return on investment is pretty concrete before putting your professional opinion at risk.

Kathy Sierra read my weblog!

You bloggers and web devs out'll get a kick out of this one. You know how you just pop over to your site or weblog on a whim to see how it looks, and you feel like it roughly communicates that you are either really slack or that you probably wear white socks with your sandals? (I used to do the white socks with sandals thing regularly, but my wife put a stop to that. I never knew how many people were bugged by that.)

Well, today was one of my days for taking a look at my sites and saying to myself, "Dude, these look like crap." I messed around with trying to get Meerkat working using the XML-RPC interface (the easy Javascript way seems to have universally crapped out some months ago), but I didn't have enough time before starting work, the work that actually pays my bills. So, I blew it off, worried in the back of my mind that someone important would see it before I could fix things up. The worry diminished as soon as the daily grind kicked in...

Until I checked my email this afternoon. Kathy Sierra had sent me an email. She had read my reply in the long thread that followed her blog post titled "What's so bad about making it easier to learn Java?". Shen then apparently followed the link in the post to my weblog and my site, and took the time to fill out a very nice message on the garish "Contact Us" link on my All Things Computed site.

Procrastination can really bite you in the fanny. Embarrassment over the site's condition and the lack of recent blog posts aside, it was a pretty killer day for me, getting a message from Kathy. I am still thoroughly enjoying the Head First Java book, and I should post an update on my experience with it soon.