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

MAY 13, 2021

Spotify's program is managed by Anchor, which makes it a bit hard if you're using another platform to release your content. Apple's program is managed at, the same interface in which you obtain analytics for your show, and you'll probably have to upload paid episodes through their interface.

More on Spotify's blog and Apple Podcasts website.

Features in Apple Podcasts

  • Ad-free listening. Let subscribers focus on the story.
  • Additional episodes. Give subscribers more to love with extra episodes.
  • Early access. Offer subscribers new episodes before everyone else.
  • Archived episodes. Unlock access to all the past episodes.

MAY 13, 2021

from PIL import Image

img ='/path/to/image')

left = 10
top = 20
right = 10
bottom = 20

img = img.crop((left, top, right, bottom))

MAY 11, 2021

Introducing the Bytes series

Last week, we introduced Bytes—a new series of the Getting Simple podcast—and released our first episode. Aziz Barbar and I will talk about concepts at the intersection of digital technology and culture in a language we can all understand.

We've recorded our next episode on StyleGAN—an algorithm developed by NVIDIA which can learn from images and synthesize fakes ones in the same style—and intend to release future conversations on NFTs and digital art, cryptocurrencies, machine intelligence, design and authorship, GPT-3, automation, creativity, and much more.

In his own words, co-host Aziz Barbar is an architect by training specialized in computational design, interested in the digital environment, automated construction techniques, building performance, and all things digital.

As with most of what I do, these pod series are an effort to learn and find the tactics, techniques, and digital tools that can help us live a more meaningful, creative, and simple life.

I hope you will join us on this journey.

Listen to the introductory episode of the Bytes series.

MAY 8, 2021

After CVAT is running and you have access to its login screen, you need to have an admin account to log in and access the admin panel.

You create an admin user from the command-line interface.

docker exec -it cvat bash -ic 'python3 ~/ createsuperuser'

This command will as you for a username, email, and password.

After you log in, you can hover your username (in the top-right corner of the screen) and select "Admin page" to access the Django admin panel, where you can manage your CVAT site, manage users, groups, and more.

MAY 6, 2021

Bytes — Intro

Hi Friends—

Today we're introducing the Bytes series, in which we'll talk about concepts at the intersection of digital technology and culture in a language we cal all understand.

(Enter Aziz Barbar.)

In this episode, you'll learn about the series' name and format, co-host Aziz, and what's coming.

Listen to "Bytes — Intro"

MAY 4, 2021

The Sawyer effect

In Drive, Daniel Pink argues that people perform best when they do things because they're interesting and can do them with autonomy and self-direction. Pink describes how "if-then" or extrinsic rewards—say, for mowing the lawn or drawing a portrait—can diminish a subject's performance, creativity, and long-term interest in the task.

"For artists, scientists, inventors, schoolchildren, and the rest of us, intrinsic motivation—[the third drive is] the drive to do something because it is interesting, challenging, and absorbing—is essential for high levels of creativity," Pink says. When someone sets your goals, your challenge is to stay motivated. When you lead others, the challenge is to ensure they enjoy and feel part of the process without the stress of performing in a specific way to be rewarded.

Another curiosity I learned from Pink's research is Edward Deci's discovery of the Sawyer Effect—that depending on how rewards are used, they can turn play into work or work into play. Paradoxically, "When money is used as an external reward for some activity, the subjects lose intrinsic interest for the activity. […] [Artists] who pursued their painting and sculpture more for the pleasure of the activity than for extrinsic rewards have produced art that has been socially recognized as superior. […] It is those who are least motivated to pursue extrinsic rewards who eventually receive them."

MAY 1, 2021

When you use two-factor authentication to sign in to your Gmail account (or to "Sign in with Google") you access your account with your email, password, and a verification code generated by Google Authenticator or other authenticator apps (such as Duo).

You might get an error like the one that follows when trying to sign in to Gmail with your Google password.

Authentication failed. Please check your username/password and Less Secure Apps access for
Server returned error: "534-5.7.9 Application-specific password required. Learn more at 534 5.7.9 l25sm248619lfe.188 - gsmtp , code: 534"

When the service you're trying to use your Gmail account with doesn't allow you to "Sign in with Google," you need to create an app-specific password as detailed in the support Url provided by the error message.

Create a Google App Password

This app password

  • Go to your Google account
  • Security
  • Sign in to Google
  • App passwords
  • Choose the service type — e.g., Mail, Calendar, Contacts, YouTube, or Other (custom)
  • Choose the device type — e.g., iPhone, iPad, Mac, Windows, etc.
  • Generate

You'll get an app-specific password like this one — dbkdwckcplvgaktc — that will let you log in to the authorized service with your email and this password.

In my case, I use this password to be able to "Send as" from Gmail from an email address that has two-factor authentication turned on.

APRIL 27, 2021

Luis Ruiz Padrón — Writing, Sketching, and Teaching Through The Lens of Architecture

Hi Friends—

Today I bring you an episode with Luis Ruiz Padrón on the creative process behind his writing, sketches, and publications, seeing the world as an Urban Sketcher, identity, teaching, technology, life, success, and more.

I'm excited to announce that we're producing a full video version of this conversation—recorded by Daniel Natoli—to be released within the next weeks and that we'll be rolling out full transcripts of all episodes sometime in 2021.

I hope you enjoy this episode (and its detailed show notes) as much as I did.

Listen to: "Luis Ruiz Padrón — Writing, Sketching, and Teaching Through The Lens of Architecture"

APRIL 27, 2021

A frugal practice: Use cash

Here's an excerpt of my conversation with JR from Insisting Simplicity in which he shared with me a simple frugal practice we can all use to spend less. (You can listen to the audio version of this segment of the conversation or the full episode.)


Do you have any specific frugal practices that help you save money?


Yeah. Oh my God. Gazillions. They're all stupid. But that's the thing—as with anything, it's gamification.

If you use cash, which less and less people do, and especially in post-COVID, we might be a cashless society, but again, that's a totally different conversation.

Research suggests that, if you use a credit card, you are more inclined to make impulsive purchases.1 If you have actual dollars in your hand, it's harder to part with them. It's also harder to part with them if they are larger denominations. So one thing that you can do is... Just carry some cash and really think about it and have them in larger denominations. And that alone will maybe make you a little bit more hesitant, maybe make you a little bit more mindful of those purchases that you're making.

And that could lead hand in hand with another stupid little thing, which is not stupid, but you have a change jar or a little thing, whatever, every time that you go and spend that cash—say it's a $20 bill—and just like some of the banks and FinTech companies, they'll do this electronically automatically with your credit card or debit card, you take that cash and whatever change you have, you put it in your jar and you forget about it.

Then you come back to it like a year later, all of a sudden, now you got some money. Do something with that. Put it somewhere. Buy something that you've been thinking about for a while. You didn't buy it impulsively because you've had this little bucket over here building for the last 12 months. So you could buy it in a responsible way.

Listen to the full conversation with JR from Insisting Simplicity.

  1. Raghubir, Priya & Srivastava, Joydeep. (2009). The Denomination Effect. Journal of Consumer Research. 36. 701-713. 10.1086/599222. 

APRIL 20, 2021

Tools: Pen case

My partner gifted me with a MUJI case some time ago. The brand lists it as a case for glasses and small articles. I tested using it for my glasses—which did not convince me—and ended up repurposing the translucid case to carry my pens and my water brush. (Right now, it contains a 0.38 MUJI pen, 005 and 03 Micron Sakura pens, and a Pentel watercolor brush whose cap I had to trim with a knife cutter to fit in the case.) The case fits in the side pocket of my Fjällräven Kånken backpack, and it's convenient to place my pens on top of a flat surface as I sketch.


If you're receiving this error when trying to composer install.

Your GitHub OAuth token for contains invalid characters

Updating Composer

2021.05.20 · Update

The solution is to update Composer to the latest version, which supports the new token format, as suggested by Jordi Boggiano on this tweet. "Composer 1.10.21 and 2.0.12 (both released April 1st) added support for the new GitHub token format."

As of this writing, the following command will install the latest version of Composer on your machine (i.e., 2.0.13). Note that future Composer updates will break the script as shown here, as the hash check won't pass.

php -r "copy('', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

On macOS, you can use Homebrew to install (or reinstall) composer.

brew install composer
brew reinstall composer

The brute-force fix


As I mentioned above, both Lukas Kahwe Smith and Jordi Boggiano discouraged tinkering with Composer's auth.json file manually and recommended upgrading Composer to its latest version instead.

Still, here's the brute-fox fix that worked for me. Apparently, editing the auth.json is the only way to update to the latest Composer programmatically, and you can revert it to its original state if you opt for this option. The alternative, of course, is to upgrade as shown above.

Edit the composer authentication configuration file ~/.composer/auth.json.

nano ~/.composer/auth.json

Then replace the following.

  "github-oauth": {
    "": "ghp_[YOUR-PERSONAL-TOKEN]"

With this (basic auth):

  "http-basic": {
    "": {
      "username": "[YOUR-GITHUB-USERNAME]",
      "password": "ghp_[YOUR-PERSONAL-TOKEN]"



To Lukas Kahwe Smith and Jordi Boggiano for pointing this out on Twitter.

Want to see older publications? Visit the archive.

Listen to Getting Simple .