Avere ragione non serve se non sai perché

I suggerimenti automatici di video su YouTube possono a volte rivelare sorprese. È il caso di questo video che mi è stato consigliato dalla home page e su cui ho per caso avuto la curiosità di clickare.

Si intitola “Intelligent Atheists Left Speechless On A Question On Evolution”

http://www.youtube.com/watch?v=Ckfrn5-86xU

Come si può intuire, si tratta dell’ennesimo tentativo del creazionista di turno di screditare l’evoluzionismo. In questo caso l’autore si accanisce su questi atei che si credono così tanto intelligenti, ma poi non sanno rispondere a domande base sulla teoria che tanto acclamano. Quindi, dice lui, perché credere in una teoria così poco conosciuta dai suoi stessi sostenitori?

Continue reading

Approvato definitivamente lo standard C++14

L’annuncio ufficiale arriva direttamente dalla C++ Software Foundation. Dopo il meeting di Issaquah a febbraio si sapeva che era solo questione di tempo, e tutto è infatti andato per il verso giusto e il documento è stato approvato definitivamente in tutte le sedi nazionali dell’ISO.

Per dare un’occhiata iniziale alle novità si può guardare la pagina di Wikipedia, ma la novità principale è di tutt’altro tipo. Per la prima volta, infatti, il giorno stesso della ratifica dello standard sono già disponibili implementazioni complete e conformi, come ad esempi clang e g++, e altre lo saranno a breve.

Se si pensa che tra la standardizzazione del C++98 e la piena conformità allo standard dei principali compilatori sono passati almeno 5 anni, questo è un traguardo importantissimo. Ha sicuramente giocato un ruolo fondamentale la maggiore collaborazione del comitato di standardizzazione con la comunità di utenti e di sviluppatori.

Il prossimo appuntamento il C++17, che già promette di essere un aggiornamento ambizioso quanto lo è stato il C++11, ma senza i ritardi che lo hanno caratterizzato.

C++11 singleton pattern, again, really.

In questo post voglio correggerne uno di qualche tempo fa, precisamente questo. Il post non contiene errori, che io sappia, ma ha un fondamentale problema: la soluzione presentata è lungi dall’essere ottimale.

Il problema è l’implementazione di un singleton thread-safe, e presentavo la soluzione alle race-condition del Double Checked Locking usando i nuovi std::atomic del C++11. Il punto è che sporcarsi le mani con tipi atomici, sincronizzazioni, locking e quant’altro, in C++11 non serve proprio.

Continue reading

Buon Darwin Day a tutti!

Oggi 12 febbraio si festeggia il Darwin Day 2014, nell’anniversario della nascita del biologo naturalista Charles Darwin.

É molto interessante questa iniziativa, che ci ricorda che nonostante tutto quello che è successo dal 1809, la scienza e la logica di noi scimmie evolute hanno ancora molto da fare per diminuire il numero di scimmiotti in circolazione (coloro che scimmiottano ciò che gli viene insegnato senza metterlo in discussione).

Buon compleanno, Charles!

A quanto pare, la fisica quantistica dimostra un po’ di tutto…

Gira di nuovo su Facebook questo link:
La fisica quantistica dimostra che la vita continua dopo la morte

Leggetelo con calma ma non aspettatevi illuminazioni. Si tratta di una bufalata vecchia come la morte, appunto… Girava un articolo sulla stessa notizia almeno un anno fa. Non entro nel merito di cosa la fisica quantistica dica o non dica, perché non essendo un fisico evito di fare brutte figure, ma nella mia ignoranza scorgo le caratteristiche tipiche di tutto quel sotto genere di “pseudo-scienza” che si aggira sui social network come un virus. Stessa notizia reiterata nel tempo. Titolo clamoroso. Assenza di fonti. Nessuno ne parla, perché tutti tacciono?

Se ci si vuole sporcare le mani con la vera fisica quantistica, si può partire da qui. Altrimenti, è facile incorrere in qualsiasi tipo di strafalcione, perché le ipotesi e i risultati di questa branca della scienza sono così paradossali per il senso comune che è difficile distinguerli dalle stupidaggini, se non si va a fondo.

Continue reading

C# lock keyword in C++11 (quasi)

Alcuni linguaggi, come il Java o il C#, mettono a disposizione una primitiva a livello di linguaggio per specificare che un certo blocco di codice debba essere eseguito da un solo thread alla volta. In C# questa parola chiave è lock, che funziona più o meno così:

lock(obj) {
   something();
}

Ogni thread che esegue questo pezzo di codice sulla stessa istanza di obj acquisisce un lock esclusivo (dichiarato automaticamente dal compilatore nella classe di appartenenza del codice in questione).

Continue reading

I dare you to say new and delete again, I double dare you

Una delle cose che tormentano i programmatori C e C++ di tutte le età è l’annosa questione della gestione della memoria.

Una delle cose che più mi piacciono del C++11 è proprio come viene affrontato il problema. Ero tentato di dire “risolto”, ma sarebbe stato errato. In effetti, il problema della gestione della memoria non si può “risolvere” con qualche feature del linguaggio. Si deve affrontare apertamente.

Continue reading

Qualunque cosa tu scelga di fare…

Questo post è un commento Facebook cresciuto troppo, ad un post di un amico che citava una statistica:

3 milioni e 700mila persone in Italia né studiano, né lavorano, né stanno seguendo alcun percorso formativo [...]

Ho deciso di trasformare il mio commento in un post di questo blog perché stava diventando troppo lungo per non sembrare una trollata, ma in ogni caso da tempo aspettavo l’ispirazione per mettere nero su bianco la mia opinione su alcune cose… In origine sarebbe stata la risposta al seguente commento, che replicava alla mia opinione che si debba ripartire dal modo in cui vediamo cultura e formazione culturale (cultura in senso ampio, anche e soprattutto scientifica):

Nicola, quello è sicuramente un problema, ma non credo sinceramente che sia la chiave di lettura del dato Istat che ho riportato. Il problema non è lo studio, è la prospettiva… Qualunque cosa tu scelga di fare oggi…

Bene, ecco come la penso…
Continue reading