Arquivo mensal: setembro 2019

Abrindo e fechando sempre os mesmos programas

Sempre que vou iniciar uma sessão de trabalho — em bom português, sentar para trabalhar — em algum projeto de programação ou escrita de um artigo, há uma série de ações repetitivas:

  1. Usando o terminal de comando, navego até a pasta do projeto em questão
  2. Obtenho a última versão do projeto no GitHub
  3. Abro os arquivos de LaTeX no Emacs e os programas em Python no Visual Studio Code
  4. Abro o Sourcetree, para gerenciar as modificações que eu vou fazendo
  5. Abro arquivos de referência (PDF de alguma documentação, por exemplo)

Ao longo da minha sessão, vou trabalhando, e periodicamente usando o supra-citado Sourcetree para registrar o que vou fazendo. Nesse período, invariavelmente meu celular está em modo Não perturbe e estou escutando a trilha sonora de algum filme, série ou jogo no Deezer.

Quando termino de trabalhar, por cansaço ou por ter de fazer outra atividade, também há série de atividades repetitivas:

  1. Fecho todos os arquivos abertos no começo
  2. Sincronizo minha versão atual do trabalho com a versão no GitHub.

Esse ciclo de abrir programas – trabalhar – fechar programas se repete algumas vezes ao longo de dia, de maneira que criei um sistema de automação dessas tarefas. Já falei aqui sobre como escrevi minha tese de maneira eficiente, onde automatizei algumas tarefas; o sistema que descrevo neste post é mais geral.

Um aviso: este post é bastante técnico e requer o uso do terminal de comando, em particular o sistema Git for Windows, que instala a shell Bash e muitos utiliários como programas nativos do Windows; para macOS e Linux, Bash e aplicativos de terminal já estão instalados. Se você se interesse por computação científica e quer aprender mais, existem muitos tutoriais disponíveis sobre como usar e configurar Bash, o meu canal preferido no YouTube para esse assunto é o do Corey Schafer. Os exemplos que vão mostrar aqui se aplicam a Windows, e minha configuração está disponível no GitHub.

Mesmo que o leitor não esteja familiarizado com nada disso, pode ler para tentar entender como eu automatizo algumas tarefas e ter ideias para facilitar a sua vida.

A base do meu sistema é um pequeno utilitário Bash chamado prm, que permite definir “procedimentos” de “começar” e “parar” um projeto.

Vamos a um exemplo prático. No momento estou trabalhando em um paper sobre perfis magnéticos para refrigeradores magnéticos. Após instalar prm usando as instruções do repositório, crio um projeto no terminal usando:

prm add pprof

pprof é uma abreviação de “paper profiles” (é assim que meu cérebro funciona). Esse comando cria dois scripts, em uma pasta padrão do prm (que pode ser mudada) abre-os no editor de texto padrão.

O primeiro script,start.sh, define o que é feito ao começar a trabalhar no projeto:

O segundo script, stop.sh, é executado quando termino de trabalhar no projeto:

No script acima, cf é uma função que fecha um arquivo no Emacs, que está definida em ~/.bash_profile.

e closew é um comando que fecha janelas usando AutoHotKey:

que é definido como um atalho na forma (dentro de .bash_profile).

alias closew="AutoHotkey path/to/closewindow.ahk"

Como toda automação, apesar de exigir um pouco de trabalho, estes hacks facilitam muito o trabalho e deixam minha mente livre para se concentrar no que é necessário. Por exemplo, quando quero começar a trabalhar no paper, abro uma janela do Git Bash e digito:

prm start pprof

e tudo fica pronto na minha frente. Mais importante que a abertura dos programas, no entendo, é o recado ao meu cérebro, quando digito o comando acima, de que é hora de começar a trabalhar no paper.

Quando é hora de parar, digito

prm stop pprof

e tudo se fecha, deixando meu computador pronto para outras tarefas.

Foi em Roma, há cerca de um ano, depois de um dia particularmente exaustivo, que conheci uma dessas tréguas […]. Não vou senão raramente à cidade, onde procuro cumprir, num só dia, o maior número possível de obrigações. O dia fora desagradavelmente sobrecarregado: uma sessão do Senado seguira-se de outra no tribunal e de uma discussão interminável com um dos magistrados das finanças, e, finalmente, de uma cerimônia religiosa impossível de ser abreviada, durante a qual a chuva caiu sem cessar. Eu próprio programara tantas atividades diferentes sem intervalos, deixando entre elas o menor espaço de tempo possível para as importunações e bajulações inúteis.

Marguerite Yourcenar, Memórias de Adriano

A cada vez que reclamar da correria, vou tentar me lembrar que imperadores romanos também tinham dias assim.

Iluminado no Todoist

Acho que vocês, leitores, compartilham da minha jornada em ser mais produtivo, pois é nesse blog que eu documento minha batalha para fazer melhor minhas tarefas.

Não que quantidade de tarefas seja algo significativo, mas com o tempo aprendi a filtrar o que coloco no Todoist como significativo para mim. Cada vez que eu completo uma tarefa, alguma coisa melhorou na minha vida.

Quem sabe isso me motiva a colocar mais tarefas relacionadas a este blog (incluindo meus truques para usar Todoist)…