Marco Gomes

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

Textos marcados como ‘programacao’

Sobre a infra de servidores Web da boo-box

Publicado em 2009-05-29,

Eu e o Mauricio escrevemos um texto explicando um pouco da infraestrutura de servidores Web do Sistema boo-box, publicado no blog da boo-box, abaixo um trecho:

A boo-box possui uma infraestrutura em camadas, capaz de escalar horizontalmente e que hoje tem robustez pra servir milhares de requisições por minuto. Neste post iremos apresentar algumas soluções usadas atualmente pra garantir melhor performance do Sistema de Publicidade Para Mídias Sociais.

Leia tudo no boo-blog.

diagrama de infraestrutura dos servers Web do Sistema boo-box

Comentários fechados pra este post, comente no post original.

Meu projeto vale a pena?

Publicado em 2009-03-04, 8 comentários

Generalizando ainda mais, você pode se perguntar:

Devo continuar tentando resolver este problema desta maneira?

É muito comum que desenvolvedores passem batido por esta questão. O piores programadores acham que a primeira abordagem que encontram é a única maneira de resolver um problema.

Se você já se fez alguma das perguntas acima, ótimo, não sei se há resposta definitiva, mas vou mostrar como eu me respondo.

Estabeleça um prazo e trabalhe com toda a sua energia até lá, depois faça uma estimativa da distância que se encontra do objetivo final, e se vale a pena continuar trabalhando no projeto.

Prazo claro e inadiável

Durante o desenvolvimento dos meus projetos de uma madrugada (insôniaware), eu seto uma meta: 8 am vou parar de trabalhar neste projeto. Não importa o que estará pronto, eu vou parar. Se houver algo funcional, vai pro ar, se não é útil ainda, vai ter seu desenvolvimento interrompido por algumas horas pra que eu reflita um pouco.

Você pode estabelecer um limite de um mês pra tocar profissionalmente um projeto pessoal[bb], ou uma semana trabalhando diariamente com o futuro sócio. O prazo não precisa ser 8 am e a madrugada não é o único período produtivo do dia :)

Não empurre com a barriga

A maior importância desse prazo é estabelecer um momento exclusivo de reflexão, ele vai evitar que você vá “empurrando com a barriga”.

Empurrar com a barriga, porque já estava assim, fui fazendo e quando vi já estava todo enrolado são situações que sempre me deixaram frustrado. O artigo de Programação Orientada a Gambiarras (P.O.G.) da Desciclopédia define essa situação como Faca nos dentes – O famoso Vai fazendo ai!.

Definir um prazo inadiável foi a maneira que encontrei pra não deixar meus projetos saírem do controle.

Getting Real

Projetos como o Wallpapr, Busica, Wallpapr for iPhone e Webriga (que fiz com o @mauricio) eram funcionais já nessa primeira parada obrigatória e foram pro ar, com bugs, mas foram.

protótipo da boo-box, ImageDolly e AdBird não estavam funcionais neste primeiro checkpoint, o trabalho neles foi interrompido pela manhã (lembro como se fosse hoje) e era o momento de fazer uma reflexão se o projeto realmente valia a pena, e se aquela era a melhor maneira de resolver o problema.

Como você pode imaginar, tenho alguns outros projetos que nunca foram continuados, achei que não valiam a pena, ou que existiam outras maneiras de abordar o problema. Alguns ainda estão adormecidos aqui na pasta /labs do MacBook[bb] :)

Campanha: Programar é grátis!

Publicado em 2008-11-17, 89 comentários

Se você quer ser um desenvolvedor de aplicativos para Internet, webdesigner, programador, analista de sistemas web, qualquer nome que seja, lembre-se: Programar é grátis!

Você não pode esperar arrumar um estágio, ou emprego, que te ensine (de mão beijada) a ser um bom desenvolvedor. Um bom desenvolvedor se cria sozinho, nas madrugadas selvagens dos canais de IRC e grupos de e-mail.

Explico.

Como Diretor de Tecnologia da boo-box, enfrento a nada fácil tarefa de formar um time com os melhores desenvolvedores, os ninjas da boo-box. O processo de seleção é contínuo, e a maior parte das vezes me deparo com e-mails desanimadores, abaixo alguns exemplos reais, e o que pensei após ler:

Envio-lhes um pseudocodigo feito no 1º semestre da faculdade.

Que eu saiba, pseudocódigo não roda em nenhum computador. Bunda mole.

Tanto em PHP quanto em Java Script só oque eu vi na faculdade , mais nada que eu não consiga aprender , até porque a base eu ja tive na faculdade.

Pra começar: JavaScript[bb] é escrito junto, e se você teve a base na faculdade por que não gastou umas horinhas aprendendo “o restante” em casa? Bunda mole.

Coloquei somente 2 exemplos que consegui achar, pois meus códigos na Bolsa estão restritos.

Seu trabalho é supersecreto? Então contribua pra um projeto de Software Livre ou faça um aplicativo em seu tempo livre. Bunda mole.

Não fiz trabalhos orientados a objeto ainda, tenho muita vontade de trabalhar com orientaçao a objetos.

Tem muita vontade? Muita mesmo? Nossa, e está esperando mudar de emprego pra aprender né? Bunda mole.

Se você já usou argumentos semelhantes aos exemplos acima, vou te revelar uma coisa: Você pode mudar sua vida, e até mudar o mundo, com o mesmo equipamento que usa pra ficar o dia inteiro no orkut trocando recadinhos com as peguetes, sério!

Listinha da alegria pra quem não lê parágrafos:

  1. Consiga um computador conectado na Internet, serve o que está usando pra ler este texto, ou qualquer outro, com qualquer sistema operacional, pode ser até um netbook como o EEE PC[bb].
  2. Crie uma conta no Google App Engine e baixe o SDK.
  3. Prepare-se pra usar intensamente um serviço de buscas e uma documentação de Python.
  4. Use bibliotecas e códigos de terceiros no início, comece com humildade e vá se aprofundando com o tempo.
  5. Invista algumas madrugadas desenvolvendo aplicativos que funcionem de verdade, nem precisam ser inéditos, comece com sistemas de blog, chat, agregadores de feed…

Garanto que seguindo os passos acima você vai poder aprender muito mais sobre programação pra Internet do que qualquer graduação em Sistemas de Informação vai conseguir te ensinar.

E não precisa ser apenas com Google App Engine! Embrenhe-se no Ruby[bb], PHP[bb], JavaScript[bb], HTML[bb], Flash[bb], faça uns layouts no Photoshop, escreva um blog, melhore verbetes na Wikipédia, contribua pra humanidade de alguma maneira :)

E se você for realmente ousado, vai construir o site da empresa do seu tio mesmo sem saber como fazer, cobrará R$: 500,00 e usará uma parte disso pra melhorar seu computador ou conexão com a Internet. Foi assim que eu comecei, e a maior parte dos bons desenvolvedores de hoje também fez isso 4, 8, 10 anos atrás.

Eu sei que um computador conectado na Internet não é gratuito, tem custos, normalmente altos, o nome da campanha é “Programar é grátis” só pra causar impacto :)

Quando for mandar um e-mail tentando uma vaga pra ser desenvolvedor, escreva algo parecido com a mensagem abaixo, que também é real:

Marco não tenho muita experiência, estou buscando ela através de um estágio. Estou construindo um site e fiz um sistema de controle de gastos pessoais em PHP/MySQL. Eu adicionei um dos códigos no pastie.org. Abaixo segue o link para o arquivo.

O texto acima me deu muito mais confiança no candidato que os exemplos bunda mole anteriores, este candidato não tinha experiência, e sabendo disso, estava construindo um sistema simples em PHP e MySQL pra ele mesmo usar, é assim que um ninja age.

Parabéns aos ninjas em atividade Mauricio Maia, Dirceu Pauka, Samuel Prado e Fernando Mafra ( @fmafra ). Eles são parte do time que faz tudo a boo-box continuar rodando, sempre trazendo inovação, projetando novos produtos inclusive em seu tempo livre. Porque um ninja nunca baixa a guarda emoticon ninja

[update 2008-11-17] Para ler um argumento a favor de cursos e conhecimento teórico antes do conhecimento prático, veja o comentário do Ricardo, aqui mesmo neste texto. Eu discordo do que ele diz, mas você deve ler pra julgar por si mesmo :)

AdBird – Faça anuncios no Twitter

Publicado em 2008-10-24, 15 comentários

Use o AdBird e faça anúncios de um RSS na sua conta do Twitter. Aproveite melhor o potencial da sua influência online e divulgue links de conteúdo relevante pra você. É um serviço que eu fiz nas últimas madrugadas.

comfas//

  1. Abra o AdBird, logue com sua conta Google e insira um endereço de RSS, usuário e senha do Twitter. O AdBird não tem acesso a sua senha do Google, pode ficar tranquilo :)
  2. Diga quantos Updates novos o AdBird deve esperar que você poste até enviar um anúncio

Periodicamente o /estagiario, que é o bot do AdBird, vai verificar se você já enviou novos Updates, caso você já tenha atingido o limite que configurou, o /estagiario vai postar no seu Twitter um link do RSS que você escolheu, e esperar até que você envie novos Updates pra postar novamente. A cada N Updates seus, ele vai enviar um link do RSS. Tudo configurado por você.Twitter Search de AdBird, screenshot

No futuro?

Como já pode ser visto na página de configuração, em breve o AdBird será integrado com a boo-shop, postando no Twitter os links de vitrines virtuais da sua loja, com isso a rentabilização vai ficar a apenas dois cliques do Update do Twitter.

Garantias?

É importante avisar que esta aplicação é um experimento e está hospedada no Google App Engine, portanto, não dou nenhum tipo de garantia quanto a seu funcionamento. Como usuário de serviços Google, posso prever que o serviço vai ficar no ar por um bom tempo, além disso, pretendo usar parte do meu tempo livre (que tende a zero) pra manter e melhorar a aplicação, mas não garanto nada :)

codigo fonte do estagiario

Como surgiu?

Várias pessoas se perguntam como anunciar no Twitter (ou monetizar, se você prefere o neologismo) fazendo inclusive previsões pessimitas quanto ao futuro da ferramenta. Eu, como profissional de marketing na Web, também me pergunto isso sempre, e resolvi fazer uma tentativa.

Semana passada comecei a brincar com Python[bb] e Google App Engine, resolvi fazer algo rápido, que pudesse ser útil pra mim e usasse APIs, XML e outras modernidades (já ouvi essa história antes :)

Após algumas madrugadas de esforço e muita pesquisa no Google, cheguei no que vocês podem ver e usar agora :)

Google App Engine Dashboard

Agradeço sugestões de funcionalidades e denúncia de bugs, pode enviar pro meu e-mail.