Invisible Ruby mini-framework

20/7/2008 | Tags: , , , | Escrito por: Dirceu Júnior

O pirado que desenvolveu o Thin web server, Marc-André Cournoyer também criou seu próprio framework: Invisible, que é bem parecido com o Sinatra (um outro mini-framework Ruby).

ORM (Mapeamento objeto-relacional), aquele lance que no Rails você conhece por ActiveRecord que transforma linhas da base de dados em objetos do Ruby.

Seguindo a linha do Sinatra, ele é um pequeno suporte para fazer a ligação entre a aplicação e o web server, deixando toda a escolha de “como organizar a estrutura da aplicação”, “que ORM usar” ou até mesmo “usar ORM?” para o desenvolvedor.

Vale a pena dar uma olhada nessa aplicação exemplo e guarda-lo no seu Pagestacker, quem sabe um dia não surge um projetinho que encaixa com a estrutura desse frame, huh?



cLick Here YouTube

13/7/2008 | Tags: , , | Escrito por: Dirceu Júnior

Don't Click Here

O YouTube não fez uma boa escolha ao permitir que os publicadores adicionassem anotações em uma camada acima dos vídeos.

O lance parece até ser legal quando utilizado com bom senso pelo distribuidor do vídeo. Porém, serviços como o YouTube não devem depender da boa vontade do distribuidor, deixando que esse possa manipular a interface de distribuição do conteúdo.

As vezes é díficil discordar com o pessoal do Google, mas nessa eu senti que faltou bom senso e alguns testes antes de lancerem a nova ferramenta aos publicadores.

Tentar adicionar valor ao produto com uma funcionalidade boa para quem distribui, mas que desvia o foco de quem no fundo é o cliente do YouTube - usuários que consomem o conteúdo assistindo aos vídeos - é uma pessima decisão para o produto.



Saturday Night Lively

12/7/2008 | Tags: , , | Escrito por: Stéfano Torres

Como todo bom nerd que tem coisas para se fazer, eu passei horas brincando nessa nova aplicação do google ainda em fase beta. É muito Second Life like, mas com algumas diferenças claras desde o começo.

O fato de ter aplicações de grátis, que no Second Life são extremamente caras é um grande atrativo :). Não sei se a política de free as beer irá continuar após a fase beta, pois a seção de catálogo de produtos está montada de modo a ser uma funcionalidade para venda, a diferença é que está free :). Não que atrapalhará o serviço, mas é algo a se observar e não ter esperanças de que será tudo na macioca.

Vamos ao que importa. A questão de usabilidade atual ainda peca em alguns aspectos quanto à movimentação da câmera e movimento dos móveis e personagens. Nada que impeça de se explorar as funcionalidades atuais, mas que requer uma certa paciência para quem não está acostumado à ambientes similares assimilar. Considerando que comecei há 3 dias e já sirvo de referência na sala Brasil como guia de customização de avatares, mover e interagir com o ambiente e pessoas posso afirmar 3 coisas:

  • É realmente fácil de aprender a interagir (mais que o second life)
  • Falta uma sala ou fase “tutorial” que ensine os passos básicos (não, aquelas faixas cinzas com “tips” não contam).
  • Antes de xingar a mãe do desenvolvedor pela demora inicial, lembre-se que é a primeira vez que você está logando neste ambiente tridimensional com interação de várias pessoas ao mesmo tempo rodando em um navegador. Provavelmente irá melhorar muito após a fase beta.

E dessa interação constante com usuários recém-criados percebi também a confusão de conceitos sobre o que é o lively. Um jogo? Um chat? Um simulador de ambientes e interação com usuários e objetos? Uma desculpa pra brincar de casinha?

Respondo de cara que não é um jogo sob o meu ponto de vista, porque eu considero como jogo algo que tenha um objetivo, seja uma fase, pontos ou level :). Mas posso estar inteiramente enganado, fica de acordo com a perspectiva de cada um. Só dou uma advertência para não esperarem matar monstros e colecionar moedas de ouro .

Sobre o Lively:

Brinquem nele, é o melhor modo de se aprender a utilizar suas funções.

Cliquem e adicionem todos os gadgets possíveis. Descobri por exemplo que ele tem um repeat dos vídeos do youtube que são inseridos nos gadgets das televisões e que pausa automaticamente quando você troca de aba. :)

Há algo de cativante nele… já me atrasei por me distrair testando o potencial de cada item e gadget, brincando de decorador engenheiro, e conversando ao melhor estilo bate-papo da Uol com qualquer avatar feminino pessoas de diferentes localidades. Sim, o Lively também pode ser considerado um bate-papo com frescuras e mais chic, podendo facilmente ocupar uma noite de sábado sem nada para fazer (não aconselho que o façam, amigos e cerveja são uma opção bem melhor).

A convite aberto do @manoelnetto pude decorar também a sala do BlogBlogs eu passei um bom tempo me divertindo enchendo a sala de quinquilharias geek-style e adorei! (sim, eu divulguei o pomoti lá, me desculpem :)).

Tendo passado essa febre de novidade, analisemos o conceito que apesar de possuir história (Second life, the sims, etc) muitas pessoas estão redescobrindo o chat. Este é o Mirc da nova geração que cresceu no orkut.

Se você está lendo isso há uma grande chance de ter vivenciado a web pré-bolha e sabe como era no nosso tempo, sem essas frescuras e emoticons. Comentamos constantemente que a economia está voltada para redes sociais e recentemente aqueles que não seguiram o coelho branco estão atravessando o espelho (a EXAME citou o Luli caramba!), mas não nos damos conta de que nossos irmãozinhos vivem livremente de uma rede para a outra e manjam mais dos últimos gadgets do orkut e que nós geeks conservadores que estão preocupados com interação com o usuário. Eles irão descobrir utilidades mais práticas no lively que nós.

O que fazer a respeito? (além de parar de dar uns cascudos neles esporadicamente)

Sit back and watch. Aprenda com eles e não deixem eles esquecerem que fomos nós quem possibilitamos tag-ar as paqueras deles :)

PS: Acima, meu apê no lively (a bunda não foi intencional, foi apenas sorte).



Mudança de paradigma em webservers encaixa Nginx no mercado

7/7/2008 | Tags: , , , , , , , | Escrito por: Dirceu Júnior

A época de ouro do Apache parece ter acabado há algum tempo. Após muitos anos sendo o servidor de aplicações para Web mais usado (na realidade ainda sendo o mais usado), o market-share do Apache está em queda há algum tempo segundo o Netcraft.

Mas eu não vim aqui para enterrar o coitado do Apache, provavelmente já fizeram muito disso por aí… sem necessidade na minha opinião. Muitos problemas ainda podem ser resolvidos com ele, sem contar que é muita falta de consideração jogar pedra em quem te alimentou por todo esse tempo (mais de 10 anos) não é?

Estou aqui para falar das entrelinhas no levantamento de Junho da Netcraft. Mais precisamente quando eles expõem o seguinte: “nginx mais que dobrou em números; com um ganho de mais de 1 milhão de sites”.

Nginx

Nginx para quem não sabe é um servidor web escrito pelo russo Igor Sysoev que também pode ser usado como proxy reverso ou e-mail proxy (fique ligado no RSS para receber atualizações sobre proxy reverso).

Dentre as vantagens do engine X (pronúncia de nginx) estão:

  • estável
  • configuração simplificada
  • baixo consumo de recursos

Baixo consumo de memoria pode à primeira vista significar performance, mas nginx vai além, sendo desenvolvido para solucionar um grande problema de escalabilidade. Para isso possui um modelo de IO assíncrono e o já citado baixo consumo de memória que retornam além de performance, escalabilidade.

Trust Me / Thin

Há algum tempo atrás quando os widgets da boo-box foram para o ar eu não fazia idéia do poder do nginx. Sendo mais sincero do que deveria: ele só estava sendo usado pois era a opção que eu e o Maurício conhecíamos para colocar o nosso Merb no ar.

Logo no começo ele era um load balancer para um par de Mongrel em esquema Round-Robin, mas tão logo as requisições começaram a aumentar algo precisou ser feito.

Ezra Zygmuntowicz da EngineYard já havia enfrentado um problema com o modelo Round-Robin usado pela versão estável do nginx, então criou um patch para resolver isso com Fair queuing (ou quase isso).

A solução de Ezra foi de grande ajuda, pois o ponto mais díficil de escalar na aplicação que usei de exemplo é a ocorrencia de muitas requisições longas que ficam aguardando retorno de outras APIs, tornando Round-Robin impossível uma vez que algumas requisições poderiam cair em uma instância ocupada. Round-Robin não se importa se a instância está ocupada ou não e manda a requisição para fila da mesma forma e Fair resolve isso enviando requisições somente para instâncias desocupadas. Ponto para o nginx e sua crescente comunidade.

Mas outro problema é que uma vez que mais e mais requisições lentas vão entrando no sistema as instâncias ativas de Mongrel tendem a acabar. A solução poderia ser adicionar mais e mais instâncias até acabar com a memória ou com sobrecarregar a interface TCP/IP, uma vez que Mongrel não consegue trabalhar com Unix Sockets.

A solução então está sendo trabalhar com Thin, um ótimo webserver Ruby. Thin é uma solução alternativa ao Mongrel que merece um artigo dedicado, então o que posso dizer dele por enquanto é que suporta Unix Sockets (isso é bom) e tem um custo baixo de memória, possibilitando rodar várias instâncias diminuindo o desperdício de recursos.

Não estou muito certo quanto a possibilidade de se rodar qualquer aplicação Rails nele, mas de uma coisa eu sei: Merb + Thin + Nginx estão me deixando dormir tranquilamente. Se você ainda não conhece essas excelentes ferramentas do mundo Ruby acredite em mim, conheça.

Ps: nginx não é exclusivo do ambiente Ruby, ele é um proxy reverso que pode trabalhar com outras linguagens como PHP.

Ps 2: Phusion Passenger parece ser uma ótima opção para rodar Rails, mas mesmo suportando Rack não estou certo (fico devendo o benchmark) se haveria ganho para rodar Merb.



Aumentar a emissão de sementes nos veículos

3/7/2008 | Tags: | Escrito por: Dirceu Júnior

Subverter um conceito é isso: aumentar a emissão de plantas nos veículos.
É soar muito louco, piradasso, mas acabar fazendo sentido:

Seeding

Aumentem a emissão de sementes dos seus veículos também ;)