Pagine

30 gennaio 2008

Juve - Inter 2 a 3

Non ci posso credere! Capita sempre cosi': la partita della vita, quella indimenticabile in cui l'Inter si dimostra la grande squadra che e', e io sono ad Amburgo ad un meeting e piu' precisamente alla cena sociale! Questa e' vera sfortuna.

Appena rientrato in camera, mi sono collegato alla pagina della gazzetta per vedere il risultato: non solo abbiamo vinto (per chi non lo sapesse, sono interista!) ma, stando al giornalista della rosa, e' stata veramente una splendida ed emozionante partita. A dire la verita', questo dovrebbe succedere tutte le volte che si incontrano due grandi squadre, solo che a volte siamo piu' attenti a vedere se la nostra compagine del cuore subisce qualche torto arbitrale, piuttosto che immaginarsi dei loschi complotti.

Dato che non ho visto la partita, almeno potreste dirmi come vi e' sembrata!

Avremo un governo per le riforme

Si e' proprio cosi', nonostante il nostro sondaggio propendeva per un ritorno anticipato alle urne, il Presidente Napolitano ha dato l'incarico a Marini di formare un governo per le riforme. In particolare, questo governo a tempo dovra' occuparsi di scrivere una buona legge elettorale che ci permetta di avere governi stabili, con una maggioranza certa senza essere in balia di partitini e partitelli.

Napolitano ha motivato la sua scelta come risposta alle esigenze e richieste di riforme provenienti dal Paese, dai partiti politici, dagli industriali e persino dalla Chiesa; strano che Rifondazione Comunista ancora non abbia parlato di ingerenza politica del Vaticano. Senza riforme niente stabilita' - ha detto il presidente - allora speriamo che queste riforme arrivino presto, perche' di stabilita' e di passi in avanti ne abbiamo veramente bisogno.

Detto fatto? Temo proprio di no. E' Marini stesso ad affermare che si tratta di un compito molto arduo e credo che nessuno voglia mettersi nei suoi panni. Volete sapere come andra' a finire? E per che cosa mi avete preso: per un veggente? Io credo che Marini sia un ottimo uomo politico, ma purtroppo per i miracoli ancora non e' attrezzato. Cercando di fare il male minore peschera' ministri un po' di qua e un po' di la' e poi giochera' il jolly chiedendo la fiducia, cosa che personalmente vedo molto improbabile... pero' non si sa mai, anche vincere alla lotteria e' difficile eppure gente che compra i tagliandi se ne trova sempre.

E' inutile che vi riporto tutte le reazioni dei vari esponenti politici perche' le trovate in bella vista sulle edizioni on-line dei quotidiani, pero' sarei molto contento d leggere le vostre opinioni a riguardo!

Dichiaro aperta la messagebox!

Una Via per linux

Vi siete mai chiesti perche' linux e' considerato un sistema operativo ostico? Secondo me, questo e' in gran parte dovuto alla scarsa disponibilita' di driver veramente compatibili.

Al giorno d'oggi, moltissimi sistemi, sia dektop sia laptop, sono basati su chipset della Taiwanese Via Technologies Inc., e nonostante esistano un certo numero di driver anche per linux, i loro hardware funzionano come previsto solo sotto Windows, mentre con il pinguino lavorano in una sorta di modalita' provvisoria.

Un gruppo di utenti non ce l'ha fatta piu' e ha deciso di far partire una di quelle petizioni on-line (tipo quella che in Italia ha fatto abolire la tassa sulla ricarica dei telefonini.) Dopo averla letta, ne esiste anche una versione in italiano, vi consiglio di collegarvi al sito della petizione e di lasciare la vostra firma.

Provarci non costa niente, e chissa', che a breve avremo il nostro sistema operativo ancora piu' performante!

29 gennaio 2008

Piu' che di un sondaggio...

Si e' trattato di un grosso successo per il nostro modestissimo blog! L'affluenza alle urne? Al momento in cui scrivo sono 37; un numero ridicolo se lo confrontate con gli oltre 200 mila votanti del sito di Repubblica riguardo un sondaggio dal contenuto analogo.

Per noi, ultimi arrivati o quasi della blogosfera si e' trattato di un battesimo del fuoco e direi che ce la siamo cavata bene soprattutto perche' in tanti non ci conoscevano per niente e ora almeno sanno che esistiamo.

Sapete la mia mania per i grafici, qui sotto ne riporto uno molto interessante:

E' il numero delle visite uniche al nostro blog suddivise nelle ore del giorno. Per intenderci ci dice che questa mattina alle sette c'era una persona che gia' ci leggeva (chissa' chi era?) e che le ore di massima affluenza sono state le 10 e le 11 con 13 visite all'ora. Visita unica significa che se siete venuti a votare o a leggere un articolo alle 9 e poi siete tornati alle 17 (dallo stesso pc!) a controllate come andava il sondaggio, allora la vostra visita e' stata registrata una sola volta alle 9. Tutto chiaro? Spero proprio di si'.

Un'altra curisiosita' e' la mappa delle connessioni. La palma delle piu' distanti se la giocano Fremont - California (rete stanford.edu) e Mato Grosso do Sul - Fortaleza Brazil seguiti a ruota dall'Universita' del Wisconsis. Nel vecchio continente abbiamo avuto connessioni un po' da ogni dove, Francia, Svizzera, Danimarca, Germania, Gran Bretagna e chiaramente Italia. Voglio sperare che tutti abbiano trovato un blog accogliente con qualcosa di interessante e simpatico da leggere e che magari, specialmodo per i piu' lontani, l'occasione di ricordare quella banda di allegroni che si diverte a scrivere queste pagine.

Cos'altro dire, oggi siete venuti in tanti e speriamo vi siate divertiti, quindi perche' non tornare anche domani? Il messaggio e': non aspettate che cada un altro governo per venirci a trovare. Il modo migliore per non dimenticarvi di noi e' di aggiungere il nostro blog al vostro news reader preferito. Per farlo basta cliccare sul simbolino qui a sinistra e riceverete in modo automatico tutti i nuovi articoli.

Con questo e' veramente tutto, anzi no! Dimenticavo di commentare l'esito del sondaggio! Allora per il momento sembra che la maggior parte di voi creda si debba andare subito a votare, ma lo scarto rispetto a chi ritiene piu' opportuno un governo tecnico / istituzionale e' veramente piccolo considerando la bassa statistica. Oggi Napolitano ha concluso il giro delle consultazioni e visto che adesso si e' preso una pausa di riflessione, ho deciso di prolungare la validita' del sondaggio di un altro giorno.

Cosa fareste al posto di Napolitano?


Siamo curiosi di sapere la vostra opinione circa la decisione di Napolitano sul futuro del governo del nostro bel Paese. Vi chiediamo, se voi foste il presidente della Repubblica quale opzione scegliereste mettendo il bene per l'Italia davanti a tutto?

Per questo abbiamo aperto il nostro primo blog-sondaggio di opinione, chiunque può venire a votare e dire la sua commentando questo post.

Promesso, non ci saranno censure di nessun tipo! Il sondaggio si chiude questa sera, quando sapremo cosa Napolitano avrà effettivamente deciso di fare.

Buon voto a tutti!

28 gennaio 2008

Acquisto in vista

Finalmente la mia prima auto con più di due posti! Per chi di voi sta pensando che io sia uno di quei fortunati figli di papà dotati di spider coupé, si sbaglia di grosso....

Fino ad oggi ho sempre circolato con il furgoncino in prestito dalla ditta di mia mamma, ma il tempo è ora maturo, per Francesca e me di comprare un'auto un po' più seria e anche comoda.

Chi mi conosce sa che io non sono un gran appassionato d'auto, quindi ho chiesto aiuto praticamente a tutti (che ringrazio calorosamente e prometto un giro in macchina appena disponibile) nella difficile scelta dell'auto con il migliore rapporto qualità / prezzo / consumi / longevità e, perché no, anche bellezza.

Risultato abbiamo optato per una Opel Meriva (km 0 perché non avendo un'auto non possiamo usufruire dei tanto comodi incentivi statali) come quella nella fotografia.

Per fortuna il Milan ha cambiato sponsor passando dall'Opel Meriva e Zafira (sponsor nel 2006) a betandwin (attuale) e permettendo anche a noi interisti purosangue di acquistare l'auto senza problemi di coscienza. Se avete domande tecniche vi invito a rivolgerle allo specialista Marcin (il link è qui a lato), se invece volete contribuire con una donazione non fatevi scrupoli a chiedermi le coordinate bancarie!

Stack o heap? Ovvero la gestione della memoria


Per la maggior parte dei neofiti programmatori, la gestione avanzata della memoria e' un concetto ostico da digerire specialmente perche' si utilizzano termini non sempre molto chiari. Lo scopo di questo post e' cercare di rendere piu' assimilabile la gestione della memoria nella programmazione C++.

Cominciamo a vedere cosa succede quando viene eseguito il nostro programma di test. Quando l'eseguibile viene caricato in memoria, questa viene suddivisa in tre segmenti: il code segment, lo stack segment e l'heap segment.

Per meglio capire l'organizzazione della memoria consideriamo il seguente codice sorgente. Si tratta di un codice completamente inutile, ma ci permette di capire come funzionano le cose.

int funzione(int par1, double par2, bool par3) {

   // definisci alcune variabili
   int temp1, temp2, temp3;
   float temp4, temp5, temp5;

   // fai qualcosa
   // ...

   // ritorna
   return 0;

}


int main(int argc, char ** argv) {

   // definisci alcune variabili
   bool isRunning = true;
   double myFloat = sqrt(2);

   // chiama funzione
   int mioInt = funzione( argc, myFloat, isRunning );

   // ritorna
   return 0;

}


Il code segment e' la memoria utilizzata per contenere la versione in linguaggio macchina del codice stesso, ovvero in parole molto povere, e' il posto dove la sequenza di operazioni da effettuare viene immagazzinata durante tutta l'esecuzione del programma.

Lo stack segment e' una regione di memoria organizzata come "Last In First Out". Il programma inizia con l'esecuzione del main e tutte le variabili ivi dichiarate vengono allocate nel stack e vi restano fino a quando escono di scope, ovvero fino a quando il main esce e il programma si ferma. Quando funzione viene chiamata, i suoi parametri vengono allocati nello stack contestualmente a tutte le variabili dichiarate all'interno. Anche in questo caso, la memoria occupata da temp1 ... temp5 verra' liberata non appena termina l'esecuzione di funzione. Questo dovrebbe spiegare perche' lo stack e' una memoria LIFO. E' proprio questo riciclo della memoria che rende pericoloso l'uso di variabili non inizializzate; infatti quando una variabile viene deallocata, la memoria fisica corrispondente viene riassegnata la prossima volta che viene richiesta senza pulirne il contenuto.
Concludendo possiamo dire che finiscono nello stack tutte le variabili allocate in modo "statico" ovvero senza utilizzare gli operatori new e new [].

Veniamo ora all'heap segment. Questo e' una regione piu' stabile della memoria e puo' essere utilizzata come shared memory tra differenti funzioni. Per creare una variabile nell'heap dobbiamo usare gli operatori new o new [] e, una volta creata, vi ci resta per fino a quando o viene distrutta dall'operatore delete o delete [] o al termine del programma.

Vediamo alcuni esempi pratici.

Esempio 1:
// .....
{ int inutile; }


In questo spezzone di codice, la variabile inutile viene creata all'interno di uno scope praticamente vuoto. In questo caso la regione di memoria corrispondente ad inutile viene creata nello stack e subito dopo de-allocata senza che questa possa mai venir utilizzata.


Esempio 2:

{
   // ....

   MyClass * miaClasse = new MyClass;

   // attenzione al memory leak
}


Questa semplice linea di codice agisce sia sullo stack sia sull'heap. Infatti lo statement a sinistra dell'uguale definisce nello stack una variabile miaClasse di tipo puntatore a MyClass. Per quanto detto precedentemente, la variabile miaClasse essendo definita nello stack restera' valida fino all'uscita dallo scope corrente, ovvero nel nostro esempio, fino alla parentesi }. Da li' in avanti ci sara' impossile usare la variabile miaClasse.
Lo statement a destra dell'uguale richiama l'operatore new, ovvero viene allocata nell'heap una regione di memoria grande a sufficienza per contenere un oggetto di tipo MyClass. Essendo nell'heap, questa regione di memoria non andra' mai fuori scope fino al termine del programma e non potra' essere riciclata se non prima opportunamente liberata con l'uso dell'operatore delete.
Attenzione che nel momento che viene chiusa la parentesi graffa, miaClasse non e' piu' valida e noi non sapremo piu' rintracciare la regione di memoria allocata dall'operatore new. Questo fenomeno e' noto come memory leak ed e' una delle maggiori cause di perdita di prestazioni di un programma mal scritto. Infatti, non solo non saremo piu' in grado di utilizzare i valori contenuti nella regione di memoria puntata da miaClasse, ma non saremo nemmeno in grado di liberarla al termine dell'utilizzo.

Come possiamo evitare di sprecare memoria? Una risposta semplice non esiste, se volete, una risposta banale potrebbe essere: avere ben chiaro in mente chi e' il responsabile della memoria. Questo argomento va sicuramente approfondito, ma non adesso e non qui...

Rimanete in linea se volete saperne di piu'!

25 gennaio 2008

Fedora 9: cosa ci sarà di nuovo

Ho installato Fedora 8 all'inizio di Novembre eppure nell'aria c'è già il profumo di Fedora 9! Il rilascio della versione definitiva è atteso per la fine di aprile (bene bene, così potrò investire qualche ora del ponte del primo di Maggio nell'upgrade del mio sistema), ma il processo di sviluppo è iniziato subito dopo il rilascio dell'ottava versione.

E' di oggi la notizia che la nascitura Fedora 9 si chiamerà Sulphur e, se la schedula verrà rispettata, avremo una alpha release disponibile per il download con la fine di questo mese di gennaio. Lo so che vi starete domandando cosa ci sarà di nuovo nella piccola Sulphur (sarà maschile o femminile? bho, però mi piace l'idea di una piccola fedorina...), quindi sono andato sulla pagina web di fedora e mi sono letto quelle che sono le caratteristiche che gli sviluppatori e la comunità stanno cercando di far entrare in Sulphur.

Mi sono permesso di elencarvi quelle che secondo me sono le cose più sfiziose almeno secondo il mio modesto punto di vista.
  1. KDE4 finalmente! Tra i fedoriani, io sono un utente un po' atipico perché affezionato al desktop con la K! Il rilascio dell'ultima versione di KDE ha suscitato parecchio entusiasmo e l'integrazione in Fedora è già cominciata, ma la strada verso la stabilità è ancora lunga. Insieme ai Plasmoidi, anche KWin, il sistema di finestraggio, ha subito una bella rinfrescata incorporando anche alcuni effetti 3D che al giorno d'oggi non sono più facoltativi. La mia speranza è che Fedora 9 venga rilasciata includendo KDE4.0.1! Stupitevi guardando il video qui sotto, la musica è in Polacco per il nostro Marcin.

  2. NetworkManager migliorato. Ho scoperto NetworkManager ai tempi di Fedora 7 quando ancora era un applicativo opzionale. Con Fedora 8 è diventato il sistema di default per la gestione delle connessioni e io mi sono accorto di non poterne più fare a meno. NM è fantastico sui portatili, si passa dalla rete cablata a quella senza fili con un semplice gesto proprio come uno si aspetterebbe da un buon sistema operativo. Però ci sono delle lacune e si può fare decisamente meglio. La versione a cui si sta lavorando per Fedora 9 comprenderà la possibilità di avere più interfacce attive simultaneamente e di potere configurare ad hoc ognuna di esse. Per il momento, infatti, oltre ad avere al più una connessione attiva, questa non può essere configurata dall'utente: in altre parole deve funzionare solo in modalità DHCP. Secondo me ci sono altri due grossi limiti: l'impossibilità di stabilire connessioni PPP (quelle verso il modem ADSL per intenderci) e quella di settare la propria scheda wireless in modalità ad-hoc o access point. Entrambi le funzionalità dovrebbe arrivare con Fedora 9. Se posso aggiungere, gradirei anche rimpiazzare l'attuale e brutta applet gnome nm-gnome con la più funzionale KNetworkManager almeno per gli utenti KDE. L'integrazione dell'evoluzione di NM è al momento corrente solo al 10%, ma c'è ancora abbastanza tempo per sperare!
  3. Upstart e 1 second X, ovvero un avvio rapido! E' successo a tutti gli utenti linux di sentirsi imbarazzati confrontando la velocità di start-up del loro sistema operativo preferito con quelle di Windows per non parlare di MacOs. La ragione è l'avvio di tutti i servizi necessari per il computer. Con le ultime due releases di Fedora, si sono fatti notevoli passi in avanti eliminando servizi non necessari e mandandone in background l'attivazione, ma ci sono ancora ampi margini di miglioramento. Si punta infatti a sostituire SysV con Upstart (utilizzato per esempio in Ubuntu) per rendere l'attivazione dei servizi on demand e per quando riguarda l'X server, il progetto 1 second si propone infatti di renderlo eseguibile in un secondo al più. Speriamo in bene! Ad oggi, l'inclusione di Upstart è al 70%, mentre quella di 1 second X solo al 20%.
  4. Firefox 3. La schedula aggiornata di Mozilla prevedere il rilascio della terza beta di Firefox 3 con i primi giorni del 2008. Questo significa che non ci dovrebbero essere problemi nell'includere il nuovissimo browser in Fedora 9, ma il condizionale è d'obbligo visto che già una volta la schedula di Firefox è slittata. Non voglio annoiarvi elencandovi le principali caratteristiche di Firefox3, ma vi consiglio la visione di un'ottima video-review.

Non ci resta che attendere pazientemente e magari far un giro con una versione alpha live alla fine del mese!

Buon linux a tutti!

Ripensando al MacBookAir

Dopo il grosso scalpore generato dalla spettacolare presentazione al Macworld expo dell'ultimo nato in casa Apple, cominciano a comparire sul web le prime oggettive valutazioni anche per quegli utenti interessati ad avere qualcosa di funzionante e non solo di molto fashion.

PCWorld pubblica un rapporto circa i primi test di laboratorio eseguiti sul MacBookAir e i risultati non sono stupefacenti. Per farla in breve, il MacAir non e' dotato come i fratelli un po' piu' cicciottelli e il processore a 1.6GHz si dimostra parecchio piu' lento rispetto al MacBookPro e anche al MacBook.

Ma non e' finita, la mancanza dell'interfaccia di rete (cablata) e di una periferica ottica (CD, DVD...) rendono il confronto del MacAir con gli altri laptop molto incerto.

In conclusione, se dovete comprare un portatile con la mela dietro al display e non siete solo amanti del fashion allora forse vorrete comprare un MacBookPro lasciando che l'Air voli via col vento!

Ma allora è proprio vero...

Il nostro caro Marcin ce lo aveva già detto molte volte, ma noi forse un po' abituati alle sue lamentele circa lo stato di degrado del nostro Paese non gli avevamo mai dato troppa considerazione. E invece....

Il presidente dell'Italian-Polish connection, Marcin Jastrzab, Marcinski per gli amici, sta cercando da più di un mese di attivare la linea ADSL nella sua casa a Como, ma senza fortuna. I tecnici di Infostrada scaricano la colpa su quelli di Telecom, e quest'ultimi dicono che dal loro punto di vista è tutto funzionante e che quindi si tratta di un disservizio di Infostrada.

Marcin, ci aveva riportato che in Polonia, l'attivazione della banda larga è questione di poche ore (diciamo da 24 a 48). Si avete capito bene, ore e non giorni come spesso succede in Italia. Non che non mi fidassi del nostro amico Polacco, ma questa mattina ho letto un articolo su Punto Informatico che ha rafforzato il concetto.

Forse dovremmo trasferirci tutti....

Se avete il collegamento ad internet: buona navigazione altrimenti felice Medio Evo!

24 gennaio 2008

Edizione straordinaria

La notizia della caduta del governo Prodi è ancora fresca, ma la notizia rimbalza già qua e là in tutto il mondo specialmente grazie alle edizioni elettroniche dei più autorevoli giornali del pianeta.
Vi riporto uno spunto tratto dal New York Times che alle 3:12 pomeridiane della costa orientale pubblicava sul suo sito on-line:

Prodi's government had been shaky from nearly the start after his election in April 2006, but it lurched toward its collapse Thursday after a small Christian Democrat party, whose votes were vital to a coalition majority in the Senate, yanked its support earlier this week in the latest squabbling among his allies.

Che bella pubblicità: un governo "shaky", l'emergenza rifiuti... chissà cos'altro ci riserva il futuro!

Non si finisce mai di imparare

Come probabilmente avrete gia' capito, le fantastiche lezione del nostro utilissimo tutorial di C/C++/ROOT sono chiaramente ispirate a materiale trovato qua e la' sulla rete. Oltre ai miei due siti (cppreference e cplusplus) di riferimento, diciamo quelli che visito con una frequenza quasi giornaliera, oggi ho trovato risorsa molto intrigante sulla pagina web di societa' di consulenza sul software. Ecco l'indirizzo http://www.goingware.com/ .
Michael D. Crawford, l'autore della pagina web, nonche' titolare della goingware, e' un omone dalla faccia simpatica con un bel cappello in testa che fa tanto South Carolina e campi di cotone. Micheal e' un vero geek, ha passato la sua vita a scrivere codice e ottimizzarlo in termini di prestazioni per avere prodotti commerciali altamente affidabili. Nella sezione Tips del sito ho trovato un bellissimo tutorial su come districarsi tra puntatori, referenze e valori. In effetti la differenza tra le tre categorie e' molto sottile e non sempre ben chiara, anzi in tanti casi fare confusione e' facilissimo!

Il nostro geek, non solo ci spiega l'argomento, ma fa anche un'approfondita analisi di cosa conviene usare a seconda dei casi in modo da ottimizzare le prestazioni.

Che dire, bravo Michael!

23 gennaio 2008

Wyprawa do Londynu / The London mission.. accomplished

Dear all,
These days being very lucky to be invited by Kasia & Bogdan to London, I visited the places that a lot of people can only dream about... And yet, I explored myself the City made of English and mostly... the Polish people. That was amazing, wonderful and extremely exciting adventure. I will never forget the impression the London has made on me the first time I have put the feet on the very British ground..
I would like as well to thank to my best friends: Kasia, Dominika, Bogdan, Andrzej, Wojtek without which all these would have never happened.
That would be my pleasure if you would like to see the photos. The album is being updated so you are warmly welcome to follow up the updates. Stay tuned:)

Marcin

22 gennaio 2008

Rutelli non ci sta

La risposta dell'attuale (forse ancora per poco) ministro dei beni culturali Francesco Rutelli non si è fatta attendere troppo e udite, udite la colpa è del precedente governo. La nota ufficiale, infatti riporta quanto segue:
Il progetto del portale fu varato dal precedente governo, voluto e validato dall'allora ministro per l'Innovazione Lucio Stanca. Se si cercano responsabilità per l'inefficacia della soluzione tecnologica e l'incongruità dei finanziamenti ci si rivolga, dunque, al governo della passata legislatura.
Come scusa mi sembra di averla già sentita e poi non mi pare comunque una valida giustificazione per sprecare tutti quei soldi elargiti generosamente dai cittadini.

Ma volete sapere la novità? Ci riprovano! O almeno, Rutelli vorrebbe passare tutto quanto di buono già fatto (scusate ma mi viene da ridere...) nelle mani dell'Ente Nazionale del Turismo in modo da creare un vero portale per il turismo in Italia.

Spero che il nuovo portale sia migliore del suo predecessore, anche perché è difficile fare di peggio, ma soprattutto che costi di meno!

Un messaggio per Rutelli:

La nostra proposta per un portale del turismo per un costo intorno ai 100 mila euro è ancora valida, se ti interessa i nostri indirizzi li trovi su questa pagina!

Lesson 3: typedef, struct and class

In the previous lesson we have learned that C/C++ is able to handle several different data types (so called built-in type) in order to perform standard mathematical and logical operations. In this lesson, we will see how the programmer can define his own data type to cope with his specific needs.

Typedef: renaming an existing type

The easiest way the user has to define his own data type is via the typedef instruction. The syntax is very simple and the only thing the programmer has to do is to add the following line to his code:

typedef existing_type new_type;

At a first sight, it may seems useless to define a new type being equal to an already existing one. In other words, typedef is renaming a data type, not really creating something new, but anyway it can be very useful. Let's list some examples:
  1. Platform independent type definition. Depending on the system architecture, we may have different size for the same built-in type. This is imposing severe restrictions when the same source code is compiled and executed on different systems. In this respect, I like very much the solution adopted by the ROOT development team; they define a portable independent type (say Int_t, for instance) and they typedef it to correct type size depending on the system architecture. Have a look at the Rtypes.h include file. For this reason, I strongly recommend to always use portable types (starting with a capitol letter and ending the _t) every time the value of a variables has to be written to a file and might be read back from a computer with another architecture.
  2. Easiness of programming. Consider the case the programmer has defined a variable of the following type :
    unsigned short int *

    it is to say a pointer to a not signed short integer. If this particular type is used very often in the code, then the programmer may want to typedef it to something more compact like UShortPtr. This is even more clear when using templated container, like vectors.
Enumerations: using symbolic constants

Consider the case in your application you have a variable (month) you use to store the current month of the year. In principle you can define this variable as a character array, but then it becomes very difficult to perform operation on this variable, like incrementing by one unit to get the following month or similar thing. A very smart solution is to define a enumeration as follow:


enum month_t {
january=1, february, march, april, may, june,
july, august, september, october, november, december
} ;

Doing so, in the rest of the code you can define a variable, say currentMonth, and use it as follows:

month_t currentMonth;
currentMonth = january;
for ( currentMonth == may ) {
cout << "This is the wedding month!" << endl;
}


In other word, an enumeration is a one to one correspondence between a list of words and integer values. When should I use it? My advice is to use as often as possible in order to make the code more readable. In the case of the month of the year, the correspondence is evident to everyone, but there are several others cases in which this is not that clear. Do you want a real life example? Here you have it...


enum particle_t {
electron,
proton,
....
};

Writing particle_t myParticle = electron is by far clearer than writing particle_t myParticle = 1!!!

Structures: putting together different types

Have you ever seen one of those old library archives? Yes, I really mean those metallic cabinets containing one small piece of paper (say a record) for each book. This record is a bundle of information, some strings, as the title, the author; some integers, like the issuing year, the number of pages; some floating numbers, like the cost and so on and so forth.

Can I do the same thing in C/C++? You sure can! Just create a struct, using the following code

struct record_t {
string author;
string title;
int year;
int pages;
....
float price;
};

One can access both in writing and in reading the single element (called member) of a structure using the "." operator. For example one can set the number of pages a book in the following way:


record_t myBook;
myBook.pages = 192;

Once you have defined a struct, you can use it as any other data type. For example, it can be used as the argument of a function, you can use pointer to structures, define array...


// example of function having record_t as argument
void addBootToLibrary(record_t book);

// example of function returning an array of records
void findBookByYear(int year, record_t * bookList, int * listSize);


Classes: moving from C to C++


The concept of a class is at the base of Object Oriented Programming and we can consider it as the turning point from C to C++. A class is nothing more than the evolution of a structure in which along with data members there are also member functions (a.k.a. methods). An object, a name you'd probably heard mentioning several times, is an instantiation of a class. To make it simpler, using the variable language, the class is the type and the object is the variable itself.

Now that you know what an object is, you may wonder what Object Oriented programming means. This is a programming model that treats programming from a perspective where each component is considered an object, with its own properties and methods, replacing or complementing structured programming paradigm, where the focus was on procedures and parameters. So said, you need to rethink at your code as the interplay of several objects!

The first question you may want to ask is: Since a class can be considered a user-defined data type, how can I put a function into a type definition? Easy, you just put in the class definition as we are doing here below:


class MyClass {
public:
int getX();

private:
int _x;
};

You may find a complete example in the files attached here below:





La porta d'Italia

Era l'idea alla base della realizzazione di questo ambizioso progetto: la creazione di un portale in grado di attirare vecchi e nuovi turisti nel Bel Paese e di guidare i cittadini italiani tra i nostri innumerevoli splendori.
E invece, italia.it (non provate a cliccarci sopra, tanto non funziona) si è rivelato l'ennesimo flop all'italiana. E' notizia di questi giorni, infatti, che il portalone dell'Italia non ce l'ha fatta, è morto di stenti nonostante fosse ben alimentato da fiumi di denaro.

Il motivo? Ci resta ancora sconosciuto, perché nessuno dei nostri politici si è preso la briga di darci una spiegazione ufficiale. Ne siamo venuti a conoscenza (forse) dalla carta stampata, dove la notizia è finita in una qualche pagina interna dedicata ai quei pazzi techno-freek.

Se andate a svogliare la pagina dell'Italia su Wikipedia e scorrette la pagina fino in fondo, noterete con tristezza che tra i siti correlati al nostro paese, italia.it è ancora nella lista, ma con un ignobile chiuso tra parentesi.

Oltre al danno, anche la beffa

E' proprio il caso di dirlo. Oltre a non avere più il sito che in tanti avevano visto come il segno di un nuovo risorgimento italiano, abbiamo anche investito (forse visto l'esito sarebbe il caso di dire sprecato) la bellezza di 45 milioni di euro. Per i non addetti ai lavori, vorrei far notare che si tratta di una cifra spropositata. Sono convinto che decine di studenti universitari di Belli Arti si sarebbero offerti di realizzarlo per una cifra 1000 volte inferiore.

Per rendere ancora meglio le dimensioni di questo spreco, lasciatemi quantificare questi 45 milioni usando come unità di misura lo stipendio di un ricercatore, si proprio uno di quelli che il governo vieta per legge l'assunzione da 6 anni e che sta disperatamente cercando di tenere occupati nella speranza che non fuggano tutti all'estero. Il lordo aziendale annuo di un ricercatore è di circa 40 mila euro, quindi i 45 milioni di euro si traducono in 1125 annualità di un ricercatore. Considerando l'età media di pensionamento, questo spreco avrebbe assunto 32 ricercatori per tutta la loro vita scientifica. Il calcolo è chiaramente approssimativo perché dovremmo tenere in considerazione che parte del lordo aziendale ritorna nelle casse dello stato e che questi fondi sarebbero stati diluiti su un intervallo temporale di circa 35 anni.

Fate voi i conti precisi, io intanto resto in attesa che qualcuno mi dia una ragione per aver chiuso a chiave la porta d'Italia.

21 gennaio 2008

Harry Potter e i doni della morte

La befana di quest'anno (e non mi riferisco a mia moglie!) è stata generosa con me e con molta caparbietà è riuscita ad infilare il settimo volume della saga di Harry Potter all'interno della mia piccola calzetta appesa sul caminetto!

Così appena terminata la mia ultima fatica Follettiana, ho subito data inizio alla lettura delle nuove avventure dell'instancabile e perseguitato giovane maghetto. Iniziamo dal titolo che è già tutto un programma. In italiano i doni della morte mi lasciava un po' perplesso così sono andato a cercarmi l'originale in inglese: deathly hallows nel vano tentativo di trovare una spiegazione. Deathly chiaramente richiama la morte, lo tradurrei "mortale", ma hallows? Ok, il mio inglese non sarà oxfordiano, ma, giuro non lo avevo mai sentito prima, così ho puntato direttamente su Merrian-Webster alla ricerca di una spiegazione. E indovinate cosa ho trovato? Vi riporto testualmente il lemma riportato sull'autorevole dizionario:

Main Entry: hallow
Function: noun
obsolete : a saint, a shrine, or a relic
usage Hallow as a noun has been rarely used for the past several hundred years and is considered obsolete except as a component in words such as Halloween and Allhallows. It is not listed in most dictionaries but has been added to this database because of the renewed interest in it sparked by the publication of J.K. Rowling's Harry Potter and the Deathly Hallows.

Che, in parole povere, per i non anglofoni, significa che negli ultimi secoli, in qualità di nome, il termine Hallow è stato usato solo raramente, al punto da toglierlo dai più comuni dizionari. E' stato solo recentemente ri-aggiunto ai database per dare una spiegazione ai molti curiosi fan di Harry Potter. Nella lista dei significati obsoleti ci sono: saint che significa santo (ovvio no!), shrine che significa altare, cripta anche tomba e relic ovvero reliquia, vestigio. Ecco spiegato il motivo di una così fumosa tradizione nella nostra lingua.

E tutto questo leggendo solo il titolo... non vedo l'ora di leggere anche il resto!

Restate collegate per aggiornamenti!

The Hammer of Eden

Titolo: The hammer of Eden
Autore:
Follett, Ken
Ambientazione:
California, USA anni '90
Giudizio:
Buono


Commento: Si tratta dell'ennesimo successo del mio autore preferito. Niente di comparabile con la bellezza ispirata de I pilastri della terra, ma comunque un ottimo libro che tiene i lettori incollati alle pagine quasi senza respiro. La trama è quella tipica dei romanzi di azione, ma non per questo scontanta.




(ATTENZIONE: nel seguito viene rivelata parte della trama)

Ci troviamo negli anni '90, nella ricca California. Un gruppo di ex hippie vedendo fallire tutti i loro ideali anni sessanta, decidono di fondare una comune e vivere in modo autonomo e isolato dal mondo in un'incontaminata valle della California nei pressi di Silver City. Gli ideali della comune sono i soliti: sesso e droga liberi, niente proprietà privata, niente corrente elettrica, baratto anziché valuta, mass media banditi per evitare di essere spiati dal grande fratello ecc... L'unica loro fonte di sussistenza e' il vino prodotto coltivando una vigna nella loro valle incantata.

Questa idilliaca situazione viene compromessa dal Governatore della California (nel libro non e' Arnold Schwarzenegger, peccato!) che decide di costruire una diga e allagare la valle per realizzare una centrale elettrica. La comune non ci sta! Neri dalla rabbia, i comunardi, in pieno spirito peace and love, decidono di salvare il loro paradiso a qualunque costo, anche se qualcuno (d'altro) ci dovrà rimette la vita. Si' ma come? Facile, decidono di generare terremoti nella già tormentata regione della falda di S. Andreas.

Il piano e' ardito, ma funziona. Un primo terremoto dimostrativo non fa vittime, ma fa crescere l'attenzione dei media e, per fortuna, un'eccellente agente dell'FBI viene messa sul caso. Un secondo terremoto, questa volta serio e con vittime fa partire la disperata caccia all'uomo con tanto di inseguimenti in auto e elicottero!

Vi lascio immaginare come va a finire, volutamente non vi ho anticipato nulla sugli intrighi amorosi che rendono la trama ancora più piacevole.


Buona lettura!

19 gennaio 2008

Una città dai due volti

Siete mai stati a Berlino? Noi ci siamo stati la settimana scorsa! Il motivo principale era la partecipazione ad un meeting scientifico, ma questo non ci ha impedito di trovare un po' di tempo per girovagare per la città e ammirarne le sue bellezze.
La prima cosa che abbiamo scoperto è che il sistema dei trasporti pubblici può funzionare, anche se noi in Italia abbiamo imparato ad accontentarci di bus sporchi e troppo pieni di passeggeri, di treni luridi, molto spesso in ritardo e qualche volta soppressi senza apparente motivo.

Il nostro volo easyJet ci ha scaricato all'aeroporto Berlin-Schonefeld intorno alle 23.30 con la solita mezz'ora di ritardo. Con somma tristezza, il sito dei trasporti pubblici ci ha avvisato che non ci sarebbero piu' stati collegamenti ferroviari sino all'indomani, ma ci ha prontamente proposto un percorso alternativo composto da tre tratte auto-"bus"-mobilistiche. Il percorso era stato calcolato con delle tolleranze sulle coincidenze inferiori a 2 minuti, cosa da far morire dal ridere il pendolare italiano quadratico medio. Per confronto, pensate che Trenitalia non permette l'acquisto di due biglietti ferroviari se non ci sono almeno 20 minuti tra l'arrivo del primo convoglio e la partenza del secondo. Il viaggio dall'aeroporto fino al nostro albergo e' durato poco più di un'ora, ma e' stato allietato dalla compagnia di una giovane italiana membra del nostro corpo diplomatico: dopo parecchi anni di lavoro in Argentina, si appresta a prendere servizio nell'ambasciata italiana a Berlino, a lei vanno i nostri più sinceri auguri per una proficua esperienza lavorativa e umana.

"Certo non e' Las Vegas"

Questa testualmente e' stata la prima frase pronunciata dal nostro Marcinski appena giunti a destinazione, affermazione geograficamente corretta visto che ci trovavamo a Berlino e non in Nevada. Certo che se uno si attendeva un città vivace, frizzante e colorata la delusione era inevitabile. Il nostro albergo, bello ma non troppo secondo il mio modesto e personalissimo metro di giudizio, era ubicato nella parte "Est" della città.

In giro per la città

Il giorno seguente, la poliedrica Ingrid, poliedrica nel senso che simultaneamente e' la responsabile della JRA1, amica e per l'occasione anche guida turistica, ci attendeva nella hall dell'albergo per cominciare un'intensa mattinata di puro turismo.

Cosa abbiamo visto? Poca roba a dire il vero. Non si può pretendere di visitare una città quando si hanno a disposizione solo 3 ore. Nonostante questo, l'impressione che abbiamo avuto e' quella di una città in cui si vuole ricostruire per dimenticare e si costruisce per non dimenticare! Cerco di spiegarmi meglio.
  • Lavori in corso, gru e muratori in ogni dove: i Berlinesi cercano di ricostruire tutto quanto e' stato distrutto e non solo a livello edile. Si cerca di riportare vita, anche se in modo un po' sintetico, dove negli anni passati si e' fatto di tutto per estirparla. Si tenta persino di costruire in quella che veniva chiamata (difficile immaginare un nome più azzeccato) dead zone.
  • Eppure la città e' altre si impreziosita da monumenti alla memoria, come l'immenso memorial dell'olocausto con il suo senso di oppressione, prigionia che ricorda a tutti i suoi visitatori quanto crudele puo' essere la stupidita' umana. Un altro esempio: il famigerato muro. Come probabilmente gia' sapete, questo e' stato rimosso completamente, ma al suo posto e' stata disegnata sull'asfalto una linea come ad indicare una dolorosa ferita che dopo anni si e' finalmente cicatrizzata.
Questa la nostra visita nella capitale tedesca ora a voi i commenti!


18 gennaio 2008

A proposito di MAC


Questi giorni di MacWorld a S. Francisco hanno ancora una volta riportato al centro della discussione l'eterna questione: Mac sì o Mac no.
Già sappiamo i commenti della nostra ccappellins riguardo l'ultimo nato della famiglia Jobs (a proposito ho trovato un bel video non perdere), ma probabilmente la nostra temeraria ancora non aveva letto la ricerca pseudo scientifica condotta da Mindset Media secondo la quale gli utenti di sistemi Mac si "sentono mediamente superiori al resto della popolazione".
Se non ci credete ecco cosa viene riportato nel Mindset profile degli utenti Mac.

17 gennaio 2008

Momenti storici

addi' XVII gennaio anno 2008 d.C. ore 12.06

dott.sa Chiara Cappellini dice: "Lo sai che ci vuole un po' prima che io capisca le cose!"

Nessun altro commento e' dovuto per rendere questo momento memorabile. Che sia l'inizio di una redenzione? Non si sa, l'importante e' che il trend venga mantenuto.

Ps. "Santo subito", chi ha orecchie per intendere....