Personal tools

April

Apr 27, 2012

HTML5 vs native app

HTML5 vs native app

HTML5 vs native app

Filed Under:

Riflessioni sullo sviluppo mobile

Anche quest'anno a marzo ho partecipato al Codemotion di Roma, evento che ormai è fisso nella scaletta annuale delle manifestazioni da seguire.

Stranamente, però, tutte le volte torno a casa con l'amaro in bocca, deluso da un'aspettativa regolarmente sovrastimata, al punto che sulle prime mi riprometto di non tornarci l'anno successivo.

Ma poi, pensandoci sopra un attimo, mi accorgo che le cose non stanno così.

Mi spiego meglio: se in un primo momento può sembrare di aver impegnato male le proprie risorse, non appena si riescono a metabolizzare le informazioni ricevute si arriva a un'immediata galvanizzazione della curiosità che porta a utili riflessioni.

backbone

 

 

read more

Apr 12, 2012

"Error cleaning up agent threads" - a never ending story

Filed Under:

A real case that has been solved

There are thousands of posts on Lotus Domino forum about this problem: "Error cleaning up agent threads".

I ran into a similar problem using a Java agent. I state that this agent has been inherited from another developer ;-) so it was not easy for me to initially understand what the problem could be.

In any case, every time the agent ended, I had the above error to the log.

In truth, none of the posts that I've seen has been helpful, until, by inspecting the code carefully and isolating the parts of it, I found the solution.

One line of code was:

Utils u = new Utils (..... some parameter ....);

 

where class was imported into the project.
Investigating the Script Libraries containing the class I discovered that it was defined as follows:
 
public class Utils extends AgentBase {

 

In practice, the class is defined to extend agentBase, so it's like it was an agent itself. The result is that each time it's loaded, a thread is istantiated.

When finished, the agent's thread was terminated, but the child's thread lost the reference to his father, causing the error.

This problem is naturally solved by changing the definition of the class:

public class Utils {

 

It may seem a trivial issue, but I guarantee that it is really sneaky, especially if you are working on other people's code.

As you can check on support forums, every developer has a different solution for this problem. In the end, my suggestion are:

- Never extend AgentBase in external class

- use recycle() methods to clean up memory object, expecially in loop code

Any other input on this issue is welcome.

Stay tuned!

Apr 02, 2012

OSEPA: Praga e Jihlava per il FLOSS

PloneGov mi ha regalato un'altra opportunità per viaggiare: questa volta, in Repubblica Ceca

Jihlava: dormire in un monastero e ostello domenicano, con le croci bianche e nere che mi riportano a Bologna. Una vegetazione da bosco alpino, un paesaggio dolcemente ondulato a una quota da bassa collina: Taccole grandi come Cornacchie, un Codirosso Spazzacamino che non vola via, un faggio millenario dietro la antica basilica domenicana.

Un clima suggestivo, che non mi fa scordare le molte aspettative per la presentazione sul modello di business sostenibile, basato su PloneGov, simile a quella presentata allo workshop OSEPA di Bologna, ma molto ampliata nel respiro e nel peso delle metafore.

Vysocina coat of arms

Ma, tornando all'ambiente che mi circonda, non posso che trovarmi a mio agio in una regione che nella propria araldica mette in primo piano un porcospino, in una nazione in cui il personaggio più amato dai bambini è una talpa :-). Qui a Jihlava, i negozi di biciclette e articoli sportivi superano di gran lunga quelli di alimentari. A dispetto della densità "norvegese" di centri abitati, sparsi in mezzo a questa natura così ben conservata, la Vysocina è una punta di diamante digitale (il suo primo presidente è stato un esperto di IT). E lo si nota anche nel Palazzo della regione, che affianca architettura classica e moderna, con molta luce, e anche qui animali su tutte le pareti, dentro e fuori dagli stemmi.

Palazzo regione Vysocina

E prima, Praga, così più larga e luminosa di quanto non avessi capito da foto e documentari: una bellezza sfacciata, ancor superiore al pur innegabile fascino.

Il piccolo investimento per seguire fin qui la Regione Emilia Romagna (grazie per l'invito!) è stato ampiamente compensato dal piacere di un keynote talk di fronte a un pubblico di nazionalità e estrazione variegata, e dalla scoperta della Repubblica Ceca che, già lo sapete, vale il viaggio.

 

Gli highlight degli interventi li potete leggere da soli sul sito della conferenza. Una rassegna di foto sulle nostre pagine facebook restituisce il clima rilassato e produttivo della quattro giorni (due di workshop a Praga e due di conferenza a Jihlava con sessioni parallele)

Osepa Conference - pubblico sala 2

Per quello che ci riguarda, la cosa più interessante è stato il dialogo sul procurement di soluzioni free software, con esperti della Commissione e protagonisti di esperienze pilota come quella Svedese, che ha suscitato l'interesse del team della Regione al cui seguito ho vissuto questa piacevole esperienza. Il tutto condito di relazioni di Amministratori locali estremamente determinati nel puntare sul software libero per la regione più avanzata su questo fronte, in ambito nazionale.

Logo OSEPA

Il quadro tracciato da OSEPA ha le sue ombre (tutti sono d'accordo che la classe politica va educata riguardo al free software) ma nel complesso è confortante: a margine, avere incontrato esperti di Plone, come Robert Kratky di Liberix, non è stata una coincidenza. Già la Plone Conference di Budapest aveva rivelato le numerose esperienze in atto in Europa Orientale.

Il prossimo appuntamento sarà a luglio a Bologna: spero di avere di nuovo l'opportunità di rivedere le persone interessanti, direi tutte, che ho incontrato.