Come diventare hacker
3. La noia e i lavori "da
sgobboni" sono un male
Gli hackers (ed in generale le persone creative) non dovrebbero mai annoiarsi o
aver a che fare con dei lavori ripetitivi, faticosi e stupidi, perchè quando
questo accade significa che non stanno facendo ciò che solo loro possono fare:
risolvere nuovi problemi. Questo spreco danneggia tutti. Perciò la noia ed i
lavori ingrati non sono semplicemente sgradevoli, ma un male vero e proprio. Per
comportarti come un hacker, devi crederci abbastanza da voler automatizzare
tutte le cianfrusaglie noiose il più possibile, non solo per te ma per
qualsiasi altra persona (in particolar modo gli altri hackers).
(Apparentemente c'è solo un eccezione. Gli hackers dovranno fare talvolta cose
che possono sembrare ripetitive ad un osservatore, ma che servono per chiarire
le idee, per acquisire delle nuove capacità o per fare delle esperienze che non
possono essere fatte altrimenti. Tuttavia questa è una tua scelta - nessuno
capace di pensare dovrebbe essere mai forzato alla noia).
4. La libertà è un bene.
Gli hackers sono per natura anti - autoritari. Chiunque ha il potere di darti
ordini ha pure il potere di fermarti dal risolvere un qualsiasi problema da cui
sei affascinato e, conoscendo in che modo lavorano le menti autoritarie, in
linea di massima troverà una ragione incredibilmente stupida per farlo. Quindi
un atteggiamento autoritario deve essere combattuto ovunque si trovi, per paura
che soffochi te e gli altri hackers.
(Questo, però, non significa combattere tutte le autorità. I bambini hanno
bisogno di essere guidati e i criminali corretti. Un hacker potrebbe essere
d'accordo nell'accettare un qualche tipo di autorità per ottenere qualcosa che
desidera di più del tempo che impiega ad eseguire gli ordini. Ma questo è un
compromesso limitato e di cui si è coscienti; il tipo di persona arrendevole
che gli autoritari desiderano non deve venir offerta).
Gli autoritari si sviluppano grazie alla censura ed ai segreti. Essi non
confidano nella cooperazione volontaria e nella condivisione di informazioni a
loro piace solo la cooperazione che possono controllare. Quindi per comportarti
come un hacker, devi sviluppare un ostilità istintiva verso la censura, la
segretezza, e l'uso della forza e dell'inganno per costringere gli adulti
responsabili. E devi essere disposto ad agire in base a questo credo.
5. L'atteggiamento non sostituisce la competenza.
Per essere un hacker devi sviluppare alcuni di questi atteggiamenti. Ma
coltivarne uno solo non ti renderà certo un hacker, non più di quanto ti possa
rendere un grande atleta od una rock star. Per diventare un hacker c'è bisogno
dell'intelligenza, la pratica, di dedicarsi ed infine di lavorare sodo. Quindi
devi imparare a non fidarti di un atteggiamento competente di qualsiasi tipo.
Gli hackers di certo non perderanno tempo con chi si spara le pose, poichè
hanno il culto della competenza - soprattutto competenza nell'hacking, ma va
bene la competenza in qualsiasi cosa. In particolar modo è ottima una
competenza in alcune capacità che pochi hanno, ancora meglio se sono capacità
quali una mente brillante, astuzia e concentrazione. Se anche tu veneri la
competenza, ti divertirai a svilupparla in te e, il lavoro duro e la dedizione
diventeranno una specie di gioco intenso piuttosto che una noia. E questo è
vitale per essere un hacker
Le capacità fondamentali
dell'Hacker.
Un comportamento da hacker è fondamentale, ma le capacità sono ancora più
fondamentali. un atteggiamento non sostituisce, infatti, la competenza, e ci
sono alcune capacità fondamentali che devi avere prima che qualsiasi hacker
possa lontanamente sognare di chiamarti, appunto, hacker. Questo kit di
competenze base cambia lentamente col passare del tempo perchè la tecnologia
crea nuove capacità rendendo obsolete quelle più vecchie. Per esempio, si usa
includere il programmare in linguaggio macchina, ma solo recentemente questo ha
implicato anche l'HTML. Ma nel tardo 1996 è abbastanza chiaro che si includono
le seguenti capacità:
1. Imparare a
programmare.
Questa, ovviamente, è la capacità fondamentale dell'hacker. Nel 1997 il
linguaggio che assolutamente devi imparare è il C (sebbene non sia quello da
imparare per primo). Tuttavia non puoi essere considerato un hacker o nemmeno un
mero programmatore se conosci un solo linguaggio - devi imparare a pensare circa
i problemi di programmazione in generale, indipendentemente da qualsiasi
linguaggio. Per essere un vero hacker, devi arrivare al punto in cui puoi
imparare un nuovo linguaggio semplicemente correlando le informazioni del
manuale con quello che già sai. Questo significa che devi imparare molti e
differenti linguaggi.
Oltre al C, dovresti anche imparare almeno il Lisp e il Pearl (il Java pure non
sarebbe male). Oltre ad essere i linguaggi di programmazione più importanti,
ognuno di questi rappresenta un approccio differente alla programmazione, e
tutti ti educheranno in maniera valida. Qui non posso dare istruzioni precise su
come imparare a programmare, è una capacità assai complessa. Ma posso dire che
libri e corsi non sono la cosa migliore (molti, forse la maggior parte degli
hacker, sono autodidatti). Quello che si deve fare è (a) leggere codici e (b)
scrivere codici.
Imparare a programmare è come imparare a scrivere bene un linguaggio naturale. La cosa migliore per farlo è leggere qualcosa scritta dai maestri del linguaggio, scrivere qualcosa da soli, leggere un altro po', scrivere un po' di più, leggere molto di più, scrivere ancora di più.... e ripetere fino a che la tua scrittura non comincia a sviluppare quel tipo di forza che vedi nei tuoi modelli. Un tempo era difficile trovare del buon codice da leggere, poichè non c'erano molti programmi disponibili nel codice sorgente che gli hackers implumi potevano leggere e rimuginare. Tuttavia questa situazione è cambiata drasticamente; il software gratis, i compilatori gratis, e i sistemi operativi gratis (tutti disponibili in codice sorgente e tutti sviluppati dagli hackers), sono ora largamente disponibili. E questi ci porta direttamente al prossimo argomento....
2. Ottieni uno dei sistemi operativi UNIX-like
gratuti ed impara ad usarlo.
Prendo per scontato che tu abbia un personal computer o che tu possa usarne uno
(i ragazzini di oggi lo ottengono cosÏ facilmente:-)). L'unico e più
importante passo che ogni principiante può mouvere per acquisire le capacità
dell'hacker è rimediare una copia di Linux o di uno dei free BSD-Unixes,
installarlo sulla sua macchina, e caricarlo. Si, ci sono altri sistemi operativi
al mondo oltre a UNIX. Ma sono distribuiti in binario, ovvero non puoi leggere
il codice nè modificarlo. Provare ad imparare ad Hackkare sotto Dos, windows od
un qualsiasi sistema operativo Mac è come voler imparare a danzare avendo le
gambe ingessate. Inoltre Unix è il sistema operativo della rete. Mentre puoi
imparare ad usare internet senza usare UNix, di certo non puoi essere un hacker
della rete senza conoscerlo. Per questo motivo al giorno d'oggi la cultura
hacker è fortemente incentrata su UNIX. (Nel passato ciò non era sempre vero,
ed alcuni hacker dei vecchi tempi non sono felici di ciò, ma la simbiosi tra
unix e la rete è diventata abbastanza forte che addirittura il muscolo della
Microsoft sembra non riuscire ad amaccarla.
Ebbene, rimedia un Unix, a me piace unix, ma ci sono altri modi. Imparalo. Usalo. Armeggiaci. Parla con internet tramite esso. Leggi il codice. Modifica il codice. Otterai degli strumenti per programmare (inclusi il C, Lisp, e il Perl) migliori di quanto qualsiasi sistema operativo Microsoft possa imagginare, ti divertirai, e assorbirai conoscenze di cui non ti renderai conto fino a che non ti volgerai indietro a guardarle come un maestro degli hacker.
3. Imparare ad usare la
World Wide Web e scrivere in HTML.
La maggior parte delle cose che la cultura hacker ha costruito non è tenuta
molto in vista, infatti aiutare a far funzionare le fabbriche, gli uffici e le
università non ha un grande impatto sul modo di vivere dei non hackers. La rete
è l'unica grande eccezione, il grande e brillante gioco degli hacker che
addirittura i politici ammettono stia cambiando il mondo. Solo per questa
ragione (ed anche per molte altre) hai bisogno di imparare come lavorare con la
rete. Questo non significa solamente imparare ad usare un browser (chiunque lo
può fare), ma imparare come scrivere in HTML, "the Web's markup
language". Se non sei capace a programmare, l'HTML ti insegnerà alcune
abitudini che ti aiuteranno ad imparare. Quindi fai un home page. Ma avere un
home page non è nemmeno lontanamente sufficiente per fare di te un hacker. La
rete è piena di Home Pages. La maggior parte sono un magma senza argomenti nè
contenuti (per altri suggerimenti su questo argomento vai a The
HTML Hell Page)
Per valere qualcosa, la tua home page deve avere un contenuto, deve essere
interessante o utile agli altri hackers. E questo ci porta al prossimo
argomento....
Come la maggior parte delle culture non basate sul denaro, quella degli hacker
si basa sulla reputazione. Uno prova a risolvere problemi che siano
interessanti, ma quanto siano interessanti, e se le soluzioni siano veramente
efficaci, è qualcosa che solo i tecnici al tuo pari o i superiori possono
giudicare. Di conseguenza, quando giochi a fare l'hacker, inpare a guadagnare
punti soprattutto in base a quello che gli altri hackers pensano delle tue
capacità (ecco perchè non sei un hacker fino a che gli altri hacker ti ci
chiamano). Questo fatto è oscurato dall'immagine dell'hacking come un lavoro
solitario; anche da alcuni tabo della cultura hacker (che stanno gradualmente
scemando ma sono ancora consistenti) contro il voler ammettere che l'ego o
l'essere ben considerati dagli altri contribuiscano ad alimentare le proprie
motivazioni. Nello specifico, fare l'hacker è ciò che gli antropologi chiamano
gift culture. Sali nella scala sociale non dominando gli altri, non essendo
bello, non avendo le cose che vogliono gli altri, ma piuttosto dandole via. E più
precisamente, dando via il tuo tempo, la tua creatività, e i risultati delle
tue capacità.
Fondamentalmente ci sono 5 cose che puoi fare per essere rispettato dagli
hackers:
1. Scrivi free software.
La prima cosa (la più basilare nonchè tradizionale) è scrivere programmi che
appaiono utili o divertenti agli altri hackers, e dare le sorgenti da utilizzare
all'intera comunità hacker. Gli hackers più venerati sono proprio quelli che
hanno scritto programmi grossi e capaci, che vanno incontro a bisogni
collettivi, e che li danno via cosicchè chiunque possa usarli.
Essi sono anche a servizio di chi fa il debug del free.software. In questo mondo
imperfetto, inevitabilmente spenderemo la maggior parte del tempo dello sviluppo
di un programma a fare il debug. Ecco perchè qualsiasi autore di free software
in grado di ragionare ti dirà che buoni beta testers (quelli che sanno come
descrivere chiaramente i sintomi, localizzare bene i problemi, che possono
tollerare i bugs in una release fatta di fretta, e sono disposti ad applicare
alcune semplici routine diagnostiche) valgono tanto oro quanto pesano. Anche uno
solo di loro può trasformare una fase di debugging da un incubo prolungato ad
una mera e salutare seccatura. Se sei un principiante, prova a trovare un
programma in via di sviluppo che ti interessa e cerca di essere un buon
beta-tester. C'è un progresso naturale dall'aiutare a testare i programmi, ad
aiutare a fare il debug, ad aiutare a modificarli. Imparerai un sacco in questo
modo, e genererai un buon karma con le persone che ti aiuteranno
successivamente.
3. Pubblica informazioni utili.
un'altra buona cosa è colezzionare e filtrare le informazioni utili od
interessanti in pagine web o documenti come le FAQ (ovvero Frequently Asked
Questions, che in italiano sta per domande fatte frequentemente), e renderle
generalmente reperibili. I manutentori di FAQs tecniche sono rispettati quasi
quanto gli autori di free software.
4. Aiuta a mandare avanti i lavori di infrastruttura.
La cultura hacker (e lo sviluppo della rete, in questo caso) viene mantenuta da
volontari. Ci sono un sacco di lavori necessari ma poco affascinanti che devono
essere fatti per mantenerla - amministrare le mailing list, moderare i
newsgroup, mantenere larghi archivi di software, sviluppare gli RFC e altri
standard tecnici. Le persone che fanno bene questo genere di cose sono molto
rispettate, poichè chiunque sa che questi lavori richiedono molto tempo e non
sono divertenti quanto giocare coi codici. Farli mostra dedizione.
5. Servi la cultura hacker di per sè.
Infine, puoi servire e propagare la cultura hacker di per sè (per esempio
scrivendo un documento accurato su come diventare un hacker:-)). Non ti troverai
di certo nella posizione di fare una cosa del genere fino a che non ti sarai
fatto ben conoscere per una delle prime cinque cose. La cultura hacker non ha
leaders veri e propri, ma ha degli eroi e degli storici e diffusori
"tribali". Dopo essere stato in trincea abbastanza a lungo, potresti
diventare uno di questi. Fai attenzione: tra i più anziani, gli hackers non si
fidano di quelli che blaterano, quindi raggiungere questo tipo di fama è
pericoloso. Piuttosto che sforzarti per questo, conviene guadagnarti te stesso
una posizione, cosicchè toccherà a te "essere raccontato", dopodichè
sii modesto circa il tuo status.
Contrariamente al mito popolare non devi essere necessariamente un nerd, per
essere un hacker. Tuttavia ciò aiuta, e infatti molti hackers sono dei nerds.
Essere un esule della società aiuta a concentrarti sulle cose veramente
importanti, come pensare e fare l'hacker. Per questa ragione gli hackers hanno
adottato l'etichetta 'Nerd', ed addirittura usano il termine ancor più duro
'geek' (in italiano qualcosa come 'disaddattato') come un appellativo di cui
vanno orgogliosi, non è altro che una maniera per dichiarare la propria
indipendenza dalle normali aspettative sociali. Se riesci a concentrarti
abbastanza sull'hacking ed avere anche una vita, va bene. E' molto più facile
oggi di quando ero un principiante; la cultura corrente è molto più ben
disposta nei confronti dei techno - nerds, ora. C'è addirittura un numero in
continua crescita di persone che hanno realizzato che spesso gli hackers sono
ragazzi/ragazze/mariti/mogli di alta qualità. Se sei attratto dall'hacking
perchè non hai una vita, va bene, perlomeno non avrai problemi a concentrarti.
Forse ne avrai una dopo.
Punti di stile
Ancora, per essere un hacker, devi avere la forma mentis dell'hacker. Ci sono
alcune cose che puoi fare quando non stai al computer che sembrano aiutare. Non
sono sostitutive all'hacking (nulla lo è), ma molti hackers le praticano
hanno l'impressione che esse in qualche maniera fondamentale siano connesse
all'essenza dell'hacking.
Maggiori sono le cose tra queste che già fai, maggiore è la predisposizione naturale che hai per fare l'hacker. Perchè queste cose in particolare non è molto chiaro, tuttavia esse sono connesse con un mix di capacità della parte destra - e sinistra - del cervello che sembrano essere importanti (gli hackers hanno bisogno di essere capaci sia a ragionare in maniera logica, sia, all'occorrenza, a tenersi distanti dalla logica apparente di un problema).
Infine, un po' di cose da non fare.