Friday, October 31, 2008

Go Vote!

Go vote next Tuesday. Wait in line as long as you have to. If you don't vote, you can't complain about anything that happens, because you didn't speak up. It's the one really easy way that every year you can participate and make yourself heard. Go vote. It does matter. Spend some time this weekend reading about the candidates. Figure out who will do best for you, your friends, and your family. Then vote. Seriously. Apathy sucks.

Friday, October 24, 2008

Sports 'News'

Yesterday on the train, I hopped on the web thru my phone to check to see who won the World Series game. The front page of the sports section had a big picture about Brett Favre's alleged tipoff to the Lions about the Packers offense. No mention of the score of game one of the World Series! How is this news, I thought? Reasons this story is stupid:

1) I could give the Lion's a genie and unlimited wishes, and they would go 2-14
2) The Lions play Green Bay twice a year, have film of every game they have played, and scout them. How could they not ALREADY know their offense
3) It's the Lions - how can anything involving the Lions be front page news

The second biggest 'story' these days? Pac-Man Jones. Seriously? This guy gets paid millions a year to do what? Play football and not get arrested. He can't do one half of that. It's pathetic, but is it news? No. It's just not. As part of Obama's plan to increase scientific knowledge in our country, I propose the development of an 'irrelevance ray', that will immediately obsolete people like him who are just such gigantic idiots that they merit no coverage. They will simply disappear and nobody will wonder what happened.

Wednesday, October 22, 2008

I Suppose You Could Do It That Way

So if someone asked you to write a thing that showed three items in a list loaded from a database, on each page in the application, would you:

A) load the items from the database each time and display them using a simple php for loop?
B) do something a little more complex like loading the data once per session, or per key id, and storing it in the app scope
C) get really crazy and use memcached or something like that

or

D) create a nightly CRON job that loads all the possible permutations of data by key id, then write a monolithic XML file, then each time the page loads, read that XML file from disk, using XPath to track down the values to show in the page

Take a wild guess what I just refactored. Hint: it wasn't A, B, or C.

Monday, October 20, 2008

October

October is not really my favorite month. I used to love it - football in full swing, I was still playing fall baseball. The weather had cooled, and the leaves were changing. It's a pretty nice time of year around DC. Then, three years ago this month, my father passed away suddenly. My father was great - he was my best friend; he was just about the smartest, most curious person I have ever known. He was a jock, a nerd, a band-geek, a carpenter, a lawyer, and an Army veteran. He taught me how to think for myself, how to always want to become better, how to take care of people who you care about, and how to be stubborn in pursuit of things that are important to you.

He had a head full of useful and useless knowledge - I am pretty sure he knew the answer to the Jeopardy! questions before Alex Trebek read them, and I personally witnessed him going through at least ten shows where he knew EVERY ANSWER. Why he never went on the show is beyond me, but I would say (admitting my bias) that if he had, nobody would know about that guy from Utah who won all those days in a row.

He never stopped to impress me with all the obvious things, but the more I think about him and look back, the more I remember the little things.

I was driving down Rt. 7 at Bailey's Crossroads the other day and went by what is now a furniture store and DSW Shoe Warehouse. I am sure most Arlington natives will recall that before the days of Home Depot and Lowe's, on that site, we had Hechinger's. My dad spent most hours on the weekends either at Hechinger's buying stuff to build, or in the basement building it in his workroom. Obviously, this meant I spent about the same time in those two places as he did. I would wander around and watch him fill the cart with stuff that would eventually become part of our house, in awe that he even knew what most of the stuff was.

I remember every time we left Hechinger's, I would beg him to stop off in the Toys R Us across the street, and on the rare occasion when he agreed, I would find that AWESOME GI Joe or Transformer, and beg and beg for him to buy it for me, but he never would...but he always remembered what I had been raving about, and I don't think there was a Christmas morning when all those toys wouldn't end up under the tree, in packages signed by different Christmas figures like 'Santa Claus', 'Rudolph the Red-Nosed Reindeer', and numerous Elves, all in my father's distinct handwriting. It didn't matter that I knew they weren't from Santa. It was better that they were from my dad.

I can remember going to the congressional offices on Capitol Hill on Saturday mornings so my dad could talk to some congressman or staffer about some such thing he was working on at the time. I would run up and down the halls of the Longworth Building, doubtless not that amusing to all the folks trying to work, and just when I would get so bored that I couldn't stand it anymore, my dad would appear to take me downstairs to the Longworth cafeteria, where I swear they had THE BEST PANCAKES IN THE WHOLE WORLD. My dad would pick me up so I could see over the counter to order, and I would get a heaping plate of hot delicious food that I never finished, no matter how hard I tried. I am pretty sure it tasted so good because I was eating it with my dad. He would take me on the underground train that went from office to office, which NEVER got old. Then I would sometimes convince him that we should go see the Smithsonian museums AGAIN, and he humored me, looking at the same dinosaur bones and moon landers that we had looked at so many times.

I remember being allowed to stay up late, tuning into WJR760 to listen to Ernie Harwell regale us with the story of the magical 1984 Detroit Tigers. I remember asking my dad why they booed every time Sweet Lou Whitaker came to the plate, only to be reminded that they were saying "Looooooooooouuuuuuuu", just before he rapped a single to start another rally. I can remember living and dying with every Jack Morris strikeout, every double play turned by Lou and Alan Trammell, and every home run off the bat of Kirk Gibson. My dad tought me to love sports, to cherish competition, and how there were so many ways that sport was like life - practice makes perfect no matter what you are doing, sometimes equating math to batting practice. That October was a good one, with the Tigers mopping the floor with the Padres 4-1 in the World Series. We still listened on the radio even though the games were on television.

I remember being in college, moving into a new apartment, and talking to my dad, complaining that it was pretty hot because there was no air conditioning. I came home that weekend, and there was a window air conditioner that he had picked up at a garage sale for me that morning. I just sort of took it for granted at the time, but I realize now that the reason for that is because he had been doing that kind of stuff all along.

It's amazing all the stuff you take for granted. I talked to my dad sometimes 3-4 times a day. He was my best friend, like I said. When Michigan was actually playing well in the first half against Penn State this weekend, I picked up the phone and started dialing my father to express my surprise, like I had done so many times before. I stopped myself after dialing 703, like I have done so many times over the past three years. In the second half, when the tides turned, and Penn State was running away with the game, I started dialing again...

Saturday, October 18, 2008

When Failure Attacks! Startup Edition.

Those who know me would know that I was working on a startup with a few friends/ex-colleagues that I thought had some real promise. We had a couple developers and a couple product managers, and an interesting idea. Recently, the wheels have fallen off. It's been a couple years now, we have a fair amount of code written, we have incorporated, have a bank account, operating agreement, tax documents, computer equipment, a humble web presence, and a bunch of plans. I just wanted to talk about what went wrong and what I would have done differently, and what I WILL do differently when I try again, because I am definitely hooked.

What Went Wrong

1) No Idea Validation - An idea is great in the minds of those who had it. I will admit readily that this idea was not mine, but I still think it's a great idea. The problem is that nobody who was in a position to a) buy the software, b) invest in the company, or c) partner with the company was ever spoken to to find out if this was really a good idea. How far in to the game do you talk to people? Do you worry that those people are going to say "hmm, good idea" and then do it themselves or find a different partner? Do you have faith, draft your NDA and go forth into the fray? Do you trust that it's a good idea and wait until you have something demoable, then go full bore?

2) No Time - We had a large discrepancy between what needed to get done, and how much attention it required, and how much time people were willing to spend to accomplish it. This was a strictly after-hours proposition, and we all worked at challenging jobs, but we all knew that was the deal, and we just didn't make this business a high enough priority. Deadlines weren't met, and worse, they often weren't set. This is an "all-in" game that we were playing, and we weren't giving it "110 percent".

3) No Networking - There are tons of ways to meet people who know people who have ways of helping, investing, or at least validating your idea - there are huge, active communities full of people who live for this stuff, and we didn't harness that at all. Bad, bad, bad. This was totally correctable, and will be one of the first things I do when I come out of mourning.

4) Plans Too Grand - We didn't have good checkpoints. We didn't have a great way to get demoable software out piece by piece. We had a big huge roadmap that included the kitchen sink. It was too much. We were too late in trying to identify the critical path (also see failure #1). We were going to build it all, an entire enterprise software product, in our spare time? Two of us? Yeah right! Who were we kidding? We needed to prove the concept with a small subset of the eventual product so that we could get funded or find a partner. Hindsight...

5) Bad Technology Choices - I take the full blame here. I am a Java developer. It's what I have been doing since I started in this industry. It's what I am good at, what I know, and where I feel most comfortable. So we chose Struts/Hibernate/Tomcat. It's documented, it's established, it's a known quantity. It's also not the fastest way to get something done. If I started again, in 2006, I would have used Ruby on Rails or maybe even PHP. When I start again now, I will use Groovy and Grails. The productivity gains you get from these frameworks are simply too valuable to ignore, especially when you are strapped for time.

So, for these and other reasons, we failed. It sucks, but I will do better next time. Please feel free to comment with any sort of tips or experiences that you've had along the way in your entrepreneurial career.

Happy Saturday!

Well, since I got married (and for a while before, even), I have been the subject of numerous jests from friends about how domesticated I have become. I had to giggle at myself today when I had an entire day free to myself, and did the following:

1) Woke up, got dressed, practiced guitar for about an hour
2) Addressed about 40 thank-you cards
3) Installed two new light fixtures in our walk-in closets
4) Did four loads of laundry
5) Bought a new phone
6) Practiced programming
7) Caught up on my blog reading

Not that many years ago my Saturday would have gone like this:

1) Wake up (late)
2) Locate friends and beer
3) Drink beer with friends

I think that this is a good thing, but I can't say I don't miss the utter lack of responsibility that came with my youth...

The phone I got is the LG eNV. I am not sure if it would pass the 'cool gadget test', but I think it's a lot spiffier than my last phone (LG VX-something-something flip phone). It has a QWERTY keyboard, which is really handy when I am writing my 10-12 weekly text messages. The camera is pretty good, I must say. Most importantly, the speakerphone is excellent - the last phone was completely useless in that respect. I went to the Verizon Wireless store with every intention of buying a so-called 'smartphone', but when I thought about being tethered to the internet, it just seemed like a bad, bad idea. If someone wants me to have a Blackberry, then they are going to have to pay for it themselves.

(Rant alert)
All I could think of as I evaluated the smartphones is all the people that I see/know who sit at the lunch/dinner table half-listening to the people they are sitting with, scrolling through their email, glancing every three seconds to see if another message has arrived, looking down into their lap, as if looking at the phone below the table makes it any less rude. When we were kids, we weren't allowed to talk on the phone at the dinner table, under any circumstances, and it is now one of my most gigantic pet peeves. I don't want to be that guy. Ever. If someone really needs my opinion on something while I am eating lunch or while I am out for a walk, they can call me, and leave a message. Or call twice so I know it's actually important. The fact is, 95% of these people and the messages they are ingesting like crack are not that important. The things can wait - they could wait before RIM incorporated, and they can wait now. Anyone who thinks that that email is that urgent is a bit full of themselves, unless they are working in a position where an immediate response is necessary (ie you run a production server that crashed, or you are a policeman, or something to that effect). I am okay with being unimportant enough not to need my phone attached to a POP3 server, for now anyway.

Sorry that was quite a rant, but today's phone store visit brought it to the surface. More later on failure, and picking yourself back up again.

Wednesday, October 15, 2008

What's Awesome? Fuser.

So I was poking around in the blogosphere and I saw something about Fuser and its latest release. It's a browser app that aggregates all your mail and your myspace and/or facebook account into one webpage, with tabbed view like Yahoo mail.


I need something like this, because I use 5 different computers when you count the dual-boot laptop. All my stuff is scattered in different sent mail folders in Live Mail on Vista, Evolution on Ubuntu, and Thunderbird on my Mac at work. I would rather it be in one place, and with Fuser I get that. It's got a pretty good UI, and seems to work relatively quickly. Setting up your accounts (I have hotmail, yahoo mail, gmail, and an IMAP mail account) is quick and painless, and the initial sync really isn't too painful.

All the basic features are there, except for one thing: Search. (Edit - Emily from Fuser has enlightened me - it's tucked away in the top right, and isn't that peppy, but certainly better than nothing!)

I did have a problem using this site on Firefox 3.0.3 on Mac Leopard, but it turns out it was just something weird with the latest Java update. I found a great post, describing my symptoms, and once I followed the instructions, the site seemed to work again there.

The only thing that would be really great would be to make this site work in Fluid for the Mac, but currently the browser certification doesn't allow to load this page in Fluid. I plan to try tonight in Prism to see if that works instead.