Another day, another couple hundred lines of code packed away.
It's been kind of painful these last few days without my ergo keyboard and 24" LCD 😛 It's also been kind of slow going and there have been lots of frustrations as we try to get more pieces working.
But occasionally, when we do align several of the components for a small slice of time, there are moments of sheer joy as you watch the whole of the machinery move. I am reminded of a passage from Mythical Man Month by Fred Brooks:
Why is programming fun? What delights may its practioner expect as his reward?
First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God's delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake.
Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child's first clay pencil holder "for Daddy's office."
Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate.
Fourth is the joy of always learning, which springs from the nonrepeating nature of the task. In one way or another the problem is ever new, and its solver learns something: sometimes practical, sometimes theoretical, and sometimes both.
Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (...)
Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separately from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.
Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.
It's kind of like any sort of addictive drug: you have short, blissful highs with grinding, intellectually anguishing lows when things just don't work right or the picture is murky. Most of the time is kind of spent in a middle ground between intellectual orgasm and hair pulling aggrevation (not that I can pull my hair, but threading errors will do that to you), but there's always that moment when things are finally working in unison that makes all the work worth it.
No pictures yet but we did our regular Hooters lunch and had a special treat, Brazilian BBQ for dinner (excellent, excellent, excellent).
While I've been working 12-16 hour days these last few days, I have been kind of keeping up with the whole Ahmadinejad situation. To tell the truth, I really don't understand what many of the haters (yes, I did just use that term) are ranting about. Whatever happened to diplomacy? What ever happened to listening to all sides of the story?
I am starting to seriously wonder just how much our perception of right and wrong is shaped by what the government, and consequently mass media, wants us to believe. The core problem is that for many Americans, the level of independent thinking is severely lacking. It's how we got into the mess in Iraq in the first place. It's how we could have possibly elected a total dimwit as a president...twice no less.
Contrary to what our current government would have us believe, Ahmadinejad has shown himself to be more of a diplomat and thinker than just about everyone in our current administration. Unlike our president, Ahmadinejad has shown that he isn't afraid of the tough questions and harsh criticism and cheap insults that he received from people who should have shown more respect to the leaders of one of the most influential countries in the Middle East today. Ahmadinejad has indeed shown what it means to be a president and a diplomat (I'm not saying I agree with Iran's human rights policies or laws, but I can respect a man that calmly steps into the heart of the enemy's domain and wishes only to speak and open dialogue).
Scott Adams has a wonderful, tongue in cheek, blog post airing out his thoughts on Ahmadinejad's visit. He emphasizes the double standards that we have set, the arbitrary usage of "terrorism" these days, and tries to emphasize that there are always two sides to a story. This tends to be my view of the whole situation as well; I'm just not ready to believe that Iran deserves its infamous "Axis of Evil" membership designation.
Senator Mike Gravel also wrote a wonderful opinion piece as well:
Let's be clear -- a war with Iran will further isolate the United States in the world. It will unify the entire Middle East against U.S. forces that are stationed there. And worst of all, it will precipitate attacks on America that will far surpass the horror of 9/11. It's time to step away from the brink and begin finding common ground. Let Ahmadinejad go to Ground Zero and honor our dead. And together, let's all acknowledge that neither war nor terrorism will solve our problems.
We can only hope that our leaders aren't stupid enough to get us mired down in a decade of conflict and war that will cost the public hundreds of billions of dollars when there is an opportunity to air our differences in a diplomatic and political fashion.