Last night was a first for me. I made my first contribution into a CVS repository for Debian. I had made no changes to the content, but nonetheless, I am pretty excited about it. Just seeing my Debian login on the CVS repository was gratifying. Looking forward to getting the 1.4.3 version of the Lucene Debian package done, thanks to the help I am getting from Jeff Breidenbach.
Another Saturday afternoon at the Caribou by Emory University. Despite my heinous work schedule of late and a number of other pressing concerns, I decided to carve out some time to work on my Debian involvement today. That led me to start with the Debian Developer's Corner.
You know that part in The Fellowship of The Ring where Galadriel is offered the One Ring from Frodo and she does that little speech where her voice changes and light shoots out of her body? The one where she says, "all shall love me and despair?"
Yeah, love and despair at once. That probably sums up my initial encounter with the documentation. I started with the Debian Policy Manual, then soon hopped over to the New Maintainer's Guide in hoped of garnering some sense of accomplishment. There's a reason that Debian is so rock solid. Its developers are quite diligent folks. When you first come to this mass of process, it looms before you like a smooth, monolithic obelisk that you somehow have to scale.
I am going to have to take this in manageable chunks; chip away at it bit by bit. I think I have gotten chilled today and am in the process of getting sick. Time to make for home and begin treating the coming sickness.
This weekend I actually got my account set up on Alioth, the development environment for Debian GNU/Linux. I have signed on for involvement with the Eclipse packaging project and the Lucene packaging project. The timing is a bit off, as I am heading into a 60-hour week at work, but I think that is the norm when you are moonlighting for open source. It's catch as catch can, most of us (if not all when it comes to Debian) working purely as volunteers.
I have to admit that I am pretty excited about being "officially" involved with Debian. I hope to be able to come up to speed quickly on the processes and policies, but there's quite a bit of that to work through. I don't mind, though, because the organization and discipline of Debian is a major part of its draw for me.
UPDATE: Thanks to the watchful eye of my friend Tom Kovarik, it has been brought to my attention that I failed to include that the JDS has an Exchange-compatible email client.
Well, yeah, in some respects.
I don't know if it's going to fly. If it did, I would really get a kick out of that. Anything to diversify the computing environments out there. If this causes some corporations to migrate away from Windows and Office, great. It's not like Novell hasn't already been working on this with SuSe. Heck, you can download a CD of that for free via FTP.
Here's the deal, though. The JDS is not Java. Folks are just now starting to realize that Java is a programming language in popular culture; now it's also a desktop operating system and an application server. The last time I saw something like this was the .Net ubiquitous mass that Microsoft marketing could never clarify.
The outcome of the user group's attempt to get Sun to demo the JDS was a box of live CD demos for us to try. I took one home and popped in one of my PC servers. It's cute; a Gnome desktop with a highly-stylized theme to fit Sun's colors and the Java logo.
I guess when you already have a Linux install up and running, the impression is "hey, it's everything I have, and less".
Sun's attitude toward open source is analogous to the dad who knows just enough hip phrases to start and immediately blunder a conversation with their kids' friends. You know what I am talking about; thank God it didn't really happen to me with my dad. I remember all too well those awkward moments at a friend's house where some guy's dad was trying to be cool and it was just painful. You felt bad for the friend, and they were obviously mortified.
The topic at Atlanta Linux Enthusiasts meeting tonight was Linux and Java - a can't miss for me personally. It was a great meeting, and Bjorn Roche and Michael Hirsch stepped up to the plate to give some great discussion-inspiring presentations. Java is a controversial topic with Linux folks; the cross-platform nature really appeals to some and the strict Sun licensing and closed source code reviles others.
There's pretty much no other platform that offers the ability to write an application and deploy it on Windows, Linux, and Mac OS X with a little bit of packaging. That "little bit" can be maddening sometimes, but by comparison there is not another platform with the level of tool support and richness of APIs that can approach Java.
I could go on about it, but I am out of time. Maybe I will have some further installments later.
So I can't wait any longer. Even though 1 package showed up as broken, I went ahead and installed Gnome 2.6 on my Debian sid installation. Oddly enough, the one broken package did not show up as broken afterward; go figure. Gnome is really pretty compared to KDE; much more intuitive and form-follows-function in my opinion. More Mac-like than Windows-like, which is a good thing with me. I now have to wean off of KPPP for GPRS and learn to write my own chat scripts, but hey, it has to happen sometime. I am just glad to be in position where it's a matter of learning an alternative means for GPRS connectivity versus hoping and praying that I can even get it to work.
The Atlanta Linux Enthusiasts (ALE) had an installfest today, and I was able to attend the latter half of it. It was great fun, being in a big room with Linux boxes of all shapes and sizes accomplishing all manner of Linux tasks and tricks. I also won a door prize, O'Reilly's Building Secure Servers with Linux - pretty cool!
It was good to put some faces with names from the ALE mailing list. I also enjoyed fielding some questions about Linux on the PowerPC platform.
Those who have been following my weblog may see a bit of apparent contradiction between my recent move to Linux and my resignation from attempting to run Linux in June of this year. For both of you, I would like to attempt to explain.
I am fond of analogy, particularly in areas where a point is hard to communicate or rather abstract to the listener. In my early twenties, two of my best friends and my dad (who is another best friend, truth be told) all went skydiving together. It was an accelerated freefall program; 8 hours of training and 45 seconds of freefall with two trained folks holding you by the arm and then a 3-minute parachute ride down. Anyway, there is this cliche that skydivers say over and over, "why would you jump out of a perfectly good airplane?"
Commercial operating systems are very much like the "perfectly good airplane." They're fine, for the most part. They more or less get you where you want to go, and at a cost that is not too outrageous, though sometimes exorbitant.
I know why people jump out of perfectly good airplanes. I know because I did it. I also know that all people who ask that trite question tend to share one thing in common; they don't know what's outside that airplane, and they don't want to know.
When my body settled into the safe freefall stance they had taught us, I looked out and beheld an amazing thing. As the air rushing past me cradled my body in a surprisingly comfortable position, I looked out and beheld the entire horizon, right there before me. There was nothing in between myself and it. That was fascinating, and the risk was mitigated by the fact that two professionals who had done this hundreds of times before were right there, guiding me and protecting me even from myself. It was a unique and memorable type of freedom I have not experienced since then.
Open source and GNU/Linux-based operating systems are alot like that for me. The first time your X windows installation starts up and you behold that graphical user interface, it is a strange feeling of elation and freedom. It's like the Matrix, where you step outside the world you have known for so long and suddenly realize that there is more.
Most folks who are curious enough to explore Linux on their desktop have enough of a distaste for the constraints of Microsoft products to warrant the risk in learning something new. That risk has been greatly mitigated by the fantastic advances that have been made in Linux desktops in the past few years, so that people running mainstream x86 hardware have a virtually trouble-free path to getting a Linux installation up and running.
I run a niche computer (Apple Titanium PowerBook G4) and a characteristically alpha-geek Linux distribution (Debian), so it's safe to say that my experiences with desktop Linux do not reflect the majority. Desktop Linux is becoming more and more viable.
However, the viability of desktop Linux is not what attracts me in particular. It is that raw, alpha-geek challenge, mitigated by good hardware and experience. It is being somewhat removed from the computing mainstream. It is being able to dramatically influence the performance of almost every aspect of your computing experience through effort and collaboration. I guess you could say it is about a type of freedom. I think Richard Stallman is onto something with his ideas about freedom in software.
So, why do I run Linux? Because I have tasted of the freedom it offers me in one of my strong passions, computers, and I want to know more of it.
Those who may have wondered whether or not I was truly a geek should have most of your uncertainty removed by now, and that just fine with me. Thanks for reading.
Although it is inferred by the previous post, I can now say that I have made the transition to Debian GNU/Linux as my primary operating system. My email has been migrated over for weeks (go Thunderbird!), along with my non-multimedia files. With the advent of Eclipse 3 on my install, all of my Java development projects are moved over. Did I mention that the MyEclipse IDE plug-in works just fine?
The really huge breakthrough for me was getting GPRS working over Bluetooth. That was do or die, and for days I had been lugging another PowerBook running OS X to work that served as a wireless access point for my Linux PowerBook. Talk about motivation to get GPRS working! My laptop bag was instantly six pounds lighter. I figured that would incentivize me to take the time to work it out and not cop out by switching back.
KDE is pretty good; the KPPP applet is what I am using for GPRS. However, I think I might like Gnome better. Most of my critical apps are GTK-based. However, when I look at installing it via aptitude, I usually get one or two complaints about broken or unavailable packages. That's enough to scare me out of it; my GTK apps breaking in the past have been part of my past Linux desktop migration disasters.
Having hardware that Linux can work with has been a lifesaver. If you are thinking of switching to a Linux distro, for heaven's sake do your homework on your hardware, especially if you are looking to purchase hardware. Don't go for the latest and greatest; that's a recipe for misery and disappointment. Plus, you will find that Linux with older hardware probably runs as good or better than the proprietary operating systems on the latest and greatest hardware. That's not biased, manical raving, either. Booting back and forth between Debian and OS X, I have gotten a kick out of the difference in speed for certain things like application launches.
The keynote speaker of the the Atlanta Java Software Symposium (AJSS) was Dave Thomas of Pragmatic Programmer renown. This first day was a handful; three back-to-back sessions on Spring by Bruce Tate. I learned today that Bruce is now employed by Interface 21, the company behind the Spring Framework. But, this post is about Dave's talk...
Dave drew analogies between the approaches that artists and programmers take to doing their work. The talk had three main topics:
Knowing how to start
Knowing when to stop
Satisfying the customer
I have never heard a perspective on the practice of programming quite like that, and it echoed with some of my own personal feelings about it. Admitting the art in programming is uncomfortable for some people, particularly those who hold so dearly to the idea of programming as an engineering discipline. If there is art in programming, then it cannot be distilled into a body of terse maxims. If programming is partly an art, then a number of silver bullets like heavyweight methodologies and model-driven architecture are built on less-than-reliable presumptions.
About nine months ago, I was giving model-driven architecture (MDA) and the full gamut of UML a hard look, wondering if they could indeed deliver on their promises. God knows there are enough companies pouring millions into efforts to market them. The same can be said for the now-discounted Enterprise JavaBeans (EJB) 2.1 specification. The more time I spend looking at lightweight methodologies and what they have already accomplished, the more critical I am toward the once-received wisdom about enterprise application platforms.
Should you have a chance to hear Dave speak on this topic, don't pass it up.
I still don't have GPRS over Bluetooth working in Debian GNU/Linux; a shame, it sure would be handy at the conference.