Sunday, February 24, 2008

A Moment of Frustration

"Software is a place where dreams are planted and nightmares harvested, an abstract, mystical swamp where terrible demons compete with magical panaceas, a world of werewolves and silver bullets." -Brad J. Cox
There are many schools of thought about how to go about programming. We call them things like Object Oriented, Dynamic, Functional, Pragmatic, and Agile. Eric S. Raymond has written eloquently about one of these, which he refers to as the Unix Philosophy. I've spent my few years as a professional programmer wishing I could work on a project that followed the tenants Raymond sets forth. These guidelines appeal to me. They encapsulate a type of openness, brevity, simplicity, and interoperability that match with the kind of creations I want to generate. And that makes total sense when you think about it: I'm a programmer, and the Unix Philosophy comes from a culture of programmers. Unfortunatly, real life has a tendency to get in the way.

"With any creative activity come dreary hours of tedious, painstaking labor, and programming is no exception." -Frederick P. Brooks Jr. "The Tar Pit" (essay collected in The Mythical Man Month)
One of the quiet frustrations of being a working programmer is that you are almost never free to follow your own coding styles and methodologies. Legacy systems must be maintained and enhanced. Customers and management want their software developed cheaper and faster. Security and performance concerns necessitate inelegant solutions. Regulations and external interfaces can be labyrinthine. There are very good reasons for keeping programming patterns homogeneous within your team, department, and even company. But just as some comic strip artists feel constrained by the standardized newspaper format, some programmers feel constrained by external forces. Turns out I'm one of those. Perhaps you will find that you are too.

"No matter what the problem is, it's always a people problem." -Gerald M. Weinberg
Don't be too alarmed yet. Programming is all about working within constraints. Programmers juggle memory footprints, processor time, network bandwidth, and external resource availability all the time. Handling a little difference in philosophy should be no problem, right? Unfortunately, it depends. Problems with politics, philosophy, and team chemistry can't be solved using the same approaches that solve programming problems. People aren't ever entirely rational. Sometimes, you will face moments in your professional career when you have to decide if you can live with the frustrations, conform to the external expectations, or if it is time to move on. What you move on to could be a different team, a different company, or a different career altogether.

"When you find yourself perpetually angered by little questions in your professional life, perhaps the problem is some big question you answered wrong earlier." -Gerald M. Weinberg Understanding the Professional Programmer

How we face those moments defines a large chunk of our lives. You should put in the work to figure out what makes you happy before you get stuck in a quicksand of frustration. It will pay off in the long run by allowing you to stay sane. And it really isn't all that hard to do. After all, if there's one thing us programmer can do, it's identify patterns. It helps that we aren't the first ones to face the insanity that is inherent to the job. You may notice professional programmers tend toward a wry sense of humor. There's a reason for that.

"while(true) keep programming" -Assaad Chalhoub

Sunday, February 17, 2008

Spaceship Obsession: The Voyager Probes

This is the first in what may be an ongoing series about various spaceships, real and fictional, that have captivated my imagination over the years.

Launched in 1977, Voyager 1 and Voyager 2 are my first memory of real spacecraft. The craft were originally built to last five years to accommodate flybys of Jupiter and Saturn. Like the more recent Mars rovers, they have survived much longer than their designed lifetime. Their mission was extended to visit Neptune and Uranus, and beyond. The probes continue returning data over thirty years since their launch. They are both now traveling in the heliosheath, the region of space where interstellar gas currents begin to overpower the outflowing gases from the sun.

The Voyager missions saw many tricks of the space exploration trade on display, including remotely reprogramming the on board computers, taking advantage of rare geometrical alignment of the outer planets, and gravitational slingshotting. The probes also carried with them a gold-plated copper phonograph record containing pictures and sounds from Earth, including greetings in fifty-five languages.

While younger folks may stand a better chance of recognizing the Voyager probes from their dubious roles in the first two Star Trek movies than from their groundbreaking interplanetary journey, for me they will always illustrate the fascinating possibilities of space science and exploration. As Dr. Carl Sagan said, "...the launching of this bottle into the cosmic ocean says something very hopeful about life on this planet."

For more information visit the Jet Propulsion Laboratory's Voyager web site.

The image above is presumably copyright NASA, and is used without permission under the presumptive application of the fair use sections of the Copyright Act.

Effervescent Bubbles in Spaaaaace!

Did you ever wonder how Alka Seltzer tablets behave in free fall? Yeah, me neither. But someone did. And they just happened to be on the International Space Station. Post your "plop, plop, fizz fizz" jokes in the comments...

Monday, February 11, 2008

Space, Sci-Fi Technology, and Denominational Health

Over fifty years have passed since America first satellite was launched into orbit. The Explorer 1 satellite gave the first real evidence of the near-Earth space environment and lead to the discovery of the radiation belts around the Earth. Those radiation belts were named after the lead scientist who lead the development the experiments on board, James Van Allen.

If that doesn't fire your imagination, Wired offers up their top ten list of technologies that are doable now, but cost way too much. The examples range from supersonic jets (yeah, we've technically already done that one) to floating cities to interstellar exploration. I still hope to live to see some of them become reality. And at the moment, it seems like the robot army is leading the charge. Sigh.

Science doesn't just study the big picture. Sometimes, people study the oddest little things. Like this study from Northern Ireland comparing health and mortality trends of people by denomination. As a Methodist, I apparently would have a lower risk of "accidental death" than Catholics, Presbyterians, and members of the Church of Ireland. I'm not sure if that means I am more likely to be killed on purpose or not...

Friday, February 8, 2008

Will Wright Talks Spore at NASA

I must confess that I have not had much interest in Spore, the upcoming video game from the creator of Sim City and the Sims. After seeing this video, that may be beginning to change. If only for the technology on display. I'll need to see some minimum system requirements before I really start paying attention.