The EPG works well and the interface isn't half bad, especially after the firmware update (which seem to come out pretty regularly, you can even download betas!). Just pick your show and hit record. I think that as people start buying more PVR units (which they will, because this is a quantum leap from analog TV + VHS in terms of ease of use and quality), there's going to be a major scandal about the incorrectness of program guides. That most commercial channels basically state the ending time of the previous show (+1 one min) as the starting time for the one you want so that your PVR would pick up on all the ads. So now you have 6 (~160 MB) minutes of crap taking space on your HD already before the show even starts. Luckily the 6200 has editing capability. :)
Oh, and I'm pretty sure that this is the DVB spec's fault, but why the heck does the box have to change the channel just to view that other channel's EPG? I've noticed this on every DVB-C unit I've used.
It plays well with Macs. I didn't even notice a
silly Windows-only software CD. Just use a USB cable
and the FAT32 volume will show up on your desktop.
There was a weird little snafu after the firmware
update when the machine just wouldn't mount anymore,
but after switching it completely off (from the power
switch) it started to work again.
The PVR results in .AVR files which seem to be yet
another type of MPEG2 wrapper. VLC will not play
them, but the good news is that MPEG Streamclip will. The bad
news is that you'll need the $20 MPEG2 QuickTime component
to open them, however I haven't researched this
very deeply yet so a free alternative might be
just around the corner. I'll report back if I find
one. Here's what the MPEGSC says the media
actually is:
Stream: Penn & Teller_#001_200704022300.AVR
Path: ~/Desktop/Penn & Teller_#001_200704022300.AVR
Type: MPEG transport stream
Duration: 0:29:55
Data Size: 755.40 MB
Readable: 753.39 MB
Bit Rate: 3.52 Mbps
Video Tracks:
516 MPEG-2, 704 × 576, 16:9, 25 fps, 5.00 Mbps, upper field first
Audio Tracks:
690 MP2 stereo, 48 kHz, 224 kbps
Stream Files:
Penn & Teller_#001_200704022300.AVR (755.43 MB)
It uses a 3,5" HD so it's not silent, but the noise isn't that bad at all. A lot quieter than a GameCube and maybe just a tad louder than a Mac mini. The 6200c costs 630.- EUR so it's not the cheapest device out there. I just wonder how much it would've cost for them to stick an Ethernet jack in the back and include an DiVX/XviD decoder. Then this thing would be pretty close to perfect. Now we still need an Apple TV - type device.
The scary bit about all this is ofcourse that now I watch a lot more TV. :) Which maybe isn't so bad since I at least get to choose what I want and there's actually pretty good stuff out there.
In a typical webapp project, creating a "build" means: a) cleaning up our configuration of any sensitive information b) removing any data that should not be included in the distribution c) archiving and compressing the build d) id each archive (typically using a timestamp) the build e) uploading the archive somewhere.
Looking back at my previous projects, I think that those steps are pretty universal. So what I want is actually a tool that would do all of those for us. Something non-interactive that we could could be run both on-demand or as part of some scheduling system.
And I'm convinced there are a lot of fancy solutions out there. SVN would probably work (with possibly a bit of hand-coding added), so would probably Ant and a gazillion other SCM systems. Or we could just code one ourselves with a little bit of BASH scripting. This solution is neither particularly elegant nor very easily reusable, but it has worked very well for my current project and handles all the steps I mentioned before. And it doubles very nicely as a little backup scheme.
archive=`date +%y%m%d-%H%M-collective`.tar
config='./collective-build/lib/collective.yaml'
echo -n " > Copying..."; rsync -a ./collective/* ./collective-build/ --exclude "data/*/*" && echo " [OK]" && \
echo -n " > Cleaning config..."
sed -e 's/username: [a-z]*/username: username/' -e 's/password: [a-zA-Z]*/password: password/' $config > config.tmp && \
mv config.tmp $config && echo " [OK]"
echo -n " > Creating archive ..."
tar -cf $archive ./collective-build/ && gzip -c $archive > $archive.gz && echo " [OK]"
echo -n " > Uploading $archive.gz..."
curl -u user:pass -T $archive.gz 'ftp://server.com/' && echo " [OK]"
echo -n " > Cleaning up..."
rm -r $archive $archive.gz ./collective-build && echo " [OK]"
exit 0
I chose that timestamp format because it gives me nice granularity, at a stage when fixes and maybe even new features might be added every hour, I can just run this at any time. And the nice thing about this also that it's very flexible, for example the DB schema might be very important in some other project and so you could just drop a mysqldump in there too.
You could always just reset the password with the help of the OS X install disc, but there's an easier way and one that will actually let you restore the old password. All you need to know is the owner's user name (actually you can do some more dscl digging to use their real name as well).
You start off by booting into Single User mode (Cmd-S) and then:
# mount -uw /; sh /etc/rc
# cd /var/db/shadow/hashes
# guid=`dscl . -read /Users/username GeneratedUID | awk '{print $2}'`
# cp $guid $guid.old
# passwd username
# reboot
You can now log in as that user with your new password. When you're done, just boot back into Single User mode and mv the .old hash file back in place. Just to make sure you test that the owner can log in when they get back. ;)
Anyways, since I (and probably any other Python user on OS X) had PyObjc installed, I decided to use Cocoa to do my sound playback. It turned out to be much easier than I anticipated:
import objc
from AppKit import NSSound
click = NSSound.alloc().initWithContentsOfFile_byReference_("click.wav", True)
click.play()
This is for a metronome app and is less than optimal because the wave file can't be played back fast enough (100 and 200 BPM sound the same), but it's a start! More info on using NSSound here.
This week is all about subtitles and translations. Is it just me or is this an area that has gone totally unnoticed by the media industry? I'm a firm believer in the power and increasing importance of online distribution, but as you'll see in the findings to come, this "tiny" issue has only been addressed by pirates! There are ~6000 languages in the world and English is one of them. Of course it's also the language that the media that most people want to buy, is also produced in. Not to mention the hearing impaired English natives.
The iTunes Store doesn't carry subtitles (the Podcasting XML extensions define a tag by that name for another purpose). Amazon's Unbox service is only available in the US store and at least none of the titles I clicked through were available outside the US and seemed to not have any subtitles. CinemaNow (among other stores) doesn't work on anything other than Internet Explorer (a whole subject in itself) to the extent that it's not even possible to obtain more information (such as available subs) about a title without IE. Grr...
Netflix, another US-only service carries subtitles, but that's ofcourse because it's a DVD rental. There are talks about Netflix starting a download service, we'll see how that pans out.
Trying to analyse the legitimate movie download business from this perspective is a surprisingly frustrating experience. Most of them are limited to the US and none of them provided sufficient information about a title, such as available subtitles. If anyone has any positive examples of such services, I'd be very interesting in hearing about them.
It really seems like the pirates have the definitive upper hand here. First of all, there's technology in place to support subs. SRT (SubRip) and SUB (VOBSub), two of the most popular subtitle formats have been around for years and stem both from (Windows-only) tools that rip DVD-s. But maybe even more importantly, they've created somesort of formats for people who want to translate movies themselves.
Translation is hard work. Especially with movies without a transcript. I have no idea how the procedure works exactly, but I would guess that the local movie distributors are in charge of commissioning a translation for the theatrical release which is then re-used for the DVD. It's probably not cheap but subtitles are a pretty important feature on a DVD and very few people would buy DVD-s without them (duh. Download services, hello?). I would also imagine that the subs are covered by the same kind of copyright as the movie with the rights belonging to the particular distributor.
Then there's the big number of really good films that might never be released in your home country, and therefore without an "official" translation. Donnie Darko never made it to theatres in Estonia nor to DVD and most Finns will never understand the philosophical commentary in Waking Life as just two examples. Most documentaries are like this, not to mention the thousands of classic titles that will never get translated by the distributors simply because it's not profitable. The fewer people speak your language, the bigger the chance that you'll never get a move translation. Luckily there are local communities that work hard on translating movies to their mother tongue, like divxfinland.org. More power to them!
The problem is this area is extremely fragmented and there are a ton of compatibility issues. First of all it's not always easy to find subs for your title. There are different communities working on subtitles and sometimes you can find diferent subs in the same language for the same movie and none of them might work with your copy of that title. DVD rips from different regions come in different frame rates which creates a whole bunch of problems. Releases are sometimes also of different lengths and so subs for a particular title will usually not work for a title of a different release. Video players also handle subtitles differently with just a few of them allowing you to tweak timing, usually with disastrous effects. I must admit the smoothest subtitle experience I've had was with BSPlayer, which is Windows-only. On top of it all, getting subtitles to work is definitely not something that every computer user is even capable of.
In other words, while we kinda have all the necessary components, this whole area is a mess and I think it's high time we do something about it. Here's a few suggestions:
1) Start using a unified file format. Preferably something structured and human-readable that would also have a metadata header that would at the very least, say which language this is (which neither SUB or SRT seems to have!) and what framerate and call it Universal Subtitle Format. Well, what do you know, there actually is one already! The only problem is, their website is down and I couldn't get to the specs even through Google cache. The styling I would personally leave out of the subtitle spec, but I could see how some would need it for highlights or whatever (since this is more of a general-purpose titling format). The default encoding should be Unicode and a strcutured format would allow us to extend it later.
In a perfect world, all subs for every language would be nicely distributed inside the media file itself, but I don't see this happening any time soon.
UPDATE: After taking a closer look at USF (from the info here) I get the feeling this is not what I want. The spec has been in draft v0.16 since 2002, it's overly complicated (although there's a mention of a plan to introduce different levels) and verbose (already thanks to XML). Player support is also vague to say the least. I tried reading the example USF file with VLC and nothing happened.
The format should be simple and use industry standard timecode format. The only problem I see with using YAML is that you would need a library to easily take advantage of it which are not yet available for every language. It also seems a bit of an overkill for a smiple task such as this (simple header + timecode/titles). Frame-based timecode seemed like a good idea at first (very easy to count) but it seems like you might run into sync issues if the media skips - how would the player know to re-sync the titles if the media skipped an unknown number of frames?
2) Create a universal online database to host the subtitles, preferably something with an XML-RPC backend so that video players and other clients could easily find and download subs for a title. Imagine if Wikipedia and all the translations would be scattered around the web on different domains, because that's exactly the situation we're in here atm. Think of this as CDDB for subtitles. Host the subs under somekind of accessible, globally recognized license. Add in some basic version control.
3) Make it as easy as possible to write and improve subtitles. There are a bunch subtitle editors out there, but none of the ones I've seen could be called user friendly. This situation might actually be better on Windows. Ideally, you could be watching a movie and make corrections on the fly by just pausing the film and editing the text in-place, or after wathing it by leaving markers at places you think could be improved. This editor could also be used as a separate subtitle player that would overlay the text using the title timecode over any video player. I know this should be possible on OS X but I'm not sure about other platforms. This player should also intelligently adjust frame rate and have some optional features to time shift titles. Make this editor work with the aforementioned database so that after you revision, you could just hit save and everyone else could take advantage of your work instantly.
This player/editor should also support importing subs from SRT and SUB formats and have a command for "burning" the titles into a media file (for standalone players).