December 12, 2011
Comandos git exageradamente lentos…

Fala galera!

Recentemente instalei o git em uma máquina zero bala, até ai tudo bem, porém algo muito estranho estava acontecendo, TODOS os comandos git estavam exageradamente lentos, alguns chegando a demorar cerca de 1 minuto.

Se alguém tiver um problema parecido, basta somente configurar algumas variáveis, rodando esses comandos no console:

git config --global user.name "Your Name"
git config --global user.email you@example.com
git commit --amend --reset-author

Bem, é isso ai, comigo funcionou 100%! Abraços!


December 11, 2011
Precisando ressuscitar o lion?

Fala galera!

Não sei se muita gente já passou por isso, sinceramente pensei que nunca passaria, mas foi extremamente irritante.

Migrando de um Mac para outro.

Recentemente precisei migrar minha aplicações para uma outra máquina. Decidi usar o aplicativo do Mac para isso, o Migration Assistent.

O programa é bem tranquilo de usar e foi desenvolvido justamente para essa causa, porém no meu caso não deu muito certo.

Tudo estava indo muito bem até o momento de abrir um aplicativo migrado… simplesmente travou! Hmm… achei estranho isso… tentei fechar… nada… Hmm… olha só… sentindo faro de problemas… na mosca! Quando reiniciei a máquina não conseguia mais iniciar o sistema, ficava travado na tela da maça…

Read More


December 2, 2011
Ordenando documentos embutidos no mongodb

Fala galera! Precisei recentemente fazer um ordenação de um documento embutido no mongodb utilizando a gem mongoid

Imagine a estrutura a seguir:

user.rb

class User
  include Mongoid::Document
  field :name, :type => String,  :index => true
  embeds_many :lists
end

list.rb

class List
  include Mongoid::Document
  field :name, :type => String, :index => true
  embedded_in :user
  embeds_many :items
end

item.rb

class Item
  include Mongoid::Document
  field :name, :type => String, :index => true
  field :price, :type => Float
  embedded_in :list
end

Read More


September 21, 2011
Trabalhando com tarefas em background usando o resque

Fala galera! Vou escrever um pouquinho sobre um recurso muito bacana e ao mesmo tempo muito importante, que é o de trabalhar com tarefas em background.

Cenário

Como exemplo para nosso post, iremos adotar o envio de e-mail em massa, ok? Onde o usuário ao clicar em “disparar e-mails” será disparado cerca de 1000 e-mails.

NOTA: Não irei abordar a aplicação como um todo, irei focar somente no método do envio de e-mail no modelo de mensagem, até porque é o que mais nos interessa.

Problema

Imagine o momento que o usuário clicar em “disparar e-mails”… Dependendo da quantidade disparada, o usuário pode não ter uma experiência muito boa em seu site, pois o mesmo terá de esperar até o final da execução da tarefa. E como todos nós sabemos que alguns usuário são um pouco impacientes(Eu), o que pode acontecer para piorar? Isso mesmo! Ele irá tentar 1000.times { puts “novamente…” } achando que a ação não esta acontecendo.

Solução

Existem outras ferramentas para nos ajudar a resolver este problema, mas neste post irei abordar o resque.

A implementação do resque é bem simples, vamos lá?

Read More


September 20, 2011
Phusion Passenger com várias versões de ruby

Fala galera! Depois de um tempo sumido, estou voltando a escrever! Vamos lá então que já estou atrasado!

Recentemente precisei configurar meu servidor de modo que rodasse o passenger com várias versões do ruby. Achei um post muito bacana sobre o assunto, foi nele que me baseei para conseguir colocar tudo para funcionar e nele que me basearei para escrever esse post aqui também.

Irei utilizar nginx neste post, mas caso você queira usar o apache, visite o post original abaixo.

http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/

Estratégia, em grego strateegia, em latim strategi, em francês stratégie..

Nossa estratégia será a seguinte:

Read More


July 21, 2011
Rvm, Ruby e ImageMagick no Lion

Se você não se conteve e atualizou seu Mac OS X para a nova versão lion antes de seus amigos cobaias, acredito que tenha tido alguns probleminhas com o rvm, ruby e ImageMagick, acertei? Claro que acertei! eu fui uma coabia… :(

Para poupar sua navegação ao google, irei facilitar um pouco como resolver esses problemas, vamos lá?

OBS: Todo o passo a passo abaixo estarei me baseando que você não tenha instalado o rvm, ruby e o ImageMagick.

Git

Assim que eu instalei o meu lion, tive problemas com o git, caso você tenha o mesmo problema, basta reinstalar baixando um .dmg:

http://code.google.com/p/git-osx-installer/downloads/list?can=3

Rvm

Vamos agora instalar o rvm. No terminal entre com o comando:

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

Read More


July 19, 2011
Chega de “RAILS_ENV=production”!!

rake db:migrate RAILS_ENV=production
rails c production

Nossa.. como é chato ter que especificar o ambiente de produção a cada comando executado em nosso servidor…

Será que podemos fazer algo para automatizar isso? Infelizmente não… teremos que conviver com isso pra sempre…

Brincadeira! Sempre tem algo que possamos fazer! E vamos ver agora!

Para isso, em nosso servidor de produção, basta adicionar o código abaixo no arquivo ”~/.bashrc”.

export RAILS_ENV='production'

Somente isso! Da para acreditar? Agora podemos rodar nosso comandos prediletos assim:

rake db:migrate
rails c

Bem legal né?

É isso ai pessoal, abraços!


July 18, 2011
Criando “alias” para todos os seus projetos de uma só vez!

Essa dica é bem bacana, principalmente para poupar nosso tempo e saco! Toda vez que temos que ir para a pasta de um projeto é a mesma coisa, “cd pasta/pasta_do_projeto/projeto”, fala sério né? muito chato isso…

Montei uma pequena função para me ajudar nesse trabalho. Basta colocar o código abaixo dentro do arquivo ”~/.bash_profile” se você estiver no Mac e no ”~/.bashrc” caso esteja no Linux e alterar o valor da variável “projects_folder” para a pasta onde contenham os seus projetos.

projects_folder="$HOME/Documents/projects"
for i in $(ls "$projects_folder")
do alias "$i"="cd $projects_folder/$i"
done

Feche e abra seu terminal para que as alterações sejam aplicadas e agora como num passe de mágica, basta digitar o nome do seu projeto e teclar [enter] que você será teletransportado para o seu projeto!

Bem, é isso ai pessoal!

ATENÇÃO: Só tome muito cuidado com o nome do projeto para não conflitar com algum comando existente.


July 18, 2011
Exibindo o nome da branch atual no terminal

Para quem trabalha com git, sabe que as vezes diante de muitos projetos, fica confuso saber em que branch estamos, precisamos usar o comando git branch -a para nos localizar, certo?

Para facilitar esse trabalho, podemos simplesmente exibir o nome da branch no prompt do nosso terminal. Para usuários de Mac, basta adicionar o código abaixo no arquivo ~/.bash_profile, usuários de linux, adicione no arquivo ~/.bashrc.

# SHOW GIT BRANCH
function parse_git_branch {
 git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
export PS1="\u@\h:\W \$(parse_git_branch)\$ " 

Pronto, agora toda vez que você entrar em um diretório que contenha uma estrutura git, será informado em qual branch você esta trabalhando, veja:

diegoalvareznogueira@diego-macbook projeto (master) $ 

Prático não?!

Abraços!


July 14, 2011
Pesquisando dentro de um array

Saindo uma dica bem fresquinha sobre como pesquisar dentro de um array!

Imagine a seguinte situação:

@users = User.all(:conditions => ["country = ?", params[:country]])

Imagine que diante do resultado obtido em @users, precisemos filtrar por usuários que morem no Estado do Rio de Janeiro. Sabemos que isso pode ser feito apenas adicionando mais uma condição como a de country ao carregar os usuários… só estou usando como exemplo, não vá me trazer todos os usuários do banco de dados e filtrar depois, ok?

Bem, iremos utilizar o método select para fazer o filtro:

@users.select { |user| user.state == "Rio de Janeiro" }

Pronto! Molezinha né?

Abraços!


Liked posts on Tumblr: More liked posts »