Jeveaux's Weblog
Tudo certo e nada resolvido
Tudo certo e nada resolvido
16 mar
Pessoal, é com uma enorme satisfação que escrevo este post e comunico a vocês o lançamento oficial da minha empresa junto com meu grande amigo-irmão-parceiro e agora sócio, Léo Hackin, e claro, com a participação incondicional e incansável da minha adorada esposa que, literalmente, tirou a coisa da informalidade e ‘nos deu asas’.
A empresa já está registrada há algum tempinho e, também, em atividade. Porém, hoje está sendo o seu lançamento oficial, basicamente com a marca e o site temporário pois a sede ainda está em fase final da reforma da sala e o site em ajustes finais para ir ao ar, muito em breve escreverei sobre a sede e como ela ficou.
Há algum tempo, muita gente não entendeu o meu pedido de saída da globo.com, mesmo tendo eu, acabado de entrar. O principal motivo que me trouxe de volta a Vitória foi exclusivamente pessoal e particular, não cabem comentários aqui no blog. Com o retorno, aproveitei o tempo ocioso e dei início ao trabalho que era também um sonho antigo, assim como entrar na globo.com, e agora o sonho saiu do papel e, literalmente, caiu no mundo real.
Giran é o nome da nossa empresa. Durante quase 2 meses nós procuramos um nome, inventamos códigos e nomes estranhos, nomes ao contrário, nomes em japonês, em chinês, enfim, tentamos de um todo, mas nenhum deles tinha o domínio livre. Apesar de se tratar do nosso lado profissional e de ser agora a nossa cara, nossa marca e identidade ‘na rua’, o nome é algo muito especial, e não poderia deixar de ser algo nerd, afinal somos nerds. Darei uma pista e quem descobrir a origem do nome ganhará o direito de disputar uma partida de xbox na nossa nova sede; a dica: é um nome retirado de um rpg, mais especificamente de um mmorpg!
Conheça: Giran Soluções e Ensino
Na Giran o nosso foco de trabalho serão contratos de consultoria e coaching em projetos java e rails, gerenciamento de projetos com Scrum e, também, ensino e treinamento especializados em java, php e rails. Quando o site estiver no ar muitas outras informações e detalhes sobre nossa área de atuação serão disponibilizadas.
A criação e lançamento da Giran ocorreu, antes de tudo, após uma longa conversa sobre valores, princípios, visão e expectativas para a empresa e sobre como faríamos para criar e manter uma empresa jovem e descontraída e ao mesmo tempo profissional e comprometida. Nós não poderíamos simplesmente abrir uma outra ‘old big company’ baseada em velhas e obsoletas idéias e trabalhar de forma caótica e improdutiva, na nossa empresa usaremos o que há de ponta para o desenvolvimento e gestão dos nossos projetos e treinamentos, estudaremos cada caso com o máximo de detalhes, cada cliente, cada projeto afim de aplicar o que for melhor para cada situação, exatamente igual fazemos em nosso dia-a-dia e em nossa evolução pessoal+profissional.
Na Giran todo o nosso trabalho será pautado e muito fortemente baseado nos valores e princípios de Extreme Programming, especialmente em alguns que temos uma certa predileção:
Outro ponto de grande realização para nós com a abertura da Giran é poder participar e atuar de uma forma ainda mais forte e ativa no desenvolvimento de projetos open source e nos grupos e comunidades da nossa região. Poder agora, como empresa, dedicar tempo remunerado a estes projetos, incentivar e bancar a participação dos nossos funcionários, poder viabilizar eventos e outras atividades e muito mais. Hoje nós já participamos fortemente como membros e coordenadores no ESJUG, Agile-ES, PHP-ES, Linux-ES e EESL e estamos iniciando a participação no Vitória Perl Mongers.
E é isso, agora é correr atrás e tentar aplicar tudo que eu disse para meus antigos chefes/gerentes e ver, na prática, se será bom ou ruim, fácil ou difícil, lucrativo ou não e por aí vai. Agora o sonho acabou, virou realidade!
10 out
Quem nunca ouviu a grande falácia de que Rails não escala? Isso foi moda durante algumas semanas enquanto o Twitter passava por problemas de escalabilidade, não necessariamente por culpa do Rails ou de Ruby, mas quem quer por lenha na fogueira não está muito preocupado com isso e quer mesmo é semear a discórdia. Muita água já passou por baixo da ponte, o Twitter agora está estável e as coisasfluem bem.
No começo deste ano o pessoal do Twitter anunciou e tornou open source o projeto Starling, criado por Blaine Cook. O Starling é o core do Twitter, ele é o servidor de filas responsável por manter em pé o Twitter. E agora como um projeto open source está disponível como gem e pode ser usado por qualquer outro projeto.
Indo direto ao ponto, o Starling é, basicamente, um servidor de filas implementado sob o protocolo do MemCache. O MemCache é um servidor de cache distribuído de altíssima performance e é largamente usado, principalmente em clusters de aplicações web.
Para usar o Starling é muito simples. Os primeiros passos são
1) Instalar o servidor MemCache
[code]jeveaux@kamael ~ $ sudo apt-get -y install memcached[/code]
2) Instalar a gem do MemCache e
[code]jeveaux@kamael ~ $ sudo gem install memcache-client[/code]
3) Instalar a gem do Starling.
[code]jeveaux@kamael ~ $ sudo gem install starling[/code]
E pronto, isso é tudo para começarmos a usar o Starling. Se você achou a instalação simples se prepare, pois a utilização é ainda mais simples.
Se você já usou o MemCache vai sentir-se familiarizado com o Starling. A diferença é apenas na implementação do protocolo, ou seja, a utilização em código será igual a do MemCache, só que ao fazer set e get as coisas acontecerão de uma forma um pouco diferente. Por enquanto a diferença maior que percebi foi em relação do método get, que quando usado no MemCache apenas retorna um valor do cache e o mantém lá, já no caso do Starling o get retorna o valor e o remove da memória. Analisando com calma isso faz sentido, afinal não estamos mais falando de cache e sim de filas, mesmo que a implementação da fila seja feita usando cache.
Mas antes de irmos para os exemplos de código, precisamos fazer com o que o servidor de filas – duh, Starling – esteja disponível e rodando. Vamos iniciar o Starling na porta 22122 (-p) e como um daemon (-d):
[code]jeveaux@kamael ~ $ sudo starling -p 22122 -d[/code]
Isso já basta para iniciar o servidor do Starling e deixá-lo disponível para uso. Agora então vamos alimentar a fila, crie o arquivo: alimentar_fila.rb.
[code]#alimentar_fila.rb
require 'rubygems'
require 'memcache'
starling = MemCache.new 'localhost:22122'
starling.set 'fila', 'qualquer objeto'[/code]
Ao executar este arquivo (ruby alimenta_fila.rb) não teremos nenhum resultado visual, mas acredite, a fila chamada de‘fila’ no exemplo está recebendo objetos. Agora o trabalho será para – como dizem – consumir a fila. Vamos ao consumir_fila.rb.
[code]#consumir_fila.rb
require 'rubygems'
require 'memcache'
starling = MemCache.new 'localhost:22122'
loop {
objeto_fila = starling.get 'fila'
if !objeto_fila.nil?
puts 'recuperado da fila:' + objeto_fila
end
}[/code]
E agora sim estamos prontos para colocar e remover objetos em uma fila. O exemplo para consumir os objetos ficará em loop, então você pode executá-lo numa janela do bash e em outra janela ir executando o exemplo para alimentar a fila com objetos e acompanhar o comportamento dos procedimentos de alimentar e consumir a fila. A recuperação da fila será imediata, instantânea, afinal, assim como o MemCache, o Starling está preparado para receber milhares de operações por segundo.
E é isso, o seu servidor de filas já está rodando e sendo alimentado/consumido. Agora é aplicar para o que você está precisando
Há um probleminha chato com a gravação de log em disco que o Starling faz das filas. Todo o set feito gera o objeto na memória e também em disco – geralmente em /var/spool/starling/. O problema é que o get somente remove o objeto da memória e não do disco. Aparentemente isso foi feito pra ser assim mesmo e segundo o próprio Blaine Cook este arquivo de log não ficará sendo incrementado para sempre, pois, depois de um certo tamanho (o engraçado é que ele não fala esse certo tamanho) ele será rotacionado, mas por enquanto ainda não descobri este certo tamanho e o arquivo tem crescido infinitamente.
E apenas uma observação quanto ao consumir_fila.rb: Não deixe-o executando por muito tempo e nem muito menos esqueça de finalizá-lo pois como ele fica em loop infinito poderá ocupar o seu processador a toa.
7 out
Não há dúvidas que o TextMate é um excelente editor para se trabalhar com Rails, mas como nem todos possuem um Mac para ter o prazer de utilizar este editor, o jeito é se contentar com alternativas menos hype sexy.
Para quem usa Gnome, porém, é muito mais fácil encontrar uma ótima alternativa. O gedit é um editor de texto que vem, geralmente, por default em qualquer distribuição Linux com Gnome. Não vou falar muito do gedit como editor pois este não é o foco do post, a idéia é mostrar apenas o projeto gedit-rails, que é o projeto que contém uma série de utilitários para deixar o gedit ‘turbinado’ para se trabalhar com Rails.
Para instalar o gedit-rails é super simples, basta fazer o download do projeto (zip, tar.gz ou via clone do repositório do github) e fazer a instalação executando o script install.sh. A instalação é simples e não há nenhum estágio além da execução da execução propriamente dita do script e depois disso o trabalho será apenas de configuração.
A instalação adicionará no gedit o tema de fontes e cores: Darkmate, os plugins: Class Browser, HTML Tidy, Rails Hot Keys, Rails Hot Commands e Snap Open e o mais importante, os snippets. A configuração pode ser feita basicamente em duas etapas:
- Tema de fontes e cores: Edit > Preferences > Fonts & Colors> Darkmate. E o resultado será:
- Plugins: Edit > Preferences > Plugins. Lembre-se, os plugins que foram instalados e que podem ser ativados são: Class Browser, HTML Tidy, Rails Hot Keys, Rails Hot Commands e Snap Open. Os snippets já estarão funcionando sem nenhuma modificação. Basicamente alguns dos recursos adicionados serão:
Recomendo também a leitura dos posts sobre gedit-rails do Urubatan, um dos autores do projeto.
Para quem curte o VI também existe uma ótima opção, o vim-rails. Qualquer dia escrevo sobre este addon.
12 mai
A ‘temporada’ de eventos de 2008 já começou e está a todo vapor. Este ano eu novamente eu não pude participar do FISL, mas não vou perder (pelo menos não quero perder) os outros eventos do ano. Algumas palestras já estão confirmadas:
Além destas apresentações já confirmadas, estarei entre os dias 16 e 19 de maio em São Paulo para participar do Falando em Java.
14 set
Semanas sem postar nada, estamos aí de novo. Vou tentar me lembrar dos últimos ou pelo menos de alguns dos últimos acontecimentos desse tempo longe do blog e fazer um resumo, ou pelo menos algo semelhante a um.
[code]System.gc();
System.gc();
System.gc();[/code]
Será que com um “toc toc toc” desses o GC se anima a rodar? hehehe
Encontrei os teus dois trabalhos, do jantar dos filosofos e do barbeiro dorminhoco com a implementação em java, como ainda estamos aprendendo C++ ficaria muito grato se pudesse disponibilizar o codigo em C++ para linux, para meu email.
email: [email]
Desde ja agradeco pela atenção.
Últimos Comentários