[Deja-dup-hackers] GSOC wrapup



Hey guys,

as you know Google Summer of Code came to a finish this Monday and I thought that it would be a good idea to post a summary of work done - what was accomplished, things that I learned and areas which require additional work or improvements.

First, the work done.

As noted, I managed to complete the restoration of deleted files, which took the rough first month and a half or so. Personally I wished that this could be accomplished faster but as it turned out various small issues brought a project to virtual standstill for days (e.g. connecting signals emitted by UI designed in Glade, in retrospective completely trivial), but as it turned out after I figured them out and got a bit of a feeling with the project itself, Vala and development tools development went on rather steadily and so by the mid July the first part was mostly finished.

At this point I went to see to Europython to learn a few tips'n'tricks from the pros (well, as it turned out, there were more than just a few ;)) while Michael reviewed the branch.

After returning, I first started to work on a partial restore but had to quickly switch back to "restore missing" branch to fix various glitches with code and polish interface to make sure that the thing could be shipped to users with Gnome 3 that was, at the time, still planed for release in October. Although Gnome later decided to ship Gnome 3 in March, I finished the polishing up and can probably say that the thing can be shipped to users.

I still owe Michael testcases for my branch because in the last week of GSOC I couldn't quite get around testing functions/base that we have and decided to throw together the prototypes that I had for partial restore. With partial restore I also implemented a cache that will enable us much faster retrieval times of file history (which will bypass the need to scan through the entire backup history every time).

Current state of partial restore is that we have a working listing of files and some basic browsing (if anyone would like to actually restore files, it does not require much more work and I can probably add that rather quickly), but will require much more work - both partial restore itself and cache (for example, I still don't mark if a file was deleted). Currently (after-GSOC) I am developing a widget for breadcrumbs that Gnome still doesn't ship with (but plans to with Gnome 3 although as far as I know they still don't have anyone assigned to this yet).

If that was a short summary of what was accomplished, next thing to look at was what I learned.

Besides learning Vala basically from scratch and getting a hang of what can be done with it and how and getting a hang for the existing code base that Michael produced I also got a lot of knowledge about Gtk (especially in the last couple of weeks when I started to look at how to design my own widgets, which, as it appears, is sometimes characterized as "pushing it" :>) and, while developing cache, a bunch of new knowledge about data structures (B+ for the win! ;)) and key- value storages (since, at the moment, we are using Tokyo Cabinet [1]) with which I haven't worked up to this point since most of my past projects never worked with that much data (we are talking about million(s) of rows of data on an average computer).

SQLite, which was also considered, was dumped because of a bit of an awkward working in Vala and because it appears that it would be much slower than KV database. If we decide at the later date that we require more functionality switching shouldn't be too hard to do.

As already pointed out partial restore requires much more work and will probably not be included in 10.10 but I can see it shaping up nicely for 11.04. I hope that in a near future we can also get some more developers on board since although it looks as though its a rather simple small program/project (personally I have to admit to underestimating it a bit at the very start), its development is not that simple. With more developers we will also be able to improve on more things and fix more bugs.

One thing maybe to consider is if we can get anyone from duplicity team interested in DD as well (following the reasoning that although duplicity is great for backups its not great for home users and if you really want it to go mainstream DD is just the project to do it). And with DD we have to target mainstream above all. It is also true that duplicity itself will require a lot more work so I can see convergence of both teams in the long run (but maintaining the separation of projects so that people will be able to use duplicity without DD).

My personal plan is to stick around the project and help out as much as I can but unfortunately I can't make any guarantees after October since school will start again and I will probably have to find a part time job. I talked a bit with Michael whether or not Canonical can support development efforts in the future but it seems that Canonical rarely supports such projects either with developers or by hiring contractors. A part of this can probably also be attributed to the fact that for the time being they are a lot more focused on enterprise sector.

Plans for short term future from me can therefore be shortly summarized in finishing partial restore with a proper cache (because duplicity will probably not switch to some other archiving format any time soon) and see where we need to go on from then.

At least for myself I can say that I had lots of fun and learned a bunch of new stuff and hope that I can keep working on these things in the future. I also hope I didn't introduce any new bugs to DD's existing code base but will of course fix 'em if warranty seal hasn't been broken ;)))

With some luck I hope to see you guys at UDS ;)

Cheers,
Urban

[1] http://fallabs.com/tokyocabinet/




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]