Archive for Giugno 2007
Programmare con stile (2)

Eccoci alla seconda puntata della guida Programmare con Stile. Dopo aver analizzato i principi base della formattazione del codice, passiamo all’analisi della gestione delle righe lunghe di codice e del posizionamento delle parentesi. Approfitto per ricordare ai lettori che questa guida è tratta dalle linee guida dello stile di programmazione del kernel Linux, quindi si adatta bene a linguaggi C-like un po’ meno a linguaggi come il python dove la formattazione del codice è parte integrante della grammatica e semantica del linguaggio.
Capitolo 2: Gestire linee e stringhe lunghe
Programmare con stile vuol dire garantire la leggibilità del codice e la sua manutenzione per mezzo di strumenti comunemente disponibili.
Il limite della lunghezza delle linee è di 80 colonne e questo è un limite fortemente obbligatorio.
Dichiarazioni lunghe più di 80 colonne saranno adattate opportunamente su più righe. Le righe spezzate sono sempre sostanzialmente più corte della riga “padre” e sono posizionate sostanzialmente sulla destra. La stessa procedura si applica alle dichiarazioni di funzioni che hanno una lunga lista di argomenti. Anche le stringhe lunghe sono spezzate in stringhe più corte.
if (condition) printk(KERN_WARNING "Warning this is a long printk with " "3 parameters a: %u b: %u " "c: %u n", a, b, c); else next_statement;Capitolo 3: posizionare le parentesi
Un’altra particolarità che occorre gestire per aver un buon stile nella programmazione C è il posizionamento delle parentesi. A differenza della scelta della dimensione del carattere “Tab”, qui ci sono alcune ragioni tecniche per scegliere una strategia di posizionamente piuttosto che un’altra. La scelta preferita, comunque, è quella dettata dai profeti Kernighan e Ritchie e, cioè, di aprire la parentesi graffa alla fine della linea e chiuderla all’inizio di una nuova, così come segue:
if (x is true) { we do y }Tuttavia, nella definizione di funzioni c’è un comportamento speciale: la parentesi graffa viene aperta all’inizio della riga successiva, così:
int function(int x) { body of function }Varie persone eretiche in tutto il mondo hanno sostenuto che questa incoerenza è … come dire … incoerente, ma tutte le persone ragionevoli sanno che:
a) K&R hanno ragione
b) K&R hanno ragioneInoltre, le funzioni sono comunque particolari (non puoi annidarle in C).
Nota che la parentesi graffa chiusa si trova da sola in una nuova riga, fatta eccezione per i casi dove la riga continua con altre dichiarazioni, ad esempio in un “while” con il “do” o in un “else” con un “if”, come questo:
do { body of do-loop } while (condition);e
if (x == y) { .. } else if (x > y) { ... } else { .... }Spiegazione razionale: K&R.
Oltretutto, nota che questa modalità di posizionamento delle parentesi minimizza il numero delle righe vuote (o quasi vuote), senza nessuna perdita in leggibilità. Quindi, siccome la fonte di nuove linee nel tuo schermo non è una risorsa rinnovabile (pensa ad un terminale 25 linee), hai più linee vuote per inserire dei commenti.
Anche questa puntata è giunta al termine, nella prossima vedremo come scegliere in maniera adeguata i nomi e come scrivere funzioni eleganti.
Programmare con stile (1)

Sono sempre stato un maniaco dello stile di programmazione a partire dalla formattazione del codice. Una delle più interessanti guide sullo stile di programmazione si trova direttamente nei sorgenti del kernel Linux:
<linux-source-directory>/Documentation/CodingStyle
E’ un’ottima documentazione e vorrei condividerla con i miei lettori traducendola in italiano. Trattandosi di una guida per la scrittura di codice del kernel Linux, sono presenti alcune riferimenti o paragrafi riguardanti tale tipo di programmazione, ove possibile, quindi, sarà fornita una versione ritagliata e riadattata per essere di carattere più generale possibile.
CAPITOLO 1: Formattazione
Il carattere speciale “Tab” equivale a 8 caratteri, quindi anche la formattazione del codice è basata su spazi di 8 caratteri. Ci sono movimenti eretici che provano ad usare formattazioni basate su spaziature a 4 (o anche 2!) caratteri, questo equivale a dire che il valore esatto di PI è 3.
Spiegazione razionale: Il concetto che è alla base di una buona formattazione è di definire in maniera chiara l’inizio e la fine di un blocco di codice. Specialmente quando hai trascorso 20 ore consecutive a fissare il tuo schermo, troverai molto più facile distinguere i vari blocchi se avrai fatto uso di una formattazione più larga.
Ora, qualcuno potrebbe obiettare che, avendo una formattazione basata su spaziature a 8 caratteri, il codice si sposti troppo velocemente verso destra, rendendolo di difficile lettura su un schermo di un terminale a 80 caratteri. La risposta a questo è che, se tu hai bisogno di più di 3 livelli di profondità, stai comunque sbagliando e devi sistemare il tuo codice.
In poche parole la formattazione con spaziature a 8 caratteri rende il codice più facilmente leggibile e ha il valore aggiunto di avvertirti quando stai annidando troppo in profondità le tue funzioni.
Non inserire più dichiarazioni su una singola linea a meno che non hai qualcosa da nascondere:
if (condition) do_this; do_something_everytime;Fatta eccezione per i commenti e la documentazione non vengono mai utilizzati singoli spazi per la formattazione e l’esempio qui sopra è volutamente errato.
Usa un editor decente e evita di lasciare spazi alla fine delle linee.
Per questa puntata è tutto, nella prossima vedremo come spezzare le righe lunghe di codice e come posizionare le parentesi.
Jujitsu News: Autodifesa Informatica Randomica

Oggi vi voglio presentare uno dei miei ultimi progetti. Si chiama Jujitsu News è un portale di notizie riguardanti il mondo dell’Informatica, ma con alcune caratteristiche particolari:
Jujitsu News è un portale di notizie informatiche. Ogni giorno verrà inserita automaticamente una notizia randomica che parlerà di informatica, ma con un carattere totalmente confusionario! Il testo, seppur randomico e senza nessun filo logico, trae sempre spunto da notizie reali pubblicate su quotidiani on-line nello stesso giorno.
Credo che oggi, purtroppo, l’informatica (con la “i” minuscola) sia equiparata all’Informatica (con la “i” maiuscola). Jujitsu News vuole essere una provocazione per mostrare che solo l’Informatica è realmente divertente, essere Hacker diverte e fa divertire. La programmazione in C, lo studio dei linguaggi e delle analisi stocastiche possono essere studi interessanti ed è bello renderli divertenti.
Detto questo non rimane che un bel link: Jujitsu News. Buona lettura!
Il vicolo più stretto

Ripatransone vanta il vicolo più stretto d’Italia, ampio 43 cm all’imboccatura, ma soli 38 cm nel punto più angusto. Insinuato fra due abitazioni, è stato riconosciuto transitabile a tutti gli effetti. È considerato, finora, anche il più stretto d’Europa, poiché nessuna città ha mai reclamato questo specifico record.
Ti sento vivere

Non so’ che cosa fare
il sonno se n’è andato e non tornerà
un vetro da cui guardare
il silenzio fermo della cittàE ti vorrei chiamare
si però a quest’ora ti arrabbierai
e poi per cosa dire
a metà io so che mi blocchereiPerché non è facile
forse nemmeno utile
certe cose chiare dentro poi non
escono, restano, restanoVorrei dirti, vorrei
ti sento vivere
in tutto quello che faccio e non faccio ci sei,
mi sembra che tu sia qui
sempreVorrei dirti, vorrei
ti sento vivere
dovunque guardo ci sei tu
ogni discorso sempre tu
ogni momento io
ti sento sempre piùSeduta lì a parlare
con i tuoi amici che bella sei
mi sembra di impazzire
per essere lì con te non so che dareiTi vorrei far vedere
tutti i miei foglietti e le lettere
che ti vorrei spedire
ma non ho il coraggio e non so perchéPerché non è facile
forse nemmeno utile
certe cose chiare dentro poi non
escono, restano, restanoVorrei dirti, vorrei
ti sento vivere
in tutto quello che faccio e non faccio ci sei,
mi sembra che tu sia qui
sempreVorrei dirti, vorrei
ti sento vivere
dovunque guardo ci sei tu
ogni discorso sempre tu
ogni momento io
ti sento sempre più(Ti sento vivere – 883)
Free Software Song
La canzone del Free software cantata da Richard M. Stallman in persona! Ecco il testo:
Join us now and share the software;
You’ll be free, hackers, you’ll be free.
x2Hoarders may get piles of money,
That is true, hackers, that is true.
But they cannot help their neighbors;
That’s not good, hackers, that’s not good.When we have enough free software
At our call, hackers, at our call,
We’ll throw out those dirty licenses
Ever more, hackers, ever more.Join us now and share the software;
You’ll be free, hackers, you’ll be free.
x2
San Giacomo in moto

Mattinata di sole, e spettacolare giro in moto a San Giacomo (TE). Non c’è nulla da fare l’asfalto di montagna da molta più sicurezza e…la moto va giù da sola! Ecco l’itinerario di 130 Km: mappa stradale.
Grindhouse

I film d’exploitation rappresentano quel genere cinematografico che mette da parte i meriti artistici per una estetizzazione più forte, mostrando scene di sesso, violenza e sangue. Film del genere sono esistiti sin dai primi giorni del cinema, ma sono stati resi celebri durante gli anni settanta, durante i quali andò sempre più diminuendo il taboo negli Stati Uniti ed in Europa.
Ephraim Katz, autore della “enciclopedia dei film”, ha definito i film d’exploitation come:
“Film fatti con poca o addirittura alcuna attenzione alla qualità o al merito artistico, ma con un interesse mirante al guadagno veloce, di solito attraverso tecniche di pubblicità che enfatizzino qualche aspetto sensazionale del prodotto”
Per Grindhouse si intende un cinema che principalmente presenta film d’exploitation; spesso gli stessi film d’exploitation vengono chiamati “grindhouse”. Le grind-house sono note per le maratone non-stop di B-movie, di solito con due film mostrati di seguito, della stessa serie. Molti di questi cinema cittadini ospitano degli spettacoli a carattere burlesco, con balli e altro materiale frivolo. Iniziato nei tardi anni sessanta e specialmente durante i primi anni settanta, il fulcro dei film d’exploitation mostrati in questi cinema spesso include scene di sesso esplicite, violenza, trama bizzarra o addirittura perversa, e altri contenuti taboo. Molte grind-house mostravano esclusivamente pellicole pornografiche.
Grindhouse è anche un film horror/splatter, diretto da Quentin Tarantino e Robert Rodriguez. Diviso in due episodi, il film si rifà al cinema dei “doppi spettacoli” e delle pellicole a basso costo che avevano caratterizzato l’America anni settanta.
Mezze penne alla Turing

Ecco una mia ricetta personale inventata a partire da ingredienti completamente randomici:
Penne alla Turing
Ingredienti: Pasta mezze penne, prosciutto crudo, pinoli, uva passa, vin santo, aglio, olio, peperoncino, parmigiano.
Preparazione: Mettete a bagno l’uva passa in mezzo bicchiere di Vin Santo. Soffriggete nell’olio uno spicchio d’aglio e il peperoncino, quando l’aglio sarà dorato e aggiungete l’uva passa, i pinoli e il prosciutto crudo tagliato a dadini. Lasciate sul fuoco il tempo necessario per rosolare il prosciutto aggiungendo il mezzo bicchiere di vin santo. Fate bollire l’acqua per la pasta, salatela e cuocete le mezze penne. A cottura ultimata condite la pasta con il sugo precedentemente preparato. Servite a tavola con del parmigiano grattugiato.




