Marco Gomes

nerd veterano, interneteiro profissional, parkouzeiro amador, evangélico aprendiz, fotógrafo iniciante

Textos marcados como ‘arte’

A poesia nerd de Ernest Cline

Publicado em 2008-07-31, 7 comentários

Fanboys Poster Ernest Cline, o principal roteirista de Fanboys, faz poemas nerds[bb] muito bons e é geek.

Quem me conhece sabe que odeio poesia em geral, apesar de gostar de rap acho poemas um saco completo, mesmo assim gosto muito do estilo desse autor, sem rimas chatas e métrica entediante, com orgulho nerd, estilo old school e críticas ácidas, não ficando preso apenas em temas nerds.

Fanboys?

O filme conta a história de um grupo de amigos, fãs de Star Wars, que vão assistir a estréia de Star Wars: Episódio I[bb], no Rancho Skywalker. Provavelmente será lançado em setembro. Infelizmente o filme tem enfrentado vários problemas de distribuição e parece que nem será lançado no cinema. De qualquer forma, eu conheci o autor não por conta do filme, mas pelos seus spoken words.

Os spoken words de Ernest Cline

Spoken Word é o nome que damos a uma poesia que não é idiota. Autor desconhecido.

Ernest Cline faz os melhores que eu já li, sobre geeks, filmes pornô, videogames, ouça alguns no site oficial.

Dancem Macacos, Dancem

Dance Monkeys, Dance ficou famoso na internet por conta do curta homônimo. Fala da estupidez e prepotência humana, me alertou pra muitas das idiotices que cometemos com os outros de nossa espécie.

view video[bb]

Alguns macacos pensam
que já têm tudo feito.
Alguns macacos lêem Nietzsche
Os macacos discutem sobre Nietzsche
sem levar em consideração o fato
que Nietzsche
era só mais uma p**** de macaco.

Continua: Dance, Monkeys, Dance (en)

Sobre mulher e filme pornô

Eu quero filmes pornô que sejam feitos com caras como eu em mente:
Caras que sabem que a coisa mais sexy no mundo
É uma mulher que é mais inteligente que você.

Continua: Nerd Porn Auteur (en)

Sobre O Geek

Tá vendo, o Geek não pode esperar.
O Geek não tem paciência.
Ele quer o que ele quer quando ele quer.
E tudo que ele quer são coisas estúpidas!

Ele quer seu próprio Tardis.
Ele quer seu próprio sabre de luz.
Ele quer comprar um DeLorean e ele quer dirigí-lo a 88 milhas por hora.

Ele quer filmes.
Ele quer ver a versão do diretor.
Ele quer o a versão Japonesa impossível de achar com
6 minutos de cenas nunca antes vistas.

Ele quer ver Blade Runner[bb]. De novo.
Ele quer ver Brazil[bb]. De novo.
Ele quer ver Laranja Mecânica[bb].
De novo e de novo!

Continua: The Geek Wants Out (en)

Compre o álbum de spoken words na Amazon MP3[bb] ou no site oficial via PayPal.

Produtividade pra programadores

Publicado em 2008-04-10, 11 comentários

Algumas semanas atrás o Diego (Tableless) Eis me encaminhou uma cópia do documento sobre Produtividade que o Élcio Ferreira escreveu, onde ele fala sobre montagem de bicicletas, construção de software e qualidade de código.

Veja bem: Eu recebi o documento, de graça, pra escrever sobre ele aqui no blog, não recebi dinheiro e não alterei minha opinião só porque recebi de graça, cada palavra que você lê aqui é sincera e não pode ser comprada. Se você está incomodado com essa atitude, pare de ler o post agora e me xingue por email. É bom que eu saiba quantos leitores meus condenam este tipo de prática.

Ele fala um bocado de coisas que eu, Marco Gomes, já sei, como conceitos da Web 2.0, Padrões Web, AJAX e JSON, isso é praticamente metade do documento. É bom pra introduzir o assunto a quem está completamente fora desde mundo ou nunca trabalhou com conceitos mais modernos da Web.

O que mais valeu a pena, na minha experiência de leitura, foram os capítulos sobre Programação Pragmática, Não Repita a si Mesmo (DRY), Ortogonalidade (Desacoplamento) Tracer Code, Desenvolvimento Orientado a Testes (TDD) e Controle de Versão.

Programação Pragmática[bb] é um conceito/filosofia/mentalidade/religião que vem me conquistando cada vez mais nos últimos dias. Nas palavras do Élcio:

O programador pragmático é, antes de tudo, um inconformado e um otimista. Ele não consegue repetir dezenas de vezes a mesma tarefa sem se perguntar se há uma maneira melhor. Ao mesmo tempo, ele acredita que há maneiras melhores, e que ele pode desenvolver uma.

[...]

O programador pragmático não se contenta em conhecer uma solução, uma linguagem e um jeito de aprender a fazer as coisas.

[...]

Outra atitude do programador pragmático é a responsabilidade. Ele não se contenta em sentar-se em seu cubículo e esperar por tarefas de programação, mas entende que é parte do seu trabalho envolver-se em todo o processo de desenvolvimento.

Significa que ele nunca vai dizer coisas como:

_ Não fiz backup do código, isso é responsabilidade do departamento de infra-estrutura. (Não importa de quem é a culpa, você vai ter que fazer de novo.)

_ Eu imaginei que isso não ia funcionar, mas o cliente quis assim. Ele assinou uma aprovação para o desenvolvimento disso. (Você viu o problema e não disse nada?)

_ O framework que nós compramos não fala com as versões antigas do nosso banco de dados. (Sim, e?)

Isso é só uma pequena amostra, se você se interessou por este pequeno pedaço, compre o PDF completo.

Estes conceitos de programação pragmática e produtividade já foram usados em meu mais novo projeto, a integração boo-box + WeShow, que ainda não foi publicada mas vai entrar no ar em breve. Veja no blog boo-dojo como eu conduzi a implementação da parte client-side do projeto.

Além disso, eu também já escrevi sobre produtividade pra instruir uma equipe que eu coordenava no meu emprego anterior, é um documento bem antigo, mas que contém muita coisa boa.

Saiba mais sobre programação pragmática

Concentre-se no que não muda

Publicado em 2008-02-24, 9 comentários

O artigo abaixo foi originalmente publicado na revista iMasters número 4, de fevereiro de 2008. O conteúdo da revista está muito bom, entre vários bons textos, tem Luiz Yassuda e Gilberto Jr. Se você gostar desde artigo, compre a revista (se não gostar desculpe, mas compre a revista mesmo assim :)

O mercado da Web fascina, não passa uma semana sem que fiquemos sabendo daquele primo do amigo que ganha quantias absurdas como consultor Java, .Net ou Vignette. Revistas de negócios adoram estampar em suas capas os promissores jovens bilionários da Internet, sempre dando a entender que a fortuna foi feita sem muito esforço.

É óbvio que um mercado tão fascinante atrai muitas pessoas, normalmente gente que navega na Internet e acha que “fazer site” pode ser tão fácil quanto os cursos de banca de jornal anunciam. Inúmeras vezes me perguntaram que tipo de curso ou tecnologia deve-se aprender pra conseguir alcançar o sucesso profissional, que, acreditam eles, é ganhar quantias absurdas sendo consultor.

Java, .Net, Photoshop, Illustrator, Ruby on Rails, Django, Python, tudo isso vai passar e se tornar peça de museu. Cobol, Delphi, Corel, 3D Studio Max já foram minas de ouro nesse mesmo mercado, acredita? Você deve escolher um caminho e focar em seus conceitos; resolver problemas usando lógica[bb], se comunicar usando palavras escritas[bb], expressar idéias através de imagens[bb], despertar sentimentos só com o uso correto das cores[bb], isso é o importante.

Peguemos um caso específico: Programação.

Houve um dia, em que programar era apenas fechar e abrir caminhos em uma placa de circuitos, tudo que você podia fazer era definir o caminho do bit (isso é grego pra mim também, relaxa), hoje, as coisas estão um pouco mais elaboradas, graças a Deus. Atualmente você pode usar enormes coleções de recursos criados por outras pessoas pra ser mais produtivo, é muito comum que projetos Web da atualidade usem mais código de terceiros que do próprio programador; são os famosos frameworks e bibliotecas: jQuery, .Net, Rails, Struts, Prototype entre outros. Quem sabia apenas como fechar e abrir circuitos teve sérios problemas com a mudança da maneira de programar, quem sabia a resolver problemas lógicos simplesmente jogou ferramentas velhas fora e aprendeu a usar essas mais novas.

Abstraindo bastante, programação sempre foi a mesma coisa: Ordenar que um processador execute ações pré-determinadas após a inserção de dados, sejam estes um cartão perfurado com informações demográficas, uma palavra específica numa tela de letras verdes sobre fundo preto, um clique do mouse em uma aplicação do Facebook. Nos anos 70 as pessoas queriam programas fáceis de usar, rápidos, eficientes e baratos, hoje isso não é diferente, acho impossível daqui a 30 anos os usuários pedirem programas caros, lentos, ineficientes e díficeis de usar =)

Esqueça a água, foque-se o leito do rio

John Dewey descreve esse tipo de situação como um homem que pretende atravessar um rio, se ele ficar olhando a água, esperando esta “passar” pra, só depois, atravessar, vai esperar por toda a vida. Nosso personagem deve se concentrar no leito do rio, em atravessar a água pra chegar na outra margem.

É a percepção do que não muda que diferencia o macaco codificador do profissional que resolve problemas. Se você está entrando agora no mercado, pare e reflita: o que você sabe te diferencia do carinha espinhento que acaba de sair do curso técnico mais respeitado da cidade? E se, de repente, a tecnologia que você se especializou for substituída por uma ferramenta Livre mantida por uma comunidade de desenvolvedores apaixonados? Você vai poder “portar” os anos de experiência que já tem, ou vai jogar uma parte da sua vida no lixo e aprender tudo novamente? E daqui a 5 anos quando a tecnologia mudar novamente? Seja inteligente, concentre-se no que não muda.

Nos negócios, não construa trens, transporte pessoas

No início do século XX, as então soberanas empresas do ramo ferroviário entraram em crise financeira irremediável e quebraram, por conta da revolução dos automóveis. O mercado aprendeu: as empresas não deveriam estar no negócio de construir trens e ferrovias, elas deveriam estar no negócio de transportar pessoas. Pessoas sempre vão precisar ser transportadas, seja à cavalo, seja com teletransporte.

Empresas que se restringem a trilhos de trem, charretes, automóveis, gravações de áudio em CDs, World Wide Web, impressões em papel ou qualquer tecnologia; estão condenadas a passar maus bocados quando a mesma for substituída. Admito que tecnologias dificilmente “morrem” de totalmente, graças a isso ainda existem empresas ferroviárias, mas convenhamos que o mercado ferroviário não é do tamanho que costumava ser. Estamos vendo isso acontecer neste momento, com as dores de barriga das gravadoras de CD e a revolução da música sendo distribuída em meio digital.

Use a tecnologia apenas como um meio para seu negócio funcionar. O objetivo é transportar pessoas no seculo IX? Use trens à vapor. No sec. VI use Charretes. Hoje use motores híbridos, porque ser “verde” é a aposta pro futuro. Seu negócio é o mesmo, mudou a maneira de fazer. Se você é responsável por um negócio ou produto, pare e pense: seu negócio depende de uma tecnologia?

Não estou dizendo, de maneira nenhuma, que negócios dependentes de tecnologia são pouco-rentáveis. O petróleo deixou muita gente rica no século passado, a produção de azeite e cerâmica deixou muita gente rica na roma antiga. Porém, se você atrelar seu negócio a uma tecnologia que morra antes da empresa dar o retorno financeiro planejado, você fracassou, e diferente da roma antiga, tecnologias estão nascendo e morrendo muito rapidamente desde a popularização da Internet. Estamos prestes a uma possível nova mudança, com a centralização do tráfego da Internet em redes sociais, os websites como conhecemos hoje podem deixar de existir. Se você confiar seu sucesso na quantidade de sites existentes corre o risco de ficar pra trás quando tudo se unir em poucas (e enormes) redes sociais.

O negócio do Google é organizar a informação produzida pela humanidade, o negócio do boo-box é fazer marketing relevante, em minha opinião ambos são negócios independentes de tecnologia. E o seu negócio, qual é?

Marco Gomes dreads 2006-10 Marco Gomes é nerd; praticante de parkour; tinha espinhas até o meio do ano quando se meteu num tratamento com drogas pesadas; é diretor de tecnologia da boo-box. Escreveu esse texto na noite de uma sexta-feira, sentado no jardim da casa que mora em São Paulo.

Produtividade: Simplicidade e Foco

Publicado em 2008-01-25, 26 comentários

Em um mundo onde os prazos são curtos, os objetivos ambiciosos e os recursos limitados, como mover o mundo com apenas um ponto de apoio e uma alavanca?

Ao longo de minha experiência como desenvolvedor e líder de equipes de desenvolvimento web, aprendi que o caminho mais fácil pra produtividade é: retirar tudo que não for essencial e se concentrar no objetivo.

Simplicidade

Um artigo do Zen Habits, comentado pelo Sérgio F. Lima, diz que você deve tirar tudo que “for possível”, quando nada mais puder ser retirado, aí sim você pode começar a organizar.

Atingir a simplicidade é menos fácil do que parece, constantemente me pego discutindo sobre o porque a boo-box não deveria ter “aquele recurso tão legal”. O mesmo com qualquer outro projeto, como o Wallpapr e os novos produtos da empresa.

Ser simples sem deixar pedaços faltando é uma habilidade que venho exercitando, tirar tudo é fácil, manter apenas o necessário não. Se perguntar se a ferramenta precisa de um recurso é complicado, porque você, que é especialista na ferramenta sempre tem mais habilidade pra manuseá-la que qualquer outro usuário, logo, teria facilidade pra absorver o novo recurso. Mas pense no novo usuário, que não quer se preocupar em aprender mais uma ferramenta, ele precisa do recurso novo? Interface boa é que não exige que o usuário pense pra utilizá-la.

A simplicidade é importante na produtividade porque é retirando toda a gordura que você consegue reduzir seu projeto de modo que ele caiba no prazo. Costumo dizer que é possível entregar qualquer produto em qualquer tempo, tudo depende de quantas partes você vai retirar pra cumprir o prazo.

Foco

Um dos maiores problemas que encontro em equipes de desenvolvimento é a falta de foco. Explico: O programador pega um projeto, ao invés de começar pelo início ele vai logo fazendo o final (que normalmente é a parte que ele mais gosta), depois, faz uma parte do meio, seguido do final do início, depois faz umas coisinhas de um outro projeto e volta novamente pro projeto inicial, fazendo o final do meio, logo depois faz o início do final… O prazo acaba e o projeto está embolado, com várias partes soltas completamente inúteis e “só falta integrar o componente de controle de usuários com o gerenciamento de produtos usando um Web Service, coisa simples” mas nunca fica pronto.

Se concentrar no trabalho e esquecer o resto do mundo pode ser muito difícil pra algumas pessoas. Instant Messengers, Twitter, excesso de janelas e programas abertos, alertas em tempo real pulando na sua frente e apitando sempre que chega um e-mail ou um contato fica online, podem ser a bomba atômica da sua produtividade. Desarme-os.

Além disso você pode se pegar distraído por excesso de objetos em sua mesa, excesso de poluição visual em seu campo visual, celular apitando, pessoas conversando, barulhos de TV. É possível eliminar todas essas distrações e, mesmo que você jure que elas não atrapalham existem estudos (e minha experiência própria) comprovando que tudo influencia seu subconsciente, alterando seu estado de tranquilidade e melhorando ou piorando seu poder de concentração.

Ferramentas

Tão importante quanto limpar seu ambiente de trabalho é limpar sua mente, tenha sempre em mãos um lugar em que possa despejar qualquer idéia/tarefa que de repente pipoque em sua cabeça. Se livrar das distrações mentais na hora que elas aparecem é importante pra que você não fique se torturando: “tenho que lembrar de pagar a conta de luz, tenho que lembrar de pagar a conta de luz”.

Um dos meios que consegui pra me livrar de distrações mentais é usar a metodologia GTD do David Allen[bb], cujo princípio é exatamente este: Guarde seus lembretes em um sistema confiável na hora que eles aparecem na sua mente, assim seu cérebro fica livre pra produzir sem distrações novamente. Mas esse é apenas um dos meios, e eu nem sigo tão à risca assim. Se quiser saber mais sobre GTD pesquise na Web e compre o livro[bb].

Quando quis passar a guardar minhas tarefas em um sistema, fui testando várias ferramentas diferentes que pudessem se adaptar à metodologia GTD: blocos de papel, Remember The Milk, Things, e-mail, iGTD.

Os blocos de papel são bons se aliados a outras ferramentas, na rua usa o papel e em casa coloca num sistema digital. Se mantidos apenas em blocos de papel suas tarefas podem se perder no tempo, e pode ficar extremamente difícil achar alguma coisa após algumas semanas. Papel não funciona bem no longo prazo.

Ferramentas cheias de recursos como o Remember The Milk, Things e iGTD confundem sua cabeça, não importa se você usa Photoshop, um Home Broker ou Eclipse pra trabalhar, pra coletar e organizar tarefas a interface não pode ser cheia de botoes, modo de visualização em tabela ou lista, organizadas por prioridade, data, nome, projeto… Isso tudo só atrapalha.

Os programas supracitados funcionam muito bem pra várias pessoas, mas pra mim não deu, muita complicação me fazia querer criar a tarefa já com projeto, prioridade, data, tags, isso matava completamente minha produtividade. O recomendado é simplesmente criar uma pequena sentença que te faça lembrar o que fazer “enviar e-mail pro Navarro perguntando como estão os ganhos com a boo-box” pronto, depois eu coloco ela no projeto certo, insiro tags e prioridade, mas na hora em que lembro da tarefa só preciso guardá-la em outro lugar pra ela parar de me atrapalhar, assim volto a pensar no código JavaScript que estou escrevendo.

O melhor meio que encontrei foi o texto puro, sim, arquivinho de texto, simples, com acesso rápido na barra de ferramentas do sistema operacional. São três arquivos segundo o contexto:

  • boo-box: tarefas e projetos relacionados com o não-trabalho :)
  • marcogomes: projetos e tarefas da vida pessoal, Wallpapr, envio de coisas pelo correio, lista de compras, moradia etc.
  • check: todos os artigos que tenho que ler na Web, sempre que encontro um artigo que merece ser lido eu coloco neste arquivo, assim ele incha sem poluir meus outros contextos com artigos, esta é a maior lista.

Quando preciso anotar algo, abro o arquivo certo e anoto, mais tarde organizo.

A sintaxe dos arquivos:

Wallpapr:
- implementar permalink @done
- corrigir, how many *do* you want
- Linkar as imagens pra main photopage

Publicar diff do Zuardi:
- implementar diff http://moourl.com/b4ek8
- anunciar no blog @blog

Projetos são seguidos de dois pontos, tarefas precedidas por hífen, identação significa subprojetos, tags são inseridas no final começando com arrouba. Pronto, simples assim, nada mais.

Pra editar e gerenciar o arquivo estou usando o TaskPaper, que comprei no pacote MacHeist, facilita a edição e manipulação das tarefas sem complicar a interface. Porém, existe versão dele na Web e você, mesmo que não use Mac, pode usar qualquer bom editor de texto.

Nunca se prenda em rédeas, mais importante que ferramentas e metodologias é você se libertar das distrações e conseguir achar seu caminho para a iluminação produtiva =D