Tuesday, October 28, 2008

Things I don't have time for: Golf, Religion ... pt. 3

For whatever reason, a name that kept showing up on my meme-dar was Kurt Godel. I had, at some point, stumbled on his incompleteness theorem(s) and was captivated. I remarked to Ray (only somewhat tongue in cheek) that I thought it was sort of obvious. Specifically his first incompleteness theorem really spoke to me.

A while back I had read The Trouble With Physics by Lee Smolin and enjoyed it a lot. The author starts out by stating the five unifications that are missing from the current standard model, and goes on to describe the, as yet unsuccessful, efforts to round that model out. Whenever I think of Godel's first theorem I often think of this book, and the folly of looking for a complete system to describe the world, and the asaninity of stating, exactly, what you don't know.

Just recently, since I had Godel on the brain, I decided to plow through Godel, Escher, Bach. I'm just in the very beginning (strange loops). At one point, the author describes the shock and consternation when it was put forth that there are actually multiple different geometries beyond just Euclidian. Not all that alarming, until you consider that the idea, and subsequent debate, happened in the 1930s!!!!

It was only after reading about these multiple geometries that it occurred to me that my critique, or disdain for the current state of theoretical physics was somewhat at odds with my newly fashioned rationalist point of view. As I mentioned earlier, I was already having trouble fully excising all the residual spiritual thoughts, and now I'm confronted with an apparent incompatibility with my shiny new system. Not good. I had just figured everything out for God's sake! :)

Things I don't have time for: Golf, Religion ... pt. 2

The rationalist worldview that I adopted also dovetailed nicely with my interests in theoretical physics, astronomy, and math. So for a time everything fit together nicely. I wasn't "struggling" with competing worldviews that were inherently at odds. The rationalist view fit into this all-or-nothing mindset I described in the last post. There weren't any compromises necessary, no interpretations, no POMO deconstruction or relevatism. If nothing else, everything was a math equation at bottom and people tend not to argue with math :) . I felt like I had a "system" that "made sense" and that I could be at peace with. At least at first.

It turns out that it was a fair amount of work to re-train myself to think like a rationalist all the time. Whether it was due to Catholic upbringing or my study of Religion or D&D fanboydom, I kept catching myself thinking of non-empirical, non-rational, spiritual type things. I would have conversations with myself reminding myself that I don't believe that stuff anymore. It really turned out to be (mental) work. Not as arduous as living the conservative Catholic life, but work still. But all I had to do was read some more Dawkins (or listen to some evangelical Christian) to know that I had made a wise choice.

But always in the back of my mind ... this ... loneliness over the fact that, illusion or not, all the "other stuff" was now gone from my worldview.

Friday, October 24, 2008

Things I don't have time for: Golf, Religion ... pt. 1

You'll remember that about the time you started getting really good at golf I swore it off. My reasoning was that, in order to enjoy playing, I wanted to be somewhat proficient at the game, and I was only going to get proficient through practice. Practice, it seemed, was going to take not only time and money, but some sort of commitment too, and I knew that it wasn't going to happen for me on any of those fronts. So, rather than continuing my normal pattern of playing two or three times during the summer and just enjoying being out there, I decided to quit the game altogether. Can't/won't practice, can't/wont improve, game gets frustrating, no point in playing. Or something like that. It's an all or nothing position. If I can't do it right (or more accurately: the way I want) then cut it out completely.

What does this have to do with religion?

About the same time I swore off golf I went through a long period of spiritual reflection and general introspection. We've not talked explicitly about this thus far, so let me get some things on the record for context purposes. I was raised Catholic, baptized and confirmed. Both sides of my family are Catholic (save for some delusional fake orthodox members ... which is really another post). Jen is Catholic as well. Both our kids are baptized. However, I'm what you might call a "non-practicing Catholic". I took a comparative religion class in high school when I was 16, and never really looked back after that. The more I learned, the more difficult it got to think of the Church as the inviolate entity it claims to be. Trite, I know.

So, as it goes with kids, I started to think about how we would raise them. Is there any benefit to being "raised Catholic"? What sort of internal pressures there would be? etc. Jen and I decided to raise the kids Catholic (need to double check that that's still the case :-) ) and I figured that if we were going down that road that I should get my own spiritual junk in order. Hence the aforementioned period of introspection.

It ended up being a fairly long and intense period. Kind of unproductive too. I felt constantly agitated, and ultimately nothing really appealed to me. Nothing made sense. Nothing identified itself as a construct that I could view the world with. Throughout this period I experimented with being a good Catholic. Went to Church every Sunday. Read the Bible each night. Read commentary on the Gospels (which actually was very interesting). Prayed even. I decided that if anyone was going to "do Catholic" in this family we were going to do it right. So I sat down with the Catechism of the Catholic Church and starting reading about what the expectations are.

That lasted all of 20 minutes. You cannot live by the catechism without being a monk. Just not possible. Well that's not true. But it *is* really hard (not that the religious life is supposed to be easy). I just couldn't see forcing *that* kind of rigor on my family and living *that* kind of life. Besides I felt like I was faking it. And in a sense I kind of was faking it. The problem is that I never really made the intellectual commitment to it. And secretly the time and money sink(s) annoyed me. Sure, I could continue going to church. Continue sitting for an hour each Sunday listening to stuff I didn't really believe, frustrated that the kids won't sit still and that I could be running or something instead.

So I decided to just stop it all. Just like with golf. If I wasn't going to be a good Catholic, and really *get* something out of church and religious life and actually live it the way it's supposed to be lived, then what was the point? Like golf, if I wasn't going to commit to religion, then why bother doing any of it at all?

Nothing else during this period really spoke to me either. I picked up several books on religion that were teenage favorites and just couldn't get into them. Similarly, my favorite Philosophers weren't really helpful either (Epictetus, Aurelius, Eckhart, Spinoza, etc). Then ... on a whim ... I picked up The Portable Atheist. Wow.

Now I had been meandering toward a very naturalist/rationalist worldview on my own, but TPA really pushed me over the edge. It's not a fantastic book, in fact I think it devotes too many pages to essays that merely point out the shabby or depressing things that people have done in the name of religion over the years. But when it's good, it's very good. The essays by Carl Sagan, Primo Levi, Steven Weinberg, Richard Dawkins, et al. were outstanding. After months of searching, reading, thinking I had finally found something that stirred me. Something I could get onboard with. Specifically there was a passage from Steven Weinberg's essay that really got to me. I think I've mentioned it to you before. It's the one where he says he can understand religious conservatives because:

"... like scientists, [religious conservatives] tell you that they believe in what they believe in because it is true ..."

Weinberg said what he didn't understand was religious liberals because they:

"... seem to think that different people can believe in different mutally exclusive things without any of them being wrong, as long as those beliefs "work for them.""

This is the essay where he coins the term "not even wrong" Religious liberals are not even wrong in Weinberg's view. This passage, along with Primo Levi's anecdote about a man in a concentration camp praying and thanking God that someone else was chosen for execution, added to my failed attempt at playing the religious conservative, made it seem like uber-rationalism and atheism might be for me. Plus it's trendy. :)

Tuesday, October 21, 2008

Pottery and the Workplace

A really interesting entry this one from Coding Horror: Quantity Always Trumps Quality

On first read, I was really, really excited by the ideas presented there. It makes sense: you learn more about programming via the coding process and reviewing the outcome than you do *not* coding and just planning. Way back when I was a rhetoric & composition teacher, I used to teach a very iterative approach to writing: you're constantly going back and editing, rewriting, starting over with new ideas, splitting topics off, all sorts of things. You'd throw away ideas, come up with new ones, and keep working, getting better and better with each iteration. It made sense to my students, too: they really did seem to get better throughout the process, from the beginning of the semester to the end. Coding is very much like the writing process in that sense: the first iteration of a thing is very much likely not the thing you end up with. You'll fix bugs, refactor classes, and roll version numbers.

But then I started thinking, both examples (my teaching experience and the pottery class from the Coding Horror article) have one thing in common: they're both taking place in an educational environment. In both environments, there is very little consequence for short-term failure: you basically get to start over when you throw a piece away. As well, you get to "waste" resources: writing is just paper and pencil (or electrons and photons on a computer and screen) and pottery is clay, so you can basically make something and get rid of it if it doesn't work out.

This is in stark contrast to the workplace where time is the resource in shortest supply. Any time used that doesn't result in some deliverable is basically time wasted, and in the context of coding as a contractor, it's wasting the client's money. So I started thinking again about the writing process The first part of the process was *always* trying to figure out what you were trying to write about, even if eventually you threw that initial idea away. It wasn't necessarily coming up with a formal outline, and it may have even involved writing a few paragraphs and seeing where they led, but there was always some attempt to define where we were going before *really* starting off. (I'm guessing, too, that the pottery students also needed to at least have *some* idea about what kind of piece they were trying to make . . . they probably didn't just throw a blob of clay on and start turning.)

As well, there's another big difference between the educational environment and the workplace: in the workplace, people are assuming competence. The pottery class was training people who didn't have experience in how to create these pieces; it makes sense, then, that the more pieces you can create, the more experience you'll gain. Same in the writing class, where the more you write, the more you learn. It's different in the workplace, though. You're not there to learn, necessarily; you're there to produce quality products. You may learn along the way, you may have educational opportunities, but the primary reason for you being there is to make something worthwhile as efficiently as possible. And that means that you're in a position where you don't throw things away because they don't work: you spend some time planning so that they'll generally work on the first pass.

That's not to say that you won't refactor, revise, throw away prototypes, etc. But the idea is that you won't do that as often if you sit down to plan a little bit and draw on your own experience. So while the article sounds good at first blush, I think it may apply more to hobby projects we have to learn things about new languages or techniques than it does to our professional environments.

Thursday, October 2, 2008

Glassfish first impressions

I decided to experiment with your idea of creating a wiki for my internal home network for the purpose of storing all kinds of useful information that would otherwise be on a sticky note, in a notebook, or in some other ephemeral and easily trashable format. After extensive time looking at the Wikipedia entry for wiki software I settled (for reasons that I will go into in another post) on xwiki. After a quick scan of xwiki's install documentation I noticed that they had instructions for installing to Sun's Glassfish. Since Glassfish was announced I've had some curiosity toward it, but never the opportunity at work to really look at it. I thought that the rehabilitation of my home network might provide the ideal setting with which to give it a spin. So I downloaded it and put it on my webserver and turned to the xwiki documentation for the Glassfish install...

As you know I come from JBoss-land. JBoss pretty much is the begnning and end of my knowledge of J2EE Applicaiton Servers (I know Tomcat too, but I guess that's technically *just* a servelt container). So right away I was annoyed that the first step was to do a:

%java -Xmx256m -jar Glassfish-v2-blah.jar

JBoss for a long time has been a simple download and unzip operation. JBoss4.0.3SP1 experimented with a .jar distribution that you could double click on bringing up a GUI installer, but they abandoned it as the install dialog was too long and kind of confusing. Still though, even the one time JBoss did something other than a .zip, it was still as easy as double click.

The next thing that chafed was step two:

%ant -f setup.xml

Seriously? I need ANT on my webserver just to install the stupid App Server? I don't know how WebLogic and Websphere work, but really, does it need to be harder than unzipping something?

From there it just got worse ... another command line exercise to start the domain followed by instructions to go to the Glassfish webconsole for the deployment of my .war. Again my JBoss bias appears, but deployment can be as easy as drag and drop. Now, having been in the position where I've had to teach others the finer points of JBoss, I wasn't too upset at the Glassfish web console for controlling the server itself. Sometimes editing XML files just doesn't appeal to people. Sometimes it's nice being able to constrain the droids to a user interface. The Glassfish Web console is certainly much nicer and helpful than the JBoss equivalents. My only complaint is that the layout isn't all that intuitive (at least to me). I felt myself groping through the menus to find things that looked familiar. To be fair, I didn't spend a ton of time navigating through the web console and getting familiar with it, but it was opaque enough (translucent?) on first blush that it was clear I'd have to spend some time with the manual. Which brings me to the coup de grace...

The documentation totally $uX0rz. That's if you can even find it. It certainly isn't in big unmistakable letters on the Sun Glassfish site, and there's a bit of circular linking that goes on (including this abomination) before you settle on this page. Oh yeah ... in true Sun fashion Glassfish v2 is really "Sun Java System Application Server 9.1 update 1-9.1 Update 2". You're just supposed to know that. Kind of like SunOS 5.8 is really Solaris 8. I mean why have one name and a consistent marketing thrust when you can confuse and piss people off instead?

In the end I decided that experimenting with Glassfish at the same time I was experimenting with xwiki wasn't such a hot idea (too many variables when it comes to troubleshooting), so I dropped Glassfish and went back to Tomcat in this case (damn you JBoss 4.2.x). I'll likely look in on it later on. Give it some time for all that community written documentation to come pouring in. But for now ... meh.