Archives for marzo 2008

Accent Runner

Programmare multi processi facilmente con Twisted Matrix /1

L’aumento del numero di core nei processori moderni e la
necessità di sfruttare il più possibile il parallelismo tra
diverse macchine, rende necessario trovare metodi efficaci per
ottenere il massimo dei vantaggi con il minimo dello sforzo e
della complessità. Storicamente si è sempre ricorso alla
programmazione multi-thread shared-state ma questa è
soggetta a numerosi problemi come ad
esempio la gestione dei lock e dei semafori, la scalabilità sia
nella stessa macchina che orizzontalmente su piu` macchine,
l’imprevedibilità delle ottimizzazioni attuate dai compilatori, la
complessità di unit-testing e debugging, i modelli di coerenza e
consistenza della cache dei processori e della RAM e altri.

[Read more…]

XBL – XML Binding Language /1

Questo è il primo di tre articoli dedicati al linguaggio XBL, lo scopo è quello di cominciare a fare conoscenza con il linguaggio
che permette di creare componenti riutilizzabili scritti in XML che sono alla base della piattaforma Mozilla.

Questo primo appuntamento descrive come creare un nuovo widget, nel secondo si vedrà come usare i gestori di eventi ed i metodi.

Ogni volta che si legge un acronimo contenente la lettera X (a meno che non siano tre di fila) si pensa immediatamente a qualche parentela con l’XML.
Non fa eccezione XBL che è un linguaggio la cui sintassi è gerarchica come l’XML ed il cui utilizzo consiste nel creare interfacce utente basate su HTML/XHTML/SVG/XUL.

[Read more…]

Microformats, il lower-case semantic web /1

I microformats per fortuna non sono una rivoluzione, soltanto una
evoluzione. E una di quelle che servivano come il pane e l’acqua
quotidiani.

Uno dei dogmi più citati e meno seguiti dello sviluppo web odierno
è di usare il markup non solo come “involucro” di contenuti (o
peggio, come elemento grafico) ma come metadato in grado di
descrivere i contenuti stessi, sfruttando quindi le proprietà di
un linguaggio strutturale come XHTML per dotare il documento di
una semantica. In poche parole ciò significa usare i tag
appropriatamente in base al loro contenuto: il titolo del mio blog
sarà un tag h1, la lista dei miei libri favoriti sarà un tag li
all’interno di una lista ordinata o non, gli acronimi saranno
all’interno del tag acronym. Il buon vecchio Plain Old Semantic
HTML (da qui in poi POSH, per usare un acronimo caro agli autori
delle specifiche che stanno alla base dei microformats), condicio
sine qua non per definirsi buoni designer.

[Read more…]

Recensione di Implementation Patterns

Implementation Patterns CoverSono sicuro che da qualche parte sulla rete esiste il vademecum della recensione perfetta o un manuale per scrivere recensioni. Onestamente, preferisco raccontarvi il mio viaggio con il libro di Beck. Intanto una premessa: a partire dal cosiddetto Libro Bianco, ovvero “Extreme Programming Explained: Embrance Change” – prima edizione, ho letto tutti i libri che Beck ha pubblicato. Questo background mi ha sicuramente influenzato, ed è con queste lenti che bisogna approcciare la mia recensione di “Implementation Patterns”.

[Read more…]

Le avventure di un Pythonista in Schemeland /6

Dopo cinque puntate introduttive è finalmente arrivato il momento
di fare sul serio. In questa puntata e nella prossima getteremo le basi
per capire cosa stia dietro al celebre motto del Lisp code is data,
che molti considerano il cuore e l’anima del Lisp.
Come sempre, capire richiede qualche preliminare. In questa puntata
descriveremo due tipi di dati fondamentali del Lisp (e quindi
di Scheme): i simboli e le liste. Nella prossima discuteremo
l’operazione di quoting che permette di trasformare un frammento di
codice in una lista di simboli e valori primitivi (cioè converte
codice in dati) e l’operazione di eval che permette di eseguire una
qualunque lista di simboli e valori primitivi corrispondente a codice valido
(cioè converte dati in codice).

[Read more…]

Le giuste proporzioni

Linux Kernel Hacking: Un semplice filesystem

Il VFS (Virtual File System) è il layer di Linux per gestire i file system. Si tratta di uno dei componenti più importanti del kernel non solo perché permette l’organizzazione e la gestione dei dati sui nostri sistemi di storage ma anche perché è un modo molto comodo per far dialogare lo userspace con il kernel. Progetti importantissimi come SeLinux utilizzano un filesystem per la loro configurazione. In questo articolo vedremo come realizzare un semplice filesystem per l’organizzazione di dati su un dispositivo a blocchi.

[Read more…]

I 7 peccati capitali del recruitment di hacker

La ricerca di personale IT è un processo piuttosto delicato che può avere un impatto significativo sul futuro di un’azienda. In questo articolo analizzerò sette errori piuttosto comuni, riferendomi in particolar modo all’assunzione di sviluppatori, anche se non v’è ragione di pensare che altri impiegati del settore IT, come sistemisti e database administrator (DBA), seguano dinamiche fondamentalmente diverse.

[Read more…]

Il futuro de “Le avventure di un Pythonista in Schemeland”

In un commento alla prima puntata delle mie “Avventure” dicevo che questa
era una serie di ampio respiro che ci avrebbe accompagnato per molte
puntate. Parlavo seriamente: in questo momento, dopo cinque puntate,
siamo soltanto alla conclusione dell’introduzione. La serie vera
comincia adesso
.

[Read more…]