Viewing posts from August, 2005
Remote restore fixed. Full planned functionality reached.
All that I planned to do for Simple Backup is done as of version 0.7.
Now I only need to wait for the evaluation from my mentors at Ubuntu and to fix all bugs they and all other users find :D
I also did a bit of refactoring in this release oriented towards less memory usage. Results:
A World of Warcraft World
Kind of a scary list of things that will, according to the author, happen in the future of global MMORPGs. I have read many books on the subject and I find that the author should propably read "False Mirrors" by Sergej Lukjanenko. At this point that book is the best description of how our world could look like when taken over by Internet and MMORPGs.
NerdTests.com Fun Tests - Computer Geek / Nerd Quiz: "
Didn't expect to score that high after aswering some of the questions in thuthful and not geeky way, but ... :D
Ok, now the 0.5 release of my Simple Backup suite can now actually restore something from your backups! (both command-line and Gnome interfaces) It now even does automatic backups (and not just claims that it does). It even doesn't store empty folders in the backup. Oh and some usability fixes are also thrown in for no extra charge. :)
Note: due to a small, tiny bug in gnomevfs, restoring files from remote backup locations doesn't work yet. I'll have to do a lot of hacking to get that working :P
Between two hacking sessions I also did a yoga session today. I think that I realized, why such simple actions take such great effort when you are doing proper yoga. I think that the point is that you twist/bend/compress you body into an inconvenient position and then the real exercise starts: 1. maintaining a position is harder then assuming it, 2. you must breathe deeply and forcefully thus forceing your lungs to press against other organs and expand you body. Your muscles will have to strain quite a lot just to keep your position under increased pressure. Then when you breath out, your muscles will relax. This is just like your common workout in the gym, but in the case of yoga you will strain such muscles that you would not be able to strain otherwise.
Note: I somehow feel that my spellcheck is not working. That sucks :P
This week was a productive for me, but I did run into some unexpected
technical difficulities and thus had to work throught the weekend to
I just did the 0.3 release on freashmeat and sourceforge.
* backend daemon - ok
* GUI configurator - ok
* commandline restore - 50% (need to write a directory extraction
function that is missing from python tarfile module)
* GUI restore - 95% (depends on command line restore)
* GUI to write a backup snapshot to cd - 0%, optional
Of course extensive optimisation, testing and polishing is quite needed too.
I should be able to finish the restore tools tomorrow if no other
major problems occur.
I am behind my planned schedule by allmost two days, mostly because tarfile module for Python is ... not too complete, for example you can only extract files one by one :P
It looks like I will have to implement extraction of directories myself. Of course I will send it to the tarfile upstream authors, along with something heavy ...
Still writing a restore tool :(
Last two hours were spent debugging an interesting problem with TreeView in PyGTK. It was too slow to parse and add all files from a backup snapshot to the tree view at once (not to mention that it took 35 Mb of RAM :P), so I decided to load the tree as needed - I would add the children of a node only when this node gets expanded. So I happily wrote a handler to 'row-expanded' event that does just that - adds some children to the newly expanded node.
Note: as the node cannot expand if it doesn't have some children already, I also add a dummy child to all directory nodes
Then the problem came up - once I enabled my handler, the nodes would not expand anymore: the expansion handles were there, I could click on them and see the CPU being chewed away by the parsing of the 6 Mb nodelist, but nothing changed in the interface - even the dummy node didn't come up.
That confused not only me, but also #pygtk people. I wrote a 15 line simple script to replicate the problem, but everything worked fine there :O. At this point I started commenting stuff out at random and found out that breaking the link between treestore and treeview (recommended in docs to avoid excessive updates) resets the expansion state. Doh.
But it was not the end yet. After that I noticed that the nodes didn't expand on the first try, but only on the second. 8) After some mental mummbo-jummbo I came to an idea that proved to be dumb, but correct. Prepare for a gem boys and girls - if, in the process of execution of row-expanded handler, at at least one point the expanding node has no children (like when you have removed the dummy node, but still haven't added the real ones) - the expansion doesn't happen!
Two bugs^Wfeatures with the same effect. Oh, the fun of debugging never stops :D