Command line freaks

Eu comecei a programar no colégio, pois em concomitância com meu ensino médio, eu também fazia um curso técnico de desenvolvimento de sistemas. Comecei com Pascal e depois parti pra drogas mais pesadas, como Delphi. Depois da formatura, me interessei por Python e pelo Django, pois sempre gostei da área de desenvolvimento para a web. Programei por hobby, no começo, mas depois virou meu trabalho por um tempo. Profissionalmente, programei no Django por uns 8 meses, mais ou menos. Aí arranjei um emprego para trabalhar com Rails e foi aí que eu cresci na profissão. Aprendi um monte de coisas novas, muitas delas vou levar pra minha vida. Depois de um tempo, voltei pra Caxias do Sul e agora estou aí, à procura de vagas pra trabalhar, principalmente com webdev.

Na escola, usei por 1 ano o Turbo Pascal para fazer meus exercícios de programação. Ou seja, era um aplicativo que rodava (na época) no Windows 98 e era fullscreen, usando apenas os atalhos padrão do DOS. Delphi 5 rodava com interface gráfica, o que pra mim foi um alívio. Eu não conhecia o Linux e só vi mais ou menos como era, quando circulava um CD “inicializável” do Kurumin pela sala de aula.

Sempre tive dificuldade em memorizar coisas com decoreba. Me deparar com uma tela preta, um cursor piscando e, como se ele pudesse indagar “e aí, vai fazer o quê?”, sempre foi desmotivante pra mim. Eu ficava constantemente tentando me lembrar do maldito comando que queria executar, e não conseguia. Tentava me lembrar que comando servia para abrir o “help”, e também não me lembrava. Hoje, depois de usar o Terminal e o Command pra programar com o Django e com o Rails, eu sei. Depois de usar Linux por um longo período e também depois de ter adquirido um MacBook, eu sei. Porém antes, sempre foi um tormento e uma frustração muito grande.

Atualmente, usar o Terminal ou o Command não me intimida mais e nem me causa tanto desconforto. Entretanto, eu prefiro sempre que possível, ter uma interface gráfica pra lidar com o que eu preciso. Acho mais confortável poder clicar ou seguir uma árvore de um menu. Acho mais fácil memorizar caminhos e ações com algo que eu possa ver, que tenha formas e uma sequência que eu possa acompanhar visualmente.

Quando entrei pra computação, pensei que não sofreria preconceitos. Normalmente, as pessoas da área precisam ter a mente aberta, já que trata-se de uma ciência em constante atualização. E foi aí o meu engano…

Quando comecei a seguir os tutoriais do Django, eu instalei todo o ambiente de desenvolvimento no Windows XP. Era um sistema no qual eu me sentia confortável pra usar, em meados de 2006. Como não vi problema algum, fiz todos os exercícios propostos, depois inventei alguma implementação simples e coloquei a mão na massa. Surgiram alguns problemas que não eram cobertos pelo tutorial, e então decidi sair pedindo ajuda pra quem eu achei que poderia saber.

-“Peraí. Em que SO tu está programando?”
-“No Windows XP. Porquê?”
-“Aí está teu problema. Nada funciona nesse SO, troca ele por Linux e tudo vai funcionar.”

Esse diálogo sempre me incomodou. Como não iria funcionar no WinXP, se ele é apenas o sistema operacional? E mesmo que ele tivesse culpa, não percebi a grande heresia que havia cometido. Foi então que percebi que dentre os profissionais de TI, principalmente programadores, existe duas religiões bem distintas: os que programam em ambientes feitos pra Windows e os que programam em ambientes feitos pra Unix-like. Da mesma maneira que se comportam os macfags e o resto dos usuários de gadgets, os programadores se segregam e fazem deboche entre si. Não raro se ouve comentários como:

-“Ih, esse aí não pode ser bom programador se usa interface gráfica do GIT.”
-“Ah, programador de Windows! Você devia se envergonhar por usar um SO tão ruim!”
-“COMO ASSIM, TU NÃO SABE ABRIR UMA PASTA NO TERMINAL?”
-“Não confio em quem nunca usou o VIM.”
E por aí vai…

Eu não vejo porque deve haver esse tipo de preconceito. Parece que, pra entrar na “seita” de algumas linguagens de programação, eu deveria passar por um ritual de purificação intenso (ou lavagem cerebral), aceitar a doutrina sem questionar e continuar debochando e desprezando os que não se comportam da maneira sugerida. Quando fui no FISL pela primeira vez, eu não usava Linux. Quando disse que programava em Python no Windows, quase fui apedrejada, com comentários como: “Que tipo de usuária de software livre é você? Não pode programar em Windows! E como tu fez pra instalar o ambiente nesse SO? Duvido que funcione!”. E o comentário não foi dito em tom de brincadeira.

Eu acho uma besteira sem tamanho julgar um programador pelas ferramentas que ele usa, mas mais do que isso, acho um absurdo excluir e desprezar um profissional por ele ter opiniões divergentes do padrão dos demais. Atitudes infantis como essas são perdoáveis em crianças e não em marmanjos. Acho muito pior ver programadores que se acham os maiorais por usar as ferramentas de sua “seita” conforme manda o código de conduta do grupo, fazendo gambiarras homéricas em códigos de sistemas. Acho horrível ver que o ambiente está certo, mas os processos são falhos e geram retrabalho. Deplorável, ainda, é ver o programador com as ferramentas certas e a lógica esquecida no fundo de uma gaveta.

Não amo e nem odeio ter que usar o Terminal, pois ele mesmo já me salvou várias vezes. Eu o uso como a ferramenta que ele é, sem idolatrar. Essa mania de idolatrar que a maioria tem me irrita profundamente. Não sabem viver sem endeusar alguma coisa, parece que precisam ter alguma “divindade” pra adorar e oferecer sacrifícios.

Não idolatre, não discrimine e não feche a sua mente. Prefira compartilhar conhecimento, conversar (como gente) sobre o que você sabe e julga ser mais fácil para a prática da profissão. Nem tudo que você usa como ferramentas é o mais indicado pra pessoa com a qual você está há horas tentando convencer que é melhor usar o VIM e não o TextMate.

Livre-se desses velhos estigmas e liberte os outros ao seu redor.

Anúncios

Você é um fanboy?

Recentemente li um livro de H. G. Wells, chamado Uma Breve História do Mundo, que conta desde o surgimento do planeta Terra até meados da segunda guerra mundial. Nele, é possível também acompanhar a história da humanidade, as teorias de povoamento dos continentes, e principalmente, a evolução da mente humana. Quando houve o surgimento das crenças em divindades e superstições, Wells dizia que isso se devia à mente humana encontrar-se em um estágio infantil de desenvolvimento, onde tudo era atribuído à um deus ou à um evento isolado da natureza. Obviamente, assim como uma criança, os humanos daquela época não possuíam o conhecimento que temos hoje para saber o porquê das coisas, então eles atribuíam as causas a aquilo que podiam ver e entender.
As divindades tiveram um papel importante no desenvolvimento da humanidade, pois grande parte da história só existe por causa delas. Em um mundo onde se vive passando frio, fome, calor, sede e onde se passa 24h com medo de alguma coisa, ter uma divindade é como ter uma muleta: você se apóia nela para poder passar pelos momentos ruins da sua vida sem enlouquecer completamente, se achando solitário e com pouco valor pro planeta.

Esse parágrafo todo acima serve para exemplificar que essa questão de “idolatrar” vem desde o início da espécie. Esse comportamento é observável em nossos ancestrais e é visto até hoje, porém a única coisa que andou mudando foram os deuses aos quais os humanos dedicam suas oferendas. De seres como Ísis, Jeová, Cernunnos e Shiva, hoje estamos em Microsoft, Apple, Linux e Google. Como diria meu pai: “mudaram as moscas, mas a merda é a mesma”.

Até hoje eu não entendo qual é a razão de idolatrar uma tecnologia. Eu entendo porque as pessoas acreditam em divindades, afinal, eu fui obrigada a fazer comunhão e crisma na paróquia perto da minha casa. Agora, idolatrar uma empresa que te agrada só para que tu compre mais, é meio complicado. É como idolatrar a lancheria por colocar mais bacon no seu lanche, sabendo que esse bacon extra será devidamente cobrado.

Com uma frequência maior do que se espera de uma época situada no século XXI, as pessoas ainda travam batalhas acerca da defesa da estratégia de sua empresa favorita e de seus produtos. Em um mundo onde é crescente o número das pessoas que se dizem ateias, na realidade vejo apenas uma grande migração de uma religião para outra. Isso me faz pensar que a humanidade não consegue viver sem uma crença, sem algo em que possa confiar sua identidade e seu modo de vida. Por isso que a religião, isoladamente falando, se adapta conforme novas eras emergem, porque os humanos encontram novas coisas em que acreditar.

O grande problema desse fanatismo todo é o modo como ele afeta o desenvolvimento econômico do mundo todo. Eu já ouvi vários comentários como “enquanto eu trabalhar aqui, Apple não entra”, “se depender de mim, todos vão ter que se virar com o que eu comprar pra essa empresa” e ainda “Linux? Essa coisa toda capenga feita por hippies que tu tem que instalar tudo por terminal? Nem pensar!”. E assim caminhamos para um futuro onde nada se julga pela sua capacidade de ajudar a resolver um problema e sim por aquilo que a empresa representa e da forma como ela é representada pelos seus usuários.

Tecnologia é uma FERRAMENTA, não uma ideologia. Pare de olhar torto para aquele aplicativo ou para aquele computador só porque ele não foi feito pela empresa que você gostaria. Comece a julgar aquilo que você tem disponível pelo potencial de resolver a situação que você tem em mãos de forma rápida e eficaz.

Vamos tocar numa ferida agora: a Apple. Eu sou uma feliz proprietária de um MacBook Pro e um iPod. Digo que sou feliz porque esses produtos que eu comprei resolveram as necessidades que eu tinha para um computador e um player de música portátil. Mas passei uns perrengues de borrar qualquer pessoa que desenbolsou mais de 4k em ambos para tê-los. Eu os trocaria por outros de outras marcas? Não. A Apple está orgulhosa de mim por ter confessado isso? CLARO QUE NÃO. Ela está cagando pra qualquer coisa que eu diga ou faça à favor dela e até mesmo contra. Steve Jobs nunca deu a mínima pra isso, senão obviamente ele jamais teria conseguido erguer a empresa onde ela está atualmente. Ele começou a “bajular” seus clientes porque assim eles compram mais e não porque ele queria ver, necessariamente, seus rostinhos felizes e sorridentes pelas pradarias com seu iPad. Você vai me dizer que ele amava o que fazia e por isso passou boa parte da vida ganhando US$1,00 de pro labore? Pois eu te digo que ele fez essas coisas porque, assim como ele disse, gostava do que fazia. Se isso imprimia uma carinha de felicidade em você, isso era apenas consequência. Deal with that.

Você acha que Bill Gates chora todas as noites porque você fala mal da Microsoft? Ele é bilionário!!! Ele tá mais preocupado com as crianças que passam fome na África que com sua opinião insignificante. Não perca seu tempo defendendo seu Windows 7, seu Kin e seu Windows Mobile. Ou melhor, defenda, mas baseado em argumentos melhores do que apenas o seu fanatismo. Goste de uma coisa por ela ser útil quando você precisa, por não te deixar na mão quando a coisa ficar feia, por encaixar o mais próximo da perfeição enquanto solução, mas jamais porque você acha que aquilo é tão bom que merece adoração. Nada na vida merece mais adoração por você do que você mesmo. Se você quer sentir orgulho de alguma coisa, sinta de você, das suas conquistas, da forma como resolveu situações difíceis, das suas aptidões e do seu caráter. O resto (com exceção de, talvez, família) não sente orgulho de você. Não tá nem aí pra você ou pra aquilo que você gosta e idolatra. Não perca seu tempo dedicando horas do seu dia pra algo que não se importa nem mesmo com a sua existência no mundo.

É por isso que estou pouco me lixando se acham que sou macfag, se acham que sou idiota porque uso Windows 8 horas por dia no meu trabalho, se riem porque eu prefiro editor de texto à uma IDE e se eu gosto de Linux para programar. Eu sei o que resolve meus problemas da melhor forma possível, então eu estou constantemente com “a filosofia do cavalo na parada de 7 de setembro” em relação à opinião das outras pessoas nesse âmbito. E eu defendo meus argumentos baseado nas experiências que tive com cada ferramenta que eu usei, independente da empresa onde elas foram feitas. O mundo já está superlotado de babacas fanáticos, portanto não seja mais um deles. Seja autêntico, seja inteligente e seja, automaticamente, feliz.

Vida de Nerd – Editores de Texto ou IDEs???

Olá pessoal!

Nesse tempo fiz umas pequenas análises e tal e andei vendo algumas IDEs e Frameworks para desenvolvimento.

Ultimamente trabalhando com editores, frameworks e IDEs, desenvolvendo algumas coisas em java (não que me orgulhe disso), ruby, COBOL (sabendo que a POG do COBOL é POGOBOL =P) e por último o Progress, desssa mesma forma andei analisando essas linguagens, percebi que o pessoal que trabalha com programação usando editores de texto juntamente com o terminal (modo hardcore de desenvolvimento) tem uma facilidade maior de se adaptar com outras linguagens, ambientes e coisas do gênero.

Por exemplo, se pegar uma pessoa que trabalha constantemente no Pogress e coloca-la para programar em C ou Python, essa pessoa vai se perder terrivelmente pelo fato de que o processo de desenvolvimento é bem diferente. Programação orientada a IDE, pessoalmente eu acho terrível. Eu acabo perdendo performance em clicar em botões, arrastar e tal. Ficar procurando opções então nem se fala… Nessas horas sinto falta do bom e velho terminal para executar tudo pela linha de comando. No meu Mac um dos “programas” que mais uso é o terminal. =P

Uma IDE, muitas vezes, acaba limitando ou alterando sua forma de pensar na hora de fazer algum programa. Exemplo: “Ah, só arrasto umas coisinhas aqui, conecto essa ferramenta do banco ali, faço essa conexão aqui e tá feito meu cadastro”. Bom, sinceramente esse não é meu mundo e nem como eu penso. Talvez seja vício do COBOL, pois esse me criou mais umas pencas de pêlos pelo corpo. =P

Eu tenho uma mania de funcionamento dos programas, saber como ele funciona, quais os processos que ele executa, como trata os dados e tal. Coisas muito obscuras e prontas, mesmo muitas vezes serem mais fáceis de usar, para quem aprende, é necessário que se saiba o que, por exemplo um ArrayList do java está fazendo por trás, para saber como usá-lo de forma correta.

Pessoalmente prefiro implementar algo em editores de texto, pois são extremamente mais leves e te deixam completamente mais integrado no sistema que com uma IDE. Só dar uma olhadinha no VI, Gedit ou TextMate. Os editores de texto exigem mais atenção no que está sendo feito, pelo fato de que ele assume que você está no comando e que você sabe o que está fazendo. Isso gera mais responsabilidade no que está sendo feito, e portanto o desenvolvedor possui uma evolução mais alta. Além disso, qualquer merda que tu fizer ali, vai executar, ou simplesmente vai aceitar que vai ser feito. Acredito que seja por esses pontos que o pessoal prefere usar IDEs, para evitar esses cuidados a mais que precisa ter, pois ele te corrige, avisa o que não está de acordo e em alguns deles, compilam o código em tempo de execução.

Algumas IDEs são muito complicadas de se aprender, ou limita a visão do programador, referente ao sistema. Por exemplo, agora em Progress, estou usando uma IDE para desenvolver, que me limita a visão das funções a apenas um processo/função/método por vez. Isso faz com que eu perca a visão macro do programa, onde posso ter variáveis repetidas, processo com retornos errados, utilização de algo que não seja a melhor forma e muitos outros pontos. Isso sem contar que em vez de programar em Progress, eu movimento botões e mexo nas propriedades das coisas. Lá de vez em quando uso um select da vida! =P

Bom, analisando as IDEs em si, percebe-se que elas são muito pesadas, e que a estrutura que elas utilizam não compensam com o uso de um bom editor de texto.
Por exemplo, utilizo no Mac OS o TextMate, ou senão o MacVim (o VIM do Mac). São editores de texto que podem ser usados em qualquer linguagem, atalhos configuráveis que deixam o desenvolvimento muito próximo de uma IDE, sem o problema de gerar processos demorados e de uma forma muito mais rápida. Além claro que o carregamento e execução de um editor de texto é extremamente mais rápida que uma IDE. E o melhor de tudo, pode ser chamado pela linha de comando numa velocidade extremamente rápida. XD

Alguns dos editores bons são:
TextMate: Um excelente editor de texto para programar em qualquer linguagem, ele aceita, por exemplo, Ruby, Ruby on Rails, Python, Java, JavaScript e muitas outras. Mas esse é um editor pago, mas que vale muito a pena o investimento. É um editor exclusivo para Mac. É a única limitação que achei nele! =P
Link TextMate

Komodo Edit: Este é um editor de texto free, semelhante ao TextMate, um pouquinho mais pesado, mas muito bom também. Ele não possui algumas das funcionalidades do TextMate, mas possui um auto-completar bom e semelhante ao do NetBeans.
Link Komodo

MacVim / Vim: Esse é o velhinho da família. Um editor completamente diferente, possui cerca de 20 anos (mais ou menos), tem um funcionamente bem diferente, já vem instalado no Linux e Mac. Ele cru já é um sistema muito bom, mas instalando alguns plugins ele se torna um editor totalmente competente e equivalente ao TextMate. Dá para compará-lo diretamente com o TextMate e até mesmo a uma IDE sem problema nenhum. Com a prática do uso e do entendimento do funcionamento dele, se torna mais produtivo que uma IDE. E o melhor, pode ser instalado em qualquer sistema
Link MacVim ou Link VIM para demais sistemas.

NotePad++: É uma versão mais completa do NotePad, mas voltado para o desenvolvimento. Para editar alguns códigos fonte, seja qual for a linguagem ele é muito bom. Esse não mexi muito, mas aparentemente é uma boa opção para editor de código. Ele possui uma versão portátil também.
Link NotePad ++

EditPad Pro: Mexi muito pouco nesse também, mas é uma opção boa para programação.
Link EditPadPro

Por hoje é só pessoal!

A qualquer hora apareço por aqui mostrando mais coisas desse mundinho de garoto de programa. =P

Até mais!

Vida de Nerd – Segurança de dados

Primeira coisa que eu gostaria de dizer: eu não vou defender SO nenhum, de nenhuma espécie, cor, raça, credo ou existência.

Segunda coisa que eu quero muito dizer: você é xiita? Feche a janela e não me aborreça.

Nesse texto eu já quero começar causando e tocando na ferida de todo mundo. Nessa minha estrada como técnica de laboratório de informática e como prestadora de suporte (pelos últimos 6 anos), eu presenciei e constatei o seguinte fato: o pior inimigo do SO é o usuário. Não adianta vir de mimimi, vocês sabem que é verdade.

As maiores reclamações de vírus que eu ouço desde que comecei na informática era “e aí eu fui abrir um póuer póinti do meu amigo e depois meu computador não ligou mais. O que tu acha que pode ser?”. Então, como uma visão do capeta, ele tenta responder calmamente às perguntas:

-Então você abriu o anexo e depois o computador começou a se comportar de maneira diferente? – Já pensando em quanto tempo aquele vírus deveria estar ali.
-Sim, mas eu não fiz nada de errado, não é? – diz o usuário no auge da sua “inocência”.
-Aparentemente não. Mas você tinha seu antivírus atualizado? Tinha também um anti-spyware instalado? E você costuma rodá-los no seu micro com uma certa frequência semanal? – diz o técnico, prevendo a resposta.
-Mas o que é antivírus? E pra que serve esse outro programa que tu falou antes? Eu tenho que baixar? Meu filho nunca instalou essas coisas no meu computador.

Então, como uma visão dos portões do inferno, o técnico para de respirar, tem calafrios e espamos leves no corpo. Se recompõe e desiste de explicar, pois sabe que mandá-lo acessar o Superdownloads ou o Baixaki só vai confundir mais ainda a cabeça do usuário. E pior ainda, talvez tenha que dar seu telefone para fornecer HORAS de suporte técnico de graça pra esse folgado. Sabe que, no final das contas, pra evitar o estresse e a incomodação, ele já recomenda:

-Formate seu computador. Ligue para um técnico que você conheça e mande ele formatar.

Antes de mais nada, não estou discutindo ética. Nem quero saber a sua opinião sobre ética. Guarde-a para você e a demonstre num texto sobre ética. O título deste texto claramente descreve sobre o que ele se trata.

Ou seja, se o usuário não tivesse sido uma anta, tivesse seu antivírus em dia e soubesse como usá-lo, não haveria tantos problemas. Hoje muitos desses programas maldosos rodam COM A PERMISSÃO do usuário. Não é como se ele se instalasse sozinho. Ele pede para ser executado. Educadamente. E você tem a opção de executá-lo ou não. Ou seja, é como se quem faz este software estivesse peidando na sua cara e você estivesse agradecido com isso. Não há nada pior de lidar do que burrice. E sabe porquê eu chamo de burrice? Porque todos os dias há artigos escritos em todos os sites de mais comum acesso (Terra, UOL, Capricho, etc) falando dos perigos de vírus, dos meios de evitá-los, de como você deve se comportar mediante sites de procedência duvidosa, etc. É como você simplesmente descartar a camisinha porque AIDS só pega nos otários. Sem se dar conta de que você possa ser o otário da vez.

Todos os SO tem vulnerabilidades. Faz parte, pois não há como entrar na mente de todos os nerds desocupados do mundo e imaginar qual brecha de segurança ele irá explorar para invadir o seu sistema. A equipe prevê as brechas óbvias, algumas mais espertas, outras tantas improváveis e para por aí. E algumas só são descobertas depois de muito tempo ou quando algum destes nerds ganha notoriedade num site qualquer por aí, por ter invadido em 0,005s um SO por uma brecha obscura num navegador aleatório. Você nem sempre pode culpar o SO pelas vulnerabilidades, se você deixa as ameaças te atingirem. Usuários de Linux e MacOS tem uma proteção maior porque além do MacOS ainda não ser um sistema tão visado quanto Windows, o Linux não é qualquer zé mané que usa. Normalmente são usuários avançados que sabem onde devem clicar e principalmente O QUÊ devem rodar. Tirando isso, você pode ferrar até mesmo um Open Solaris da vida, se você for bastante retardado. Só digo que, pra fazer isso com um SO que não seja Windows, você tem que ser tão retardado quanto o complemento da popularidade dele no mundo. Pra explicar (porque eu até estou de bom humor), se um SO tem 0,005% de notoriedade em downloads ou em micros instalados, você precisa ser 99,995% idiota o bastante para ferrar com ele. Mas se você se encaixar nessas porcentagens, provavelmente você só sabera usar (bem mal e porcamente) Windows XP. E sabemos que para acabar com o Windows, basta ter meio cérebro. Ou nem isso.

Quero dizer que ignorância não me incomoda, afinal, nem todos são obrigados a saberem de tudo. Mas é inadmissível que usuários de PC e Mac não saibam (até hoje) que não devemos rodar tudo que brilha na tela. Not everything that shines is gold. Mostly is shit! Assim como hoje é incompreensível que pessoas coloquem camisinha em vassoura atrás da porta como simpatia pra não pegar AIDS, é ainda mais difícil aceitar que usuários da informática não saibam se precaver contra vírus e softwares maldosos. Os artigos sobre isso estão publicados não somente na internet, mas em revistas e jornais. Muitos são divulgados na TV e até mesmo no rádio. É só acessar, ler e assimilar. O quão difícil isso pode ser, ó Bagre, senhor dos técnicos perdidos? Será que no inferno eles sabem usar a internet? Se sabem, me mandem para lá, pois aqui eu já sei que não sabem e nem querem saber.