Benvenuto su Inforge
Rimuovi la pubblicità e partecipa alla più grande comunità italiana sul mondo digitale presente sul web sin dal 2007.
Iscriviti
Icona release

Guida [GUIDA] Come Diventare Hacker (Traduzione Italiana)

Salve a tutti ragazzi, premetto che questa idea è partita da @SpeedJack visto che un paio di righe scritte nella prima parte, sono state trodotte da lui comunque il documento tradotto è questo (http://www.catb.org/~esr/faqs/hacker-howto.html di Eric Steven Raymond), ovviamente io ho fatto tutto il resto e quindi ci ho messo un paio di ore, non l'ho postata subito perché lavoro e come sapete il lavoro in primis, con questo vi auguro una buona lettura, ah dimenticavo!

Faccio un'altra volta i più vivi ringraziamenti per la collaborazione di @SpeedJack, con l'augurio di una proficua lettura.

Perchè questo documento?

Come Editore del Jargon File e autore di alcuni noti documenti di questo tipo, spesso ricevo richieste via e-mail da entusiati novellini della rete che chiedono (sostanzialmente) "come posso diventare un grande hacker?". Nel 1996 notai che non sembrava esistere nessuna FAQ e nessun documento web che trattasse questa domanda fondamentale, quindi ho iniziato a scrivere questo documento. Molti hacker adesso lo considerano un documento definitivo, e immagino che questo significhi che lo sia. Comunque, non voglio tentare di avere l'autorità esclusiva su questo argomento; quindi se non ti piace cosa leggi in questo documento, scrivine uno tuo.

Se stai leggendo una versione scaricata di questo documento offline, puoi trovare la versione corrente qui: http://catb.org/~esr/faqs/hacker-howto.html.


Nota: alla fine di questo documento puoi trovare una lista di Frequently Asked Questions (FAQ). Per favore leggile - due volte - prima di inviarmi una mail con qualsiasi domanda riguardo questo documento.

Diverse traduzioni di questo documento sono disponibili [Arabic,Belorussian,Chinese, Danish,Dutch,Estonian,FrenchGerman,GreekItalianHebrew,Japanese,Lithuanian,Norwegian,PersianPortuguese (Brazilian), RomanianSpanish,Turkish, andSwedish..] Nota però che dato che questo documento viene a volte aggiornato, le traduzioni potrebbero essere non aggiornate anche per molto tempo.

Il diagramma cinque-punti-nei-nove-quadrati che decora questo documento è chiamato glider. Si tratta di un semplice disegno con alcune sorprendenti proprietà all'interno di una simulazione matematica chiamata Life (vita) che ha affascinato gli hacker per molti anni. Credo si tratti di un adeguato emblema per rappresentare il modo di essere degli hacker - astratto, un po' misterioso all'inizio, ma anche una porta verso un intero mondo con una usa intricata logica. Puoi trovare altro su questo emblema here (qui).

Se consideri valido questo documento, per favore, leave me a tip on Gittip(lasciami un tip su Gittip). E prendi in considerazione pure l'idea di tippare gli altri hacker che hanno prodotto codice che usa e apprezzi. Tante piccole ma continue donazioni si sommano velocemente, e possono rendere libere le persone che ti hanno fatto dono del loro lavoro per creare qualcosa di valido.

Cos'è un hacker?

Il Jargon File contiene una serie di definizioni del termine ‘hacker’, molte delle quali hanno a che fare con abilità tecniche e con il piacere di risolvere i problemi e superare i limiti. Comunque, se vuoi sapere come diventare un hacker solo due di queste sono veramente importanti.

C'è una comunità, una cultura condivisa, di esperti programmatori e maghi della rete che fonda le sue radici storiche indietro di decadi, al tempo dei primi minicomputer time-sharing e i primi esperimenti di ARPAnet. I membri di questa cultura hanno dato origine al termine ‘hacker’. Gli hacker costruiscono Internet. Gli hacker hanno fatto del sistema operativo Unix quello che è oggi. Gli hacker fanno funzionare il World Wide Web. Se fai parte di questa cultura, se hai contribuito ad essa e altre persone che ne fanno parte ti conoscono e ti chiamano hacker, allora sei un hacker.

La mentalità hacker non è confinata alla cultura hacker del software. Ci sono persone che applicano la loro attitudine hacker ad altre cose, come l'elettronica o la musica - attualmente, puoi trovarla negli alti livelli di qualsiasi scienza o arte. Gli hacker del software riconoscono questo spirito affine in ogni cosa e potrebbero chiamare anche questa gente ‘hacker’.

C'è un altro gruppo di persone che si fanno chiamare se stessi hacker, ma non lo sono. Queste sono persone (principalmente maschi adolescenti) che sanno qualche cosina riguardo a come violare un computer o hackerare un sistema telefonico. I veri hacker chiamano queste persone ‘cracker’ e non vogliono avere niente a che fare con loro. I veri hacker pensano principalmente che i cracker sono pigri, irresponsabili, e non molto brillanti, e obiettano che essere capaci di rompere la sicurezza di un software non ti rende un hacker più di quanto saper guidare le automobili ti rendono un ingegnere automobilistico. Sfortunatamente, molti giornalisti e scrittori sono stati fuorviati a utilizzare la parola ‘hacker’ per descrivere i cracker; questo fatto irrita terribilmente i veri hacker.

La differenza di base è questa: gli hacker costruiscono cose, i cracker le distruggono.

Se vuoi diventare un hacker, continua a leggere. Se vuoi diventare un cracker, vai a leggere le news di alt.2600 e preparati a restare dalle 5 alle 10 in quella bolgia prima di rendervi conto conto che non siete così fighi e cazzuti come pensavate di essere. E questo è tutto quello che dirò sui cracker.

L'attitudine Hacker.


Gli hacker risolvono i problemi e costruiscono cose, e credono nella libertà e nel volontario aiuto reciproco. Per essere accettato come un hacker, devi comportarti come se tu avessi questa attitudine. E per comportarti come se tu avessi questa attitudine, devi veramente credere in questa attitudine.

Ma se credi che coltivare le attitudini hacker sia soltanto un modo per ottenere l'accettazione della comunità, sbagli di grosso. Diventare quel tipo di persona che crede in queste cose è importante per te - per aiutarti a imparare e rimanere motivato. Come tutte le arti creative, il miglior modo per diventare un maestro è di imitare la mentalità dei maestri - non solo intellettualmente ma anche emozionalmente.

Oppure, come dice la seguente moderna poesia Zen:

[ENG]
To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
[ITA]
Per seguire la via:
guarda il maestro,
segui il maestro,
cammina col maestro,
guarda attraverso il maestro,
diventa il maestro.

Quindi, se vuoi diventare un hacker, ripeti le seguenti cose finché non credi in esse:

1. Il mondo è pieno di affascinanti problemi che aspettano di essere risolti.

Essere un hacker è molto divertente, ma si tratta di un tipo di divertimento che richiede un mucchio di sforzi. Gli sforzi richiedono motivazione. Gli atleti di successo traggono la loro motivazione da una specie di piacere fisico nel rendere i loro corpi performanti e spingendosi oltre i propri limiti fisici. Similmente, per essere un hacker dovrai provare un certo gusto nel risolvere i problemi, affinare le tue abilità e esercitare la tua intelligenza.

Se non sei il tipo di persona che non ha normalmente queste sensazioni, dovrai diventarlo prima di poterle esercitare come hacker. Altrimenti ti accorgerai che la tua energia hacker è consumata da distrazioni come il sesso, i soldi e l'accettazione sociale.

(Hai bisogno anche di sviluppare una sorte di fede nelle tue capacità di apprendimento - il pensiero che sebbene non puoi conoscere tutto riguardo ciò che hai bisogno per risolvere un problema, se ne prendi un pezzo e impari da esso, imparerai abbastanza per risolvere anche il pezzo successivo - e così via, finché non hai finito.)

2. Nessun problema dovrebbe mai essere risolto due volte.

Le menti creative sono delle importanti e limitate risorse. Non dovrebbero essere impegnate nel reinventare la ruota quando ci sono così tanti affascinati nuovi problemi che aspettano.

Per comportarti come un hacker, devi ricordarti che il tempo che gli altri hacker passano a pensare è prezioso - così tanto che condividere informazioni, risolvere i problemi e quindi dare le soluzioni agli altri hacker affinché possano risolvere altri nuovi problemi invece che dover perpetuamente pensare ai soliti, deve essere un dovere morale per te.

Per comportarti come un hacker, devi ricordarti che il tempo che gli altri hacker passano a pensare è prezioso - così tanto che condividere informazioni, risolvere i problemi e quindi dare le soluzioni agli altri hacker affinché possano risolvere altri nuovi problemi invece che dover perpetuamente pensare ai soliti, deve essere un dovere morale per te.

Nota, comunque, che "Nessun problema dovrebbe mai essere risolto due volte." non implica che devi considerare tutte le soluzioni già esistenti come sacre, o che esiste solo una soluzione giusta per un dato problema. Spesso, impariamo molto di ciò che non sapevamo sul problema semplicemente studiando il primo pezzo di una soluzione. Va benissimo, e spesso ènecessario, e ci aiuta a capire che possiamo fare di meglio. Quelli che non vanno, sono gli artifici tecnici, legali, o le barriere istituzionali (come il codice proprietario) che impediscono che una buona soluzione possa essere riutilizzata e forzano le persone a reinventare la ruota.

(Non devi pensare che sei obbligato a condividere tutto il tuo prodotto creativo liberamente, anche se gli hacker che si comportano così sono quelli che ricevono il maggior rispetto dagli altri hacker. è comunque concordo con i valori degli hacker vendere abbastanza per mantenerti in carne, pagare la residenza e i computer. Va bene usare le proprie abilità di hacking per mantenere una famiglia o anche per diventare ricchi, basta che lo fai senza perdere la tua fedeltà verso la tua arte e i tuoi compagni hacker.)

3. La noia e la ripetività sono il male.

Gli hacker (e, in generale, le persone creative) non dovrebbero mai annoiarsi o fare lavori stupidi e ripetitivi; quando ciò accade significa che non stanno facendo quell'unica cosa che dovrebbero fare - risolvere nuovi problemi. Questo dispendio di energie non aiuta nessuno. Quindi noia e ripetività non sono semplicemente spiacevoli, ma sono anche dannosi.

Per comportarti come un hacker, devi crederci a tal punto di volere automatizzare qualsiasi cosa noiosa quanto più possibile, non soltanto per te stesso, ma anche per gli altri (sopratutto altri hacker).

(Può sembrare che non sia sempre così. Gli hacker a volte fanno cose che possono sembrare ripetitive o annoianti a un osservatore esterno, ma in realtà servono come esercizio per schiarire la mente, o per acquisire un abilità, o per avere qualche tipo particolare di esperienza che non puoi avere in nessun altro modo. Ma comunque questo si fa per scelta - nessun essere pensante dovrebbe mai essere forzato a entrare in situazioni che lo annoiano.)

4. La libertà è il bene.

Gli hacker sono per natura anti-autoritari. Chiunque possa darti degli ordini può impedirti di risolvere qualsiasi problema che ti affascina - e, dato come ragionano le menti autoritarie, troveranno solitamente un motivo spaventosamente stupido per farlo. Quindi l'attitudine autoritaria deve essere combattuta ovunque si trovi, affinché non soffochi né te né gli altri hacker.

(Questo non è sinonimo di combattere ogni autorità. I bambini hanno bisogno di essere guidati e i criminali devono essere rinchiusi. Un hacker può accettare qualche tipo di autorità se questo serve ad ottenere qualcosa che vuole più del tempo che dovrà sprecare a seguire le regole. Ma questo è un conscio e limitato accordo; il tipo di resa personale che gli autoritari desiderano non è un'offerta.)

Gli autoritari si sviluppano con la censura e la segretezza; danneggiano le cooperazioni volontarie e la condivisione delle informazioni - a loro piacciono solo le ‘cooperazioni’ che possono tenere sotto controllo. Quindi per comportarti come un hacker, devi sviluppare una istintiva ostilità contro la censura, la segretezza, e l'uso della forza o dell'inganno per costringere gli adulti responsabili. E devi essere disposto ad agire in questa convinzione.

5. L'attitudine non sostituisce la competenza.

Per essere un hacker, devi sviluppare alcune di queste attitudini. Ma sviluppare semplicemente un attitudine non ti renderà un hacker, non più di quanto ti renderà un atleta o una rock star. Diventare un hacker significa sviluppare l'intelligenza, fare pratica, dedicarsi nelle proprie attività e lavorare duramente.

Inoltre, devi imparare a diffidare dell'attitudine e rispettare ogni tipo di competenza. Gli hacker non permettono che i perdi-tempo gli facciano, appunto, perdere tempo; piuttosto coltivano la loro competenza - specialmente competenza nell'hacking, ma la competenza anche in qualsiasi altra cosa è importante. La competenza in abilità molto richieste che pochi possono padroneggiare è particolarmente positiva, e la competenza in abilità molto richieste che necessitano di un ottima apertura mentale, creatività e concentrazione è perfetta.

Se apprezzi la competenza, ti divertirai nel svilupparla - il duro lavoro e la passione diventeranno una sorta di intenso gioco invece che qualcosa di ripetitivo. Questa attitudine è di vitale importanza per diventare un hacker.

glider.png

Abilità di Hacking di Base.

1. Learn how to program.
2. Get one of the open-source Unixes and learn to use and run it.
3. Learn how to use the World Wide Web and write HTML.
4. If you don't have functional English, learn it.

L'attitudine hacker è di vitale importanza, ma le proprie abilità sono ancora più importanti. L'attitudine non sostituisce la competenza, e esistono alcune abilità di base che devi necessariamente avere prima di poter sognare che un qualsiasi hacker un giorno si rivolgerà anche a te chiamandoti così.

Queste abilità di base cambiano lentamente nel tempo via via che la tecnologia fa nascere l'esigenza di nuove abilità e rende quelle vecchie obsolete. Per esempio, un tempo spesso era necessario includere tra queste la programmazione in linguaggio macchina, ma con il recente avvento dell'HTML non è più necessario. Ma adesso come abilità di base sono chiaramente incluse le seguenti:

1. Imparare a programmare.

Questa, ovviamente, è l'abilità hacker fondamentale. Se non conosci alcun linguaggio per computer, ti consiglio di iniziare dal Python. Progettato in modo chiaro e ben documentato, è relativamente apprezzato da chi inizia. Pur essendo un buon linguaggio con cui iniziare, non è solo un giocattolo; è molto potente e flessibile e adeguato per i grandi progetti. Ho scritto anche una più dettagliataevaluation of Python (valutazione del Python). Buonetutorials (guide) sono disponibili sul Python web site (sito di Python); c'è anche una eccellente guida su Computer Science Circles.

Ero solito consigliare il Java come un buon linguaggio per imparare, ma this critique (questa critica) mi ha fatto cambiare idea (guarda il paragrafo "The Pitfalls of Java as a First Programming Language"). Un hacker non può "approcciarsi alla risoluzione di problemi come un idraulico in un negozio di ferramenta"; devi conoscere cosa fanno veramente i componenti del computer. Adesso penso che è probabilmente meglio imparare C e Lisp prima, poi il Java.

C'è però una questione più generale qui. Se un linguaggio fa troppe cose per te, potrebbe essere simultaneamente un ottimo strumento di produzione ma un pessimo strumento per imparare. Non solo i linguaggi hanno questo problema; i framework per le applicazioni web come RubyOnRails, CakePHP, Django, possono rendere troppo semplice arrivare a una sorta di apprendimento superficiale che ti lascerà senza risorse quando avrai da risolvere un problema difficile, o anche semplicemente debuggare la soluzione di un facile problema.

Se vuoi imparare seriamente la programmazione, devi imparare il C, il linguaggio principale di Unix. C++ è molto simile al C; se ne conosci uno, imparare l'altro non sarà difficile. Comunque, essuno di questi però è buono come primo linguaggio da imparare. E, oggigiorno, quanto meno riesci ad evitare la programmazione in C tanto più sarai produttivo.

C è un linguaggio veramente efficiente, e fa davvero buon uso delle risorse della tua macchina. Sfortunatamente, C offre questa efficenza in cambio di un mucchio di lavoro manuale da parte tua nel gestire a basso livello le risorse (come la memoria). Tutto questo codice di basso livello è complicato e porta allo sviluppo di bug, e ti porterà via molto tempo nel debug. Con le macchine molto potenti di oggi, tutto questo lavoro che il C richiede è di solito un pessimo affare - è preferibile usare un linguaggio che utilizza meno efficientemente il tempo del calcolatore, ma più efficientemente il tuo tempo. Quindi, Python.

Altri linguaggi di particolare importanza per gli hacker sono Perl eLISP. Perl è degno di importanza per motivi pratici; è largamente utilizzato per le pagine web dinamiche e per l'amministrazione di un sistema, così tanto che anche se non scriverai mai del codice Perl, dovresti comunque imparare a leggerlo. Molte persone usano Perl nel modo che ti ho suggerito per Python: per evitare la programmazione in C su lavori che non richiedono l'efficienza del codice C. Avrai la necessità di essere in grado di comprendere il loro codice.

LISP è degno di importanza per diversi motivi - la profonda esperienza di illuminazione che avrai quando finalmente lo imparerai. Questa esperienza ti renderà un miglior programmatore per il resto della tua vita, anche se non userai tanto LISP. (Puoi ottenere alcune dell'esperienze necessarie per iniziare con la programmazione usando LISP per scrivere e modificare le modalità di scrittura per l'editor di testo Emacs, o i plugin Script-Fu per GIMP.).

E 'meglio, in realtà, imparare tutti e cinque linguaggi oltre il Python, C / C ++, Java, Perl e LISP. Oltre ad essere i più importanti linguaggi di hacking, essi rappresentano approcci molto differenti alla programmazione, e ognuno ti educa in modo prezioso.

Ma essere a conoscenza del fatto che non si raggiunge il livello di abilità di un hacker o anche solo un programmatore semplicemente accumulando linguaggi - è necessario imparare a pensare a problemi di programmazione in modo generale, indipendentemente da una qualsiasi linguaggio. Per essere un vero hacker, è necessario arrivare al punto in cui si può imparare un nuovo linguaggio in giorni ,mettendo in relazione ciò che è nel manuale e quello che già sai. Ciò significa che dovreste imparare parecchi linguaggi differenti tra loro.

Non posso dare istruzioni complete su come imparare a programmare qui - è un'abilità complessa . Ma posso dirvi che i libri e i corsi non lo faranno - molti, forse la maggior parte dei migliori hacker sono autodidatta. Si può imparare la terminologia - un po' di conoscenza teorica - dai libri, ma la mentalità che rende veramente abili, si impara solo con la pratica e l'apprendistato . Quello che qui sì farà è leggere e scrivere il "codice".

Peter Norvig è uno dei migliori hacker di Google è uno dei co-autori del libro più letto in materia di Intelligenza Artificiale (AI), ha scritto una eccellente guida chiamata Teach Yourself Programming in Ten Years “Impara a programmare in 10 anni”. La sua ricetta per programmare con successo è meritevole di essere letta con attenzione.

Imparare a programmare è come imparare a scrivere una qualsiasi altra lingua (come per esempio l’inglese). Il modo migliore per farlo è leggere qualcosa che è stato scritto dai migliori, provare a scrivere qualcosa autonomamente, leggere ancora, scrivere ancora, leggere ancora e ripetere tutto questo fintanto che quello che scrivi evolve fino ad avere la solidità e il sistema che vedi nei tuoi modelli (da rivedere “il sistema”).

Ho altro da dire sul metodo d’apprendimento How To Learn Hacking(per diventare hacker). È una semplice serie di istruzioni, ma nessuna di esse è semplice

Trovare del buon codice da leggere può essere difficile, ormai c’è davvero pochi grandi programmi disponibili sotto forma di codice sorgente per i novelli hacker per leggere e armeggiare. Questo è drammaticamente cambiato; programmi open-source, strumenti di programmazione e sistemi operativi (tutto costruito da altri hacker) sono ampiamente disponibili per tutti. Questo mi porta al prossimo argomento…

2. Scegliere un linguaggio open-source Unix e imparare ad usarlo.

Immagino che avrai un tuo pc o puoi utilizzarne uno. (Prenditi un momento per apprezzare quanto questo possa significare. In origine la “cultura hacker” si è evoluta quando i computer erano così costosi che una singola persona non poteva averne uno) Il più importante passo che un novellino che vuole imparare deve fare è quello di procurarsi una copia di linux o una delle BSD-Unixes, installarla nel proprio pc e farla partire.

Sì, ci sono altri sistemi operative oltre a Unix. Ma sono distribuiti sotto forma di codice binario – non puoi leggere il codice né modificarlo. Cercare di imparare a hackerare su una macchina con Windows o un altro sistema closed-source (ndt: il contrario di open-source insomma) è come tentare di ballare mentre si indossa una camicia di forza.

Con un Mac OS X è possible imparare qualcosa, ma solo una parte del sistema è open-source – incontrerai molti muri invalicabili e dovrai fare attenzione dal non diventare dipendente dal codice di proprietà della Apple. Se ti concentri sui sistemi Unix puoi imparare molte cose utili.

Unix è il sistema operative di internet. Puoi imparare a utilizzare internet senza conoscere Unix, ma non puoi diventare un “internet hacker” senza capirlo. Per questa ragione la cultura hacker al giorno d’oggi è centrata principalmente su Unix. (Questo non è sempre vero e alcuni hacker d’altri tempi non ne sono felici, ma la simbiosi tra Unix e internet è diventata così forte che neanche i muscoli della Microsoft sembrano in grado di combatterla.)

Quindi inizia da Unix. Personalmente mi piace Linux ma ci sono altri vie (e sì, puoi far partire Linux e Windows sullo stesso pc). Imparalo, fallo partire, armeggiaci. Parla su internet con lui. Leggi il codice e impara a modificarlo. Con il tempo migliorerai nel programmare con i tool adatti (che includono C, LISP, Python e Perl) che tutti i sistemi Microsoft si sognano di avere. Divertiti e ti renderai conto di star assorbendo tante conoscenze, fintanto che riuscirai a vederti dietro come un “maestro hacker”.

Per altre informazioni su come imparare il linguaggio Unix visita ilThe Loginataka “Loginataka”. Se vuoi puoi inoltre dare una occhiata aThe Art Of Unix Programming. “L’arte di programmare con Unix”

Per mettere le mani su una copia di Linux visita il sito Linux Online!; potrai scaricarla da li o in alternativa (preferibile) trovare un gruppo di utenti Linux vicino a te, così da avere una mano con l’installazione.

Durante I primi dieci anni di questa vita dedicata all’insegnamento ho notato una cosa dai nuovi utenti: tutte le distribuzioni di Linux sono pressoche equivalent. Ma nel 2006-2007 è emersa tra tutte una:Ubuntu. Di solito ogni distribuzione ha un suo punto forte, Ubuntu è di gran lunga la più completa per i neofiti di Linux. Attenzione però alla orribile e inutilizzabile interfaccia desktop “Unity”, intodotta di default pochi anni fa. Le varianti Xubuntu o Kubuntu sono migliori di Ubuntu.

Potete trovare risorse e aiuto su: www.bsd.org.

Un buon modo per immergere le proprie dita dei piedi nell’acqua su Linux è tramite quello che I fans chiamano “live CD”, una distribuzione che gira interamente sul CD, senza bisogno di modificare il tuo hard disk. Sono più lente a causa della velocità minore del lettore CD, ma ti permette di dare uno sguardo alle sue funzioni senza fare cambiamenti drastici.

Ho scritto un testo elementare sulle basics of Unix and the Internet(basi di Unix e Internet).

Io sconsiglio di installare Linux o BSD per un solo progetto se si è nuovi. Al giorno d’oggi le installazioni sono semplificate al punto che anche per un novellino è possibile installare tutto autonomamente. Tuttavia io continuo a consigliare di mettersi in contatto con il gruppo di utenti Linux locale, non farà certamente male e potranno aiutarti a velocizzare la procedura.

3. Impara ad usare il Word Wide Web e scrivi in HTML.

Molte delle cose create dalla cultura hacker fanno il loro lavoro sottobanco, aiutano a far funzionare fabbriche, uffici e università senza nessun palese impatto sulla vita dei non-hacker. Il web è una grande eccezione, il più grande giocattolo degli hakcer, che anche i politici han ammesso “ha cambiato il mondo”. Per questa ragione da solo (assieme ad altre tante cose) hai bisogno di imparare come funziona il web.

Questo non implica imparare a usare un browser (tutti possono farlo), ma imparare a scrivere in HTML, il linguaggio del web. Se non sai programmare imparare a scrivere in HTML ti insegnerà alcune abitudini mentale che ti aiuteranno a imparare. Quindi crea una homepage.

Ma avere solo una homepage non è abbastanza per farti hacker. Il web è pieno di homepage. La maggioranza di queste sono senza senso, con nessun contenuto, fanghiglia, fanghiglia carina, ma intendiamoci, sempre la stessa (per approfondimenti sul tema guarda The HTML Hell Page).

Per essere utile, la tua pagina deve avere contenuti interessanti o utili per gli altri hacker. Questo ci porta al prossimo argomento…

4. Se non hai un buon inglese, miglioralo.

Come persona di madrelingua inglese ero riluttante a suggerire questo per il timore che sia preso come una sorta di imperialismo cultura. Ma alcune persone di altre madrelingue mi han fatto notare che sull’inglese si basa tutto il linguaggio della cultura hacker e di internet, ed hai bisogno di conoscere l’inglese per partecipare a una community hacker.

Nel 1991 ho imparato che molti hacker che hanno imparato l’inglese come seconda lingua la utilizzano anche durante le discussioni tecniche nella loro lingua originale. Mi è stato riportato che l’inglese è la lingua più ricca per quanto riguarda i termini tecnici di ogni altra, dunque è più facile da utilizzare. Per lo stesso motivo le traduzioni di libri tecnici scritti in inglese spesso sono pessime (quando viene tradotto tutto, ndt:termini tecnici inclusi).

Un norvegese di nome Linus Torvald commenta I suoi codici in inglese, il suo suo inglese fluido è stato un fattore rilevante per reclutare nuove reclute nel nella community mondiale degli sviluppatori per Linux. È un esempio da seguire. Ndt: testo in parentesi inutile

Essere di madrelingua inglese non ti basta per avere la certezza di essere un buon hacker. Se scrivi come un analfabeta, senza grammatica e crivellando il tuo testo di errori molti hacker (incluso io) tenderanno a ignorarti. Anche se un modo di scrivere sciatto non sempre corrisponde a pensiero di egual livello, spesso questa correlazione è forte ed è inutile aiutarli. Se non sei in grado di scrivere in modo competente in inglese, impara a farlo.

glider.png

Status nell’ambiente degli Hacker.


Come in tutti gli ambienti senza una economia incentrata sui soldi, il mondo degli hacker gira sulla reputazione. Quando cercherai di risolvere un problema, saranno i tuoi colleghi e superiori a giudicare quanto quel problema sia interessante o la tua soluzione ottima.

Di conseguenza quando fai l’hacker devi tenere in mente principalmente quello che gli altri pensano delle tue abilità (come non puoi considerarti hacker fintanto che qualcuno di loro ti riconosce come tale). Questo motivo è stato messo nell’ombra dalla credenza che quello di fare l’hacker sia un lavoro solitario; anche per un taboo nella cultura hacker (gradualmente caduto dalla seconda parte degli anni ’90 ma ancora presente) per il quale non è possibile ammettere che ego e ammirazione sono tra le motivazioni dell’hacker solitario.

Nello specifico, il mondo degli hacker è quello che gli antropologi (ndt: coloro che studiano il comportamento umano) chiamano “cultura dei regali”. Acquisisci uno status e reputazione non dominando gli altri, né diventando bello e neanche avendo cose che altre persone vogliono; l’ottieni dando via cose. Nello specifico il tuo tempo, la tua creatività e il risultato delle tue abilità.

Ci sono principalmente 5 tipo di cose che puoi fare per essere rispettato dagli hacker:

1. Scrivi un programma open-source.

La prima (la principale e la più tradizionale) cosa che puoi fare è quella di scrivere programmi che gli altri hacker pensano sia utile o divertente e dare a tutti il codice sorgente, così che tutta la comunità hacker possa usarlo.

(Si solito chiamiamo questi lavori “software libero”, ma questo confonde molte persone sul significato di “libero”. Adesso si preferisce utilizzare il termine programma "open-source”).

Gli hacker più famosi, considerate come semidei sono persone che han scritto molti programmi, molti dei quali capaci di dare una mano a un vasto numero di utenti e li ha regalati, così che adesso sono utilizzati da tutti.

Pillola di storia: sebbene gli hacker che sviluppano programmi open-source sono il cuore pulsante della nostra community non è stato sempre così, nei primi anni ’90 la maggioranza degli hacker lavorava su codici chiudi, cioè inaccessibili agli altri. Questa è una condizione ancora vera nella prima versione di questo manuale, che ho scritto nel 1996. E stata necessaria la diffusione dei programmi open-source nel 1997 per cambiare le cose. Al giorno d’oggi la “community hacker” e gli “sviluppatori open-source” sono praticamente due descrizioni per la stessa cultura e popolazione –anche se la correlazione è forte, non sempre è così. (Per ulteriori spiegazioni in merito andate alle note storiche.)

2. Aiuta a testare e correggere errori nei programmi open-source.

Servono sempre persone che aiutano a correggere errori nei programmi open-source. In questo mondo imperfetto è inevitabile la maggioranza del tempo impiegato per lo sviluppo nella fase di debug (correzione di errori). Ecco perché un autore di programmi open-source che pensa a te come un buon beta-tester (che riesce a descrivere in modo chiaro gli errori, localizza i problemi, riesce a tollerare i bug nelle versioni rilasciate di fretta ed è disposto a candidarsi per ogni test di diagnostica) ha il valore di uno o più rubini. Anche solo uno di loro può fare la differenza tra una fase di debug che si potrae: un incubo estenuante e una salutare scocciatura.

Se sei un neofito, prova a cercare un programma in via di sviluppo di tuo interesse e prova a essere un buon beta-tester.

3. Pubblica informazioni interessanti.

Un’altra buona cosa da fare è quella di collezionare e filtrare informazioni interessanti nelle proprie pagine web o in documenti tipo “FAQ – domande frequenti” e renderle disponibili a tutti. I manutentori delle più grandi FAQ tecniche sono rispettati come un autore di programmi open-source.

4. Aiuta a far funzionare le infrastrutture.

La cultura hacker (e lo sviluppo di internet, per quello che importa) si basa sui volontari. C’è un mucchio di lavoro necessario, ma senza fama, che è necessario fare, per esempio amministrare le “mailing list”, moderare i gruppi di discussione delle news, tenere un archivio dei principali sviluppatori di software, sviluppare RFC (ndt: non so cosa siano, quindi non sono in grado di tradurlo –da rimuovere questa nota prima della pubblicazione--) e altri standard tecnici.

Le persone chef anno questo genere di cose ottengono molto rispetto, tutti sanno quanto tempo porta via fare queste cose, tempo che non può essere usato in modo divertente, come per esempio giocando con I codici. Farle dimostra dedizione verso la community.

5. Mettiti a disposizione per aiutare la community.

Finalmente, arrivato a questo punto, puoi aiutare e propagare la cultura hacker anche te (per esempio scrivendo una guida su come diventare un hacker). Non è qualcosa che puoi fare prima di esser stato nel giro per un po’ e sei diventato famoso per almeno uno dei quattro punti che ho descritto prima.

La cultura hacker non ha leader, ma ha Eroi, Saggi anziani, Storici e portavoci. Quando sarai stato in trincea per molto diventerai uno di loro. Attento: gli hacker non ti daranno fiducia se sarà palese che vuoi diventare uno dei Saggi anziani, quindi cercare di ottenere questo tipo di fama è pericoloso. Piuttosto che sforzarsi per questo punta solo ad ottenere la posizione che ti senti nel glembo e sii modesto e grato per il tuo status.

glider.png

La connessione tra hacker e nerd.

Contrariamente dai miti, non è necessario essere un nerd per essere un hacker. Certo, ovviamente aiuta ed infatti molti hacker sono dei nerd. Essere un reietto di aiuta a restare concentrato su cose veramente importanti, come pensare e hackerare.

Per questa ragione, molti hacker si fanno chiamare “geek” con orgoglio –è un modo per dichiararsi indipendenti dalle normali aspettative sociale (assieme all’amore per cose tipo la fantascienza e i giochi di strategia che spesso conciliano bene con l’essere un hacker). Il termine “nerd” è usato in questo modo dagli anni ’90, quando il termine era negativo in maniera moderata, mentre per “geek” si usava per casi più gravi. Ogni tanto dagli anni 2000 in poi questi due termini si sono scambiati di posto, come per esempio nella cultura popolare americana. Adesso una significante parte degli inesperti del settore porta questa etichetta con orgoglio.

Se vieni a concentrarti a sufficienza nell’hacking per diventare bravo e comunque avere una vita sociale, è ottimo. È molto più facile adesso che negli anni ’70, le conoscenze principali sono molto più facili da reperire ai nerd tecnologici di adesso. Inoltre c’è un largo numero di persone che ha realizzato che gli hacker sono spesso degli amanti e mariti di alta qualità.

Se sei attratto dall’hacking perché non hai una vita sociale va bene lo stesso, non avrai problem con il concentrarti. Potrai farti una vita dopo.

Appunti per lo stile.

Di nuovo, se vuoi essere un hacker devi avere la linea di pensiero giusta. Ci sono alcune cose che puoi fare quando non sei al pc che sembrano aiutare. Non ci sono sostituti dell’hacking (nulla può sostituirlo) ma molti hacker le fanno e sentono una sorta di collegamento con l’hacking.

  • Impara a scrivere bene nella tua madrelingua. Esiste uno stereotipo secondo il quale i programmatori non sanno scrivere bene, invece c’è un numero sorprendente (inclusi i più esperti che conosco) di hacker che sono bravissimi in questo.
  • Leggi racconti di fantascienza e vai alle fiere a tema (è un buon modo per incontrare hacker e aspiranti tali).
  • Aggregati a gruppi locali di hacker per fare cose assieme a loro (un altro ottimo metodo per incontrare altri hacker e aspirant tali)
  • Allenati nelle arti marziali. La disciplina mentale necessaria per praticarle è molto simile a quella necessaria per un hacker. Le più popolari tra gli hacker sono quelle asiatiche a mani nude, come per esempio il Tae Kwon Do, molte forme del Karate, Kung Fu, Aikido o Ju Jitsu. Hanno molti seguaci anche la scherma e l’arte della spada asiatica. Dove è legale, andare al poligono per sparare ha subito una repentina salita in praticanti dalla fine degli anni ’90. Le arti marziali più utili per un hacker sono quelle che enfatizzano la disciplina mentale, rilassano la mente, rendono più precisi i tuoi movimenti, aumentano la tua forza bruta, la tua atleticità o aumentano la tua resistenza.
  • Studia una disciplina di meditazione. La scelta più diffusa tra gli hacker è lo Zen (importante: è possibile avere benefici dallo Zen senza unirsi a una religione o cambiare quella attuale). Altri stili possono funzionare, ma attenzione che non ti chiedano di credere a cose assurde.
  • Sviluppa orecchio per la musica. Impara ad apprezzare particolari tipi di musica. Impara a suonare uno strumento o a cantare.
  • Impara ad apprezzare I giochi di parole.

Più cose fai e più probabilmente sarai portato a essere un buon hacker. Non è completamente chiaro perché, ma tutte queste cose sono collegate tra loro e stimolano entrambi gli emisferi del tuo cervello, cosa importante per un hacker che ha bisogno di ragionare accuratamente ed uscire dalla logica comune quando un problema lo richiede.

Lavora intensamente quanto giochi e gioca intensamente quanto lavori. Per i veri hacker i confini tra giocare, lavorare, scienza e arte tendono a scomparire, fusi assieme in un grande gioco creativo. Inoltre non si accontentano di un ristretto numero di abilità Nonostante molti hacker si descrivano come programmatori, molto spesso hanno competenze in numerose arti affini, come per esempio l’amministrazione di sistemi, web design e risoluzione dei problemi a livello hardware di un pc. Un hacker che è anche un amministratore di sistema, d’altra parte, avrà ottime capacità nel campo della programmazione di script e nel web design. Gli hacker non fanno le cose a metà, se investono energie in una abilità, vogliono averne la piena padronanza.

Infine, alcune cose da non fare.

  • Non usare Nickname o ID idioti o maestosi.
  • Non farti coinvolgere In flamewar in rete (o in qualsiasi altro luogo) (ndt: ormai non si traduce più, ma se necessario: Guerre di insulti).
  • Non chiamarti “cyberpunk” e non perdere tempo con chiunque lo faccia.
  • Non inviare messaggi nei forum o via mail pieni di errori grammaticali e di battitura.

L’unica cosa che otterrai facendo alcune delle cose appena citate è un rimprovero. Gli hacker hanno una buona memoria, possono volerci anni per rimediare ai tuoi errori da neofita.

Il problema con I Nickname ha bisogno di una ulteriore spiegazione. Nascondere la propria identità dietro un Nickname è qualcosa di giovanile e sciocco, caratteristico dei cracker, gli esperti di warez e altre forme di vita inferiori. Gli hacker non fanno questo, sono orgogliosi di quello che fanno e vogliono che il loro lavoro sia associato ai loro nomi reali. Quindi se ti nascondi, lascia perdere. Nella cultura hacker lo fanno solo i perdenti.

glider.png
Note storiche: Hakcing, Open-source e software libero.
Quando ho scritto questo manuale nel 1996 alcune cose erano molto diverse da come sono oggi. Spendere alcune parole per far chiarezza su questi cambiamenti aiuterà le persone che si trovano in difficoltà a capire la differenza tra open-source, software libero e Linux nella community hacker. Non se non hai interesse nella cosa, puoi saltarla e passare direttamente alle FAQ e alla bibliografia da qui: (ndt: in teoria dovrebbe esserci un link qui)

La community hacker e I loro principi che ho descritto sono di molto anteriori alla diffusione di Linux dopo il 1990. I miei primi contatti sono datati 1976, ma è possibile trovare tracce della cultura hacker già nei primi anni ’60. Ma prima di Linux la maggioranza utilizzava sistemi operative fatti in casa o sviluppati in un ambiente accademico come per esempio MIT e ITS, senza mai essere distribuiti. Ci sono stati dei progetti (antecedenti a Linux) atti a cambiare la situazione ma il loro impatto è stato marginale, confinato alle sole community che credevano nel progetto, una piccola minoranza anche tra gli hacker; anche per quanto riguarda l’apporto minimo (ma che tutti noi rispettiamo) portato al vasto mondo dei software in generale.

Quello che adesso è chiamato “open-source” è possible ritrovarlo in tutto quello che la community hacker ha sempre fatto, ma fino al 1985 il tutto era messo in pratica da persone senza nome con teorie e manifesti al seguito. Questo finì quando l’astuto hacker Richard Stallman (“RMS”) ha provato a dargli un nome: software libero. Ma questo dargli un nome era anche un modo per reclamarlo, con questa azione ha caricato l’etichetta “software libero” di un bagaglio di ideologie che la community hacker non ha mai accettato. Come risultato l’etichetta “software libero” è stata respinta a gran voce da un notevole numero di minoranze della community hacker (specialmente quelle associate alle BSD Unix), ed è utilizzata con serietà e riservatezza dalla maggioranza dei rimanenti (incluso io).

A discapito della riservatezza, RMS ha reclamato di definire e guidare la community degli hacker sotto la bandiera del “software libero” in linea di massimo fino alla metà degli anni ’90. La sua etichetta è stata seriamente sfidata solo dalla nascita di Linux, che ha dato all’open-source la sua madrepatria. Molti dei progetti rilasciati nel modo che ora chiamiamo open-source sono migrati dalle Unix proprietarie a Linux. La community attorno a Linux è cresciuta in modo esplosivo, diventando ben presto molto più ampia e eterogenea di tutte i suoi predecessori. RMS ha cercato di cooperare e unire tutta questa attività sotto la sua etichetta del “software libero”, ma fu ostacolato da entrambe le ideologie esplosive di Linux e lo scetticismo del suo fondatore: Linus Torvalds. Torvalds ha comunque continuato a utilizzare il termine “software libero” per mancanza di alternative, ma ha sempre rigettato ogni ideale ad esso collegato dal suo ideatore: RMS. Molti giovani hacker hanno fatto lo stesso, seguendo il suo esempio.

Nel 1996, quando ho scritto questo manuale, la community hacker si è rapidamente re-organizzata intorno a Linux e una manciata di altri sistemi operativi open-source (con una notevole diminuzione dell’utilizzo dei sistemi BSD Unix). La memoria della community del fatto che la maggioranza di noi ha speso decadi per sviluppare programmi closed-source su sistemi operativi del medesimo tipo ed è qualcosa che non scomparirà, ma alla luce dei fatti finirà per rimanere solo una parte di un passato ormai morto. Gli hacker stanno progressivamente definendosi tali in base all’attaccamento a progetti open-source quali Linux o Apache.

Il termine open-source comunque non è ancora emerso, non lo farà fino ai primi del 1998. Quando l’ha fatto, la maggioranza delle community di hacker lo hanno adottato nei seguenti 6 mesi, con le sole eccezioni di minoranze attaccate all’etichetta “software libero”. Dal 1998 e specialmente dal 2003 la correlazione tra “hacking” e “programmatore open-source (e software libero)” è diventata molto stretta. Al giorno d’oggi ci sono ben pochi punti per tentare di distinguere le due categorie e sembra improbabile che questo possa cambiare in futuro.

E' qualcosa che vale la pena ricordare: non sempre tutto questo è stato così.

glider.png
Autore
ghelas
Visualizzazioni
3,469
Prima pubblicazione
Ultimo aggiornamento
Voto recensione
5.00 stelle/a 3 voti

Ultime recensioni

Ottima, anche se la traduzione non è esatta a volte. Linus Torvalds è finlandese non norvegese
Ottimo lavoro, l'ultima traduzione era un pò datata. Un consiglio però: sempre meglio imparare l'inglese ;)
Ottimo Documento per chi vuole "imparare ad imparare"!