Friday, August 13, 2010

hippopotomonstrosesquipedaliophobia

Main Entry: hippopotomonstrosesquipedaliophobia
Part of Speech: n
Definition: Fear of long words

Oh, irony!

Sunday, April 25, 2010

Pippo e le metavariabili

Qualsiasi programmatore si scontra, neanche troppo tardi, con la necessità di spiegare qualche algoritmo a qualche amico.
Se eccettuiamo casi di alto livello (come algoritmi sui grafi, o sui flussi, o di programmazione dinamica), il metodo migliore è quasi sempre partire dal codice.

Ed immediatamente, ecco che ci si imbatte in qualche variabile d'appoggio, di cui capiamo perfettamente il senso, ma a cui non sappiamo che nome dare...
Ed ecco quindi che, qualsiasi programmatore, ricorre agli stra abusati pippo, pluto, ciao, mamma, o che dir si voglia...



Queste variabili sono chiamate variabili metasintattiche. Una variabile metasintattica è un nome usato per indicare un generico elemento all'interno di una determinata categoria; l'uso è analogo a quello che in matematica si fa del nome x o y e z per indicare tre valori o tre variabili qualsiasi; oppure, in numerosi contesti, all'uso di Tizio, Caio e Sempronio per indicare tre generiche persone.


Thursday, March 18, 2010

Multitasking

Sto scrivendo questo post mentre parlo al cellulare con una persona e mentre scrivo in chat ad un'altra. Mi sto autoconvincendo di poter fare queste tre cose contemporaneamente senza alcuna perdita di qualità? No... semplicemente perché non posso. Mi rendo conto che quello che la maggior parte di noi chiama "multitasking" si ottiene soltanto pagando un prezzo esorbitante.

Ma se un tempo credevo che il mito del multitasking fosse errato solo in riferimento al tempo (ossia, fare quattro cose contemporaneamente richiede molto più tempo di quanto ne sarebbe richiesto se facessimo le stesse quattro cose in sequenza), ora gli scienziati sanno anche che intacca la qualità. Ed è ancora peggio: non si parla solo del fatto che la qualità di quelle quattro cose portate avanti in parallelo sarà inferiore, ma anche del fatto che la nostra capacità di pensare ed apprendere sarà inferiore. Alcuni ricercatori credono che la costante, sempre più veloce e sempre impegnativa attività multitasking stia facendo sì che i giovani in particolare diventino meno capaci di seguire qualsiasi argomento con profondità.

Tuttavia, credo che il problema più grande (e che riguarda tutti) sia che la maggior parte delle persone coinvolte in attività mediatiche portate avanti in parallelo non si accorga minimamente di quanto faccia schifo in quello che fa.

Siamo convinti che possiamo scrivere e-mail ed allo stesso tempo parlare al telefono, senza un tangibile deterioramento di ciascuna delle comunicazioni.

Siamo convinti di poter studiare mentre guardiamo un film.

Siamo convinti di poter navigare in Internet mentre parliamo ad amici/compagni/colleghi.

Ma non possiamo! (Almeno, non senza conseguenze su vari livelli: tempo, qualità e la capacità di concentrazione)

Da un articolo di fondo sul Times:
"Decenni di ricerca (senza citare il buon senso comune) indicano che la qualità dei risultati e la concentrazione di pensiero di una persona si deteriorano quando uno affronta sempre più compiti".

E secondo Jordan Grafman, capo del dipartimento di neuroscienza cognitiva al National Institute of Neurological Disorders and Stroke:
"Sostengo che i bambini che chattano mentre studiano, mentre giocano online e mentre guardano la TV non riusciranno a fare un gran che, alla lunga".

E da questo studio sui giovani e l'uso dei media:
"Circa un terzo (30%) dei giovani afferma di parlare al telefono, di chattare, di guardare la TV, di ascoltare musica o di navigare su Internet per svagarsi “nella maggior parte del tempo” mentre studia".

La notizia non è completamente negativa, comunque. Dall'articolo sul Times:
"L'ampiezza della loro conoscenza e la loro capacità di trovare risposte è cresciuta rapidamente, ma la mia impressione che la loro abilità di scrivere in modo chiaro, concentrato o in modo narrativo si è in un certo senso consumata".

E sì, siamo tutti quanti capaci di fare qualcosa in parallelo (alcuni possono anche vincere una medaglia d'oro alle Olimpiadi mentre ascoltano musica da un iPod). Ma la scienza del cervello ci aiuta a spiegare questo fatto: possiamo fare due cose contemporaneamente nel momento in cui una delle due cose è stata praticata e ripetuta per talmente tanto tempo che non richiede più alcuna sorta di progetto cognitivo. (nell'articolo sul Times si parla moltissimo di questo).

Il problema maggiore, oggi, è che il sovraccarico cognitivo, provocato da talmente tante cose mediatiche sulle quali ci si deve concentrare, avviene ad un passo tale che il nostro cervello da cacciatori/raccoglitori non è stato in grado di evolversi così da poterlo sostenere e la modifica delle interconnessioni nervose non può fare più di tanto. E ovviamente è un fenomeno estremamente recente. Quando mio fratello era al liceo non c'erano gli iPod. Non c'erano i cellulari. Non c'era Internet, la posta elettronica o le chat. Non c'erano i blackberry. Non c'era la PSP. Ed io stesso ho visto con i miei occhi la nascita di tutte queste cose, forse (per fortuna?) molto molto prima di molti miei coetanei. Posso considerarmi come la linea di demarcazione tra "il vecchio" e "il nuovo". (I più giovani chiederanno sicuramente: come avrete fatto a sopravvivere?). Fino a 20 anni fa, il multitasking al liceo consisteva nel giocare a Pong a 1 bit mentre si flirtava con la ragazza un po' più sveglia della classe dell'epoca.

Ogni volta che parlo del grande mito del multitasking, le persone se ne escono sempre dicendomi come, in maniera molto semplicistica, loro hanno il cervello per fare queste cose. Eggià. Ma non ce l'hanno! Io non ce l'ho! Tu non ce l'hai! E forse ve ne rendereste conto se spegneste il vostro cellulare, chiudeste le vostre chat, toglieste quel "ding" che vi avvisa che avete ricevuto nuove email e vi limitaste a stare seduti per qualche momento.

Il problema più grande, per i giovani, sembra essere che essi non sanno come "limitarsi a stare seduti". Si agitano se per qualche momento non ricevono stimoli.

Una delle cose più interessanti discusse in quell'articolo è che i neuroscienziati hanno stabilito la specifica area del cervello responsabile del "cambio di contesto". E fortunatamente per alcuni di noi, sembra che questa parte del cervello funzioni sempre peggio, man mano che l'età avanzi. In due parole, più diventiamo vecchi, meno velocemente e meno efficacemente siamo in grado di portare avanti più cose in parallelo. Ma già la maggior parte dei genitori di questo periodo sanno che non riescono a capire come cavolo facciano i ragazzini a gestire tutte quelle cose che fanno insieme. La chiave della questione, però, è che anche se sappiamo di non essere più bravi di loro nel fare le cose contemporaneamente, loro non sono nemmeno la metà bravi rispetto a quanto pensano di esserlo.

E forse, c'è la possibilità che tu non sia così bravo come credi. ;)

Wednesday, February 24, 2010

Simple Mathematics

Let us consider now some simple mathematics.
We all want to find some easy way to remember formulae. So what we usually do is to "logically link" those hard formulae to something simpler, that our mind can easily remember.

This is not the case, when you are talking to an engineer.

In fact, consider the simple equality:

$\Large 1+1=2$

Every engineer should learn, since its early age, to refactor it in a more professional fashion.
In fact, taking into account calculus and trigonometry, we all know that $1 = \ln(e)$ and that $1 = \sin^2(\vartheta) + \cos^2(\vartheta)$. Further, remember that

$\large 2 = \sum\limits_{n=0}^\infty \left( \frac{1}{2} \right)^n$

So the equality can be rewritten as:

$\large \ln(e) + \sin^2(\vartheta) + \cos^2(\vartheta) = \sum\limits_{n=0}^\infty \left( \frac{1}{2} \right)^n$

Let us now consider hyperbolic functions. Remember that $1 = \cosh(\vartheta) * \sqrt{1 - \tanh^2(\vartheta)}$.
Again, from calculus we know that:

$\large e = \lim_{z\to0}\left(1+\frac{1}{z}\right)$

So, our equality can be rewritten as:

$\small \ln\left(\lim\limits_{z\to0} \left(1+\frac{1}{z}\right)\right) + \sin^2(\vartheta) + \cos^2(\vartheta) = \sum\limits_{n=0}^\infty \frac{\cosh(\vartheta) * \sqrt{1 - \tanh^2(\vartheta)}}{2^n}$

Consider now that $0! = 1$. Further, remember that the inverse matrix of a transposed matrix is equal to the transposed matrix of the inverse. Then, in a one-dimensional geometric space, we have that:

$(\bar{x}^T)^{-1} - (\bar{x}^{-1})^T$

Then, combining we get:

$\large \left[ (\bar{x}^T)^{-1} - (\bar{x}^{-1})^T \right]! = 1$

Thus, inserting this into the previous equality, we get:

$\ln\left(\lim\limits_{z\to0}\left( ((\bar{x}^T)^{-1} - (\bar{x}^{-1})^T) ! +\frac{1}{z}\right)\right) + \sin^2(\vartheta) + \cos^2(\vartheta) = $
$ = \sum\limits_{n=0}^\infty \frac{\cosh(\vartheta) * \sqrt{1 - \tanh^2(\vartheta)}}{2^n}$

Which is a de-facto simpler way for an engineer to remember some simple mathematics such as $1+1=2$.

Wednesday, February 17, 2010

Come scrivere codice incomprensibile

Non attribuire alla malizia ciò che può essere spiegato con l'incompetenza.
- Napoleone -

Nell'interesse di creare opportunità di assunzione nel campo della programmazione, comincio a pubblicare oggi una serie di consigli su come scrivere del codice che risulti talmente difficile da gestire che le persone che prenderanno il posto dopo di voi impiegheranno anni per fare persino le modifiche più semplici. Inoltre, se seguirete queste regole rigorosamente, vi assicurerete un lavoro per tutta la vita, dal momento che nessuno tranne voi avrà una minima speranza di gestire il codice. E forse, se avrete seguito le regole in modo religioso, nemmeno voi sarete più in grado di farlo!!!

Ovviamente non bisogna abusarne: il codice non dovrà sembrare senza speranze, ma lo dovrà essere e basta. Altrimenti ci potrebbe essere il rischio che venga riscritto o risistemato.

Quidquid latine dictum sit, altum sonatur.
- Tutto quello che viene detto in latino, sembra importante -

Per giocare dei buoni tiri al programmatore che deve modificare il vostro codice, dovete capire come ragiona. Ha davanti a sé il vostro enorme programma. Non ha tempo per leggerlo tutto, tanto meno per capirlo. Vuole trovare rapidamente il punto in cui fare la modifica, effettuarla, farlo girare e non trovare alcun effetto collaterale causato dalla modifica.

Vede il vostro codice attraverso un tubo di cartone della carta igienica: riesce a vedere soltanto un piccolissimo pezzetto di programma per volta. Quello di cui volete essere sicuri è che non riesca mai a tirar fuori l'immagine completa, muovendosi in questo modo. Volete far sì che gli risulti il più difficile possibile trovare il codice che sta cercando. Ma ancor più importante, volete togliergli a tutti i costi la possibilità di ignorare qualcosa che avete scritto.

I programmatori sono cullati nel compiacimento dalle convenzioni. Ogni tanto, violando subdolamente le convenzioni, lo obbligherete a leggere ogni singola riga del vostro codice con la lente di ingrandimento.

Forse vi siete già fatti l'idea che ogni caratteristica di ogni linguaggio può rendere il codice ingestibile. Non è così: soltanto se male utilizzata a dovere.



E quindi, cominciamo questa serie di consigli con qualcosa di concreto. I compilatori del C trasformano la sintassi di accesso ad elementi degli array in un modo che può essere facilmente utilizzato per far lacrimare gli occhi di qualsiasi programmatore che sta leggendo il vostro codice. In particolare, vale questa relazione:
  • myArray[i], viene trasformato in
  • *(myArray + i), che è equivalente a
  • *(i + myArray), che a sua volta è equivalente a
  • i[myArray].
I più esperti avranno già mille idee su come utilizzare questa tecnica in modo appropriato. Per camuffare le cose ancora di più, si può generare l'indice tramite una funzione:

int myfunc(int q, int p) {
return p%q;
}
...
myfunc(6291, 8)[Array];

Che, ovviamente, corrisponde ad un semplicissimo:
Array[8];
Ma... quanto tempo in più ci vuole per capirlo?

Wednesday, February 3, 2010

Fortunato di essere un programmatore

Nelle scorse settimane, ho lavorato ad un progetto che richiedeva ogni tipo di sforzo di programmazione. Ora è arrivato a un buon punto, quindi posso quasi ritornare agli impegni normali, ma quando la gente mi sente parlare delle "ore di pazzia" che ho passato, spesso dice che le dispiace. Non dovrebbe. Non lo farei mai spesso, o per lunghi periodi, o senza un compenso adatto se lo facessi per lavoro, ma la verità è che questi "concentrati di programmazione" sono alcuni tra i periodi che preferisco nella mia vita. Sotto le giuste condizioni, scrivere software provoca piacere talmente intenso che dovrebbe essere reso illegale.

Molti programmatori ci si ritrovano, ma altri restano sorpresi quando lo sentono. Credo che sia perché le istituzioni sono brave a spremere via il divertimento da ogni cosa. Fa impallidire, ad esempio, come le scuole possano prendere gli argomenti più vivaci e sfigurarli in mediocri e ripetitive "sgobbate". Ed è così anche per la programmazione. Molto spesso si trasforma un'esperienza naturalmente gratificante in qualcosa che la gente può a malapena sopportare, in cambio di un voto o di un assegno.

Che peccato. Sono poche le cose migliori di passare del tempo in uno stato creativo, consumati dalle idee, osservando il proprio lavoro venire alla luce, andando a letto tardi, desiderosi di alzarzi presto per andare a vedere se le cose funzionano. Non voglio dire che un numero di ore eccessivo è necessario o consigliabile, dei ritmi sani sono un dovere, ma facendo eccezione per "brevi" periodi intensi. Il fatto è che programmare è un intenso piacere creativo, un miscuglio perfetto di rompicapi, scrittura ed artigianato.

La programmazione offre sfide intriganti ed ampio spazio per l'inventiva. Alcuni problemi sono di tipo investigativo e di riduzione: perché questo codice gira lento? Cosa diamine sta causando questo bug? Altri sono di tipo costruttivo, come progettare un algoritmo o un'architettura. Sono entrambi una delizia, se si ama il lavoro analitico, immersi in un mondo pieno di "bestie" come il malware, i router, le cache, i protocolli, i database, i grafi, le codifiche, le rappresentazioni di dati ed i numeri.

Questo lato analitico è quello che viene associato, dalla maggior parte delle persone, alla programmazione. La rende interessante, come un complesso gioco di strategia. Ma nella maggior parte del software la prima sfida è la comunicazione: con gli "amici programmatori" attraverso il codice, con gli utenti attraverso le interfacce. Con poche eccezioni, scrivere codice è un esperimento piuttosto che un rompicapo. È dare forma alle proprie idee e ai propri schemi in un corpo coerente; è andare alla ricerca della chiarezza, della semplicità e della sintesi. Sia il codice sia le interfacce abbondano della semplice gioia della creazione.

Un'altra fonte di piacere è che, sotto alcune circostanze, dalla programmazione sorge la bellezza. Potranno sembrare cazzate, ma è la verità: quel tipo di cose che rendono una giornata migliore. Prendiamo per esempio la dimostrazione di due righe, di Euclide, che i numeri primi sono infiniti. Credo che molti la troverebbero bella, un risultato così succinto ed affascinante. Questa è la bellezza della matematica, fredda e austera, e questa stessa bellezza pervade il software. È insita in algoritmi intelligenti come il quicksort, nei sorgenti dei kernel e dei compilatori, in eleganti exploit e nei trucchi che ci inventiamo per risolvere i problemi di ogni giorno. Quando si osservano queste soluzioni, siano esse algoritmi famosi o trucchi di tutti i giorni, si sorride e si esclama "geniale!", e uno si sente bene. Il nobile ragionamento!

Nei programmi esiste anche una bellezza non matematica, analoga all'eloquenza nei discorsi. È presente nel software ben congegnato, che fa molto con poco codice, in metodi brevi e frizzanti, in architetture ben fatte. Alcuni linguaggi rendono tutto ciò difficile da fare, e non tutti i programmatori ne sono in grado, ma è un piacere leggere e lavorare su questo tipo di codice. Se si lavora con un linguaggio espressivo o su del codice che piace, spesso sembra che le cose si illuminino.

Ora, per quanto riguarda l'artigianato: in un certo senso il software è astratto. Dov'è che esiste il comportamento di un programma se non nella nostra mente? Tuttavia, si dice che il software viene costruito (built) per un motivo ben preciso: ai programmi viene data una forma, funzionalità per funzionalità, le architetture nascono come impalcature e poi crescono, le interfacce vengono assemblate, i bug vengono corretti ed i punti critici vengono ottimizzati per far sì che le cose girino più velocemente. Il software dà un profondo e soddisfacente "senso di manufatto". Le cose vengono costruite, a partire da idee pure, e poi le si osservano risolvere problemi reali, permettendo alle persone di stare un po' meglio. O molto meglio, in certi casi.

Ad esempio, la biologia. Dopo circa 400 anni di rivoluzione scientifica, la biologia non è stata in grado di svilupparsi riguardo a problemi cruciali come cure efficaci per infezioni virali o il cancro. Alcuni dei progressi migliori, come gli antibiotici, sono dovuti al caso oppure ad esperimenti casuali. Si avvia una sperimentazione clinica su un farmaco per l'ipertensione ed all'improvviso... Wow! Tutti i soggetti hanno un'erezione. E così è nato il Viagra. Sicuramente il caso gioca un ruolo fondamentale in ogni progetto di ricerca, ma se la fisica e la chimica hanno delle basi teoriche corpose, la biologia è stata confinata nell'ambito delle soluzioni improvvisate. Si vuole trattare il cancro? Ecco, bombardiamo il paziente con radiazioni e veleni, magari il cancro muore per primo! Sono soluzioni improvvisate anche brillanti, e sono contento che ci siano, ma non è nemmeno lontanamente paragonabile alla precisione che abbiamo in altri campi.

Il software sta cambiando questa situazione. Soltanto 50 anni fa fu scoperta la forma del DNA, ma ora chiunque può cercare su Internet e scaricare centinaia di sequenze complete di genomi. Oppure consultare centinaia di geni (il DLEC1 per fare un esempio preso a caso), completi di sequenze di nucleotidi, sequenze di amminoacidi per le proteine, bibliografia che tratta del gene, basta chiedere! Oppure cercare in database enormi di geni e proteine, fornendo come chiavi sequenze di nucleotidi o amminoacidi, magari dopo averle tirate fuori da qualche strumento ancora più economico, ottenendo un rapporto completo sui risultati. E non importa se le informazioni sono tutte esatte, perché l'algoritmo in BLAST, lo strumento standard di ricerca delle sequenze, tira fuori risultati parziali da database, ordinandoli per importanza. Questi avanzamenti permetteranno alla medicina di tirare fuori risultati enormi. La biologia sta per entrare in una nuova era, come la fisica del XVIII secolo, spinta in avanti dal software.

Sì, senz'altro, i biologi hanno un ruolo minore (:P), ma noi ne abbiamo uno importante nel permettere sviluppi maggiori nella scienza, nella cultura e nell'economia. Quando un bambino del terzo mondo consulta una pagina di Wikipedia, è anche merito dei programmatori! Siamo noi ad aver scritto le RFC, gli stack delle reti, i browser, MediWiki, i sistemi operativi, ed i server HTTP. Senza contare un gran numero delle pagine di Wikipedia stessa. L'influenza dei programmatori va oltre i bit e i byte: è stato un programmatore ad aver inventato i wiki, e la comunità degli informatici ha dato il via ai blog. Henry Mencken ha giustamente fatto notare che "la libertà di stampa è limitata a chi possiede una testata". È un peccato che ora non sia qui attorno ad osservare le nostre creazioni che rompono l'opprimente conformismo ed il servilismo sociale del giornalismo professionale. Con meno stile, ma con grandi benefici, si può dire che le applicazioni hanno portato crescenti guadagni in termini di produttività alle economie. E questi sono solo pochi esempi, da una possibile lunga lista.

Negli ultimi tre anni di università, molte esperienze mi hanno fatto pensare male dei computer e di quello che c'è attorno ad essi, ogni tanto (raramente!) facendomi anche passare la voglia di proseguire su questa strada. Ora sono contento di averci sbattuto la testa e di aver raggiunto un buon livello nella scrittura del software. Anche se probabilmente mamma pensa ancora che io scriva cose senza senso, ma vabbè, che ci posso fare! :)

Se vi trovate in una situazione che sta per uccidere la vostra innata passione per la tecnologia, senza ombra di dubbio, smuovetevi! Non fissatevi, mentre la vostra passione si affievolisce. È difficile trovare in giro gente motivata, in qualunque ambito! Per tutti quelli che pensano che programmare possa essere una cosa interessante, a livello economico i guadagni non saranno necessariamente alti. Ma credo che sia una delle carriere giuste. Non è soltanto per le prospettive di lavoro fighe che uno può avere, ma è perché, dal momento che il ruolo del software nella società cresce, si potranno vedere molti più benefici per le persone. Sono felice di essere in gioco, perché così posso cercare costantemente di migliorare la mia arte e la mia tecnica per un ideale.

Tuesday, February 2, 2010

Con l'amore...



Manifesto Hacker

Riflettendoci bene, ho deciso che una delle prime cose che occorre apprendere, nel lento cammino verso la nerdizzazione, è cosa significhi il termine hacker.
Tutti l'abbiamo sentito pronunciare, almeno una volta. Ma sempre con le più svariate accezioni. Quindi l'hacker è quel ladruncol che buca i server delle banche per rubare soldi, l'hacker è quel maledetto che programma i virus che ogni giorno impallano i nostri computer, l'hacker sei anche tu quando installi la tua copia di Word of Warcraft pirata.

Ebbene no, hacker significa qualcosa di più. Ma eviterò di definirne io il suo significato corretto. Sfrutterò piuttosto un testo ormai diventato famoso, scritto in un carcere nel lontano 1986 da un hacker in persona e pubblicato sulla famosa rivista Phrack.
Quella che pubblico di seguito è una mia traduzione.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Quello che segue è stato scritto poco dopo il mio arresto...

\/\ La Coscienza di un Hacker /\/

di

+++ The Mentor +++

Scritto l'8 gennaio 1986
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Un altro è stato catturato oggi, è su tutti i giornali. "Adolescente Arrestato in uno Scandalo di Crimini Informatici", "Hacker Arrestato dopo aver manomesso una Banca"...
Maledetti ragazzi. Sono tutti uguali.

Ma hai mai provato, dall'alto delle tue tre lauree in psicologia e del
tuo tecnocervello anni '50, a dare uno sguardo oltre gli occhi di un hacker? Ti sei mai chiesto cosa lo ha risvegliato, quali forze lo hanno plasmato, cosa lo ha forgiato?
Io sono un hacker, entra nel mio mondo...

Il mio è un mondo che incomincia a scuola... Sono più intelligente
della maggior parte degli altri bambini, questa merda che ci insegnano mi annoia...
Maledetto sfaticato. Sono tutti uguali.


Sono alle medie o al liceo. Ho sentito gli insegnanti spiegare per la
quindicesima volta come semplificare una frazione. L'ho capito. "No, professoressa, non l'ho scritto sul compito. L'ho fatto a mente..."
Maledetto ragazzo. Sicuramente ha copiato. Sono tutti uguali.


Ho fatto una scoperta oggi. Ho trovato un computer. Aspetta un attimo, è forte! Fa quello che voglio io. Se fa un errore, è perché sono io che ho incasinato tutto. Non perché non gli sto simpatico...
O perché si sente minacciato da me...
O perché pensa che io sono più intelligente...
O perché non gli piace insegnare e non dovrebbe essere qui...
Maledetto ragazzo. Passa tutto il tempo a giocare. Sono tutti uguali.

E poi è successo... una porta si è aperta sul mondo... precipitandosi lungo la linea telefonica come eroina nelle vene di un drogato, un impulso elettronico viene lanciato fuori, un rifugio dalle incompetenze di tutti i giorni viene cercato... Ho trovato un forum.
"Ecco... io appartengo a questo..."
Conosco tutti qui... anche se non li ho mai incontrati, anche se non sono mai andato loro incontro, anche se magari non sentirò più nulla da loro... Vi conosco tutti...
Maledetto ragazzo. Si collega di nuovo alla linea telefonica. Sono tutti uguali...

Puoi scommetterci le palle che siamo tutti uguali... siamo stati imboccati con omogeneizzati a scuola quando chiedevamo disperatamente una bistecca... i piccoli morsi di carne che sfuggivano di tanto in tanto erano già masticati e privi di sapore. Siamo stati dominati da sadici, o ignorati dagli apatici. I pochi che avevano qualche cosa da insegnarci ci scoprivano come pupilli desiderosi, ma quei pochi erano come gocce d'acqua nel deserto.

Ora è questo il nostro mondo... il mondo dell'elettrone e dello switch, la bellezza del baud.
Usiamo un servizio che esiste già senza
pagare per una cosa che potrebbe essere straeconomica, se non fosse gestita da ingordi approfittatori, e ci chiamate criminali.
Esploriamo... e ci
chiamate criminali.
Ricerchiamo la conoscenza... e ci chiamate criminali.

Possediamo un'esistenza che prescinde dal colore della pelle, dalla
nazionalità, da pregiudizi religiosi... e ci chiamate criminali.
Costruite
bombe atomiche, dichiarate guerre, uccidete, imbrogliate, e ci mentite tentando di farci credere che è per il nostro bene, e ancora, i criminali siamo noi.

Sì, io sono un criminale.
Il mio crimine è quello della curiosità.
Il
mio crimine è quello di giudicare le persone per quello che dicono e pensano, non per l'aspetto che hanno.
Il mio crimine è quello di essere
più intelligente di te, cosa che tu non mi perdonerai mai.

Io sono un hacker, e questo è il mio manifesto. Potrai fermare questo individuo, ma non puoi fermarci tutti... d'altra parte, siamo tutti uguali.

Monday, February 1, 2010

Nuovo Virus Berlusconi

Nuovo Virus Berlusconi: ferma tutti i processi

Sunday, January 31, 2010

Nerd

:nerd: /n./
1. [mainstream slang] Pejorative applied to anyone with an above-average IQ and few gifts at small talk and ordinary social rituals.
2. [jargon] Term of praise applied (in conscious ironic reference to sense 1) to someone who knows what's really important and interesting and doesn't care to be distracted by trivial chatter and silly status games. Compare the two senses of {computer geek}.

From: the Jargon File

Saturday, January 30, 2010

main(void)

L'inutilità di questo blog non si discute...
...ma è sempre piacevole incominciare qualcosa di nuovo.

Leggendo quello che verrà scritto qui, a piccoli passi, anche voi potrete diventare dei nerd doc. Consapevoli che non ci vorrà molto a completare questo processo: il tempo sarà polinomiale nel numero dei post!

E dunque si inizi: main(void)!

---

The uselessness of this blog is undoubted...
...nevertheless it's always a pleasure to start up with a new thing.

By reading what's going to be published here, you'll get a chance - step by step - to become a quality nerd. Having the consciousness that it won't take too long to carry out this task: it will take polynomial time with respect to the number of posts!

So, let's get started: main(void)!