Nerd Quiz
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
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
catch
up.
I just did the 0.3 release on
freashmeat and
sourceforge.
Progress checklist:
* 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
Simple Backup Solution 0.1 is out !
With this simple and
humble name my SoC project has met the first milestone - I have a fully
functioning backend for my backup solution. The GUI is to be done next
week.
You can get see the spec
here, get
the 0.1.1 version
here and
monitor all my development activity via my
online repository. (You can access
it with your web browser or with bazaar-ng.)
A Debian package
will be uploaded after completion of all planned functionality, i.e. in
a couple of weeks.
Silence in the Net
Only spam is making a background noise
Saturday
it is
(Haiku format was lost in translation :) )
The python-gnome2 bindings for gnomevfs are completely undocumented
:P
I so wish i could kick that developer in the^W^W^W^W^W donate
small amount of money to have it fixed. :)
Currently I am very busy writing my Summer of Code project. You can see
my plan on the Ubuntu wiki:
http://udu.wiki.ubuntu.com/SimpleBackupSolution
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)