Nono.MA

MARCH 2, 2021

Breathe in, breathe out

I learned about pranayama, the yoga practice of controlling your breath, in an interview with James Melouney and Selene Urban. As Selene explained, a particular type of pranayama called sama vritti (equal length in the Sanskrit language) consists of breathing in and out in equal-length intervals. Say, counting four as you breathe in, hold, breathe out, and hold again. I added a bonus recording at minute 1:37:50 of this podcast episode, in which Selene guides us through a five-minute breathing session that you can use to relax, meditate, and calm down.

Breathe in.
One, two, three, four.
Hold.
Four, three, two, one.
Breathe in.
One, two, three, four.
Hold.
Four, three, two, one.

FEBRUARY 25, 2021

Batch-Export PowerPoint Slides to Images Programmatically

unoconv is a tool to "convert between any document format supported by OpenOffice," available to install via Homebrew on macOS. You can convert, for instance, ppt files to png images (or to a multi-page PDF files) by running a command with this command-line interface program. The project is open source and you can browse its code on GitHub.

Install unoconv with Homebrew

brew install unoconv

Common issues: LibreOffice not found on your system

I ran into this issue when I first ran the unoconv command.

unoconv
# unoconv: Cannot find a suitable office installation on your system.
# ERROR: Please locate your office installation and send your feedback to:
#        http://github.com/dagwieers/unoconv/issues

That's because unoconv can't find libreoffice. You can install its Homebrew Cask.

brew install --cask libreoffice

After doing that, unoconv can find the libreoffice installation.

unoconv
# unoconv: you have to provide a filename or url as argument
# Try `unoconv -h' for more information.

Export PowerPoint Slides to PDF

unoconv slides.pptx -f pdf

Convert PDF to PNG or JPG Images

Even though you can directly export a PowerPoint presentation to JPEG or PNG format, unoconv exports only the first page by default.

You can use ImageMagick's convert tool to rasterize the PDF pages as images.

convert -density 300 slides.pdf image%d.jpg

Batch-convert Presentations to Images

Here's a bash script that will convert all ppt presentations in a folder to jpg images by folders.

# Convert all pptx files to multi-page pdf files
unoconv -f pdf *.pptx

# Loop through pptx files
for f in *.pptx
do
    echo "${f}.."
    mkdir -p ${f}-jpg
    convert -density 20 ${f%.*}.pdf "./${f}-jpg/image%d.jpg"
done

Available formats

You can see the extensive list of supported input and output formats on unoconv's documentation and read more about how to use unoconv in its help manual page or by running unoconv -h.

FEBRUARY 24, 2021

To read environment variables from a Python script or a Jupyter notebook, you would use this code—assuming you have a .env file in the directory where your script or notebook lives.

# .env
FOO=BAR
S3_BUCKET=YOURS3BUCKET
S3_SECRET_KEY=YOURSECRETKEYGOESHERE
# script.py
import os
print(os.environ.get('FOO')) # Empty

But this won't return the value of the environment variables, though, as you need to parse the contents of your .env file first.

For that, you can either use python-dotenv.

pip install python-dotenv

Then use this Python library to load your variables.

# Example from https://pypi.org/project/python-dotenv/
from dotenv import load_dotenv
load_dotenv()

# OR, the same with increased verbosity
load_dotenv(verbose=True)

# OR, explicitly providing path to '.env'
from pathlib import Path  # Python 3.6+ only
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)

# Print variable FOO
print(os.environ.get('FOO')) # Returns 'BAR'

Or load the variables manually with this script.

import os
env_vars = !cat ../script/.env
for var in env_vars:
    key, value = var.split('=')
    os.environ[key] = value

# Print variable FOO
print(os.environ.get('FOO')) # Returns 'BAR'

FEBRUARY 23, 2021

A world without email

From the outside, Cal Newport looks to me as a superhuman. On top of having family and kids, he teaches computer science at Georgetown University, Washington, publishes academic research papers, writes about the intersection of digital technology and culture, has published six books, and will be releasing his seventh book—A World Without Email: Reimagining Work in an Age of Communication Overload—next Tuesday, March 2, 2021, which is now available for pre-order.

Newport started writing and publishing books while he was a student—his first titles include How to Win at College, How to Become a Straight-A Student, and How to Be a High School Superstar—and started building a community of readers who enjoyed his Study Hacks blog.

So Good They Can't Ignore You was Newport's first book outside of the college or high school arena, which walks you through how to "build a career you truly love [where] you're not only paid well, but you're doing work that matters." Newport teaches the Top Performer course online—based on this book—together with Scott Young.

I've lost count of how many times I've recommended his latest books on the podcast and my writing, mainly Digital Minimalism and Deep Work.

Deep Work was a response to readers' questions on how to structure their workday. As reads the summary of his Wall Street Journal bestseller, "deep work is the ability to focus without distraction on a cognitively demanding task. It's a skill that allows you to quickly master complicated information and produce better results in less time." Newport firmly believes we can only do deep work with full concentration without distractions. His approach consists of working in a series of 1 h 30 min blocks separated by one-hour breaks that he uses for productive meditation (recharge walks or breaks in which your mind can continue pondering about the problems you're trying to solve at work). To keep track of your time, Newport created The Time-Block Planner, a notebook that lets you plan your day using this technique.

For the past years, I've been using this method using this 7:00–19:00 time-blocking sheet that you can download here. It contains four planning cards to print in an A4- or Letter-sized sheet to fold in four. Works best with two-sided printing to create eight cards to cover an entire week. I try to block time for deep tasks one day in advance at the end of my workday.

Digital Minimalism was a response to readers who asked how to manage their non-work time. My takeaway from this book is that a social media sabbath—going cold turkey for thirty days in a row—can help you get rid of the habit of mindlessly scrolling through your social media feeds and reclaim your leisure time, only getting back to using social media after you've identified what value you're getting out of them if any, and making sure to schedule your leisure time as well as your workday to ensure the activities you want to do are happening. It's interesting how much Newport—a person who's never been on social media—can contribute with his digital minimalism philosophy. In my case, I spent three months in a row without social media. I decided I would be present by sharing the content I created but wouldn't routinely interact in other ways and would remove the social media apps that remained on my phone.

A World Without Email will be released next week. As Newport mentions on his podcast—Deep Questions—online communication as we know it today isn't the result of careful thinking in search of the best way for knowledge workers to communicate but something that happened because the technology was there. We embraced email and instant messaging as the solution, but Newport explains how this constant influx of messages depletes our ability to perform deep work. He sees applications like Slack or Teams as transient applications that will go away sometime soon, as we devise new methods that will let us—as knowledge workers—work without distractions. I already pre-ordered a copy.

I doubt Cal Newport is superhuman, but I applaud his work and life approach and his consistency to ship work that matters.

FEBRUARY 16, 2021

The urban sketching habit

The 2020 pandemic broke my 'urban sketching' habit and I don't sketch outside as much as I used to.

Yesterday, the blue sky pushed me to leave the keyboard and adventure myself out with my sketchbook, pens, and watercolors.

I enjoyed drawing a concrete mixer truck as I caught up on the phone with Grandma, who will get her first COVID vaccine shot tomorrow.

The truck comes and goes to a huge building site at Hoyo de Esparteros, Málaga, for the ongoing construction of an H10 'high-rise'1 hotel by Pritzker Prize architect Rafael Moneo.

It'd be great to capture the hotel's evolution on my sketchbook, as days get longer and sunnier. That, surely, will help to get back the urban sketching habit.


  1. The building is just eight floors, but most buildings around it aren't more than three or four floors. 

FEBRUARY 15, 2021

Here's how I installed pandoc on my MacBook Pro (13–inch, M1, 2020) to run with Rosetta 2 — not natively, but on the x86_64 architecture — until a universal binary for macOS is built that supports the arm64 architecture in new Appple Silicon Macs.

This guide may be used to install other non-universal brew packages.

# Install Homebrew for x86_64 architecture
# https://soffes.blog/homebrew-on-apple-silicon
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# Install pandoc using that version of Homebrew
arch -x86_64 /usr/local/bin/brew install pandoc

Outputs

==> Downloading https://homebrew.bintray.com/bottles/pandoc-2.11.4.big_sur.bottle.tar.gz
Already downloaded: /Users/nono/Library/Caches/Homebrew/downloads/34e1528919e624583d70b1ef24381db17f730fc69e59144bf48abedc63656678--pandoc-2.11.4.big_sur.bottle.tar.gz
==> Pouring pandoc-2.11.4.big_sur.bottle.tar.gz
🍺  /usr/local/Cellar/pandoc/2.11.4: 10 files, 146.0MB
# Check pandoc's version
arch -x86_64 pandoc --version

Outputs

pandoc 2.11.4
Compiled with pandoc-types 1.22, texmath 0.12.1, skylighting 0.10.2,
citeproc 0.3.0.5, ipynb 0.1.0.1
User data directory: /Users/nono/.local/share/pandoc or /Users/nono/.pandoc
Copyright (C) 2006-2021 John MacFarlane. Web:  https://pandoc.org
This is free software; see the source for copying conditions. There is no
warranty, not even for merchantability or fitness for a particular purpose.

Converting Markdown to Html

arch -x86_64 pandoc sample.md -o sample.html

Contents of sample.md:

# Hello, Apple Silicon!

- Pandoc
- seems
- to
- work.

Contents of sample.html:

<h1 id="hello-apple-silicon">Hello, Apple Silicon!</h1>
<ul>
<li>Pandoc</li>
<li>seems</li>
<li>to</li>
<li>work.</li>
</ul>

FEBRUARY 9, 2021

Each sketch is different

If you draw every day, it's inevitable to repeat certain objects. The items I bring with me daily—Airpods, phone, watch—and the ones I work with at my desk—computer mouse, microphone, laptop, chair—show up every once in a while on my sketchbooks. Yet each sketch is different. Think of the omnipresent face masks. Every time a mask sits on the table or hangs from a wall, it takes on a unique shape and sketching it becomes a brand new challenge.

Other artifacts and scenes, however, only appear once—the drawing of a place I traveled to, a gathering with family or friends, a building, a distinct palm tree—and become tied to a memory.

FEBRUARY 9, 2021

When running any git command — including git pull, git push, git status, etc. — I was getting this error on macOS Big Sur.

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

The message means the Xcode Developer Tools are not properly installed, and you need to run the following command to fix this.

xcode-select --install

A window will prompt you to Install the Developer Tools. After two minutes, a message saying "The software was installed" showed up on my machine, a MacBook Pro (13-inch, M1, 2020). I was good to go.

FEBRUARY 2, 2021

Snow emergency and sunny walks

Ever since I lived in Cambridge, Massachusetts, I receive emails from the City of Boston. Yesterday, Mayor Martin J. Walsh declared a snow emergency ahead of the forecasted winter storm, scheduled to start yesterday at noon and end today's afternoon (Boston time). "I am urging everyone to be ready and prepared for tomorrow's forecasted snowstorm," said Mayor Walsh. According to the warning, my fellow Bostonians are better off removing their vehicles from main roads, using caution outside, and staying home.

Here, in Málaga, Spain, all non-essential business is about to close for fifteen days. The weather doesn't invite us to stay inside; the high was 25 Celsius degrees last week. Mask ok, I walked more than twenty kilometers over the weekend, wearing my sunglasses and enjoying the sunny weather. We'll get colder days before the summer, but nothing compared to the snowy winters of Cambridge.

I get nostalgic of my days in Cambridge when friends send pictures; I used to walk to class under the snow, boots on, enjoying this buffer time to be alone with my thoughts, call, or listen to podcasts. That nostalgia might be why I don't click the 'unsubscribe' button at the end of the City of Boston.

There's barely anything we can do. But we can still walk outside.


Be safe, stay sane, and stay healthy.


P.S. You can now listen to a new Getting Simple podcast episode with Mike Gabour on Falling in Love With the Ocean, Dark Showers, Attention, The Sensorium, and The Contents of his Backpack.

FEBRUARY 1, 2021

Mike Gabour — Falling in Love With the Ocean, Dark Showers, Attention, The Sensorium, and The Contents of his Backpack

Hi Friends!

Today, I bring you an insightful conversation with Mike Gabour, a good friend of mine whom I admire and have been meaning to get into the show for a while. I love the attention he puts into everything he does and his peaceful and quieting worldview. Listening to him talk is soothing.

I hope you enjoy learning how Mike fell in love with the Ocean, his take on mindfulness, meditation, attention, and love, his experiments with dark showers, the Sensorium, a detailed commentary on the contents of his backpack (of which we'll share a video in the coming weeks), and much, much more.

Without further ado, let's dive into Mike's mind.

Listen to "Mike Gabour — Falling in Love With the Ocean, Dark Showers, Attention, The Sensorium, and The Contents of his Backpack"

JANUARY 26, 2021

The new sketchbook

Awhile back, I wrote about my sketchbook of choice: the A4, landscape, 300-gram watercolor Moleskine (29.7 x 21.0 cm, 8.25 x 11.75 in). After going through four of these sketchbooks, I've grown used to their format. But it feels as if the Italian brand decreased the paper quality of their sketchbooks; its pages don't hold watercolors as well as they once did.

While I investigate whether it's the sketchbook or my use of it that's changed, its apparent decline in paper quality made me look for alternatives. Luis Ruiz recommended the Alpha and Gamma Series from Stillman & Birn—an American company founded in 1958 by the black hardbound sketchbook pioneer, a Viennese bookbinder by the name of Philip Birn (1911–2004).1 I decided to go for the hardbound, 150–gram, white-paper Alpha Series (22.9 x 15.2 cm, 9 x 6 in), slightly bigger than an A5 sheet. The Sakura Micron 005 and 01 pens run smoothly on the Stillman & Birn sketchbook, whereas they scratch the surface of my 300-gram watercolor Moleskine paper. And I can work with my watercolors reasonably well, as long as I don't apply too much water.

Here's the first page of my Stillman & Birn sketchbook. I'll be sharing more of my sketches and thoughts on this sketchbook in the coming months.


Sample sketches on a Stillman &amp; Birn Alpha Series sketchbook.

If you use them, what are your notebook and sketchbook of choice?


  1. Stillman & Birn. (2021). About Stillman & Birn. Accessed Monday, January 25, 2021. 

JANUARY 19, 2021

Here's how to execute a deployed AWS Lambda function with the AWS command-line interface.

Create a payload.json file that contains a JSON payload.

{
  "foo": "bar"
}

Then convert the payload to base64.

base64 payload.json
# returns ewogICJmb28iOiAiYmFyIgp9Cg==

And replace the contents of payload.json with that base64 string.

ewogICJmb28iOiAiYmFyIgp9Cg==

Invoke your Lambda function using that payload.

aws lambda invoke \
--function-name My-Lambda-Function-Name \
--payload file://payload.json \
output.json

The request's response will be printed in the console and the output will be saved in output.json.

If you're developing locally, you can use the aws lambda update-function-code function to synchronize your local code with your Lambda funciton.

JANUARY 19, 2021

What's so great about live streaming?

There's no edit button.

Whatever happens, goes online in real-time—live.

Viewers can engage and interact.

You can produce as many hours of content as you invest in live streaming.

After the fact, you can edit videos, curate, filter, censor, and re-upload your content as separate clips; in a more digestible format.

But post-processing is a time sink.

(Even when machine-learning-based tools—think Descript—help you out.)

What comes with live streaming, as with any other public speaking gig, is that, over time, you get more comfortable and are willing to ship content with fewer edits, and that's something I'm working hard to improve.


P.S. In case you missed it, I started live-streaming four months ago. For now, streams focus on machine learning, but I plan to cover topics related to creative coding, podcasting, design, writing, sketching, and workflow automation.

JANUARY 13, 2021

I got this error while trying to pip3 install tensorflow. I tried python3 -m pip install tensorflow as well — it didn't work.

ERROR: Could not find a version that satisfies the requirement tensorflow
ERROR: No matching distribution found for tensorflow

As was my case, the reason for this error might be that you are using pip from a Python version not yet supported by any version of TensorFlow. I was running Python 3.9 and TensorFlow only had compatibility up to Python 3.8. By creating a new environment with Python 3.8 (or reverting the current environment to use 3.8) I could pip3 install tensorflow successfully.

JANUARY 12, 2021

What do architecture and software engineering have in common?

There's a problem to solve, ideas to implement, and the result is often a usable artifact.

What has always put me off architecture is its slow nature. It might take years for big projects to go from ideation to design to construction to use. Yet tiny interventions (think small retrofits and interior designs) can be swift.

That's the joy of coding; you can formalize an idea into a usable prototype in a matter of minutes. Write code, run your program, then visualize and interact with your changes. When programming simple and interactive systems, you can see and use a functioning prototype from the early development stages.

Of course, I don't mean that it takes minutes to create complex programs, but that coding is a dynamic process that provides feedback as you make changes. Whereas large software projects might resemble architecture projects' slowness, small-scale architectural interventions might be as fun as prototyping with code.

JANUARY 8, 2021

About six months ago, Microsoft launched Pylance, a "fast and feature-rich language support for Python," available in the Visual Studio Code marketplace.

Pylance depends on our core Python extension and builds upon that experience, for those of you who have already installed it.

Among its main features are type information, auto-imports, multi-root workspace support, and type checking diagnostics.

The name Pylance serves as a nod to Monty Python’s Lancelot, who is the first knight to answer the bridgekeeper’s questions in the Holy Grail.

JANUARY 7, 2021

Dan Goodin on ArsTechnica:

In 2016, WhatsApp gave users a one-time ability to opt-out of having account data turned over to Facebook. Now, an updated privacy policy is changing that. Come next month, users will no longer have that choice. Some of the data that WhatsApp collects includes:

  • User phone numbers
  • Other people’s phone numbers stored in address books
  • Profile names
  • Profile pictures and
  • Status message including when a user was last online
  • Diagnostic data collected from app logs

Updated 2021.01.09

Here are the 'Key Updates' that all users will need to accept before they take effect, on February 8, 2021, to continue using WhatsApp.

Last modified: January 04, 2021

Respect for your privacy is coded into our DNA. Since we started WhatsApp, we’ve built our services with a set of strong privacy principles in mind. In our updated Terms of Service and Privacy Policy you’ll find:

  • Additional Information On How We Handle Your Data. Our updated Terms and Privacy Policy provide more information on how we process your data, and our commitment to privacy. For example, we’ve added more information about more recent product features and functionalities, how we process your data for safety, security and integrity, and added more direct links to user settings, Help Center articles and how you can manage your information.
  • Better Communication With Businesses. Many businesses rely on WhatsApp to communicate with their customers and clients. We work with businesses that use Facebook or third parties to help store and better manage their communications with you on WhatsApp.
  • Making It Easier To Connect. As part of the Facebook Companies, WhatsApp partners with Facebook to offer experiences and integrations across Facebook’s family of apps and products.

JANUARY 5, 2021

Most-visited stories of 2020

As I mentioned last week, I published 52 stories and sketches in 2020.

Here are the ten with the most views (in descending order).

  1. We just wanted free internet
  2. If it can be automated, it will
  3. What's the time?
  4. Feels like simplicity
  5. Stories are the answer
  6. Into the wild
  7. Jack of all trades, master of none
  8. Work or walk
  9. We are out of face masks
  10. What am I looking at?

What's the time?, Should you aim for quantity instead of quality? and 600 days of practice are among my favorite.

Would I have to pick one, that would be Stories are the answer—which made it into a podcast.

What stories did you enjoy the most?

DECEMBER 29, 2020

Goodbye, 2020

In 2020, billions of people wore a face mask to walk outside for the first time.

We've had to comply with full lockdowns, limited gatherings, and ever-changing curfews. We've reduced our travels and kept our trips as local as they can be. Christmas hasn't been our traditional holiday—a sense of fear and anxiety accompanies our gatherings with friends and family—and local restrictions forced many to spend salient dates apart from each other.

This publication is the last of the year, and I wanted to shift my focus from the bad to the positive, highlighting some of the good things I take from 2020.

  • I began live streaming (and showed up for 12 consecutive weeks)
  • I recorded podcasts remotely (and published 15 episodes)
  • I wrote and sketched daily (and published 52 stories)
  • We released Sisyphus
  • I delivered online talks
  • I attended student reviews as a guest crit on Zoom

At the turn of 2019, I published Twelve Grapes—a short reflection on temporal landmarks and New Year's resolutions. A few months later, I shared A Year of Transformation—a podcast about what I learned and changed in 2019.

I miss traveling and meeting with people face to face without the fear of being infected or infecting others.

As we enter 2021, companies and individuals will benefit from improved skills to work virtually1, yet I can only wish for things to get back to "normal."

Goodbye, 2020.

Happy New Year!


  1. During the lockdown, I bought a 4K webcam and a green screen and set up my computer to record and live stream lectures and tutorials on YouTube. 

DECEMBER 24, 2020

ALGO — Teaching, Live Streaming, Publishing Fear, Delegating, and Lessons Learned from 3 Years of Podcasting

Hi Friends!

Right before the turn of the year, I bring you a brand new episode that opens up the ALGO series—conversations between Jose Luis Garcia del Castillo y López and myself on topics such as teaching, coding, machine learning, and creativity.

It's been three years since I last interviewed Jose Luis, and I enjoyed learning how his life changed when he became a Doctor of Design, began teaching at Harvard, and started live-streaming his lectures online.

We also discuss the guilt of postponing things, the difficulties of delegating tasks and micro-management, the fear of shipping creative work, and lessons learned after forty podcast episodes.

Please enjoy.

Listen to "ALGO — Teaching, Live Streaming, Publishing Fear, Delegating, and Lessons Learned from 3 Years of Podcasting"

DECEMBER 22, 2020

600 days of practice

Six hundred days ago, I began a quest to practice sketching, writing, and meditation—activities I enjoy doing that I want to cultivate. Even if only for a few minutes per day, I would engage in deliberate practice. Let me share some keys that might help you develop a practice to improve your skills.


Malcolm Gladwell repeatedly mentions the 10,000-hour rule in Outliers, a time that signifies how much practice you need to become proficient at a given skill. Of course, Gladwell didn't mean the time you practice is independent of talent or how you practice.1

As Cal Newport explains in Deep Work, two core components help identify deliberate practice: "(1) your attention is focused tightly on a specific skill you're trying to improve or an idea you're trying to master; (2) you receive feedback so you can correct your approach to keep your attention exactly where it's most productive."2 If you're not familiar with the term, Anders Ericsson coined it in the 1990s.2

The type of work experts do is as important as the time spent; you need to work through the right challenges to sharpen your skills.

In 2019, I interviewed Scott H. Young, author of Ultralearning, who shed some light on the issue. "There's a huge amount of research that shows that transferring skills from one domain to another is a lot more difficult than people think. Directness is, essentially, that when you are learning to do something, you want to tie your learning activities to the context in which you want to apply this skill later. If you are learning a language and you want to have conversations, you need to have conversations; if you are learning public speaking because you want to stand on stage and give speeches, you [have to] stand on stage and give speeches."3

In sketching, I won't get much better at drawing portraits if I spend the bulk of my time drawing buildings and objects; these are two distinct tasks. I'll acquire individual skills while I practice sketching buildings that might transfer and be useful when drawing portraits—say, noticing where lights and shadows are—but others won't—perspective drawings have nothing to do with drawing eyes and lips and ears. In Young's words, "you have to think about what you're trying to accomplish and how you're going to use it."4 That is the gist of directness, practicing the exact skills you want to get better at.

After almost two years of deliberate practice—which doesn't mean I wasn't practicing before but that I'm diligently practicing every day now—, some of my improvement is visible. I'm more comfortable writing; I'm more confident and less nervous interviewing guests on my podcast; and I find it easier to capture shapes, lights, and shadows when sketching. Paradoxically, these skills come more naturally the more I practice.

It's helpful to define your weaknesses and gather feedback from others from my experience, as they will inform the skills you need to practice. What are you trying to accomplish, and how are you going to use [your skill]? Young's question highlights the importance of knowing why you're practicing in the first place.

For me, it's all about improving my craft and inspiring others. My current commitments include writing two hundred words, meditating for ten minutes, and sketching something from reality every day. I use a habit tracker to track my progress, which helps me not "break the chain." I want to make sure I'm showing up and not missing one day. Regarding content publication, I aim to release a podcast episode per month, a sketch and story per week, and a live stream per week.

"When it's time to write, there will be days that you don't feel like typing. But stepping up when it's annoying or painful or draining to do so, that's what makes the difference between a professional and an amateur."5 In Atomic Habits, James Clear denotes the difference between the pro and the amateur. "Professionals stick to the schedule; amateurs let life get in the way."5 Jocelyn K. Glei also defines that professionalism in Manage Your Day-To-Day: "A professional is someone who can keep working at a high level of effort and ethics, no matter what is going on—for good or ill—around him or inside him. A professional shows up every day."6

For better or worse, I decided to formalize—or professionalize—my dearest hobbies. Publishing my work online makes it real, and I tend to take it more seriously this way. Even when I don't feel like practicing, I know that building the habit is more important than what I might write, sketch, or record on a given day. Days come from time to time, in which I can spend more time and focus. When I can't find the time to concentrate fully, for instance, I might meditate while I shower or walk, while other days I can sit for more than twenty minutes completely idle, without distractions. I might sketch something in two or three minutes or write to comply with my 200-word minimum during busy days but then spend hours drawing or writing when I can make time for it. Yet this only happens when you show up every day.


If you've read this far, you might be asking how you can incorporate these principles into your practice.

As I learned from my coach, it's best to define where you'd like to be one, two, or five years from now, and list the skills you need to develop to get there. That goal will determine the type of work and challenges you need to practice.

Show up every day, nurture your continued practice, focus on the tiny daily improvements, and enjoy. Ten thousand hours of training might take you far, but what matters are the hours you practice deliberately applying your skills as you want to use them in the future.


  1. Gladwell, Malcolm. Outliers: The Story of Success. 1st ed., Kindle version, Back Bay Books, 2011. 

  2. Newport, Cal. Deep Work: Rules for Focused Success in a Distracted World. 1st ed., Kindle version, Grand Central Publishing, 2016.  

  3. Martínez–Alonso, Nono. "Getting Simple." Scott Young: Ultralearning, How to Master Hard Skills, Outsmart the Competition, and Accelerate Your Career, 6 August, 2019. 

  4. Young, Scott, and James Clear. Ultralearning: Master Hard Skills, Outsmart the Competition, and Accelerate Your Career. Illustrated, Kindle version, Harper Business, 2019. 

  5. Clear, James. Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones. Illustrated, Kindle version, Avery, 2018.  

  6. 99U, and Jocelyn Glei. Manage Your Day-to-Day: Build Your Routine, Find Your Focus, and Sharpen Your Creative Mind (99U). Kindle version, Amazon Publishing, 2013. 

DECEMBER 15, 2020

Better times lie ahead

We humans are social beings; we need to be around others, share our time and stories and gossip, the warmth of physical contact, and the display and feeling of love. It's in our nature. Since the internet's appearance, we've tried to fulfill this need with virtual calls, meetings, and gatherings—which render extremely useful in professional settings but don't suffice in our personal lives. We communicate in shallow ways via social media and instant messaging and connect more deeply through audio and video calls. Yet, all of this is insufficient for our well-being, and we often get a false sense of connection.

The big tech companies are working on immersive virtual and augmented realities to shorten the gap between the experience of in-person meetings and their virtual equivalents. Facebook Horizon lets you 'explore and create' collaboratively with virtual avatars. Apple—reportedly engineering a pair of augmented reality glasses, a headset along the lines of Google Glass and Microsoft HoloLens—is preparing to release augmented reality from the limitations of smartphones and tablets. In these environments, astonishing visuals would make participants believe they're in the same room, haptic feedback would fool their bodies into thinking they're touching objects, and brain waves could help them hallucinate the rest, ala Black Mirror.

If it were to reduce the risk of infecting ourselves and our loved ones during this (and future) pandemics while meeting our psychological and social needs, this scenario doesn't sound bad at all.

For now, nothing beats sitting together and holding each others' hands, even if wearing a face mask. But, of course, this isn't always a possibility.

As these immersive technologies improve, we'll rely on them more and more, replacing long-distance travel, hazardous physical interactions, and face masks with virtual gatherings and wearables.

Meanwhile, here's a reminder to myself: Protect what you have by being mindful and patient; better times lie ahead.

DECEMBER 10, 2020

Music or Podcasts? Commuting, Meditative Walks, and Solitude

Hi, Friends!

For the last episode of Getting Simple, I answered a question submitted by a listener: During your commute, do you listen to music or podcasts?

I'd love to hear from you. Ask a question.

Listen to: "Music or Podcasts? Commuting, Meditative Walks, and Solitude"

DECEMBER 8, 2020

Closed for vacation

You've probably seen this sign before. It means we're taking a break—a pause.

A straight "Closed for vacation" sign that keeps you off work during the holiday season.

On these dates, OPEN signs keep on-location workers away from their loved ones, and remote workers distracted, never fully present, always alert to potential notifications.

In the internet era, you have the option to do your homework, schedule your publications, switch off notifications, and be present.

That's the peace of mind of planning and automation.

DECEMBER 2, 2020

Why Spotify kept removing my show

I fixed a bug that sporadically made Spotify remove my show, the Getting Simple podcast, from its platform without any logical explanation and, more worrisome, without warnings or notifications.


Some time ago, I noticed the podcast's RSS feed displayed episode release dates localized in Chinese and other languages. Something that, to my eyes, seemed random. Yesterday, I finally identified the issue.

The XML feed is cached for thirty minutes at a time — a duration I set to avoid overloading the server by re-generating the feed on every request.

But this feed re-generation used the requesting party's "locale." This code corresponds to the language and region configured in the system that performs a web request. For instance, the en-US locale represents a visitor or bot configured to use the English language and the United States region. A localized site — that can adjust its content to different locales — would display a date as Wed, 02 Dec 2020 for en-US visitors and as Mié., 02 Dic. 2020 for es-ES visitors.

date('D, d M Y H:i:s O');
// returns "Wed, 02 Dec 2020 05:19:14 -0500"

This date('D, d M Y H:i:s O') PHP method uses the operating system's language and region to determine what to display, but a localized website can adjust to the visitor's locale or even comply with explicit requirements.

App::setLocale('en-US'); // force locale to en-US

Item::formatDate(Date::now(), 'D, d M Y H:i:s O')
// returns "Wed, 02 Dec 2020 05:22:55 -0500"

App::setLocale('es-ES'); // force locate to es-ES

Item::formatDate(Date::now(), 'D, d M Y H:i:s O')
// returns "Mié., 02 Dic. 2020 05:22:55 -0500"

The issue was that the re-generation of the podcast feed was dependent on the requesting agent's locale when the cache expired, which could be any user or bot. Spotify was pinging the podcast and could load a feed generated by an agent that used a locale other than English in the past thirty minutes.

App::setLocale('en-US');
// Generate episode timestamps here

When Spotify found dates were not in English, it removed the show altogether—something that Apple Podcasts and other networks didn't do—and then added the podcast back hours later, when episode dates were in English again.

Spotify player showing a Getting Simple episode.

Spotify took its time to reload all existing episodes after forcing the localization of episode timestamps to use the en-US locale and re-generating the feed. Now all episodes and their stats are back. Hopefully, the show won't disappear again, and users won't hit this ugly, erroring embedded player.

DECEMBER 1, 2020

My weekly post

I'm writing more than ever, but I still find it hard to hit my Tuesday posts' deadline.

I guess I'm lazy.

To me, the draft is playful and fun, but polishing for publication can be hard work.

I think I'm good at generating new ideas, consistently adding new post drafts to my to-do list.

Ever postponing the editing work, I would often publish new pieces—written from scratch—instead of editing existing drafts.

But there's no way out: it makes little to no sense to publish drafts, and I try to come back to the posts I've already started (which tend to become some of my best stories).

The important thing is to move forward; To practice daily, ship a new story every Tuesday, and enjoy how writing and publishing get easier, week by week.


In future posts, I'll share the tools and techniques that help me write more and better and the planning methods I'm experimenting with to consistently writing and publishing my weekly story.

NOVEMBER 27, 2020

In DigitalOcean, running the do-release-upgrade command was returning the following message.

Checking for a new Ubuntu release
Please install all available updates for your release before upgrading.

Install all available updates

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade

Reboot the system

shutdown -r now

You could stop here if all you want is to install available updates. Read the warning below to make sure you don't break your live applications and whether this is the best approach you can take.

Upgrade Ubuntu

WARNING: Please read this article by DigitalOcean on the potential pitfalls of upgrading an existing installation with your applications running on it. Instead of upgrading in-place, the recommended approach is to migrate your applications by creating a new, fresh instance with Ubuntu 20.04 LTS instead of upgrading an existing one. (Run at your own risk!)

sudo do-release-upgrade

NOVEMBER 24, 2020

The first question

Last month, I asked you for questions.

Among other questions, a listener from South Africa asked whether, during my commute, I listen to music or podcasts, and why. It's interesting as I've been working from home for the past two years and barely had to commute.

I chose this as the first podcast question and enjoyed answering it live. The episode will come out soon.

What's your take? Do you prefer to listen to music or podcasts?

If you want, you can reply to this email, send a voice note, or ask a question at gettingsimple.com/voice.

I'd love to hear from you.

NOVEMBER 18, 2020

Roberto Molinos — Plan for Failure: The Peace of Mind of Being Patient and Antifragile

Hi, Friends!

For the last episode of Getting Simple, Roberto Molinos highlights the benefits of being patient and embracing uncertainty and shares a series of techniques, theories, and books that can help you rethink your company, market your products, and have a 4-day workweek.

Listen to: "Roberto Molinos — Plan for Failure: The Peace of Mind of Being Patient and Antifragile"

NOVEMBER 17, 2020

Time is ticking

Toggl Track is on. Every second counts toward the active task. But I'm frozen. The time block I allocated to this piece of work has ended, and I can't decide whether to continue or move onto the next item. Tasks often take longer than I initially thought.

What should I do? Time is ticking.

Want to see older publications? Visit the archive.

Listen to Getting Simple .