Arquivo do mês de março 2009

 
 

Para Entender a Internet : Metodologias Ágeis

Para Entender a Internet : Capa

“Para entender a Internet – Noções, práticas e desafios da comunicação em rede” é o resultado de um trabalho colaborativo organizado pelo Juliano Spyer (autor do livro Conectado) e com a participação de um incrível trupe de colaboradores. O livro foi lançado via Twitter no dia 17 de Março às 18 horas. O blog oficial conta com todos os capítulos na íntegra e também com os links para fazer o download do livro completo em PDF. Nele você encontra feras como Ronaldo Lemos, meu primo falando de Creative Commons, Luli Radfahrer animalizando sobre mobile, Cris Dias conceitualizando Whuffie e capital social e o próprio Juliano Spyer que escreveu sobre Web 2.0.

Tive a honra e a oportunidade de ser um dos colaboradores convidados pelo Juliano Spyer para fazer parte desta turma. Recebei uma mensagem pelo Twitter dizendo que ele queria falar comigo durante o Campus Party. Conversamos ali mesmo e fui convidado a escrever o capítulo sobre a conceito das “Metodologias Ágeis“, assunto que muito me interessa e que faz parte de meu dia-a-dia na WebCo e na Abril Digital. O legal de um livro todo construído através da Internet é a possibilidade de contar com a colaboração dos leitores sobre o conteúdo do mesmo. Logo que o blog oficial foi ao ar alguns leitores perceberam um erro num dos parágrafos finais de meu texto. Eles enviaram comentários através do próprio blog e já estamos coletando várias correções para soltar uma versão atualizada do PDF. Bingo!!! Ganhou a colaboração, a interação e a Internet. Ganhamos todos!!!

É isto, baixe o livro, interfira e ajude a torná-lo ainda melhor.

HeyHo!!!

Tutorial : Integrando sua aplicação Ruby (ou Rails) com o Twitter

Nesta semana liberamos a implementação da API do Twitter que desenvolvemos e utilizamos no mais novo projeto da Webco, a Tuitersfera. Liberamos a API no GitHub com o nome de Tuiter (isto mesmo, Tuiter com TU, bem abrasileirado). Neste post farei um pequeno tutorial de introducão ao uso da Gem Tuiter para integrar sua aplicação com o Twitter.

Instalando a gema Tuiter

Se você ainda não adicionou o GitHub às suas fontes de gemas, execute o comando abaixo. Se já fez isto, pule este passo e vá direto para o comando seguinte para a instalação da gema.

1
% gem sources -a http://gems.github.com

Instalando a gema em seu computador:

1
% sudo gem install webco-tuiter

Testando a instalação

Para testar a instalação, basta você abrir o interpretador Ruby e executar os comandos abaixo. Utilize seu usuário do Twitter e sua senha na chamada que instancia a classe cliente da API. Se tudo der certo, o código deve apresentar a sua descrição (de seu perfil) no Twitter.

1
2
3
4
5
6
7
8
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
voce = cli.get_user("seu_login")
 
puts voce.description

Todos os métodos de manipulação da API estão na classe Client.

Atualizando seu status no Twitter

Para atualizar seu status no Twitter basta usar o método update() da classe Client. Veja:

1
2
3
4
5
6
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
cli.update("Olá mundo, estou no Twitter!!!")

Consultando seus @replies

Utilize o método get_replies() da classe Client. Este método trará os 20 últimos updates recebidos pelo usuário que você usou para inicializar a classe Client. Você pode pegar mais replies paginando os resultados, para isto basta passar o parâmetro page na chamada do método. O código abaixo mostrará seus 40 últimos replies:

1
2
3
4
5
6
7
8
9
10
11
12
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
replies = []
replies |= cli.get_replies
replies |= cli.get_replies(:page => 2)
 
replies.each do |reply|
  puts "From #{reply.user.screen_name} @ #{reply.created_at.to_s} : #{reply.text}"
end

Enviando uma mensagem direta (direct)

Utilize o método direct_new() da classe Client. Os parâmetros são o id ou o login do usuário para quem você deseja enviar a mensagem e a mensagem a ser enviada. Veja:

1
2
3
4
5
6
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
cli.direct_new("crisdias","olá cris, quanto vale um whuffie?")

Consultando dados de um usuário

Para isto você deve usar o método get_user da classe Client. O resultado é um objeto da classe ExtendedUser e ela contém métodos para consultar cada atributo de um usuário. Veja:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
edney = cli.get_user("interney")
 
puts edney.name  # Nome do usuário
puts edney.screen_name  # Login do usuário
puts edney.description  # Descrição do perfil do usuário
puts edney.url  # URL do perfil do usuário
puts edney.followers_count  # Quantidade de seguidores do usuário
puts edney.friends_count  # Quantidade de amigos (pessoas que ele segue) do usuário
puts edney.location  # Localização do perfil do usuário

Dicas finais

Existe um limite de utilização da API do Twitter para cada usuário. Este limite, normalmente, é de 100 requisições por hora. Então, cuidado para não estourar o limite, isto fará com que você não consiga interagir com o Twitter até acabar aquela hora. Este limite é chamado de Rate Limit e também pode ser consultado pela nossa implementação da API. Para isto utilize o método rate_limit da classe Client. O resultado é uma estrutura que traz dados sobre como anda seu limites de uso da API. Veja:

1
2
3
4
5
6
7
8
require 'rubygems'
require 'tuiter'
 
cli = Tuiter::Client.new(:username=>"seu_login", :password => "sua_senha")
 
cli.rate_limit
 
=> #<Tuiter::RateLimit:0x1802e3c @reset_window=2706.502303, @reset_time=Tue Mar 17 21:15:48 -0300 2009, @hourly_limit=100, @reset_time_in_seconds=Tue Mar 17 21:15:48 -0300 2009, @remaining_hits=84>

Observe que, no exemplo, ainda temos 84 requisições restantes (remaining_hits) até estourar o limite de uso da API na hora corrente. E ainda, a hora corrente acaba às 21:15 (reset_time) e ai teremos mais 100 requisições de limite.

A outra dica é consultar a documentação oficial da API do Twitter para entender melhor como ela funciona.

Colabore com nossa API

O projeto está hospedado no GitHub e qualquer um pode colaborar. Para entender melhor como isto pode acontecer, entre em contato com os desenvolvedores que estão cuidando dela (Luiz Rocha, Luis Cipriani e o Lucas Húngaro) através do email tuitersfera (arroba) webcointernet.com. Se você encontrar algum bug, tiver alguma sugestão ou desenvolver qualquer coisa legal com a API, também não deixe de avisar.

Boa Sorte e boas Tuitadas!!!

Tuitersfera – Mapeando o uso do Twitter no Brasil

Tuitersfera

O Tuitersfera é um pequeno projeto que desenvolvi e lancei no começo de Fevereiro. Foram apenas alguns dias de trabalho com Ruby e Rails para montar um pequeno sistema interativo que integrava o Twitter com o Google Maps e que tinha o objetivo de mapear o uso do Twitter no Brasil.

A idéia era bem simples, bastava que os usuários do Twitter passassem a seguir o usuário @tuitersfera e, a partir dai, interagissem com ele através do website (http://tuitersfera.com.br) ou de mensagens diretas (directs) com comandos bem simples. Através destes comandos seria possível dizer para o Tuitersfera onde você vive, trabalha e também por onde você anda.

Em apenas 48 horas o Tuitersfera ultrapassou a marca de mais de 1000 usuários (seguidores). Infelizmente não tive tempo para continuar o desenvolvimento do projeto e ele acabou ficando meio largado. Mas isto já foi resolvido, três Jedis da WebCo (Luiz Rocha, Luis Cipriani e o Lucas Húngaro) adotaram o projeto e estarão trazendo várias novidades. O Tuitersfera deve se transformar numa plataforma interativa que oferecerá alguns serviços baseado no Twitter e também em outros serviços como o Google Maps. Claro, continuaremos com o propósito inicial de mapear o uso do Twitter do Brasil e também criar um ranking local dos tuiteiros de plantão.

Um sub-produto do projeto foi a implementação em Ruby de uma biblioteca que consome a API do Twitter. Fiz isto porque achei as outras implementações complicadas de usar ou incompletas. Eu e os novo pais adotivos do Tuitersfera resolvemos transformar esta biblioteca em uma gema (Ruby Gem) e liberá-la como um projeto Open Source. Em breve disponibilizaremos tudo no GitHub (isto deve acontecer nas próximas semanas).

Enquanto as novidades não chegam, você pode seguir o @tuitersfera e começar a interagir com ele. Para dizer onde você vive, basta enviar uma mensagem direta com o seguinte formato: moro em onde_você_vive

Você pode enviar seu endereço com a resolução que desejar, pode ser seu endereço completo, ou apenas a cidade onde você mora. O Tuitersfera se vira para entender o endereço. Veja alguns exemplos abaixo:

  • moro em Avenida Paulista, 3333, São Paulo, SP, Brasil
  • moro em Alamenda Santos, São Paulo, SP, Brasil
  • moro em São Paulo, SP, Brasil

Bom, por enquanto é isto. Se você tiver dúvidas ou sugestões para o Tuitersfera, entre em contato com os pais adotivos do projeto.

E boas tuitadas!!!

Teste do cliente WordPress para iPhone

Galeteiro, saleiro e pimenteiro do Nonno Ruggedo no Shopping Cidade Jardim.

Contextualizando : Tendências em Aplicações Sociais para 2009

alguns vários dias publiquei um post com a apresentação que fiz no Campus Party sobre Tendências em Aplicações Sociais para 2009. No mesmo post comentei que escreveria alguns novos posts sobre o assunto e este é o primeiro deles.

PS:. Também desisti de ficar revisando o post e protelando a publicação. Então, fica o convite, se você encontrar algum erro ou mesmo alguma idéia ou conceito equivocado, me avise que farei o possível para corrigir o artigo. A idéia é deixar um trabalho que possar ser uma boa referêncie para o assunto.

O que são as aplicações sociais

Antes de falar das tendências, é preciso que entender o que são aplicações sociais e em que contexto elas se encontram no momento atual. Por definição, aplicações sociais (social software, ou social applications) são todas as aplicações, sistemas e serviços que permitem que usuários (pessoas) interajam entre si e troquem informações. O verbete da Wikipedia que descreve social software também chama a atenção para o fato da maioria destes serviços compartilharem características comuns como oferecem APIs (application programming interfaces) abertas, design orientado a serviços e a capacidade de se fazer o upload de dados e mídia. Alguns destes serviços acabaram ficando muito famosos como é o caso do Orkut, o FaceBook, o Twitter, o YouTube e também – porque não? – alguns serviços nacionais como o BlogBlogs e o VideoLog.

A infra-estrutura da nova web

Recentemente as Redes Sociais emergiram como uma grande novidade ou até mesmo como as killer applications da Internet, mas discordo desta visão e acredito que redes sociais são muito mais features (ou funcionalidades) do que produtos. Para mim elas são apenas um nova camada da infra-estrutura da nova web, a camada social. Podemos entender a web atual sendo composta por três camadas: a) a primeira camada (começando da mais profunda para a mais superficial inspirado pelo modelo OSI) é a camada física que começou a ser construída em meádos da década de sessenta quando o foco era conectar todos os pontos do planeta através de cabos metálicos e fibras ópticas; depois temos b) a camada lógica que se consolidou com o surgimento do protocolo HTTP e constitui o conjunto de protocolos de identificação e endereçamento de nós da rede; e do roteamento e troca de mensagens pela rede. Finalmente temos c) a camada social, que traz os usuários para o cenário. Esta camada é o conjunto de conceitos, padrões e serviços que permitem a interação entre os usuários e a troca de informação entre eles. Estamos falando de mecanismos de troca de mensagens, modelos de dados para o armazenamento das relações entre pessoas (grafo social ou social graph), mecanismos de identificação e autenticação de usuários; e todos os outros que se consolidaram com a popularização das redes sociais.

É sobre estas três camadas da infra-estrutura da nova web que as aplicações sociais aparecem com sua maior força. Utilizando os serviços oferecidos pela camadas inferiores as aplicações oferecem serviços específicos para os usuários entregando valor (funcionalidade e utilidade) para os mesmos. Assim, um serviço de compartilhamento de fotos como o Flickr utiliza recursos básicos das camadas inferiores para transformar o ato de armazenar e distribuir imagens numa aplicação social. Seus usuários podem, então, subir (upload) suas fotos, enviá-las para seus amigos, montar grupos de interesse, trocar mensagens, avaliar as imagens e muito mais. Por outro lado as funcionalidades de enviar mensagens, montar grupos e avaliar itens não teriam sentido sem a especificidade criada em torno das fotos no Flickr. Ou seja, a aplicação agrega valor na medida que dá um fim (objetivo) para os features utilizados das camadas de infra-estrutura. Por fim, como as aplicações sociais normalmente oferecem APIs abertas, outras aplicações mais complexas podem ser criadas utilizando-se da infra-estrutura e também dos diversos serviços oferecidos por outras aplicações. Um desenvolvedor pode, então, utilizar a API do Twitter e a API do Flickr para montar um novo serviço de disseminação informal e espontâneo de fotos e mensagens como o SnapTweet.

Assim, as redes sociais são, em última instância, plataformas que implementam e disponibilizam a camada social da infra-estrutura da nova web, onde veremos, cada vez mais, novas aplicações serem construídas e disponibilizadas. Um exemplo claro é o que está acontecendo com o OpenSocial no Orkut e as aplicações do FaceBook. É na camada das aplicações que reside o maior valor e as maiores inovações. O restante é infra-estrutura, uma nova commodity com pouca inovação e valor reduzido no novo contexto da web social.

O cenário atual

Se por um lado estas aplicações se tornaram super frequentes e um sucesso de popularidade, por outro isto é parte do problema que enfrentamos no momento. A diversidade de aplicações e as constantes pressões para que façamos, sempre, parte de todas elas gera uma situação enfrentada por quase todas as pessoas que estão profundamente envolvidas e conectadas na rede: a saturação por informações (content overload, ou information overload). Além da saturação por informações o contexto atual também é marcado por uma série de fatores que ajudam a definir o ambiente para que nossas tendências façam sentido. Entre eles podemos destacar: a) a crise internacional, que traz pressões financeiras para todos os mercados; b) a escassez de capital para novos empreendimentos consequente da crise; c) a decepção com os modelos de publicidade super direcionada beseados em informações demográficas imprecisas ou falsas nas redes sociais; d) a consagração dos agregadores de conteúdo, da inteligência coletiva e das conversações on-line como uma mídia; e) a popularização das redes móveis 3G e o surgimento de inúmeros e sofisticados dispositivos móveis conectados como o iPhone e a plataforma Android; f) o início da consolidação dos serviços de computação sob demanda em larga escala (cloud computing, ou computação das nuvens); g) a popularização dos widgets e, por fim, h) a preocupação com aspectos de portabilidade de dados (especialmente os pessoais) e as discussões sobre privacidade e segurança destas informações.

Pronto, agora que o contexto está entendido, estou quase pronto para falar das tendências. Antes, quero deixar claro que este material é fruto de minha avaliação (e imaginação) pessoal do cenário e de várias horas de pesquisa realizadas na Internet. Não tenho bola de cristal e, como todo exercício de futorologia, os riscos são bem altos, especialmente na Internet.

Vamos às tendências

As tendências que abordei em minha apresentação foram:

  • Descoberta (Discovery)
  • Mídias Sociais e Computação das Núvens (Social Media & Cloud Computing)
  • Mídias Sociais e Mobilidade (Social Media & Mobility)
  • Conteúdo e Seviços Super Locais (Hyper-Local Content & Services)
  • Widgetização e Des-sitelização* (Widgetization)

* Este termo foi ‘roubado’ de uma apresentação do Abel Reis da Agência Click.

Nos próximos posts tratarei individualmente de cada uma destas tendências.

Abraços e até o próximo post!!!


Últimos Leitores

Ver todos no BlogBlogs | Controlar visibilidade

Destaques