How to destroy an evil presence and live better

How to destroy an evil presence and live better


Yesterday while I was biking my dog  across Cascine park in Florence mumbling about a new product idea, my eyes was attracted by some strange orange points in the autumnal yellow carpets. I got off the bike to have a closer look. WOW! there was thousand of alkekengi fruits on the ground.

Alkekengi (Physalis alkekengi L.) is a plant from the same family of tomatoes, it is  invasive and an alien specimen in Italy, it is something negative!

Let me explain how to “eradicate” this evil presence:


1) pick-up some dozens of alkekengi fruits with their orange “lanterns”


2) pop the lanterns and get the balls “naked”, but without removing the ”leaves”

20111106-IMG_0590 20111106-IMG_0594

20111106-IMG_0595 20111106-IMG_0593

3) prepare a “bain marie” for dark chocolate. If you don’t have the right pot you can stack a metal bowl on a boiling water pot

20111106-IMG_0586 20111106-IMG_0587

3) when chocolate melts, start dipping alkekengi balls one at a time.
Use folded leaves for holding them

20111106-IMG_0596 20111106-IMG_0597

4) then place the hot ball on a baking paper sheet to let them cooling down


5) in the meanwhile get some hot chilies (I used real small ones that decide to happily colonize a lemon vase), smash them in a mortar and then add them to hot chocolate. Stir to amalgamate.

20111106-IMG_0600 20111106-IMG_0601 20111106-IMG_0602

6) now you are ready for the last chocolate passage.


7) let chocolate solidify and eventually repeat last passage.

The chilled dark chocolate is in perfect balance with the sour flavor of alkekengi.

Now  you are ready to destroy this evil presence!

P.S.: I forgot for the rest of the week-end the fu$#£!…. idea on the new product.

Power of chocolate.

L’arte è pericolosa!

Chissà se Remo Salvadori, l’autore di “Continuo infinito presente”, aveva previsto una simile “evoluzione” per la sua opera.

Passando come ogni mattina tra il duomo e il battistero, finalmente pedonalizzato (almeno dopo le ore 9.30, prima di tale ora è una ridda di furgoni impazziti!), sono rimasto piacevolmente sorpreso nel trovare nel cuore del tempio del Rinascimento un’opera di arte contemporanea. Stentavo a crederci, mancava poco che cadessi dalla bicicletta per lo stupore, a Firenze!

L’opera di Salvadori cinge la colonna di San Zanobi con un intreccio di cavi in un continuum senza inizio ne fine. Bella, grigia sul lastricato lucido di pioggia invernale, un cerchio di materia “nuova” posato sul passato.

szanobi_aIl giorno dopo noto che qualcuno, magari avvezzo al Chianti, o qualche furgoncino impazzito ha urtato  l’opera spostandola.

Passa una settimana e ritrovo l’opera immersa in una bussola di cartelli stradali, uno per ogni punto cardinale. Sicuramente qualche solerte amministratore ha rilevato l’enorme pericolo che l’opera poneva al passo e preoccupato dalle terribili conseguenze di un turista rantolante ai piedi del battistero ha pensato bene di segnalarla come fosse una voragine aperta nel manto stradale.

Ma forse sono io che non ho capito l’opera. I cartelli sono il suo necessario complemento, rendono bene l’idea dei nostri tempi in cui la falsa idea della sicurezza ci rende ciechi alla realtà. “Alla maniera d’oggi”!




P.S.: Lunedì 22 Febbrario ore 8:20: l’opera non c’è più, ma i cartelli sono rimasti!

30 years riding IT: part3


Technology was running fast in that era, and just when I started studying Synthetic Programming (a way to use some more non documented function in your rpn code for HP41cv), (see previous blog) Massimo bought, in a Suisse shop, a terrific new programmable calculator the Sharp PC-1500, shouting me in panic.


Sharp PC-1500 was, in my mind, the best technology the humanity could do in that years.

PC-1500 have a real-shaped keyboard, 4Kb RAM, a dot addressable display (7×156 dot LCD), a plotter (not included) and a “standard” programming language that do not force me to think like a polish men 🙂 and “she” talks BASIC!

After two shop painted, three days as HiFi expert for Saba stand in a local electronic event, and selling of my “old” HP 41cv, I got enough money to take a train, go to Suisse and buy my “new” PC-1500.

DIA_00761In the meanwhile, my studies going slowly. Chemistry, Geometry, Physics, Design was interesting, but I spent a lot of days on my PC-1500, looking a way to make enough money to have the freedom to do what I really love: travel around the world taking pictures.

But my parents was more realistic than me and: “no exams? no money!”, so I enter a loop where I play with PC-1500 -> no time to study -> no exams passed -> no money from parents -> find a work to get money -> spend money in traveling -> study just a little -> pass an exam -> write a lot of code -> do money …. and so on.

This style-of-life hang me on Engineering faculty for about 14 years :-).

Back to PC1500:

Sharp PC1500 was a very well done product (was the “porting” of the Tandy/Radio Shack TRS-80 PC-2.), so was tested and robust.

PC-1500 with its printer/plotter was able to record the programs on audio cassettes. In this way we could save our production.

Asteroids But the life it is not only work! Massimo and me were used to spend spare time playing the latest video game: asteroids! There we started, probably, the first experiment with “pair programming”: one to the joystick, the other one to the buttons. Sometime we get the hi-score and as there was only 3 char to write the name we create our brand: R&M.

With this brand we signed about 150 projects and product.

Back to PC1500 again:

The strongest exam on the first year for an Engineer was Mathematics I. Function studies, integral, series, and son on. Sometime have an idea on what you have to study for you exam could be helpful. So we start a production of mathematical software able to:

  1. Plot your function on PC-1500 plotter (plotting during the exam is a little bit noisy, but you can use your coat, even in July with 30°, to cover the plotter), its first and second derived.
  2. Know a-priori if a series on integral converge or diverge.
  3. Know a-priori if your function can have zeros

With this tools, the written part of Mathematics I examination was like a joke.

Writing this software I learned a lot about basic, number, precision etc. So we were ready to start something more professional.

The “Medicina II” an University’s Clinic was looking for someone able to translate an old statistical program to its newest Apple IIe.


Software that we are called to translate was written “on paper” using a graphical notation and typed (or recalled) on a strange Olivetti Programma 101 “computer”


The work was amazing but we learnt for the first time that the BASIC is not exactly the same BASIC everywhere; and the calculus too, can be slightly different.


But that was the very first “paid-software” we did.

Obviously at that time the code was to keep “secret” and we used several tricks to protect our production (control char like ^L in the source code, remove commands etc.).

The hungry of knowledge brought us explore wider territory.

I bought in Paris a funny book “Graphism Scientific pour l’ordinateur personnel” and we started new graphic experiment on pc1500’s plotter that was really not enough.

image We discover in a dark side of S.Marta (S. Marta is were Engineering Faculty is located in Florence. It is was a big old monastery with a kind of dungeon underground) a terminal connected to a PDP server. It was definitively forbidden for newbies like us, but after some days of circuiting the administrator we get a limited  access to read the on-line manual. But the manual was for “standard” user and we need something more, so we get a copy of administrator manual and we started to experimenting new powerful command. Unluckily something went wrong and we launched a process that write something in the “on-paper console” without a way to stop it 🙁 . All this happened in the late evening with nobody near the printer and the printer well locked behind a strong door.

The day after, 1 kilometer of paper was finished and our first PDP experience too.

Working on PC-1500 was really less dangerous!

The AI (artificial intelligence) is (or was…)  an amazing science and we read something about experts systems, and that Lisp was the best language to implement it.

The mythical Texas Instruments’ Lisp machine was light year far for our dreams, and we have to arrange something less expensive.

We get some BASIC code for a Lisp interpreter written by I-don’t-remember-which University and we decide to “port” it to PC-1500. The article was full of theoretical induction about Lisp language, and the porting went quite smoothly.

The performances was not excellent, minutes to evaluate “(+ 1 2 3 4)”,  but the experiment was interesting at least because give use the chance to realize something based on strong theory and to learn something about Lisp. Our attempt to create an expert system sunk on the performance beach.

Not completely happy with Lisp interpreter experience we decide to develop a BASIC “expert system” trained in mushroom identification.

In our expert system experience we discover, for the first time that, sometime, a simple and direct solution could be more and more effective than a solution “based on strong theoretical fundaments”.

Our expert system was used and trained with fun for years by a mycological group in Florence: the Lisp one, died before to bloom.


After AI we go back studying “graphism scientific”; reading French computer’s book is really sharpentiers_08funny experience. I suggest to taste “la mémoire vive de votre ordinateur”.

Another source of inspiration was the french magazine “Sharpentiers” (that sound like “carpenter” that reflects quite well the “hand made” style of that years) dedicated to Sharp users.

In some week we develop a “3D wireframe CAD” for PC-1500 (do you know that for rotate a 3D object the algorithms uses the matrix? We do not! But we learned it some years late in our study, when the problem was completely solved: sometime studies are useful!).

The CAD was funny and even if data insertion for complex drawing was a nightmare, an Architect’s studio want to use it. So we “port” our Cad to the very best of Sharp: MZ-700.

mz-700-1a They pay a lot of money, for that time our standard: 170.000 ITL (about 85€ )



But the luck smiles to the brave, and in a Florence book store I found a strange blue book: the “PC 1500 Technical Reference Manual” was at that time in Italy one of the most wanted book for PC-1500 owner.

This manual opens the hardware and software architecture to our hands.

Sharing that information with our friend (share doesn’t necessary means “for free”, so this manual became a great business) we meet a large group of PC-1500 users.

There we discovered that one of pins in the PC-1500 connector, was suitable for one-to-one (probably now “pear-to-pear” sounds better) communication. First of all we need a 60pin half pass connector, but it was not available in almost all electronics’ shop in Italy.

Florence is the artisan’s mainland, and with the patience of our ancestors I build my 60pinhalfpass connector. Was really disgusting to see, but was working.

In the meanwhile the German PC-1500’s user group will develop the Macro assembler compiler and a Forth interpreter. We bought both.

With Technical manual, macro assembler, and cable we are ready to start the first 1-to-1 communication software. Obviously the only way we can use to communicate is to open/close a single port. It is not so easy to use one port for bidirectional communication, and we invented our protocol. The unexpected, sometime mystical, behavior force us to learn about timing, clock cycle, slopes, micro-instruction length, and all thing that make me happy to develop now in java without knowing anything about hardware and operating system too.

But in the end the communication software was very well running, and very useful to communicate with Massimo during one of infinite Engineering exams.

30 years riding IT – part2

Year 1982, “mathematics 1st” second lesson: I meet Massimo, the red haired boy that will share my professional destiny for next 15 years.

Massimo owned an amazing programmable pocket calculator Hewlett Packard 41-CV.

“Calculator” is definitively a too modern term to define this strange tool that in order to do (1 + 2)*3 require you input 1 enter 2 enter + 3 *; this is called RPN (reverse polish notation). But the most amazing features of hp41cv where the HUGE memory (2233 bytes!), the capability of remember something like 300 steps of code and last but not least an alphanumeric display. Ok, alpha not so much, but surely numeric!



So, after a Christmas selling Hi-Fi in my father’s shop I got enough money to by my first programmable device (second hand, but in good shape).

My HP41cv was fantastic, with its “crunching” keybord.

With this archaic device I‘ve been initiated to the art of “quasi-computer” programming.

…to be continued

How to (not) buy a flight ticket online

I love to travel, my bank account doesn’t; how to move me (and family) for Xmas holiday from here, Florence – Italy to Lanzarote/ Isla la Graciosa – Canary islands – Spain without going in bankrupt?

Easy! Buy a low cost air ticket!

Ryanair is probably the European leader of low cost fly. I have already flown Ryanair in the past with satisfaction (sometime) and some complaints (often) and I had removed their option completely for many years.

But this time I had no choices; Lufthansa, that is usually affordable and with a great site for booking (I have used Lufthansa for my last business travel in Charlotte, USA for a Teamwork bootcamp), was too expensive.

After a year reading books on interfaces and usability, and actually writing code and interfaces for a new online service (BugsVoice), I was approaching the “purchase” process with new critical eyes.

Ryanair is a leading and growing company, so they know very well how to sell tickets, but it is really necessary to make the process so painful?

I’ll describe what is, IMHO, frustrating in their web interface for buying tickets.

Here my requirement:

a return fly for 2 adults and 2 children from Florence to Lanzarote starting about December 25 fly back January 6”. That’s all!

Ryanair doesn’t fly from Florence, the nearest airport is Pisa (about 100km far), but from Pisa there aren’t direct fly to Lanzarote.
What all other companies sites do is to allow selection offrom” “to” destinations and then they trace the routes, with necessary stops, without user effort.
No, Ryanair doesn’t. You must “find your path in a sort of Yoga meditation.

In order to help pilgrims finding the route they supply a nice Silverlight (Silverilight!!!!) dynamic map showing all destination and related links.

Wow! Terrific! I just discover that to go from Pisa to Lanzarote I have to stop somewhere else.
At least 10 different locations are possible: London, Frankfurt, Dusseldorf, Dublin, Bournemouth, Girona, East Midland, Leeds, Liverpool etc., how to check timetables and availability?
Do not be scared, Silverlight it is not so bad, use the powerful tool; just click a location and
a popup will helpfully shows “book flight from here to here


Just click and…. the tool will reveal its limits immediately:

your selection disappears…
(another icing on the cake: why the return date does not propose at least the same date of fly out?)

C’mon, do not chill, go on…

So, in order to check possible routes and schedule you have to select your destination many, many times, just to discover that there is no way to do the complete trip in the same day because of the usage of unusual time slots, and you have to waste a night somewhere. My “somewhere” will be Girona (almost Barcellona, as they say) for one night going and one night returning.

Now you have your routes (actually 2 with a stop) and you are ready to book and pay…
No! there is no way (apparently) to book both routes at once.
Hmm… this may be a dangerous game: remember that Xmas is high season and actually last seats are going off minute by minute. You are risking to book (==pay) first route and then starve in Girona (almost Barcellona), or even worst book the second track without find a way to escape from Pisa (almost Florence).
What can I do? OK! Great idea I open two Firefox instances and with the first one I will buy Pisa-Girona and, in the meanwhile, with the second instance I will buy Girona-Lanzarote.
So you start perky, strong and passionate filling a thirty-two fields form (for each track, 64 in total), you decide to queue with other passengers (actually if you are much Italian than me you can buy a “priority boarding” in order to skip the queue and gain the privilege of watching other passenger fighting for a place, while you are already sitting in the plane, for the risible amount of six Euros each. Oh, I forget to say that Ryanair flights are free-siting, so the “Italian” option get more intriguing), you fill other fields with some loooong selection box for country and for country phone-code (try to propose at least the same please!) both fix and mobile, you swerve to avoid buying insurance, you MUST accept the condition, wait a minute let me see what I’m about to accepting, ugly condition (if you do not believe read here, and have a look to the punishing side fees here ) but this is a low cost company, so, do not complain!
Accept it and continue, click “retain detail for next session” …… but the current one was gone, if you read the condition the session expires, we do not want pernickety customers!

So you start again less perky, strong and passionate, but indeed faster!
Filling the form you can receive a sms message confirming your booking:

One euro? What f*** contract you signed for sending sms? I can find an on-line service for less than 2 euro cent (e.g., your margin is only 5000%…
C’mon, do not think go on, press “continue”, swerve and skip again insurance

Again? I’ve already checked the small button “no thanks”, it remember me the joke of electronic voting system in USA where the button “vote for Bush” was moving under your mouse pointer when you try to click somewhere else….

Finally you click “continue” in both browser instances (PSA-GRO and GRO-ACE) and you discover that your idea was not good enough:
form’s data are roughly shared in session (not a conversation, not a token, not in the client) so your two browser instances shares the session and mix the data. As you can imagine, ‘last win never’ so you have to start again with two different browsers; in this case Firefox for Pisa-Girona, Chrome for Girona-Lanzarote.

Of course the “retain detail for next session” does not work when session expire (damn! nobody there have ever heard about cookies?), so you must re-fill the form even in already used Firefox.

Finally you fill the forms in both browsers and proceed to buying tickets; just choose your payment method.
Considering that you are buying online, there is only your credit card type to choose:

As you can see by selecting a standard visa you will charged by 40 euros, 10 for each passenger, even if you are buying 4 tickets in a single transaction.

Et voilà, a ticket advertised with a price of 29.99 ( 59.98€ both ways) becomes about 150 €, considering taxes (40 €), boarding (10 €), ONE baggage (30 €), visa commissions (10 €). And if you forget to check in online, you will pay at check in desk 40€ (x passenger)….
But these are only low cost stories…. let’s continue with technical issues.

With two browsers ready to submit I finally pressed “continue” receiving this terrifying popup:

Press OK in “stereo” and BOOM!

I got two different error pages one for each browser stating that there was something wrong in the session, in one side, and a credit card error in the other one.

What was fun was that the “session error” page warn me to wait before re-trying because maybe the transaction was still in progress, and to check the email for a while waiting a confirmation message.

After one hour checking email I re-re-start again the entire process with two browser, then I filled every field, checked every checkbox, confirmed every double confirmable question, and finally, in short sequence, I pushed “OK” buttons in both browser, buying my tickets.

I know that ticketing applications are not trivial, but what could the effort to make a better application? Just look around and you will find better solution even for smaller air player.

Why a so rude company should survive?

Only becouse they sell my tickets for about 1000€ instead of 4000€ of Expedia?

Berlusconi’s error codes

Writing javascript rules, used to process incoming bugs in BugsVoice, I’ve found some unusual http error codes (from wikipedia) that fit perfectly with Italy’s prime minister :

1) about criticism versus President of Republic:

error 405: Method Not Allowed. “A request was made of a resource using a request method not supported …”

2) about criticism versus high court’s judges:

error 406: Not Acceptable. “The requested resource is only capable of generating content not acceptable according to…”

3) about conflict of interest:

error 409: Conflit. “Indicates that the request could not be processed because of conflict in …”

4) about refund from Berlusconi’s Fininvest to De Benedettis’ CIR known as “Lodo Mondadori” (750.000.000 €):

error 413: Request Entity Too Large. “The request is larger than the server is willing or able to process.”

5) about “La Repubblica” newspaper:

error 415: Unsupported Media Type.

Finally, what doI think about the Italian’ prime minister?

error 417: Expectation Failed!

30 years riding IT

Well, I’d like to write my IT blog before my memories will completely fade out from my cholesterolic-neuron-mud. Easy! Let’s open a WordPress account and start writing… uhmm.

Starting from where, how? Something classic should work fine:

Once upon a time there was a 19 year old boy who never heard about computers. In a stormy night he met a big hairy computer that told him: “where are you going little men?”…

Hump, Too classic!

But this is the truth: when I started studying for electronic engineer in 1982 I had no idea about informatics, I’d never seen a computer neither a keyboard.

But this fantastic nirvana was voted to end.

…to be continued