I'm Jonas Galvez, a
30 year old programmer located in Brazil.

You could also say I'm a software engineer, a backend developer, a frontend developer, a system administrator, a project manager, a technical writer etc.

It's hard to put a label on 12 years of experience working with nearly everything related to web application development, so I decided to go back to just calling myself a programmer.

Seriously though, I'm a long time Pythonista and appreciator of JavaScript's quirky nature. My preferred stack for building web apps is a minimalist and eloquent combination of Flask, records, PostgreSQL, Fabric, Docker and Twelve Factor common sense above all. Nothing too fancy.

I squash my commits and follow a gitflow-like workflow, but am hoping to soon have a good excuse to try a new project with Gerrit.

The focus of my work in 2015 was migrating a large Node.js system to Google Cloud Platform and doing my first real world implementations using the Go language. Python is my first choice for starting an app from scratch, but I like Go's principles and see it as an obvious escape route for Python-based systems that grow too big.

I think The Art of Personality is a must read. I like Yasuhiko Genku Kimura's views on life fullfiment and his idea of the omnicentric mind. I think Steve Jobs nails the secret of life in 46 seconds.

I don't carry a smartphone, even though I build web apps for them. I'm more inclined to spend time playing 9-ball than video games. I avoid PUFAs, and tell everyone I know about Ray Peat. The West Wing is my favorite TV show of all time.

I owe a lot to Mark Pilgrim, Sam Ruby, Tim Bray, Simon Willison and many other exceptional coders and early bloggers who inspired me when I was a kid. Thanks guys!

Thanks also to Heroku for their awesome cloud service. Both this website and my text editor are blessed with the magnificent M+ 1m Light monospaced font.

Scripting My Brain /2016/Feb/21/Scripting-My-Brain

I've always considered myself a talented individual. But talent without discipline is worthless. The mere thought of following through on a plan can be overwhelming for most people. Society seems hopelessly hooked to a virtual reality of instant gratification. I've experimented for nearly a decade with numerous efforts and hacks, so to speak, to harden my ability to be disciplined on my endeavours. Most advice can be considered common sense nowadays, and is frequently shared by executives and distributed companies.

I probably would have been one of the kids who failed the marshmallow test, but as the author of that study has theorized 40 years later, willpower can and often is developed throughout our adult lives. Several factors are at play, internal and external, but I believe the top two most essential are having a diet that promotes healthy metabolism and the cultivation of gratitude. Either exercise, sleep and eat well, or you won't have brain energy to do anything else. Meditate and grow your ability to feel grateful, or nothing you do will ever be enough.

White Rose

I believe creativity needs a drill sergeant, i.e., ideas don’t matter, execution does. But execution requires discipline. In order to force yourself to do things every day, and more importantly, at predetermined times, you need more than a TODO list. Like White Rose, I have developed an obsession with time.

I think failure to be disciplined about time is characteristic to the curse of the gifted. The easier an accomplishment feels after we have done it, the more inclined we are to underestimate the actual disciplined effort it requires. For me, the only remedy to this phenomena was forcing myself to track my time strictly and respect a schedule.

I have been greatly influenced by the Tech Secrets of Overprolific Alpha Geeks talk, given at the 2004 O'Reilly Emerging Technology Conference. It validated my gut feeling that using simple text files to organise tasks and personal data was the way to go. All geeks have a todo.txt file, or so it says. Problem is, a TODO list isn't enough. For the level of efficiency and discipline I aimed at, I needed to plan and track not only my daily actionables but at what time and frequency I was supposed to do them. What I really needed was a scripting language for my brain.

A similar idea has been exposed in Codex Vitae, an experiment by Buster Benson. But having a single file to represent all the knowledge in my life seemed cumbersome. I started then keeping an entire folder of carefully maintained text files, such as Lessons.txt, with important things I learned in my life and wish not to forget, Books.txt, with books I've read and wanted to read next, Budget.txt, for my financial prospects and responsibilities, Groceries.txt, for food and other supplies I buy regularly, and many many others. All of them have some specific syntax and accompanying scripts that operate on them as needed.

After numerous failed attempts at organising my tasks and schedule, I finally came up with what I consider to be a scripting language for my brain. It's my main file, that I keep open at all times and use to determine my tasks for the day, and is suggestively called Today.txt. I group my tasks in four different daily groups: mornings, afternoons, evenings and nights, and weekly groups: mondays, tuesdays etc. I use the ↻ symbol (U+21BB) to indicate these groups, and the ⚡ symbol (U+26A1) to indicate the top group, tasks which have been laid out for the day, and tasks that need to be done at a specific time. I use that high voltage sign to remind me of being swift, the sooner I get through these important tasks in the day, the better.

⚡ Finish ticket #12 🍅🍅🍅🍅 Finish ticket #23 🍅 Dentist appointment @ 1730 ↻ Mornings Prepare tea Taijiquan routine Clear inboxes Establish goals ↻ Evenings Write status Do the dishes Make coffee ↻ Saturdays Review budget Buy groceries ↻ Sundays Read the news Clean the house

I show a sample of it above in two columns, but my real file is one long stream which I skim through daily while establishing my goals for the day. Since we can't really multitask, I make sure to do one thing at a time, and divide the work in pomodoros. I use MenuTimer for OS X to track my pomodoros, but there's an interesting Python-based CLI for that. I always strive for a minimum of 16 daily pomodoros, and use the 🍅 symbol (U+1F345) to track how many have been spent on each task. By combining the AutoRefresh plugin for Sublime Text and this Fabric task, I can have these pretty tomatoes appear next to a task by simply typing a space. Type the first space and a middle dot (U+00B7) is addded, which I use to indicate a pending task that will need to be divided in pomodoros. Here's a more realistic example:

⚡ Visit parents and buy groceries @ 1600 Download latest Spotify additions Update personal site 🍅🍅🍅🍅🍅🍅 Write docker locust scripts 🍅🍅🍅🍅🍅🍅🍅🍅🍅 Write locust and py.test hooks · Move base Python app image to Alpine · Resume 99 Homes from 52:06 Endocrinologist appointment @ 0900 on Feb 22 Pick up test results @ 1400 on Feb 24 Coffee and water upon waking ↻ Make tea and have coconut oil ↻ Aspirin, tapioca and lemonade ↻ Coffee and coconut oil ↻ Watch a Khan Academy video ↻ Read 10 pages of Generative Energy ↻

Now a few patterns and personal syntax choices can be seen above. When skimming through Today.txt, I collect and often group together tasks from the daily and weekly groups. I then organize tasks in the top group as follows: imminent errands and quick tasks, ongoing big tasks that require pomodoros, immediate next tasks that will require pomodoros, paused movies and other superfluous reminders, future appointments and finally, meals and activities I tend to or would like to repeat every day. For future appointments, I use the @ symbol to prefix predetermined times, always in the form @ TIME [on DATE], where TIME is written with 4 digits in 24-hour format, and dates RFC 2822-ish.

In his Speed as a Habit article, Dave Girouard gives the golden advice that WHEN a decision is made is much more important than WHAT decision is made. I've adopted this by having a rule to set my major tasks for the day only once, at the beginning of the day. Decide what to do, do it, evaluate results and what to do next later. What can come next is also suggestively kept in Next.txt.

Tasks that required pomodoros to be completed stay in the top group for the duration of the current week. At the end of the week, I get to visualize where my time was spent, and then update a separate journal (Weeks.txt) with the pomodoro count. The whole setup has a touch of gamification that is rewarding over time and gives me satisfaction.

I have always wondered how Elon Musk manages his life in a way he's been known to derive satisfaction from his 100-hour work weeks. I hope at last, with this, I'm not too far off.

Thanks to Andrew Day MacLelland, Diego Plentz, Simone Villas Boas, Hernani Dimantas and Jeff Morgan for reading drafts of this article.