28 July 2005

Currently I am very busy writing my Summer of Code project. You can see my plan on the Ubuntu wiki: and follow my progress in my bazaar-ng repository.
I must say that bazaar-ng is a simple as subversion and as powerful as arch, but as complete as current Xorg package for Ubuntu unstable (aka breezy) ;P
I am writing all of this SoC code in python which is my first real life exposure to this language. I am deeply impressed by the easiness of the language, but slightly depressed by the lack of documentation in some areas, for example python-gnome modules are mostly undocumented. While the simple stuff can be scoped out from some examples, a more advanced use would require much guesswork.
I like that in python everything is an object and that objects with similar interfaces are interchangeable, for example: Tarfile module makes .tar archives. It would really like to write them out to a file, but will also accept a fileobj. It acctually only need this object to have a proper write() function, so a Handle from Gnome-vfs module should do nicely there. That would allow a transparent reading/writing of the resulting .tar to any destination supported by Gnome-VFS.
Now that is cool.
I am writing a backup daemon now. The due date for this is tomorrow. I have local plain file and local .tar backups working. I still have to make Gnome-vfs .tar backups work as intended, make incremental backups work and do some configuration file parsing. Also a simple restore utility must be done 'till tomorrow. I might just make it :)
(GUI tools are scheduled for the next week)


Anonymous John Goerzen said...

Hi Aigars,

Nice to hear you're working on a backup tool. Backups are so often forgotten, often because they're hard to do. This is a great project.

I was also interested in your choice of Python and Arch. I say that because I made the same decisions at various points and could have written a very similar post to yours at different times.

Python is one of my favorite languages (probably #2 or #3 on my list right now), and is a good one to learn. I'm convinced that the only way to really learn about a language, and whether or not you like it, is to code everything you possibly can in it for quite awhile. It's what made me switch from Perl to Python, avoid Java, and eventually switch from Python to Haskell. So, keep doing what you're doing. Write as much as you can in Python, and after 3 to 6 months, see how you liked it.

Then try something different. Perhaps something completely different. Maybe you'll like it, if not, stick with Python. (I'm curious, too, what languages you used before.)

Arch is a good project too, though I've been dissatisfied with it for a few reasons. If you haven't tried it, you may be interested in Darcs. Darcs takes the distributed nature of Arch farther and is amazingly fun to use. (I wrote arch2darcs because I switched some dozen arch repos to darcs)

It's interesting to see how ideas get borrowed. Darcs started out as a fork of sorts from Arch, and Haskell and Python have both borrowed features from each other.

And here I am, starting to use more C than I have in nearly 10 years, in order to write Haskell bindings to C libraries...grin...

29 July, 2005 03:09  
Blogger Aigarius said...

Actually I am not using Arch, but bazaar-ng. It has (plans to have) all the usefull features from Arch/DArch and still maintaining the simplicity of the CVS or Subversion. It is being developed by the Canonical team in paralel with bazaar (which is based on Arch) trying to get a clean and simple interface with the best of all version control systems.
One thing that couldn't get over with in Arch was the need to use strange '++file--names--0' :)

29 July, 2005 03:20  
Blogger Aigarius said...

Oh and before this I programmed in (in chronological order):
* Basic
* Pascal
* C
* C++
* Perl
* Bash

29 July, 2005 03:22  

Post a Comment

<< Home