Dump no MySQL com usuário de leitura

Mais uma nota mental pra não esquecer no futuro.

Precisava fazer alguns dumps de banco para análise de um bug que ocorreu, porém meu usuário tinha apenas permissão de leitura, e o dump costuma lockar as tabelas pra que nada aconteça durante o dump, ou seja, precisa permissão de escrita. Meh.

Por sorte, existe a opção –lock-tables no MySQL e é apenas setá-la para falso:

mysqldump -u user -h host.da.maquina.com nome-da-base -p --lock-tables=false > dump.sql

Fácil e problema resolvido.

Update #1:

Para quem usa o InnoDB, pode ser usado também a opção –single-transation ao invés de –lock-tables=false. Diga do Wagnão nos comentários.

Posted in mysql, programação | Tagged | 5 Comments

Dando track em um branch remoto no git

Post com dica simples e rápida.
Sempre que você vai trabalhar em um branch que está já remoto, é necessário que seja feito o track, e pra isso, existem algumas maneiras que fazem a mesma coisa:

git branch working --track origin/working
git checkout working

ou então:

git checkout -b working --track origin/working

melhor ainda, vc pode omitir o –track que o git já se liga sozinho:

git checkout -b working origin/working

mais melhor de bom então:

git checkout -t origin/working

Usando a opção -t no checkout, vc já cai no branch e trackeia o remoto.
São diversas maneiras que fazem a mesma coisa! :)

Posted in git, programação | 1 Comment

Como evitar o git push –force

Post rápido pra consulta posterior.

Tenho trabalhado em um ambiente bem ágil, em que mudanças são respondidas com rapidez e as vezes, alguma nova feature que está lá, feliz da vida e pronta, esperando no seu master, não tem que ir, afinal, vai rolar um deploy emergencial que deve conter apenas aquela dada correção que você fez.

Nao vou entrar a fundo pq o git push com –force é ruim quando se trata do seu branch principal, mas com ele, você pode destruir sem querer muita coisa, seja um commit que seu colega de trabalho acabou de fazer e você não se ligou, seja toda a história do git.

Um workaround que precisei decorrer esses dias pra que o –force não acontecesse foi:

A partir do master, criei um branch e fui pra ele:

git checkout -b temp

Nesse branch, eu reverti uma série de commits, mas não um por um, e sim, numa pancada, por exemplo, tenho a sequencia de commits A -> B -> C -> D -> E -> HEAD:

git revert B^..E --no-edit

Com isso, reverti todos os commits, de B até E, que era exatamente o que eu precisava. Detalhe que pra reverter um range, vc precisa estar com o git na versão 1.7.4 pra cima. Mas isso depois ia fazer com que eu revertesse de novo oq eu reverti desta vez, pra que eles voltassem, e então ia ter que fazer a mesma coisa. Mas, fiz o seguinte:

git checkout master
git merge temp --squash
git commit -am "Esse commit deve ser revertido depois do deploy"

Com a opção squash no merge, todas as mudanças feitas no branch temp vão para o master como modificações e não como commits e com isso, gero um novo commit. E pra reverter depois é então só um.

Foi assim que eu fiz. Como você faria ?

Posted in git, programação | 3 Comments

Endereços, distâncias e mapas em sua aplicação Rails com GoMaps

Aqui na GoNow, ao desenvolver um produto novo, tivemos que executar várias consultas relacionadas a endereços.

Como essas funcionalidades tinham funções bem próximas, decidimos fechar o escopo e lançamos uma gem, chamada GoMaps.

Suas principais funções são:

  • Verificar se um endereço é válido
  • Distância entre dois endereços
  • Mapa (Google Maps) com a rota entre dois endereços
  • Direções em formato HTML entre dois endereços
  • Buscar o endereço através do CEP (para o Brasil)

Mini-tutorial

Vamos criar um endereço e utilizá-lo como base:

address = GoMaps::Address.new "Rua Tenerife, 31, Sao Paulo, Brasil"

Caso deseja verificar se esse endereço é válido:

address.exist?
=> true

Para calcular a distância entre dois pontos (por padrão, é devolvido em kilometros):

address.distance_to "Av Paulista, Sao Paulo, Brasil"
=> 6.3

Para gerar o mapa temos que criar um objeto do tipo GoMaps::Direction:

direction = GoMaps::Direction.new(:from => "Av Paulista, 100, Sao Paulo, Brasil",
                                  :to => "Avenida Brigadeiro Faria Lima, 1000, Sao Paulo, Brasil")

E com isso, conseguimos manipular os mapas (com parâmetros para o tamanho) e as direções (com parâmetro para língua):

direction.to_map
direction.to_html

ou:

direction.to_map(:width => 400, :height => 700)
direction.to_html(:language => 'pt-BR')

E também conseguimos recuperar um endereço a partir do CEP, com um objeto do tipo GoMaps::CEP:

cep = GoMaps::CEP.new('01310-000')
cep.street
=> "Avenida Paulista"
cep.city
=> "São Paulo"

Caso tenha alguma dúvida, pode entrar em contato pelo gtalk em ricardobcs@gmail.com.
Pode também fazer um fork do projeto e adicionar novas features. Será com certeza bem vindo!

Posted in programação, ruby on rails | Leave a comment

Scheduler

No dia a dia do desenvolvimento, sempre nos deparamos com necessidades de executar tarefas como dump de bancos, disparos de emails, etc.

Em Rails, já utilizei duas gems legais, rufus-scheduler e whenever.

O rufus-scheduler nada mais é do que um processo rodando em ruby na sua própria aplicação. Foi bem feita, mas particularmente eu achei q além de sobrecarregar a aplicação, dependendo do que você quer fazer, estoura alguns erros.

O whenever já utiliza do crontab, não sobrecarregando em alguns casos a sua aplicação.

Para utilizar ele, precisa instalá-lo:

$ gem install whenever

Uma vez instalado, dentro da sua aplicação você chama:

$ wheneverize .

[add] writing `./config/schedule.rb’
[done] wheneverized!

O arquivo config/schedule.rb é onde vc escreverá, em ruby, o que vai para o cron. Nele você pode rodar um rake, ou um runner, ou um comando mesmo unix e setar por horas, minutos, dias ou anos da seguinte forma:

every 2.hours do
command ‘/usr/bin/some_great_command’
runner ‘MyModel.something’
rake ‘some:rake:task’
end

E voy là:

whenever -w

[write] crontab file written

Para ver o que está no seu crontab, você pode utilizar o comando ‘crontab -l’.

Existem várias maneiras para sempre carregar o que está no seu whenever. Uma delas é criar um arquivo dentro do config/initializer e colocar `whenever -w`. Isso vai sempre executar e sobrescrever o seu crontab.
Outro é executar quando fizer um deploy usando capistrano, e nele, mandar executar o comando whenever -w.

Abraços.

Posted in programação, ruby on rails | Tagged , , , , | 2 Comments

Bye Ireland. Olá Brasil.

Terminou. Foi-se. Acabou!

Mesmo achando que iria postar várias vezes aqui, me enganei. Mas como fiz um post inicial, um no meio, falta do fim.

Como embarquei dia 13 de dezembro de 2008, nada mais justo desembarcar 13 de dezembro de 2009, fechando assim 1 ano de experiência vivida em terras geladas irlandesas.
Marquei vários pontos durante esse ano. Novos amigos, novos conhecimentos, nova experiência, nova vida, novo Ricardo. Fui o louco que chamaram quando decidi largar tudo aqui para viver algo do zero, e fui mais uma vez o louco que decidiu largar tudo lá e voltar para o meu país recomeçar (ou continuar?).

Admito que voltei com o coração mais apertado do que quando fui. Não consegui ainda ponderar se foi o momento certo para retomar aqui, mas tenho a certeza que a readaptação aqui no Brasil foi mais complicada do que a adaptação na gringa – mas isso sim é um assunto de mesa de bar.

Saldo final: 100% de lucro.

Posted in irlanda | Leave a comment

a half year abroad!

Felicidades e tristezas. Alegrias e decepções. Aproveitamento mais do que cem por cento. É assim que tenho considerado tudo que venho vivendo fora do meu querido Brasil. É assim que venho crescendo cada vez mais e me tornando alguém muito melhor do que já sou.

O medo impera muitas vezes em novas experiências antes de ser praticadas. A busca por trabalho e o medo de não achar, o medo do novo, o medo dos antigos amigos que ficaram pra trás sumirem, o medo de fazer novas amizades, o medo do novo. Se não fosse esse medo que venho sentindo, não teria a mínima graça e não seria nada emocionante cada conquista que alcancei.

Foram viagens feitas, foram amigos novos, fluência em uma nova lingua, coisas que estão marcadas para sempre. É uma expêriencia que um dia pode terminar, mas vou viver buscando por mais e mais, contando com desafios, pra que me faça crescer como pessoa.

Como um conhecido que viveu aqui já tinha citado antes, virei também cidadão do mundo. Não quero retomar a vida rotineira e levar uma vida comum, ter um carro, uma casa, casar, filhos e trabalhar pra poder pagar um seguro-saúde pra poder um dia falecer em uma cama quentinha de algum hospital qualquer.

E conversando com um amigo que já viveu o que venho vivendo, termino dizendo suas palavras: “Dinheiro não tem valor. Qualquer bandido pode tirar isso de você. Invista em conhecimento, viagens, cultura e conheça novas pessoas. Isso ninguém nunca vai tirar de você, só a morte.”

Posted in irlanda | 1 Comment

Texto que mandei no google groups e-dublin

Imendando o post de hoje do e-dublin, falando sobre orgulho de dois amigos
do Edu, vou contar uma expêriencia que aconteceu comigo no trabalho e eu me
senti envergonhado pela pessoa, que por sinal é brasileira. Irei chama-la de
Astrotilde.

Venho fazendo treinamento há 2 semanas e passando por vários setores da
empresa, aprendendo sobre tudo pra poder cobrir qualquer posição que venha a
precisar.

Acontece que, numa dessas, em um dia desses, eu cheguei pra cobrir o turno
da tarde/noite e Astrotilde estava saindo do turno da manhã, e como boa
brasileira, Astrotilde gosta de trocar umas palavras em português. Era a
segunda vez que falava comigo. A primeira foi no primeiro dia de trabalho e
suas unicas palavras diziam que a vida aqui não estava fácil e que o
trabalho ela tinha certeza que ia ser um saco (detalhe: sem ter
trabalhado!), mas que precisava de dinheiro, já que mesmo com cidadania
italiana não estava ajudando em nada e sua “profissão” aqui não estava
rendendo nada também.Na segunda vez que conversamos, na troca de turno,
Astrotilde diz que não quer fazer o trabalho pesado, que não é pra ela, mas
que mesmo assim ela não ia reclamar (mas já estava!) e que precisava de
dinheiro.

Conclusões:
1 – Se você vier pra cá e precisar trabalhar (99,9% de nós precisamos) faça
com vontade e disposição, e não reclame NUNCA. Tem mta gente procurando
trabalho, já que não estamos numa época boa e, tenho certeza que se você não
fizer bem o seu trabalho, não vão hesitar em colocar outra pessoa no seu
lugar.

2 – Meu medo é que Astrotilde queime o filme dos brasileiros no trabalho, já
que ela é preguiçosa, não quer fazer o que mandam – ou seja, vai fazer  mal
feito. Eu espero que, assim como eu, os outros brasileiros façam bem feito o
trabalho e mostrem que o problema vai ser ela, não os brasileiros em geral.

3 – É fantástico ver como europeu não reclama do tipo de trabaho. Um dos
meus workmates é formado em Eng. Civil, só que por conta da crise, perdeu o
emprego e conseguiu outro, em outra area totalmente diferente, e tá lá,
fazendo com a maior vontade e prazer, sem nenhum tipo de preconceito.

4 – Independente do trabalho que você tenha, faça valer a pena cada centavo
ganho. Mostre seu potencial, mostre que você pode crescer, fixar uma
confiança maior. Não vá simplesmente pelo dinheiro, não vá pra somente fazer
seu trabalho reto e redondo, mostre pró-atividade. Faça a diferença, faça
valer, seja a diferença!

Não sou mto bom em escrever textos mas estou compartilhando essa experiência
pra ninguém cair na mesma que Astrotilde.

See you!

Posted in irlanda | Tagged | Leave a comment

Até então…

Já passou da hora de eu atualizar com algum conteúdo aqui.

Daqui 4 dias farão 3 meses que deixei o Brasil para viver uma aventura diferente, presenciar algo novo na minha vida. Mta coisa eu pensei que fossem ser diferentes como achar trabalho, casa de imediato e viajar tão logo.
O tempo só voou nesses 3 meses e a impressão é que não aproveitei nada até então mesmo tendo feito um monte de coisa nova.
Por sorte, estou com um apartamento ótimo em frente ao mar morando com um hungaro super gente boa! Perfeito para falar inglês, aproveitando a fluência dele.
O emprego comecei quinta passada (dia 5) com o treinamento. Estou trabalhando no Burguer King no aeroporto de Dublin, ou seja, quem vier pra cá, passa dar um alô pra mim lá. É divertido e cansativo ao mesmo tempo, a parte boa é que o sonho de viajar pra ótimos lugares na Europa aumentou, já que vou ter dinheiro pra isso, além do meu sustento e minhas contas.
Quanto a saudade: isso só aperta. Mata lembrar da família, dos bons churrascos do Brasil, do calor, da comida da minha mãe, da minha bateria, dos meus cachorros.. mas tenho certeza que vai ser ótimo voltar reencontrá-los e pensar que a missão toda feita aqui foi cumprida. Não sei exato quando volto, não sei quanto tempo fico aqui, mas eu volto um dia pra matar a saudade, nem que seja por uns dias..

Posted in irlanda | Leave a comment

Server…

…novo! :D

Vamo ve qualeh q eh dessa dreamhost!

Posted in Geral | Tagged | Leave a comment