Friday, November 21, 2008

Information Overload, or Why Technology Doesn't Necessarily Increase Productivity

So I am sitting here trying to program. I have a lot to do. I am disrupted by:

Adium, connected to three different Instant Messaging Services
Campfire, connecting my decentralized team via chat
Thunderbird, email, duh
Colloquy, in irc chatting with ex-colleagues/good friends
Tweetdeck - following all this Twitter nonsense
Google Reader - Created as a Fluid app on my mac, to keep up on blog subscriptions

All of these wonderful things are 'technology's fault', and while so much of this stuff makes our job easier, and while they can definitely make us more productive, there is definitely a counterbalancing effect.

Also interesting is the personal tipping points that occur in the Facebookosphere, where disparate groups of friends seem to 'tip' at different times. Now for me, it's the high school alumni. Strange how it spreads so quickly. I wonder what happens when you run out of groups? It seems that life and new friendships can't possibly keep pace with Facebook. So interesting.

Thursday, November 20, 2008

PandaStream, or Why The Internets Are So Cool

Tonight, as if I didn't do enough nerdy stuff during the day at my job, I decided I was going to try out PandaStream. As I noted, we had a bit of trouble with our video provider, and my colleague Bob, had stumbled across this open source video package. We can own the entire process, without having to requisition the machinery to support video upload, encoding, and content serving. This is a good thing, as long as it works. Well, I can say it works. Before I go on to describe how it all comes together, let me just describe the surreal realizations I came to...

I am sitting on my couch, wirelessly connected to the internet, creating an application instance in the cloud on Amazon EC2, then deploying a git project to the server running Ruby/Merb, configured to interface with Amazon S3 and Amazon SimpleDB. In 2 hrs, on my couch, I am able to set all this up, using the great set of instructions here. 5 years ago, wireless internet was just getting solid. 5 years ago, I am pretty sure that if Merb had actually been invented, that very few people outside of its creator knew what the hell it was, and Ruby was still a pretty obscure scripting language invented by a Japanese guy. Amazon's web service offerings in cloud computing were but a twinkle in Werner Vogels' eye. Open source applications were gaining steam, but certainly not as trusted or ubiquitous as they are today. I think that this is all pretty remarkable, and it's a testament to many creative and brilliant folks that I am able to sit around on my couch and do these amazing things and have them feel pretty routine. Thanks, smart and creative people. Us mere mortals are in your debt.

So anyway, I had an EC2 account already setup, and bringing S3 and SimpleDB online were a snap (once I realized I needed SimpleDB). Getting the security certs and stuff took about 5 minutes to resolve, thanks to Amazon's great AWS Documentation. I kicked off the panda instance without issue, hopped into the instance via ssh, and jumped into the merb console. This didn't go smoothly as I was presented with a security error that just said I couldn't be authenticated using my credentials. To test my credentials, I grabbed a java library for AWS. I used this library to test my creds with S3, and it worked. Only then did I go and look closer at the error and realize it was related to simpleDB, which I didn't have an account for. Creating that made it work much better. Once I was able to hop into the merb console, there were about 10 commands to run to set up, add security, and configure some default video encoding. This took maybe 5 minutes. From there, I logged into the instance and uploaded a video. Then I took some embed code and stuck it in a test html file. It just worked.

Anyone with any experience with pandastream, we are really curious to see if this is production tested, or if anyone knows anything about it that would make us NOT want to use it.

Next episode, integration via REST APIs. Stay tuned.

RCN Redux

Well after all my rants, I would think that I should share the conclusion of my epic cable saga. I went to the office to grab a DVR cable box, conceding defeat. If it weren't college basketball season, my reaction might have been different, although I must admit RCN internet is great and I only pay $40 for biz-class internet with a static IP, so it's kinda hard to give up. Anyway, now that I am done with my grudging compliments for RCN, the story.

The lady was actually pretty nice, and quick, and I drove home with my cable box, figuring it wouldn't take that long. Starting at 5:15, I should have this thing up and running by 6pm so I can tape the Syracuse-Richmond game for Jena, right?

Wrong.

I follow the instructions, then call the 'automated activation line', where I am told that an activation signal has been sent successfully! Yay. Now they say "wait an hour", like it's a laxative or something. How can this take an hour? After about 40 minutes of zero activity, I call back (now 5 min til gametime), and they tell me because it hasn't been an hour, I have to call back. Of course.

I go to pick Jena up and return to find that still nothing has happened. I call back and get a live person who now agrees to send a "manual activation signal", which of course works. But I find that the actual digital cable features won't load for 2 hours. I have no idea what happened, but it used to be that you plug in your cable box and it just worked, digital, DVR, or basic analog. Why is this so hard?

Anyway, now I have digital cable, with a slow cable box, an ugly guide, and DVR with a smaller hard drive, for $15 more a month. Whoopee. I hate you RCN.

Tuesday, November 18, 2008

Be The Pest!

Everybody needs 'the Pest'. You know who they are - that person who asks the important questions, even if they are unpopular. Strive to be the Pest sometimes. Encourage others to be Pests too. Be the voice of reason, and demand explanations. Delivering cogent explanations makes everyone better at what they are doing. If you can't explain it well, then you can't do it well. I wish I could have had more pain-in-the-ass Pests in all my previous jobs. They make you better, even if you don't really like them/want to give them credit.

Monday, November 17, 2008

Update On How Much RCN Sucks

Well I called RCN, and got right through to a person (who, of course, doesn't know anything).

Allow me to summarize the interaction:

ME: "My cable is out and has been since Thursday"
RCN: "Oh, that's because I see you don't have a cable box"
ME: "But I got notice saying that was happening in October and didn't say I needed a box"
RCN: "No it happened on the 13th, and you need a cable box"
ME: "OK, I just talked to someone last weekend from RCN, and they said I didn't need a cable box, which is why I didn't get one."
RCN: "How many TVs do you have?"
ME: "Two."
RCN: "OK, my calculations are that you need two cable boxes."
ME: "OK, we've established that I need cable boxes. I have a media center PC. Will this still work?"
RCN: "No, you need cable boxes"
ME: "I understand that I need a cable box. Can I just run the signal through the box to my PC, and use the PC as a DVR still?"
RCN: "You need a cable box"
ME: "I know I need a f$%^#$ng cable box. Do you have any documentation that you can send me about using a cable box with a media center PC?"
RCN: "I don't understand what you are asking me"
ME: "Of course you don't - you are just technical support. I need documentation about using a cable box with a media center PC."
RCN: "I have my notes right here. They say that you need two cable boxes."
ME: Click

Now that was infuriating enough. But then I checked the webs to see what I could do to supplement the stupidity that I experienced on the phone. Here's what I found:
The switch from analog to digital affects only over-the-air reception of TV. Unless you have a cable carrier that is taking advantage of the situation to screw its customers, and although there are a few of those Comcast is not one of them, the transition to digital in February will have absolutely zero effect on cable subscribers. Your current setup will work as fine after February as it does now, and you don't need to buy or change anything.
Wow - it just so happens that RCN is one of those carriers - they have encrypted all their stations, so you need a box - now you can't use the media center that you built, because only OEM computers are allowed to be built with cableCARD-compatible interfaces. How about that!?!? So now I am stuck with a media center PC that is unusable. Thanks RCN. You bastards. You just overtook Verizon, #1 with a bullet on the list of EVIL COMPANIES. I hate you.

The Importance of 'The Why'

Why are you doing what you are doing?

Why would someone need this?

What's the goal?

These questions are way more important than "What", or "How". Those are easy in most cases. Why is a much more important question. Why are we doing this? Does it solve some problem that people are seeking a solution to?

Note - "because it looks cool", or "because I think this would be better" aren't good enough.

When you are building something, it's your responsibility to answer "Why" way before you start doing the what. Sometimes the why is simple:

"We are building a house. Why? Because someone needs a place to live."

Other times it's not so simple. That doesn't mean you shouldn't talk about it.

Weekend Update

Well, it's Monday again. As Washington mourns another dull Redskins loss, featuring lots of really bad offensive line play, we dive headlong into new week, fresh with promise.

There are a few things I'd like to get off my chest before starting the week.

First: RCN sucks. We live in a complex that has only RCN wiring run in, so we can't switch to Comcast, and our lovely condo board won't allow DirecTV. Isn't it great how the draconian fools have rendered the benefits of cable competition moot? Usually this wouldn't be a huge deal, but since our cable has been out for four days now, it's kind of annoying. As if it would be reassuring for them to say it, calling the help line tells me that, "Hey it's okay - we know that DC cable is out. We are working on it." My internet works, so it's not an issue with the wiring. What the hell could take four days. Tonight Jena wants to watch the Bills, tomorrow Syracuse is on ESPN in their season debut, and Thursday, Michigan plays UCLA - none of it is on broadcast television. I need cable this week, you a**@#%$s. The response to my email for support:

Thank you for contacting RCN. A member of our support staff will initiate contact within 48 hours.

Thank you,
Customer Support Staff
I suppose that isn't that ridiculous considering the phone wait times hover around 26 hours. Damn you, RCN. Damn you.

Second: I hope something happens quickly with the American car maker bailout. After the election ended, I was looking forward to a more balanced news array on NPR, but GM has rapidly taken the spot of Obama, and Ford has replaced McCain as the new Morning Edition Monopolizers.

I am of the opinion that something needs to happen, but it simply can't involve giving the companies some money so they can just keep on paying it to 'skilled' workers who collect exorbitant wages for doing things that peers in other industries and areas who aren't unionized do (just as wellm if not better) for much less. This is the one good chance for these companies to break down, swallow their pride, and buck the union influence that is sapping their profits, and causing their costs to be simply unsustainable. My argument to any union supporters: Would you rather have lower paying jobs or no jobs? That's what's facing you here - accept reality and think constructively.

Thursday, November 13, 2008

Help Wanted.

I am looking for some good fiction books. Anyone actually read this blog and have a good one to suggest? I have been all history, true stories, business, general non-fiction lately, and need a lighter read. Drop a comment if you have any suggestions.

Wednesday, November 12, 2008

'Third Party Dependencies', or 'Have an Backup Plan'

The interconnectedness of the web is a fantastic thing. There are tons of libraries, expertise, content sources, services, etc out there that make it possible for companies to focus on their core competency. If you are a social networking site, do you really want to build a video player, for example? Maybe, but only if that video player is part of the strategy that is your core competency, or that gives you some sort of competitive advantage. If Previously, you would have to serve your own photos, but maybe now you can use a service like Photobucket, or Flickr. Let the photo storage be their problem - let them handle the disk space requirements and the server load of serving endless quantities of images, right? Right?

Well the answer in my view is maybe. Let's face it. Sites like photobucket aren't going anywhere, but their terms of service might. What they are allowed to do with your content might change, and the conditions of your agreement just might become unfavorable, and there is nothing you can do about it, because now you have given all your content to them, and you don't really have any of it. This could be a bad thing, right? Especially if you aren't able to at least get a copy of it back from them without going through some manual pain.

Many companies simply won't make it. You probably don't want to dive into partnerships or use services like this from companies that you aren't sure are established, because chances are, you will have to start over sometime, and it will probably be really inconvenient. Then your stuff might just be gone, stuck on a server somewhere that gets sold at auction. Prognosis: NOT SWEET.

My suggestions on picking a partner (based on some recent experience) would be this:

1) Find a partner who can solve the business need, first of all.
2) Find a partner that isn't going anywhere (requires crystal ball in some cases)
3) Find a partner that will let you get your 'stuff' back

Once you have chosen a partner, come up with a backup strategy. You are sending content to them, but can you periodically backup this content to a disk that you own and control? At least this way you have the files if something goes wrong, and you can then bulk load them into another tool if need be. Then you are limited to the code changes you have to make to do the API communication, and this should be relatively limited. Rarely do people get things like this right on the first try, and frequently they are lucky, because they never figure that out - sometimes you just try something and it happens to work, but many times it doesn't. If it doesn't, remember the 'fool me once, fool me twice' adage.

Tuesday, November 11, 2008

So...Is It a Good Time to Start a Business, Or Not?

Coasting through the blogosphere, you can find a lot of opinions from venture capitalists, developers, entrepreneurs, and columnists about whether or not this is a good time to start a business.

Some reading I've been doing:

Yes

Do it...now
Don't Panic, Profit
OK, Entrepreneur
Seize the Day
It's A Good Time To Start a Business
Is It a Good Time? Yes!

Maybe-So

Angel Investor Ron Conway

No

...

I looked for about half an hour, which I am sure is not a thorough scan, but I couldn't really find anyone telling me I should not start a business right now.

This is good news to me.

I think that the overwhelming sentiment is that it is a fine time to build a business, but a really bad time to raise capital. Credit crunch and all. And it's a bad time to have a business plan that doesn't project any sort of cashflow for a while. These are probably good things. Slowdowns in the economy are often title as 'corrections'. Stock prices get 'corrected' which is a nice word for common sense-based pricing of assets based on legitimate valuations and bringing PE ratios back in line with reality. Basically, if Google is really only worth $350 a share, but is trading at $450, a correction will see it trading at $350 when it's through. Similarly, corrections weed out companies that have no business existing. If you have an idea that is 'sexy web 2.0' but can't tell someone with a straight face how you are going to deposit checks in the bank, or at least generate something that you can monetize (i.e. user data), then you aren't getting any help. During 'bubbles', this might not be the case.

There are the obvious things that you can do in this economy - build things to help people save money/time. Categories I can think of:

1) job seeker resources
2) ideas to make shin
3) crowdsourcing facilitation - help businesses harness the collective intelligence to improve your situation
4) job retraining
5) price-finder type things
6) college-related stuff (lots of people go back to school in a downturn)

There are always opportunities for good ideas developed by hard workers who have strong networks, and obviously, not all ideas require funding at first - some never do. The key is not to have an idea that will get you cash-flow positive in the first week, but to have an idea that is well thought out and planned so that you have a way to get cash at some point. I think that the idea I am working on now definitely falls under that category, so I am feeling decent about things as of now.

I can't honestly imagine what people did before the Internet. The enabling technologies like blogs, social networking sites, and remote work tools have made everyone powerful. We are all starting about 7 notches higher than you would even fifteen years ago. You just have to act now. Before you had to act, but first you had to build your network in person, gather data in person, and work with each other in person. Now you can work with anyone anywhere, using knowledge you have gathered from folks all over the world, using your web of contacts that you have built both in person and electronically through the years. Wow - it's definitely a good time to start a business.

Monday, November 10, 2008

Updates! Books! Travel!

So, here's the latest:

Things I Am Reading:

Just finished up April, 1865, by Jay Winik. I am pretty sure there is no upper bound to the amount of books I can read about the Civil War or Abraham Lincoln's presidency. It seems that each book touches on something new, or captures something slightly different from other book. This book was certainly more focused on Southern leaders like Jefferson Davis and Robert E. Lee. As someone who grew up in Northern Virginia, driving on Jefferson Davis Hwy, playing against RE Lee and Jeb Stuart high schools, or the Rebels of Fairfax, then going to James Madison, where it would seem that everything was named after a confederate cavalry leader, it was interesting to finally get some of the backstories. Winik is a great writer who mixes just enough military strategy with the right amount of human interest to keep the story moving along at quite a nice clip.

I am almost done with Into The Wild, by Jon Krakauer. It's the basis of the recent movie of the same name. This kid graduates college, goes off the grid, travels to Alaska on an extreme nature soul-searching trip that would frighten any Eagle scout, and eventually dies because he wasn't well-prepared enough. By all accounts, this wasn't some knuckehead or aimless drifter, but someone who really went out of his way to seek his identity. I find this book pretty interesting - not just because I grew up in the same area as the main character, or because his travels were so interesting, and not because it's sad that he died. It's the just audacity of dropping out of society. I could never imagine it. First off, I am no Davy Crockett, so I'd last roughly 15 min in the wilds of Alaska. Second of all, there are just so many people in my life who I couldn't just leave. I think about moving and even the thought of leaving the area is somewhat distressing to me, much less just disappearing from everyone's life wholesale. What he did is impressive, but not admirable, because I can't really call living such an empty life that you can leave it an admirable trait. Either way, it's an interesting read, and Krakauer is just an enjoyable author.

Recently I started The Stuff of Thought, by Steven Pinker. This is an interesting book so far - all about language semantics. It's fascinating when you think about language. There are people out there who are COMPLETE idiots by any standard - people who you meet and think to yourself "wow, that guy is lucky he knows how to get out of bed and get dressed in the morning", but that person has likely achieved a level of mastery of the English language. When you read a sentence and realize that based on context, there can be as many as four meanings, it becomes pretty amazing that the human mind can wrap itself around language. So much nuance is captured in language, making it all the more fascinating that otherwise simple folks can speak it without too much trouble. The other reason I like this book is that there is an entire chapter on verbs. I think that's fascinating. My mom cites thinking like this as evidence that I am becoming more and more like my dad every day. I take that as a compliment.

In the queue:

Alive
The Professor and the Madman

Man I wish there was a way to just read professionally. Not critically, like an editor, but just to read and soak in knowledge and to live the stories. That would be a good job...not that writing software isn't fantastic and all =)

Places I am Going

It looks like we are officially heading to Indiana for Christmas. It's good because my grandparents love seeing family, and have actually been alone for a couple recent holidays. Also good because theoretically we'll finally have our wedding photos by then. They'll also get to see Jena, which is good, since the last couple trips out there, she couldn't make it, which really disappoints them. A LOT. My grandparents have caught the contagious disease that has been spreading through everyone in my life ever since Jena and I met - I call it "IlikeJenabetterthanKirkeventhoughIknewhimfirst-itis". Sigh.

In February we go to Aruba, which is awesome, especially since we have long since paid for both airline tickets and lodging. Seemingly free vacations are very good things, especially to places with awesome beaches and casinos. Yep.

Oh, and we just put in our ticket requests for the Vancouver 2010 Winter Olympics. We find out in December what tickets we get - it would be an AWESOME trip, so fingers are crossed...

Things that are Awesome

1) The battery on my new phone. It lasts for days. My old phone never really did that. And for the last year or so, it was more like hours. It was the 'plugin-hybrid' of cellphones.
2) Michigan's 29-6 victory over Minnesota this weekend - with a walk-on backup QB who had otherwise been terrible, and a bunch of underclassmen on offense, they put up 445 yards, while their beleaguered defense managed to hold the Gophers to 188 yards and two field goals, after getting freaking torched for the past few games...good times.
3) Married Life - people keep asking me "how's married life", and I can always answer without pause "awesome". That's a good thing.
4) Seasons. The trees are beautiful, and I love the smell of Fall.

Things that are less than Awesome

1) Antiquated offices with not-so-nimble heat/ac systems that can't keep up with rapidly changing DC-autumn weather. It was roughly 724 degrees in my office Friday.
2) Darkness at 4:45 PM. Bleh.

Friday, November 7, 2008

Starting Over...

So like I mentioned, I have been involved in trying to start my own business.

I am ready to get back in the game. Round one was a definite loss, but not a knockout. Let's get started again, but this time, let's do it right. I am a developer. This time I am going to be working with one person, also a developer. Developers are good at tech startups, because they know how to build things. They are also bad at tech startups because all they want to do is build things. I have a degree in business, so I would like to claim that I transcend this problem, but I don't. I am a way better carpenter than I am an architect. When presented with a plan, I can execute. That's not good enough for what I am trying to do.

Now it's time to learn how to be the architect, and not just the architect of a software program. An architect of a business, start to finish. In my last venture, I made the mistake of not being involved enough in the early-stage business decisions. That's my fault. I didn't really take part in the research of competitors, in the development of our core premise. I didn't really do my due diligence in figuring out WHO were going to sell to, HOW we were going to get in those ears, WHAT problems we were going to concentrate on solving, WHEN we were going to deliver real demonstrable milestones. You can build the coolest crap in the world, and if you can't sell it, it's worth nothing. It's a bunch of 0s and 1s on a disk somewhere.

I am tired of creating 0s and 1s without a home.

Tuesday, November 4, 2008

Never In My Life Has It Felt So Good To Vote

Ahh, got to the polling place about 6:50, waiting about an hour, but not bad. Everyone was excited, cars driving by honking, a good atmosphere. I got in finally, and there it was (thanks to dcist for the photo) -

Barack Obama/Joe Biden - Democratic

I haven't really felt GOOD about voting for someone for a while. I like Mayor Fenty, but I moved into DC just after the election. This time I wish I was back in Virginia so my vote could be a little more helpful, but it still felt good to vote for Barack Obama. I hope that he turns out to be half as good as a president as he can be. At least things will be different now. Sometimes different is better no matter what different turns out to be, and this seems to me to be one of those times.

So let's cross our fingers and hope that change really does come by the end of the night tonight, and that tomorrow we have a better life to look forward to!

Monday, November 3, 2008

Reasons Why Developer Life at a Startup Is Good

I work at a small company as part of a three-man development team. Some days I marvel at the amount of opportunities this provides, and I thought I'd talk about a few of them, and why they are awesome:

1) You own a big part of your work.


You are often as much as 50% of the development staff. You have broad freedom to implement whatever you see fit. If you identify a problem and you have a solution in your mind, pitch it, and if you have time, you can do it.

There isn't someone looking over your shoulder who will swoop in and fix whatever you messed up. Some people might see this as a bad thing, and I suppose it can be, but it's also really really good. If you write something and toss it into production, it's your time that will be spent rushing to fix it after someone hits the problem and submits their bug report. This makes you more careful, and makes you think about end users while developing, something that's often lost when you are in a bigger shop, abstracted away from the users by five layers of organization.

2) You can really get broad experience in a short amount of time

Just this last couple of weeks, I did the following:

1) Scoped and scheduled a project
2) Set up a LAMP server for a PHP project
3) Did work on the PHP stuff
4) Did work on some Java stuff
5) Evaluated jQuery plugins for a new UI component

At most jobs, you do a whole lot of the same thing over and over again, as you can take advantage of the economies of scale provided by larger staff. While division of labor is a Good Thing, it's not that great for someone who wants to grow their skill set and solve new and interesting problems as part of their everyday work life.

3) You shouldn't work with much dead weight

As I mentioned above, when you work at a startup, often you are more than 10% of the team, maybe even more. Now, while it means that your contributions are crucial, it also obviously means that a lack of contribution is also critical. It's a case of the "chain being as strong as its weakest link". If everyone is doing their job on the dev team, but nobody is marketing, or the marketing and sales teams are incredible, but the developers can't realize the vision, then you are going to fail. It's high pressure, high reward, and usually this means poor performers will either quit or be removed if they are not pulling their weight. This is a significant difference between startup life and big-company jobs.

4) Your opinon counts

If you feel strongly about something, you have the ear of people in charge. You were hired to do this. You weren't hired to be a rank-and-file programmer. That isn't good enough. Learn about the domain you are working in, learn about how the business works, make suggestions. Come up with new things and new ways to do things. You can directly impact the way the company runs, and how it's products work or are positioned. This empowerment shouldn't be squandered.

Now there are a few bad things about working at startups, but not really as many as there are when working in a bigger company, and for someone who relishes challenges and learning, I strongly suggest that you try it out someday.