SEPTEMBER 16, 2021

When trying to stitch several videos together with FFmpeg with the following command.

ffmpeg -f concat -i list.txt -c:v copy concat.mp4

I came across this error.

[concat @ 0x7fca4281b800] Unsafe file name '2021-09-16'
list.txt: Operation not permitted

The issue, which I've been able to fix manually other times, is that there's an unsafe character one or more input video names, the space.

As it turns out, we only need to turn off this safety measure for FFmpeg to skip this check, passing the -safe 0 flag in our command.

ffmpeg -f concat -safe 0 -i list.txt -c:v copy concat.mp4

Hope that helps!

SEPTEMBER 15, 2021

iPhone 13

Yesterday, Apple released the iPhone 13, iPhone 13 mini, iPhone 13 Pro, and iPhone 13 Pro Max. The new Cinematic Mode looks promising, even though it's limited to 1080p at 30 fps—it can autofocus subjects as they come into a scene and unfocus when they look away, plus you can adjust which subject to focus on real-time and change the focus at any moment in your footage after recording. (These selections aren't baked into the video but digitally generated.) It's great to see the storage capacities starting at 128GB and going up to 1TB on the high-end model.

The iPhone 13 mini will probably be the one to replace my iPhone 6. The mini is slightly smaller than the iPhone 6, yet its screen (5.4-inch) is larger than the one on the 6 (4.7-inch). I can't imagine carrying a Pro Max daily.

SEPTEMBER 14, 2021

Write your thoughts, now

Capturing our thinking about future events lets us revisit how we thought prior to them.

It's fun to read what was on your mind before, say, meeting a person for the first time, your first day at work, or recording your first podcast.

The only moment to accurately capture how we thought is now, as the event itself will distort your thinking.

Revisiting these kinds of writing, I often ask myself, How on earth could I think this way?


Apple will be releasing the new iPhone 13 and Apple Watch Series 7 (maybe a new iPad) next Tuesday, September 14, 2021. They updated their events page one week in advance. There are already rumors of the iPhone 14, which seems crazy to me. After more than six years, the mini model maybe my iPhone 6's replacement. I started recording my daily seconds in 2012 or 2013 with an iPod Touch, then with my iPhone 6 ever since I got it in January 2015.

These new devices can record video at a professional quality, and take pictures in low light (to which my phone adds plenty of noise) which I could use to record podcast interviews on video. It'd be great to see the notch and the camera bump go. But that may have to wait a few more years.


Three kilos of lead

Wearing a 5-mm neoprene diving suit makes you float as if you were wearing floaties. A belt with three kilos of lead weights and long fins let me dive deep underwater.

Diving suit, fins, and belt on, I jumped from the dingy to dive in search of the flat rocks, a kilometer-long area of stones nearby my family's Summer house. The water was foggy, and I could barely see anything. At the sea bottom: sand. The flat rocks were nowhere to be found. As I came back up to breathe, Bea shouted, A dolphin! Get on the boat! I went up after what would be my first (and last) dive of the day. Dad drove the boat slowly, following a pair of dolphins that swam away parallel to the coast. For an hour, we swam with around eight dolphins traveling in couples that, to the eye, appeared to be about two to three meters long. They'd frequently go up for air, as we do when freediving—only that they hold their breath for up to ten minutes1 and navigate at around ten to twenty kilometers per hour2.

It was the first time we've seen dolphins in the area in thirty years.

What's excellent news is that, a week later, we found and geo-located the flat rocks with crystal clear water—a bank of hundreds of sardines, a few giant jellyfish, and lots of anemones attached to the flat rocks.

  1. How long can a dolphin hold its breath? Ponce Inlet Watersports.  

  2. How fast can dolphins swim? Dolphin Communication Project.  

AUGUST 31, 2021

A hundred million satoshis

One bitcoin equals one hundred million satoshis1 (1 bitcoin = 100,000,000 satoshis), making Bitcoin extremely divisible. Yet, the usefulness of Bitcoin's divisibility lowers as its price goes up. Let's do some numbers.

When one bitcoin was worth $1,000 (around March 2017), you could divide a dollar into 100,000 units—a satoshi was worth 0.00001 dollars. Each cent was divisible into 1,000 units. But what about today?

As I wrote these lines, on May 13, 2021, the price of Bitcoin displayed on Google was $48,617.502 (BTC to USD)—a satoshi was worth 0.000486175 dollars. That's 48.61x what it was worth back in 2017, making each cent divisible into 20 units (instead of 1,000). The higher Bitcoin's price, the less divisible its dollar equivalent is. If Bitcoin rose to $1,000,000, a satoshi would be worth a cent. Does it make sense to have a coin valued so high compared to fiat currencies such as the euro or the dollar?

In the digital world, divisibility makes it possible to offer services for a fraction of a cent—a mechanism present in online games that let you convert money into digital tokens. Having this feature in a currency by default would be advantageous for services not to have to implement this feature independently. But this divisibility depends on Bitcoin's price compared to fiat currencies.

Maybe Satoshi Nakamoto3 expected satoshis' price to parity with the cent, or perhaps he never imagined the price could get so high, which would allow for the exchange of satoshis as small fractions of Bitcoin and other currencies.

Nobody knows whether Bitcoin will stand the test of time or what its future value will be. What we know is that cryptocurrencies are here to stay.

  1. The general unit structure of bitcoins has 1 bitcoin (BTC) equivalent to 1,000 millibitcoins (mBTC), 1,000,000 microbitcoins (μBTC), or 100,000,000 satoshis. Investopedia

  2. I edited this essay for publication on August 30, 2021, and the price of bitcoin—$48,141.30—is roughly the same as on May 13, 2021. 

  3. Satoshi Nakamoto is the pseudonym under which Bitcoin's whitepaper was published. 

AUGUST 24, 2021

There is never a later

On postponing life: Part 1

I long for the days in which we could fly. Catch a plane and meet a friend in a remote world location in a matter of hours. One such event for me was a two-week trip to San Francisco back in October 2019. I traveled for work and managed to connect with friends over the weekend.

Even though we had been talking online for more than a year, this was the first time I met Tatjana Dzambazova, Tanja, in person. After going for ramen with two of her friends on Friday night, we drove to her wonderful place in Mill Valley, California, to spend the weekend. (I keep good memories of the long wooden stairs and the unsolicited raccoon visits.)

At her neighbors' house, we recorded an insightful interview on The Art of Asking The Right Questions—the same weekend I recorded with Adam Menges. I remember boarding the ferry that connects San Francisco and Sausalito, carrying my podcast gear in a carry-on suitcase.

Tanja had started taking notes a few days before my arrival in preparation for our conversation. She had a message to tell, and this usually makes for the best interviews. She's a curious and creative person that puts love in everything she does, a trait shared by most of my interviewees. Her main message was to avoid wasting talent working to solve the wrong problems and take care of our planet.

On Saturday, she came into the house as I sketched a panther sculpture sitting at her desk. "I'm so jealous. I keep postponing life. I keep leaving things for later and never get around doing them," Tanja said. But I don't think that's necessarily true (as you can confirm browsing through her Instagram feed). Tanja doesn't let go of a chance to go outdoors hiking, kayaking, paddle surfing, or mushrooming. I think what she meant was that she wants to do more things she can find time for.

When I first asked her to record an interview, she thought she was the wrong person because she hadn't found a way of doing less. "I'm intellectually aware of the trip, but I haven't found a way to do it better. I do take time for things that I like. I study my languages, read a lot, my boyfriend, and always try to solve new problems, learn structures, physics, or something together. But I'm just adding to my stuff and not disconnecting."

I asked Tanja for ways in which she deliberately tried to fight stress and slow down. "In America, we live for working [whereas] Europeans still manage to work for a living." I guess there's a bit of everything on both places. Your lifestyle heavily depends on the culture at your workplace and your individual mindset. "I feel like I'm postponing life because I would like to do so many other things."

"I will say, 'Later, later. After this. After this is over. After this project is over.' And there's never a later," Tanja followed. "If you don't do it now, you might never do it. So I have the discipline of asking myself this question every day. But I don't have an answer."

AUGUST 17, 2021

Why are you doing that?

Because I was told to.
Because I chose to.
Because I have a grand reason to.

AUGUST 10, 2021

Multiple identities

I'm a writer.
I'm a podcaster.
I'm a programmer.
I'm a machine-learnist.
I'm a sketcher.
I'm an educator.
I'm a creative.
I'm an artist.

Shapeshifting throughout your day makes it hard to define yourself with a one-liner.

While I often envy the full-time writer, educator, or coder, I choose to engage in different areas of expertise to escape monotony.

Yet when pros specialize, their discipline also unfolds into subcategories that bring nuances into their craft. (Artists experiment with painting techniques; scientists with research methods; machine-learnists with algorithms.) If you like what you do, it's easy to run away from boredom and make your daily work feel anew.

As a generalist, not a specialist, I don't dive as deep as others in the subjects I work on, but I ensure I enjoy most of what I do every day, slowly specializing in multiple areas.

AUGUST 5, 2021

Bytes — StyleGAN

Hi Friends—

In this new episode of Bytes, Aziz and I talk about StyleGAN, NVIDIA's state-of-the-art machine learning algorithm that generates convincing images.

Listen to "Bytes — StyleGAN"

If you want to learn more about the Bytes series, our co-host, and what to expect in future episodes, Listen to the Introduction.

AUGUST 3, 2021

Batteries not included

Buying a new device comes with the thrill of unboxing and using it for the very first time. When I was young, the electronic gifts you'd get for Christmas required power either from a wall outlet or batteries, the most common being AA and AAA. Both my remote-control Ferrari (red) and my Game Boy Classic were powered by four AA batteries. Products that require batteries often display a disclaimer on the box along the lines of "Batteries not included" or "Batteries sold separately." I loved unpacking IKEA's bright and yellow rechargeable batteries and charging them with my Dad's charger. Today, most modern portable electronics ship with lithium-ion batteries, similar to the ones used by electric cars and scooters. Each device requires a particular charger and cable (say, the new USB-C standard, Apple's lightning cable, or the ubiquitous micro-USB).

There's something special about opening a new product, putting its batteries in place, and using it for the first time. I guess that's one of the keys to capitalism and consumerism—to get customers hooked into the habit of buying and using something for the first time. Like a kid with her red car, using a shiny new iPhone is a thrill. And, to be honest, I felt this thrill while unboxing my new M1 MacBook Pro. Meanwhile, I still carry my first smartphone ever, a six-and-a-half-year-old iPhone 6 that works but doesn't support the latest operating system and many of the latest apps—that's the side of me that believes in the power of scarcity.

More specifically, one of the thrills for us—creatives, software engineers, tinkerers—when setting up a new computer is to install our favorite tools and configurations; to customize the machine. Yet this initial setup can become a dread if you do it often enough; instead of play, it becomes an unwanted obligation.

By default, Unix-like operating systems1 hide files whose name starts with a dot from ordinary users (say, when listing the contents of a directory or viewing a folder). These files, commonly called 'dot files' or 'dotfiles,' tend to contain plain-text configurations for different aspects of the system or contain folders with a set of configuration files inside. This behavior of hidden files (as many other abstractions) is embedded in the operating system to accommodate different levels of expertise of its users. If you're a pro-user, a software engineer, or a systems administrator, you can opt-in to view these hidden files to view and edit these configurations 'by hand.' But if you're a beginner, you probably don't want to be overwhelmed by a set of files you can barely make sense of.

The operating system of Mac computers—macOS—lets you toggle between displaying hidden files or not with the CMD+SHIFT+. shortcut. (That is, 'command-shift-dot.') When I do this on my machine, I see several dotfiles in my user directory, mostly related to programming tools I have installed and 'dot folders' that hold the configuration of desktop apps, such as Dropbox.

Programmers are lazy. In essence, we minimize the human effort involved in everyday tasks and the friction of manual and tedious repetitive processes. In search of avoiding long hours of configuration to replicate their system setup on a new machine, power users and software developers devise programs to automate this process. In turn, the source of satisfaction—the thrill—becomes the act of putting a workflow in place to automate the system configuration precisely as you like it by running a few commands.

Back to dotfiles.

If this is the first time you hear about dotfiles and system configuration automation, the size of the community behind these efforts would surprise you. I adapted a set of configuration scripts open-sourced by Zach Holman on GitHub. Still, with a lot of work to do, I can now wipe a computer or buy a new one and have many of my systems configured automagically.

Let me share with you a few of those automations.

A Brewfile lists dozens of macOS command-line and desktop apps—such as Dropbox, Spotify, Google Chrome, Discord, or Zoom—that get installed by running a single command; the zsh folder configures my Terminal with shortcuts to commands and autocompletion helpers. A bash script inside of the macOS folder configures a set of System Preferences—say, the mouse tracking speed and whether the Dock and status bar hide automatically—and the Preferences of other apps (such as iA Writer or Calendar).

Automation is an endless game that can become a trap in itself—you may end up spending more time automating a task than the time it would take you to complete it manually, and you won't ever run out of things to automate. Yet, you may automate processes for the thrill of having the machine take care of tedious processes for you thanks to custom-made workflows. You can sit back, relax, adjust a few parameters, and go on with your day.

  1. Unix is a family of multitasking, multiuser computer operating systems [in which other operating systems, such as Linux or macOS, are based] that derive from the original AT&T Unix, whose development started in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others. Unix. Wikipedia. 

JULY 27, 2021

Newsletterversary II

After great deliberation on its frequency and format, I sent the first 'sketches & stories' newsletter on July 2, 2019—a 153-word essay titled Out of Context featuring one of my urban sketches at the British Museum. That's when I kickstarted the weekly habit of pairing one of my sketches with a short story and sharing it on the internet. A year later, I published Newsletterversary celebrating an entire year of weekly sketches and stories with fifty-two publications.

Today, I celebrate the second year of this publication with 104 weekly sketches and stories published over 730 days.1

I'm still trying to figure out how to become a good newsletterer. Your replies keep providing me with valuable hints on what 'touches' readers the most. If you've been following long enough, you may have realized I write about ever-changing topics, yet I come back to some often every once in a while. I do my best to allow myself to experiment with different styles and formats.

My main goal with this newsletter is for us to learn about things we didn't know and interiorize well-known concepts that slip our day-to-day but should be more present.

Sharing our worldviews and stories makes us more human and understand what goes on in our minds. I'd encourage you to discover the power of writing: start with one word per day.

I'd love to hear your thoughts, feedback, comments, and suggestions and invite you to write a comment, reply, send me a voice note, or send me a private message.

THANK YOU for pushing me to keep going.

Happy newsletterversary.

  1. I delayed this publication a bit, and, as of today, I'm up to 108 weeks and sketches; 756 days. The second newsletteversary was on July 2, 2021. 

JULY 23, 2021

This page is incomplete.

I'd love to be able to export asciinema recordings as gif animations and mp4 videos. The creators don't see a point in doing this, as converting text-based recordings into image-based animations goes against asciinema's raison d'etre, but I would find it super useful to be able to include small snippets of recordings on Keynote or PowerPoint presentation slides.

JULY 20, 2021

The diving reflex

Freediving consists of holding your breath, going underwater, relaxing, and moving in specific ways to reduce oxygen consumption and last longer—a highly technical sport that requires mental and physical preparation that has little to do with scuba diving and snorkeling.

An exciting part of diving is that, as humans, we benefit from the so-called mammalian diving reflex, "a set of physiological responses to immersion […] that optimizes respiration by preferably distributing oxygen stores to the heart and brain, enabling submersion for an extended time."1 "The diving reflex is triggered specifically by chilling and wetting the nostrils and face while breath-holding."1

The simple act of putting your face in a bucket full of water activates the diving reflex—optimizing the inner workings of your body—causing bradycardia, apnea, and increased peripheral vascular resistance.2 Bradycardia (the opposite of tachycardia) brings the heart rate down, decreasing the work of the heart and limiting unnecessary oxygen usage, allowing us to stay underwater longer.2 "Increased peripheral resistance is thought to redistribute blood to the vital organs while limiting oxygen consumption by non-essential muscle groups."1

The diving reflex exhibits strongly in aquatic mammals (think of seals, otters, dolphins, and muskrats), and as a lesser response in us, adult humans, babies up to six months old, and diving birds (such as ducks and penguins).1

While looking for whether this reflex manifested while showering, I came across Your body's amazing reaction to water, a 2014 publication by James Nestor on TED Ideas. "Peripheral vasoconstriction explains how [a human] could dive to below thirty meters without suffering the lung-crushing effects that Boyle's law had predicted."3 As it turns out, equivalent pressures on land would harm our body, but not in water. And our amphibious reflexes become stronger the deeper we dive.3

We experience this phenomenon in the shower. The human body goes into a meditative state, with lower heart rates and blood pressure than the rest of your day. With more resources allocated to our brain and external inputs limited, we stay with our thoughts in an elevated mental state. Maybe, the diving reflex is one of the keys to why ideas often spark in the shower.

I brought a minimal recording setup inside my backpack to Tenerife—two Shure SM58 microphones and a Zoom H6 recorder—just in case I found a chance to record material for the podcast.

Before parting ways at the boarding gate, Jose Luis and I captured our first impressions after a week of freediving classes; what we learned, what we loved, and things we thought we knew but didn't.

We talked about the mindfulness of breath-hold diving and being deep underwater, best practices, equipment and techniques, equalizing your middle ear pressure, scuba versus freediving, and how recommendation systems brought us there.

You can Listen to our Getting Simple episode on Freediving.

  1. Diving reflex. Wikipedia.     

  2. Godek, Devon. Andrew M. Freeman. Physiology, Diving Reflex. NCBI.   

  3. Your body’s amazing reaction to water   

JULY 15, 2021

Here are a few helper functions to list Lambda functions and layers (and to count them) using the AWS Command Line Interface (AWS CLI) to inspect the serverless resources of your Amazon Web Services (AWS) account.

Listing Lambda Layers of a Function

aws lambda get-function --function-name {name|arn} | \
jq .Configuration.Layers
    "Arn": "arn:aws:lambda:us-west-2:00000000:layer:layer-name:1",
    "CodeSize": 1231231

Counting Lambda Layers of a Function

aws lambda get-function --function-name {name|arn} | \
jq '.Configuration.Layers | length'
# Returns 1 (or number of layers attached to function)

Counting Lambda Layers in an AWS account

aws lambda list-layers | \
jq '.Layers | length'
# Returns 4 (or number of layers in your account)

Listing All Layers in an AWS account

aws lambda list-layers
    "Layers": [
            "LayerName": "layer-name",
            "LayerArn": "arn:aws:lambda:us-west-2:0123456789:layer:layer-name",
            "LatestMatchingVersion": {
                "LayerVersionArn": "arn:aws:lambda:us-west-2:0123456789:layer:layer-name:1",
                "Version": 1,
                "Description": "Layer Description",
                "CreatedDate": "2021-07-14T14:00:27.370+0000",
                "CompatibleRuntimes": [
                "LicenseInfo": "MIT"
            "LayerName": "another-layer-name",
            "LayerArn": "arn:aws:lambda:us-west-2:0123456789:layer:another-layer-name",
            "LatestMatchingVersion": {
                "LayerVersionArn": "arn:aws:lambda:us-west-2:0123456789:layer:another-layer-name:4",
                "Version": 4,
                "Description": "Layer Description",
                "CreatedDate": "2021-07-14T11:41:45.520+0000",
                "CompatibleRuntimes": [
                "LicenseInfo": "MIT"

Listing Lambda Functions in an AWS account

aws lambda list-functions
    "Functions": [
            "FunctionName": "function-name",
            "FunctionArn": "arn:aws:lambda:us-west-2:0123456789:function:function-name",
            "Runtime": "python3.7",
            "Role": "arn:aws:iam::0123456789:role/role-name",
            "Handler": "lambda_function.lambda_handler",
            "CodeSize": 1234,
            "Description": "Function description.",
            "Timeout": 30,
            "MemorySize": 128,
            "LastModified": "2021-07-14T16:48:19.052+0000",
            "CodeSha256": "28ua8s0aw0820492r=",
            "Version": "$LATEST",
            "Environment": {
                "Variables": {
            "TracingConfig": {
                "Mode": "PassThrough"
            "RevisionId": "1b0be4c3-4eb6-4254-9061-050702646940",
            "Layers": [
                    "Arn": "arn:aws:lambda:us-west-2:0123456789:layer:layer-name:1",
                    "CodeSize": 1563937
            "PackageType": "Zip"

JULY 14, 2021


Hi Friends—

I brought a minimal recording setup inside my backpack to Tenerife—two Shure SM58 microphones and a Zoom H6 recorder—just in case I found a chance to record material for the podcast.

Before parting ways at the boarding gate, Jose Luis and I captured our first impressions after a week of freediving classes; what we learned, what we loved, and things we thought we knew but didn't.

We talked about the mindfulness of breath-hold diving and being deep underwater, best practices, equipment and techniques, equalizing your middle ear pressure, scuba versus freediving, and how recommendation systems brought us there.

Please enjoy!

Listen to "Freediving"

I'd love to hear from you. You can submit a question about this and previous episodes our way. If you want to meet other curious minds, Join the Discord community.

JULY 13, 2021

One word per day

Write one word each day, and you'll get 365 words in a year.

Make it a hundred words and you'll get 36,500 words in a year. (That's around half the words in the average non-fiction book.)

What about 1,000 words every day? That's 365,000 words.

Will your writing be worth reading? This is a harder question, but you'll surely be able to communicate your thoughts better.

Your readers are out there waiting for you—they just don't know it yet.

In 600 days of practice, I share how and why I write and sketch daily, and discuss the concepts of deliberate practice and atomic habits.

In Why should you write?, I talk about the benefits of writing "in public" every week.

In Are you writing enough?, I comment how generating more ideas makes you more original.

In my Writing habits podcast episode, I share the routines that help me write consistently and the software tools and gadgets that I use on a daily basis to journal, write essays, posts, and episodes, and review and edit my writing.

JULY 6, 2021

We need new interfaces

Last week, I published a short conversation with Runway's cofounder—Cristóbal Valenzuela—on the podcast. We discussed the need for new creative interfaces to control complex algorithms that focus on results (not technology), the freedom of being a startup, and how machine intelligence is changing how we think, design, and make art.

Here are my favorite quotes from Cris.

  • "You don't care about the mathematical function that goes behind blurring [an image in Photoshop]. You just want the output of it—the creative output of moving a slider and having an effect applied to your video, your pixels, or content."
  • "When you think about using algorithms to help you and assist you in the editing process, you need [to find] a metaphor or tool that would allow you to collaborate with those algorithms."
  • "We need those new interfaces, metaphors, and systems. And that's all we're building, those next-generation systems to help people create video and content."
  • "When you take that picture, no one is saying, 'Oh, the AI is biased' or 'The AI worked or didn't work' or 'It showed me new creative possibilities.' It just works."
  • "[Artificial intelligence] is a tool as any other tool. And so, in general, I think all the art tools that we're making will eventually reach that point where you're not too concerned about the systems you're using. You are just using it as a tool. And if it provides you with good results to explore the creative direction, you're going to use it again."

You can Listen wherever you get your podcasts or Watch on YouTube.


JUNE 30, 2021

Cristóbal Valenzuela — Machine Intelligence, Interfaces for Creativity and Originality, the Freedom of Being a Startup, and Runway

Hi Friends—

Technologist and artist Cristóbal Valenzuela co-founded Runway with a simple idea in mind: putting machine learning in the hands of creators as an intuitive and simple visual interface.

Enjoy this conversation with Cris on the need for new creative interfaces to control complex algorithms that focus on results (not technology), the freedom of being a startup, and how machine intelligence is changing how we think, design, and make art.

Listen to "Cristóbal Valenzuela — Machine Intelligence, Interfaces for Creativity and Originality, the Freedom of Being a Startup, and Runway"

JUNE 29, 2021

My journals

I started reviewing one of my journals in search of writing material to clean up. A few drafts talk about cryptocurrencies, Bitcoin, and non-fungible tokens (NTFs), many are comments and reflections on my creative practice and process, and others capture memories and experiences.

Printing my own 'zines' and reading them is a crucial part of my writing process—these are my journals. I start a new volume every seven thousand words and print them out for later review, and I'm up to sixty-three of these volumes.

Giving yourself time to re-read what you've written lets you view your writing from the lens of a reader; there are facts you forgot about and stylistic resources you don't remember using. Part of the writing is for me to keep, but many publications resurface snippets I wrote in the past.

Within this practice, I believe quantity, more than quality makes it easy for me to publish consistently. First, I dump my thoughts on writing; then, I act as a curator.

I wrote this post using a 95-word draft titled My Journaling Zines—which I wrote on May 10, 2021—from my Daily 62 volume.

This piece links to related posts. My journal and publications mull over the same topics throughout the years, slowly settling up my take on each of them and helping me clarify the why behind each of the things I do and showing where my opinions changed. I believe this to be the incredible power of writing.

JUNE 22, 2021

Energy and time

Last Sunday morning, I walked alongside the beach from La Cala de Mijas to Cabopino's Port, following Malaga's Senda Litoral for more than twelve kilometers.

In the afternoon, I cleaned up my surfboard, waxed it, installed a new leash, and went surfing for a bit.

I was ready for bed at 10:30 pm, so I sat to write and sketch to finish two of my "daily must four," set up an alarm clock on my iPhone 6 at 7:15 am, and went to bed at 11:20 pm.

The following morning, I jumped out of bed as the alarm clock rang; Blue sky, sunrise, and a refreshing breeze as I opened the window.

After a day of disconnection, I woke up with the energy and time to write before work.

JUNE 19, 2021

To avoid ImageMagick from interpolating pixels when you want a sharp resize method (equivalent to PIL's Image.NEAREST_NEIGHBOR) you can use mogrify and set the -filter to point.

# Assuming we're upscaling an image smaller than 2000x2000 pixels
mogrify -resize 2000x2000 -filter point image.png

JUNE 15, 2021

Freediving: How to prevent your diving mask from fogging up

Over the past weeks, I shared my first impressions on freediving in Tenerife and an interesting device we've used to learn how to equalize our ears when diving.

I'm now back from Tenerife—back at the screen—and, as promised, I'd love to share with you the technique we've learned during our freediving course to stop your diving mask from fogging up.

It's common for diving masks to fog up, especially when they're brand new, and the three-step process below can help you prevent this from happening.

Snorkel or diving masks fog up when water vapor condenses due to a temperature difference between the inside and outside surfaces of the lens.1 "The moisture that collects in the mask has to attach to something, which is typically the residue leftover from the manufacturing process that coats the lens, dir, and oils on the lens from normal use and simple microscopic imperfections on the lens."1 This problem seems to have worsened as manufacturers build new masks with synthetic liquid silicone instead of natural rubber.2

As recommended by our instructor, we ordered the C4 Chanteclair "Cleaner" (green) and "Antifog" (blue) products.

The first step is to treat your mask with the "Absolute Cleaner," a greaseproof liquid, to remove the residue from the manufacturing process.3

  • Spray the internal silicone of your mask and the internal and external sides of its lens (7/8 ml recommended)
  • Rub the inner and outer surfaces with cloth or a toothbrush for four minutes
  • Wait for ten minutes
  • Rinse with cool water
  • Repeat the entire process once again

This first step only needs to be done once you first buy your mask, and maybe when you haven't used your mask for several months.

The second step involves applying the "Extreme Antifog" to the inner side of the lens right before using the mask.3 (This Cressi Anti-Fog solution works as well.)

  • Spray the interior of the lens (3/4 ml recommended)
  • Wait for two minutes
  • Rinse with cool water

The third step is two spit on the interior of the lens and spread your saliva with your fingers.

You're now ready to dive!

My mask lens didn't fog up once for the entire week.

JUNE 8, 2021

Freediving: First impressions

Today I write from South Tenerife, in the Canary Islands.

We've been freediving for the past three days (yesterday morning at Tabaiba's "El Puerto"). I believe much of what we're learning will stick with me for the rest of my life.

Freediving is a highly technical sport. You can do it to explore the seabed, spearfish, or—as professional freedivers do—to go as deep as you can. (The depth world record is over 300 meters and the time world record over 24 minutes.)

Here are a few facts I've learned so far.

  • You always need a buddy to look at you whenever you go down, and neither of you can go deeper than the other can (otherwise, you wouldn't be able to help each other).
  • You wear a belt with lead weights (and long fins) to go down quickly. (I carry 4 kilos.)
  • You have to equalize the pressure in your middle ear every meter you go down. Not when your ears hurt, but before. Every meter.
  • Every muscle uses oxygen, so you have to relax your entire body and only use your legs to move (with your legs straight, not "cycling").
  • There's an effective technique to prevent your goggles from fogging (which I'll share in a separate post).

For the first two days, I went 6.5-meters deep. Yesterday, I went around 18-meters deep.

I wonder what would happen if we were to learn as many technical details about other sports—think of running—as we're learning about freediving. I probably do many things wrong when running—say, how I move my legs, how I breathe, or how I stretch when I finish.

It's been an incredible experience so far, and we still have four more days to go. I like the breathing, concentration, and relaxation techniques required by this sport and its meditative aspects.

I hope to share more with you in the coming weeks.

JUNE 1, 2021

Freediving: Otovent

I'll be taking an introductory freediving course soon. To prepare, we have to practice ear pressure equalization with a device called Otovent. Here are a few facts I enjoyed learning.

Even though I don't quite understand the physiological mechanisms behind equalization1, I bought the device recommended by Paco, our instructor.

Otovent was initially launched in 1993 to help people suffering from glue ear2 and later repurposed to treat Barotitis (a painful condition some suffer while flying) and as a visual aid to equalizing for freedivers3.

How does the method work? As the instructions read, "the Otovent method provides the pressure required to open the Eustachian tube to help equalize the middle ear pressure." This process ventilates the middle ear, clears effusions, and relieves symptoms.4

The package contains five latex balloons—specially pressurized for this device—, a nosepiece, and a carry case. (Toy balloons can't be used for this method!)

Here are the basic usage steps, verbatim from the manual.

  1. Connect the balloon to the flat end of the nose piece.
  2. Hold the ball-shaped part of the nose piece firmly against your left nostril with your left hand. Compress your right nostril, using your right index finger.
  3. Inhale deeply through your mouth, then close your mouth and inflate the balloon by blowing through your left nostril until the balloon is the size of a grapefruit.
  4. Still with the inflated balloon tight to the left nostril, perform some swallowing manoeuvers.
  5. Repeat the procedure through your right nostril. Some patients may experience discomfort in the ear or dizziness during inflation. This initial sensation will decrease during the next inflation and is an indication that the procedure is working correctly.

I did this exercise around eight times through each nostril for the first time—which is recommended daily for 2–3 weeks—and, as expected, I felt slightly dizzy. I guess this feeling may disappear after a few weeks of practice.

Thanks for reading—I hope to share more curiosities with you as I dive into the freediving world.

  1. Needless to say—I'm no doctor. So please don't use any of my words as medical advice. 

  2. Equalisation Aid for Freedivers 

  3. What is Otovent for. Otovent. 

  4. Otovent instructions manual. Abigo. 

MAY 31, 2021

Héctor Ruiz — Magic and The Art of Illusionism

Hi Friends—

Today I bring you an episode with Illusionist Héctor Ruiz on getting started and standing out as a magician, how COVID-19 changed his world, talent, effort, creativity, success, entrepreneurship, and more.

Listen to "Héctor Ruiz — Magic and The Art of Illusionism"

You can also watch this episode on video. =)

MAY 25, 2021

Should I fix my typos?

From time to time, my phone freezes as I type. Yet I continue typing blindly, without real-time feedback, and a few seconds later, every word I typed shows up on the screen.

The slowness of my six-year-old iPhone 6 makes me more prone to typos.

If the message is clear and the conversation informal, there's no need to fix typos. Let alone when I'm writing notes to my future self. Better spend the time writing more.

When you are crafting a message for publication, you may want it to be concise and crystal clear. Your draft may need editing, re-work, and typo-fixing. But, as long as the message stays the same, typos don't need to be fixed by you.

Again, better use your time to write your next piece instead of obsessing about making your past writing pixel-perfect.


If you are wondering where the image files of your Apple Desktop backgrounds are, you can simply navigate to the following folder.

/System/Library/Desktop Pictures

To get to this folder, in case you don't want to remember the path, you can also do this.

  • Right-click on the Desktop
  • Change Desktop Background
  • Double-click on "Desktop Pictures"

To navigate to the folder with Terminal.

open "/System/Library/Desktop Pictures"

To navigate to the folder with Finder.

  • Menu bar › GoGo to Folder..
  • /System/Library/Desktop Pictures
  • Go

MAY 18, 2021

The process is messy

Here are three sketches of a napkin; similar but different. I drew them a year ago and hadn't paid attention to them until now. I publish a weekly sketch that accompanies a little story, and today these drawings helped me complete the short essay you're reading.

Text is more articulate, organized, and structured than speech. But the writing process isn't as clean. You shuffle words, sentences, and entire paragraphs around, deleting the chunks that don't add much and rewriting unclear parts. "Where do I stop? What should I add? Will they understand?" There's no correct answer.

The sketching process is similar. Strokes, shades, and color let you give more or less prominence to each part of a drawing. But the process is non-linear. You don't "plot" lines as a printer does but add details and darkness; it looks more like additive manufacturing processes, in which an extruder drops chunks of material from one side to the other.

We write (and sketch) to create memories and share our worldview and stories with others—with you.

I didn't plan to sketch a napkin thrice to make a point. It just happened because I wasn't happy with the first result. (They all look like popcorn!)

The finished artifact looks meticulously planned.

The process is messy.

MAY 17, 2021

dyld: Library not loaded: /usr/local/opt/openldap/lib/libldap-2.4.2.dylib
dyld: Library not loaded: /opt/homebrew/opt/icu4c/lib/libicuio.68.dylib
  Referenced from: /opt/homebrew/bin/php
  Reason: image not found
zsh: abort      composer

Install (or update) the Xcode developer tools.

xcode-select --install

Reinstall icu4c.

brew reinstall icu4c

Make sure no errors prevent Homebrew from installing icu4c properly. For instance, I had to remove a few php folders and re-run the brew reinstall icu4c command.

sudo rm -rf /opt/homebrew/Cellar/php@7.4/7.4.15
sudo rm -rf /opt/homebrew/Cellar/php/8.0.2

Want to see older publications? Visit the archive.

Listen to Getting Simple .