Nono.MA

MAY 21, 2024

Unknown biases

I asked ChatGPT 4o to imagine it was a critical journalist writing an op-ed article about Ai's adoption in our daily lives. Here's what it answered.

Artificial intelligence, celebrated for its convenience, poses risks to our privacy and independence. It often functions opaquely, increasing biases and surveillance. Without careful oversight, adopting AI could mean losing human control and ethical standards in favor of machine-driven simplicity. This requires thorough scrutiny.

There are three levels of artificial intelligence, and we default to the third one in our daily lives: using technology developed by others for us.

Thanks to the arms race approach to research and innovations that big tech companies and academic institutions are undergoing, we have access to the key innovations that enable these algorithms to learn from our data and generate such sound output.

But even when the code and datasets are open, it will feel like we are interacting with a black box with unknown biases.

We don't have the time or knowledge to understand those widely available algorithms.

So we'll be left with whatever companies and institutions bring to our hands.

MAY 14, 2024

Done beats perfect

I continue to be fascinated by the effects of time slack on creative output. Too much time makes me do nothing. Too little time stresses me out but forces me to get things done. The in-between is to commit to the practice (in Seth Godin's terms), to systems, not goals, ala James Clear—to engage in your craft daily in search of practice and consistency.

Daily drawing, writing, and weekly publishing are systems—there's no explicit goal. Yet this lets me cherry-pick among dozens of ideas when I want to publish.


I reached for my sketchbook and 005 Micron pen while lying on the couch. Two loose sketches of my right foot in distinct positions count as a daily drawing. I urge myself to comply.1 Creative friction is everywhere, so the trick is to make your process as frictionless as possible.

Quick is easier than detailed; ink is easier than watercolor.

Of course, optimizing for quick and easy reduces the effectiveness of the habit and can lead to creative cheating. You must exert effort to get better. But some practice, every day, beats the ideal and sporadic training session.


  1. This gets me started, and many days, I won't continue after I consider I'm done. But other times, it's what pushes me to get started with a long creative session. 

MAY 7, 2024

Bits of advice from Kevin Kelly

Kevin Kelly celebrated his 68th birthday gifting his children 68 bits of advice he wished he had gotten when he was their age. Every birthday after that, he added more bits of advice for them, and ended publishing a whole book of bits titled Excellent Advice for Living.1

Recently, he published 101 additional advices. Here are a few I loved.

Whenever you hug someone, be the last to let go.

You can become the world's best in something primarily by caring more about it than anyone else.

Once a month take a different route home, enter your house by a different door, and sit in a different chair at dinner. No ruts.

There should be at least one thing in your life you enjoy despite being no good at ti. This is your playtime, which will keep you young. Never apologize for it.

The patience you need for big things is developed by your patience with the little things.

When you find yourself procrastinating, don't resist. Instead lean into it. Procrastinate 100%. Try to do absolutely nothing for 5 minutes. Make it your job. You'll fail. After 5 minutes, you'll be ready and eager to work.

The most common mistake we make is to do a great job on an unimportant task.

Tol tell a good story, you must reveal a surprise; otherwise it is just a report.

You can read them all here.


  1. The Technium: 101 Additional Advices. Kevin Kelly. April 18, 2024. 

APRIL 30, 2024

Where's the creative friction?

Creative friction is anything that gets between you and your creative output.

It can be in your mind — the fear of failing.

It can be physical — you don't have the tools or space.

It can be temporal — you can't put the time.

It can be in your process — you want everything to be perfect.

No matter where it is, reducing what adds friction to your creative process will lead you to quantity, which will often lead you to quality.

APRIL 30, 2024

Andy Payne — Grasshopper, Rhino Compute, Teaching, Learning to Code & Gen AI

Hi Friends—

Andy Payne is an architect and software developer at McNeel, the company behind Rhino and Grasshopper 3D.

I met Andy in the summer of 2016. Autodesk had acquired Monolith (a voxel-based editor) from Andy and Pan earlier that year. I joined them as an intern to build a generator of 3D-printed material gradients and play with a Zmorph 3D printer.

We recorded a podcast conversation in New Orleans in September 2022, where I learned about Andy's latest adventure.

Enjoy this episode on the origins of Grasshopper, Grasshopper 2, Rhino.Compute, teaching, learning to code, generative AI, open-source code and monetization, and Andy's journey.

Thanks to everyone who chatted with us during the YouTube premiere.

Let us know your thoughts on the video comments.
Submit your questions at gettingsimple.com/ask.

Warmly,
Nono



Nono Martínez Alonso and Andy Payne in New Orleans.

Chapters

00:00 · Introduction
00:35 · Andy Payne
04:11 · Grasshopper origins
07:23 · Andy meets Grasshopper
09:19 · Grasshopper Primer
10:26 · Grasshopper 1.0
13:22 · Grasshopper 2
15:11 · Developing Grasshopper
16:59 · New data types
18:57 · Rhino Compute & Hops
22:32 · Cloud billing
27:05 · Teaching
30:07 · Visual programming
36:23 · Open source & monetization
42:03 · McNeel Forum
50:07 · Connect with Andy
51:57 · Learning to code
58:00 · Generative AI
01:02:09 · The IKEA effect
01:05:38 · Authorship
01:08:56 · AI trade-offs
01:12:58 · Panagiotis Michalatos
01:16:02 · Advice for young people
01:17:08 · Success
01:18:35 · $100 or less
01:20:12 · Outro

APRIL 26, 2024

I have an Apple M3 Max 14-inch MacBook Pro with 64 GB of Unified Memory (RAM) and 16 cores (12 performance and 4 efficiency).

It's awesome that PyTorch now supports Apple Silicon's Metal Performance Shaders (MPS) backend for GPU acceleration, which makes local inference and training much, much faster. For instance, each denoising step of Stable Diffusion XL takes ~2s with the MPS backend and ~20s on the CPU.

APRIL 24, 2024

In July 2013, Alex Webb asked whether Grasshopper was initially developed as a teaching tool to show how information flowed through commands.

David Rutten denied this.

[Grasshopper] was developed for Rhino customers as a way to automate tasks without the need to write textual code. We expected that some of our users who were interested in RhinoScript or C# or VB.NET would be interested, but we certainly didn't think that it would be taught (at gunpoint apparently in some universities) to the masses.

Originally, the product was called Explicit History1, because it was a different approach to Rhino's native (implicit) history feature. Rhino history is recorded while you model and can then be played back, Grasshopper history is defined from scratch while the model is created as an afterthought.

I found this while putting together the episode notes for a conversation with Andy Payne on the Getting Simple podcast, where he shares curiosities of Grasshopper's origins and its transition from Explicit History to the initial Grasshopper release, Grasshopper 1, and Grasshopper 2.


  1. In the publication, David Rutten adds that Explicit History was initially called Semantic Modeling, "but that never even made it out of the building." 

APRIL 23, 2024

Remind yourself how things work

When I switch tasks and embark on projects I haven't worked on for months, my notes on how things work save the day because there's no such thing as easy steps.

APRIL 16, 2024

Seven months using ChatGPT 4

I started using ChatGPT Plus1 seven months ago, and I'm surprised at how much I rely on it for day-to-day tasks. I don't need to Google as much as before, as answers tend to solve my immediate needs.

Here are a few use cases I found extremely useful.

  • A custom TypeScript & React GPT for work only allowed to answer with code solutions.
  • English-to-Spanish Markdown blog post translation. I only have to apply minor corrections, often because ChatGPT mixes Castilian and American Spanish.
  • Write Python and bash scripts, both simple and fairly complex.
  • Learning and research. ChatGPT is an avid searcher of related papers and a great explainer of machine learning concepts. (You can even ask it to draft specific neural network architectures!)
  • Fix grammar and punctuation.
  • Troubleshoot computer errors.

I find it mesmerizing to generate visuals and images with it — I have several parallel side projects on this, which I haven't published yet. But that's a story for another day.

Ethical and safety concerns aside, I find it quite promising that, relatively soon, we'll have models with similar performance to GPT-4 and DALL-E 3 running locally on our devices without a subscription.

I haven't measured how much more efficient as a software developer it's made me. Yet after hundreds of conversations ChatGPT has saved me some "human compute hours" and helped me develop several code solutions faster. In this case, twenty dollars a month is a no-brainer.

"We shape our tools and thereafter our tools shape us." Said John Culkin2. Language models are rapidly changing how we interact with machines. The next step could be removing humans from the loop and delegating digital tasks to machines.


  1. As of April 15, 2024, the twenty-dollar Plus subscription gives you exclusive access to GPT-4 and DALL-E 3. 

  2. The quote is often mistakenly attributed to Culkin's friend, Marshall McLuhan. 

APRIL 15, 2024

Pulling a mini-essay and sketch weekly is not an easy feat.

I've been doing it consistently for years, only delaying on a few special occasions for reasons like not having an internet connection, being in a different timezone, traveling, and some other situations that make a good enough to myself.

I'll keep pushing, and as my initial intention with this project was, I'll try to schedule more than one post per week to give myself a bit of slack to develop ideas more deeply and put more thoughts before I hit send.

Still, this project is for me to explore, and I'll continue to publish even if ideas aren't complete. There's always the following week to correct or expand on it.

See you soon!

You can join the newsletter here.

APRIL 9, 2024

Three levels of artificial intelligence

Researchers develop algorithms — the so-called neural networks and machine learning models.

Software engineers train and deploy those models and make interfaces for them.

Users interact with the artificial intelligence through machine-learning-powered applications.

APRIL 2, 2024

Announcing events on Luma

Last week, I tested Luma for a podcast release. Luma is a platform for people to register for your events (for free or with paid tickets). Although I started using the platform to schedule my live streams a few months ago, this was the first time I used it for the podcast.

I was gathering interest for an incoming podcast release that would take place on YouTube in the form of a scheduled premiere, as YouTube calls uploaded videos scheduled to stream for the first time. During the video premiere, your audience can participate in the chat as the video plays, which, in our case, allowed listeners to ask questions to our latest guest, Andy Payne. After the video "premieres," it will be available on YouTube like any other on-demand video you upload. The gist is that, during the premiere, everyone watches the video simultaneously as if it were a live event.

Luma will remind your attendees when the event occurs in their timezone one day before and one hour before, sending them the link and instructions you set up.

Upon registration to an event, attendees have to enter their name and email, which allows you to invite them to similar events in the future or to reach out to them directly, for instance, when new content related to the episode they signed up for is available, i.e., the audio version of the podcast on Spotify and Apple Podcasts.

You can change the location link of the event so that attendees will receive it when the event is about to happen. If you change your mind before the event, you can direct users to a different platform (say, Twitch or Riverside). If that were to happen and you've directed users to YouTube, you can do nothing.

I shared the Luma link on a LinkedIn post, a tweet, and this newsletter and got twenty-two sign-ups from people I don't know, which isn't bad.

People can subscribe to you on Luma to get notified about future events you schedule. (Here's my Luma profile.) It's a great alternative to newsletters to capture interest in specific events. People may not be willing to sign up for your newsletter, but they might for the events they want to attend.

MARCH 26, 2024

A conversation with Andy Payne

I met Andy Payne in the summer of 2016. Autodesk had acquired Monolith1 (a voxel-based editor) from Andy and Pan earlier that year, and I joined them as an intern to build a generator of 3D-printed material gradients and play with a Zmorph 3D printer.

I interned at Autodesk’s Boston Seaport office with Jose Luis García del Castillo and Keith Alfaro. Jose Luis and I would bike to Central Square, ride the Red Line T to South Station, and hop onto the Silver Line Bus to Drydock Avenue. By the end of the summer, I open-sourced Voxel2GCode2—a set of workflows to transform geometric objects and voxel-based models into 3D-printable G-code instructions.

Andy is an architect and software developer at McNeel, the company behind Rhino and Grasshopper 3D. We recorded a podcast conversation in New Orleans in September 2022, where I learned about Andy's new adventure.

Enjoy this episode on the origins of Grasshopper, Grasshopper 2, Rhino.Compute, teaching, learning to code, generative AI, open-source code and monetization, and Andy's journey.

We'll premiere the episode on YouTube on Wednesday, March 27, at 2 PM ET, which means you'll be able to chat with Andy and me during the episode.

You can RSVP here.


  1. Monolith is a voxel-based editor that sits somewhere in between 3D CAD apps like AutoCAD and Rhino and pixel-based image-editing apps such as Photoshop. One of Monolith’s strengths is its capability to produce multi-material 3D prints with varying material densities. 

  2. You can find Voxel2GCode on GitHub. 

MARCH 25, 2024

I export videos from Descript, which has embedded subtitles, and Descript doesn't have a way to export subtitles by chapter markers; it only exports them for an entire composition.

Here's a command that extracts the embedded subtitles from a given video—and supports any format supported by FFmpeg, such as MP4, MOV, or MKV.

ffmpeg -i video.mp4 -map 0:s:0 subtitles.srt

Here's what each part of the command does.

  • -i video.mp4 - the input file.
  • map 0:s:0: - maps the first subtitle track found in the video. (You can change the last digit to extract a different track, e.g., 0:s:1 for the second subtitle track.)
  • subtitles.srt - the output file name and format, e.g, SRT or VTT.

If you found this useful, let me know!

MARCH 22, 2024


In Live 116, I conducted a live work session learning how to fine-tune Stable Diffusion models with Low-Rank Adaptation (LoRA).


If this interests you, please let me know on Twitter or, even better, on the Discord community.

Thanks for watching.

See you next time!

Chapters

01:07 · Introduction
01:21 · Today
02:19 · Fine-Tune with LoRA
04:09 · Image Diffusion Slides
06:43 · Fine-Tune with Lora
13:31 · Stable Diffusion & DALL-E
22:27 · Fine-Tuning with Lora
01:34:20 · Outro

MARCH 19, 2024

Every Monday

I check whether my Tuesday post is ready.

As of lately, the answer is usually, No, the post is not ready. I then browse my archives or write something completely from scratch.

Why? I decided to do so, and I've experienced how it pays off in the long run.

It's craft, not art.

"A pro views her work as craft, not art." Says Steven Pressfield in The War of Art.

It's professional, not amateur.

"Professionals stick to the schedule; amateurs let life get in the way." Says James Clear in Atomic Habits.

Good Mondays, I enjoy the freedom of having completed my "homework" in advance.

MARCH 15, 2024

Drawing, by Hand & Machine — Berkeley MDes

Hi! It's Nono. Here are links to things I mentioned in my guest lecture at the Creative Machine Learning Innovation Lab at Berkeley MDes, invited by Kyle Steinfeld on March 15, 2024.

🔗 Links


🎙 Podcast Conversations

🗣 Talks

🐦 Nono, Elsewhere

MARCH 14, 2024


In Live 115, we played with tldraw's 'Draw Fast' experiment, which turns freehand scribbles and shapes into realistic images using the Optimized Latent Consistency (Stable Diffusion v1.5) machine learning model through fal.ai's API.

Thanks to the tldraw team for open-sourcing this experiment. ❤️


If this interests you, please let me know on Twitter or, even better, on the Discord community.

Thanks for watching.

See you next time!

Chapters

00:17 · Introduction
02:30 · Today
04:17 · Draw Fast by tldraw
06:15 · Fal AI
07:20 · Hands-On Draw Fast
08:03 · What is Draw Fast?
10:09 · Clone Draw Fast
14:16 · Fal AI
15:04 · Sign Up
16:41 · API Key
20:17 · Pricing
21:55 · DEMO
25:55 · Credits
28:03 · Models
30:57 · DEMO
37:59 · Challenge
41:27 · Break
44:42 · Tldraw React component
49:23 · Draw Fast Code
01:05:50 · Outro

MARCH 13, 2024

I was sad to see a redirect from Lobe.ai to Lobe's GitHub repository.

Thank you for the support of Lobe! The team has loved seeing what the community built with our application and appreciated your interest and feedback. We wanted to share with you that the Lobe desktop application is no longer under development.

The Lobe team open-sourced a lot of their tooling to use Lobe-trained models on the web, or with Python, .NET, and other platforms. Yet the Lobe app and website were never open-sourced, which means they will no longer be usable when they cease to work.

Before it's gone, you can access Lobe's site and download the latest app at aka.ms/DownloadLobe.

Lobe takes a new humane approach to machine learning by putting your images in the foreground and receding to the background, serving as the main bridge between your ideas and your machine learning model.

Lobe also simplifies the process of machine learning into three easy steps. Collect and label your images. Train and understand your results. Then play with your model and improve it.

I'd invite you to listen to my conversation with Adam Menges on the origins of Lobe.

MARCH 12, 2024

Time or priority

We often say, "I have no time," instead of "It's not a priority."

In 168 Hours, Laura Vanderkam states that, in our society, "there is plenty of time for raising kids while running a business, for working, teaching, and training for a triathlon, or whatever brings joy and meaning to your life."

Vanderkam says that recognizing this requires changing the narrative: instead of saying we don't have time to do X, Y, or Z we should say we won't do X, Y, or Z because "it's not a priority."

MARCH 11, 2024

In its policy update of February 21, 2024, PayPal announced that it will exclude NFTs from eligibility for the buyer protection program and limit the protection of sold NFTs to ten thousand dollars at the moment of the transaction.

We are revising PayPal’s Buyer Protection Program to exclude Non-Fungible Tokens (NFTs) from eligibility [and the] Seller Protection Program to exclude from eligibility Non-Fungible Tokens (NFTs) with a transaction amount of $10,000.01 USD or above (or equivalent value in local currency as calculated at the time of the transaction); $10,000.00 USD or below (or equivalent value in local currency as calculated at the time of the transaction), unless the buyer claims it was an Unauthorised Transaction and the transaction meets all other eligibility requirements.

The crypto world seems to be the perfect place for fraudulent and counterfeit transactions, as scammers request money through digital wallets, which are often hard to trace and have no protection, instead of using traditional banks.

This policy update comes right after Cent NFT blocked NFT sales and the UK authorities seized, for the first time, three NFTs.

MARCH 5, 2024

Before and after

Every endeavor has a before and an after.

Before and after it's done; before and after you give up; before and after you have energy for it; before and after you have time for it.

I try to do whatever I must get done in the day before I run out of time and energy.

Not everything can be done in one go, even if you set yourself to it, and it's easy to fall into the trap of postponing for later.

Doing things you know you'll end up doing today as early as possible always works best.

In the morning, your mind is sharp, and you're energized.

At night, as happens to me many days with writing, each word requires ten times more effort than when I woke up.

It's a matter of priorities and focus.

FEBRUARY 27, 2024

A daily word counter

One of the ideas I wanted to build in 2024 was a daily word counter to track whether I had written my two hundred words of the day.

I made a Mac menu bar app1 that displays the word count below the running date—say, 240227, for today—and shows the ✍🏻 emoji until I’ve passed the two-hundred-word mark.

As I mentioned last week, I write daily within a fuzzy timeframe. As the app doesn’t know when I wake up or go to bed, I programmed it for the day to start and end at 6 am.

If you’re curious about why I write daily and how I do it, you can learn more about my writing habits.


  1. I used a developer tool called Raycast to build what Raycast calls “menu bar commands.” You can find the documentation here. The menu bar app also tells me how many words the current daily file has, which I would archive to start a new one whenever I go beyond 7,000 words. 

FEBRUARY 26, 2024


How to run Google Gemma 2B- and 7B-parameter instruct models locally on the CPU and the GPU on Apple Silicon Macs.


See transcript ›

FEBRUARY 23, 2024


In Live 113, we ran Google's Gemma LLM 2B- and 7B-parameter open models on an Apple Silicon Mac, both on the CPU and the GPU.

We downloaded the Instruct models with the Hugging Face CLI and used PyTorch with Hugging Face's Transformers and Accelerate Python packages to run Gemma locally.


If this is something that interests you, please let me know on Twitter or, even better, on the Discord community.

Thanks for watching.

See you next time!

Chapters

01:23 · Introduction
02:46 · Previously
03:11 · Today
03:45 · Elgato Prompter
06:19 · Interlude
06:43 · Google Gemma 2B & 7B
08:45 · Overview
11:59 · Hugging Face CLI
14:01 · CLI Install
14:54 · CLI Login
15:33 · Download Gemma
22:19 · Run Gemma Locally
24:49 · Anaconda Environment
29:00 · Gemma on the CPU
52:56 · Apple Silicon GPUs
55:32 · List Torch Silicon MPS Device
56:50 · Gemma on Apple Silicon GPUs
01:08:16 · Sync Samples to Git
01:17:22 · Thumbnail
01:28:42 · Links
01:31:12 · Chapters
01:36:28 · Outro

FEBRUARY 22, 2024

Performance Max campaigns serve across all of Google’s ad inventory, unlocking more opportunities for you to connect with customers.

[…]

[Google announced] several new features to help you scale and build high-quality assets — including bringing Gemini models into Performance Max.

[…]

Better Ad Strength and more ways to help you create engaging assets.

[A]dvertisers that use asset generation when creating a Performance Max campaign are 63% more likely to publish a campaign with Good or Excellent Ad Strength.

FEBRUARY 20, 2024

A fuzzy timeframe

For digital systems, the day starts and ends at twelve o'clock at night—every day is twenty-four hours (00:00–24:00).

For humans, the day begins when you wake up and lasts til you go back to sleep.

Days at home are commonly sixteen hours—from eight in the morning til midnight.

Traveling days are shortened or extended depending on whether you travel east or west, lasting up to thirty hours when you fly from Europe to California.

It is within this fuzzy timeframe that I write and sketch daily.

FEBRUARY 16, 2024


In Live 112, we did a hands-on example of how to deploy a web app with Vercel.

We used Yarn Modern (4.1.0) to create, develop, and build a Vite app that uses React, SWC & TypeScript, pushed the app to GitHub, and import the Git repository into a Vercel deployment, which then re-builds and deploys on every code change.


If this is something that interests you, please let me know on Twitter or, even better, on the Discord community.

Thanks for watching.

See you next time!

Chapters

00:16 · Introduction
01:58 · Previously
02:26 · Today
05:21 · Diffusion Models for Visual Computing
10:07 · LGM
11:21 · Interlude
12:53 · Vite, React & TypeScript Apps with Yarn Modern
17:20 · Create the App
24:29 · Push to Git
29:07 · Deploy to Vercel
33:40 · Edit the App
42:53 · YouTube Channel
45:23 · Draw Fast
46:25 · Markers
47:51 · Elgato Prompter
48:27 · Markers
51:45 · Outro

FEBRUARY 14, 2024

I kept seeing this error when creating a new Yarn Modern project—setting Yarn to the latest version with yarn set version stable—and using the yarn init command.

Usage Error: The nearest package directory doesn't seem part of the project declared in […]

For instance, yarn add -D @types/node wouldn't work.

The fix

There was a package.json and a yarn.lock file in my home directory.

Removing the file fixed the issue.

rm ~/package.json ~/yarn.lock

Create a Yarn Modern project

Then, in any directory, even subfolders of your home directory (~) you can create new yarn projects.

mkdir app && cd app
yarn init -y
yarn add -D @types/node

Doing It Right

When you run yarn set version stable, Yarn Modern creates a package.json with the packageManager property set to the latest stable version of Yarn, such as 4.1.0.

To avoid the above issue, you should first create your project.

yarn create vite my-app --template react-swc-ts

Then, enter the app's directory and only then set the desired Yarn version.

cd my-app
yarn set version stable
yarn
# Yarn Modern will be used here.

FEBRUARY 13, 2024

Writing in public

...is easier than it sounds.

But also harder to accomplish consistently if you overthink it.

I keep writing and journaling daily.

Yet I've experienced how stopping a habit for a few days can turn into stopping it for a very long time—weeks, months, years.

The gist is to put systems in place that make you do what you should do, to spend time doing impactful things.

Want to see older publications? Visit the archive.

Listen to Getting Simple .