Marco Gomes

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

Textos marcados como ‘ajax’

Wallpapr, seja alpha tester dos novos recursos

Publicado em 2008-07-25, 18 comentários

Wallpapr Logo

Em novembro de 2006 eu lancei o Wallpapr, um buscador de papéis de parede legais que procura imagens no Flickr. Essa experiência me rendeu uma ótima história e o conhecimento adquirido fez com que eu tivesse capacidade técnica pra construir o protótipo da boo-box alguns meses após.

Ontem resolvi aprender programação server-side (PHP[bb]) pra valer, vou implementar algo até o fim. Essa noite fiz um gerenciador de usuários pro Wallpapr e o primeiro recurso é a lista de wallpapers favoritos.

Pra testar

  1. Crie seu cadastro
  2. Faça o login
  3. Faça uma busca por wallpapers
  4. Adicione alguns à lista de favoritos clicando no ‘+fav’ sobre o thumbnail (talvez você precise recarregar a janela para ver os links)
  5. Veja os favoritos listados no seu perfil

Falta muita coisa, não é possível nem deletar um favorito, está tudo muito cheio de bugs porque estou aprendendo ainda. Quando estiver mais usável e com menos falhas coloco o link “cadastre-se” na interface principal da ferramenta, até lá fica apenas em alpha test pra quem quiser experimentar.

[update 2008-07-25] Havia um erro para computadores sem Firebug, foi corrigido.

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

Wallpapr – Nova versão

Publicado em 2007-09-18, 13 comentários

Está no ar a nova versão do Wallpapr, o meu serviço que busca de papéis de parede legais no Flickr.

Wallpapr

Resolvi refazer o serviço porque saiu uma nova versão do jQuery, a melhor biblioteca JavaScript que há, eu precisava testá-la. Queria também matar minha sede por simplificar interfaces, arrancando tudo quanto é elemento supérfluo.

Depois de algumas horas de briga com os Internet Exploders, saiu o que você pode conferir em http://marcogomes.com/wallpapr/en/

Principais novidades:

  • Interface novinha em folha, bem mais simples e com menos elementos.
  • Animações JavaScript pra todo lado.
  • Feito com jQuery e não mais prototype.js e script.aculo.us.
  • Maior velocidade no resultado das buscas, já que não há mais o proxy rodando no servidor, graças ao… (próximo item)
  • uso da técnica JSONP, que acessa a API do Flickr diretamente pelo JavaScript, sem necessidade de programação server-side.
  • Não funciona no Opera Browser
  • Não tem Google AdSense

É importante salientar que, graças ao novo jeito de carregar JSON do jQuery, o Wallpapr não tem nem uma linha de código rodando no servidor, acesso a API do Flickr é feito diretamente pelo JavaScript rodando no cliente, graças à isso posso continuar mantendo minha saudável aversão à programação server-side \o/

O Cliente na Web 2.0

Publicado em 2007-06-18, 12 comentários

Quando comecei a fazer sites, no já distante ano de 1998, eu era o famigerado “sobrinho”: um pré-adolescente (não tinha espinhas na cara nem óculos) que fazia sites por dinheiro suficiente para um final de semana de curtição, algo como 200 reais.

Naquela época, os clientes pediam recursos muito comuns, coisas que eles viam em outros sites e achavam que seria interessante ter no site da sua empresa. Esses recursos eram sempre os mesmos, alguns que eu lembro agora: chat; notícias, apresentação em Flash, menu vertical à esquerda.

O problema com isso é que os sites eram todos cópias, com os mesmos elementos, e salas de chat sempre vazias… O recurso tecnológico era empregado simplesmente por “ser possível” e não por ser necessário. O chat era colocado não porque existiam pessoas interessadas em discutir o assunto, era colocado simplesmente porque o chat do UOL era legal e nós podemos ter um igual!. O cliente não notava que o mais importante no chat do UOL era sempre ter muitas pessoas nas salas, o que não aconteceria no site com 10 visitantes diários da fábrica de embalagens em PVC.

Hoje a entidade Cliente ainda existe (ainda bem), e pensa do mesmo jeito, mudaram apenas os recursos que os sites “precisam” ter: estrelinhas de votação, AJAX, RSS, mashup de qualquer coisa.

Os sites já não são cópias visualmente, mas conceitualmente continuam sendo. As estratégias continuam na mesmice: vídeos “virais”, comunidades “plásticas e jabazeiras” em redes sociais, blog monótono. O erro histórico se repete: não usa-se o recurso por ele ser necessário e enriquecedor, usa-se por ser possível. Não importa se a comunidade Eles perguntam, elas respondem é um sucesso por ter um tema que instiga as pessoas a interagirem, o importante é que nós podemos ter uma comunidade nessa rede social e atingir 8 milhões de pessoas! ou nós podemos ter nossa própria rede social, cujo tema é: cultura da cerveja. E tudo na rede social é relacionado à cerveja! e lá vem mais um cliente achando que é gênio da estratégia na Web 2.0.

Satirizando a tabela do O’Reilly
Cliente 1.0 Cliente 2.0
Chat vazio Social Networking vazio
“Cadastre-se” ultra-detalhado RSS de qualquer coisa
e-commerce com teias de aranha loja em plataforma externa (Americanas, Mercado Livre, Amazon etc.)
Site cópia de panfleto Site mashup “coisas Web 2.0″
Noticias irrelevantes Blog corporativo irrelevante e abandonado
Apresentação em Flash *qualquer coisa* em AJAX
Atendimento on-line Google Maps mostrando a localização da empresa

Não estou, de maneira nenhuma, dizendo que qualquer um dos recursos acima apresentados são ruins, são só ferramentas, não podem ser ruins ou boas, tudo depende do uso. O que não pode ser permitido é que o cliente entube sua decisão de desenvolvedor e ignore sua experiência, se o blog corporativo dele vai ser abandonado às traças após meia semana, por que fazer?

Você não pode, nunca, fazer algo ruim só porque alguém está te pagando, esse tipo de atitude além de anti ética traz recompensas desagradáveis. Pense sempre nos resultados, se você estiver sempre envolvido com ações de resultados pouco satisfatórios, sua recompensa à longo prazo dificilmente será boa.

[update] O Gilberto Jr fez um texto que complementa MUITO BEM esse aqui, continue lendo pra ter conselhos de como lidar com esse Cliente 2.0. [/update]