Young Gamer Geek Nostalgia

Earlier this week I wrote about "Moon Runner," a TRS-80 game I created when I was 18. That was my first piece of commercial software, but I’d written dozens of other games before that.

The first game I remember writing was "Possum Run," a bloody takeoff on Frogger which was published in a magazine called Hot CoCo when I was 16. Back then I was a long-haired metalhead, and I remember my friends being absolutely shocked to discover that I was a published geek.

During the remainder of my high school years I published a number of other games in Rainbow Magazine, including a goofy platformer inspired by Bloom County which featured a penguin trying to find wings that would enable him to fly.

Writing those games wasn’t just a hobby: it was my great escape from the boredom of school. I remember countless days staring at the clock in class, just waiting for the final bell so I could go home and continue coding. And during class I’d often be scribbling code in my notebook instead of taking notes.

Every now and then I toy with the idea of getting back into writing games, and I’ve even considered creating Android versions of my old games. But I’m more of a news and communication junkie these days, so writing games doesn’t interest me the way it used to.

Although I have to admit, it sure was fun coding that Easter egg in FeedDemon :)

I Used to Write Video Games

Sometimes people ask me which program I enjoyed writing the most, usually expecting me to say either HomeSite or FeedDemon.

Nope.

"Moon Runner" was the software I most enjoyed creating. It was a game for the TRS-80 Color Computer that I wrote in 1986, when I was 18 years old. Back then I was hopelessly addicted to video games, so being able to write one myself was an enormous thrill.

"Moon Runner" was loosely based on the arcade game Moon Patrol which I wasted countless quarters on as a kid. It was coded entirely in 6809E assembler and took me several months to create. I still have a printout of the source code on my bookshelf, but it’s gibberish to me now.

I formed my first company ("D & N Software" – my Dad was the "D" and I was the "N") to sell the game, and had wild dreams of striking it rich. But despite receiving rave reviews in popular TRS-80 publications, "Moon Runner" was a flop. It barely earned enough to keep me stocked with peanut butter and Ramen Noodle Soup for a week.

But you know what? I didn’t care about that. I just loved the fact that I created something good enough for others to use. To this day, nothing has compared to the rush I got at age 18 when I saw "Moon Runner" reviewed alongside software written by professional software developers.

I imagine that’s similar to the thrill so many young coders feel today when they contribute to an open source project or post something that ends up on the front page of Hacker News.

That thrill is why "Moon Runner" will always be the software I most enjoyed creating.

Farty Shoes

One recent rainy morning, I stopped at the grocery store after walking my dogs in the park.

As I strode into the store I realized that my wet shoes were making farting noises with every step. I tried walking more slowly, but that just resulted in slower, deeper farts.

So I paused for a moment, too mortified to move. Then like any geek of good conscience, I asked myself, WWJCD?

"What would John Cleese do?"

Suddenly the moment was transformed from one of extreme embarrassment to one of merriment. I put on my best Cleese straight-man face and continued walking, all the while pretending I had no idea the flatulent feet were attached to me.

If an unexpectedly boisterous blast burst from my soggy sneakers, I'd look around as though someone else was to blame and I was offended by their presence.

When the shopping was done I picked up the pace, resulting in dozens of quick squeaky blats following me as I left the store.

I have no idea what anyone else's reaction was, but I certainly had a good time.

So if you ever find yourself in an awkward situation, don't worry about it. Just ask yourself, WWJCD?Everything will be fine after that.

Dog Rescue: The Aftermath

Given how much of my life is consumed by my two dogs, I’m surprised I haven’t posted about them since adopting them a few years ago.

When I say "consumed," I mean it literally. For example, here’s a couch they consumed one rainy day when I skipped their walk:

In other words, they have a lot of energy and need a lot of exercise. They’re also very strong, especially Bella. She’s an Alaskan Malamute mixed with white German Shepherd. Ripley, the black dog, is Bella’s puppy. She’s much more Shepherd in appearance and attitude, but the Malamute in both of them is apparent when I walk them.

Actually, it’s not really walking. It’s being dragged by beasts bred to pull large loads. I’ve stopped going to the gym because being pulled by 130 pounds of dog every day is more than enough full-body exercise.

It’s not risk-free exercise, either. Late one night I made the mistake of letting their leashes get behind me right before they spotted another animal in the woods. They took off full speed, tripping me up and dragging me across the ground for several yards before I could right myself. My wife still laughs at the memory of me coming inside with leaves in my hair.

Another risk is other dogs. Bella is incredibly gentle and sweet with people – she loves everyone – but she’s the polar opposite with other dogs, at least ones that annoy her. If she sees another dog she usually ignores it, but if it makes the mistake of barking at her she instantly changes from a big teddy bear into a raging wild animal that’s very hard to control.

Barking is something my dogs rarely do, though.  In fact, I’ve never heard Bella bark – but I have heard her howl plenty of times (it sounds like this). The neighbors probably think we own wolves.

And did I mention the fur? Both dogs blow their coats twice a year, which means everything we own is covered with either black or white dog hair for several weeks. When I brush them, they shed enough fur to build another dog with.

Sometimes I look back at the day we adopted Ripley and Bella and wonder whether I would’ve done it had I known how much work they would be. I have to admit, there are days that I wish I was dog-free.

But despite everything, these two dogs are like best friends to me. I’ve connected with them in a way I never have with other dogs I’ve owned. I’ve come to truly respect their combination of strength and gentleness, and I admire their intelligence and independent natures. I wouldn’t trade them for anything.

But I am looking forward to them being a few years older, when they’ll hopefully be a little less energetic.

Hateful Hiring

This post on the 37signals blog struck a chord with me.

Interviewing programmers by requiring them to tackle problems on a white board is a lousy way to find successful developers, yet this practice has existed for years.

I’ve experienced it myself a few times, and each time I failed. Badly.

On one occasion I was interviewed by four separate people during a single day, all of whom expected me to answer on a white board. None of them asked any questions about previous experience. One of them hadn’t even read my résumé prior to the interview.

I’ve also been asked to tackle problems way outside my area of expertise. Perhaps the silliest was when I was expected to answer a problem which required knowledge of graphic chip architecture even though I was being interviewed for a front-end programming position that had nothing to do with graphics.

Yes, despite the fact that I’ve written several very successful programs, I wasn’t asked back for a second interview because I suck at answering irrelevant technical problems on a white board.

I agree with 37signals that the best way to gauge the potential success of a programmer is to see what they’ve already done, even if it’s just side projects they worked on in college. Interviewing via a white board is like deciding how good a musician is by asking them to write tablature instead of listening to them play.

Privacy is Important

“You have zero privacy anyway. Get over it.” – Scott McNealy, former CEO of Sun Microsystems.

When I was invited to join Sepia Labs and create the Android version of Glassboard, I stressed that privacy was the key to our success. Companies like Facebook and Google are trying to convince millions of us that we can trust them with our privacy, but millions of us remain unconvinced.

These companies make the majority of their revenue from advertising, and advertisers are willing to pay more when they know exactly who their ads will be shown to. We’re expected to trust our private conversations with companies that don’t benefit from keeping our conversations private. Red flag, anyone?

“If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place.” – Eric Schmidt, Google’s executive chairman and former CEO.

It’s not that we fear saying things that we don’t want anyone to know, it’s that we fear saying something without knowing who will hear it.

We want to be able to say something online without fearing that a future employer may see it and count it against us. We want to complain about the country we live in without fear of reprisal. We want to share pictures of our kids without wondering who else will see them. We want to share with only the people we choose to share with.

When we know a conversation is private, we’re more willing to share ourselves. It feels good to share who we are, to open up to the people we trust. When we don’t know who will hear us, we censor ourselves and hide the rough edges of who we are. But those rough edges help define us. It’s impossible to feel truly loved if you have to hide parts of who you are.

It’s time for us to say, “No, I won’t get over it. Privacy is important, and I won’t give it up.” Today’s software developers need to look at privacy the same way they’ve learned to look at security: it’s not an add-on or a feature that customers have to turn on, it’s something built-in that shouldn’t be turned off.

I hope more companies follow our lead and take the same approach to privacy that Glassboard has. I think the web is headed in the wrong direction, and the more that participate in trying to change that direction, the more likely it is to change.

My Top 20 Minor Annoyances

If you've been on Facebook or Twitter for any length of time, chances are you're following at least one person who constantly complains about all the little things that annoy them. If they stub their toe, wake up with bad hair, or someone just looks at them funny, they immediately post about it.

In an effort to not become one of these people, I've decided to spout off my minor annoyances here. That way I can get them off my chest without bothering my Facebook friends. So, in no particular order, here they are:

  1. People who blow their nose in restaurants
  2. Lights that are controlled by more than one switch
  3. Wearing wet socks
  4. Dr. Phil
  5. "New" music which rips off classic rock
  6. Fitness fanatics who worry about eating too much at Thanksgiving and Christmas
  7. Fake eyebrows
  8. People who think you can't see them picking their nose because they're in their car
  9. Athletes who all-too-obviously thank god when they win a game
  10. Doorbells that play music
  11. Anyone who tries to cure your hiccups
  12. Sarah Palin
  13. TV commercials that are twice as loud as the show you're watching
  14. Walking down stairs and thinking there's another step when there isn't one
  15. Being woken up by the sound of your own snoring
  16. Food with an unreadable expiration date
  17. Slow elevators
  18. Waiting for a long time at a red light when there's no other traffic in sight
  19. People in an audience who loudly say "Shhhhh!" when everyone is supposed to be quiet
  20. Clogging up the toilet in someone else's house

Bonus: Geek that I am, I can't help but mention my top five geeky annoyances:

  1. Software that asks whether you really want to exit
  2. Constant Adobe Flash and Adobe Reader updates
  3. Anyone who acts superior because of their choice of operating system
  4. Video games that make you start the level over when you die
  5. Auto-correct that turns a technical term into a cuss word

Would You Eat a Retarded Dog?

Just over a year ago, I became a vegetarian.  This was quite a shock to my friends and family, since they were accustomed to seeing me wolf down steaks, roast beef sandwiches, and more meat-laden pizzas than I care to admit.  To them, me choosing to become a vegetarian seemed as unlikely as Hugh Hefner choosing to become celibate.

The turning point for me was a conversation with my kids after school one day.  They’d learned about slavery in America, and were appalled that so many people let it happen.  They couldn’t believe that an entire country could be so cruel.  I told them that they were right, and that it’s difficult to understand how a nation could let something so horrific continue for so long.  But I also told them that it’s easy to look back in history and condemn those who allowed cruelty to exist – what’s hard is to see what cruelty happens today that we accept as normal.

The moment I said that, I immediately thought about how we treat animals.  Deep down I’ve always known – as we all do – that factory-farming requires horrible abuse to animals, but I never let the idea take hold because, well, meat just tastes so damn good.  It’s hard to feel sympathy for a cow when a juicy steak is staring at you.

If I had been talking to someone other than my kids, I would’ve ignored this unexpected concern for animals.  But talking with your own children demands a level of honesty that you can’t ignore, and I couldn’t let go of the fact that animal cruelty popped into my head when I thought about what we do today that future generations will condemn.

Over the next few days I researched how factory-farmed meat is produced, and what I found was enough to turn me off meat forever.  I’m not going to be one of those recently-converted vegetarians that tries to shock you with grotesque images of animal abuse, but I will say that there’s so much more to it than how we treat animals.  The reality of how 50 billion animals a year live and die before reaching our tables should make us worry about our own health, regardless of whether we value the lives of those creatures.

For the most part, I’ve kept my vegetarianism to myself (well, until now, anyway).  I don’t expect anyone to cater to my meatless ways when they invite me to a party, nor do I act holier-than-thou when friends eat meat in front of me.  It’s a personal choice for me, not a crusade (and after all, I’ve eaten enough meat in my lifetime to fill several farm yards).  But when close friends ask why I gave up meat, I’m happy to talk about it.  At some point I usually ask why they don’t eat dogs, and they usually respond that it’s because dogs are smarter than the animals they eat.  At which point I ask, "So does that mean you’d eat a retarded dog?," which unfortunately seems to stop the conversation.

PS: If beer and brownies are ever classified as meat, I’m screwed.

Thinking Out Loud: What Should I Learn Next?

Now that I'm an independent developer again, I've been giving a lot of thought to what I should learn next.  I still love Delphi for developing Windows desktop apps, but I've been doing that for (holy shit!) 15 years now and it's waayyy past time for me to update my skills.

I had been leaning towards iPhone development, and I even attended Macworld to get a feel for the development community.  But as wonderful as the iPhone developers I met were, I'm completely turned off by the way Apple handles their App Store.  Having a one-stop shopping source for the iPhone is great – I'd love to have something similar on Windows so customers wouldn't have to fill out their personal information every time they want to buy software online – but Apple's lack of respect for their developers killed any interest I have in iPhone or Mac development.

The obvious choice, then, is for me to drop desktop/single-device development completely and create web-based software.  Nothing for customers to install – they just browse to a URL to use my app.  The trick, of course, is to create a web app that people are willing to pay for.  I'm not one of those developers who wants to rely on VC financing to stay afloat while they figure out a business model, and I'm far from convinced that every web developer can earn a living from advertising (yes, I recognize the irony of me saying that).  Having a family to support sort of kills the willingness to create something and hope it somehow makes money down the road (I mean, have you seen the cost of health insurance these days?).

Strangely enough, I find myself leaning towards sticking with Windows development.  I say "strangely enough" because I have a love/hate relationship with Microsoft, and I cringe every time I see a Microsoft app favor geekiness over simplicity and usability.  But lately I've been impressed with what they're coming up with.  Their moves with Azure, Silverlight and .NET are impressive and show that they're not down for the count.  For the time being it may not be "cool" to develop for Windows, but if you care about being cool, then WTF are you doing being a geek in the first place?  I'm perfectly fine being anti-cool if it enables me to keep my family covered and develop software that tons of people use.

So…if you've read this far, then there's a good chance you're a developer and not just someone who uses my software.  If so, what would you do in my shoes?  What platform and development tool(s) would you focus on now?