MAY 23, 2022

Spatie is one of the greatest Laravel package contributors, if not the greatest. The team has created about 250 packages that have been downloaded over 200 million times. "We think we have a very good workflow to produce readable, maintainable, and reliable packages. We want to share the knowledge we've built up over the years with you in our course Laravel Package Training."

Today, I found a few repositories I hadn't seen before. I may add to Folio, including their own Markdown parser package that wraps CommonMark, a code-highlighting package that wraps Shiki.js, and a package skeleton repository.

MAY 22, 2022

In The Surprising Math of Doing Less—Cal Newport's podcast episode 194)—Cal reminds his listeners that dedicating more hours in a row to the same activity has a compounding effect not present when we jump from activity to activity. For instance, writing for five hours can yield better writing results that spending 30 minutes writing six days in a row. That's why doing less, not in dedicated time but in different types of tasks, can make our work better.

MAY 21, 2022

Creatividad Remota, Universidad de Málaga


Estas son algunas de las cosas que mencioné en mi presentación en la Universidad de Málaga en la III Jornadas de Orientación Profesional y Fomento del Emprendimiento el 21 de mayo de 2022.

Cosas mencionadas

Nono en Redes

MAY 20, 2022

In a newsletter-y email from OpenSea this morning, there's a section titled Copymints1 that reads what follows in italics.

Copymints are a problem that can sometimes make it difficult for our community to find authentic content with confidence. We’re committed to threading the needle between removing these copymints and giving space for substantively additive remixes to prosper in the following ways:

  • Image Recognition Technology – Our new copymint prevention system leverages computer-vision tech to scan all NFTs2 on OpenSea (including new mints) — looking for flips, rotations & other permutations. We'll continue expanding and training our models to improve detection.
  • Dedicated Human Review – Making this image recognition technology work requires dedicated “humans in the loop” who can review removal recommendations and train our models continuously.

It feels like a rat race. The better the copymint image recognition technology gets the better the generation of fake copies will get. Verification is likely to help and filter out scams, yet that makes "the open sea" less and less open. On the other end, we've heard how miserable moderating content manually is.

The numbers shared on OpenSea's email are brutal. The largest trading volume day in OpenSea history was May 1, 2022, with $476,139,461, and there were 3.1 million transactions on OpenSea over the last 30 days. Some have to be making lots of money and many are probably losing a lot.

Please, please, don't take any content on my blog, podcast, or YouTube channel as financial advice. I don't endorse these platforms nor do I encourage you to invest your money in cryptocurrencies or NFTs. These are highly volatile markers prone to making you lose your money.

Here's an OpenSea post on verification and copymint-prevention updates.

  1. I just added the word copymint to my Grammarly dictionary. 

  2. NFT stands for non-fungible token. Aziz Barbar and I recorded an episode on NFTs and digital art in a language we hope everyone can understand. 

MAY 19, 2022 becoming harder and harder.

It used to be that you would study and then work on that for life. Today, hybrid roles let us work on loosely related things to what we studied.

For instance, you can apply programming, AI, or data science to any discipline. What gives you an advantage is having domain knowledge in a specific area, such as biochemistry or, in my case, design and architecture. That's what may make a difference.

MAY 18, 2022

It isn't possible to perform at your normal levels while you're sick.

A cough, the flu, coronavirus; You'll have to postpone meetings and deadlines for a couple of days, rest in bed until your body fights whatever is making you feel like crap, and catch up with work whenever you feel better.

That's why we need to let some buffer time into our schedules; you don't know if you'll be able to perform at 100% tomorrow.

MAY 17, 2022

Another one of those

It's a late Monday evening and I find myself in "another one of those"1 days without anything ready for my Tuesday post. I have to publish something, I think. After all, that's what I've agreed upon with myself. What do I do? I shut down my computer after work and come back to the keyboard a few hours later. I write a few paragraphs and this idea comes to mind. I want to finish early to have time for other things before I go to bed. The alternative—which I manage to do every now and then—is to work on a piece of writing and schedule it for next Tuesday in advance2. That way I can enjoy the peace of mind of shipping early.

  1. In Principles: Life and Work, Ray Dalio uses the "another one of those" expression to signal recurrent decision-making scenarios and points out the benefits of defining rules to decide with the same criteria every time. 

  2. Another alternative is to pick a draft that's almost done, or one that's finished, and translate it into Spanish; at least when that's faster than coming up with something new from scratch. 

MAY 16, 2022 often a one-off.

Unless your audience is different, the topic is exactly the same, and you can use your slides with no changes, you'll have to re-frame your speaking engagement—at times from scratch.

Each talk requires a unique narrative and preparing always takes more time than you thought.

That's why it's often a dread to accept public speaking opportunities.

MAY 15, 2022

Sometimes what's hard to solve a problem is not knowing what question to ask.

A lack of domain knowledge and what potential solutions exist make searching hard.

Once you figure out what's possible and how to talk about the problem, it becomes easier to formulate your question.

MAY 14, 2022 easy 95% of the days.

It's hard 5% of the days.

Those hard days are what count the most, even if you don't get the best out of yourself. What's important is to keep going.

Of course, another strategy is to only show up when you feel like. But then it's way too easy to hide and end up never showing up again.

MAY 13, 2022

Yesterday, I took a look at BlobGAN during the live stream. The code was open-sourced by Dave Epstein on GitHub on May 5, 2022.

The framework works great with the pre-trained models the authors provide. A bit of Google Colab wizardry lets you set up dependencies, configure the model, and interact with raster color blobs that represent different parts of the room without looking at a single line of code. You can even manipulate blobs, see how they affect generated images, and export an mp4 video of the input blogs and the resulting output image.

I look forward to learning more. A quick look at the paper and code repository felt overwhelming as it seems GANs are getting better and better as they increase in complexity and required knowledge to understand what they are really doing.

Have a great weekend!

MAY 12, 2022

I recently used this regular expression to convert a string from snake to camel case.

import re

def camel(match):
    return +

regex = r"(.*?)_([a-zA-Z])"
snake_case = "my_camel_case_variable_here"
camel_case = re.sub(regex, camel, snake_case, 0)
# returns myCamelCaseVariableHere

MAY 11, 2022

I still maintain a habit tracker in Google sheets which I keep open most of the time while I'm at the computer; and it works! I'm reminded of the things I want to do daily, such as meditation, writing, sketching, blogging, and reading my Readwise quotes. These tasks don't take too much time, but it's easy for them to slip by and for me to forget about them. So I try to mark them as done as early as possible in my day to not have to worry about them until the next one.

I try to keep in mind a few quotes from James Clear's Atomic Habits when thinking about systems and goals. "If you want better results, then forget about setting goals. Focus on your system instead. […] Goals are good for setting a direction, but systems are best for making progress. […] You do not rise to the level of your goals. You fall to the level of your systems."

MAY 10, 2022

Back from Atlanta

Last week, I found the time to write an 800-word essay on my plane to Atlanta, where I would spend five days for Autodesk's annual internal technology and experience conference called TechX, hosted this year at the Hilton Atlanta hotel. (Kean wrote about the event on his blog.) I tried to sleep on my way back to Spain skipping dinner to avoid jet lag as much as possible. But that didn't help much.

It was great to meet friends and colleagues I've been working with through a screen for the past two years, especially people from the Spacemaker team who work out of Boston and Oslo. I loved presenting in person to share my team's most recent project and learning about the work of other Autodesk teams.

Even though the gist of the conference are these talks, the most important moments were the breaks—breakfast, lunch, and evening events—not for the food quality but because we got to mingle and gossip. In those moments we restored a bit of our social capital1.

  1. As I shared last week, Satya Nadella, Microsoft's CEO, suggests that effective remote collaboration relies in part on social capital, which, as reads a New Yorker piece titled How the Pandemic Transformed the Office Forever?, "[accumulates] by working in the presence of others, and [depletes] during virtual interactions." 

MAY 9, 2022

You can do anything.

But you can't do everything.

Be realistic, choose what is it you want to do, and focus on that.

Everything else needs to go.

MAY 8, 2022

Consistency is key, reads the subtitle of Spatie's Guidelines page. "Most projects are not built or maintained by a single person. Instead, there is a collection of people involved, who all have their own personal preferences." When the Spatie team reaches a consensus about different programming preferences, they write it down.

I'm saving a link to each of their categories to review them in detail in the future.

MAY 7, 2022

Laravel 9 was released on February 8, 2022. I've started adding official support for 9.x to Folio. (See the pull request.)

I've mostly added support for PHP ^8.0 and dropped support for PHP 7; updated many dependency packages—I had to edit the CommonMark implementation, which is slightly different in 2.x; and followed the upgrade guide which only affected the file system adapters.

Here are a few other things I need to take a look at.

  • The mailing functionality broke as SwiftMailer is being removed in favor of Symfony Mailer. I need to check if this breaks Folio's notifications.
  • The lang directory location has moved.

Note that I had to update the app/Http/Middleware/TrustProxies.php file in my apps, but this is not part of Folio. (I guess it could be beneficial to ship this via Folio to all apps.)

MAY 6, 2022

I brought my podcast recording gear to Atlanta, Georgia, but I didn't get a chance to record any interviews. The week has been hectic, and I've met many wonderful people in person; some of them, colleagues I've been working with for months. I missed this type of event, and I'm glad we're finally experiencing a little bit of normality. I'm sure we gained a bit of social capital.

MAY 5, 2022

Hi, all.

It's Thursday but I won't be able to livestream today. I look forward to continuing looking at interesting machine learning models and their applications to creativity, design, and art.

See you all next week!

MAY 4, 2022

There's a huge difference between working with someone remotely through Slack and Zoom and meeting them in person.

Remotely, the informal small talk goes away.

I have to jump to my next meeting.

MAY 3, 2022

It's nice to see you, in person

I'm offered to choose between poulet avec polenta and another meal I don't quite understand. Chicken or what? I ask. Chicken or pasta with tomato sauce. I go for chicken and a tiny bottle of water. I'm watching Spielberg's A.I. Artificial Intelligence for the first time1, a two-and-a-half-hour movie amidst my nine-hour Air France flight from Paris to Atlanta, where I'm traveling for an annual work conference that was reduced to Zoom meetings and online recordings over the past two years; needless to say, because of the pandemic.

At the end of January 2020, right before the COVID outbreak started, I walked around the same Charles de Gaulle airport terminal I boarded today's plane, spotting the first surgical face masks I had ever seen worn in public due to coronavirus2; two or three people, amongst the early adopters that would be dubbed paranoid by some, were already taking measures to protect themselves and others from what was to come. Nobody knew what was going on. Sanjay sat next to me on our way to Toronto, wearing a surgical mask out of precaution. But, as far as I recall, nobody else on the plane wore face masks. Cases worldwide started to arise—two at that time in Toronto—and pharmacies went out of masks.

Today's image of Charles de Gaulle's airport was radically different. While wearing face masks in closed public spaces has been mandatory, the requirement was recently lifted in some European countries. Yet the airport featured dozens of mask types, the most common being light blue surgical masks. Some travelers and airport workers opted for no mask, others for wearing it, and the third category of people wore it without covering their noses. I'm sitting on aisle 42D wearing a surgical mask3, and while it's still mandatory to wear masks on the plane, it's a soft measure.

Life in Málaga, Spain, is slowly transitioning back to normality, a new normal with social engagements that let us momentarily forget about the pandemic. Some still opt for wearing masks outside, even when walking entirely on their own. I can't avoid feeling a sense of risk when around my loved ones, especially the elderly.

Now we're immersed in a new global crisis—Ukraine's invasion—and news of coronavirus outbreaks in China and other counties make it to the local news every now and then. Will those strains spread?

The plane jiggles, and the crew announces an area of strong turbulence. I realize this trip will be my first in-person public speaking engagement in years4 and a chance to meet people I work with for the first time without staring at a webcam to emulate eye contact. The virtual-only approach we've had for the past two years has been challenging and presented new opportunities. At a company level, travel was restricted, and everyone had to transition to working from home. I got into live streaming and figured out how to produce high-quality remote recordings and tutorials, both for the podcast and my machine intelligence video series, in a home recording studio. The virtual ways are here to stay, but I look forward to interviewing podcast guests in person to regain the connection that Zoom conversations lack. When you close Zoom, you're back to your life or your next call, but in-person gatherings often lead to a meal or walk together and unstructured chit-chat—something that can feel like unnecessary busyness via Zoom.

Satya Nadella, Microsoft's CEO, suggests that effective remote collaboration relies in part on social capital, which, as reads a New Yorker piece titled How the Pandemic Transformed the Office Forever?, "[accumulates] by working in the presence of others, and [depletes] during virtual interactions5." We need to work and collaborate in-person to build social capital, but this isn't a possibility in specific remote roles. How does remote-only affect our wellbeing, our ability to socialize, and our work?

As we near our destination, the crew gives us a little red bag that reads Bon appétit with items that look like breakfast and include, among other things, two warm pieces of cheese bread, a muffin a la myrtille, a pain viennois, and a bag of cherry tomatoes. I've been typing this essay on my phone for the past two hours, and I don't remember the last time I spent nine hours in a row off-the-grid, on airplane mode. Ouch! A cabin crew member hits my leg with a rolling metal container.

I hope you enjoyed this longer story format; let me know what you think.

I'm grateful for having the opportunity to work remotely, travel for work, dedicate time to my passion projects, and be with the people I love.

I'm ready for mindful, sporadic work travel and excited to meet you in person soon.

Waiting in line to check-in at the hotel, I overhear employees greet each other: It's nice to see you, in person.

  1. I was surprised by how many things in this 2001 movie reminded me of Jonathan Nolan's Westworld, especially by the way the face of the robotic boy 'programmed to love' opens up to unveil its mechanical interior. 

  2. Other than at hospitals and clinics and in Asian countries such as China and Japan, where it was already common for sick citizens to wear masks on the streets, especially while commuting. 

  3. I'm currently reading James Nestor's Breath, and I can't help but think about the adverse effects of breathing with a mask for nine hours in a row. 

  4. I gave an in-person talk to a tiny audience at the University of Málaga in early 2022. But I don't think that counts. 

  5. Has the Pandemic Transformed the Office Forever? 2021. John Seabrook. The New Yorker. 

MAY 2, 2022

I watched Steve Spielberg's A.I. Artificial Intelligence (2001) for the first time1 on my way to Atlanta, Georgia; a two-hour-and-a-half movie that reminded me of Jonathan Nolan's Westworld, especially by the way the face of the robotic boy programmed to love opens up to unveil its mechanical interior.

Jude Law hasn't changed.

Robin Williams played Dr. Know.

Haley Joel Osment has grown up.

MAY 1, 2022

It's super hard to do things, even when you said you would, especially when you have other things to do.

APRIL 30, 2022

Hi, all! I'm a bit behind with adding chapters and summaries about what we did in the live stream, specifically for Live 70 and 71—I'm working on it! There won't probably be live-streaming the first week of May (that's this coming week). But it seems we'll be back at it on Thursday, May 12.

You can watch my three-minute summary of Live 71.

APRIL 29, 2022

Right after yesterday's stream, I recorded a three-minute video summarizing what I covered in the hour-long stream. I'm testing different formats and what I like about this one is that it requires little to no edit time, as I know what's been covered and have material, produced live, that I can use as slides as I talk. Let me know if this format is useful. Thanks!

APRIL 28, 2022

I recently spotted the (⨍) symbol in Gerard Serra's Twitter account1. In his bio, I saw it belongs to Fermat, "a multimedia space where you can build your own tools" released on November 11, 2021. The project is an initiative of Batou XYZ, "a design & engineering research company on a mission to rethink how people interact with tools, computers and ideas." The user experience of Fermat seems great from the recordings I've seen and the user interface is beautifully crafted. The potential applications are limitless. In the end, they are creating an operating system where people can script and create custom components.

Here are the steps of what (I assume) is a development roadmap. Is this the Notion of custom web apps?

  1. An infinite multimedia space to take notes, create moodboards and write documents.
  2. A toolbox of productivity utilities and templates.
  3. Technical early adopters can create and publish new productivity utilities and templates.
  4. Everyone is able to create utilities, apps & templates and share them. Non-technical users become computational authors.

The medium is the message. The language is the lens. The tool is the thought. —Pol Baladas (⨍)

APRIL 27, 2022

If we try to convert a literal string with decimal points—say, '123.456'—to an integer, we'll get this error.

>>> int('123.456') # Returns 123
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '123.456'

The solution is to convert the string literal into a float first and then convert it into an integer.

int(float('123.456')) # Returns 123

APRIL 26, 2022

Curiosities, a podcast, and blog posts

Last week's story was the start of a series on curiosities. As I mentioned, I identify passages with facts and curiosities in non-fiction books and tag them as I read on Kindle for easy retrieval.

On another note, a new podcast on my Habits & Passion Projects1 is out and a few short posts are up on the blog. Let me know what you think!

You can see all posts in the archive.

  1. Here are this episode's timestamps. Introduction; Daily habits; Active projects; Blog; Sketches & stories; Studio; Podcast; YouTube channel; Knowledge anxiety; Anything, not everything; Monetization; Learning and play; Crypto and digital art; I need your help. 

APRIL 25, 2022

Here are the recently added chapters to my conversation with Scott Young from 2019 on Ultralearning: how to master skills and acquire knowledge quickly.

APRIL 24, 2022

Storing analytics with no specific purpose in mind.

Someday, maybe, I'll find a use for them.

Want to see older publications? Visit the archive.

Listen to Getting Simple .