Die C

I am not a good coder. In my mind a coder is determined by how much he loves C (or, in clinical cases, assembler). I hate C and avoid it whenever I can, because I am always off-by-one, and often even in more then one place, which make debugging even more .. fun. :(

Currently I am coding an application that is centred around use of artificial neural networks (more precisely a multilayer perceptron). The NN part must be done in C for speed and memory usage (imagine adding and multiplying hundreds of millions of floating values just for one operation .. and having to do that for 10 000 times for training .. while holding the whole data set in RAM, because you access every single value of it every second). With that in mind I engineered my system in such a way that the C part can be reduced to a couple simple operations that I can adapt from examples of the NN library. And still I barely wrote those pieces. Working with MySQL in C is pure pain, for example.

The rest of the system is in Python and I must say that Python is a godsend by itself, without even comparing it to C. I am now so used to Python when I was debugging my C program, I automatically wrote a chunk of Python into it and was very surprised when it did not work.

With that in mind, to ease the pain for further generations of neural network researchers, I will (someday) find some time and write Python wrappers for the nice and cool Lightweight Neural Network C library that I am currently using here.

BTW: I found that SourceForge is packed full with great software projects, but it is very hard to find those projects in Google. Morale - seeking for good free software? wajig (or apt-get) it! then sourceforge it! then freshmeat it! and only then google it.

I called it!

Ryanair finally sued the UK government for 3 million pounds for the air traffic disruptions, just like I called it!
Now they only need to team up with British Airways (who demand their money from goverment's BAA) and all the other affected airlines, so that the court doesn't just dismiss it right away. Also it would be nice if Ryanair rallied the people to halp them - demonstration in front of the courthouse and bumper stickers saying "Keep Britain Flying!" and "Keep US Flying!" (along with t-shirts, umbrellas and sports style water bottles) would also help to rally public support.

SBackup 0.10 is out!

Get it while it's hot! It has been uploaded to Debian and will get to the mirrors in a day or two, but if you really want it now, then grab 0.10 release from Sourceforge.

The last version of SBackup was released in last November so this has been long overdue, that is why I want to extend many thanks to Jonh Wendell, who reignited my motivation for SBackup. A large part of this release is his work.

We finally have two out of three most requested features: i18n and purging of old backups. Now the progress indication is the big thing people still want to see. And also lots and lots of small cornercase bugs have been fixed, some of them required rewriting chunks f the code, some others were oneliners that bothered many people.

I am very proud of this release and I am looking forward to what we can do for 0.11, one small step at a time.

P.S. I have already received emails of congratulation about the release and a bug report requesting the new version in Debian. :) Needless to say that the package has been uploaded and will go out in the next mirror push.

Dell Next Day service - 10.5 days turnaround

I previously mentioned that my brand new Dell Inspiron XPS m1710 notebook broke down just a few weeks after I got it.

It took from Wednesday to Friday to arrange for pick-up n the notebook.

The DHL guy came to my house on Monday morning and picked my laptop up. He said that the official line on these is that I will get it back in a week, but usually they get them back in a couple of days.

On Tuesday I received an SMS saying that my laptop has arrived to repair centre and then another saying that it has proceeded to repair. Nothing happened on Wednesday but on Thursday I received another SMS, again saying that it proceeded to repair. On Friday I finally called back on the XPS support line and got an answer that my laptop is fixed and currently is being tested and that I will most probably get it back on Monday as Dell does not use the delivery option to deliver on Saturdays.

And finally today at 11.00 in the morning a DHL courier knocked on my door with my notebook in hand. There was a note in the package saying that the CPU has been replaced.

All in all - 10.5 days from first report until the laptop is fixed. I assume that is the worst case scenario. The techs on the phone were competent, but did not have the information about what I went trough in their online diagnostics wizard and did not have the information about emails that I sent them. One tech answered me on the phone, but another answered my email. There could be more integration there. Also I could not find any way to see more details about the progress of the repairs on Dell website - that should be easy to provide.

In an ideal world, in cases when it is clear that the problem is in hardware, but not in the hard drive, it would be great if Dell could provide a temporary replacement laptop for the time of repair and put the hard drive of my existing laptop into the temporary replacement notebook, so that I an contiue working like nothing happened. It might not be the same spec, but it must be easy to swap the hard drive in, so I suppose that means that the same model is required.

Note: just as I was starting to write this post, a Dell Customer Advocate commented on my previous blog post. They sure deserve some plus points for that :)

SBackup 0.10 delayed to tomorrow


* more testing for the new restore backend and of the purge function are needed to ensure that they work as expected in all expected situations;

* I need more time to review a last minute patch to add autotools support to SBackup and decide if I want that or not;

* My primary notebook is coming back from Dell Service tomorrow and I need it to test the upgrading of the package in Debian (and not just Ubuntu that I have on my old/secondary notebook).

So, translators, you still have time - go here or here to translate. Also beta testers might venture ahead and check out the SVN trunk version. There still might be some bugs lurking there, however, so YMMV.

This is not America

A song This Is Not America by David Bowie tuned me in to the radio playing in the background. And I realised - the USA that exists today is not The America anymore.

The America is the land of free and brave. The USA is the land of self-restricted cross-monitoring cowards. And I am talking about the attitude of the people, not about the government here. People make the country, not the government.

The America would have laughed in the face of 9/11 and said "Bomb us all you want, bet we will not give up our freedoms!". The USA crawled into a corner and pleaded to its president to take away all its freedoms and wealth just to get a false sense of security, which it still has not got.

I would like to live in The America, but the USA is just pitiful. The American dream is dead and buried by the same people that once made it - the USA public. RIP.

P.S. If you think that my blog has become too political, then I am sorry, but the problem is that politics slip into our lifes more and more and if we - regular people, do not become politically involved, then the polititians will just assume the we do not care and make decisions based on who pays their lobbies more. Think software patents, just on a much wider scale and with much wider implications, like the WW3.

P.P.S. I know that I offended some American people that read this blog, by this post. I am sorry for that. It was not my intention. The situation is being improved by the very people that make up the American public. Buch's approval rating of <30% is a great indication that people understand what is going on, but the media hush over all the anti-Bush/pro-libertian actions that are being done, so that it seems that nothing is being done. That in turn discourages to doers. I am glad to see resistance in the USA, but with the media controlled by conservatives you will need much more. Much more. (A good leader to rally around would help a lot ;))

Secure flying

If one really wants to make international flying perfectly safe (at least safe from terrorists masquerading as passengers), it is in fact very simple and quite cheap:

* No carry-on or check-in luggage at all (all kinds of chemical, bacteriological or radioactive materials could be hidden there, for example it can be trivial to make a laptop burn up in flames mid-flight and make in in non-detectable way).

* No personal items of clothes (clothes can be soaked in certain chemicals to make them explosive).

* Secure passengers during the flight ( so that they can not actually do any terrorist activity).

So, the optimal way of securing air transportation would be to have people come in without any luggage at all, remove all items and clothing at check-in, dress in uniform one-time paper clothing where one can not hide anything, sedate them, feed them trough introspective inspection to detect in-body foreign objects and check the chemistry of skin and hair, pack them into the airplane on secured padded shelves, fly them to the destination, reverse the sedative and give them a standard set of clothes and essential personal items.

In addition to perfect security, this plan will also reduce the overall cost of air travel by allowing to pack more people into an airplane of the same size - the padded shelves can go from the bottom of the airplane to the very top with minimal spacing (all passengers are sedated - they will not walk around), no separate cargo hold will be needed (no luggage) and no in-flight entertainment or food will be required.

If the current security craze continues, we might reach this perfection by 2020. Congratulations!

Note: All software by that time will be Web-based, so there will be no sense in taking your "personal" laptop with you.


My plea has been answered by a DVFS project specification. For some strange reason, my edits do not show up in the freedesktop.org wiki page and the blog of its creator is not reachable, so I post it here.

I am very interested to help develop this tool and then use it in Simple Backup Suit (sbackup). An additional feature that I would love to see is automatic splitting of a file into several chunks. In an ideal work it would be possible for me to get (in Python) a filehandle-like object that would compress the data (gzip/bzip/..), encrypt it (with simple encr. or gpg style), transfer it over network (ssh/ftp/dav/smb/...) and then split into 100 Mb pieces on the remote server (to overcome possible max filesize problems with 10,50 or 100 Gb backups). And have the freedom of flexibility of activation of each element of this chain when creating the file handle. Also the interface must react in exactly the same manner regardless or the backed being user (for example opening non-existing files must always rise the same error).

Why? Oh Gods! Why?

$ mv .ssh/ .ssh.old/
$ python
>>>import gnomevfs
>>> gnomevfs.get_file_info( "ssh://aigarius:password@aigarius.com/home/aigarius" )
Traceback (most recent call last):
File "<stdin>", line 1, in ?
gnomevfs.AccessDeniedError: Access denied
$ ssh aigarius.com
The authenticity of host 'aigarius.com (' can't be established.
RSA key fingerprint is 6d:29:c0:f3:d0:84:c9:a9:d9:4c:7e:e3:1a:18:a2:e2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'aigarius.com,' (RSA) to the list of known hosts.
aigarius@aigarius.com's password: *******
aigarius.com$ exit
$ python
>>>import gnomevfs
>>> gnomevfs.get_file_info( "ssh://aigarius:password@aigarius.com/home/aigarius" )
<gnomevfs .FileInfo 'aigarius'>

Of course, this is mentioned nowhere in the sparse documentation. Please keep me away from the person who wrote GnomeVFS and its Python bindings. Bloodshed might ensue. Bug reported

Why can't someone write a nice, light, working network file transfer protocol abstraction library that would be independent of any desktop environment (bonus) and a working X server (I am looking at you, GnomeVFS). Something that would simply provided all file and folder manipulation operations in sync and async ways in such way that those operations work completely uniformly across all supported protocols. Support for at least ssh and ftp is essential, webdav, nfs, rsync and other protocols that allow writing files to remote locations and http, https and other protocols that only allow read only access to remote files would be very welcome. The library should be in C with bindings in C++, Python, Perl, Ruby, PHP and also a command line processor that would allow all commands to be used in a shell script.
Why something like this can not be written and obsolete the GnomeVFS and those KIOslaves. Freedesktop.org, I am looking at you, please!

Update: Apparently I only need to "import gnome.ui" and execute "gnome.ui.authentication_manager_init()" and my application will automagically get a proper authentication dialog in this case. Unfortunately it is not documented anywhere that I could find. :P