domenica 30 settembre 2012

Liberismo non liberista

Il liberismo, questa forma di liberismo, deve avere oggettivamente i giorni contati. Perché il sistema è talmente marcio da essere ormai putrido.

Porto un esempio.
Lo Stato è sotto scacco da Marchionne. Ora, non da Marchionne nel senso fisico del termine, ma da quelli che incarnano gli interessi di Marchionne e da quelli che ragionano come Marchionne.Vediamo rapidamente perché:

  •           Se lo Stato dovesse aiutare la Fiat che dovremmo dire dell’austerità, del debito pubblico da risanare? E di tutti i sacrifici? E dei tagli? Gioverebbero alla Fiat. Ma per quanto tempo? Non c’è il rischio che fra qualche anno si ritornerebbe al punto di partenza come succede puntualmente da cinquanta (50) anno? Classico esempio di costi diffusi e benefici concentrati
  •           Se lo Stato dovesse lasciare al proprio destino la Fiat, il problema uscirebbe dalla porta per entrare dalla finestra. Marchionne chiuderebbe gli stabilimenti che reputa “inutili e dispendiosi” passando la patata bollente allo Stato stesso. Tutti in cassa integrazione con conseguente spreco di risorse in quanto con la cassa integrazione l’operaio non ha la garanzia di ritrovare un posto di lavoro

Chi ci rimette è lo Stato sempre e comunque. E, come tutti sanno, lo Stato non è un’entità metafisica o astratta. Lo Stato è la rappresentazione dei cittadini italiani. Ciò vuol dire che abbiamo perso noi. E che dobbiamo pagarla comunque noi.
Ora mi chiedo: una forma di liberismo che regala le proprie disfunzioni allo Stato quanto è poi così liberista? Non è l’apologia del comunismo (rigorosamente scritto a lettera minuscola), ci mancherebbe. 

Francès

PS: L'incipit del post è "liberamente" ispirato alla canzone dei Baustelle Il liberismo ha i giorni contatiCanzone a me molto cara. 

venerdì 7 settembre 2012

Un pattern visto dal basso

Oggi descrivo l'Observer pattern.
Implementandolo si risolve in maniera elegante e senza particolare dispendio di energie il problema della gestione di eventi.
L'esempio che propongo è costituito da una serie di thread lanciati contemporaneamente: tramite questo pattern si controlla il loro stato per permettere di eseguirne un numero massimo predefinito alla volta (nel mio caso 15). I restanti rimangono in attesa che un thread completi la sua esecuzione. Chiaramente, questo pattern può essere usato in molti altri contesti, come per la gestione di una chat o per un'interfaccia grafica.

Ho creato una classe (ThreadService.java) che implementa l'interfaccia Observer (si cura di monitorare un evento che potrebbe essere generato) e un'altra interna (ThreadClass) ad essa che estende la classe astratta Observable (la classe avente l'evento "sotto controllo"). 
La classe interna è in realtà thread che, come si dirà più avanti, ha lo scope private.

Caratteristiche di ThreadService:
- singleton (tra l'altro, ha un costrutto privato!)
- implementa l'interfaccia Observer e il metodo astratto update
- contiene la classe privata ThreadClass
- il metodo addThread fa la new del thread e lo mette in una coda 
- il metodo execute controlla il numero di thread in esecuzione e li esegue se ci sono "posti disponibili"

Caratteristiche di ThreadClass:
- scope private per essere richiamato solo da addThread
- costrutto con un parametro per il nome del thread
- run è il body del thread

Ho tralasciato i metodi di Observer e Observable per vederli ora in dettaglio.
Alla fine del corpo del thread ho messo questi 3 metodi:
- addObserver: passa un oggetto Observer per "comunicare" che la classe in cui è chiamato questo metodo  addObserver deve cambiare lo stato (deve essere rimosso dalla lista dei thread)
- setChanged: segnala il cambiamento di stato
- notifyObserversnotifica agli osservatori (nel nostro caso a ThreadService), gli passa un  parametro (opzionale) e invoca il metodo update (di ThreadService nel nostro caso)

Invece l'implementazione di Observer  ha update come metodo chiave:
Banalmente, quando il thread completa la sua esecuzione richiama il metodo update di ThreadService il quale si occupa di togliere dalla coda il thread che ha appena finito la sua esecuzione e richiama l'execute così da verificare se ci sono thread in attesa. Bada bene che è assolutamente sbagliato pensare che il thread richiami direttamente il metodo update. Questo post ha un intento più pratico e meno teorico quindi spiego qua il funzionamento a basso livello. 

Infine, la firma di update ha due parametri, uno Observable e l'altro Object. Il primo indica la classe osservata in cui si è verificato il cambiamento di stato, il secondo serve per passare un valore qualsiasi (per es. al clic di un button passo da lì il suo valore...).
Ecco così spiegato il funzionamento del pattern: dall'Observable si segnala il cambiamento di stato, l'Observer registra tale evento.

Chiunque volesse testarlo può farlo "gratis" con tre passi:
1. crea un nuovo progetto Java
2. all'interno del Main inserisce il seguente codice:
ThreadService thread = ThreadService.getInstance();
for(int i =1; i<51; i++){
thread.addThread(i+"");
}
3. lancia il Main
Verranno chiamati in successione 50 thread.

Alla prossima,
Francès

domenica 2 settembre 2012

Paraolimpiadi, miracolo sportivo o crudeltà?


Le paraolimpiadi. Sicuramente sono un evento che porta alla ribalta tanta gente che non è stata baciata dalla Natura ma che ha voglia di sport e di mettersi in gioco. Sicuramente. E tanto di cappello a chi partecipa.
Poi arriva un Paolo Villaggio qualsiasi e ti spiazza. 
La mia non è crudeltà ma è crudele esaltare una finta pietà. Questo è ipocrita. Sembrano olimpiadi organizzate da De Amicis con dei 'personaggini' 
E, quasi con un pizzico di qualunquismo, dico che non ha tutti i torti.
Sono stato fermo 10’ a pensare. Non sapendo prendere posizione, e cioè non riuscendo a capire se Villaggio abbia ragione o meno, ho fatto anch’io una piccola riflessione. 
Se magari è giusto dare spazio a chi è diversamente abile, forse non è altrettanto corretto creareuna kermesse agonistica. Tre le motivazioni: 
  •  Tecnicamente è difficile (e anche crudele) suddividere per “sotto-discipline” gli atleti. Le menomazioni hanno diverse entità per cui stabilire un effettivo livello di handicap è proibitivo. Quindi quanto sono autentiche le medaglie assegnate?
  •  L'agonismo può spingere gli atleti a farsi violentare dalla cosiddetta “tecnologia medica” sperimentando soluzioni poco sicure per il proprio fisico. L’illusione dell’agonismo porta i diversamente abili a spingersi oltre ciò che il loro corpo può sostenere. È giusto ciò?
  • In ultimo, il problema della spettacolarizzazione di un tale evento. Non mi dilungo su questo punto perché poche righe non basterebbero ad esprimere un pensiero complesso. Ci vorrebbe un post ad hoc.
Più di questo non mi sento di scrivere.
Francès