OCTOBER 18, 2021

I found the following error while trying to execute PORT=4444 node ./bin/server.js on my Node.js application.

SyntaxError: Cannot use import statement outside a module

I solved it by adding the following into the package.json file of my NPM project.

  "type": "module",

OCTOBER 16, 2021

Bytes — NFTs and Digital Art

Hi Friends—

It's hard to keep up with the fast-moving world of digital currencies and the new age of digital art.

In this new episode of Bytes, Aziz and I talk about non-fungible tokens (NFTs), blockchain, cryptocurrencies, and digital art.

Listen to "Bytes — NFTs and Digital Art"

OCTOBER 12, 2021

Machine Learning-Based Audio Editing, React, UI Libraries, NFTs, and COVID

Hi Friends—

Today, I bring you an informal chat with Nate Peters, a friend and former guest of the show—a conversation on the machine learning-based audio-editing solution this podcast is being produced with, web components, React and UI libraries, the effects of COVID-19 in our work lives, NFTs and cryptocurrencies, and the new informal catch-up conversation podcast format we're testing out.

We were screen-sharing during part of this conversation and no recording is available. But we've compiled a detailed list of episode notes, and the YouTube video includes a full transcript as closed captions.

Listen to "Machine Learning-Based Audio Editing, React, UI Libraries, NFTs, and COVID"

OCTOBER 12, 2021

Will new tools make your content any better?

All you need to start a podcast or a YouTube channel is entry-point equipment to begin recording and releasing content. Buying a new microphone (e.g., Audio-Technica ATR2100x), vlogging camera (e.g., Sony ZV-E10), or camera mount (e.g., Elgato Mount) won't make the content any better. Better sound, video quality, and production value? Sure. But not much more than that. You'll still need to create and edit content.

I produce a lot of material. Yet, I feel the need to create with more structure, plan, define a clear agenda, establish publishing protocols, develop editing and post-processing workflows, collaborate with other professionals, and put more time into editorial content creation.

I need to filter, select, write, research, and have a clear idea about what I want to talk about, teach, discuss, and the questions I want to cover—to fight the resistance, stop complaining and hiding behind the process, and focus on the content.

That—and not new gadgets—is what will make my content more valuable, more listened to, watched, read, and, most importantly, beneficial to my audience. In turn, people may come back for more and get something meaningful.

I want to share what's on my mind, learn, and teach my learnings through a consistent message and a constant publication flow. After all, that's the type of content I like to consume.

OCTOBER 5, 2021

A tiny notepad as checklist

I've tried dozens of ways to track my to-dos, including Dropbox Paper, iPhone Reminders, Clear for iOS, Trello, and a long etcetera. None of them seem to work for me in the long run. I'm too good at cramming my lists with items.

With so many items, Kanban boards1 are hard to navigate2 and I forget to check to-do apps, and things end up slipping by my workday.

My latest attempt is a simple running list in a tiny notebook on the table.

I write down the tasks I want to complete today (maybe tomorrow) and strike through individual action items as I do them. When I finish the majority of to-dos in the list, I scrap the page and transfer the remaining to-dos to the next page.

At the moment, I'm using a 10-by-9-centimeter notepad in the shape of a chocolate bar, and want to try MUJI's tick box tape, which turns any sheet into a checklist.

How do you track your to-dos?

  1. "A kanban board is an agile project management tool designed to help visualize work, limit work-in-progress, and maximize efficiency (or flow)." Atlassian

  2. Even though my boards end up having way too many cards, I'm a happy Notion user. I can create Kanban boards and visualize their data with multiple view types and filters, which converts my board into a database I can browse in many different ways. However, I still prefer writing down urgent items outside of this board to ensure they don't slip by. 

SEPTEMBER 28, 2021

There's no post today

Paradoxically, announcing there's no post today means there's a post.

My commitment is to publish a sketch and story every Tuesday, both in English and Spanish. And it isn't easy. I find joy when I schedule my weekly publications in advance, and I often fantasize that I'll put the hours needed to prepare posts weeks, maybe months, ahead of time. But that rarely happens. I was close to doing that for August, looking to unplug from the screen during my vacation. Yet, I ended having to do some writing, translating, and Photoshoping amongst the hot days of Summer.

Here's a personal note I wrote on the morning of July 7, 2021.

Writing a good newsletter post with 466 words […] makes me feel good. It's Monday morning, and my post (in English and Spanish) is scheduled for tomorrow. It's 9:40 AM, and I need to keep going, making progress in other areas not to be caught empty-handed later on my day.

I realize how great it feels to finish to-dos early in the day, going on with your day without pressure. It's then when I think, I wish I did this more often! But, no matter how much structure I try to introduce into my daily routine, every day is different.

As you can see, I lied—I had the first line of this essay as a backup post in case I had to miss a publication, but it ended up sparking a reflection that I decided to share with you today.

SEPTEMBER 27, 2021

From MongoDB's JSON Schema Examples Tutorial page:

JSON Schema is an IETF standard providing a format for what JSON data is required for a given application and how to interact with it. Applying such standards for a JSON document lets you enforce consistency and data validity across similar JSON data.

The purpose of a JSON Schema is to define the allowed property names and data types allowed to facilitate the validation of a given JSON object. This reminds me of TypeScript definitions, where type-checking happens by default after you've instantiated a given interface or class.

SEPTEMBER 22, 2021

Work or Walk podcast

Hi Friends—

Today, I bring you a two-minute episode on reclaiming our time with the help of automation. It's an audio version of a short essay I published on July 21, 2020.

Listen to "Sketches — Work or Walk"

SEPTEMBER 21, 2021

If you're trying to remove a directory using the os.rmdir function, but it contains other files, you'll probably hit the following error.

OSError: [Errno 66] Directory not empty:

You can ignore this error by using the shutil library instead of os.

import shutil

Note that Python won't prompt you to confirm this deletion action and this may lead to deleting files by mistake.

SEPTEMBER 21, 2021

A set of informal rules

Conventions let us skip certain decisions making them automatic.

I adhere to a set of informal rules to determine why, how, and when I write or sketch. I do it daily to think, learn, teach, remember, and portray and share what I experience. And even though I experiment with different formats and gadgets now and then, I try to stick to the same typing and drawing medium to pay attention to the content I'm making, not the tools.

Defining what we do and our processes let us clarify why and how we do them. Sharing that reasoning with others allows them to understand your craft and practice.

SEPTEMBER 17, 2021

GoPro just introduced the new HERO10, a camera that can record 5.3K video at 60 fps and 4K at 120 fps. Frame grabs are 19.6 megapixels and photo captures are 23 megapixels. The device features HyperSmooth 4.0 stabilization, which gets rid of shaking altogether, making the recording experience more relaxed. The slogan for this year's release is Speed with Ease. They keep making the user experience more intuitive and the inner workings of the GoPro faster. Like previous models, the HERO10 lets you live stream at 1080p, a feature I haven't tested yet. I can't wait to try one of these out while freediving.

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"

Want to see older publications? Visit the archive.

Listen to Getting Simple .