Author Archive

runner2 – ready to use

20 April 2009 1 comment

runner2 is ready to use.

runner2 is an engine to execute operations defined in an XML recipe.

it executes your operations according to their priority (priority is an attribute of each operation node). runner2 fires the operations at the same priority level at the same time, then waits for the completion of each operation in the same priority level before the switch to the next priority level.

no importance where your operation nodes are on the XML tree: runner2 will find them. make only sure that you’ve filled their priority.

runner2 logs all the actions taken, and it prints out a nice-to-see report. and if you don’t want to see the report, you can simply save it to an sqllite file.

it is easily extensible, and quite difficult to break. (the engine code is separated from the extension code.) the extension code can be written in python.

I could as well tell you that Runner2 is an automatic tests engine, or an installer, or a software deployer. Or all this at the same time. But that’s not me that will say that. It’s you. 🙂

Categories: Uncategorized

GIF processing on the old and cheap home computer

24 March 2009 Leave a comment

(to an anonymous linux user)

so somebody sent you a huge GIF image, and when you try to print/convert/* it with eog or gimp, you’re getting a “unable to fork” or “not enough memory”? well, you should give a try to gifsicle!

quick, does its work, spending practically nothing of your memory.

good luck!

Categories: Uncategorized

(another) grub rescue CD

19 March 2009 Leave a comment

In a department where disks MBR[4] are reset once a day (at least) by a disk image editor which doesn’t respect standards, a GRUB rescue CD is worth the time to build it.

This kind of CD will let you boot Linux/Windows systems, perform a quick memory check, install a copy of grub to your MBR in order to be CD independent, and edit all of the above options. This copy of the CD can be used on i386 compatible systems[5].

I have followed the instructions present in the GRUB manual[1] to prepare a CD image. Then, I have uploaded it to[2][3], just in case. The included menu.lst took the most of the R&D time. 🙂

If you know a good, standards compliant, open source disk image editor, please let me know. 🙂

Update: Well, after a few hours, while going home by feet since the “grève générale” affected also my metro line, I have understood that GParted already contains such a grub-rescue-CD. Then, I have also realized that the “ghost”-like software is simply dd | gzip. Once arrived home, I have had the possibility to verify that other tools exist: I’m going to add them among the post references. Ubuntuforums are the usual source of knowledge 🙂

I think that the topic has been analyzed in an acceptable way, even if the Linux system is an open and exterminated vault of Parnassus 🙂 I can go back to work, once more extremely satisfied about using Linux.

Categories: Uncategorized

a way to control a remote host behind NAT (implementation)

17 February 2009 Leave a comment

yep, after the problem and  the theoretical solution, here is a couple of implementations.

prolunga is an user oriented solution. it is provided with a plain README file which will help you understand the concept and its implementation. with a pair of minor changes you will also be able to daemonize it. the readme file contains also ideas for further developments. I haven’t still tried to compile it on windows, but it works on gnu/linux

bidipipes is the minimal solution. a pragmatic readme is provided, and it won’t help you setting up the environment. in this case, the only help will be the image on the previous post. this software is fully tested on windows/cygwin.

Once compiled, both softwares will need as well nc(1). 🙂

so far, here are the links towards the code:


Categories: Uncategorized

a way to control a remote host behind a NAT

11 February 2009 Leave a comment

* the managing part can open a couple of ports on a public internet host
* the managed part can execute a process

under these circumstances, the managing part will be able to take the control of the managed part’s host.

Using a little trick, based on nc (1) and pipe(2). Man is your friend, as usual.

In particular, you will have to execute two instances of nc, listening on two ports, reciprocally binded by a couple of pipes (bidirectional pipe, in the follow), on the public host of the managing part.
And you will have to execute two instances of nc, the first connecting to the port of the (managed) service you want to export, the second one connectiong to one of the ports you’ve created in the step before.
Doing so, you will have a socket binded to the managed part’s service, on a public host.

An image is worth all the words above

Continuing with the explication, you will find at least a problem: There’s no software which implements a bidirectional pipe. So I’ve made it. It’s pretty unuseful, except in this case. Then, I’ve added to it a pair of functionalities, and now it is available. 🙂

How have I thought such a thing? Somewhen ago, somebody told me that Apple’s iChat offers you the opportunity to manage a remote host. So, I’ve told myself that I was able to implement the same mechanism to manage a parent’s computer.

Will it be available in pidgin, soon? 😉

[OT] cmd is the base of windows programming

12 January 2009 Leave a comment

press windows+R, type cmd, then Enter. ok, you’re now entering the cmd shell. welcome to the heart of the windows, the real place where things that matter happen.

do you want something fast, working everywhere, fast to write? learn dos syntax.
where do you think programmers will invest, once they’ve to choose their formation? python, or cmd?
which solution do you think they will choose, when having to decide whether to use an object oriented, smart and fast to learn language, or the practical, feature-less and dirty cmd?
ok. you’ve all the questions, and you’ve THE answer.

well, once you’ve got your cmd shell, type python. (

Categories: Uncategorized

news from the svn

21 November 2008 1 comment

well, the week is at its end 🙂

the last week end and the last few days have seen a set of commits. these included a new gino, featuring the cut/copy and paste 🙂

the study of this new feature allowed me to discover gtk.builder, gtk.uimanager, gtk.accelgroup and the management of signals in gtk.

I’m very proud to say that I can now subclass a gobject to add to it new properties and signals, and accessorily also accelerators 🙂

on the bad side, this also means that I will soon be obliged to rewrite some parts of Gino, which isn’t completely gtk.builder-compatible.

In the last few weeks I also started to read “Programming C# 3.0”, from O’Reilly. I find the portability of softwares really interesting, so approaching the .NET framework (as well as the Mono one) will be my next step.

Once a time (not a so long time ago) I wasn’t one of the fanatics of Gnome, and today I’m still greatly critic about the softwares which compose the Gnome desktop environment. But I admire Miguel de Icaza and some other Ximians, for the efforts they’re making to improve the Linux system.

So, with many attentions, I’m saying today that.. software develops in a way much more faster than rivalities. To have an open-minded approach can be helpful.

Thinking about what pushed me to restart coding make sme smile. Just today I have downloaded again IronPython. 🙂

Have a good trip in the net.

Categories: Uncategorized

back, indeed

13 November 2008 Leave a comment

I’m in Lyon again, since a couple of hours.

It sounds always strange to start again talking in French. I love the french sounds, but the Italian-French transition is always noticeable.

Coming back, I’ve read a couple of things I have heard of during the vacations. PyHP, for example (see And “Sub-classing GObject in Python” (

Well, I’ve also read and some other news, but, you know, it’s the crisis.

I think that now, I’m able to go to bed. BTW, Thanks for the Bagna Caoda, Davide.

thursday evening, before a travel

7 November 2008 Leave a comment


not really work subjects this evening. rather a travel depart. going back to italy, since the 11th November’s a memory day.

The luggage’s not yet ready, but let me talk you about last updates. Gino’s changing, and it now includes a Gtk.Builder support. Yep, not yet working, but right in progress.

I could talk about the gtksourceview now included in the interface. I could talk about XMLFinder, which evaluates your favourite xpaths for a given document. I would also come back to the gladestore, a fine concept, but already old. Today, I would like to change in favour of pickle, for example. and add some features to the store.

well, I must admit, the mind travels so far, and in a faster way than fingers. I cannot find so much time to complete Gino.

the next days I will be probably writing a couple instruments (cmd shell, and python again) to help a colleague to put patches onto production servers. question of improving time usage. oh, time losses.

See you in Alba, the next week end 😉

and.. allez St Etienne! 🙂

Categories: Uncategorized

how to create a glade store

29 October 2008 Leave a comment

unfortunately, guys at pygtk haven’t thought about a solution about making persistent GUIs. This means that, at your next graphical application restart, you will get the initial window size and settings. And with initial, I mean the design ones.

In the last few days, I have developed a small class to store sensible informations: gladeStore. This class is instanciated just on the application ‘destroy’ event, and its job is to save all the listed properties for all the widgets belonging to your application.

It works without problems on a small test application. I will be bughunting on Gino the next few days.

BTW: Gino interface has been redesigned just today. And XMLTreeView supports the ‘tail’ of XML nodes, for the sake of completeness 🙂