sexta-feira, 12 de dezembro de 2008

Dicas
Como se Tornar um Hacker Por que esse documento? Como editor do Jargon File, freqentemente recebo pedidos por email de entusiasmados iniciantes, perguntando (de fato) "como eu posso aprender a ser um grande hacker?". Estranhamente, parece que no existem FAQs ou documentos na Web que se refiram a essa importante questo, ento aqui est o meu. Caso voc esteja lendo um trecho deste documento off-line, a verso atual fica em http://www.ccil.org/~esr/faqs/hacker-howto.html. O que um hacker? O Jargon File contm um monte de definies do termo "hacker", a maioria deles tendo a ver com aptido tcnica e um prazer em resolver problemas e superar limites. Se voc quer saber como se tornar um hacker, entretanto, apenas duas so realmente relevantes. Existe uma comunidade, uma cultura compartilhada, de programadores experts e gurus de rede cuja histria remonta a decadas atrs, desde os primeiros minicomputadores de tempo compartilhado e os primeiros experimentos na ARPAnet. Os membros dessa cultura deram origem ao termo "hacker". Hackers construram a Internet. Hackers fizeram do sistema operacional Unix o que ele hoje. Hackers mantm a Usenet. Hackers fazem a World Wide Web funcionar. Se voc parte desta cultura, se voc contribuiu a ela e outras pessoas o chamam de hacker, voc um hacker. A mentalidade hacker no confinada a esta cultura do hacker-de-software. H pessoas que aplicam a atitude hacker em outras coisas, como eletrnica ou msica -- na verdade, voc pode encontr-la nos nveis mais altos de qualquer cincia ou arte. Hackers de software reconhecem esses espritos aparentados de outros lugares e podem cham-los de "hackers" tambm -- e alguns alegam que a natureza hacker realmente independente da mdia particular em que o hacker trabalha. Mas no restante deste documento, nos concentraremos nas habilidades e dos hackers de software, e nas tradies da cultura compartilhada que deu origem ao termo `hacker'. Existe outro grupo de pessoas que se dizem hackers, mas no so. So pessoas (adolescentes do sexo masculino, na maioria) que se divertem invadindo computadores e fraudando o sistema telefnico. Hackers de verdade chamam essas pessoas de "crackers", e no tem nada a ver com eles. Hackers de verdade consideram os crackers preguiosos, irresponsveis, e no muito espertos, e alegam que ser capaz de quebrar sistemas de segurana torna algum hacker tanto quanto fazer ligao direta em carros torna algum um engenheiro automobilstico. Infelizmente, muitos jornalistas e escritores foram levados a usar, errneamente, a palavra "hacker" para descrever crackers; isso muito irritante para os hackers de verdade. A diferena bsica esta: hackers constrem coisas, crackes as destrem. Se voc quer ser um hacker, continue lendo. Se voc quer ser um cracker, v ler o newsgroup alt.2600 e se prepare para se dar mal depois de descobrir que voc no to esperto quanto pensa. E isso tudo que eu digo sobre crackers. A Atitude Hacker Hackers resolvem problemas e constrem coisas, e acreditam na liberdade e na ajuda mtua voluntria. Para ser aceito como um hacker, voc tem que se comportar de acordo com essa atitude. E para se comportar de acordo com essa atitude, voc tem que realmente acreditar nessa atitude. Mas se voc acha que cultivar a atitude hacker somente um meio para ganhar aceitao na cultura, est enganado. Tornar-se o tipo de pessoa que acredita nessas coisas importante para voc -- para ajud-lo a aprender e manter-se motivado. Assim como em todas as artes criativas, o modo mais efetivo para se tornar um mestre imitar a mentalidade dos mestres -- no s intelectualmente como emocionalmente tambm. Ento, se voc quer ser um hacker, repita as seguinte coisas at que voc acredite nelas: 1. O mundo est repleto de problemas fascinantes esperando para serem resolvidos. Ser hacker muito divertido, mas um tipo de diverso que necessita de muito esforo. Para haver esforo necessrio motivao. Atletas de sucesso retiram sua motivao de uma espcie de prazer fsico em trabalhar seus corpos, em tentar ultrapassar seus prprios limites fsicos. Analogamente, para ser um hacker voc precisa ter uma emoo bsica em resolver problemas, afiar suas habilidades e exercitar sua inteligncia. Se voc no o tipo de pessoa que se sente assim naturalmente, voc precisar se tornar uma para ser um hacker. Seno, voc ver sua energia para "hackear" sendo esvada por distraes como sexo, dinheiro e aprovao social. (Voc tambm tem que desenvolver uma espcie de f na sua prpria capacidade de aprendizado -- crer que, mesmo que voc no saiba tudo o que precisa para resolver um problema, se souber uma parte e aprender a partir disso, conseguir aprender o suficiente para resolver a prxima parte -- e assim por diante, at que voc termine.) 2. No se deve resolver o mesmo problema duas vezes. Mentes criativas so um recurso valioso e limitado. No devem ser desperdiadas reinventando a roda quando h tantos problemas novos e fascinantes por a. Para se comportar como um hacker, voc tem que acreditar que o tempo de pensamento dos outros hackers precioso -- tanto que quase um dever moral compartilhar informao, resolver problemas e depois dar as solues, para que outros hackers possam resolver novos problemas ao invs de ter que se preocupar com os antigos indefinidamente. (Voc no tem que acreditar que obrigado a dar toda a sua produo criativa, ainda que hackers que o fazem sejam os mais respeitados pelos outros hackers. No inconsistente com os valores do hacker vender o suficiente da sua produo para mant-lo alimentado e pagar o aluguel e computadores. No inconsistente usar suas habilidades de hacker para sustentar a famlia ou mesmo ficar rico, contanto que voc no esquea que um hacker.) 3. Tdio e trabalho repetitivo so nocivos. Hackers (e pessoas criativas em geral) no podem ficar entediadas ou ter que fazer trabalho repetitivo, porque quando isso acontece significa que eles no esto fazendo o que apenas eles podem fazer -- resolver novos problemas. Esse desperdcio prejudica a todos. Portanto, tdio e trabalho repetitivo no so apenas desagradveis, mas nocivos tambm. Para se comportar como um hacker, voc tem que acreditar nisso de modo a automatizar as partes chatas tanto quanto possvel, no apenas para voc como para as outras pessoas (principalmente outros hackers). (H uma exceo aparente a isso. s vezes, hackers fazem coisas que podem parecer repetitivas ou tediosas para um observador, como um exerccio de "limpeza mental", ou para adquirir uma habilidade ou ter uma espcie particular de experincia que no seria possvel de outro modo. Mas isso por opo -- ningum que consiga pensar deve ser forado ao tdio. 4. Liberdade uma coisa boa. Hacker so naturalmente anti-autoritrios. Qualquer pessoa que lhe d ordens pode impedi-lo de resolver qualquer que seja o problema pelo qual voc est fascinado -- e, dado o modo em que a mente autoritria funciona, geralmente arranjar alguma desculpa espantosamente idiota isso. Ento, a atitude autoritria deve ser combatida onde quer que voc a encontre, para que no sufoque a voc e a outros hackers. (Isso no a mesma coisa que combater toda e qualquer autoridade. Crianas precisam ser orientadas, e criminosos, detidos. Um hacker pode aceitar alguns tipos de autoridade a fim de obter algo que ele quer mais que o tempo que ele gasta seguindo ordens. Mas isso uma barganha restrita e consciente; no o tipo de sujeio pessoal que os autoritrios querem.) Pessoas autoritrias prosperam na censura e no segredo. E desconfiam de cooperao voluntria e compartilhamento de informao -- s gostam de "cooperao" que eles possam controlar. Ento, para se comportar como um hacker, voc tem que desenvolver uma hostilidade instintiva censura, ao segredo, e ao uso da fora ou mentira para compelir adultos responsveis. E voc tem que estar disposto a agir de acordo com esta crena. 5. Atitude no substitui competncia. Para ser um hacker, voc tem que desenvolver algumas dessas atitudes. Mas apenas ter uma atitude no far de voc um hacker, assim como no o far um atleta campeo ou uma estrela de rock. Para se tornar um hacker necessrio inteligncia, prtica, dedicao, e trabalho duro. Portanto, voc tem que aprender a desconfiar de atitude e respeitar todo tipo de competncia. Hackers no deixam posers gastar seu tempo, mas eles idolatram competncia -- especialmente competncia em "hackear", mas competncia em qualquer coisa boa. A competncia em habilidades que poucos conseguem dominar especialmente boa, e competncia em habilidades que involvem agudeza mental, percia e concentrao a melhor. Se voc reverenciar competncia, gostar de desenvolv-la em si mesmo -- o trabalho duro e dedicao se tornar uma espcie de um intenso jogo, ao invs de trabalho repetitivo. E isso vital para se tornar um hacker. Habilidades bsicas do hacker A atitude hacker vital, mas habilidades so ainda mais vitais. Atitude no substitui competncia, e h uma certo conjunto de habilidades que voc precisa ter antes que um hacker sonhe em lhe chamar de um. Esse conjunto muda lentamente com o tempo, de acordo com a criao de novas habilidades. Por exemplo, costumava incluir programao em linguagem de mquina, e at recentemente no inclua HTML. Mas agora certo que inclui o seguinte: 1. Aprenda a programar. Essa , claro, a habilidade bsica do hacker. Em 1997, a linguagem que voc absolutamente precisa aprender C (apesar de no ser a que voc deve aprender primeiro). Mas voc no um hacker e nem mesmo um programador se voc souber apenas uma linguagem -- voc tem que aprender a pensar sobre problemas de programao de um modo geral, independentemente de qualquer linguagem. Para ser um hacker de verdade, voc precisa ter chegado ao ponto de conseguir aprender uma nova linguagem em questo de dias, relacionando o que est no manual ao que voc j sabe. Isso significa que voc deve aprender vrias linguagens bem diferentes. Alm de C, voc tambm deve aprender pelo menos LISP e Perl (e Java est tentando pegar um lugar nessa lista). Alm de serem as linguagens mais importantes para hackear, cada uma delas representa abordagens programaao bem diferentes, e todas o educaro em pontos importantes. Eu nao posso lhe dar instrues completas sobre como aprender a programar aqui -- uma habilidade complexa. Mas eu posso lhe dizer que livros e cursos tambm no serviro (muitos, talvez a maioria dos melhores hacker so auto-didatas). O que servir (a) ler cdigo e (b) escrever cdigo. Aprender a programar como aprender a escrever bem em linguagem natural. A melhor maneira ler um pouco dos mestres da forma, escrever algumas coisas, ler mais um monte, escrever mais um monte, ler mais um monte, escrever... e repetir at que seu estilo comece a desenvolver o tipo de fora e economia que voc v em seus modelos. Achar bom cdigo para ler costumava ser difcil, porque havia poucos programas grandes disponveis em cdigo-fonte para que hackers novatos pudessem ler e mexer. Essa situao mudou dramaticamente; open-source software (software com cdigo-fonte aberto), ferramentas de programao, e sistemas operacionais (todos feitos por hackers) esto amplamente disponveis atualmente. 2. Pegue um dos Unixes livres e aprenda a mexer. Estou assumindo que voc tem um computador pessoal ou tem acesso a um (essas crianas de hoje em dia tem to facilmente :-)). O passo mais importante que um novato deve dar para adquirir habilidades de hacker pegar uma cpia do Linux ou de um dos BSD-Unixes, o instalar em um PC, e rod-lo. Sim, h outros sistemas operacionais no mundo alm do Unix. Porm, eles so distribudos em forma binria -- voc no consegue ler o cdigo, e voc no consegue modific-lo. Tentar aprender a "hackear" em DOS, Windows ou MacOS como tentar aprender a danar com o corpo engessado. Alm disso, Unix o sistema operacional da Internet. Embora voc possa aprender a usar a Internet sem conhecer Unix, voc no pode ser um hacker sem entend-lo. Por isso, a cultura hacker, atualmente, fortemente centralizada no Unix. (No foi sempre assim, e alguns hackers da velha guarda no gostam da situao atual, mas a simbiose entre o Unix e a Internet se tornou to forte que at mesmo o msculo da Microsoft no parece ser capaz de ameac-la seriamente.) Ento, pegue um Unix -- eu gosto do Linux, mas existem outros caminhos. Aprenda. Rode. Mexa. Acesse a Internet atravs dele. Leia o cdigo. Modifique o cdigo. Voc ter ferramentas de programao (incluindo C, Lisp e Perl) melhores do qualquer sistema operacional da Microsoft pode sonhar em ter, voc se divertir, e ir absorver mais conhecimento do que perceber, at que voc olhar para trs como um mestre hacker. Para aprender mais sobre Unix, veja The Loginataka. Para pegar o Linux, veja Where To Get Linux. 3. Aprenda a usar a World Wide Web e escrever em HTML. A maioria das coisas que a cultura hacker tem construdo funciona "invisivelmente", ajudando no funcionamento de fbricas, escritrios e universidades sem nenhum bvio na vida dos no-hackers. A Web a grande exceo, o enorme e brilhante brinquedo dos hackers que at mesmo polticos admitem que est mudando o mundo. Por esse motivo (e vrios outros tambm) voc precisa a aprender como trabalhar na Web. Isso no significa apenas aprender a mexer em um browser (qualquer um faz isso), mas aprender a programar em HTML, a linguagem de markup da Web. Se voc no sabe programar, escrever em HTML lhe ensinar alguns hbitos mentais que o ajudaro. Ento faa uma home page. Mas apenas ter uma home page no chega nem perto de torn-lo um hacker. A Web est repleta de home pages. A maioria delas intil, porcaria sem contedo -- porcaria muito bem apresentada, note bem, mas porcaria mesmo assim (mais sobre esse assunto em The HTML Hell Page). Para valer a pena, sua pgina deve ter contedo -- deve ser interessante e/ou til para outros hackers. E isso nos leva ao prximo assunto... Status na Cultura Hacker Como a maioria das culturas sem economia monetria, a do hacker se baseia em reputao. Voc est tentando resolver problemas interessantes, mas quo interessantes eles so, e se suas solues so realmente boas, algo que somente seus iguais ou superiores tecnicamente so normalmente capazes de julgar. Conseqentemente, quando voc joga o jogo do hacker, voc aprende a marcar pontos principalmente pelo que outros hackers pensam da sua habilidade (por isso voc no hacker at que outros hackers lhe chamem assim). Esse fato obscurecido pela imagem solitria que se faz do trabalho do hacker; e tambm por um tabu hacker-cultural que contra admitir que o ego ou a aprovao externa esto envolvidas na motivao de algum. Especificamente, a cultura hacker o que os antropologistas chamam de cultura de doao. Voc ganha status e reputao no por dominar outras pessoas, nem por ser bonito, nem por ter coisas que as pessoas querem, mas sim por doar coisas. Especificamente, por doar seu tempo, sua criatividade, e os resultados de sua habilidade. H basicamente cinco tipos de coisas que voc pode fazer para ser respeitado por hackers: 1. Escrever open-source software. O primeiro (o mais central e mais tradicional) escrever programas que outros hackers achem divertidos ou teis, e dar o cdigo-fonte para que toda a cultura hacker use. (Ns costumvamos chamar isto de "free software", mas isso confundia muitas pessoas que no sabiam ao certo o significado de "free". Agora, muitos de ns preferem o termo "open-source" software). [nota do tradutor: "free" significa tanto "livre" como "gratuito", da a confuso. O significado que se pretende "livre".] Os "semi-deuses" mais venerados da cultura hacker so pessoas que escreveram programas grandes, competentes, que encontraram uma grande demanda e os distriburam para que todos pudessem usar. 2. Ajude a testar e depurar open-source software Tambm esto servindo os que depuram open-source software. Neste mundo imperfeito, inevitavelmente passamos a maior parte do tempo de desenvolvimento na fase de depurao. Por isso, qualquer autor de open-source software que pense lhe dir que bons beta-testers (que saibam descrever sintomas claramente, localizar problemas, tolerar bugs em um lanamento apressado, e estejam dispostos a aplicar algumas rotinas de diagnstico) valem seu peso em ouro. At mesmo um desses beta-testers pode fazer a diferena entre uma fase de depurao virar um longo e cansativo pesadelo, ou ser apenas um aborrecimento saudvel. Se voc um novato, tente achar um programa sob desenvolvimento em que voc esteja interessado e seja um bom beta-tester. H um progresso natural de ajudar a testar programas para ajudar a depurar e depois ajudar a modific-los. Voc aprender muito assim, e criar um bom karma com pessoas que lhe ajudaro depois. 3. Publique informao til. Outra boa coisa a se fazer coletar e filtrar informaes teis e interessantes em pginas da Web ou documentos como FAQs ("Frequently Asked Questions lists", ou listas de perguntas freqentes), e torne-os disponveis ao pblico. Mantenedores de grandes FAQs tcnicos so quase to respeitados quanto autores de open-source software. 4. Ajude a manter a infra-estrutura funcionando. A cultura hacker (e o desenvolvimento da Internet, quanto a isso) mantida por voluntrios. Existe muito trabalho sem glamour que precisa ser feito para mant-la viva -- administrar listas de email, moderar grupos de discusso, manter grandes sites que armazenam software, desenvolver RFCs e outros padres tcnicos. Pessoas que fazem bem esse tipo de coisa so muito respeitadas, porque todo mundo sabe que esses servios tomam muito tempo e no so to divertidos como mexer em cdigo. Faz-los mostra dedicao. 5. Sirva a cultura hacker em si. Finalmente, voc pode servir e propagar a cultura em si (por exemplo, escrevendo um apurado manual sobre como se tornar um hacker :-)). Voc s ter condio de fazer isso depois de ter estado por a por um certo tempo, e ter se tornado conhecido por uma das primeiras quatro coisas. A cultura hacker no tm lderes, mas tm seus heris culturais, "chefes tribais", historiadores e porta-vozes. Depois de ter passado tempo suficiente nas trincheiras, voc pode ser tornar um desses. Cuidado: hackers desconfiam de egos espalhafatosos em seus "chefes tribais", ento procurar visivelmente por esse tipo de fama perigoso. Ao invs de se esforar pela fama, voc tem que de certo modo se posicionar de modo que ela "caia" em voc, e ento ser modesto e corts sobre seu status. A Conexo Hacker/Nerd Contrariamente ao mito popular, voc no tem que ser um nerd para ser um hacker. Ajuda, entretanto, e muitos hackers so de fato nerds. Ser um proscrito social o ajuda a se manter concentrado nas coisas realmente importantes, como pensar e "hackear". Por isso, muitos hackers adotaram o rtulo "nerd", e at mesmo usam o termo (mais duro) "geek" como um smbolo de orgulho -- um modo de declarar sua independncia de expectativas sociais normais. Veja The Geek Page para discusso extensiva. Se voc consegue se concentrar o suficiente em hackear para ser bom nisso, e ainda ter uma vida, est timo. Isso bem mais fcil hoje do que quando era um novato nos anos 70; atualmente a cultura mainstream muito mais receptiva a tecno-nerds. H at mesmo um nmero crescente de pessoas que percebem que hackers so, freqentemente, amantes e cnjuges de alta qualidade. Girl's Guide to Geek Guys. Se hackear o atrai porque voc no vive, tudo bem -- pelo menos voc no ter problemas para se concentrar. Talvez voc consiga uma vida normal depois. Pontos Sobre Estilo Para ser um hacker, voc tem que entrar na mentalidade hacker. H algumas coisas que voc pode fazer quando no estiver na frente de um computador e que podem ajudar. No substituem o ato de hackear (nada substitui isso), mas muitos hackers as fazem, e sentem que elas esto ligadas de uma maneira bsica com a essncia do hacking. Leia fico cientfica. Freqente convenes de fico cientfica (uma boa maneira de encontrar hackers e proto-hackers). Stude o Zen, e/ou faa artes marciais. (A disciplina mental parece similar em pontos importantes). Desenvolva um ouvido analtico para msica. Aprenda a apreciar tipos peculiares de msica. Aprenda a tocar bem algum instrumento musical, ou a cantar. Desenvolva sua apreciao de trocadilhos e jogo de palavras. Aprenda a escrever bem em sua lngua nativa. (Um nmero surpreendente de hackers, incluindo todos os melhores que eu conheo, so bons escritores.) Quanto mais dessas coisas voc j fizer, mais provvel que voc tenha naturalmente um material hacker. Por que essas coisas em particular no completamente claro, mas elas so ligadas com uma mistura de habilidades dos lados esquerdo e direito do crebro que parece ser muito importante (hackers precisam ser capazes de tanto raciocinar logicamente quanto pr de lado, de uma hora para outra, a lgica aparente do problema). Finalmente, algumas coisas a no serem feitas. No use um nome de usurio ou pseudnimo bobo e grandioso. No entre em flame wars ("guerrinhas") na Usenet (ou em qualquer outro lugar). No se auto-intitule um "cyberpunk", e no perca seu tempo com algum que o faa. No poste ou escreve email cheio de erros de ortografia e gramtica. A nica reputao que voc conseguir fazendo alguma dessas coisas a de um twit [um chato, geralmente filtrado nos grupos de discusso]. Hackers tem boa memria -- pode levar anos antes que voc se reabilite o suficiente para ser aceito. Outros Recursos O Loginataka tem algumas coisas a dizer sobre o treinamento e a atitude adequados a um hacker de Unix. Eu tambm escrevi A Brief History Of Hackerdom. Peter Seebach mantm um excelente Hacker FAQ para gerentes que no sabem como lidar com hackers. Eu escrevi um documento, The Cathedral and the Bazaar ("A Catedral e o Bazar"), que explica muito sobre como o Linux e as culturas de open-source software funcionam. Perguntas Freqentes Q: Voc me ensina como "hackear"? Desde que publiquei essa pgina, recebi vrios pedidos por semana de pessoas querendo que eu "ensinasse tudo sobre hacking". Infelizmente, eu no tenho tempo nem energia para isso; meus prprios projetos hackers tomam 110% do meu tempo. Mesmo se eu fizesse, hacking uma atitude e uma habilidade na qual voc tem que basicamente ser auto-didata. Voc ver que, embora hackers de verdade queiram lhe ajudar, eles no o respeitaro se voc pedir "mastigado" tudo que eles sabem. Aprenda algumas coisas primeiro. Mostre que voc est tentando, que voc capaz de aprender sozinho. Depois faa perguntas aos hackers que encontrar. Q: Onde eu posso encontrar hackers de verdade para conversar? Bem, no no IRC, com certeza -- l s existem flamers e crackers. A melhor maneira encontrar um grupo de usurios local de Unix ou Linux, e freqentar as reunies (voc pode encontrar links para vrias listas de grupos de usurios na pgina da LDP em Sunsite). Q: Que linguagem devo aprender primeiro? HTML, se voc ainda no souber. Existe um monte de livros sobre HTML lustrosos, modistas e ruins por a e, infelizmente, pouqussimos bons. O livro de que mais gosto HTML: The Definitive Guide. Quando voc estiver pronto pra comear a programar, eu recomendaria comear com Perl ou Python. C realmente importante, mas muito mais difcil. Q: Mas o open-source software no deixar os programadores incapazes de ganhar a vida? Parece improvvel -- at agora, a indstria de open-source software parece estar criando empregos ao invs de tir-los. Se ter escrito um programa ganho econmico em relao a no t-lo escrito, um programador ser pago independentemente de o programa ser livre depois de feito. E, independentemente de quanto open-source software feito, sempre parece haver mais demanda por aplicaes novas e personalizadas. Q: Como eu comeo? Onde posso pegar um Unix livre? Em outro lugar da pgina eu inclu ponteiros onde pegar o Linux. Para ser um hacker voc precisa de motivao, iniciativa e capacidade de se educar. Comece agora... --------------------------------------------------------------------------------

ass:gato-bravo-e-brasileiro

Nenhum comentário: