Do you know that idiot that used all the server space with the production.log file? don’t be that guy!

It is surprisingly easy to configure log rotate to rotate your rails logs, don’t wait until your server is out of space.

I think everyone knows a guy that simply put a rails app online, maybe even used capistrano to automate the deployment, and one year later the app simply stopped working due to lack of disk space.

Then when you go there and find out that the production.log is the biggest file in the server.

That happens because rails will keep appending data to the file, but you probably do not need that much information, the logs from last year are not that helpful, and at least could be stored in a different file.

The simplest solution I’ve found for that is to use the same approach every other linux application uses to take care of the logs, logrotate.

The first step is to edit the file /etc/logrotate.conf, you can use VIM, nano or any other editor of your preference, the content of the file will be like this:

/path/to/app/log/*.log {
  daily
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  copytruncate
}

What exactly is happening? lets take a look at the log specifications.

  • daily – Rotate the log files each day. You can also use weekly or monthly here instead.
  • missingok – If the log file doesn’t exist, ignore it
  • rotate 7 – Only keep 7 days of logs around
  • compress – GZip the log file on rotation
  • delaycompress – Rotate the file one day, then compress it the next day so we can be sure that it won’t interfere with the Rails server
  • notifempty – Don’t rotate the file if the logs are empty
  • copytruncate – Copy the log file and then empties it. This makes sure that the log file Rails is writing to always exists so you won’t get problems because the file does not actually change. If you don’t use this, you would need to restart your Rails application each time.

To run logrotate manually, to test your configuration, you can use the command: ‘sudo /usr/sbin/logrotate -f /etc/logrotate.conf’

To test the delaycompress, you’ll need to run it a second time.

As you can see, it is really easy to avoid being ashamed by a full disk in production, just use logrotate and be happy 😀

GTD – acho que finalmente entendi :D

Já li bastante sobre o tal do GTD (Getting Things Done), li também o livro sobre ZTD (Zen to Done), e a pouco resolvi finalmente ler o livro do David Allen sobre GTD, e acho que finalmente entendi a brincadeira, pelo menos de uma forma que esta funcionando para mim.

Uma coisa que percebi é que é uma grande mudança de hábitos, e que eu funciono melhor mudando um hábito de cada vez, e foi o que fiz, adicionando passo a passo, ainda não estou usando todas as praticas mas já melhorou bastante minha organização.

E claro que como qualquer maluco de TI eu preciso de softwares para fazer qualquer coisa, e neste caso estou usando só o Evernote, por que ele torna a primeira prática extremamente simples, vou descrever passo a passo abaixo o que do GTD eu estou usando, e se alguém mais usa GTD e perceber que entendi alguma coisa errado, por favor estejam a vontade para me avisar 😀

Coleta
A coleta é a fase mais importante e mais difícil de começar na minha opinião, a idéia básica é se acostumar a colocar no mesmo lugar todas as possíveis tarefas que chegarem, mesmo antes de ter certeza se é uma tarefa.

Eu criei uma pasta chamada “Caixa de entrada” no Evernote, onde eu coloco todas as tarefas do trabalho, emails que precisam de ação, foto ou scan de contas que chegam, artigos que posso me interessar no futuro, idéias que eu tenho para novos projetos.

Quando for começar a fazer isto, um exercício interessante é sentar em algum lugar em casa e anotar tudo o que tu lembrar que precisa fazer, qualquer pequeno concerto, qualquer coisa que tu acha que precisa comprar, qualquer coisa que passar pela cabeça.

Um ponto importantissimo é que tem que ser um item em casa nota do Evernote, pense que esta escrevendo cada item em um pequeno pedaço de papel, ou se se sentir mais confortável, escreva cada item em um pedaço de papel e coloque tudo na mesma caixa 😀

Processamento Diário
Depois de encher a caixa de entrada, coisa que vai acontecer com frequencia, já que todos os dias recebemos emails, tarefas, e tudo isto deve ir para a caixa de entrada, temos de processar estas informações.

Este processamento tem um passo a passo bem simples e que deve ser seguido, para evitar que comecemos a fazer apenas o que queremos, gostamos e lembramos, e deixemos o resto por lá.

O processamento começa com o primeiro item da caixa de entrada, e termina no último, não devemos pular, olhar o de baixo que eu já sei o que fazer, começar pelo meio, …
Se não estiver usando o Evernote, a indicação é começar de cima para baixo, mas o importante é seguir uma ordem e não pular items.

Para cada um dos items, segue-se este script:

2. Precisa de algum tipo de ação sua neste item?
2. Não precisa
* Se precisar deste item como referencia no futuro, arquive ele
* Se não precisar dele como referencia no futuro, apague
2. Precisa
* Se ele é uma tarefa simples e leva menos de 2 minutos, faça agora
* Se ele é uma tarefa simples e leva mais de 2 minutos, adicione a lista de atividades
2. Se ele precisa de uma ação, mas é maior que uma única tarefa, agora este item é um projeto
1. Quebre o item em tarefas simples e adicione elas a lista de atividades
2. Anote no projeto quais tarefas pertencem aquele projeto
3. Nada por enquanto, mas um dia quem sabe
1. Idéias, coisas que não sabe se vai comprar, … tudo isto vai para uma lista chamada “Um dia quem sabe”

Sobre adicionar a lista de atividades, na lista acima isto é um conceito simplista demais, na verdade este item é mais complexo, por exemplo um item destes pode ser agendado para algum momento especifico no futuro, para isto você pode usar uma agenda, o calendário do seu celular, eu prefiro utilizar os lembretes do Evernote.

Quanto a listas de atividade, quando eu comecei eu tinha só uma, mas como é mencionado no livro, é muito mais produtivo quando as listas tem contexto, ou seja, hoje eu tenho um caderno no Evernote para todas as tarefas, e uso tags para separar por contexto, os contextos que eu criei por enquanto são:
@Fone
@Compras
@Pessoal
@Trabalho

Alem de eu também criar uma tag por projeto com o nome do projeto, e na hora de arquivar eu tenho várias tags por assunto.

Para facilitar a visualização, eu tenho também tags por dia da semana que uso na hora de organizar as tarefas da semana.

Fazer

Isto não esta explicito no livro, eu acho que todos deveriam sub intender isto, já que este é o objetivo, mas tem um monte de gente reclamando que o GTD não foca no “D”.

Eu acho que foca sim, e todos os dias eu pego a lista de tarefas, por contexto por exemplo, se estou no mercado ou no shopping eu pego a lista @Compras e compro o que esta ali.

Se estou no horário de trabalho pego a lista @Trabalho e começo a fazer os itens da lista.

Se aparecer alguma outra coisa durante o trabalho, o que sempre aparece, se for urgente vai direto para a lista @Trabalho e se não for vai pra caixa de entrada para processar amanha.

Assim que termino uma tarefa, marco ela como pronta e passo para a próxima.

Processamento Semanal

Bem parecido com o processamento diário, mas aqui você deve revisar todos os projetos para ver o progresso de cada, e lembrando que no conceito do GTD um projeto é simplesmente uma coisa que precisa de mais de um passo para ser feita, por exemplo, comprar uma bicicleta não é uma tarefa, e sim um projeto por que inclui escolher um estilo de bicicleta (speed, mountain, hibrida, dobravel, …), escolher uma bicicleta no estilo definido, pesquisar preço, e por último ir até a loja e fechar a compra.

Neste momento gosto de anotar nos cartões de projeto como anda o progresso de cada um.

Também é o momento para revisar a lista “Um dia quem sabe”, dar uma olhada nas idéias de lá, nas coisas que pensou em comprar um dia para ver se já esta na hora ou se não quer mais, apagar alguns itens daquela lista, …

E eu gosto também de re-checar os itens marcados como concluídos durante a semana, isto ajuda na motivação, ver a quantidade de coisas que conseguimos terminar durante a semana passada.

Vantagens que vi no GTD até agora

*Motivacional* – Antes de começar a ter todas as minhas anotadas, eu sempre acreditei ter uma boa memória e fazia tudo de cabeça, claro que as vezes eu esquecia de alguma coisa, mas o pior para a motivação e para o bom humor, é que várias vezes, durante o trabalho, temos uma tarefa principal e daqui a pouco começam a chegar inúmeras outras que precisam ser feitas no mesmo dia, mas a sensação que fica no final do dia é que não fizemos nada de produtivo pois aquela tarefa principal não foi finalizada.
Pois agora não tenho mais isto, posso ver uma lista grade de coisas finalizadas naquele dia, e como uma tarefa grande se torna um projeto, eu com certeza vou ver algum progresso naquela tarefa grande e importante que eu tinha, pois alguns dos itens serão marcados como concluídos.

*Organização* – Não estou mais pagando juros de contas atrasadas, não tenho deixado de fazer coisas que preciso fazer, e quando demoro muito para fazer algo, só o fato de ver todos os dias aquilo na minha lista de tarefas me incomoda o suficiente para fazer o mais rápido possível.

*Produtividade* – É incrível como o nosso cérebro perde tempo nos lembrando de coisas que não podemos fazer agora, e segundo algumas teorias temos uma quantidade limitada de atenção que podemos usar no mesmo dia.

Depois que você confiar no seu sistema, quando colocar uma tarefa na lista, o seu cérebro vai descansar e parar de bater naquela tecla por que ele sabe que a tarefa vai ser finalizada no momento necessário.
Isto poupa bastante energia, e tenho conseguido focar mais nas tarefas que preciso realizar, a quantidade de vezes que estou fazendo uma coisa e o cérebro começa sozinho a lembrar de outra que não posso fazer agora caiu para praticamente zero, e tenho completado muito mais coisas durante o dia.
Ou seja, percebo um aumento de produtividade no meu trabalho, e normalmente termino o dia menos cansado.

—————————-

Bom, acho que é isto, se eu esqueci de alguma coisa, por favor me avisem, e se gostaram da brincadeira, recomendo ler um pouco sobre GTD, gostei bastante do método, mesmo que eu ainda não esteja usando ele todo 😀

Introdução ao Pomodoro

  • Você já sentiu que tinha muita coisa acontecendo ao mesmo tempo e estava com dificuldade de dar atenção para tudo?
  • Já se sentiu cansado, parecendo que não tinha energia para focar na atividade que deveria estar fazendo?

Pois o pomodoro pode ajudar nisto, a técnica foi inventada por _Francesco Cirillo_ no final dos anos 80, e é baseada na idéia de que pausas frequentes podem aumentar a agilidade mental

——————————

Entre os objetivos da técnica, e parte da propaganda apresentada no site http://pomodorotechnique.com/get-started/  que vou traduzir livremente aqui, estão:

Trabalhe com o tempo, e não contra ele

Para muitas pessoas, o tempo é um inimigo. Nós corremos contra o relógio para terminar tarefas, atingir prazos. A Técnica Pomodoro te ensina como trabalhar com o tempo, em vez de viver brigando com ele. Uma técnica revolucionária mas também extremamente simples de se aprender, mas que pode mudar sua vida ao usa-la.

Eliminar o Burnout

É essencial para o Pomodoro a noção de que tirar pequenos intervalos agendados enquanto trabalha, elimina a sensação de se estar correndo contra o tempo. É impossível trabalhar demais se você se ativer ao sistema.

Gerenciar Distrações

Seja uma chamada telefônica, uma mensagem no Facebook ou simplesmente lembrar que tu precisa trocar o óleo do carro, muitas distrações e pensamentos aleatórios aparecem quando você esta trabalhando. A Técnica pomodoro vai te ajudar a anotar as distrações e ordena-las por prioridade, na maior parte das vezes elas podem esperar.

Criar um melhor balanço entre vida e trabalho

A maior parte de nós esta sempre convivendo com a culpa que vem da procrastinação. Se não tivemos um dia produtivo, é fácil acabar sentindo que não temos o direito de aproveitar o tempo livre. Se tornar mestre no Pomodoro inclui criar uma agenda efetiva, te permitindo aproveitar todo seu tempo livre.

A Mágica simples do tomate

O nome da técnica apareceu depois que o Francesco Cirillo começou a implementar a técnica utilizando um relógio de cozinha na forma de um tomate, que em italiano é Pomodoro.

O processo básico é simples:

  1. Escolha uma tarefa que você precisa realizar
  2. Configure um timer para 25 minutos
  3. Trabalhe exclusivamente nesta tarefa por todos os 25 minutos
  4. Quando o timer apitar, faça uma pequena pausa (5 minutos são o tempo indicado), neste pausa tome um café, caminhe um pouco, converse com o colega, olhe o facebook, ou seja, qualquer coisa não relacionada com trabalho.

Seu cerebro vai agradecer.

  1. A cada 4 pomodoros faça uma pausa maior (20 minutos é um bom tempo, ou 30) seu cerebro vai usar o tempo para assimilar novas informações e descansar para o próximo round.

O ideal é no inicio do dia, do período ou seja lá como você prefere chamar, que você faça uma lista das tarefas que pretende realizar naquele dia, uma tarefa pode precisar de mais de um pomodoro para ser concluída, isto não é problema. Mas é importante que você anote em algum lugar o que fez em cada pomodoro, o indicado na técnica é fazer isto quando começou a trabalhar no pomodoro, e ao final do pomodoro marcar que trabalhou um pomodoro naquela tarefa.

Manter esta lista de alguma forma tem diversas vantagens, uma é que você vai saber quanto tem para fazer no dia, mas o mais importante é que você vai ter uma indicação visível de quanto realizou no dia, e isto ajuda bastante a não terminar o dia com aquela sensação de que não fez nada de útil mesmo tendo trabalhado o dia todo (quem nunca passou por isto?).

Depois vou detalhar melhor o Pomodoro, o que fazer quando aparecem interrupções, como utiliza-lo junto com outras técnicas apresentadas no livro, mas este é o conceito básico.

O filtro do tato (por que nerds/geeks tem problemas de relacionamento com outras pessoas)

Bom, eu sou um exemplo vivo, pelo menos eu acho que sim, de que nerds, geeks ou como preferirem ser chamados, tem problemas no trato com outras pessoas.

Sempre acham que eu sou direto demais, ou que sou grosso, ou qualquer coisa do gênero.

Na verdade, eu concordo que sou direto demais, não com a parte de ser grosso.

Eu acredito que se eu penso alguma coisa, eu posso dizer aquilo, e azar é de quem estiver ouvindo, mas isto ja me trouxe muitos problemas.

Mesmo, pelo menos na minha opinião, eu sendo um dos melhores na parte técnica do que eu faço, eu acabo sempre me prejudicando por falar o que eu penso e outras pessoas não gostarem de ouvir isto, o que prejudica inclusive o crescimento profissional …

Eu ja tentei ser gerente de projetos, e tenho a consciência de que pelo menos por enquanto não seria um bom gerente …

Em empresas que eu trabalhei, ja houveram casos em que mesmo sabendo que eu tinha a resposta, colegas de trabalho evitavam perguntar alguma coisa para mim.

Bom, eu ja melhorei muito neste ponto, acho que hoje sou razoavelmente conhecido na “comunidade java” aqui no Brasil, e cheguei a ouvir de um gerente: Bahh, legal, não sabia que tu era “O Urubatan”.
Mas melhorei isto com muito custo, e não foi muito fácil …

Mas voltando ao assunto deste post, eu encontrei um texto excelente que explica muito bem, na minha opinião, por que a maioria dos Nerds tem problemas no relacionamento com outras pessoas “Não Nerd”.
O texto original é este: Tact Filters

A baixo segue uma tradução livre deste excelente texto.

Filtros de tato

Todas as pessoas possuem um “filtro de tato”, que aplica um filtro de “trato social” em uma direção há tudo que passa por ele. A maioria das “pessoas normais” tem este filtro posicionado para filtrar tudo o que elas falam ou fazem. Então toda e qualquer coisa que as “pessoas normais” dizem, tem a quantidade ideal de “filtro para trato social” aplicado, antes de elas realmente falarem. Isto normalmte acontece por que quando eles estavam crescendo, os seus pais continuamente diziam para eles coisas como: “Se você não pode dizer algo de bom, não diga nada!”, ou então “Não diga este tipo de coisa, vai fazer com que eles se sintam mal!

“Nerds”, por outro lado, tem este filtro, aplicado na posição contrária, ou seja, tudo o que eles ouvem é filtrado. Então, qualquer coisa que qualquer um diz para eles, tem a quantidade adequada de “filtro social” aplicado quando eles ouvem. Isto normalmente é por que quando eles estavam crescendo, as outras crianças ficavam incomodando e dizendo coisas desagradáveis, e os seus pais diziam o tempo todo: “Eles estão dizendo estas coisas só por que eles estão com ciúmes”.

Quando “pessoas normais” conversam entre si, elas normalmente aplicam a quantidade apropriada de “tato social” para tudo o que eles dizem, e ninguém sai com os sentimentos feridos. Quando “Nerds” conversam entre si, eles normalmente aplicam a quantidade adequada de “tato social” a tudo o que eles ouvem, e ninguém sai com os sentimentos feridos. Entretanto, quando pessoas normais, falam com “Nerds”, os “Nerds” ficam frustrados com freqüência, por que as “pessoas normais” parecem estar sempre evitando de dizer o que eles realmente querem. E pior ainda, quando “Nerds” falam com “pessoas normais”, estas com freqüência saem com os sentimentos feridos, por que os nerds não aplicam o filtro ao que eles estão falando, esperando que o ouvinte o faça.

Então, os “nerds” precisam entender que as “pessoas normais”, precisam aplicar este filtro para tudo o que eles dizem, eles ficam desconfortáveis se eles não puderem fazer isto. “Pessoas normais” precisam entender que fora o fato de os nerds normalmente não possuirem “tato”, as coisas que eles dizem quase nunca devem ser tomadas como pessoais. Ambos os tipos de pessoas precisam ter uma quantidade extra de paciência quando estiverem lidando com alguém que possua o “filtro de tato” na direção oposta a sua.

——————-

Acho que este texto explica mais ou menos bem, os motivos destes “conflitos” entre os “nerds” e as outras pessoas.

É possível para um nerd amenizar bastante este problema, acho que na maior parte das situações eu ja melhorei muito, mas eu continuo achando irritante quando as pessoas ficam cuidando o que vão falar, ou até mesmo falando claramente algo diferente do que estão pensando apenas para não “ferir os sentimentos” de quem esta ouvindo.

As vezes eu até encaro isto como um pouco de hipocrisia.

Mas quem sou eu para querer mudar o mundo …

Então, o que vocês acham deste texto, não é mais ou menos isto o que acontece? mesmo os motivos originais mudando bastante de uma pessoa para outra …

Eu acho que entender esta “teoria” tem me ajudado bastante, e um exercício de paciência de vez em quando ajuda muito também 😀

O texto original é de autoria de: Jeff Bigler.
Todos os outros comentários e tradução são de minha autoria 😀