A few days ago, DamnVid 1.5 was released, quite a milestone indeed. It was originally going to be DamnVid 1.1, but I decided to pull a Firefox 3 on it and jump with the versions a bit to mark the changes. So, version 1.5 it is.
Apart from the fancy new splashscreen shown above, the main change has been localization support and an ubiquitous usage of Unicode rather than Python's default ASCII charset. Looking back, I realize that the mistake was mine for both issues. The localization should have been there in the first place rather than hardcoded english strings, and I should have handled text with Unicode from the beginning; it'd have prevented all the issues I had, especially those with certain french users with weird characters in path names... It's partially Python's fault for defaulting to ASCII and not UTF-8 for all strings, which I didn't know at the time. Hopefully they fixed that in Python 3.0, but yeah, I don't think I'll port DamnVid to that just yet.
The localization issue, on the other hand, has been a lesson in software design for me, learnt the hard way. I had to go in the code and wrap each string in a little
DV.l function which looks up that string in an external file containing a Python dictionary corresponding to the user's language, and returns the localized string (the dictionary's value for this string). It works and it's a technique I've seen used in other software, although many use
STRING_CONSTANTS_LIKE_THAT instead of the original English translation. The benefits I can see of using such a technique, though, is that the english localization file doesn't look like this:
'Check for updates...': u'Check for updates...', 'Author:': u'Author:', '(Multiple)': u'(Multiple)', 'Done!': u'Done!', 'Enter the URL of the video you wish to download.': u'Enter the URL of the video you wish to download.', 'Preferences': u'Preferences', 'Simply copy a video URL and DamnVid will add it.': u'Simply copy a video URL and DamnVid will add it.', 'Profile:': u'Profile:', 'Most recent': u'Most recent'
Yeah, it's a bit redundant if you ask me. The other benefit is that if you have the same string at multiple places, but they require different translations in other languages because they're used in another context, you're better off using
ALLCAPS_CONSTANTS. Or you could use an alternative mapping string too, like
'is2' for 2 translations of
Oh well, enough about that, here's some other stuff that made it into the 1.5 release:
- Lots of new video modules
- French translation (well yeah, better give that localization support to a little bit of purpose, right?)
- Much clearer (and actually useful this time) dialog shown when the videos are done converting. It lets you open the folders where the videos were saved, or open the videos themselves.
- The main window can be minimized to the tray (except on OS X, because it has a dock for that, and because it's improper behaviour in OS X for an app like that to use the top bar tray)
- There is a new "Bug Report" menu item in the Help menu; it has a little form and it posts directly on the Google Code issues list using the GData API. It also auto-collects system information, dumps the DamnVid log file, and includes all of that in the bug report, preventing some "please provide more info" messages.
- Video history: Remembers the last videos you added to the list, in case you want to convert them again.
- 1080p videos support for YouTube has been added
- New presets: Video only mode (No audio), and iPhone 3GS.
- Some interface cleanups. Not as thorough as I'd like, but some useless buttons were removed (but no functionality stripped! I'd hate that)
- The fancy new splashscreen up there
- Lots of bug fixes (unicode support mainly), and lots of updated modules (those that broke because their corresponding video sites changed)
Special mention to Benoit Philippe for a lot of things (french translation, lots of beta testing, and a nice part of the feature suggestions of this release).
There's an interesting metric I'd like to show here, too... The number of downloads, according to the platform. Here goes:
This should be taken with a grain of salt (or two). First, the release is quite new, and the download numbers aren't high enough to draw conclusions from it yet.
It should be noted, however, that DamnVid doesn't have a PPA (yet). Thus, there are no automatic upgrades, so each download in this graph has been a manual, voluntary download, no matter the platform. The Linux downloads currently add up to 37% of the downloads (same as Windows). The Debian package dominance is quite clear (also, the .rpm packages aren't really tested, truth to be told). Overall, I don't know if I should be surprised by the high Linux-to-Windows and OS X-to-Windows ratios (read: Mac and Linux users like DamnVid), or the low Windows-to-OS X and Windows-to-Linux ratios (read: Windows users don't like DamnVid).
So yeah, enjoy the release, no matter your OS.