Yii reloaded

logo Yii

Yii è il frameword MVC del momento, lo sto studiando e mi sono preso la libertà di ripensare un po’ al pattern di sviluppo MVC secondo un contesto che mi ha aiutato a chiarire alcune cose sul suo funzionamento. Ho scritto questo articoletto per ricordarmi che questo modo di vedere le cose me le ha fatte capire un po’ meglio. E, magari, può servire a qualcuno.

Un altro modo di pensare al pattern MVC.

JDK vs JRE

Sempre nell’ambito della guerra degli acronimi, un dubbio lecito che può venire quando qualche software ci richiede Java a bordo (lecito visto che lo mettono in evidenza nel sito dell’Oracle quando si vuole scaricare un ambiente di sviluppo o di esecuzione) è:

Ho bisogno di JDK o di JRE?

Qui la semplice risposta dell’Oracle:

“What Java Do I Need?” You must have a copy of the JRE (Java Runtime Environment) on your system to run Java applications and applets. To develop Java applications and applets, you need the JDK (Java Development Kit), which includes the JRE.

Il sito di Oracle con le pagine di download.

Earth Day 2012

22 aprile 2012

Earth Day 2012

WikipediaGoogleEarth day networkYouTube

Esperimenti con HL7

Healt Level Seven è uno standard di comunicazione che definisce di tutti gli standard per lo scambio, la gestione, l’integrazione, la condivisione e il reperimento di dati sanitari in formato elettronico.

Il messaggio Hl7 è un file di testo, una sorta di XML, ma non in formato markup.

Un messaggio Hl7 può essere di diversi tipi: contenere un referto strutturato (ad esempio i risultati di una analisi del sangue o di una spirometria), un referto PDF firmato digitalmente, una comunicazione di allineamento tra archivi o altro ancora.

Un messaggio è un testo distinto su più righe (segments). Ogni segmento ha un codice che ne definisce il contenuto (ad esempio PID, come Patient IDentification)

Ogni segmento è composta di campi (fields): nelle esempio del PID troveremo, in posizioni ben definite , informazioni come il cognome, il nome, il codice fiscale, la data di nascita del paziente. Ciascuna di queste informazioni è delimitata, all’interno della stessa riga, dal carattere pipe (|) e, al suo interno, lo stesso campo può anche essere suddiviso in più sottocampi delimitati dal carattere ^ (ad esempio, sempre in un segmento PID, l’indirizzo è contenuto tra due pipe e si trovano i campi, via, civico, cap, città, provincia delimitati da ^).

Analisi complessa

GNU OctaveSono tornato a far visita al mio Relatore di tesi, il prof. Mauro Bisiacco del Dipartimento Di Ingegneria dell’Informazione dell’Università di Padova. E’ stato un incontro piacevolissimo con una persona davvero speciale. Gli studenti lo adorano!

Incidentalmente, durante la chiacchierata, sono stato coinvolto in una questione riguardante un compito di Controlli Automatici, un dubbio sull’andamento di una funzione di trasferimento. La sera ho fatto ripartire i neuroni acciaccati che si occupavano di quegli argomenti e ne ho tratta una botta di gioventù. La mattina seguente gli ho mandato una mail con la soluzione qualitativa, era anche giusta. Mi sono preso lo sfizio di metterla in bella copia.

Il testo, redatto con LaTeX e con l’ausilio di GNU Octave per i grafici, un bellissimo clone open source di Matlab.

Alfresco: problemi a migrare verso la versione 4?

Ho trovato una interessantissima diatriba sui problemi incontrati nel migrare alla versione 4. Si è scomodato ad intervenire perfino il CEO di Alfresco Software.

Fino a metà il tono è costruttivo, poi ho lasciato stare. Vale la pena di leggerlo: http://bit.ly/HJDK4L

Lorem ipsum dolor sit amet…

Questo testo, scritto in un latino a dir poco maccheronico, è in uso dal XVII secolo come testo “demo”, come si direbbe adesso, per valutare l’impatto visivo di un testo scritto, il cui significato non è importante quanto la resa visuale dell’impaginazione.

La storia di questo strano testo, e di come sia coinvolto Cicerone, si trova tranquillamente su Wikipedia, ma in questo sito c’è addirittura un generatore di Lorem Ipsum 🙂

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam metus est, ultricies non feugiat eu, rhoncus et felis. Morbi in lorem in nisl ultricies ullamcorper. Etiam pretium adipiscing lorem, et congue…

Processi defunti in Linux

Processi in Linux

Oggi ho il problema che la macchina rallenta. Guardo i processi Linux e vedo un processo defunct. Google mi insegna che i processi defunct possono essere greedy.

“Lo ammazzo”, penso. Mica così facile. In informatica c’è anche il concetto di uccidere un defunto…

 $ kill -9 3462

ma il processo è ancora in piedi (e infatti li chiamano zombie).

Processi padri e figli

Google mi insegna che se il genitore del processo è a sua volta ancora vivo, può essere che non riesco ad eliminare il figlio. Ma chi è il padre di 3462? Non sapendo né leggere né scrivere faccio così

 $ ps -lax | grep 3462

ma scopro un metodo ancora più figo, l’albero dei processi

 $ pstree -p
 init(1)─┬─GoogleTalkPlugi(3281)─┬─{GoogleTalkPlug}(3282)
       │                       ├─{GoogleTalkPlug}(3284)
       │                       ├─{GoogleTalkPlug}(3285)
       │                       └─{GoogleTalkPlug}(3286)
       ├─NetworkManager(1129)─┬─dhclient(2566)
       │                      └─{NetworkManager}(2567)
       ├─acpid(1338)
       ├─anacron(1336)───sh(3017)───run-parts(3019)───apt(3025)───apt-key(3428)───wget(3437)
       ├─apache2(1784)─┬─apache2(1807)
       │               ├─apache2(1810)
       │               ├─apache2(3146)
       │               ├─apache2(3168)
       │               ├─apache2(3171)
       │               ├─apache2(3250)
       │               ├─apache2(3347)
       │               ├─apache2(3494)
       │               ├─apache2(3564)
       │               └─apache2(3601)
       ├─atd(1356)
       ├─avahi-daemon(1127)───avahi-daemon(1128)
       ├─bonobo-activati(2869)─┬─{bonobo-activat}(2870)
       │                       └─{bonobo-activat}(2881)
       ├─clock-applet(2931)───{clock-applet}(2943)
       ├─console-kit-dae(1133)─┬─{console-kit-da}(1134)
....
       ├─gvfsd(2705)
       ├─gvfsd-burn(2962)
       ├─gvfsd-metadata(2950)
       ├─gvfsd-trash(2908)
       ├─gweather-applet(2921)─┬─sh(3462)
       │                       ├─{gweather-apple}(2939)
       │                       └─{gweather-apple}(2975)
       ├─irqbalance(1350)
       ├─modem-manager(1131)
       ├─mysqld(1470)─┬─{mysqld}(1614)
       │              ├─{mysqld}(1615)
       │              ├─{mysqld}(1616)
       │              ├─{mysqld}(1617)
       │              ├─{mysqld}(1839)
       │              ├─{mysqld}(1840)
       │              ├─{mysqld}(1841)
       │              ├─{mysqld}(1846)
       │              ├─{mysqld}(1847)
       │              ├─{mysqld}(1873)
       │              └─{mysqld}(1912)
       ├─nmbd(2620)
       ├─notification-ar(2928)───{notification-a}(2938)
       ├─notify-osd(2905)───{notify-osd}(2906)
       ├─polkitd(1869)
       ├─pulseaudio(2716)─┬─gconf-helper(2808)───{gconf-helper}(2811)
       │                  ├─{pulseaudio}(2753)
       │                  ├─{pulseaudio}(2777)
       │                  └─{pulseaudio}(2802)
       ├─python(2925)───{python}(2958)
       ├─rsyslogd(1101)─┬─{rsyslogd}(1244)
       │                └─{rsyslogd}(1245)
       ├─rtkit-daemon(1863)─┬─{rtkit-daemon}(1866)
       │                    └─{rtkit-daemon}(1867)
       ├─samba(1679)─┬─samba(1703)
       │             ├─samba(1705)
       │             ├─samba(1712)
       │             └─samba(1714)
       ├─slapd(1365)───{slapd}(1368)
       ├─smbd(1093)───smbd(1243)
       ├─syndaemon(2876)
       ├─system-service-(3006)
       ├─trashapplet(2887)───{trashapplet}(2891)
       ├─udevd(457)─┬─udevd(704)
       │            └─udevd(706)
       ├─udisks-daemon(2775)─┬─udisks-daemon(2776)
       │                     └─{udisks-daemon}(2999)
       ├─upowerd(1865)
       ├─upstart-udev-br(453)
       ├─wnck-applet(2885)───{wnck-applet}(2892)
       └─wpa_supplicant(1383)

mmm troppo prolisso, meglio greppare:

 $ pstree -p | grep 3462
       |-gweather-applet(2921)-+-sh(3462)

Ecco cos’era! il programmino della situazione meteo

 $ kill -9 2921

Così è sparito anche il defunct, e il computer tira un sospiro di sollievo.

Link utili suill’argomento processi

Altri post su Linux

Problemino XML

Piccoli problemi che possono fare perdere un po’ di tempo.

Attenti ai caratteri <, & nei file XML, i parser non li digeriscono se non si trovano nei punti giusti!

Un piccolo TODO nel caso ci si imbatta in errori di tipo XML_ERR_NAME_REQUIRED

Neutrini: il comunicato ufficiale di OPERA

Traduco quello che si leggeva ieri 23 febbraio 2012 sul sito dell’Istituto Nazionale di Fisica Nucleare (INFN):

NEUTRINOS: STATEMENT ISSUED BY THE OPERA COLLABORATION

La collaborazione OPERA, nel continuare la sua campagna di verifiche nelle misurazioni della velocità del neutrino, ha identificato due problemi che possono alterare significativamente i risultati che sono stati comunicati. Il primo è legato all’oscillatore usato per le marcature temporali generate tra due sincronizzazioni con il GPS. Il secondo punto è relativo al collegamento in fibra ottica che trasposta il segnale dal GPS esterno all’orologio di riferimento di OPERA.
Queste due anomalie possono alterare il tempo di volo del neutrino in opposte direzioni. Mentre continuiamo le nostre indagini, al fine di di quantificare in modo non ambiguo l’effetto sui risultati osservati, la Collaborazione è in procinto di effettuare nuove misurazioni sulla velocità del neutrino non appena un nuovo gruppo di fasci di neutrini sarà disponibile nel 2012. Un rapporto esauriente sulle verifiche accennate poc’anzi e sui risultati verrà prontamente comunicato ai comitati scientifici e alle agenzie.

[Fonte: sito INFN]