Archive
runner2 – ready to use
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. π
GIF processing on the old and cheap home computer
(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!
http://linux.die.net/man/1/gifsicle
quick, does its work, spending practically nothing of your memory.
good luck!
(another) grub rescue CD
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 nilleb.com[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.
[1] http://www.gnu.org/software/grub/manual/grub.html#Making-a-GRUB-bootable-CD_002dROM [2] http://nilleb.com/pub/grub.iso.tar.gz [3] http://nilleb.com/pub/grub.md5 [4] http://en.wikipedia.org/wiki/Master_boot_record [5] http://en.wikipedia.org/wiki/Intel_80386 [6]http://ubuntuforums.org/showthread.php?t=859651 [7]http://ubuntuforums.org/showthread.php?t=35087 [8]http://www.debianadmin.com/backup-and-restore-your-ubuntu-system-using-sbackup.html [9]http://ubuntuforums.org/showthread.php?t=24113 [10] http://www.sysresccd.org/Main_Pagea way to control a remote host behind NAT (implementation)
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:
Β§
a way to control a remote host behind a NAT
requisites:
* 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.
How?
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
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. (http://www.python.org/ftp/python/2.6.1/python-2.6.1.msi)
news from the svn
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.
thursday evening, before a travel
hello.
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! π
how to create a glade store
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 π
You must be logged in to post a comment.