Seeing as how people use their computers to accomplish so many different tasks, it’s sometimes really frustrating when things don’t work quite how you want them to work. Most people have to sit by and search the Internet vainly for something that matches their world view. Others, like myself, can write code to make things work correctly.
For example, just recently I found this program called qliner hotkeys. It’s a great program that essentially puts an intuitive GUI over your customizable Windows hotkeys. So now I have hotkeys for Visual Studio, Outlook, IM, Firefox, Command Prompt, etc. Frankly, I should have had all those things before, but this program made me sit up and pay attention because it makes the process of setting up the keys fun and it looks good while doing it.
The problem with these hotkeys is that their concept of how the world works doesn’t match my concept of how it should work. If I bring up, say, Outlook, with a hotkey, that’s great. But then what if I hit the hotkey again? I think it should pop Outlook down and out of my way. But that’s not what it does, it just pops up Outlook again.
Well, finally I just decided to fix the problem myself. I pointed the hotkey at a program which I took a few minutes to write which launches the program if it’s not running, restores it if it is running and minimized or hiding, and hides it if it’s visible. I call it OutlookBounce. Then I wrote similar apps for the other applications I wanted to bounce. Voila…a bunch of apps I can now toggle up and down on my desktop with their assigned hotkey.
I don’t claim this to be a difficult task at all. But most people can’t do what I just did. It’s somewhat liberating to know that I have a very fundamental level of control over such an important and versatile tool.
Of course, there’s now another level to this, which is that part of the frustration I encounter now is that I can pretty much write anything given enough time. And there are about a zillion things I could improve or create, but certainly not a zillion hours. So I have to pick small, defined areas to work in.
Just as an example…I’ve been alternately excited and annoyed by the various IM/Voice Chat programs out there. All my contacts are on Windows Messenger/MSN Messenger. But that program’s ability to work around firewalls stinks. So voice chat doesn’t work well, and file transfers don’t either. Plus MSN Messenger’s UI sucks big time.
On the other hand, Skype and Google Talk do voice chat extremely well. But they have separate contact lists. And Google Talk doesn’t have PC to Phone calling (yet) or some basic IM functionality like file transfers. What to do, what to do?
For example, I’m pretty sure I could merge libjingle with MSN Messenger via MSN’s API’s, no problem. I know networking. I know protocols. I know voice codecs and I know forward error correction. But what would be the point? I’d have to make all of my contacts install this, which wouldn’t happen.
I could try setting up my own Jabber server and make sure federating Google Talk with MSN works personally. But then I’d have to worry about maintaining this full time through protocol changes, version upgrades, and other weirdness.
There’s no clear answer here. The best solution would be Google Talk to interoperate seamlessly for MSN Messenger or for MSN Messenger to debloat their IM client and make their voice chat actually work. I have no doubt that I could write a better IM client than any of these options, given some time, but what would be the point with all these folks in different camps?
I suspect that question “What’s the point?” might not go over well in
an interview, but when it comes to deciding where you focus yourself,
it matters a lot. You are going to have to say “What’s the point?” to
a lot of things, just so you can figure out what those few things are
that have a point.
So a lot of times, you have to pick and choose your battles. You can’t make everything better, even though you’re capable of solving the problem, given enough time. You settle for good enough in some areas while you set your mind to the task you’ve really chosen to accomplish.
In essence, I suppose that’s the genesis of a product like Beyond TV. I can create a lot of things…I’m fully aware of that. But you can’t spread yourself too thin. Beyond TV is the product where I chose to focus myself to make a real difference. That’s the point.