gigabytes

 

No, questo post non parla ne di autobus ne di treni (anche se di problemi con questo tipo di fermate ce ne sono molti).
Una sera della scorsa settimana mi sono ritrovato in mezzo ad una discussione “quasi” tecnica tra un paio di bravi ingegneri elettronici con tanta voglia di bere birra e chiacchierare. Uno dei due ad un certo punto sfodera con ammirevole sicurezza una rassicurante verità:

Qualsiasi cosa tu abbia bisogno di calcolare, un computer può farlo. Basta conoscere l’algoritmo giusto e avere abbastanza tempo.

La leggerezza della conversazione e il mezzo litro di De Koninck ormai in dirittura di arrivo hanno persuaso il matematico che c’è in me dal contraddire questa affermazione a prima vista scontata.
Non è così facile da intuire, ma esistono problemi che un computer non può risolvere. Risposte che non possono essere calcolate.

Continue reading »

 

Spezzo il semestrale silenzio di questo blog per riportare una notizia che mi sta particolarmente a cuore. Proprio ieri il team di FreeBSD ha rilasciato la versione 9.0 del loro sistema operativo UNIX.
La lista delle novità è lunga, ma il motivo per cui la notizia mi è balzata subito agli occhi è che FreeBSD 9 integra LLVM e Clang nel sistema base, che può essere totalmente compilato usando il nuovo compilatore (kernel compreso), anche se per ora solo su i386 e amd64.
Questo rende FreeBSD il primo sistema operativo open source ad integrare clang nel proprio sistema base, oltre ad avvicinarsi al grande passo di eliminare completamente la propria dipendenza da codice GPL, obiettivo che è sempre stato nella roadmap a lungo termine degli sviluppatori dei sistemi BSD.
Questioni di licenza a parte, un sistema FreeBSD compilato con clang gode di tutti i benefici portati da LLVM, ed è anche possibile abilitare la link-time optimization durante la compilazione del sistema e dei ports.
Per informazioni più tecniche c’è questa pagina wiki, che dovrebbe essere abbastanza aggiornata.

 

L’Apple World Wide Developer Conference 2011 è finito da un po’, e Apple ha pubblicato sul suo portale developers i video delle sessioni tecniche tenute dai suoi ingegneri durante la manifestazione. Chiunque può accederci dopo una registrazione gratuita, dall’indirizzo http://developer.apple.com/videos/wwdc/2011/.
Si tratta di interventi tecnici molto specifici, tenuti da membri di rilievo dei team di sviluppo di Apple. Oltre ad essere interessanti per il loro contenuto, la loro pubblicazione svela le novità introdotte in Lion e iOS 5, dal punto di vista dello sviluppo di software, anche a chi non essendo iscritto al Developer Program non ha a disposizione le beta release e la relativa documentazione.

Dopo essermi divorato la maggior parte dei video disponibili, quindi, mi divertirò scrivendo la mia opinione sulle novità che ritengo più importanti.

Continue reading »

 

Dopo un mese e mezzo di silenzio, la notizia della definitiva approvazione del nuovo standard internazionale ISO C++ 2011 mi ha spronato a scrivere qualcos’altro in merito. Questa volta mi concentrerò su una funzionalità forse marginale ma senza dubbio molto utile. Le lambda functions.
Continue reading »

 

Chi mi conosce sa che ultimamente ho programmato molto in C++. Di conseguenza, non potevo non interessarmi alle novità che verranno introdotte nel linguaggio dalla nuova versione dello standard internazionale ANSI/ISO, che verrà ratificato a breve, ormai ribattezzato da tutti C++0x nonostante si parli di un rilascio nel 2011.

Nonostante lo standard internazionale attuale risalga al 1998 (con qualche correzione nel 2003), il linguaggio ha visto un notevole sviluppo negli ultimi anni, grazie principalmente all’evoluzione dei vari compilatori presenti sul mercato, che oltre ad essere ormai completi e per la maggior parte aderenti allo standard, sono anche più performanti di quanto non si potesse sognare qualche anno fa (vedi ad esempio Clang). Il nuovo standard poggia su queste fondamenta e cerca di “modernizzare” il linguaggio, aggiungendo alcune feature veramente interessanti che, pur essendo a prima vista delle modifiche minori, rendono il C++ un linguaggio in alcuni sensi molto diverso.

La buona notizia è che, a differenza dello standard del 1998, i vari produttori di compilatori sembrano intenzionati a fare le cose per bene fin da subito. Il compilatore g++ di GNU, che è praticamente lo standard de facto su tutte le piattaforme diverse da Microsoft Windows, implementa già buona parte delle nuove caratteristiche del linguaggio, mentre Visual C++ 10 di Microsoft ne ha introdotto alcune tra le più interessanti.

In questo post cercherò di illustrare la novità più importante dal punto di vista delle performance del C++, ovvero l’introduzione dei cosiddetti r-value references.
Continue reading »

 

Forse il motivo per cui i matematici sono così attaccati alle dimostrazioni formali, è che se lo possono permettere. Così Marcus du Sautoy, nel suo libro “L’enigma dei numeri primi”, cerca di motivare l’amore della matematica per l’inconfutabilità delle dimostrazioni logiche.

È per questo motivo che la comunità scientifica non può ancora accettare come prova l’enorme quantità di evidenze sperimentali a favore dell’ipotesi di Riemann, uno dei più importanti quesiti aperti della matematica moderna.

Di cosa parla questa ipotesi, e perchè è così importante? Partendo dall’antica grecia, Marcus du Sautoy lo spiega ai “profani” ripercorrendo la vita e le vicissitudini dei più importanti matematici che nei secoli si sono cimentati con i misteri nascosti nella sequenza dei numeri primi. Come sono legati tra loro? C’è qualche regolarità nella sequenza, o sono distribuiti a caso? Quanti primi si trovano in un certo intervallo? È possibile, dato un numero primo, trovare velocemente il successivo?

L’ipotesi di Riemann è l’ultima di questa serie di domande, rimasta irrisolta ormai per più di un secolo e mezzo dopo che Riemann l’ha accennata in un articolo del 1859 dove sosteneva di avere in cantiere una dimostrazione, andata poi persa a causa di una domestica troppo diligente.

Nonostante l’argomento possa spaventare, in realtà “L’enigma dei numeri primi” è un libro sorprendentemente leggero e scorrevole, in cui l’autore dimostra una grande capacità divulgativa spiegando il significato di concetti matematici molto complessi con metafore semplici e naturali.

Per concludere, non posso non consigliare la lettura de “L’enigma dei numeri primi” , a chiunque sia anche minimamente interessato all’argomento.

 

È notizia di oggi il nuovo accordo tra Nokia e Microsoft per l’integrazione tra la linea di smartphone di Nokia e l’ecosistema software di Windows Phone 7. Lo slogan è “Welcome to the third ecosystem”. Il motivo di questa mossa è chiaro, ed è stato perfettamente espresso dal CEO di Nokia, Stephen Elop, nella sua lettera ai dipendenti fatta sapientemente trapelare qualche giorno fa.

In poche parole, dopo essere stata per quasi 10 anni leader incontrastata del mercato dei telefoni cellulari, negli ultimi due anni Nokia non si è trovata preparata al nascere improvviso di agguerriti concorrenti.

Da un lato c’è Apple, che in tre anni con il suo iPhone ha rivoluzionato il mercato e monopolizzato il segmento degli smartphone high-end, attirando centinaia di migliaia di sviluppatori e centinaia di milioni di utenti.

Dall’altra parte c’è il sistema operativo Android di Google, assieme a tutti i produttori che l’anno adottato per i propri prodotti. Android ha avuto uno sviluppo rapidissimo negli ultimi due anni, e ora cominciano ad apparire proposte veramente interessanti nel comparto high-end, ma soprattutto continua a dilagare l’offerta nel segmento medio basso del mercato, con telefoni Android sotto i 100$.

Tra questi due giganti, Nokia si è trovata improvvisamente in inferiorità sia tecnica che commerciale. Il successo degli ultimi prodotti, nonostante la critica positiva, non è stato esaltante, e Symbian continua a non convincere ne gli sviluppatori, ne gli utenti. Relegato in una nicchia c’è MeeGo, eterna promessa che forse, se dio vuole, vedrà la luce su un vero dispositivo commerciale durante il 2011, ma di cui non si è ben capito il futuro.

La decisione di affidarsi al sistema operativo di Microsoft sembra azzeccata. Nonostante Microsoft non stia simpatica a nessuno, devo ammettere che Windows Phone 7 è un sistema molto interessante, che presenta alcuni elementi originali, una grande facilità d’uso, e strumenti di sviluppo veramente ottimi. D’altra parte, Microsoft non è un produttore di telefoni, e deve farsi strada tra i produttori per affermare il proprio sistema, cosa non facilissima vista l’agguerrita concorrenza di Android. L’accordo annunciato oggi permetterà di unire l’ecosistema software di Microsoft con l’esperienza di Nokia riguardo alla produzione di telefoni.

Leggendo bene quanto annunciato si vede che l’accordo va anche oltre, mettendo in gioco anche l’integrazione tra Bing e i servizi di mappe di Nokia, Xbox Live e l’Ovi Store ecc… In pratica, Nokia e Microsoft vogliono fondere i propri ecosistemi per dare vita ad un polo che attiri non solo utenti, ma anche sviluppatori. Per ora sembra una mossa vincente.

C’è una nota dolente in tutto ciò, non per Nokia, ma per chi contava di sviluppare sui prodotti Nokia. Nel 2008 Nokia acquistò Trolltech con lo scopo di fare di Qt il centro della propria strategia mobile. Di conseguenza, l’integrazione tra Qt e Symbian è cresciuta e Qt è diventato praticamente la piattaforma di sviluppo principale sui prodotti Symbian, soprattutto di fascia alta. Sembra quindi chiaro che il futuro di Qt nel mobile è legato a doppio filo a quello di Symbian.

La press-release di Nokia pubblicata oggi recita “Microsoft development tools would be used to create applications to run on Nokia Windows Phones, allowing developers to easily leverage the ecosystem’s global reach”. Questa frase non lascia molte speranze sull’eventualità di un porting di Qt per WP7.

Il team della divisione Qt Software di Nokia si è subito affrettato a chiarire il futuro di Qt dopo questo annuncio, assicurando che Qt non morirà e Nokia continuerà ad investirci attivamente. Ma quanto detto non mi convince, dal punto di vista di uno sviluppatore. A prescindere dalla qualità attuale del framework, sicuramente molto alta, la domanda veramente importante è: investire su Qt ora, è conveniente in un quadro a lungo termine?

Lo slogan di Qt è sempre stato “code once, run everywhere”. Quando si parla di sviluppo desktop questo slogan è sicuramente azzeccato, ma in campo mobile non si può dire altrettanto. Dall’annuncio di oggi, è chiaro che nel futuro prossimo le tre principali piattaforme del mercato saranno iOS, Android, e Windows Phone. Su iOS e Windows Phone l’uso di Qt è impossibile a prescindere. Su Android, è in corso un porting sperimentale, basato su Lighthouse, una tecnologia a sua volta sperimentale che non vedrà la luce prima di Qt 4.8, non prima di fine 2011. L’unica piattaforma mobile su cui Qt è realmente utilizzabile è Symbian, che sembra proprio destinata a morire. Come un lettore del blog di Qt Software ha sapientemente commentato, lo slogan rischia di diventare “code once, run nowhere”.

Che fine farà quindi Qt in ambito mobile? Personalmente vedo il suo futuro molto grigio, e se avessi investito tempo, denaro e know-how nello sviluppo di applicazioni mobile in Qt avrei veramente molto di cui lamentarmi…

 

Come promesso, ecco la versione quasi definitiva dei miei nuovi appunti del corso di Calcolo Scientifico, di cui a breve dovrò sostenere l’esame.

Trovate tutte le informazioni necessarie nella sezione apposita del sito. Spero vivamente che questo documento torni utile al maggior numero possibile di persone e invito chiunque a collaborare.

 

Ciao mondo. Il titolo di default che WordPress assegna al primo post di esempio mi sembrava azzeccato per il primo post di questo blog.

“Hello world” è ciò che di solito si fa scrivere ai semplicissimi programmi di esempio mostrati a chi sta imparando le basi di un nuovo linguaggio di programmazione, come se quel piccolo programma fosse contento di essere stato scritto ed eseguito almeno una volta. Quale titolo migliore quindi per il primo post del neo-nato blog di un programmatore che ama programmare?

Personalmente torno online per la seconda volta, dopo quasi un anno di silenzio a seguito della completa cancellazione del mio blog precedente, causata da una spaventosa negligenza di Tophost sulla quale non mi dilungherò.

L’intenzione è rimasta la stessa: mettere ordine a tutte le idee e le nozioni che nel tempo si accumulano nella testa di uno studente universitario di Informatica e fare in modo, con un po’ di fortuna, che siano utili anche a qualcun altro.

Il primo vero post verrà alla luce probabilmente a Febbraio, dopo il mio esame di Calcolo Scientifico di cui sicuramente sentirete molto parlare in futuro su queste pagine. Nel frattempo, ho ripubblicato gli appunti del corso di Matematica Discreta di due anni fa. Per saperne di più andate su questa pagina.

Colgo l’occasione per ringraziare il mio amico Carmelo San Giovanni della NetMDM, che mi offre i suoi professionali servizi di hosting, e vi rimando al prossimo post.

Hello, World!

© 2011 Nicola Gigante Hosted by NetMDM Suffusion theme by Sayontan Sinha