Google Pack

Seu Windows precisa ser formatado a cada oito meses? Cada vez que você troca de computador[bb] perde um dia ou dois configurando seus programas?

Depois de instalar o sistema operacional, você precisa baixar e instalar Firewall, Anti-vírus, Anti-Spyware, um navegador decente, programas para lidar com Zip, PDF, um bom visualizador e organizador de fotos, um screensaver melhor que o “voando pelo espaço” e meia dúzia de outras coisinhas?

Google Pack: o tudo-em-um-auto-atualizável do Google[bb], pode resolver seus problemas.

A idéia é genial, como quase tudo o que o Google tem feito. Assim os usuários de Windows[bb] podem ter ua experiência um pouquinho parecida com o que é gerenciar programas num bom sistema operacional.

Google, Google Pack, GooglePack, Windows, Linux

10 Lugares Aonde Você Deveria Usar Ajax

A Vanessa, que já havia traduzido o artigo do Jesse James Garret sobre Ajax[bb], traduziu mais um:

10 Lugares Aonde Você Deveria Usar Ajax, do Alex Bosworth (original aqui.)

Excelente leitura. Parabéns à Vanessa pela iniciativa.

Está escrito lá, mas eu vou recomendar aqui para que você não corra o risco de não clicar: Places to use Ajax, em formato Wiki, já evoluiu um tanto em relação ao artigo original.

Ajax, Webstandards, Usability, Usabilidade, Javascript

Django e Rails: vídeos da conferência Snakes and Rubies

Snakes and Rubies

Ocorreu mês passado em Chicago a Snakes and Rubies, conferência que reuniu Adrian Holovaty, criador do Django e David Heinemeier Hansson, criador do Ruby on Rails.

Agora o vídeo[bb] da conferência está disponível para download:
Django | Snakes and Rubies downloads

Aproveite agora e baixe por bittorrent, está bastante rápido aqui.

Estou desenvolvendo em Django todo o sistema de e-commerce e e-learning da Visie. Fiz em quatro dias coisas que eu costumava levar semanas. Logo que o sistema estiver no ar eu conto as novidades para vocês.

Web, Programming, Python, Ruby, Django, Ruby-on-Rails, Video

Web 2.0 pé no chão

A edição de janeiro da Revista Webdesign traz uma extensa e interessante reportagem sobre a Web 2.0 (na mesma revista, o primeiro de uma série de tutoriais meus sobre Ajax.) Ao mesmo tempo, Richard MacManus anuncia a morte da Web 2.0, que, na verdade, nunca existiu.

Ao mesmo tempo, falando de Ajax, surgiram o Ajah, o Ahah, o Ajat e uma série de outros “novos métodos”, todos “mais simples”, “mais eficientes” e “mais rápidos” que o Ajax.

Isso é pra confundir qualquer um, não? Calma, vou tentar explicar. Meu conselho é: esqueça o nome, entenda o que se pode fazer. Principalmente, o que pode ser feito para seu usuário.

Comecemos com o caso do Ajax. Ele permite que você carregue apenas parte de sua página usando Javascript[bb], sem precisar fazer o refresh de toda a página. Isso é fantástico, e é isso o que realmente importa, para você e para o seu usuário. O nome que você vai dar a isso realmente importa muito pouco.

Assim, se você quer usar XMLHttpRequest para requisitar trechos de XML que serão interpretados pelo Javascript, ou trechos do seu HTML, ou simples arquivos de texto, faça o que for melhor para o seu projeto. Como você vai chamar isso, realmente, importa muito pouco. Eu, por exemplo, tenho usado muito duas técnicas: requisitar trechos de HTML do servidor (que eles chamam por aí de Ajah ou Ajat) e requisitar Json (o que poderia ser considerado uma forma de Ahah.) Mas, para simplificar, chamo tudo de Ajax.

O nome realmente não importa, o que importa é que, para meus usuários, a aplicação está muito mais rápida. Então, se os nomes parecem complicados, relaxe. Se gostar da idéia, aceite minha sugestão e chame tudo de Ajax. Senão, tudo bem, não faz a menor diferença mesmo.

Numa esfera muito maior, a mesma coisa acontece com a Web 2.0. A diferença é que o Ajax é um conceito e a Web 2.0 é o nome para uma série de conceitos que representam um novo nível de maturidade no desenvolvimento de aplicações web. Diferente de algumas das muitas idéias que vimos explodir junto com a bolha, esses são conceitos maduros, comprovados pelo mercado, testados e aprovados pelo mundo real. Por isso, não importa se você vai chamar isso tudo de Web 2.0 ou não, o que importa é:

  • A web é a melhor plataforma de desenvolvimento de software existente hoje: de novo, pense no usuário. Veja, por exemplo, este PDF publicado pelo Estado de São Paulo.
    • Distribuir software pela web é o melhor dos mundos: Nada de CDs com atualizações de software. Atualização instantânea para toda a base de usuários. Software sempre atualizado, sem que você tenha o trabalho de esperar por um CD, colocá-lo no drive e seguir as instruções.
    • Experimente o desenvolvimento orientado a serviços: é um jeito de se desenvolver. Ao invés de desenvolver componentes ou bibliotecas que serão usados por seus programas, você desenvolve APIs de serviços web. Dá praticamente o mesmo trabalho desenvolver um webservice e uma DLL. A diferença é a vastidão de situações em que o webservice pode ser útil. Tenho, por exemplo, um webservice desenvolvido em PHP para um sistema de pagamento que eu reaproveitei. Estou usando o mesmo webservice de outro servidor, a partir do Python[bb]. Faça isso com DLLs ou coisa parecida, quero ver! As vantagens para o seu usuário são o fato de suas aplicações ficarem prontas logo e suas migrações serem menos traumáticas, ou seja, seu sistema funcionará melhor, e o fato de que outras pessoas poderão desenvolver sistemas que usem seus serviços. Esse tipo de integração é fabuloso!
    • Você precisa de um bom framework[bb]: Algo como Rails, que o faça produtivo. Estou usando Django e estou satisfeitíssimo. Se você não trabalha com um bom framework, não sabe o que está perdendo. Um bom framework permitirá a você desenvolver em poucos dias softwares que antes levavam semanas. E a web permitirá disponibilizá-los imediatamente. É um salto de um ciclo de meses para um ciclo de dias.
  • O conteúdo é o rei: não importa quão bonita seja sua aplicação, ou quão bem ela funcione, o valor dela está relacionado com o conteúdo que ela armazena, classifica e distribui, e, numa segunda análise, em quão bem ela é capaz de fazer isso. Assim:
    • O projeto de sua aplicação deve ser voltado ao conteúdo: Toda a sua equipe deve ter na ponta da língua o que seu site faz exatamente, ou seja, que conteúdo ele entrega para quem, e trabalhar em prol disso.
    • Nada deve impedir seu usuário de chegar ao conteúdo: Sua idéia genial de navegação não deve impedí-los. A versão do navgador deles ou sua banda estreita também não.
    • O próprio valor do negócio está relacionado com o conteúdo: Não importa quão bonitos sejam os gráficos com os trovões e a chuva, as pessoas entram em sites de previsão do tempo para ver a previsão do tempo. Por isso, se você puder investir em apenas uma coisa, invista no seu conteúdo. Tenha a melhor previsão do tempo, que abrange o maior número de cidades, que é mais fácil de se entender, que acerta mais. Já percebeu como é feia a home do Google? Há uma série de mecanismos de busca mais bonitos por aí, mas sem o que o Google tem: conteúdo relevante[bb].
  • Dar poder à pessoas: já leu aquele papo sobre o valor exponencial dos aparelhos de telefone em seu início? Pois então, é a mesma coisa com o del.icio.us, por exemplo. Dar poder às pessoas significa:
    • Folksonomia: como você organiza o conteúdo em seu site? Quem define se o link no menu vai se chamar “contato” ou “fale conosco”? Esse trabalho é o que o pessoal da arquitetura de informação chama de taxonomia. É o trabalho de dar nome e classificar as coisas. Alguém teve a interessante idéia de colocara taxonomia na mão de seus usuários, daí surgiu o termo folksonomia (folk=povo, gente.) Um exemplo? Veja como se usava taxonomia antigamente: Cadê? Internet. Essa página é um exemplo de taxonomia convencional. Embora as categorias e os sites cadastrados tenham sido sugeridos por usuários, foi alguém dentro do Cadê que resolveu o que ia aonde. Percebe que não há uma categoria Web 2.0 lá? Agora veja esse: Del.Icio.Us Internet. Veja que há, na direita, um “related tags”, com links para Web 2.0 e Ajax, por exemplo. Ao colocar a classificação na mão de seus usuários o del.icio.us pode ser atual como nenhum outro serviço. Veja, por exemplo, o que a Amazon está fazendo ao deixar que as pessoas classifiquem seus produtos: internet tag na amazon
    • Deixá-las publicar: Conhece o Slashdot? É um site de notícias de ciência e tecnologia, principalmente tecnologia. Todo o conteúdo é criado pelos próprios usuários. Recebe diariamente centenas de milhares de leitores e tem um volume absurdo de informações interessantes. E a Wikipedia? O mesmo formato, só que é uma enciclopédia. A original, em inglês, tem quase um milhão de artigos escritos. Em português há quase cem mil. E se falarmos de sites que vendem conteúdo. Que tal, por exemplo, um que vende livros? Não faz sentido deixar as pessoas escreverem, não é mesmo? Afinal, você entra num site de livros porque quer ler alguma coisa escrita por um profissional. Bem, veja este exemplo: Firefox Hacks na Amazon. Primeiro veja, junto à imagem da capa do produto, duas miniaturas de imagens enviadas por usuários. Interessante, não? Agora role até o meio da página, até a seção “Spotlight Reviews.” Olha só que coisa interessante, comentários de gente que comprou o livro. O que você acha mais interessante ler antes de comprar um livro? Comentários de um profissional cujo trabalho é lhe vender livros ou de gente comum que comprou o livro e leu de verdade?
    • Deixá-las reutilizar seu conteúdo: estamos falando de RSS, de Web Services, de código simples e outros subterfúgios para que as pessoas consigam usar o conteúdo que você distribui fora do seu site. Veja, por exemplo, o Varal, uma interessante experiência do René. Ali aparece tudo o que ele publica, em todos os seus blogs, fotologs, flickrs e etc. Já exite um serviço que faz algo parecido, veja: SuprGlu. Você pode acessar assim, via programação, suas fotos no Flickr, seus favoritos no del.icio.us, seus posts no Blogger (ou no WordPress), os livros da Amazon, as buscas do Google, os mapas do Google Maps e uma série de outras coisas interessantes. Pode criar, por exemplo, uma sidebar para seu blog que mostra livros sobre o assunto do post que está sendo lido, resultados no Google sobre o assunto, seus favoritos no del.icio.us sobre o assunto, e etc. Pode exibir, usando GeoURL, a que distânia estão do seu site as pessoas que fizeram comentários nele. Seu site não pode ser um buraco negro de informações estanques, há toda uma web com a qual interagir.
    • Ouví-las: quer saber? Esta sempre foi a questão principal. E hoje é muito mais fácil saber o que as pessoas tem a dizer. Digamos que você trabalhe para a Telefonica e precisa saber o que as pessoas andam dizendo de você por aí: você pode tentar aqui, aqui ou aqui, por exemplo. E o mais interessante é que a maioria dos resultados vem acompanhada de uma caixinha de comentários ou outra maneira de responder ao autor.
  • Acessibilidade: Nesse contexto, a acessibilidade ganha um novo aspecto. Primeiro, ela é importante porque permite a qualquer pessoa acessar seu conteúdo e isso vai incluir os excluídos. Os excluídos são aqueles que não vêem como você, não ouvem como você, ou não tem um computador, um sistema operacional e um navegador como os seus. Como essas pessoas são publishers, incluí-las vai aumentar o valor do seu conteúdo. Mas, num segundo aspecto, a acessibilidade é relevante porque vai incluir também as máquinas. Sabe, o bot do Google, o usuário mais importante que visita seu site, é cego e surdo, não entende javascript nem CSS. E, além dele, com a web 2.0 há a possibilidade de uma porção de outros usuários “automáticos” começarem a freqüentar seu site.
  • Semântica e Reuso: Você sabe, semântica, h1, h2 e h3 para títulos, ul, ol e li para listas e etc. Pois bem, alguém inventou um jeito interessantíssimo de se reaproveitar código semântico sem muita complicação, os microformatos. Dê uma olhada, é bastante interessante, e tão fácil de implementar que não vale a pena deixar de experimentar. Por exemplo, esta lista de tópicos está implementada em XOXO e isso não me deu absolutamente nenhum trabalho extra. O fato é que desde que começamos a falar em semântica um dos nossos objetivos era construir código reutilizável.

Deixe-me levá-lo agora a dois textos interessantes: o primeiro: Lenda viva, muito viva. No meio do texto, antes de falar sobre RSS, René pergunta: “Mas afinal… do que esse nosso papel é capaz?”
Para ajudar a responder, leia esse outro: Mundo de Pontas.

Como você pode notar, as coisas que realmente dão valor à tal Web 2.0 já são valiosas há algum tempo. Já há algum tempo que isso tudo vem dando certo também. Se alguém resolveu dar um nome a isso tudo, e se outra pessoa resolveu dizer que ela morreu, não faz a menor diferença. Esses pontos são verdade há bastante tempo, independente de serem chamados de Web 2.0 ou qualquer outro nome. Assim, se disserem que a Web 2.0 é o que há, ou se disserem que ela morreu, relaxe e concentre-se no que realmente importa para seus clientes e usuários.

Vou aproveitar para recomendar o ótimo texto do Henrique: Designing for web 2.0: “Se você está preocupado com Web2, esqueça o termo completamente e estude web standards, acessibilidade e Microformats…”

Technorati Tags: , , , , , , , , , , , , , , , ,

If ++ Increments … (++)

Sei que não é gentil ficar rindo da falta de talento alheia, mas eu não resisto a esse site.

Veja essa:

Another slow day, another revisited post. Even if you’ve seen the original, I highly recommend checking out the comments posted. There you will find a number of solutions (five pages worth) to the problem that Steve Local’s … less gifted … colleague was having in C# …

Nathan: Steve, you know how ++ will increment, right?
Steve: Right ….
Nathan: Okay, so how do you increment by 11?

Vá até lá e leia os comentários, são hilários. Esta outra também é muito boa.

Fun, Humor, Code, C#, C

Cosme Blog » Visitantes acessam este blog com Firefox

Cosme Blog » Visitantes acessam este blog com Firefox

Apenas 23% dos visitantes do blog do Cosme usam Internet Explorer. Naturalmente, sendo um blog sobre padrões web, o público do site dele deve ser quase exclusivamente de desenvolvedores que trabalham com padrões ou estão estudando o assunto. Mas mesmo assim o número é interessante, não?

Ah, sim, o conteúdo do blog é muito bom, recomendo.

Web, Market, Browsers, Firefox, Internet Explorer

Biblia Online mais rápida

Fiz algumas alterações no código da Bíblia Online, está bem mais rápida. O truque foi implementar numa thread um servidor que oferece um serviço de consulta à Bíblia. Assim, a página web só faz uma consulta a esse servidor. Fiz com XMLRPC.

Se um dia eu tiver que usar consultas à Bíblia[bb] de uma outra aplicação, tenho o webservice feito, sem nenhum trabalho adicional 😉

Bible, Bíblia, XMLRPC, Web Services

WordPress é espetacular

Fantástico, maravilhoso. Indescritível.

Um gerenciador de blogs[bb] completíssimo, ao mesmo tempo, simples de instalar, de usar e de estender. Tem tudo o que você precisa, e o que não tiver, há um plugin disponível.

Coisas fantásticas que descobri ontem:

  1. Se você cria e publica um post para uma data posterior, ele entra no ar automaticamente na data escolhida. Isso pode ser muito útil. Você pode, por exemplo, deixar programado o “post da virada” para entrar no ar à meia noite do dia 31 e ir tranqüilo à praia.
  2. O plugin SimpleTags. Você coloca em algum lugar uma lista assim: <tags>WordPress, WordPress Plugins, WordPress Tips, PHP, Blogging, Google Sitemap, Technorati, Tableless, Web Standards</tags> e ele transforma em: “WordPress, WordPress Plugins, WordPress Tips, PHP, Blogging, Google Sitemap, Technorati, Tableless, Web Standards
  3. O plugin Google Sitemap Generator gera automaticamente um sitemap do Google para você cada vez que um post é publicado em seu blog.

Depois da instalação do WordPress[bb] no Tableless.com.br, em que tive que mexer bem mais a fundo do que neste humilde blog (escrevi até dois plugins!) fiquei ainda mais apaixonado por isso aqui!

Se você tem mais recomendações de plugins legais, por favor, deixe um comentário!

(Ah, se tudo der certo, este post irá para o ar às 4h da manhã. Não, eu não estava acordado. Só estou demonstrando a funcionalidade descrita acima.)