Picture of Michael Lee

Driving in deep thought

Written on November 4, 2021

The other day my family and I took a 5+ hour drive.

During that drive, I did quite a few things:

  • Listened to a very long podcast episode with Daniel Vassallo + Ch Daniel
  • Thought about the contents of the podcast episode and how it applied to me and how I felt about it
  • Thought about a process for a task I’m accountable for work and how I can delegate that
  • Thought about topics from an online course I took a while back and how I can apply it to some personal projects
  • Thought about how I would like to approach a couple of my personal projects and where to take them next

I was able to achieve deep thought.

As a knowledge worker and someone that works from home, doing deep work and thought is nothing new to me. But by the time I’m off the clock for work, I found myself tired of doing much deep thinking for things outside of work.

What was refreshing about the long drive was, my mind was able to wander for hours. In doing so, I was able to process things that have been in my mental backlog for a long time. I was also able to make new connections with information I had floating in my head that I didn’t know would fit together.

This is different to a work commute.

Work commutes are often times filled with chaos – pressure of getting to work on time, dealing with traffic, piecing together your day’s agenda, perhaps even loathing the destination you going to. I also think you don’t have enough time to get into deep thought like a long distance drive.

This long distance drive while I had my family in tow was focused. We didn’t hit any traffic and it was a route, I was familiar with.

The drive was physically taxing, but my mind feels rejuvenated with energy from the deep thinking.

Have you experienced a place where deep thinking occurs?

Stille — An Obsidian plugin that helps you focus on your writing

Written on September 4, 2021

Have you ever sat down to write and get your thoughts out of your mind and onto the screen, only to find yourself constantly critiquing the things you just wrote?

You’re wrestling with yourself to stay focused and telling yourself that you’ll come back to your previous thoughts to clean up later.

But the temptation is too great—you give in, you take your eyes away and in a split second, your thoughts have fled you and you’re left frustrated trying to recall the thought you were sure that you could hold onto.

I know I’ve struggled with this. I’m actually struggling with this exact problem while writing this post.

This is why I built Stille for Obsidian. It’s a plugin that helps you focus on your writing, one section at a time.


With Stille, all other sections of your writing are silenced, besides the one you’re currently working on.

Which means, no more shiny objects to take away your focus.

What does Stille do?

Screenshot of Stille

Stille provides a ribbon toggle, a hot key command and a command prompt to allow you to quickly toggle in and out of focus of your writing.

While Stille, out of the box provides you with a default to get you immediately focused on your writing, you are in control of your experience.

You can adjust your focused writing experience in the settings.

Fancy writing in Vim mode? Stille works and looks great in Vim mode as well.


Stille isn’t an original idea. Many other writing applications have a feature usually called focus mode.

After I had built much of Stille’s version 1, I then discovered that there’s actually a plugin for Obsidian similar to it.

My inspiration actually comes from one of my favorite Vim plugins, Limelight by Junegunn Choi.

Limelight, Goyo and Vim were previously my favorite way of writing in markdown. The benefits of this setup was, it allowed me to focus on my writing, one section at a time. Removing all distractions until I could get my ideas out onto the screen.

When reviewing my writing, it also removes visual noise so that I can be sure that I’ve communicated my thoughts concisely.

The name Stille is the German word for silence. I thought the name was appropriate as it helps silence everything around the section you’re currently focused on.

While Stille won’t solve writers block or finding the words to write. What I do hope it provides you is focus when you do find the words in Obsidian.

You can find Stille on Github.

Thwart bots from spamming your newsletter with double opt-ins

Written on June 27, 2021

It is exciting to set up a newsletter and see people sign up. It feels like validation that what you’re putting out there is resonating with folks and they want to keep hearing what you had to share.

But what if the thing you wanted to share was something you didn’t share at all in the first place?

That’s what happened to me recently.

I had set up a newsletter for a project I’ve been playing around with. I had embedded a form on a landing page. But things got a little busy and I wasn’t ready to share with the world my new project.

But to my surprise a couple of weeks after pushing the landing page live, I got a notification in my email that I had a sign up. I was happy and excited. But also curious how this person found my newsletter form.

I hadn’t shared it with anyone and while it had a couple of lines of copy, I don’t think it was enough for search engines to really give much of a lift in their ranking.

Digging into the issue more, I noticed something strange. Aside from the email being an @aol.com account was name for the entry I had received was garbled—pytVKfwWuMrSk. What this indicates usually is that there is a bot that has found my site and it was filling in predetermined fields and hitting submit.

Entry of a bot with a garbled name

Aside from a person’s email, I alway try to capture their name as well.

Not sure my reasoning behind this other than I think it helps someone build rapport with who they are trying to reach.

I quickly deleted the entry, was a little bummed it wasn’t a real person and moved on.

But then a few days later I got another email notification saying that I had another sign up.

Few days after that, three sign ups in a single day.

My landing page with newsletter sign up was being spammed by a bot.

Ways to thwart bots

To my knowledge there are a couple of technical solutions to thwart bots from spamming your newsletter sign up.

  1. Add a honeypot
  2. Add a captcha

A honeypot is a technique in which you add fields to a web form that deceives bots into thinking it is filling out a regular form. But there are fields that are forward-facing to a user which also are able to record their information.

When the fields that were intended for bots are filled, the form fails to submit, while those designated for humans, would allow for the form to be successfully submitted.

A captcha is a technique to also thwart bots by using a question and answer technique. So for example posing a question that a human might be able to answer correctly but not so easy for bots.

You might be familiar with Google’s reCaptcha which often asks you to select the traffic light in the photo.

Third technique, the double opt-in

The third technique and this is the technique I ended up going with is called the double opt-in.

When a reader signs up to your newsletter, the software for the newsletter will send the reader an email to the designated email. The content of the email should include a link to confirm that you did indeed sign up for the newsletter.

Opt-in link example

Once a reader clicks the link to confirm, then they are fully opted into your newsletter.

I ended up going with using the double opt-in because the effort in order to implement was super low—just had to click a checkbox to turn it on in Buttondown.

UI of Buttondown option to turn on opt-in

Initially when I was going to take action on this spam bot issue, I was thinking to implement a honey pot as from a UX standpoint, it was the least intrusive to an actual reader.

But I didn’t want to spend that much effort for a project I had yet to publicly share.

So instead, reading over Buttondown’s documentation (which is excellent by the way) for any built in solutions, I came across their recommendation of using the double opt-in by making subscribers confirm their email.

Since turning it on I haven’t had any more @aol.com accounts showing up on my newsletter.

If you manage an email newsletter and are experiencing issues with bots spamming it. Check to see if your provider also has a solution for implementing a double opt-in. It may greatly reduce or eliminate bots from spamming your newsletter.


Written on June 20, 2021

My family and I watched Luca tonight, a film directed by Enrico Casarosa. I first discovered Enrico Casarosa’s work when I was a student in animation school back in 2006. I had come across Sketchcrawl, a global community that encourages people to go out and crawl together—sort of like a photo crawl, but with a sketch book.

I loved the whimsical and narrative nature of Enrico’s sketches. He often uses pencils and water colors so the drawings could be a bit rough and expressive in nature but enough detail to capture the essence or story.

When my daughter tonight suggested we watch, Luca, I had no idea it was directed by Enrico Casarosa at first. But was delighted with the heartfelt story of friendship and Enrico’s style translated so well on screen and in 3D.

One detail that I picked up quickly as from Enrico’s style is the shape of the characters’ mouths–—especially Luca and Laverto’s—–especially when it was sideways. If you’re familiar with any of Enrico’s sketch books such as the The Venice Chronicles, it might be a detail you would’ve caught too. I thought Enrico’s style translated quite well in 3D.

Pages from Enrico Casarosa's The Venice Chronicles

From the pages above, the picture of the inside of Enrico’s body reminds me the characteristics of Uncle Ugo from Luca.

The story of Luca centers around the titular character and his outgoing and adventurous friend, Alberto. While watching, I definitely resonated with Luca as someone that has a more timid demeanor. Their friendship reminded me of past friends who had also come into various moments of life and pushed me past my comfort zone.

I especially liked the, “Be quiet Bruno” parts as it reminded me of the lizard brain.

Visually the movie was stunning, the story was fun, I loved every character and it was cool to watch Enrico Casarosa’s style in a feature movie.

If you’ve got a subscription of Disney+ I definitely suggest catching Luca.

Oh, that's what it could look like

Written on June 13, 2021

Panic is a software company that was founded in 1997 (about 24ish years old). They are makers of some of my favorite macOS apps like Transmit and Nova. Along the way Panic also published a really fun game called Untitled Goose Game—where you play, yup of all things a goose.

Their latest adventure is a handheld game system called, Playdate. This past week they shared their latest update and I am so excited for the system!

If you haven’t caught this video, please check it out.

After watching it I am excited for this little device because it is so different.

While it has the traditional d-pad, a and b buttons, it also has a crank. And it adds such a unique aspect to the games that they’ve showcased so far.

And by the way did you see the dock?

When I first saw a clip of the dock, I wasn’t too inclined by it. But then I watched the entire update video and got even more excited about it. Especially watching Cabel Sasser talk about it—his giddiness for all things Playdate is exciting.

The dock feels like a hat tip to all those weird stationary widgets that existed in the late 80s and early 90s. It definitely has a retro feel to it. I love the little metal lift at the bottom. I was a little underwhelmed by the pen and the pen holder at first, but I kind of dig it now.

I can imagine the dock sitting at my desk and just being a delightful desk accessory to look at. I can imagine a developer coming up with a Tamagotchi-esque game that just sits there on the dock and makes all sorts of funny noises and faces.

But what was so special about this video and I think what Playdate at large means to me; is that independent, self-funded, software companies can do other things than software.

I’m rooting for Panic and Playdate. I hope they see a huge amount of success!

While watching the Playdate update video, it reminded me of Wildbit’s recent 20-year celebration video and Natalie Nagele’s hopes for the future of Wildbit. That she’ll be able to take the creative group of people that work at Wildbit and create something more than software.

I hope if Natalie hasn’t already seen Panic’s adventure into Playdate that she does and that it helps them with a path forward for what she and Wildbit could do in the future. I hope it also acts as inspiration for Wildbit and really the industry at large to go beyond what they are used to and try new things.

Trying something new could end in failure. But, we’re getting a peak into what it could look like for self-funded, software companies to go beyond software and create creative products with success. I’m excited for this future. And I think we’ll be seeing a lot more small businesses follow suit.

3 email rules to manage email

Written on June 6, 2021

With work email, I’ve worked to create a system to keep my inbox manageable and prevent it from becoming overwhelming.

The system comes down to three rules to manage my work email.

Email only when you decide it appropriate

This is a rule that I learned from using the app Tempo.

When setting up Tempo, it asks you to set up a time when you’d like to review your email.

This is a good ritual as you designate when you will interact with your email, instead of your email taking up precious mental energy and time.

A good way to enforce this is to set time blocks on your calendar.

I have one short block in the morning. This is to check that there isn’t anything urgent that my team needs from me that day.

I also have one time after lunch and then a time before my end of day routine.

After lunch is a good time as I’m trying to get back into the swing of work mode.

30 minutes before my end of day routine is good because, I’ve usually expended my energy for the day and I can spend the time sifting through email and putting them into place where I can deal with them appropriately the next day.

Delete, todo or reply

During my designated email blocks, I’m doing one of three things. I’m either deleting the email because I don’t need to do anything with it. This could be updates from our task manager or emails from services that I don’t need to take any actions on.

If the email is something I need to take action on and it takes longer than two minutes to respond to, then I will add a label of todo and archive the email.

What this does is puts the email in a different part of the screen.

Finally, if the email that I’m reviewing is something I can respond to and take action on and it takes less than two minutes of my time. Then I will reply to it.

If I’m expecting a response back, I’ll add a label of awaiting reply, otherwise, I will archive the email thread altogether.

Capture todos outside of the inbox

Finally, once I’ve gone through the review process, I’ll review my emails that I’ve labelled as todos and will move them to my task manager.

What this allows me to do is move my actual todos to a task management software called Jira. I rather handle work that needs to be worked on outside of email because there’s more visibility for the team that I work with.

Also, I’m able to build context around the task. Using things like comments, linked docs and other todos.

I find that more powerful instead of trying to do work in my email in deep threaded conversations.

How I manage my work email

Using these three rules is how I’m able to keep my work email managed as an IT manager.

It isn’t perfect, but it’s a system that works for me.

There was a time when email would cause me anxiety and got to a point where I was extremely behind in my email thus my work obligations.

By coming up these rules, I’m able to breeze through email and manage it instead of email managing me.