Saturday, February 27, 2010

WTF copy protection?!

Today, I tried to rip a copy of the 2009 Star Trek DVD so I could watch it using the projector connected to my PC. I don't have a DVD player at home since, hey, I can play movies with my computer just fine! Or so I thought. Apparently, the disc is encumbered with some new copy protection scheme and instead of the movie, all I got was an IO error.
Seriously, WTF?! I can't believe movie companies are actually putting time and money in developing new and insidious ways of intentionally breaking their own products. And for what? Certainly not to stop piracy. Had I just downloaded an illegal copy I'd be watching the movie right now.
I've been itching to buy a blu ray player since the prices have come down to something reasonable now, but experiences like this really dampen that enthusiasm. What's the point in buying movies if you're just going to get treated as a criminal anyway? Might as well get the pirate version with all the "don't copy this movie" warnings and copy protection removed. Especially since backing up (or just watching, if you're using Linux) your own discs requires breaking the copy protection which is illegal too.

Thursday, February 18, 2010

Remote control

Problem: Can't pause/fast forward/rewind video or music while sitting on the couch.
Solution: An IR receiver. Luckily it just so happens, I have an old IRMan lying around (basically a commercial version of [UIR](, albeit long discontinued).
Next problem: The computer is behind the couch, at the other end of the room.
Solution: [Universal IR Receiver Daemon]( This neat little utility supports the UIR protocol and can send the IR codes over a network as UDP packets. Neat! Now I can connect the IRMan to my conveniently located home server which relays the button codes to my desktop PC.
Next problem: No receiver daemon!
Solution: A simple python script listens for incoming UDP packets, checks if the code matches an action defined in a configuration file, then executes that action. Currently amarok and mplayer are supported. Get the script at the [software odds & ends]( page.
Final problem: UIRD doesn't want to connect to my IRMan. Solution: Apparently a delay in the initialization routine was too short. Changing "usleep( 1000);" to "usleep( 10000)" in init_irmodule.c seemed to fix the it.