Empresas Brasileiras, ou Por que você mora em uma merda de país?

18/01/2012
Quem me conhece sabe o quanto odeio ver as pessoas falando mal do Brasil, especialmente da minha cidade, Rio de Janeiro. Pois bem, em certos casos nós até que merecemos tomar umas boas porradas na cara para começar a cair na real do quanto isso precisa melhorar.
Eis aqui um relato do que se passou com minha pessoa nas últimas semanas:

Fato 1:
Comprei uma barraca de camping de uma empresa muito famosa no Brasil, quiçá a mais famosa e teoricamente a melhor.
Barraca grande, boa, com varanda, me atendeu perfeitamente no reveillon – tirando o fato de um dos barbantes da armação ter arrebentado enquanto montava a mesma pela primeira vez – e, em minha segunda viagem com ela, tive duas desagradáveis surpresas:
Dia 1) Fui a rua, voltei e me deparei com um dos gravetos da armação quebrado, quase furando a barraca.
Arrumei tudo bonitinho com a ajuda do Senhor dono do Camping, e ok. Let’s go to party.

Dia 2) Saí cedo, voltei cedo, e eis que me deparo com outro graveto quebrado, da mesma armação (a da varanda). Desisti de tentar consertar por causa do horário e começei a desmontá-la. Notei que a armação da barraca estava com alguns gravetos tortos, bem prováveis de quebrar na próxima montagem dela… até então tinha problema somente com a armação da varanda.

Volto de viagem, e no dia seguinte a minha chegada a cidade maravilhosa ligo para a empresa e conto o ocorrido; Eles pedem para eu enviar a armação com um relato do que aconteceu, etc… Paguei o envio, chegou para eles, não falaram nada se receberam ou não e ok.
Passados dois dias, ligo para saber o andamento do meu pedido: Recebo a notícia de que minha armação está com eles mas ainda não avaliaram, nem tem um prazo para enviar um novo jogo, talvez na semana que vem já esteja com você é a resposta.

Resumo da história, hoje, 18 de janeiro de 2012, com um feriado na minha cidade na sexta, no dia 20 de janeiro de 2012, estou sem uma barraca para acampar, e, provavelmente, sem ter como viajar.

Fato 2:
Vou a uma cafeteria bem famosa, com cultura completamente estrangeira, escolho meu café; pago; recebo um café diferente; recebo o ‘errado’ – ainda assim bom – como cortesia e o meu pedido certo. Tá certo que é um mísero café de menos de 10 reais, muito mais barato que uma barraca de camping.

Daí você pensa, mas, quer comparar um café de 10 reais com uma barraca de 300 reais?

Então o que dizer quando a Amazon envia a você um kindle novo, cobrindo a garantia deles, e ainda paga o frete do seu envio?
Ah, eu estou maluco?
Leia isso então: Como funciona o atendimento da Amazon

Resumo da história: Falta muito para podermos bater no peito e falar que moramos em um país de bons serviços e/ou de boas empresas.

Contribua com o Git Na Prática

07/04/2011

Pra 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.

[1] https://github.com/git-na-pratica/git-na-pratica

Meu ambiente de trabalho em 7 itens

14/01/2011

Seguindo 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.

2) Kate e Konsole

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.

4) Firefox e Firebug

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.

5) PivotalTracker

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/2010

Depois 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/2010

Que 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/2010

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:

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/2010

Continuando 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/2010

Saudaçõ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…


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.