Personal tools

tips & tricks

Nov 04, 2015

WebService in Lotus Domino: the neverending story about SOAP support

SOAP1.1 -> SOAP1.2 ??

WebService in Lotus Domino: the neverending story about SOAP support

Almost at the end of 2015, IBM Lotus Domino still seems to not support the protocol for the SOAP 1.2 webservice (both Comsumer and Provider). Really. Why this choice?

In one of my previous post (of two years ago :-) ), I discuss how to manage a webservice consumer based on SOAP 1.2 protocol.

read more

Jul 28, 2015

How to correctly setup SVN plugin in Lotus Domino Designer

DONT'T FORGET ABOUT THIS....

How to correctly setup SVN plugin in Lotus Domino Designer

Working with Lotus Domino and SVN plugin, there are some tips that you can't ignore. I'll explain this case that could drive you crazy if not detected

This tip isn't a brand new discovery, but it might help because, IMO, isn't sufficiently warned by Lotus Domino Designer documentation.

read more

Jun 30, 2015

Usare Header HTTP per debug di server in produzione

pdb.set_trace()

Usare Header HTTP per debug di server in produzione

Non sarà corretto, eppure in qualche sfortunato caso può capitare di dover inserire un breakpoint in produzione. Come farlo senza ostacolare l'esperienza degli utenti?

La situazione

Un'installazione di produzione di un'applicazione Web sta facendo qualcosa che non va, c'è di sicuro un bug che si presenta solo nella configurazione di produzione e per quanto ci si sforzi non si riesce a riprodurre il problema su ambiente di test. Anche tecniche primitive come l'aggiunta di messaggi di log aggiuntivi in produzione non sono servite ad individuare il problema.

E' uno di quei casi in cui verrebbe da dire "ci vorrebbe un bel breakpoint", fermare l'esecuzione del codice per eseguire analisi... ma per ovvi motivi un breakpoint in produzione è qualcosa di delicato e non facilmente fattibile.

read more

Jan 15, 2015

plone.api e documentazione: le linee guida del buon plonista

Scegliere la strada giusta può essere difficile a volte

plone.api e documentazione: le linee guida del buon plonista

Per non perdersi nel mare di possibilità implementative e scegliere sempre la strada giusta, basta seguire le linee guida che la comunità (finalmente) ci offre.

Si sa, il mondo è bello perché è vario, soprattutto nella programmazione: esistono mille modi diversi per risolvere un problema.

Un giorno Alice arrivò ad un bivio sulla strada e vide lo Stregatto sull'albero.
- "Che strada devo prendere?" chiese.
La risposta fu una domanda:
- "Dove vuoi andare?"
- "Non lo so", rispose Alice.
- "Allora, - disse lo Stregatto - non ha importanza".

Il lato positivo di questa libertà è che ognuno può implementare la soluzione come meglio crede.
Può capitare quindi che a seconda dell'umore, delle preferenze personali, o anche solo del tempo a disposizione (quante volte sarà capitato di avere tempi di sviluppo troppo serrati e scrivere del gran spaghetti code solo per poter concludere il lavoro) il risultato prodotto sia estremamente vario, ma funzioni comunque correttamente.

Il risvolto della medaglia, però, è che se si lavora in gruppo o in una comunità dove tutti possono leggere e attingere dal codice scritto da altri, ci si può trovare di fronte a codice incomprensibile: in questi casi il focus sul risultato finale non basta!
Se non si segue una certa linea di condotta, quello che si produce potrebbe risultare poco chiaro o troppo complicato e quindi generare confusione in chi non ha scritto direttamente quel codice. Soprattutto se chi legge non è un esperto e ha bisogno di capire qual'è la strada migliore da seguire.

read more

Nov 12, 2014

Scraping cheap airline tickets

It all started with a bet long time ago. One of my friends couldn't believe that it is actually possible nowadays to travel around the world with low-cost airlines.

Because the term low-cost airline is difficult to define we have agreed that we should bet on something easy to check - like the ticket price per kilometer. After some rough checks the bet was on: travel around the world, flying always in one direction (west or east) for less than €0.03 (3 euro cents) per kilometer (imagine Bologna-New York trip for less than €180).

TL;DR

I think I won. With some python help and many hours of coding I was able to find all the necessary tickets and stay below the price criterion. I have learnt a lot about airlines sales strategy... and something about ant colony optimization algorithm. The trip starts on November 15th, maybe you will meet me in the following months ;-)

Problem

Now the long story. Searching for cheap plane ticket is relatively easy task if you have strict dates and simple route (one or two stops). It starts to be more complicated if you want to stop in 3 places. But what if you have 6 stops or more? None of the existing online tools allows you to make such a query (if you know one - let me know). Things get more fuzzy if you don't have specific dates and just want to travel cheap. Searching manually is not an option: ticket price is likely to change daily and number of possible queries is quite big, I mean really big. Imagine you want to take 5 stops and search with margin of ± 10 days. It gives you 9765625 queries (5^10). Grabbing that data directly from airline database is also not doable. There is no standard approach, most of the small companies have their own system - others use providers that are much too expensive for a single user.

Sooner or later you will start to write a script.

read more