Here’s a neat video I found via Google Alerts:
Posts Tagged ‘Déjà Dup’
Déjà Dup on Youtube
Friday, December 11th, 2009Déjà Dup News
Monday, June 29th, 2009It’s been a while since I’ve blogged about Déjà Dup. Actually, looking back in my archives, I haven’t blogged specifically about Déjà Dup since it’s first 1.0 release. As it’s now on it’s tenth feature release, I guess it’s fitting to give some news.
Since 1.0, Déjà Dup has continued to rock. Here are some of the new features:
- Scheduled backups
- All sorts of crazy backends, like SSH, FTP, WebDav, or samba(!)
- Restoring from any given point in time
- A nautilus extension to restore files with a right click
- Sexy awesome backup and restore wizards that guide a user through setting up a backup
- All sorts of usability tweaks, bug fixes, and minor improvements
Anyway, the point is, I have not been idle.
And the project is definitely looking for help. If you can translate or write code, please let me know!
Translate Your Documentation
Saturday, May 2nd, 2009As a maintainer, I’ve always been a little sad that my man pages were not translated. Nor where my user help documentation (docbook files). They weren’t translated mainly because:
- intltool doesn’t support those formats (well, intltool does xml, but not specifically docbook) and
- the usage is slightly different — help docs need to be generated from po files, but normally those po files are just installed onto the system
Traditionally, projects like GNOME have translators handle docbooks separately from the rest of translations. Partly because of the problems above and partly because docbooks often have images which must be recreated in the correct locale. Gettext just isn’t equipped for that.
But I’m willing to concede the screenshot point. I’m OK with user docs that don’t have screenshots for my simple apps. After all, they’re usually just used to walk through the UI that the user can already see. They don’t generally explain anything.
So, how to integrate documentations to my existing gettext system?
Desired Solution
First, let me briefly review what I want the end product to look like:
- I don’t want the documentation translations to end up installed on users’ systems in the compiled .mo files. That just wastes lots of space.
- But I want all the translations to be in the same domain. Multiple domains is a pain for both translators and maintainers. Translators have to go translate two files, not one (I suspect most translators won’t bother-to-translate/notice the other domain), and the domains will have duplicated strings (meaning translators will duplicate work). This means one .pot file and consequently one .po file for each language. This would appear at odds with the previous desire.
- Man pages and docbook are funky formats. There’s all sorts of syntax that makes breaking the content into logical paragraphs or phrases difficult. I want a tool that can handle that while spitting out gettext files. Intltool’s xml module, for example, doesn’t have enough docbook-specific smarts to make that happen, although it does integrate nicely with gettext.
Enter po4a
There’s a program called po4a that can handle some of the more unusual formats well while consuming po files and generating pot files. It does a really great job, but it has a few shortcomings:
- it likes to own the .po files
- it likes to own the .pot file
- it uses its own list of languages (not po/LINGUAS)
All of those shortcomings will make it hard to have one pot file.
Enter Lots of Makefile Magic
I stole the original bits of Makefile goodness for po4a from dpkg, which used it for its man pages. But I added a bit more to meet my desired goals above.
Basically the sequence is as follows when making a distribution tarball (make dist):
- Copy all the .po files from po/ to the help/ directory
- Import the contents of po/LINGUAS to po4a’s configuration file in the help directory
- Run po4a, generating compiled, translated help documentation from the base versions and the copied po files. This will generate a .pot file.
- Filter all the po/*.po files through the standard .pot file, dropping all their help documentation translations. This is so we don’t distribute space-wasting translations that we already ship in the compiled version above.
- Merge the generated help .pot file with the standard .pot file in po/ for shipping and distributing to translators.
Ta-da! It’s a bit convoluted, but means that I can have all the benefits of translated help documentation, with none of the disadvantages of multiple .pot files. Of course, I more than doubled my string count, but I assume translators prefer better coverage than not.
The code is mostly in Déjà Dup‘s help/Makefile.am, help/po4a.cfg, and Makefile.am. I encourage you to steal it and use it for your own projects. Too few man pages are translated.
If there are better tools or more elegant methods, I’d love to hear them!
Dogtail and LDTP
Saturday, March 21st, 2009So I was looking into an automated test framework for Déjà Dup and naturally, I tried the current contenders: Dogtail and LDTP.
I have to say, I liked Dogtail’s Python interface more, but it kept crashing my at-spi daemon, meaning I had to log out and log back in again. That was enough to keep me disinterested.
So I tried LDTP. It was just fine in terms of robustness (modulo a bug with its UTF-8 support). So I’ve been cooking up a kick-ass test suite framework for Déjà Dup.
The one big problem is that GtkAssistant accessibility support seems broken. It just doesn’t expose the widgets correctly. Which means I can’t automate much of Déjà Dup. Does anyone know atk well? Please fix my bug.
Déjà Dup in Ubuntu
Thursday, February 19th, 2009Woohoo! Déjà Dup squeezed into Ubuntu Jaunty 9.04, just before Feature Freeze.
Still not in Debian (or any other distribution that I know of), but it’s a start.
UDS Debriefing
Wednesday, January 7th, 2009Phew, I meant to write this a million years ago.
I went to UDS Jaunty, got the shirt, came back. It was at the Googleplex, but seemingly the backwater part of it. The food wasn’t amazing, and we weren’t allowed to really wander around. So it was just a bunch of conference rooms. With weird cameras that would move by themselves and that you couldn’t turn off.
And Mountain View, California is no Prague. There wasn’t much nightlife, and you needed a car to get anywhere. So the locale as a whole was disappointing. Next time, let’s do New Orleans!
It was neat to see how forward-thinking most of the sessions were. I felt like it was more about planning for Jaunty+1 than Jaunty. Really long-term views, with an eye towards what first steps can be done by Jaunty.
I attended the Jaunty Backup session. You can even see the videos from the session, although no one was moving the camera around as people spoke, so I’m perpetually off stage right.
The session was inconclusive, and I fear I spent too much of its time talking about Déjà Dup, but I was there to evangalize I guess. I haven’t heard back, and the spec writeup seems like it’s willing to wait until Jaunty+1, as none of the current solutions are ideal.
Which is good. Throwing Déjà Dup together in time to meet Jaunty deadlines would have been tight. But honestly, I think it’s coming along fantastically. The recently released 5.0 is really hot, and could have served as a decent first draft for Jaunty.
Besides the backup session, I did a lot of work in our secret OEM Services room, and attended the odd session. It was fun.
Déjà Dup News
Saturday, November 22nd, 2008Since releasing Déjà Dup 1.0, I’ve been hard at work on the recently-released 2.0. Most of that work has actually been on the underlying duplicity command line tool.
It lacked proper error reporting (didn’t separate errors from other informative console output) and didn’t indicate progress (so I could show a progress bar). I needed to add some sort of interprocess communication, so that a launching program could get useful feedback.
I proposed D-Bus as a good IPC mechanism on the duplicity mailing list, which was followed by a suprising (to me) amount of pushback. I guess D-Bus has a bad reputation as being overengineered/bloated? We eventually went with a text format that you could ask duplicity to write to a given file descriptor or filename. Something like this:
ERROR 2 . You messed up the foo, . please reset your bar.
That change got into the recently released duplicity 0.5.03. My patch to add progress feedback is in CVS, and presumably will be in 0.5.04.
Now I’m turning my attention to translations. Déjà Dup displays some messages from duplicity directly, and it would be nice to have them translated. I hope to submit a patch to gettextize duplicity, but I’m not sure what the best place to outsource translations are these days. I’ve not been very happy with the Translation Project, and Launchpad Rosetta is nice, but not necessarily the best choice if you aren’t already using Launchpad. If you have any ideas, please let the mailing list know.
Meanwhile, I’ve got plans for world backup domination. I’ve filed a Request For Packaging with Debian. We’ll see how that goes. It’s taken a while for the various projects I know personally: gmult (21 months), xpad (6 months), dav-text (34 months).
I’ve also noticed that there’s going to be a session during the next Ubuntu Developer Summit about a backup solution for Jaunty. Well, well, well, Ubuntu. Have I got a solution for you. Now, Déjà Dup isn’t ready for prime-time use by bajillions of people. But I did start it because I didn’t think anything else was either. If I have six months, and possibly more help, maybe I could get it into shape.
Déjà Dup First Release
Thursday, October 16th, 2008I’ve been working on a secret project the past few weeks, and I’ve finally released the first version: Déjà Dup. It’s a frontend for the backup command line program duplicity.
The goal is to be a very easy-to-use backup program aimed at those (like me) who know they should backup but are too lazy. The “right way” to backup is often, off-site, and encrypted. But who has time to set that up?
Déjà Dup will make it easy to:
- Backup on a regular schedule (doesn’t do that yet)
- Backup into “the cloud” and defaults to Amazon S3 storage
- Encrypt your backup
The development is done on Launchpad. Feel free to contribute!