No alcool, no party

Posto che piu' volte sono stato vinto dai fumi dell'alcool, traendone pure sommo godimento, mi accingo a difendere il divieto di servire bevande alcoliche dopo le due di notte, ma soprattutto a denigrare le critiche dei gestori dei locali, alle quali viene dato ampio spazio nei media senza che venga mai presa in considerazione il punto di vista del legislatore.

Non sono un proibizionista, assolutamente! Vedo pure di buon occhio la legalizzazione delle droghe leggere e non sarei neppure contro a quella delle droghe pesanti. Notare che legalizzazione e' diverso da liberalizzazione. Legale, libero...

Chi vive, sa che chi si devasta nei locali e' uso raggiungere un livello di ebbrezza adeguato per perdere il lume della ragione ben prima delle due... E per fare questo spende pure una barca di soldi! Se dopo le due invece di un cuba libre o di un gin lemon o della tanto di moda vodka red bull si beve un po' d'acqua non gli puo' che far bene.

Il problema messo in primo piano dai media, spogliato dai lustrini e dalle paillette, e' che i locali non riescono ad andare avanti senza alcolisti, e che senza alcol non c'e' divertimento! Forse i gestori temono che gli avventori, se sobri, capiscano quanto sia stupido sperperare soldi per andare in luoghi che offrono il nulla o poco piu'.
Ci manca solo l'appello ai clienti di questi posti a bere il piu' possibile prima delle due, perche' poi non si puo' piu'! Oppure l'appello a far bere amici astemi, causa la chiusura di un posto divertentissimo!

Ricordo a chi non lo sapesse che l'alcool e' una sotanza tossica e che crea dipendenza e che tutti gli amici che ho avuto la sventura di perdere sono periti in incidenti stradali causati da conducenti ubriachi.

La legge che limita la vendita di alcolici dopo le due e', di fatto, una limitazione delle liberta' personali. A mio avviso e' leggera e tollerabilissima, un investimento proficuo visti i vantaggi che porta.

Ex falso, Giuliano Ferrara

La logica e' scientifica, cinica e non lascia via di fuga, mi dispiace per te signor Ferrara.
Posto vero che Giuliano Ferrara sia intelligente, ne consegue che sia in grado di capire quello che dice o scrive.

In particolare l'intelligentissimo signor Giuliano Ferrara, tramite una associazione mentale i cui dettagli mi sono oscuri, collega la moratoria per la pena di morte all'aborto. [1]
Conoscendolo avrei pensato sfruttasse le stesse premesse per spalare vagonate di orride indefinibilita' sui magistrati, sulla maggioranza o per parlare bene di qualche ex piduista, tangentista o simili.

Gia' dal titolo si capisce tutto
Scrive Ferrara: "C’è anche una pena di morte, legale, che riguarda centinaia di milioni di esseri umani."
Prima di tutto non e' una pena di morte altrimenti sarebbe gia' in moratoria. L'intelligentissimo non l'aveva colto?
Legale... quanto da fastidio la legge a certe persone.
Sul numero non mi pronuncio, non ha alcuna rilevanza che siano decine o miliardi.
Sul fatto che un mucchietto di cellule sia un essere umano, nutro qualche perplessita' e vorrei che lei dimostrasse la veridicita' delle sue affermazioni, se possibile scientificamente.

Il fatto e' che del "ragionamento" fatto da Giuliano Ferrara c'e' ben poco che si salvi.

La tecnica
Il Ferrara pensa bene di fare leva su una parola forte ed enorme come morte per per propugnare, tra il lusco e il brusco, una sua visione, che mi pare distante anni luce dalla realta', della legge sull'aborto.
Nel seguito dell'articolo la sua penna continua a riempire il foglio di squallide e tristi descrizioni macabre, descrivendo la legge sull'aborto come uno strumento di sadici neonazisti devoti all'eugenetica, buttando nel calderone pure la pillola abortiva
Credo che il Ferrara, che non e' chiaro a riguardo, secondo me perche' non vuole, consideri come pratiche eugenetiche la diagnosi preimpianto, cosa che consente di risparmiare aborti successivi.

Uh?!
"E’ lo scandalo supremo del nostro tempo, è una ferita catastrofica che lacera nel profondo le fibre e il possibile incanto della società moderna."
E le guerre per il petrolio, il precariato, le morti bianche, la poverta' imposta a miliardi di persone nel mondo? Nelle sue graduatorie dove si collocano?

Non c'e' problema
"Si accettano irrisioni, perché le buone coscienze sanno usare l’arma del sarcasmo meglio delle cattive, ma anche adesioni a un appello che parla da solo, illuministicamente, con l’evidenza assoluta e veritativa dei fatti di esperienza e di ragione."
Sul fatto che questo appello parli da solo ho i miei seri e sani dubbi... su cosa dica no! Non dice niente. Quello che in coscienza posso dire, accantonando polemiche sterili, e' che sull'aborto c'e' una legge voluta dalla gente e che essendo un prodotto umano e' perfettibile: nulla vieta di cambiarla :)
Per "l’evidenza assoluta e veritativa dei fatti di esperienza e di ragione" non esiste proprio caro Ferrara! Non e' evidente neppure cosa dovrebbe essere evidente!

L'affronto alla logica del Ferrara mi riempie fastidio, ma per fortuna so come porvi rimedio!
Penso a Giuliano Ferrara in una vasca da bagno, con Berlusconi e Dell'Utri che gli pisciano addosso, Previti che gli caga in bocca e la Santanchè in completo sadomaso che li frusta.

[1] http://www.la7.it/blog/post_dettaglio.asp?idblog=GIULIANO_FERRARA_-_Gli_editoriali_11&id=1521

Calcolo delle probabilita' nei giochi di carte

Impariamo a giocare a carte scientificamente
La base per ogni calcolo che si rispetti nel gioco delle carte si basa sulla conta del numero di combinazioni possibili. Per questo motivo e' stato sviluppato il calcolo combinatorio: nome quanto mai azzeccato! [1]
Prendiamo un gioco popolare quale il Poker e cominciamo a porci delle domande.
Quante possibili combinazioni di 5 carte mi possono capitare in mano partendo da un mazzo di 52 carte?
La risposta a questo problema e' dato dal coefficiente binomiale [2] di 52 su 5 ed equivale a 2598960.

Adesso ci si puo' chiedere qual'e' la probabilita' di avere un sottoinsieme di queste carte: per esempio quante sono le combinazioni di 5 carte di un unico seme (il colore)?
Per avere la risposta bisogna considerare che per ogni seme ci sono 13 carte. Il coefficiente binomiale di 13 su 5 e' pari a 1287. Moltiplicate per 4 (il numero dei semi) e avete il numero di combinazioni che vi danno il punto desiderato (5148).
La probabilita' di avere servito questo punto e' dato dal rapporto delle combinazioni buone rispetto a quelle possibili, in questo caso 5148/2598960=0.00198, corrispondente a circa lo 0.2%.
Il reciproco del numero ottenuto vi dice ogni quante mani, mediamente, capita di vedersi serviti un colore (circa 500).

Qual'e' la probabilita' di vedersi servita' una scala colore? Di 1287 combinazioni per ogni seme, solo 10 vi danno una scala. Considerate il seguente schema:
A 2 3 4 5 6 7 8 9 10 J Q K
A 2 3 4 5 6 7 8 9 10 J Q K
A 2 3 4 5 6 7 8 9 10 J Q K
...
A 2 3 4 5 6 7 8 9 10 J Q K
A 2 3 4 5 6 7 8 9 10 J Q K
Nella prima riga avete tutte le carte di un seme.
Se contiamo le scale, la prima comincia con l'asso, la seconda con il 2, la terza con il 3 e cosi' via fino alla nona che inizia con il 9. La decima e' la scala massima 10 J Q K A.
Dunque le scale colore possibili sono 40. A voi il calcolo di quanto sia frequente vedersi servita una scala colore.

A presto per ulteriori aggiornamenti.
Se avete richieste vi prego di farmi sapere, magari posso togliervi qualche curiosita'!

[1] http://it.wikipedia.org/wiki/Calcolo_combinatorio
[2] http://it.wikipedia.org/wiki/Coefficiente_binomiale

Numeri da trionfo!

Introduzione ad un ciclo di lezioni sul gioco del trionfo

Il trionfo e' un gioco di carte molto popolare dalle mie parti!
Io sono un giocatore appassionato, come gran parte dei miei amici, e modestamente me la cavo molto bene. I motivi del mio successo sono in gran parte dovuti alla lunga esperienza acquisita nel corso della mia carriera di giocatore.
L'esperienza permette di sapere come potersi comportare in determinate circostanze: il gran numero di partite giocate insegna quale che sia la strada che dara' le maggiori opportunita' di successo.
E se uno non avesse pazienza? Non c'e' problema!
I giocatori piu' esperti sono spesso prodighi di consigli, divulgate mediante sonore bestemmie, soprattutto perche' cosi' possono pavoneggiarsi dimostrando la loro abilita'. Io sono uno di quelli... :p

A dire il vero credo di sapere qualcosa di piu' della gran parte dei sedicenti esperti: il calcolo combinatorio.
Vi e' mai capitato di guardare le partite di poker in tv e di vedere le percentuali di successo dei giocatori sullo schermo? Quelle vengono calcolate proprio in maniera analoga a quanto faccio io per darvi i seguenti risultati. Esula dagli scopi di questa guida spiegarvi il perche', ma chi fosse interessato puo' contattarmi.

Probabilita'
  1. Il numero di modi possibili di distribuire 10 carte da un mazzo di 40 e': 847'660'528
  2. La probilita' di avere la cricca (1,2,3 dello stesso seme) e': 4.86 % (all'incirca una mano ogni 20 giocate dovreste ritrovarvi con una cricca in mano)
  3. La probabilita' che qualcuno dei giocatori abbia una cricca e' 4 volte superiore (1 mano ogni 5 ci dovrebbe essere qualcuno che ha la cricca)
  4. La probabilita' che proprio tu metta con la cricca e' 4 volte inferiore: (1 mano ogni 80 circa)
Solitamente una partita dura 8 mani: in media, ogni due partite e mezzo, qualcuno mettera' con la cricca.
Se non siete voi sbraitate pure contro la sfiga... se siete voi vantatevi di essere un buon giocatore!!!

Update
Proprio ieri sera mi e' capitata una partita "sfigata"... Si comincia con una cricca avversaria, si prosegue con una mano anonima nostra, si continua con un'altra cricca (quinta, con cavallo franco) avversaria! Risultato finale 46 a 26 per gli avversari... Ci e' pure andata bene! Inutile dire che le partite successive hanno riequilibrato questa anomalia statistica.
In ogni caso la probabilita' dell'evento non e' improponibile, corrisponde allo 0.015% ogni 3 mani. Statisticamente mi aspetto che l'evento non si riverifichera' prima di un 20mila mani...

Sempre parlando di sfiga, ci si puo' chiedere quale che sia la probabilita' di avere tutti scartini (carte comprese tra il 4 e il 7). Beh, non credo sia mai capitato a nessuno. In ogni caso la probabilita' e' estremamente bassa! Pensate che, a fronte di quasi un miliardo di modi possibili di distribuire le carte, solo in 8008 casi avrete esclusivamente scartini.
La probabilita' che ho calcolato risulta essere pari a: 9.45x10-6, corrispondente a circa una volta ogni 10000 mani!

La buona sorte e' piu' probabile
Ben piu' alta la probabilita' di non avere neanche uno scartino, pari allo 0.23%!

Spero di potervi dare piu' informazioni a breve :)

P.s.: Tempo fa scrissi un manuale relativo al gioco del trionfo. La stesura fu estremamente rapida, mirava ad essere divertente ed e' priva di qualsiasi fondamento scientifico. Magari potreste essere interessati a darci un'occhiata! [link]
P.p.s.: Per leggere tutti i post relativi a questo gioco clicca sull'etichetta trionfo.

Polca II all'ESRF

Ho scoperto che mi stavano spiando!
All'inizio del 2007 insieme a colleghi dell'IASF di Bologna e di Palermo e ad un collega dell'Universita' di Coimbra, sono andato in uno dei piu' importanti sincrotroni del mondo, l'ESRF di Grenoble.

A distanza di un anno ho scoperto che c'e' una galleria di immagini impietose che sono state scattate nei momenti di sconforto ed esaltazione che si altalenavano in quelle ore frenetiche!
Il tempo a nostra disposizione era di solo una settimana e il lavoro da fare era immane. Le uniche ore libere erano quelle passate a mangiare o a dormire, ed essendo i ritmi cosi' sballati e gli orari della mensa molto rigidi, vivere decentemente era un grosso problema.

In realta' il tempo e' volato e con il duro lavoro svolto sono arrivate anche le soddisfazioni.
Vi saluto con un'immagine che mi mostra la lavoro alle 21 e 33 mentre osservo un picco assorbimento!
Ah! Che bella la vita del fisico!

P.s.: alla fine della web gallery c'e' un servizio del TG portoghese (prima serata, non sono mica degli straccioni come noi...) che descrive il nostro lavoro!

PyQt4: inserire una icona nel vassoio di sistema

Una applicazione ospitata nel vassoio di sistema (system tray, in inglese) da grandi vantaggi, quale quello di essere facilmente accessibile, pur occupando uno spazio ridotto. Lo svantaggio di questo tipo di applicazioni e' che spesso il vassoio di sistema e' pieno zeppo di icone.

Qualora trovaste indispensabile aggiungere nel vassoio di sistema la vostra iconcina ma non sapete come fare, allora siete nel posto giusto!
Ecco un esempio commentato che vi spieghera' come cominciare
from PyQt4 import QtCore, QtGui
# Creiamo un'applicazione Qt, ...
app = QtGui.QApplication([])
# e un'icona
icon=QtGui.QIcon("/usr/lib/firefox-2.0.0.10/res/samples/raptor.jpg")
# Mettiamola nel systray
systray=QtGui.QSystemTrayIcon(icon)
# e mostriamola
systray.show()
# Interagiamo con l'utente
titolo="Titolo" # Ma che fantasia!
messaggio="Messaggio per l'utente!\nClicca per chiudere l'applicazione"
tempo=10000 # in millisecondi
systray.showMessage(titolo,
messaggio,
QtGui.QSystemTrayIcon.Information,
tempo)
# connettiamo il click alla chiusura dell'applicazione
QtCore.QObject.connect(systray, QtCore.SIGNAL("messageClicked()"), app.quit)
# Eseguiamo l'applicazione
app.exec_()

Ovviamente potete cambiare il titolo, il messaggio, l'icona, ecc...
Quel che e' certo e' che per rendere l'applicazione interessante e fruibile potreste aggiungerci un menu' contestuale e altre amenita' e impostare connessioni piu' sensate.

PyQt4: creare connessioni signal slot senza usare Qt designer

Qt designer 3 permetteva di creare connessioni a funzioni definite dall'utente. Questa caratteristica e' stata rimossa nella versione 4 poiche' si e' preferito rimanere quanto piu' fedeli possibile al concetto che il designer serve per disegnare e non per programmare.
Le connessioni andranno quindi scritte a mano nel codice.

Il metodo da usare per le connessioni e' QtCore.QObject.connect. Al posto di QtCore.QObject ovviamente mettere qualsiasi oggetto erede di questa classe (una QApplicatio per esempio). Vediamo quali sono gli argomenti corretti da inserire in questo metodo.
Le connessioni ammesse sono tra uno o piu' segnali con uno o piu' slot o segnale e sono schematizzate qui di seguito:
QtCore.QObject.connect(widget1, Segnale, Funzione o metodo Python)
QtCore.QObject.connect(widget1, Segnale, widget2, Slot)
Nel primo caso, che molto probabilmente e' il piu' frequente, viene emesso un segnale dalla widget1 e viene collegato ad una funzione o ad un metodo definito nel nostro codice.
Nel secondo caso il segnale viene collegato ad uno slot della widget 2.

Allo stesso modo e' possibile scollegare gli oggetti in questione con il metodo QtCore.QObject.disconnect.

Uno sguardo a Qt designer

Scrivere interfacce grafiche non e' una cosa da ridere, disegnarle si'!
Il concetto dietro al favoloso programma che permette di disegnare interfacce grafiche per le librerie Qt, e' che le applicazioni grafiche sono costituiti di tanti elementi interagenti tra loro: le widget (o i widget? boh?!).

Widget in inglese significa grosso modo "aggeggio. robo", ma nel contesto della programmazione, detta molto alla buona, un(a) widget rappresenta qualsiasi elemento autoconsistente dell'interfaccia grafica: un bottone, uno slider, una spinbox, una combobox, un layout, ecc...

Le widget si possono combinare insieme per creare nuove widget piu' complesse: per esempio, se prendiamo una spinbox e colleghiamola ad uno slider in maniera tale da collegare la mutua variazione di uno all'altro, otteniamo una nuova widget.

L'interazione: il meccanismo signal-slot
L'interazione tra le widget contenute nell'interfaccia grafica avviene a livello di applicazione: tutte le volte che accade qualcosa (si preme un bottone, si digita del testo, una funzione fa qualcosa di interessante, ecc...)un segnale puo' essere emesso. Se una o piu' widget sono in ascolto di quel segnale (hanno uno slot connesso a quel segnale, nel lessico Qt) all'atto della ricezione possono decidere di fare qualcosa.

Cosa puo' fare designer?
In sostanza designer puo' fare principalmente due cose:
  1. disporre e organizzare le widget all'interno di un form (una finestra)
  2. mettere in comunicazione le widget
  3. utilizzare le funzioni predefinite delle widget
Cosa non puo' fare:
  1. creare nuove widget
  2. creare nuove operazioni che coinvolgano una o piu' widget

E dopo aver disegnato?
Dopo aver utilizzato qt designer potrete salvare il vostro form. L'estensione standard e' ".ui", che non e' altro che un file XML particolare. Cosi' com'e' non vi servira' a molto, anche se a volte puo' essere utile aprirlo con un editor di testo per modificarlo.
Questo file andra' incluso, previa opportuna "compilazione", nelle vostre applicazioni.
Per trasformarlo in codice Python potete usare il programma "pyuic4".

Il codice cosi' ottenuto e' utile che sia separato dal codice scritto in altri modi, visto che una modifica tramite qt designer andra' a sovrascrivere eventuale altro codice.

PyQt4: un tutorial facile facile

Python e qt4 sono un binomio vincente che permette a tutti di realizzare velocemente applicazioni con un accattivante interfaccia grafica. Vediamo come!

Nel corso del mio lavoro di scienziato mi e' capitato di dover sviluppare interfaccie grafiche a programmi scritti da me o da qualcun altro. La prima che sviluppai fu in IDL (per dirla all'ammericana... a pain in the 455!)
Poi mi sono avvicinato alle librerie wx, attratto dalla loro portabilita' e dal fatto di poterle utilizzare con Python. Programmare con le wx mi ha dato parecchie soddisfazioni, ma mai quanto programmare con PyQt4!

Come si fa?
Ora vi mostro come essere operativi da subito!
Realizzeremo un software minimale, in grado di accettare parametri di input e rielaborarli, presentando il risultato ottenuto all'utente!
Posto che le librerie siano installate, aprite qt4 designer:
/usr/lib/qt4/bin/designer # per mandriva
Se designer vi apre una marea di finestre e non vi piace potete usare la modalita' "docked windows" (si setta da un dialogo che si apre dal menu' della finestra principale: "Edit->Preferences...").

A questo punto create un nuovo Form dal menu' file. Per questo tutorial scegliamo la strada della comodita': scegliete "Dialog with buttons: bottom" (vedi Fig. 1)!
Fig.1: Cominciamo da qualcosa di gia' preimpostato
Se tutto e' andato bene dovreste avere qualcosa di simile a quanto mostrato in figura 2... Ora siete pronti a lavorare sul serio!
Fig. 2: L'ambiente di lavoro e' pronto!
Come vedete a sinistra ci sono elementi per creare la parte grafica della nostra applicazione. Mettiamone uno per l'input (il LineEdit) e uno per l'output, un text browser (Fig. 3):
Fig. 3: Inseriamo widget per l'input e l'output
Come vedete fa schifo! Ma non e' un problema! Basta
cliccare su una parte vuota del dialog e poi sul bottone "Lay Out Vertically"... Gia' questo e' sufficiente per ottenere un risultato piu' che gradevole (Fig.4)!
Fig. 4: l'interfacia e' pronta!
Salvatelo in una directory che vi piace con il nome di "myGui.ui" (o quello che vi pare...).
Bene! La parte grafica e' finita... anche se di Python, per ora, non c'e' neanche l'ombra!!!

Comincia la pythonificazione!!!!!
Ora dovrete trasformare la vostra applicazione in codice Python. Facilissimo, basta usare il comando:
pyuic4 myGui.ui -o myGui.py
e siete a posto! Se non trovate pyuic4 probabilmente dovrete installare le librerie di sviluppo di qt4 (per mandriva urpmi python-qt4-devel).
Ora create un altro file chiamato myApp.py, che vi servira' per usare la GUI e per farle fare qualcosa di interessante.

Il motivo per cui e' comodo usare due file e' che se volete potete modificare la GUI con designer e poi riconvertirla in codice Python senza preoccuparvi di perdere del codice!

Nel file metteci questo codice:
#!/usr/bin/env python
from myGui import * # Importa la parte grafica

# La funzione che fa girare il programma
app = QtGui.QApplication([]) # Crea un'applicazione Qt, ...
Dialog = QtGui.QDialog() # ... un dialogo, ...
ui = Ui_Dialog() # ... e una user interface.
ui.setupUi(Dialog) # Infila il dialog nella user interface

def run():
Dialog.show() # mostra il dialog precedentemente creato
return app.exec_() # esegue l'applicazione ed esce dal
# programma ritornando lo stesso intero che ritorna app.exec_()

if __name__ == "__main__":
run()
Il comando python myApp.py gia' dovrebbe presentarvi la vostra interfaccia, perfettamente funzionante: se cliccate sui pulsanti si chiudera'! E cosa doveva fare di piu'?!

Facciamo fare qualcosa di utile alla nostra applicazione!
Effettivamente il programma non e' stato istruito sulle azioni da compiere. La cosa piu' stupida che mi viene in mente e' copiare quello che mettiamo in input, rielaborarlo, e presentarlo come output. Modificate il codice come mostrato aggiungendo le righe in rosso.
#!/usr/bin/env python
from myGui import * # Importa la parte grafica

# La funzione che fa girare il programma
app = QtGui.QApplication([]) # Crea un'applicazione Qt, ...
Dialog = QtGui.QDialog() # ... un dialogo, ...
ui = Ui_Dialog() # ... e una user interface.
ui.setupUi(Dialog) # Infila il dialog nella user interface

# Reimpostiamo la gestione del bottone Ok
def action():
"""Quando Ok viene premuto ricopia il testo in grassetto nel textbrowser"""
ui.textBrowser.setText("%s" % ui.lineEdit.text())

app.disconnect(ui.buttonBox,QtCore.SIGNAL("accepted()"),Dialog.accept)
app.connect(ui.buttonBox,QtCore.SIGNAL("accepted()"),action)

def run():
Dialog.show() # mostra il dialog precedentemente creato
return app.exec_() # esegue l'applicazione ed esce dal
# programma ritornando lo stesso codice che ritorna app.exec_()

if __name__ == "__main__":
run()
Le righe in piu' ridefiniscono il comportamento del bottone Ok, facendogli eseguire il codice nella funzione "action".
Facile no!
Adesso e' compito vostro far fare ai vostri programmi qualcosa di utile per voi e il modo della comunita' open source!

Se avete dubbi o suggerimenti per migliorare questo micro tutorial vi prego di contattarmi!

Migrare da KDE3 a KDE4

Siete pronti per il desktop del futuro?
Se la risposta e' si', ecco alcuni consigli per essere immediatamente operativi.

La migrazione da KDE3 a KDE4 puo' essere piu' indolore di quanto crediate, ve lo dico per esperienza personale.
Se siete utilizzatori di KDE3 dovreste avere nella vostra home directory una cartella nascosta, chiamata ".kde/", che contiene tutte le impostazioni dei programmi: posta, rubrica, password salvate, configurazione di kicker, ecc...
Prima di combinare casini irrecuperabili e' bene fare un backup di questa directory.
cd $HOME
tar cjf .kde.tar.bz2 .kde/
Fatto questo create un link simbolico per far utilizzare le impostazioni al nuovo ambiente.
ln -s .kde .kde4
Qualora la directory .kde4 fosse gia' presente dovrete cancellarla o rinominarla.
Ora siete pronti per avviare una sessione KDE4 vicina ai vostri bisogni.

Data l'evoluzione radicale alcune impostazioni andranno ripetutte: ad esempio, il wallpaper andra' reimpostato a mano, dato che il desktop classico e' stato rimpiazzato da plasma.

Curiamo windows con software open source

Credo che tutti gli utenti di windows farebbero bene a dare un'occhiata a al progetto OSSWIN CD.
Gli sviluppatori di Trinidad e Tobago hanno creato un cd molto ben fatto che raccoglie i migliori software open source in circolazione per windows.
Di collezioni simili ne esistono realmente molte, ma dalle ricerche che ho effettuato questo pare il piu' vitale e di sicuro il piu' recente (e' aggiornato al 10 Dicembre di quest'anno). Se volete potete scaricare e masterizzare l'immagine ISO del cd, oppure trarre ispirazione dal sito per scaricare i singoli programmi singolarmente.

Tra i software presenti: firefox, openoffice e gimp, giochi, editor audio e video, programmi educativi e scientifici, una stampante pdf... Una lista esaustiva e' impossibile da redigere, vista l'immane quantita' di cose inserite nel cd, per questo vi invito a dare un'occhiata sul sito del progetto: i contenuti sono talmente ricchi da permettervi di scoprire che il vostro pc e' in grado di fare cose che manco vi immaginavate!

Natale e' il periodo per farsi regalare un pc! Dopo i primi spupazzamenti ci si rende conto che un in realta' un pc serve a ben poco senza software per sfruttarne le potenzialita' e il software costa...
L'utilizzo di questo cd diventa per voi una manna:
- zero spesa molta resa;
- e' tutto legale;
- non rischiate di essere infettati da virus, trojan e menate varie.

Buon divertimento e buon Natale!

KDE4 for Mandriva 2008.0

Versione Italiana

11 Jan 08: The instructions have been update for the latest stable release

KDE 4.0 Release Candidate 2: let's try it on Mandriva linux
People have been drooling for it since a long time, so I will not waste time...
The magic spell to add the urpmi sources is the following:
urpmi.addmedia kde4 ftp://ftp.kde.org/pub/kde/unstable/latest/Mandriva/2008.0/i586 with media_info/synthesis.hdlist.cz
Once the media have been added, I suggest you to update your packages and to follow the suggestions:
urpmi --auto-select
Now you are ready to roll the dice! KDE4 will be installed with the following command:
urpmi kdebase4 kdeartwork4 kdeedu4 kdegames4 kdegraphics4 kdemultimedia4 kdenetwork4 kdepim4 kdeutils4
Everything worked flawlessly for me, and in a 20 minutes I could have my first minutes of joy with the amazing plasma!

It is fair to say that the stability and speed of KDE4 cannot be compared with the mature KDE version (3.5.8) I am still running, but it is only matter of time: soon KDE4 will become a wonder. Give developer time to migrate to the new environment and you will see!

If you are shy and do not want to abandon the loyal and friendly KDE3 you have been using for years, I strongly suggest you to try some pieces of KDE4 that are already stable for daily use, like the amazing okular (I did not know I could play with PDF so much since I tried it).

If you want you can add to your .bashrc file the following line:
export PATH=${PATH}:/opt/kde4/bin
Now, even if you log in in a KDE3 or Gnome session you can use easily the KDE4 apss: okular, plasma, dolphin for a example.

If you want to try the new Oxygen window decoration and the new capabilities of the window manager, you are invited to run the following commands:
/opt/kde4/bin/plasma
/opt/kde4/bin/kwin --replace &

KDE4 su Mandriva 2008.0

English version!

Istruzioni aggiornate per installare KDE 4.0.0, versione stabile

E' finalmente uscita la Release Candidate 2 di KDE 4.0: proviamola su Mandriva

Vista l'attesa spasmodica non mi dilungo in ciance!
La formula magica per aggiungere la fonte dei pacchetti rpm e' la seguente:
urpmi.addmedia kde4 ftp://ftp.kde.org/pub/kde/unstable/latest/Mandriva/2008.0/i586 with media_info/synthesis.hdlist.cz
Fatto questo vi incoraggio ad un sano:
urpmi --auto-select
che non fa mai male!
Fatto questo potete installare KDE4 con il seguente comando:
urpmi kdebase4 kdeartwork4 kdeedu4 kdegames4 kdegraphics4 kdemultimedia4 kdenetwork4 kdepim4 kdeutils4
A me e' filato tutto liscio e per la prima volta ho potuto divertirmi con plasma!

La stabilita' e la velocita' di KDE4 non e' ancora paragonabile al fidato 3.5.8 che ho ancora installato, piuttosto mi verrebbe da pensare windows Vista... anche se le richieste hardware sono decisamente piu' parche!

Se siete timidi e non volete abbandonare il fedele KDE3 che da anni vi accompagna, vi consiglio fortemente di provare alcuni pezzi pregiati come ad esempio okular (veramente stupendo e con un avanzato grado di maturita') da una sessione di KDE3 o anche gnome, perche' no!
Aggiungete in fondo al vostro file .bashrc la seguente riga (ricordatevi di eliminarla quando uscira il kde4 ufficiale):
export PATH=${PATH}:/opt/kde4/bin
A questo punto rilogattevi e provate a lanciare i programmi kde4: okular, plasma, dolphin

Personalizzazione blog: aggiungere un vostro foglio di stile css

Se volete aggiungere ad un blog di blogspot un vostro foglio di stile CSS (Cascading Style Sheet) personalizzato avete due alternative.
  1. copiare il codice nella sezione <head> del template HTML
  2. linkarlo aggiungendo una riga di codice, sempre nella sezione <head> del template, simile a questa:
    <link rel="STYLESHEET" href="http://.../style.css" type="text/css"/>
Il vantaggio del secondo approccio e' che potrete condividere lo stesso stile in siti diversi senza dover ogni volta eseguire le modifiche su ciascuno di essi.

MIB vs MDE: la resa dei conti

Tempo fa mi ero chiesto: MIB vs MDE: come andra' la convivenza?
Oggi ho la risposta: possono convivere se qualcuno gli sta dietro!

Ecco la mia esperienza personale.

Partivo da una Madriva 2008.0 a cui avevo da tempo installato pacchetti MIB. Dopo aver configurato le fonti di installazione aggiungendo i pacchetti MDE, ho dato speranzoso un bel:
urpmi --auto-select
Speranza vana visto che non tutti i pacchetti sono stati installati! Se devo essere sincero qualche scherzeto me lo aspettavo, ma ci sono rimasto male quando ho scoperto che i problemi in realta' sono stati soltanto due: un numero piuttosto contenuto a dire il vero...

Il primo e' relativo a KDE 3.5.8. Per installare questa versione occorre rimuovere alcuni pacchetti "bloccanti" con il comando:
rpm -e --nodeps kdetoys libkdetoys1-kweather kdepim-knotes
Per reinstallarli (nella nuova versione) e' sufficiente dare il comando:
urpmi kdepim-knotes kdetoys
Della libkdetoys1-kweather non c'e' piu' bisogno :)

A questo punto date nuovamente il comando:
urpmi --auto-select
per reinstallare la parte mancante di KDE 3.5.8.
Purtroppo non e' finita qui! Neanche stavolta completera' l'operazione perche' c'e' un problema di dipendenze relativo alla versione MIB di openoffice.
Per risolverlo disinstallate i pacchetti che vi dice creano conflitti, nel mio caso:
rpm -e openoffice.org-l10n-it openoffice.org-l10n-en_GB
e poi spostatevi nella cartella /var/cache/urpmi/rpms/ eseguendo i seguenti comandi:
cd /var/cache/urpmi/rpms/
rpm -Uvh openoffice.org*
Un successivo urpmi --auto-select dovrebbe ancora lagnarsi per una libreria di KDE (libkdegraphics0-common), di cui in realta' non avete bisogno!
Correte a godervi l'ultima fiammante versione di KDE 3.5.8 sulla vostra Mandriva 2008.0 e buon divertimento.

P.s.: in caso di problemi fatemi sapere! Vi aiutero' volentieri!

Personalizzazione blog: modificare caratteri e colori

Espando quanto gia' detto a proposito della personalizzazione di un blog su blogspot
Ammesso che vi intendiate di HTML, almeno quanto basta per sopravvivere, provero' a rendere comprensibile come modificare a vostro piacimento un template su blogspot.
Alla fine, ma solo alla fine ;-), vi renderete conto che non e' cosi' difficile.

Sia ben chiaro che quanto sto per dirvi non l'ho letto da nessuna parte ed e' tutto frutto di esperienza personale, quindi fidatevi ma prima di fare qualsiasi modificate fate sempre un backup del vostro template!

Piuttosto che servirvi su di un piatto d'argento le modifiche da fare per ottenere un certo risultato (ad esempio avere un blog a tre colonne), credo sia piu' utile insegnarvi a capire come modificare il template per ottenere il risultato che volete voi.

In sostanza mi auguro percorriate i miei passi, ma evitando di sbagliare strada mille volte come e' successo a me! Siccome volevo capire e realizzare qualcosa che mi fosse realmente cucito addosso, ho cominciato dalla base: il template minima lefty. Questo e' uno dei piu' semplici template che blogspot mette a disposizione: e' uguale a quello di base solo che la sidebar invece che essere a destra e' a sinistra.
La prima cosa che ho notato e' che all'inizio sono dichiarate alcune variabili relativi ai colori e ai caratteri del blog. Ecco come gestirli al meglio.

Personalizzazione di caratteri e colori
Analizzando il codice HTML di partenza di "minima lefty" (ad essere precisi sarebbe codice XML), ho notato che inizialmente vengono dichiarate delle variabili, che non sono altro che quelle modificabili nella finestra di selezione dei colori e dei caratteri del vostro blog.
Le variabili potete vederle nell'immagine qui a sinistra.
Adesso possiamo metterci le variabili che vogliamo e gestirle come piu' ci pare!
Non ci credete? Andate su "Modifica HTML" e aggiungete all'inizio, tra le variabili una vostra nuova variabile, come mostra il testo evidenziato nella figura.

Molto bene! Salvate e andate su "Caratteri e colori". Sorpresa! Il colore Prova e' stato aggiunto a quelli che potete modificare :) come si vede nella seguente immagine:
Adesso possiamo utilizzare nel codice la variabile provacolor dove piu' ci piace mettendogli davanti il simbolo $ (ad es. $provacolor).

Personalizzazione blog

Mamma mia quanto tempo ci vuole per ottenere qualcosa di soddisfacente!

Per evitarvi di perdere tutto il tempo che ho perso io vi do qualche dritta!
Alla fine le cose da fare sono semplicissime, dopo averle fatte una prima volta!

1) Nuvola dei tag
Mi e' sempre piaciuta un sacco la cosiddetta' nuvola dei tag, che mostra le etichette del blog con caratteri di dimensioni diverse in proporzione alla loro ricorrenza nel blog.
Trovate tutte le informazioni che volete a questa pagina

2) Inserire sezione "Ultimi commenti"
Quando ho scoperto come fare mi e' venuto un coccolone: la facilita' e' estrema, basta sapere come fare!
Ogni blog di blogspot ha delle informazioni reperibili sotto forma di feed. I commenti sono una di queste e quelli di questo sito si possono ottenere all'indirizzo http://alepisa.blogspot.com/feeds/comments/default.
Ovviamente quelli di un altro blog di blogspot si ottengono cambiando la parte in grassetto :)
Scoperto questo, per inserire una sezione che visualizzi gli ultimi commenti, cio' che mi serviva, ho aggiunto un elemento "feed" alla pagina (vedi immagine) e come indirizzo gli ho messo quello che vi dicevo (http://alepisa.blogspot.com/feeds/comments/default).



3) Inserire una terza colonna
Qui il discorso e' un po' piu' complicato e andrebbe approfondito.
Quando andate nella sezione modifica HTML del vostro blog quello che vi trovate e' un codice XML che e' diviso grosso modo in due sezioni.
Nella prima parte c'e' lo stile della pagina (colori, dimensioni, caratteri, margini e sfondi).
Nella seconda, da dove trovate il tag HTML sono posizionati gli elementi della pagina, contenuti in blocchi <div>

Per adesso accontentatevi di questo. Prometto che tornero' per darvi una mano.

MIB vs MDE: come andra' la convivenza?

Ci siamo! Avevo gia' parlato di due tra le migliori sorgenti di pacchetti per mandriva nel seguente articolo: MIB vs MDE.

Finalmente MDE e' disponibile per Mandriva 2008, potete aggiungere le fonti con il comando:
urpmi.addmedia MDE http://www.mde.djura.org/2008.0/RPMS with hdlist.cz
Io in aggiunta ho anche le fonti MIB (Mandriva Italian Backports), di cui ho parlato nel precedente articolo.
Dando il comando:
urpmi.update -a && urpmi --auto-select
vedrete che vi sara' proposto di installare la versione MDE di kde 3.5.8.
La versione ufficiale di Mandriva e' la 3.5.7. Ho letto in rete che questa versione dovrebbe contenere gia' le migliorie introdotte dall'ultimissima versione, ma sempre in rete si legge che i pacchetti MDE sono piu' ottimizzati e quindi dovrebbero girare piu' velocemente.
Dalle mie precedenti esperienze la sensazione e' che questo sia vero :)

Un'altra proposta di urpmi e' di installare i pacchetti openoffice marcati MDE: la versione e' piu' aggiornata di quella offerta dai ragazzi MIB, anche se non l'ultima disponibile, la 2.3.1.

Presto vi informero' sulla stabilita' della convivenza.

Ce l'abbiamo fatta!!!

Il prototipo di lente di Laue realizzato nel Dipartimento di Fisica dell'Universita' di Ferrara va che e' una bellezza!
Direi che l'eloquenza massima si puo' raggiungere solo mostrandovi questa immagine.L'immagine mostra i raggi X (energia circa 100 keV) rifocalizzati dal prototipo realizzato da me e dal mio gruppo. Il risultato ottenuto e' preliminare, ma decisamente soddisfacente. Le condizioni ottimali verranno raggiunte solamente in seguito ad uno studio attento dei dati sperimentali, in seguito al quale sara' possibile riposizionare e riorientare la lente al fine di ottenere il massimo dalle sue sue potenzialita'.

A mia conoscenza questo e' il primo prototipo di lente di Laue rifocalizzante che sia mai stato realizzato.
Un precedente esperimento francese, nome in codice Claire, il cui leader e' Peter von Ballmoos, aveva precorso i tempi, realizzando una lente di Laue di tipo diverso ottimizzata per osservare sorgenti celesti, scatenando l'interesse della comunita' scientifica: mai fino ad allora era stato realizzato un telescopio focalizzante operativo nella banda dei raggi X duri.

L'astronomia X e gamma, gia' sconvolta da numerose scoperte negli ultimi anni della sua giovane vita, e' destinata ad un nuovo scossone. Grazie agli strumenti di nuova generazione sara' possibile svelare i misteri delle sorgenti celesti piu' violente: buchi neri, stelle di neutroni, sistemi binari, supernovae, gamma ray burst e via briscola.

Tecniche Monte Carlo applicate a lenti di Laue

Ho sviluppato un software in Python dedicato alla simulazione di lenti di Laue destinato ad essere usato nell'ambito del progetto di Ricerca e Sviluppo in cui sono attualmente impegnato.

Gli elementi chiave da modellare nel programma sono tre:
1) i fotoni
2) il singolo cristallo
3) il detector

I fotoni e la loro sorgente
I fotoni prodotti sono modellizzati mediante la creazione di una classe dalla quale si puo' risalire in ogni momento alla loro posizione e al loro vettore d'onda. Dal vettore d'onda e' poi possibile risalire alla direzione di propagazione, all'energia e alla lunghezza d'onda del fotone stesso.
Funzioni specializzate si preoccupano di trasportare i fotoni incidenti dalla sorgente al cristallo, in cui vengono diffratti con una probabilita' dipendente dalla fisica del problema, e i fotoni diffratti dal cristallo al detector.

La sorgente di fotoni da simulare, un tubo a raggi X marca Siemens in grado di operare fino a 150 kV, presenta uno spettro di emissione di tipo Bremsstrahlung. Per simularne lo spettro sono state eseguite misure in laboratorio con un detector al Germanio raffreddato con azoto liquido. Tali misure sono state inserite nel programma in maniera tale che lo spettro dei fotoni simulati ricalcasse esattamente quello reale.

Per ottimizzare il tempo di calcolo, sono stati simulati unicamente i fotoni destinati a finire sulla superficie dei cristalli, visto che i fotoni destinati altrove vengono assorbiti da apposite schermature.

I cristalli
I cristalli simulati sono stati modellizzati tramite la creazione di una classe contenente informazioni circa il materiale componente il cristallo (rame a mosaico in questo caso) la loro forma, posizione e orientazione nello spazio.
Nel momento in cui fotone e cristallo interagiscono, esiste una probabilita' p che il fotone venga diffratto.
Qualora questo avvenga il fotone esce dal cristallo e viene trasportato fino al piano focale, in cui e' posto il detector.
La lente e' composta da venti cristalli disposti uniformemente su di una circonferenza di raggio 18 cm.
Nel caso ideale, i piani reticolari piu' probabili hanno normale diretta verso il centro della circonferenza. Il programma puo' tener conto di eventuali, disallineamenti.
Il programma puo' lavorare su tutti i cristalli contemporaneamente, su di un cristallo singolo, o su un sottoinsieme di cristalli.

Il detector
Il detector simulato e' sensibile alla posizione e dotato di 1024x1024 pixels, ciascuno di dimensione 0.3x0.3 mm2. Il centro del detector e' posto sull'asse ottico dell'esperimento.
I fotoni che cadono all'interno della superficie attiva del detector vengono misurati, quelli all'esterno vengono distrutti.

Finalita' del software
Tramite il codice sviluppato e' possibile determinare gli errori di allineamento dei singoli cristalli o della lente intera e capire quanto la qualita' del prototipo studiato differisca da quella massima ottenibile da un punto di vista teorico.