Marco Gomes

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

Textos marcados como ‘aplicativo’

Não há jeito errado de usar o Twitter

Publicado em 2009-04-01, 11 comentários

Eu tenho medo do mesmo Ontem o @crisdias fez um ótimo post sobre uso de Twitter (não sabe o que é Twitter?), ele critica quem segue muito mais de 1000 pessoas, segundo ele recebendo mais ruído que mensagem, @graveheart complementou fazendo uma analogia do Twitter com um bar. Eu desconcordo de ambos, concordo com seus argumentos, mas discordo da premissa. Explico.

Antes do assunto, quero dizer que conheço ambos pessoalmente, são meus amigos pessoais, a crítica que vou fazer não é a eles (pessoas) e sim a seus argumentos. Não estou gerando flame, eles sabem disso, se alguém acha o contrário é porque não nos conhece.

Eu, pessoalmente, concordo que seguir mais de 1000 pessoas é, na maior parte dos casos, uma prática ruim. Você vai receber toneladas de mensagens, perdendo uma das vantagens do Twitter que é a instantaneidade e proximidade com quem você segue. Em que outro ambiente eu posso saber, em tempo real, o que a Demi Moore[bb], ela, de verdade, sem RP ou paparazzi como intermediário, está fazendo, pensando e planejando? Só no Twitter. Portanto, concordo com os argumentos de @crisdias e @graveheart, seguir muita gente não é o melhor uso da ferramenta.

Mas, a premissa é que o Twitter é um ambiente social, portanto, deve ser usado e moldado por pessoas (duh!). Vamos deixar as pessoas usarem livremente, impor regras só atrapalha a riqueza do ambiente.


(foto de Manoel Netto)

Há quem acompanha tudo de todos que segue, como se fossem blogs; há quem entra, interage e sai, como se fosse um bar; há quem use só pra conversar com amigos, como se fosse instant messenger; há quem só poste links de artigos interessantes que encontra, como se fosse um Digg; há quem dê suporte a usuários de seus serviços; há quem diga a previsão do tempo, situação do trânsito; há quem escreva versos, microcontos; há inúmeros outros usos. Qual desses é o jeito certo? Quem está errado?

O Twitter é um ambiente novo, acho que não há jeito certo de usar, e mesmo que haja, precisamos quebrar as regras e subverter o sistema :)

E isso não se aplica somente ao Twitter, outros ambientes como o Orkut sofrem o mesmo tipo de modificação por seus usuários. O Orkut deixou de ser uma rede onde o foco era a organização em comunidades, a comunicação ponto-a-ponto ganhou importância, forçando os recados e fotos a terem mais peso nas interfaces. Com as pessoas colocando anúncios de festas e frases de parachoque de caminhão no lugar do Nome e Sobrenome surgiu o campo de “status” que há em todo profile, ainda subutilizado pelos usuários.

P310808_17.03 Todas essas maneiras de usar Twitter, Orkut, a Internet, e o próprio computador pessoal, foram criadas pelos usuários, se todos seguirmos uma regra de conduta que, hoje, parece ser de bom tom, poderemos frear uma evolução. Portanto, eu não acredito e não apoio imposição de regras em aplicativos sociais, principalmente em um como o Twitter, em que você escolhe nominalmente quem influencia seu ambiente.

Digo isso porque eu mantenho alguns serviços e aplicativos na Web como Wallpapr, AdBird e boo-box, e sei, da melhor maneira, que os usuários usam esses ambientes de formas que o criador não espera.

@marcogomes no Twitter.

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.

Nova geração de aplicativos que rodam no navegador

Publicado em 2008-06-25, 19 comentários

Se você já conhece a história das aplicações ajax[bb] e sabe o que é um framework[bb] pule direto para a novidade.

No início eram trevas

As primeiras aplicações Web tinham interatividade mínima, estavam no velho modelo clica, recarrega, clica, recarrega. Isso porque o navegador só requisitava dados do servidor no momento de abrir a página, qualquer nova informação que não estivesse no documento desde o início exigia uma recarga da página. Trevas.

Então veio o AJAX

O AJAX é uma maneira de carregar e enviar dados sem necessidade de reload, aplicações como Meebo e boo-box fazem uso dessa tecnologia pra trocar informação com o servidor sem precisar de um reload no documento. O Meebo carrega novas mensagens do chat, o boo-box carrega os produtos, tudo sem necessidade de reloads constantes.

Pra facilitar o desenvolvimento de aplicações que usem AJAX, surgiram as primeiras bibliotecas e frameworks JavaScript.

O que é uma biblioteca de software?

Biblioteca é uma coleção de subrotinas usadas pra desenvolver software. Bibliotecas contém código e dados, que provêm serviços pra programas independentes.

Tradução livre de Wikipedia: Library (computing)

O que é um framework de software?

Um framework de software é o esqueleto de uma aplicação que pode ser customizada por um desenvolvedor de aplicação. Como as bibliotecas de software, ele ajuda o desenvolvedor por conter código-fonte que resolve problemas específicos e contém uma API simples. No entanto, enquanto bibliotecas de software atuam como escravas de outros programas, frameworks de software invertem o relacionamento mestre-escravo. Essa inversão, chamada Inversão de Controle, é a essência de frameworks de software.

Tradução livre de Wikipedia: Software framework

Os aplicativos rodando no navegador que imitam aplicativos nativos do sistema operacional

Tela da aplicação 280 Slides

Mesmo com o desenvolvimento do AJAX, ainda é extremamente difícil desenvolver aplicações que rodem no navegador e funcionem de maneira fluída, como se fossem aplicações desktop. As dificuldades são inúmeras: interpretação de código entre as diferentes versões de navegadores, peculiaridades de sistemas operacionais, lentidão de ter uma tonelada de código rodando no browser que é monoprocessado (monothread), problemas intrínsecos na linguagem utilizada, seja JavaScript, ActionScript ou qualquer outra.

Frameworks pra desenvolvimento client-side

Os primeiros frameworks e bibliotecas para criação de aplicações no navegador corrigiram vários dos problemas citados, Google GWT, Yahoo UI e Ext.js corrigem incompatibilidades de navegadores, compactam código pra agilizar a carga da aplicação, otimizam o código pra que o mesmo não trave o navegador, corrigem erros de estruturais do JavaScript. Mesmo assim aplicações desenvolvidas nessas tecnologias sempre ficam um passo atrás das aplicações desktop, a interatividade é, quase sempre, mais crua que em um programa nativo do seu sistema operacional.

Isso acontece porque programar mecanismos de copiar/colar imagens, histórico de ações pra usar no desfazer (control + z), controle de arrastar e soltar vídeos, pode tomar muito tempo do desenvolvedor. O caminho mais prático a curto prazo é simplificar a aplicação, empobrecendo a experiência de interatividade do usuário pro velho modelo clica, espera, clica, espera. Mesmo que o “espera” seja esperar o AJAX e não a recarga da página, o modelo de interatividade é o mesmo: clicar, aguardar o servidor processar os dados e responder, clicar, aguardar…

A segunda geração de frameworks para desenvolvimento client-side

Alguns meses atrás Joel Spolsky usou a história dos aplicativos desktop pra profetizar o caminho do desenvolvimento de aplicativos rodando no navegador:

Então, se a história se repete, nós podemos esperar algum tipo de padronização de interfaces AJAX do mesmo jeito que tivemos com Microsoft Windows. Alguém vai escrever um Kit de Desenvolvimento de Software que você poderá usar pra criar aplicações AJAX com elementos de interface com usuário que funcionem entre as aplicações.

Joel Spolsky em Strategy Letter VI.

Tela de aplicação feita em SproutCore

A partir do segundo semestre de 2008 começam a surgir esses novos Kits de Desenvolvimento de Software. Objective-J, Cappuccino e SproutCore vêm pra mostrar que é possível ter aplicações ainda mais impressionantes que o Gmail ou o Meebo rodando no seu navegador, sem precisar instalar nada (nem plugin de Flash).

Com eles é possível fazer aplicações inteiras que rodam no navegador com pouca, ou nenhuma, interação com o servidor. Se o processamento pode acontecer na máquina do cliente, o servidor pode se preocupar apenas com o que só ele faz: consolidar e armazenar. Com isso toda a arquitetura de servidores e aplicações Web pode ser repensada, finalmente aproveitando, de verdade, o incrível poder de processamento dos computadores pessoais atuais, sejam eles Asus EEEs[bb], iPhones ou MacBooks e deixando pros servidores apenas o trabalho de consolidar dados de diferentes máquinas e armazená-los.

MobileMe, o novo produto Apple de integração de calendário, e-mail, contatos e fotos entre diferentes computadores, tem versões que rodam no navegador, é o Apple Mail, Address Book, iPhoto e iCal no seu Firefox, tudo feito com SproutCore.

Tela de Terminal com mensagens de Mongrel rodando aplicação SproutCore

Eu fiz alguns testes com SproutCore e fiquei impressionado. É como desenvolver uma aplicação Rails ou MERB: você cria projeto, models, views e controllers, roda o Mongrel como servidor de desenvolvimento na sua máquina, desenvolve a aplicação e depois faz o build, que gera apenas arquivos XHTML, JavaScript e CSS pra serem colocados no servidor. É JavaScript[bb] feito gente grande.

280 Slides é, até agora, o mais impressionante exemplo da nova leva de aplicações que está para surgir. Ele tem recursos como copiar/colar elementos gráficos, desfazer (control + z), renderização de imagens e elementos gráficos, tudo gerenciado pelo Objective-J, um framework JavaScript que imita o Objective-C, no qual são feitas as aplicações de Mac OS X. Veja uma apresentação de exemplo.

Abra o site do 280 Slides, clique em Try Now e experimente um pouco a aplicação, perceba como tudo funciona de modo macio, como se fosse uma aplicação desktop, mas rodando no navegador. Você não precisou instalar nada pra ter uma cópia do Apple Keynote rodando no seu Windows :)

Leitura recomendada:

Webriga Brasil, O Grande Dragão Branco aplicado à Web

Publicado em 2008-06-09, 9 comentários

Webrigabrasil

Eu e o Mauricio desenvolvemos uma aplicação usando Django (Python[bb]) e Google App Engine, com o objetivo de testar essas ferramentas e descobrir suas fraquezas e superpoderes pra usar futuramente em projetos mais ambiciosos.

Criamos o Webriga Brasil, O Grande Dragão Branco aplicado à Web, um combate de serviços online em que duas aplicações são exibidas na tela e você escolhe a que mais te agrada. Não é inédito nem boa idéia, existem dezenas de variações disso por aí, só criamos uma com vários serviços usados por brasileiros.

Use a aplicação e nos diga o que achou .o/