Events, Family, Personal, Software

Working on the Javascripts From Atlanta

Goods news – I survived the two day journey back to Atlanta! My folks offered to help us move (or maybe it was to help their granddaughter move back). We rented a truck, and got everything loaded up Wednesday. After an exhausting day of packing, and cleaning I said good-bye to my Barrington, RI residence and hit the road. After living in the smallest state, its difficult for me to drive long distances, and Atlanta was a long distance destination. The drive was easy, and at the end of the journey I had friends, family, a big house, and my best friend’s wedding reception to make it to. It was the fuel I needed to keep my sanity.

After an overnight stop in Strausburg, VA, I made the rest of the journey with time to spare for the reception. It is amazing how different Atlanta looks form an outsider’s eyes. I got used to the close together houses, and the small, but dense cities of New England. When I got off of I-85 in Braselton, GA and start making my way on backroads to my in-law’s house I started to get shaken. I couldn’t believe how country it really is in rural Georgia. Parts were charming, like the road side tables with local produce for sale, and other parts were just run down and sad. At this point I had yet to see the house that I signed a year and a half lease on in person, and this was swaying my confidence in my decision.

After John and Anna’s wedding reception I called it a night, with move in day starting bright and early the next morning. We finally got moved in thanks to friends and family into our new house. The house is beautiful, and has been truly renovated. We have lots of space to grow into, and Morrigan finally gets a toy room. We have central air again, and a wrap around deck overlooks the tree canopy in the heavily wooded back yard. We are up against a creek, and so far, it has been very peaceful, but the the neighborhood is no Barrington. I missed the cicadas and fireflies.

Over the last few weeks we have been getting to see lots of folks, and are making up for lost time. A lot has changed, but not so much that we can’t catch up. I have enjoyed talking with everyone, and I feel so happy to be back.

Another big change for us has been my adoption of a teleworking arrangement. I am home during the day, working out of my office. It has been great not having a commute, and getting to maximize my time with Morrigan and Kristin. When I would go into work, I would spend most of the day waiting to get back home. Now I have both things, together. Before you cut me down with your death ray stare, it isn’t all perfect. I miss my coworkers, and the opportunity it provided me to get out and break from the routine. I will give a telecommute update in a few months once I find a good rhythm.

In programming news, I have become intrigued with Node.js and developing in Javascript. A client project at work turned me onto it, but the timing was terrible since I was a new, first time dad. I had to let that project go, but a recent Hack Day at MojoTech gave me time to focus my energy on Backbone. I have been slowly building a card game in the browser using Node.js + Backbone + Mongoose. The project is one of love, as I used to play this card game a lot in Middle School, but now it is a dead franchise. More updates on Javascript, and my side project in the days to come.

Computers, Hardware, Linux, Personal, Software, Thoughts

Self Realizations – Part I

During World War II, when you needed to get communications between two points, you often had to run a telegraph wire through enemy territory. I’m picturing the scene from Enemy at the Gates – where a soldier puts on a helmet, gets a spool of wire, and crawls on his belly through the mud, dodging enemy fire, and landmines. The goal is to not get picked off before your reach your destination because everyone is counting on you to make the connection.

Lately I have been engrossed in a side project that has given me an opportunity to work with the Android SDK. I have been so tickled at figuring out everything for the first time. Though I am moving at a snail’s pace, and it can be painful to have to constantly reference the documentation, StackOverflow, and Google at large, it has been a fun experience. Small things like talking to a database, or rotating a bitmap feel like big achievements, and make the struggling worth it. Seeing the Java side of the world puts some things about Ruby into perspective too. I know I am better having tinkered with it, and I had fun while doing it.

I have come to realize that its why I love programming. I love running that first line across unknown territory. It is proof that I can accomplish what I set out to do even with almost no prior knowledge about an environment. It is the same rush I get when tinkering with my car, or building computers, installing a ceiling fan, compiling a kernel, or raising a kid. It is about creating something to solve a problem using common tools and applying knowledge to make something awesome of it all. If I didn’t program, I’m not sure what other career I would have that would give me this same chance to tinker with new stuff.

As part of this self realization, I have discovered by my child-like excitement in my accomplishments, how much I miss this in my current work capacity. I’m not building new things anymore. I’m just polishing the same things, and the details don’t really excite me like the prototypes do. I like “broad strokes”. We need people that do the detail work too, but its decidedly not for me.

So find out what it is that you love, and make it happen. Your job and your passion aren’t always in phase, but don’t let let your passion die out just because you are getting paid to do something else.

Computers, Open-source, Software, Thoughts

The Times They are a Changing

Open Source LogoI have become increasingly aware of a very sharp contrast in the computing industry. For the first time in a long time, I have felt like open source is losing the battle.

In reading the Mythical Man Month I have come across a section that I Fredrick Brooks nailed when describing a programmer’s drive. To paraphrase:

“Why is programming fun? What delights may its practitioner expect as his reward?… First is the sheer joy in making things… Second is the pleasure of making things that are useful to other people… Third is the fasination of fashioning complex puzzle-like objects… and watching them work”

Anyone who has ever enjoyed programming can probably relate to one of these categories. Programming is as much an art as any of the traditional arts.  When business is removed from the equation, it is expressive, and an element of beauty and facination.

However, with business intervention, the art is smothered for profits. Business don’t care about the beauty or form of a well structured solution – it cares about the bottom line. Instead of being an art of expression, programming becomes a tool for profit.  Fredrick Brooks captures the woes of programming just as well. To paraphrase:

“First, one must perform perfectly… Next, other people set ones objectives… The next woe is that designing grand concepts is fun; finding nitty little bugs is just work.”

I imagine that in the early days (before the “Gold Rush”), programming used to be a labor of passion. Geeks were proud of their knowledge, and crafted solutions with the intent to give it away – their gift to the world.

Lately, I feel like that is a dying resource. Anyone who is worth a damn has probably signed on with a company, to produce code for a project that will result in revenue for the business. As these individuals are swallowed by corporations, open source initiatives slow development, and come to a stand still.

At some point, we traded passion for money, and ditched our sharing ways in favor of enterprise solutions. These solutions are a product of our free markets, but they excel in the market at the expense of open source counterparts. Everytime I see an enterprise solution roll out and eclipse what used to be an open solution, I feel like we are closer to the brink of seeing open source fail.

I am shaking my head as I write this post because I don’t understand any alternatives. Companies have money, and can push much harder than a team of non-profit programmers. I suppose the outcome of open source and enterprise should be determined by the free market, but it just feels wrong to watch it happen.

Computers, Personal, Ruby, Software, Thoughts

The Woes of Work

This week it seems that I have developed programmer’s block. I don’t know if there is such a thing, but I have felt totally unable to do anything involving code. I can’t write SQL, I can’t write Ruby, and I can’t even think through concepts that my co-workers are proposing.

It probably doesn’t help that my co-worker wanted to share the same development database instance “since there are only two of us, what could possibly happen?”, and he has been migrating my ass to death. Also, with constant foundation changes, my code literally breaks every night. It also probably doesn’t help that no one likes my solutions before I even have time to flesh them out into a prototype. And the final nail in the coffin is the constant interruptions in my day from supporting everything else that we do.

When I code, I have a tendency to go with the simplest possible solution to a problem. Generally, this means less code, less bugs, and the least surprise to the end user. This also generally requires less effort. This week I have felt like someone running beside a train in which my co-workers are comfortably sitting, discussing some pretty “out-there” solutions, and I am gasping for air, and reaching up trying to grab onto anything to pull myself onboard.

I would love to develop this project in an agile way. This isn’t just some methodology written on paper – it is a mindset that you have to embrace. In part- if you build your foundation in an sensible and orthogonal way (from The Pragmatic Programmer),  then the problems of tomorrow don’t account for your design today. However, my co-developers want to build the beginning code with this grand vision of the end baked into the first lines of code. I am not ready to field questions about how ‘x’ is going to fit into ‘y’ in some scenario yet. I haven’t even written ‘x’ and ‘y’.

Our boss finally said on Thursday that he is going to remove the deadline on our project, so that we can take our time. Initially I was pretty upset, because when projects get put on the back burner, we rarely move them back to the front again. However, in my current state maybe it is for the best.

Maybe I just need a vacation…