Archives for giugno 2008

Realizzare videogiochi in J2ME

La realizzazione di un videogioco oggi è molto più semplice rispetto al passato non tanto perchè l’hardware permette
effetti impensabili sino a qualche anno fa ma perchè il supporto software offerto dalle API e dai framework sgrava il programmatore di
compiti tediosi quali la gestione delle collisioni o l’animazione degli oggetti.

[Read more…]

I pericoli della programmazione con i mixin/1

I mixin sono una tecnica di programmazione ad oggetti che permette di
iniettare pacchetti di metodi in una classe madre, direttamente o
indirettamente tramite l’ereditarietà multipla. I pro e i contro 
della tecnica sono molto dibattuti ed io personalmente nel giro di qualche anno sono
passato da acceso sostenitore a fiero oppositore. Data
la premessa è chiaro che non sarò imparziale e che non dovete prendere
quanto dirò per oro colato. La mia opinione è che l’ereditarietà
multipla, i mixin e i trait (per lo meno quando i trait sono intesi
come sinonimo dei mixin come spesso avviene) sono esempi di tecniche
molto cool sulla carta che si rivelano nella pratica un disastro,
soprattutto quando ci si trova a dover mantenere del codice che ne fa
un uso liberale. Ci possono essere dei casi particolari in cui il loro
uso è accettabile, ma la maggior parte delle volte esistono
alternative più valide che sono però meno note e meno utilizzate. Lo
scopo principale di questa serie è proprio quello di illustrare le
alternative, almeno nel contesto della programmazione in Python.

[Read more…]

Il debutto di Firefox 3

Dopo oltre un anno e mezzo dall’uscita di Firefox 2
arriva Firefox 3 che promette migliorie sostanziali
nella gestione della memoria utilizzata, nella velocità di esecuzione e nell’usabilità generale
grazie ad una miriade di nuove funzionalità presenti. Cominciamo a
fare conoscenza con alcune di queste “nuove” caratteristiche.

[Read more…]

Il management del software nelle microaziende/1

La letteratura informatica è piena di ottimi libri sul management del software. Se vogliamo, insieme alle tematiche più pratiche di ingegneria del software, il management costituisce uno di quegli argomenti sempre sulla “breccia dell’onda”. Tuttavia le varie metodologie presentate si scontrano nel caso delle microaziende con una realtà che raramente può essere sovvertita: la mancanza di budget. Ad esempio, nel caso del management dello sviluppo software molte delle ricette proposte si basano non solo su una forte disponibilità di programmatori molto preparati in seno all’azienda, ma anche su una gerarchia interna ben definita.

La scarsa disponibilità finanziaria non può tuttavia essere un alibi per non adottare delle politiche di gestione delle attività o strumenti e tecniche di sviluppo che possono rendere la vita migliore per tutti i componenti del team. Con questo articolo parte una serie in cui scopriremo quali azioni, prevalentemente dettate dal buon senso, possono essere intraprese per una corretta gestione delle attività di produzione software anche in presenza di risorse economiche molto limitate. L’idea, basata sull’esperienza dell’autore, è quella di mostrare che è possibile adottare dei criteri organizzativi semplici ma efficaci, che permettono di migliorare sensibilmente la qualità del lavoro svolto, l’organizzazione dell’azienda e la formazione del personale.

[Read more…]

La Summer Of Code italiana

Abbiamo già
parlato del Google Summer
of Code
(in seguito SoC), un programma di Google che finanzia
progetti liberi e più generalmente open source, dando l’opportunità
a studenti di ogni grado di partecipare allo sviluppo di tali
progetti. Il SoC, inoltre, permette agli studenti di conoscere e introdursi nella vita molto peculiare di una
community che ha come obiettivo lo sviluppo di un progetto open
source.

Il SoC rappresenta un’opportunità anche per le organizzazioni
no-profit che promuovono software open source (es. l’Apache
Foundation), le quali beneficiano dell’apporto di nuove energie e
soprattutto di nuovo codice, nuove funzionalità, bug fixing, etc.

Diamo quindi visibilità a studenti e mentor italiani che partecipano
al Google Summer of Code edizione 2008, descrivendo brevemente le
loro proposte, che spaziano su diversi argomenti come: grafica
3D, Security, DSP, GIS, Desktop Environment oppure danno qualità
industriale e robustezza a strumenti e progetti innovativi ma meno
mainstream come Squeak e Haskell, Open Street Map e Blender.

[Read more…]

Gestione dei record in Python/3

Nei primi due articoli di questa serie abbiamo discusso come leggere e
come processare record omogenei. In questo terzo ed ultimo articolo ci
dedicheremo invece allo studio dei record non-omogenei, ovverossia
record in cui campi diversi vanno processati in
maniera diversa. Lo scopo ultimo è quello di disegnare un framework
per convertire record in testo in formato CSV, HTML, XML o altro. En
passant
, discuteremo varie tecniche di design e pattern tipici della
programmazione ad oggetti.

patchwork1.jpg

Fig 1: design a oggetti

[Read more…]

Common Lisp Macro/1

Tra le funzionalità che rendono il Common Lisp un linguaggio molto
potente e differente
da quelli più diffusi, vi sono
le macro.Una notazione ed una sintassi con poche regole ed un sistema di
lettura, compilazione e esecuzione del codice molto flessibile danno
allo sviluppatore la possibilità di astrarre un pattern di codice in
un nuovo costrutto, laddove tale pattern non può essere astratto con
una tradizionale funzione. I lettori che già conoscono il Common Lisp
possono saltare il prossimo paragrafo, nel quale ne sono riassunte
brevemente le basi. Coloro i quali vogliono approfondire o conoscere le macro in Scheme possono visionare le Avventure di un Pythonista in Schemeland 8, 9,10 e 11.
[Read more…]

Python migliora il supporto al multiprocessing

Con le seguenti parole Guido Van Rossum ha approvato e benedetto l’ingresso di pyprocessing all’interno della libreria standard di Python già nelle prossime release:

+1 from me as well, and I support the rename to multiprocessing (“processing” is just too much of a common word).
This will provide a good short-term answer to those who still clamor for dropping the GIL.

[Read more…]

Ruby 1.8.7 e Rails 2.1

RailsConf 2008 passerà alla storia per i molti annunci importanti. Ad esempio, l’annuncio ufficiale circa il nuovo traguardo di IronRuby, che è finalmente in grado di servire semplici richieste con Rails. Un’altra star indiscussa che farà parlare di sé, è MagLev, un’implementazione da parte dell’azienda Gemstone, che ha stupito tutti con dei benchmark che dimostrano una velocità di esecuzione di gran lunga maggiore a quella di MRI (Matz Ruby Interpreter). Come se non bastasse, proprio oggi sono state rilasciate la nuova versione di Ruby (1.8.7) e quella di Rails (2.1).

[Read more…]