Categorias
Artigos

2020: O ano do novo

Eu sou grande fã do podcast Cortex e, no ano passado, comecei a brincar com a ideia de temas para o ano: um palavra ou frase que guie as minhas decisões para um ano novo que se segue.

Em 2019, eu estabeleci que queria ser mais intencional sobre minhas ações e minha vida. Mantive um diário regularmente, continuei na terapia, e fui muito mais reflexivo em relação ao que estava acontecendo. Eu terminei o ano com uma sensação muito maior de controle sobre minha vida — portanto, tive sucesso em seguir o meu tema.

Agora, em 2020, é hora de testar coisas novas.

O maior desafio novo: ser pai

No final de 2019, nasceu o João Pedro, e apenas isso já garantiria um ano muito diferente dos 31 anos anteriores de minha vida.

Ser pai implica ter uma nova rotina, um novo comportamento (demorou dois dias para eu me espantar como meu celular só tem fotos dele), novos desafios. Principalmente: coisas antigas não cabem mais na minha vida, como ir à academia, ver séries, sair para jantar apenas com minha esposa.

Sem problemas: muito desses abandonos são apenas temporários, enquanto que a aventura de ver uma criança crescendo vai se renovar ano após ano, para sempre.

Um novo emprego

Após 12 anos como parte do POLO, estou partindo para novos desafios: a partir de fevereiro, vou assumir uma posição de Professor Substituto no Centro de Ciências Tecnológicas da Udesc (Universidade do Estado de Santa Catarina).

Eu escolhi entrar para o mundo acadêmico em 2012, quando ingressei no mestrado, mas desde então só havia trabalhando com pesquisa. No meio de 2019, fiz um concurso para professor da UFSC que me fez perceber como faltava experiência docente. Desde então, dei algumas aulas quando meu orientador viajava, e percebi o quanto adoro o ambiente de sala de aula.

Eu já havia decidido não fazer mais concursos e terminar meu pós-doutorado e talvez estendê-lo em 2020, mas aconteceu que numa determinada noite vi um anúncio em um telejornal sobre o concurso para a Udesc, com inscrições vencendo em poucos dias. Fiz o concurso e passei.

Eu quase nunca assisto a jornais, mas bem naquele dia eu estava sentado no sofá quando veio esse notícias. A área do concurso era a minha área. Não seria vontade de Deus que eu passasse?

Uma nova cidade

Uma consequência do novo emprego é sair de Florianópolis, minha cidade natal, e ir para Joinville, a maior cidade de Santa Catarina.

Eu já morei fora de Florianópolis por alguns períodos, todos delimitadoa por no máximo 1 ano. Agora, eu estou indo por período indeterminado. Quem sabe eu volte. Mas também quem sabe não vou me estabelecer em Joinville, ou depois tomar outro rumo?

Não saio de Floripa sem pesar, dado que é a cidade mais bonita do mundo, além de estarem aqui minha família e a maioria de meus amigos. Mas, em 2020, eu vou experimentá-la como visitante — e quem sabe assim eu não aprenda a conhecer essa ilha de outra forma?

Eu estou muito animado para ver tudo isso acontecendo nesse ano. Todos esses aspectos vão me fazer sair da minha zona de conforto e crescer — como pai, marido, profissional, e simplesmente como homem.

Categorias
Artigos

Ser pai é ser ineficiente

Ainda lembro do dia em que, passeando pela Fnac na Rua de Santa Catarina, na cidade do Porto, deparei-me com um livro intitulado Fazer bem as coisas (publicado no Brasil como A Arte de Fazer Acontecer), e aprendi sobre listas, projetos, calendário… Estudar produtividade virou quase um vício, a ponto de precisar tratar na terapia como lidar se as coisas não saem como planejado.

E ainda bem que aprendi a não ser produtivo, porque quando o João Pedro nasceu, junto vieram os dias mais ineficientes que já vivi.

Eu escrevo isso não como uma reclamação, mas como um simples reconhecimento de agora tudo mudou: o meu tempo não é mais meu, é do meu filho, e funciona numa outra escala. Posso planejar o quanto quiser tarefas para quando ele estiver dormindo, mas há dias em que ele simplesmente quer acordar de hora em hora, e não há como se concentrar em algo por muito tempo. Posso marcar num calendário com máxima precisão os horários e trajetos para sairmos de casa para visitarmos alguém, mas se ele quiser mamar bem nessa hora, nós vamos chegar atrasados. E eu nunca posso dizer para o bebê com cólicas que eu estou cansado e só queria ler um pouco.

Pode parecer estranho um pai de um recém-nascido já querer escrever regras de paternidade, mas isso tem estado o tempo todo na minha mente nesse primeiro mês. Além disso, observando pais de crianças mais velhas, imagino que a ineficiência vai fazer parte de minha vida por muito tempo — por exemplo, ao andar de carro para lá e para cá, algo que sempre me incomodou.

Quando eu escrevo “ineficiência”, é mais para chamar a atenção, porque não é bem verdade. Prefiro pensar que troquei eficiência por eficácia. Tudo leva mais tempo, poucas tarefas cabem num dia, mas as que acontecem têm real significado. As inúmeras trocas de fralda e horas em pé para fazê-lo arrotar não são itens a marcar numa lista, mas atos de cuidado. Quando sou interrompido no que estou fazendo para pegá-lo e confortá-lo, isso é algo que só eu posso fazer, e que tem grande impacto sobre o bem estar dele. E quando eu de fato trabalho, quando ele estiver dormindo ou com a mãe, eu preciso me forçar a trabalhar no que é realmente importante – principalmente porque agora eu trabalho para o futuro dele.

Ser pai é ser ineficiente, mas é trocar eficiência por amor. É trocar uma noite de sono inteira, que me faria trabalhar melhor, por uma noite interrompida para consolá-lo e ver as mãozinhas dele se aninharem no meu peito depois que ele se acalma. E então eu penso: eficiência para quê?

Categorias
Artigos

João Pedro

João

Ontem, 27 de dezembro, foi dia de São João, Apóstolo e Evangelista. A minha Bíblia (Edição Pastoral) apresenta o Evangelho de Jesus Cristo segundo João como “diferente dos três primeiros”. A começar por abrir o seu livro com um poema:

No começo a Palavra já existia:

a Palavra estava voltada para Deus,

a Palavra era Deus.

No começo ela estava voltada para Deus.

Tudo foi feito por meio dela,

e, de tudo o que existe,

nada foi feito sem ela.

Nela estava a vida,

e a vida era a luz dos homens.

Essa luz brilha nas trevas,

e as trevas não conseguiram apagá-la.

Jo 1, 1-5

A vida era a luz dos homens. Eu já falei aqui sobre minha luta contra a depressão, e a oração foi uma arma muito poderosa, a luz que brilha nas trevas. Inúmeras noites me sentei nessa mesma escrivaninha onde escrevo estas palavras, derramando-me em lágrimas e pedindo o consolo da Palavra. E Ela nunca falhou, especialmente quando mergulhava nos escritos de João.

É impossível ler muitas páginas do Evanhelho e das Cartas de João sem se deparar com inúmeros mensagens sobre o Amor. Em contraponta às inúmeras regras do Antigo Testamento, João mostra como a mensagem de Jesus é simples: “O meu mandamento é este: amem-se uns aos outros, assim como eu amei vocês” (Jo 15, 12). Mas como amar? “Não existe amor maior que dar a vida pelos amigos” (Jo 15, 13). Depois, na sua Primeira Carta, João nos chama a toda hora de “filhinhos” e outros vocativos carinhosos: “Amados, amemo-nos uns aos outros, pois o amor vem de Deus” (1 Jo 4, 7). João me ensinou, portanto, que a minha Fé, o que me faz Cristão, é que eu creio no Amor; não precisamos nos castigar uns aos outros, pois o Amor salva: “E o amor consiste no seguinte: não fomos nós que amamos a Deus, mas foi ele que nos amou, e nos enviou o seu Filho como vítima expiatória por nossos pecados” (1 Jo 4, 10).

Muitos outros fundamentos e lições da Fé estão ilustrados no Quarto Evangelho. Quando eu me pego indagando se a oração é uma perda de tempo, eu lembro d’Ele falando à samaritana: “Quem bebe desta água vai ter sede de novo. Mas aquele que beber a água que eu vou dar, esse nunca mais terá sede. E a água que eu lhe darei, vai se tornar dentro dele uma fonte de água que jorra para a vida eterna.” (Jo 4, 13-14). Quando eu, envergonhadamente, penso se um doutor como eu deveria gastar tempo trocando a bombona d’água do meu laboratório, eu lembro d’Ele: “Pois bem: eu, que sou o Mestre e o Senhor, lavei os seus pés; por isso vocês devem lavar os pés uns dos outros.” (Jo 13, 14). E se fico pensando se devo orar para o Pai ou para o Filho, percebo que isto não faz diferença: “Quem me viu, viu o Pai” (Jo 14, 9).

O próprio Jesus percebeu que João era especial, a ponto de lhe confiar Sua Mãe depois que Ele morresse (Jo 19, 26-27). João era assim: puro Amor e Cuidado.

Outro João

São João da Cruz foi um frade, poeta e místico espanhol. Para quem está envolvido com as Oficinas de Oração e Vida, é impossível não entrar em contato com a sua obra, dado que Frei Ignácio Larrañaga, nosso fundador, era seu grande admirador. João da Cruz compreendeu e então capturou como é a verdadeira oração:

Descobre Tua presença,

e mantém Tua vista e formosura,

olha que a doença de amor não se cura,

senão com a Presença e a Figura.

São João da Cruz, citado por Frei Ignácio na Mensagem da Oitava Sessão dos TOV Adulto

Orar é estar na Presença da Figura, e é só esta presença que preenche a Alma sedenta de Amor, a “fonte de água viva” como São João Evangelista colocou.

Eu entrei nas Oficinas em 2016, e elas foram essenciais em me ajudar a lidar com o luto da morte de minha avó. Desde então, tornei-me eu mesmo um Guia, e para o mim o maior benefício pragmático do nosso programa é ajudar as pessoas a lidarem com as loucuras do dia a dia. É saindo do celular e entrando em nós mesmos que conseguimos nos esvaziar dos problemas, e então conseguir consolo com Jesus. E não é preciso muito para se isolar do mundo e se encontrar com Deus, segundo São João da Cruz:

A noite sossegada,

a música calada,

a solidão sonora,

e a ceia que recreia e enamora.

São João da Cruz, citado por Frei Ignácio na Mensagem da Oitava Sessão dos TOV Adulto

Relendo o meu diário neste ano de 2019, percebi que os meus momentos de felicidade foram assim: simples e leves como uma noite sossegada.

Pedro

São Pedro foi tema constante das minhas sessões de terapia em 2019. Uma das minhas maiores aflições é o medo de errar, e o maior aprendizado desse ano foi superar os padrões rígidos de perfeição impostos pela minha profissão e minha família. E o que mais me chama atenção em Pedro é, surpreendemente, o quanto ele errou.

Mesmo tendo o Filho de Deus diante de si, ordenando que ele caminhasse sobre as águas, Pedro sentiu medo e começou a afundar, recebendo uma reprimenta de Jesus (Mt 14, 28-31). Desesperado quando Jesus estava para morrer, Pedro atacou seus inimigos, contrariando a mensagem de Paz e Entrega de Jesus (Jo 18, 10-11), e ainda por cima negou ser seu discípulo – três vezes (Jo 18, 17.25-27). Ele próprio sabia das suas falhas; quando Jesus fez encherem as redes de pesca antes vazias, Pedro se horroriza: “Senhor, afasta-te mim, porque eu sou um pecador!” (Lc 5, 8).

Mesmo assim, Pedro foi o líder escolhido por Jesus para a Sua Igreja. Um simples pescador, alguém que poderíamos encontrar na gente simples de Florianópolis, foi convidado a ser pescador de homens (Mt 4, 19), e recebeu d’Ele as chaves do Reino dos Céus (Mt 16, 15-19). Pedro não nasceu perfeito; errou, aprendeu, fortaleceu-se, e guiou os seguidores de Jesus após a Ressureição (At 2).

João Pedro

Desde que eu e minha esposa começamos a falar seriamente em ter um filho, eu estabeleci para mim mesmo, e ela depois concordou, que a nossa primeira criança teria um nome inspirado em alguma figura bíblica. Eu não consigo lembrar muito bem de quando e como aconteceu, mas em algum momento o nome João Pedro, uma combinação dos dois Apóstolos, entrou em minha mente e ali se fixou.

No dia 14 de dezembro de 2019, dia de São João da Cruz, nasceu o nosso João Pedro. Alguém que eu espero que una as características dessas figuras que citei neste texto: que seja amoroso, carinhoso, cuidadoso com sua família, capaz de se recolher e meditar, como os Joões deste texto; mas ao mesmo tempo forte, ciente dos seus erros e capaz de superá-los, como Pedro.

O ano de 2019 foi, para mim, esperá-lo. E ele chegou, presente de Natal antecipado de Jesus, o mesmo Jesus que seduziu a João, a Pedro, a João da Cruz – e a mim e à minha esposa. Que venha 2020, com o privilégio de ver um ser humano crescendo.

Categorias
Artigos

Como organizar resultados de simulações númericas

Como muitas de minhas ideias, está começou com um podcast, e especificamente sobre minha mais recente obsessão: ciência de dados.

A situação: tenho um modelo numérico que simula algum problema físico. Para um mesmo modelo, é possível fazer várias análises: com e sem alguma característica, modificando ou não alguma das equações governantes do problema. O problema: como organizar todas essas análises?

Para meu deleite acadêmico, esse episódio de Talk Python to Me referenciou alguns artigos científicos, e desde então tenho testado as soluções que cientistas antes de mim já procuraram implementar para o mesmo problema.

A pasta results

Quando vou testar alguma próxima modificação no meu modelo ou analisar a influência particular de algum parâmetro , onde vou armazenar todos os resultados, de maneira a poder referencia-los depois?

O meu modelo está encapsulado numa pasta no meu computador:

Captura de tela de uma pasta no Windows, mostrando como ela está organizada

A pasta raiz tem imagens, um arquivo de sumário README, alguns arquivos de dados, arquivos de suporte para Python, e diversas subpastas:

  • Já falei anteriormente sobre testes, e eles estão devidamente organizados. O programa de testes que uso, pytest, cria uma pasta de cache, que aparece no topo da lista.
  • A pasta src contém o código fonte (neste caso, em Python). Kenneth Reitz havia me convencido de que uma pasta assim deve ter o mesmo nome da biblioteca sendo desenvolvida (neste caso, magnet3Dpolomag, como aparece em outro post), mas estes artigos me convenceram de que afinal é melhor ter uma pasta chamada src (de source code), e suas bibliotecas dentro dessa pasta, para melhor execução de testes. Os artigos científicos citados no começo deste posts também recomendam uma pasta genérica src.
  • docs contém um protótipo de documentação
  • .vscodecontém arquivos de configuração do Visual Studio Code
  • e results é onde a mágica acontece.

A pasta results é um repositório de todos os resultados que esse modelo já gerou. Respondendo à pergunta anterior: quando quero fazer uma nova análise, o primeiro passo é criar uma nova subpasta dentro de results:

Captura de tela da interface web do GitHub, mostrando diversas análises dentro de uma pasta "results"

Um ponto importante dessa minha estratégia é fazer uso da interface web do GitHub, como visto acima, serve como referência online. Nas reuniões do nosso grupo de pesquisa, tenho compartilhado links para cada uma dessa subpastas junto com capturas de tela como essa, para mostrar em que estado minha pesquisa está e o que foi feito em um período. Seguindo a recomendação dos artigos citados, ponho a data no início do nome da pasta para uma ordenação temporal e para ter ideia de quando uma análise foi feita.

Cada pasta dessa armazena scripts para cálculo e processamento de dados, imagens e tabelas salvas, arquivos de referência — tudo que ajuda uma pessoa de fora (ou meu futuro eu) a entender uma parte da pesquisa usando meu modelo.

Captura de tela da interface web do GitHub, mostrando arquivos e pastas dentro de uma subpasta de "results"

Numa organização dessa, é crucial criar um README bem feito, para evitar a confusão de abrir uma pasta cheia de arquivos soltos sem nenhuma explicação. Usando a interface web do GitHub, o README é renderizado quando se abre uma pasta, o que é muito interessante.

Captura de tela de um arquivo README de uma subpasta de "results", mostrando explicações sobre como a análise dessa subpasta foi feita

Conclusões

É assim que organizo minhas simulações numéricas. Ainda estou aprendendo a implementar esse método, mas ele tem me dado bastante tranquilidade, permite-me facilmente achar análises passadas, e elimina a dúvida de “por onde começar”, ao testar algo novo nos meus modelos numéricos.

Esse é um assunto que me interessa muito. Os leitores têm alguma dica?

Categorias
Artigos

Gerando uma exceção em Python com um nome significativo, e uma mensagem significativa

Aqui está uma tarefa que é para ser simples mas que considero mal documentada no mundo Python.

O problema: estou desenvolvendo uma biblioteca para simular uma determinada topologia de ímãs permanentes. O usuário deve entrar com alguns parâmetros geométricos, mas antes de qualquer coisa o programa deve verificá-los e avisar quais são inválidos.

Em termos de programação, estamos falando de exceções: condições literalmente excepcionais que não devem acontecer mas, se acontecem, é melhor parar o programa para que o usuário possa verificar. O tutorial oficial de Python explica como criar exceções personalizadas, e a documentação de referência mostra os tipos de exceções que já existem em Python. Este tópico também é bem abordado em [1].

Pesquisando a documentação sobre as exceções já construídas, parece-me que a exceção aproximada que descreve esse problema é ValueError. O que eu quero então é definir um erro que diga que o “valor errado” é precisamente um “parâmetro inválido”. O problema na documentação que citei antes é precisamente que eu não estava conseguindo entender como a mensagem de erro pode ser customizada para indicar qual parâmetro é inválido, pois as exceções aparentemente não aceitam strings como argumentos…

…mas exceções aceitam uma tupla como argumento, e é isso que não estava claro para mim. Veja o código a seguir:

class InvalidParameterError(ValueError):
pass
view raw custom_errors.py hosted with ❤ by GitHub
from custom_errors import InvalidParameterError
def validate(p):
for k, v in p.items():
if v < 0:
emsg = "Parameter '%s' cannot be negative" %(k,)
raise InvalidParameterError(emsg)
view raw parse_parameters.py hosted with ❤ by GitHub
import pytest
from custom_error import InvalidParameterError
from parse_parameters import validate
def test_negative_parameters_raise_error():
sample_params = {
'a': 1.43,
'b': 57,
'c': -10
}
with pytest.raises(InvalidParameterError) as excinfo:
validate(sample_params)
# The object returned by this pytest context manager
# has a 'value' field assigned to the exception object itself.
# In addition, all built-in exceptions derived from Exception
# have an 'args' tuple field assigned to the passed arguments.
# Hence, when we create a custom error with a string as the first argument,
# this string is assigned to the first element of the tuple 'args'
exception_msg = excinfo.value.args[0]
expected_message = "Parameter 'c' cannot be negative".
assert exception_msg == expected_message

No primeiro programa, eu defino uma exceção que deriva de ValueError. No segundo, crio uma função de validação, que cria essa minha exceção personalizada, e a constrói com uma string de mensagem indicando qual foi o problema. E posso testar essa função usando pytest, conforme está nos comentários do terceiro programa: tudo que eu passei para InvalidParameterErrorfoi armazenado internamente como uma tupla args; se só passei uma string, esta foi armazenada no primeiro elemento, ou seja, em args[0]. E posso testar se a mensagem criada era a que eu estava esperando.

A minha biblioteca de ímãs permanentes é mais complexa que isto, mas a lógica é idêntica: se alguém tentar usá-la com um parâmetro inválido, o programa vai fazer uma verificação e imprimir uma mensagem de InvalidParameterError na tela.

É como falei no início: era para ser simples, mas no meio do caminho me diverti muito aprendendo sobre exceções em Python e escrevendo sobre elas. E agora vou voltar a realmente trabalhar na minha biblioteca, e estou muito mais seguro de que ela vai funcionar como deveria.

[1]: Beazley, David & Jones, Brian K. Python Cookbook. São Paulo: Novatec, 2013 (link afiliado para compra)

Categorias
Artigos

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:

cd $HOME/latex-writing/paper-magnetic-profiles/
# sync repo
git pull origin master
# open Visual Studio Code to edit and run scripts
code -n .
# Sourcetree is a Git client
SourceTree.exe
# we can also open reference files
start Outline_Paper_Profiles.pdf
# I prefer to use emacs for LaTeX files
emacs PaperMagneticProfiles_JBSMSE.tex
view raw start.sh hosted with ❤ by GitHub

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

# Sincroniza de volta mudanças feitas
git push origin
# ver explicações abaixo para esses comandos
cf PaperMagneticProfiles_JBSMSE.tex
closew "paper-magnetic-profiles - Visual Studio Code"
closew "Sourcetree"
closew "Outline_Paper_Profiles"
view raw stop.sh hosted with ❤ by GitHub

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

# function to close the buffer corresponding to a given file in emacs
# cf = close file
function cf() {
emacs -e "(if (get-buffer \"$1\") (kill-buffer \"$1\"))"
}

e closew é um comando que fecha janelas usando AutoHotKey:

; This script closes the window name passed as argument, e.g.
; AutoHotkey.exe closewindow.ahk "Visual Studio Code"
; To match strings anywhere in the window title
SetTitleMatchMode 2
If (WinExist(A_Args[1]))
WinClose
view raw closewindows.ahk hosted with ❤ by GitHub

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.

Categorias
Citações

A correria existe desde sempre

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.

Categorias
Artigos

Uma boa manhã de trabalho

Chá verde, um paper meu para revisar e editar, minha esposa me vigiando = uma boa manhã de trabalho.

Categorias
Images

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)…

Categorias
Images

Conservação do rio e cuidado com as margens

O Hobbit é tão fantasioso, tão fora da realidade, que inclui até grupos que brigam sobre a conservação dos recusos naturais.