A couple of days ago, a friend and I were lamenting my lack of a proper television in my house. (Seeing as I have 3 laptops and a pretty large LCD monitor, it seemed like a redundant appliance you know?) The more I thought about it though, the more I came to realize that having a TV around was useful just to have something else going on while you’re working. Obviously, when you’re building up momentum you don’t want to be bothered by anything, but for everyday stuff, it’s usually a good idea to have something to look at every now and again just to let your mind breathe.
I wasn’t of course, about to buy a television to fill this need. I don’t have the space and didn’t really want to add a cable tv bill on top of everything else I have to pay for every month. So, I built a web app instead.
Infinitube is probably the simplest thing I’ve ever thrown together; all it is is a front-end for the YouTube-G Ruby Gem, coupled with Youtube’s own . I’m running a really barebones Rails application on PostgreSQL, with all of 2 plugins. Took about 8 hours or so from my first wireframe on Illustrator to the final production deploy. (It would have been even quicker if I didn’t have to clean out one of our old servers first so I’d actually have something to put this app on.) I briefly considered putting it on AppSpace, but for something that’s almost 100% personal use, I figured that $30/month was a bit much.
Still trying to figure out a couple of things, e.g.:
1) No fullscreen mode yet, which really sucks. You could arguably circumvent this just by using the operating-system zoom on Mac OS X, but you never know when I might need to use the site on a Windows machine. And the fact that I don’t know how to do this yet annoys/challenges me. (Mostly annoys.)
2) Eventually, I’ll need to add user-registration so we can attach some auto-complete functionality to the query field. That way, your previous keywords show up as you type. (At the moment, keywords are tied to session data, which is a bit fragile, but at least it keeps me from getting my search terms mixed up with anyone else’s.)
3) I actually lied about the *non-stop* part in “Non-stop Youtube broadcasts.” You’re only ever going to get about 50 videos in one run, unfortunately. (I figure I might as well come out and say that now, before anybody starts complaining.) Because I’m using YouTube-G instead of the full YouTube Ruby wrapper, I lost some flexibility here, in exchange for a big boost in productivity (YTG doesn’t require a developer key and has a one-page README, for instance). I’ll probably shift to the older brother in the near future, but for now, I’ve already getting quite a bit of functionality out of the younger gem.
4) Keyboard shortcuts would be nice, as it’s a little more convenient than clicking the actual buttons. This one should be really easy to do, although I have to figure out how to isolate the keystrokes from the query field. It’d be super cool to have the number keys mapped to the 10 most recent keywords a user entered; almost like channel-surfing! Super cool!
Anyway, so yeah. So it’s totally possible to build a halfway-decent, almost bug-free web application in about a full work-day’s time. (Of course, it probably helps if the whole thing is under 800 lines of code, but you know what I mean.)