Rocket ship to the moon

The first computer I can remember having around our house was an Apple II (I think IIe to be specific). I can’t say for sure if it was actually the first one, but it’s the first one my horrifically bad long term memory can remember, so we’ll roll with it. Anyway… there it was, in all of it’s beige glory, with a giant 5 1/4” floppy disk drive hanging off of it, and a clunky monitor with green characters on a black background. It was beautiful, and it was awesome.

The coolest thing I remember doing with it was writing a program in BASIC that made a rocket launch up the screen. The rocket was made of ASCII characters, and probably looked vaguely like this (credit):

                            /\
                           /  \
                          /    \
                         /______\
                        |        |
                        |        |
                        |        |
                        |        |
                        |        |
                        |        |
                       /|   ||   |\
                      / |   ||   | \
                     /  |   ||   |  \
                    /___|   ||   |___\
                        |        |
                         \      /
                          ||  ||


It then animated itself up and off the screen. I couldn’t have been more than maybe 8 years old (mom?, help me out here with the age), and I made a rocket ship launch. You know how cool that was for a dorky kid in the 80s? ok… well, i thought it was cool.

It wasn’t too much later that Oregon Trail showed up on some Apple II’s at school, and I was instantly hooked on computer games too.

Over the years, computing in our house evolved into construction projects. The real fun was building your own by buying a case, a motherboard, a video card, memory, drives, etc.. putting it all together, figuring out which way the damn motherboard jumpers were supposed to go for everything, and then finding a way to steal get a Windows license from somewhere (Note to Microsoft: I paid retail for Windows 95, so please don’t hurt me).

Mixed in with all of the construction projects was going from writing BASIC to FORTRAN to Pascal to C, Lisp, Prolog and beyond. Eventually, it became more than just fun and turned into a career (but has never stopped being fun).

You are probably asking yourself right now what the point of this post is.

I was riding a train home from New York to Maryland last night when i heard that Steve Jobs had died. Even though everyone knew how sick he was, emphasized by his recent retirement as CEO of Apple, I was still somewhat shocked by how sad it felt to me. I like Apple products (much more now than I used to back in those construction project days), and I have an iPhone and an iPad, but I am by no means a fanboy, and I have never met or even come close to meeting Steve Jobs. Regardless, there was still the sadness. A sadness shared by what appears to be the entire internet, for a CEO of a multi-billion dollar company. How many other CEO’s would illicit such a reaction? I can’t name one.

No matter what you think of Apple products, or Apple the company, or Steve Jobs the person, it’s impossible to argue with the impact he has had.

And now, Steve jobs narrating “The Crazy Ones”

Friday afternoon before labor day weekend … beers + code

Friday afternoon before labor day weekend … beers + code

Operation Neptune’s Spear

One of the more intense books I’ve ever read was Rainbow Six by Tom Clancy, released in 1998. The book was just the beginning of a long media franchise that includes more video games than I can keep track of… but somehow not a movie. Even while reading the book I remember thinking that it would make an awesome movie, but I guess it wasn’t mean to be (yet).

For various reasons that I won’t get into here, I love stories like Rainbow Six, and I get sucked into real life stories that fit that same mold. One such story came to pass in May, in the form of the Special Operations team Seal Team Six led the mission to kill Osama Bin Laden, Operation Neptune’s Spear. I haven’t been able to stop reading anything that comes across my screen about the mission, the team, and the upper tiers of the Navy Seals and other special operations groups in general.

The most recent of those stories was published today by the New Yorker, and it’s intense. It’s intense thinking just how long it took to get to this point. It’s intense to see that President Obama was a driving force for the renewed focus on Bin Laden (it’s a side of him that just doesn’t come across in all of the political bullshit that has occurred in his first term). And it’s intense to read some of the details and perspectives that are sprinkled throughout about special operations and this mission specifically.

First, very few people contemplate just often similar missions take place, just without the big name attached to it.

On the night of May 1st alone, special-operations forces based in Afghanistan conducted twelve other missions; according to the official, those operations captured or killed between fifteen and twenty targets

Second, I can’t imagine being the guys sitting in Washington, D.C having given the green light to run a covert assassination mission under the noses of an ally and sitting through this:

I can tell you that there was a time period of almost twenty to twenty-five minutes where we really didn’t know just exactly what was going on

Third, it’s always some stupid little thing that trips you up

The high walls of the compound and the warm temperatures had caused the Black Hawk to descend inside its own rotor wash—a hazardous aerodynamic situation known as “settling with power.” In North Carolina, this potential problem had not become apparent, because the chain-link fencing used in rehearsals had allowed air to flow freely

yep, the chopper crashed because of a chain-link fence in North Carolina.

Going out of chronological order for a second, you know you are a special kind of evil when no one even wants your dead body on their soil

Before taking that step for bin Laden, however, John Brennan made a call. Brennan, who had been a C.I.A. station chief in Riyadh, phoned a former counterpart in Saudi intelligence. Brennan told the man what had occurred in Abbottabad and informed him of the plan to deposit bin Laden’s remains at sea. As Brennan knew, bin Laden’s relatives were still a prominent family in the Kingdom, and Osama had once been a Saudi citizen. Did the Saudi government have any interest in taking the body? “Your plan sounds like a good one,” the Saudi replied.

And finally, special operations guys can never be given enough credit for what they do and the choices they have to make in the blink of an eye

Two of bin Laden’s wives had placed themselves in front of him. Amal al-Fatah, bin Laden’s fifth wife, was screaming in Arabic. She motioned as if she were going to charge; the SEAL lowered his sights and shot her once, in the calf. Fearing that one or both women were wearing suicide jackets, he stepped forward, wrapped them in a bear hug, and drove them aside. He would almost certainly have been killed had they blown themselves up, but by blanketing them he would have absorbed some of the blast and potentially saved the two SEALs behind him

Think about that for a second… damn …just damn.

Pardon me while I veer from the original point of this post for a paragraph. I was at a baseball game this weekend in Philadelphia, and after watching a few weeks of our political leaders act less mature and honorable than my three year old on a day without a nap, i was honestly not feeling terribly patriotic when the national anthem played. I took my hat off, but didn’t hold it over my heart like I normally would… I didn’t even realize I had done that until the anthem was nearly over. Stories like this one in the New Yorker give me some hope. There are still people out there that would make incredible sacrifices for us.

Back on point… If they ever did turn Rainbow Six into a movie, I imagine the final scene would be pretty close to this

Obama presented the team with a Presidential Unit Citation and said, “Our intelligence professionals did some amazing work. I had fifty-fifty confidence that bin Laden was there, but I had one-hundred-per-cent confidence in you guys. You are, literally, the finest small-fighting force that has ever existed in the world.” The raiding team then presented the President with an American flag that had been on board the rescue Chinook. Measuring three feet by five, the flag had been stretched, ironed, and framed. The SEALs and the pilots had signed it on the back; an inscription on the front read, “From the Joint Task Force Operation Neptune’s Spear, 01 May 2011: ‘For God and country. Geronimo.’

My first few days on OS X Lion

I’ve had a few hours on Mac OS X Lion this week, and so far I really like it. Here are some random thoughts, in no particular order.

Although most people seem to hate it, i like natural scrolling. It actually feels natural to me… maybe because I spend so much time on an iPad these days, and it makes them both act the same way now. I’m only slight embarrassed to admit that once or twice I’ve tried to swipe my fingers on the laptop screen instead of the trackpad.

Mission control and all the multi-touch gestures are awesome once you take the time to learn them all… it’s one kinect-esque web cam hack away from being minority report on your laptop. They are so good that I actually use Spaces now, as the gestures make them so much more useful and seamless.

Launchpad feels… weird, like it’s half integrated just to get OS X one step closer to iOS. I need more time to decide on this piece. I get the general idea, but still feels off.

I love full screen apps in general on any OS, but just as they did with spaces/mission control, the gestures really makes full screen hum on Lion. Not every app I want to use full screen supports it yet, but hopefully they will soon… and I can live in full screen bliss.

I can’t speak to the new Resume functionality, as I just don’t shut things down much. In fact, the restart that Lion did on install was the first time this laptop has been restarted in many weeks. I don’t use Mail and iCal, so don’t have anything to say about those.

For what it’s worth, the only thing my wife noticed after the upgrade was the change in scrolling, which she called “frustrating” (but only after I asked, so it wasn’t so bad that she was screaming at the computer).

And finally, the fact that it was distributed via the App Store, and for only $29.99, is utter brilliance. The price part is an obvious win, but doing it via the app store also deadened the psychological terror of an OS upgrade.

My quick summary of what I’ve seen so far… it’s for power users. Just look at the stuff that I’ve noticed and liked… those aren’t things my wife, mom or grandparents are going to use or care about.

But then again, it’s only $29.99…

Technological Possibility vs. Reality

This past weekend highlighted an interesting disconnect for me between the possibilities unlocked by what the last few years of technology innovation has created and the realities for everyday life.

On the one side, the side of possibility, I carry around an enormous amount of computing power all day, every day in the form of my iPhone.

On the other hand, I still routinely run into frustrating experiences that feel trapped two decades in the past that should be easy and valuable for people to solve.

The most recent example from this past weekend occurred while visiting the Baltimore Zoo with my wife and two daughters. My oldest wanted to ride the Carousel after we finished lunch, so I took her over to it. Dang, you have to pay for it… no problem, how expensive could it be? The answer from the nice guy in charge of the carousel is that it costs two tokens. Tokens? Seriously? yes, tokens.

So we’re off to figure out how to get tokens. After some wandering we find the bank of machines where you exchange dollars for tokens… one dollar to a token. So I fish some dollar bills out of my pocket and spend literally 10 minutes getting the machines to take them. Flipping them in every direction, flattening all of the corners, rubbing out the creases, trying alternate machines for different bills, etc.. Basically, all of the same crap I had to do to dollar bills to play Street Fighter at the mall in 1991.

And therein lies the disconnect.

I have apps on my iPhone that give me coupons for the grocery store and hold my “shopper cards” for the same grocery store. Only problem, none of the grocery store scanners can read them off of my phone. I have to physically print the coupons at home and take it with me, and I have to manually enter my member number for the shopper card.

And therein lies the disconnect.

I feel like there is the potential for me to walk out of the house with only my iPhone (or Droid if you are so inclined [Note: make your own Windows Phone joke here please]). No car keys, no wallet. Just my phone. There are apps like Bump which combine with Paypal to make paying for things trivially easy (and Square may have made it even easier this week). There are the apps I’ve already mentioned for coupons and shopper cards.

All of the pieces are there, I just need them to actually be useful in the real world, outside of Silicon Valley, so I can spend an extra 15 minutes with my daughter looking at Chimpanzees instead of wandering around looking for tokens.

By the way, as I took my daughter and our newly acquired tokens back to the Carousel to finally hop on (she rode on the Giraffe), I could hear another parent saying to their kid “ok, we have to go get some tokens first” and abruptly turning around to head back to 1991 to find some tokens.

Infrastructure Hosting - disasters happen

Over the years, I’ve had many people question my decision to host my companies infrastructure in a co location facility as opposed to fully in the cloud. After the recent extended AWS outage and data loss, many of those people have said “I guess you were right”. While I love being right as much as the next person, that conclusion completely misses the point of why we chose to not heavily rely on the cloud.

First off, I hate the word cloud in this context. It’s a completely meaningless buzzword at this point (see the Microsoft “to the cloud” commercials). What we’re really talking about is outsourced hosting vs. self managed hosting, and for me it’s an issue of control and costs.

On the control front, i am a control freak, plain and simple. If I can’t talk directly to the person that installed my hardware and ask them random probing questions, then I’m very uncomfortable. If I can’t clearly explain how or why we are safe from significant outages or data loss, then I’m even more uncomfortable. The reason is simple. At the end of the day, it’s my ass on the line, and while an SLA may make accountants happy when they get a partial service credit, it isn’t going to keep my company from losing business.

On the costs front, as soon as you hit a non-trivial amount of servers, it is significantly more expensive to outsource your hosting. This is generally true of all outsourcing… it almost always costs more in the end than doing it in house once you do something non-trivial. There are lots of good blog posts and articles on this topic, some very specific to hosting and AWS, so I won’t duplicate the info here (google is your friend).

I will say, however, that at my company we employ a handful of people to build out and manage our infrastructure. That infrastructure currently consists of thousands of processor cores on hundreds of physical servers. We’ve done the math, and at that scale, the cloud for us would be more than twice as expensive in short term costs, and orders of magnitude more expensive in long term costs (including human costs). Those same accountants that love service credits from SLA’s, they also love capital depreciation.

In the end, things are going to break no matter how you do your hosting. The companies with the largest hosting infrastructures in the world, spread across multiple continents and millions of hardware devices still have failures. There is no perfectly right decision, and there are trade offs in all cases. If I was running a website by myself that needed 3 servers and might occassionally burst up to 10, then the cloud makes perfect sense.

For me, I run a service used by hundreds of other companies, which changes the equation. When something does inevitably break, I want to be able to fix it as fast as possible. In the cloud, all I can do is wait for someone else to fix it, by which point a large chunk of my customers are long gone.

Craig Connell, on working at Lotame

The non-post post

I haven’t posted in a while, due not to lack of desire or ideas, but entirely due to a lack of time. Blogging is hard work, I have total respect for people that write something every single day, or maybe multiple times per day. If I’m going to write something, I prefer to devote some time and care to it, and do the topic justice… otherwise I’d just tweet it. Yes, I see the irony in the fact that this automatically gets broadcast as a tweet. I just can’t figure out when to do it lately. I’m hoping that will change soon as my recently crazed days calm down a bit.

I may not have written in a while, but I have no shortage of ideas and clever titles that pop into my head in the middle of the night. Here are just a few from across the spectrum

Whiteboards - the ky jelly for ideas

Word Play - “Pivot” and “Manage Expectations” are the new “Think outside the Box”, and I hate them all with a burning passion

Ride the Flume - my new favorite data flow enabler

If the Federal Government were parents, social services would take their kids away

Hopefully, I’ll be able to actually write them sometime soon. In the meantime, please grab a title from above and come up with your own story, that may actually be more entertaining than reading mine.

She’s older today

The most amazing thing about being a parent is simply watching your kids grow up a little every day. I’m only a small way down the path so far, with an almost 5 month old and an almost 3 year old, but they both amaze me routinely.

My wife can often be heard around the house to say “she looks older today”, and although it sounds crazy to think a kid can look older in just one day… it’s absolutely true, and absolutely amazing.

The most pronounced of these experiences happened for me this afternoon, as we wound down our Christmas break. As my wife and I were sitting and taking in the carnage that is our family room, our oldest daughter was running around being way older than she was just yesterday. She was baking play cookies and serving them to us, “exercising” on her new trampoline (no, not one of those giant ones… it’s a 3 foot triangle and a homerun present), pushing a play family in a play mini-van, treating her baby in the play hospital bed, and laying on the floor playing with her little sister without any new toys at all.

She has also started coming up to me and letting loose little gems that just crack me up:

“Daddy, when i rub my eyes, it means I’m tired, ok? So, when I rub my eyes, I need to go to sleep”

“What kind of cookie would you like? how about a blue one? ok, here you go. Be careful, it’s hot.” (after baking those play cookies I mentioned earlier)

“Daddy, i’m going to take my medicine, and then I get a cookie… that’s the deal”

I won’t even get into how there ended up being a deal in the first place, let alone her understanding the details of it and using it as leverage when it came time for medicine (the “deal” was made a week and a half ago).

Watching her today made me feel like I had been away for a few weeks and missed something. I was amazed, overjoyed, proud, and just plain happy. I hadn’t been away, or missed anything, she was just older today.

The ongoing evolution of a techie

For those of you that don’t know me, I’m a tech geek. I like everything about technology, and have been working with it since I wrote my first program on an Apple IIe who knows how long ago (it blasted an ASCII spaceship up and off the screen). In addition, I’m a generalist and will work with just about anything. I started with that ASCII spaceship in some variant of BASIC, I don’t even remember. I vaguely remember writing some sort of concert ticketing app in pascal in high school computer class. I wrote stuff in Fortran in high school and college, then C, C++ and Java. After college I learned perl, VB, php, C# and all of the various web-related languages like HTML and JavaScript. I’m not the guy that will tell you every little intricacy of every language, but I am the guy that can pick up the right language for the job and just get stuff done. In addition to programming, I learned how to administer Oracle, MySQL, and SQLServer along the way … some out of necessity, some out of curiosity. I was always on the lookout for a chance to work on something that I didn’t fully understand or know how to do. Most recently, just this week in fact, I started learning Objective-C and am writing an iPhone app. I have no idea why, it just seemed like a good idea.

That’s a very long winded way of saying that I really like to get my hands dirty building technology. It’s been my biggest strength and my biggest weakness. It was a strength because I felt like I could build anything anyone needed, and for the most part I did. I’ve been able to work on a lot of different kinds of applications and systems, from UI’s, to hard-core data crunching data-flows, to high-performance high-volume web serving systems.

It’s also been my biggest weakness because it’s made me subconsciously reluctant to relinquish control when I really need to, which in turn has made me a bottleneck at times. Intellectually, I’ve always known that in order to grow I have to effectively “lead” instead of just “do”, but honoring that intellectual realization is something I struggle with every day. When do I let someone fail so that they can learn a lesson the hard way? and when do I step in to make sure something just gets done as quickly as possible?

I remember vividly when I left my previous company to join and help launch my current company. I met Andy, the founder, in a bagel shop in the Federal Hill area of Baltimore. He walked me through what he was starting and we got into what he wanted and what I wanted. At the time, my primary goal was to keep getting my hands dirty… and that’s what I told him when i outright said “Andy, I don’t want to manage anyone, I just want to build stuff… it’s what I’m good at”. Prior to that, my best friend routinely told me that I should just let go and take the leap to managing people… I resisted furiously, to the extent of jumping to a project that I knew I wouldn’t really like, just so I could keep my hands dirty full time.

Four years after that meeting with Andy, I have an awesome team of 20+ technologists and I spend probably 60% of my time keeping my hands clean and steering the ship… which probably isn’t as much as I should be, so I’m still evolving. So, it didn’t exactly go the way I envisioned, but I wouldn’t have it any other way.

In the long run, my reluctance to give up the dirty work has probably held me back to some extent. I may have made less money along the way, or frustrated people that wanted me to be something different, but I don’t really care … It’s allowed me to do what really makes me happy, and that’s what matters. I spend way too much time working to do it in a way that I wouldn’t fully enjoy. As Yogi Berra may or may not have said, if you aren’t happy then you’re miserable.

I’ll never be just a people manager. I’ll never fully delegate as much as I should. For better or worse, it’s just not me. I’ll always have my hands dirty learning and building something. In the end, I think it actually makes me a better leader.

Now, back to that iPhone app … chop,chop … I still need to learn Python.

Lots Of Hats is a place where i'll write about pretty much anything I want to write about... from tech stuff, to my continual amazement of watching my kids grow up, to politics.

Enjoy,

Jeremy Pinkham