Pensieri da Coder
venerdì 2 dicembre 2011 - 22 Commenti
Ed Esber, we hate you!

Da poco ho letteralmente divorato il libro In Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters di Merrill R. Chapman  (Apress © 2003), che in italiano suono ancora meglio: “Alla Ricerca della Stupidità!”.
Si tratta di uno di quei libri che spesso si trovano impolverati in un angolo delle librerie, ammassato sotto pile di altri tomi che difficilmente vengono notati. Eppure quel libricino ha catturato la mia attenzione e ve lo consiglio assolutamente, ammesso che riusciate a trovarne una copia cartacea o vi accontentiate dell’edizione digitale in inglese [http://www.insearchofstupidity.com/].
Non …

giovedì 1 dicembre 2011 - 9 Commenti
Python: dagli interi “corti” a quelli “lunghi”

In Python raramente mi è capitato di avere a che fare con gli interi “lunghi”, cioè quegli interi che, non potendo essere rappresentati dai classici 32 o 64 bit (a seconda dell’architettura del processore), necessitano di un nuovo tipo di dati in grado di ottemperare a questo requisito.
Naturalmente un programmatore è molto attento nella manipolazione delle quantità di interi (in base al dominio del problema da risolvere), per cui un overflow dovuto a qualche operazione aritmetica che porti il risultato a essere trasformato da int a long è quasi sicuramente …

venerdì 25 novembre 2011 - 17 Commenti
Microsoft Development Evo:  WinRT, .Net Framework 4.5 e VS 2011

Il 13 settembre del 2011 sono state rilasciate la preview del .NET Framework 4.5 e di Visual Studio 2011, anche noti come .Net Framework e VS vNext.
Sicuramente la feauture più attesa è il supporto diretto alle nuove tecnologie che verranno introdotte con Windows 8, riunite sotto il cappello di Windows Runtime (WinRT). Si tratta di un framework multi-linguaggio che affianca il CLR e che può essere assimilato ad una evoluzione degli “odiati” COM in chiave moderna, con cui programmare il nuovo gioiello di Redmond tramite  markup web (HTML 5) e …

mercoledì 23 novembre 2011 - 10 Commenti
Alla fine quanto costa una somma in CPython?

Dopo gli articoli che hanno approfondito i meccanismi che scattano quando si utilizza l’operatore + in CPython (fino alla versione 2.7. Dalla 3.0 in poi si è verificato un cambio sostanziale, che analizzeremo in seguito), il dubbio espresso è legittimo.
Le operazioni di somma di interi (e di concatenazione di stringhe) sono quelle più diffuse e per le quali è stata posta particolare attenzione dagli sviluppatori della macchina virtuale di CPython, ma bisogna distinguere i casi che possono verificarsi.
Gli interi sono in assoluto il tipo di dati più utilizzato, e che …

venerdì 18 novembre 2011 - 7 Commenti
Microsoft Development Evo:  L’evoluzione della specie

 
Ambienti di sviluppo MS dal 2008 alle prossime release
Nel 2007 (Marzo) arriva il dotNet Framework 3.0, una sorta di “estensione” al Framework 2.0 che introduce una serie di nuovi layer tecnologici:

Windows CardSpace, per la gestione dell’identità degli utenti;
Windows Communication Foundation (WCF), per la realizzazione di Web Services e Servizi in generale;
Windows Presentation Foundation (WPF), per la creazione di interfacce utente evolute;
Windows Workflow Foundation (WF), per la gestione di attività facilmente descrivibili attraverso dei workflow sequenziali o delle macchine a stati finiti.

 dotNet Framework 3.0
Il nuovo Visual Studio 2008 (codename Orcas, versione …

mercoledì 16 novembre 2011 - 4 Commenti
E adesso concateniamo le stringhe in CPython

Visto che l’appetito vien mangiando, esaminiamo ora le azioni che sono necessarie in CPython (che ricordo essere la macchina virtuale “ufficiale” / “mainstream” di Python) per portare a compimento un’altra operazione molto comune, la concatenazione di due stringhe, che risulta “mappata” anch’essa sull’operatore di addizione/somma (il classico simbolo “+“).
Se Python s’è diffuso molto, infatti, è anche merito della semplicità di manipolazione delle stringhe che l’ha caratterizzato fin dall’inizio, e fra queste operazioni la più diffusa rimane quella oggetto di quest’articolo.
Riprendendo parte del codice del bytecode BINARY_ADD di cui abbiamo parlato in …

venerdì 11 novembre 2011 - 2 Commenti
Microsoft Development Evo: dotNet raggiunge la maturità

Ambienti di sviluppo MS tra il 2005 e il 2008
Visual Studio 2005 (codename Whidbey, versione 8.0) viene rilasciato ad Ottobre del 2005 e rappresenta un deciso passo in avanti, sia per l’ambiente che per i vari linguaggi.
Da questa versione, Microsoft decide di eliminare il suffisso .NET dal nome della suite, così come per tutti gli altri prodotti precedentemente indicati con esso ad esclusione del Framework stesso che viene aggiornato alla versione 2.0.
 
Visual Studio 2005 Setup
L’IDE si trasforma in un “Guscio” (Shell) al cui interno possono trovare spazio delle estensioni, promuovendo …

mercoledì 9 novembre 2011 - 19 Commenti
Da Python a C, e ritorno

Eseguire una semplice somma in CPython si sta rivelando più complicato di quel che si poteva immaginare, principalmente a causa del diverso “modello” dei dati manipolati rispetto al linguaggio C (col quale è implementata la macchina virtuale).
CPython, come già detto, gestisce qualunque dato facendo uso di una gerarchia che discende dall’oggetto (struttura in C) PyObject, che si specializza poi in base al tipo (classe) di oggetto modellato.
Ritornando al codice della somma, una volta appurato che entrambi gli oggetti siano di tipo intero (puntatori a strutture PyIntObject per la precisione), è …

venerdì 4 novembre 2011 - 6 Commenti
Microsoft Development Evo:  il nuovo millennio e l’era dotNet

Ambienti di sviluppo MS nella prima metà degli anni 2000
Al Develop Network del 2001, Microsoft rilascia la beta di VisualStudio.Net (versione 7.0).
Si tratta di una vera e propria rivoluzione per il big di Redmond che, in buona sostanza, abbraccia l’esperienza di Java ed introduce un ambiente di sviluppo basato su managed code [codice gestito] supportato da un insieme di librerie decisamente ampia, che insieme aumentano esponenzialmente produttività e manutenibilità.
La scelta di Microsoft è avvalorata dall’enorme successo di Java e dalla potenza che i PC di fine anni ’90, che permette …

giovedì 3 novembre 2011 - 15 Commenti
Tiriamo le somme in CPython

Dopo un’occhiata al funzionamento “di massima” della macchina virtuale implementata con CPython e analizzato in dettaglio le azioni che scattano nel momento in cui abbiamo deciso di utilizzare il valore memorizzato nella variabile locale per farci qualcosa, entriamo nel concreto con l’esempio visto inizialmente e che riguarda una semplice somma.
Il blocco di codice che in CPython (ricordo che parliamo della versione 2.6.4, ma il discorso è valido per le versioni 2.x e, per buona parte, per le 3.x) è deputato all’espletamento dell’operazione di “addizione” si presenta decisamente imponente rispetto a …