Empresas Brasileiras, ou Por que você mora em uma merda de país?
18/01/2012Contribua com o Git Na Prática
07/04/2011Pra quem não sabe, tem um pessoal aqui no Brasil tocando um projeto chamado git na prática[1], que tem por finalidade criar uma documentação rica e em português desse sistema de versionamento.
De uns dias para cá, a galera começou a andar em um ritmo muito bom, estando prestes a terminar uma primeira parte da documentação, já pensando nos tópicos futuros.
Se você conhece algo de git e tem vontade de contribuir com o projeto, faça seu fork e prepare seu material para submeter!
A comunidade agradece.
Meu ambiente de trabalho em 7 itens
14/01/2011Seguindo a sugestão do Vagner Zampieri no blog dele, vou falar sobre 7 itens que utilizo no meu ambiente de trabalho:
Let’s Go:
1) Slackware
Desde 2005 é meu sistema operacional primário. Muitos dizem que é ruim por não possuir um gerenciador de pacotes, mas, de uns tempos para cá venho utilizando o Sbopkg, que faz integração com o Slackbuilds e meu problema com esse tipo de coisa é mínimo.
Meu maior problema com editores de texto é não encontrar um com a interface tão limpa quanto o Textmate do osx… Ainda estou na busca de um editor clean para linux. Por outro lado, tenho um terminal altamente produtivo. Muito da minha velocidade no desenvolvimento vem da simplicidade dele. O Konsole é uma ferramenta muito boa para emular o terminal do Linux. Com múltiplas abas, posso realizar muitas tarefas rapidamente.
3) Git
O git com certeza é uma revolução na forma de se trabalhar. A criação de branches nunca foi tão simples, as alterações nunca foram tão bem sincronizadas com o repositório original e suas alterações nunca foram commitadas tão organizadamente. O git lhe induz a trabalhar melhor com repositórios.
Dupla bastante produtiva para o front-end das aplicações que tenho desenvolvido. Altamente recomendável, principalmente para verificar eventos javascript e código html gerado pelas aplicações.
Virou meu queridinho depois de começar a trabalhar em home-office. Todos os projetos que tenho feito estão sendo gerenciados lá, o que me fez aumentar muito a produtividade. O Blog do RubyOnRio foi cadastrado lá essa semana para as futuras reformulações.
6) Skype e Google Talk
Indispensáveis para comunicação. Facilitam muito o diálogo quando não podemos estar face a face com os membros de equipes, ou quando precisamos daquele papo técnico com alguém!
7) RSpec
Você só conhece o poder dos testes quando faz alguma alteração no seu projeto(coberto por testes) e sabe que não terá problemas em algum lugar se os testes passarem.
Escrever testes com o rspec tem se tornado uma coisa prazerosa de fazer, e tem sido minha meta de aperfeiçoamento… Espero continuar estudando-o mais e mais.
Enfim, adicionando algumas outras coisas:
Além de Ruby/Rails, minha linguagem e framework, respectivamente, de trabalho, todas as ferramentas acima me facilitam muito na hora de desenvolver.
Posso afirmar hoje que minha linguagem secundária de trabalho é Javascript. Apesar de sempre ter aversão à ela, recentemente tenho necessidade de estudá-la e aperfeiçoar meu conhecimento. É mais uma das minhas prioridades de estudo atualmente.
É isso. Até a próxima.
Sinatrarb Com Documentação em Português
19/11/2010Depois de muito tempo (2 meses), enfim eu matei muitas aulas consegui tempo pra finalizar a tradução da documentação do Sinatra.
Foi minha primeira contribuição significativa em algum projeto opensource. E, com certeza foi muito válida. É uma ótima forma de contribuir em projetos opensources além de você conhecer melhor o framework.
Espero que esse material seja útil. Ele sem encontra em:
https://github.com/sinatra/sinatra/blob/master/README.pt-br.rdoc
Abraços.
Luciano Sousa
Utilizando o Sinatra, parte I
28/10/2010Que Ruby é uma linguagem muito fácil de se utiilzar você já deve saber.
Que Rails é um framework muito simples de se utilizar você também deve saber.
Mas e o Sinatra? Você já conhece?
Sinatra é um micro-framework para criar aplicações web de uma forma simples, fácil e rápida.
A vantagem dele sobre qualquer outro framework web é que você consegue resultados rápidos em um esforço mínimo, enquanto que com outros frameworks você consegue um resultado mais robusto com um tempo relativamente maior.
O uso do Sinatra é recomendado para subir pequenas aplicações rapidamente, mas, grandes projetos também podem ser feitos no Sinatra.
O Sinatra possui a seguinte estrutura:
- a pasta raiz do projeto;
- um arquivo .rb qualquer que é inicializado no console;
- pasta views;
- pasta public;
- arquivos de classe quaisquer;
Exemplificando:
Antes de mais nada, vamos instalar a gem do sinatra:
$ gem install sinatra
Agora, vamos criar uma pasta para guardar os arquivos desse projeto, a minha se chamará sinatra-example.
Dentro dessa pasta, vamos criar o arquivo example.rb que terá todas as rotas de requisição.
Obrigatoriamente, devemos fazer o require do sinatra no example.rb.
As primeiras linhas do arquivo serão:
require 'rubygems'
require 'sinatra'
Com isso, podemos utilizar o sinatra em nosso projeto. Nosso primeiro exempo o famoso ‘hello world’ será exibir uma mensagem qualquer no browser.
No example.rb, digite:
get '/hello' do
'hello world'
end
Com isso, você pode ver o seguinte: o funcionamento do sinatra é baseado em requisições HTTP, como o get. O parâmetro ‘/hello’ é a url digitada no browser e o que está entre aspas dentro do do, end é o que será renderizado no browser quando a url digitada pelo usuário for a ‘/hello’.
No console, digite:
$ruby example.rb
Você receberá uma mensagem como:
[2010-10-22 13:41:23] INFO WEBrick::HTTPServer#start: pid=1788 port=4567
Isso diz que o sinatra foi inicializado na porta 4567. Abra no browser http://localhost:4567/hello e veja o resultado.
Ok, isso é muito simples. Vamos ao próximo passo. Iremos mostrar uma página html criada por nós.
Por padrão, o sinatra lê todos os arquivos html dentro da pasta app/views, logo, vamos criar essa pasta.
Pasta criada, crie um arquivo chamado index.erb e coloque seu código html dentro dele.
Nota, o sinatra lê diversos tipos de templates, html, erb, haml, erubis, etc. Vamos utilizar o .erb.
Criado seu arquivo index.erb, abra o arquivo example.rb e crie a requisição para ele.
get '/' do
erb :index
end
Após qualquer alteração no arquivo example.rb, devemos reinicializar o sinatra.
Após reinicializar a aplicação, abra o endereço http://localhost:4567/
Todo o código digitado na sua index.erb será renderizado no navegador.
Vamos para o último exemplo desse post:
No sinatra, qualquer variável declarada no escopo da requisição, pode ser utilizada na view do projeto.
Vamos exemplifica isso criando uma requisição onde o usuário irá inserir um nome qualquer na url ‘/user/nome’ e ele será renderizado na view.
Nossa requisição ficará assim:
get '/user/:name' do
@name = "You entered #{params[:name]}"
erb :user
end
Dentro da pasta views, vamos criar uma página user.erb para exibir a variável ‘@name’.
Você pode fazer isso da forma que lhe convir, no meu exemplo ficará assim:
<center><h1><%= @name %></center></h1>
Por hora é isso, nos próximos posts pretendo exemplificar o uso de filtros.
Há um exemplo do meu código no github
Abraços.
Adicionando o Bundler ao seu projeto Ruby
06/09/2010O Bundler é um gerenciador de gems de um projeto em ruby. O uso dele tem crescido bastante ultimamente e ele também foi integrado as dependências do Rails 3.
Se você desenvolve um mesmo projeto em mais de um computador, as funcionalidades dele o ajudarão muito.
Ao baixar/clonar seu projeto para algum computador diferente do normal, você terá de baixar todas as gems, uma por uma, para então começar a dar continuidade ao desenvolvimento. Caso possua o bundler, você só precisará de um comando para ele instalar todas as gems. Isso também o poupará muito tempo.
Para instalá-lo, digite no seu terminal/prompt:
O Bundler é um gerenciador de gems de um projeto em ruby. O uso dele tem crescido bastante ultimamente e ele também foi integrado as dependências do Rails 3.
Se você desenvolve um mesmo projeto em mais de um computador, as funcionalidades dele o ajudarão muito.
Ao baixar/clonar seu projeto para algum computador diferente do normal, você terá de baixar todas as gems, uma por uma, para então começar a dar continuidade ao desenvolvimento. Caso possua o bundler, você só precisará de um comando para ele instalar todas as gems. Isso também o poupará muito tempo.
Para instalá-lo, digite no seu terminal/prompt:
bash-3.1$ gem install bundler
Feito isso, acesse o root path do seu projeto e crie um arquivo com o nome Gemfile
bash-3.1$ touch Gemfile
Feito isso, você acaba de criar o arquivo que o bundler necessita para instalar todas as gems que seu projeto utiliza. Para habilitá-lo você precisa adicionar antes de mais nada, o repositório de onde serão baixadas as gems. Adicione a seguinte linha ao seu arquivo Gemfile:
source "http://rubygems.org"
Finalizando, você só precisa adicionar as gems do seu projeto ao Gemfile da seguinte maneira:
gem "primeira gem"
gem "segunda-gem"
Feito isso, em todo e qualquer lugar que você precisar instalar suas gems, utilize o comando:
bash-3.1$ bundle install
Pronto. Seus problemas com dependências acabaram.
Qualquer dúvida ou sugestão sinta-se a vontade em comentar.
Abraços e até o próximo post.
Como foi o The Developers Conference 2010, parte II
26/08/2010Continuando o artigo sobre o TDC2010 expandindo o relato sobre a palestra do José Valim, uma das funcionalidades que mais me chamou a atenção foi a generators. Essa funcionalidade permite configurar a geração de scaffold de acordo com a maneira que você desejar. Se eu for explicar detalhadamente vou expandir muito o post, então, procure sobre essas novas funcionalidades, vale a pena começar a testá-las.
Enfim, após o almoço, o Leonardo Bessa deu uma super aula de metaprogramação. Como eu já tinha assistido ao vídeo do RubyonRails no Mundo Real, (além da usual futucada no Ruby), não vi muita novidade em relação a linguagem, mas, a palestra fez com que eu expandisse meu raciocínio lógico, isso foi muito produtivo. A quem interessar, a palestra do RubyOnRails no Mundo Real é bem parecida com a que rolou lá, segue o link do vídeo e os slides.
A palestra seguinte, do Ricardo Almeida, abordou um dos temas mais interessantes para mim: Testes. O Almeida falou sobre TDD e BDD, exemplificando o uso do TestUnit, RSpec e Cucumer. Curti bastante essa palestra, mas, senti falta de exemplos, o que o Almeida tinha dito que realmente não teria muito, por se tratar de uma palestra mais conceitual.
A última palestra do dia, do Thiago Scalone foi a menos proveitosa pra mim. Ele falou sobre Ruby rodando em cima da plataforma SAP, mas, foi muito curta e me pareceu um tanto despretenciosa, poderiam ter aproveitado melhor esse tempo. Por outro lado, se fosse algo muito interessante também, eu acredito que não seria proveitoso. À essa hora eu estava muito cansado, e só pensava em dormir.
Isso encerra o dia de sábado. Foi muito legal participar da trilha de Ruby. Foi meu primeiro evento em São Paulo e além disso conheci muita gente maneira. Em especial o Rafael Rosa, do Ruby Inside, o Emerson Vinicius do Hora Extra Online que me fez companhia o dia todo, e o Armando, um carinha que ainda vai ser comentado no relato de domingo, sobre a trilha de Agile.
Obrigado a todos vocês pela simpatia.
Abraços e até o próximo post.
Como foi o The Developers Conference 2010, parte I
24/08/2010Saudações.
Depois de muito tempo resolvi voltar a escrever, e, nada melhor que relatar minha experiência de assistir a uma conferência em São Paulo pela primeira vez.
Enfim, ao que interessa.
Cheguei em São Paulo de manhã cedo e fui direto para o evento, marcado para começar as 09:00h, se atrasou 10 minutos foi muito. Super pontual, isso rendeu o resto do dia todo, porque ninguém teve de fazer palestra correndo, daí sobrou tempo pra tudo e todos.
A abertura ficou por conta da Yara Senger, que mandou muito bem, soube dar valor aos patrocinadores, organizadores, apoiadores e todos que contribuiram com o evento. No total foi uma galera de peso, que contribuiu mesmo. Para quem não sabe, o evento foi dividido por trilhas, e cada trilha era específica de um assunto, e cada trilha tinha um ou dois organizadores, que tinham alguns colaboradores também.
Passado essa parte da apresentação, chegou o ápice da abertura para mim: alguém Certified Microsoft – o Teched patrocinou o evento – começou a fazer um marketing e quando ia botar o vídeo pra rodar fez um comentário de como as pessoas desejavam dar tela azul no computador. Isso foi muito engraçado!
Ainda na abertura, o Pablo Mandril ressaltou a importância da comunidade SouJava no Brasil. Ela impulsionou todas as outras, por ser pioneira. Digno isso.
Passada a abertura e tudo o mais, direto para a sala da trilha de Ruby, onde foi iniciada com a palestra do Vinicius Quaiato, da Stefanini(uma das patrocinadoras do evento) sobre IronRuby (confira aqui).
Eu não sou fã de nada ligado a Microsoft, então pequei em não levar muito a sério essa palestra, mas, bati um papo com um pessoal lá que curtiu muito e achou muito proveitoso. Ponto pro cara.
Segunda palestra de Ruby no dia, ao meu ver a mais animada. Rafael Rosa, popularmente conhecido como @rafaelrosafu do RubyInside e da Locaweb, mandou ver com dicas para os novatos em Ruby. Muita gente deve ter curtido muito essa primeira impressão. De marcante, além de N links sobre ruby, o Rafael fez menção ao Fabio Akita e ao Vinicius Teles, deixando-os como ótimas referência de conteúdo sobre ruby e metodologias ágeis. A dica continua sendo repassada.
Durante o dia, o Rafael Rosa ainda gravou uma mensagem para o RubyOnRio, o grupo de usuários Ruby aqui do rio que tem crescido progressivamente. Confira no Link.
Seguindo as palestras, a palestra seguinte, foi a mais badalada do dia, o José Valim mandou muito bem em sua palestra sobre o Rails 3. Surreal as novas features que ele apresentou. Aguardo ansiosamente os slides. Valim também comentou que o rails3 deve ser lançado no fim desse mês. E, era notícia fresca.
Após a palestra do Valim, tivemos pausa para o almoço.
Continua…