Category Archives: Personal

26 for 26 March Update

At the beginning of the year I wrote down 26 fun mini-goals to try to do in 2026. I gave an update at the end of January and here’s another one with an update since then.

  1. I’ve been doing well with my vegan recipe books and I also found a great new recipe online for Sopa Locro de Papa that connects me to my Ecuadorian roots.
  2. I’ve donated all of the books I don’t want to keep (way more than 10), so that goal is done.
  3. I went to a new restaurant for valentine’s day in NYC.
  4. I appeared on the Thinking in Tech podcast where I talked about tech debt and AI.
  5. I released episode 48 of Write While True.
  6. I wrote one new Amazon Book Review for Forever Fit [ad] by Maxime Sigouin
  7. I started a new open-source project to package up some visualizations I have made in D3 and want to use in the Google Sheet I ship with my book, Swimming in Tech Debt.

If you want to see the sheet that I use to manage tech debt and get free emails on how to use it, sign up below:

Finding My First Open Source Contribution

I keep track of my GitHub open source contributions on this site’s GitHub page, but only back to 2013. According to GitHub, I opened my account in late 2010 to open a couple of issues on Yammer.net, which I was using to build an internal tool for Atalasoft that needed access to our Yammer data (Yammer was a precursor to Slack).

My first GitHub source contribution was to YUICompressor (a JavaScript compression tool) to output a Munge Map to aid debugging. I PR’d it in 2011. I needed this to help debug Atalasoft’s JS code in production.

But, that’s just GitHub. I’ve been posting code in other places before that. Here’s a multithreaded prime number sieve in clojure from 2008. Here’s a port of Apple’s CPPUnit to run on Windows from 2006. I found evidence that I published a JavaScript Code39 Bar Code Generator on my Atalasoft blog in 2008, which also has a Code39 web app based on it (which hosts the JS code). I have a lot of code snippets on StackOverflow, but only after 2008. My first post with code was in 2003 (comparing jUnit and NUnit).

I had a distinct memory of emailing an open source dev with a multi-threaded race condition fix for a C++ data structure that we used at Spheresoft. Looking at a list of our external libraries jarred my memory that it was WFC by Samuel R. Blackburn. I also found the WFC release notes in the Wayback Machine that mention my fix. He migrated WFC to GitHub much later, but I found a comment mentioning my fix. The actual diff predates the migration, but it’s the double-checked locking directly below the comment:

    // 1999-12-08
    // Many many thanks go to Lou Franco (lfranco@spheresoft.com)
    // for finding an bug here. In rare but recreatable situations,
    // m_AddIndex could be in an invalid state.

So, that’s 1999. Ironically, my oldest verified contribution is actually on GitHub, but predates its release by about eight years. Where’s my green square?

Before that, I have to go by memory because I can’t find the originals.

One thing that came to mind was back in college. I co-developed code for our computer center to draw plots on a Unix PC terminal (saving paper). Using that code, we also built a Unix PC driver for GNU Plot and sent it to them. I am pretty sure this was hosted on MIT’s Athena.

That would be in 1991 or so. I did some simple searches and didn’t find it, but supposedly there are FTP archives from that era, so I might try looking later.

What Makes a Good First Vibe Coding Project

Code can be dangerous to run. It could have security issues. It could leak secrets. If you don’t know what you are doing yet, vibe coding is a good way encounter those problems fast.

Here are some aspects of a project that make it a good one to start learning how to vibe code. This won’t make them perfectly safe (no code that you don’t read could be). But, here’s where to start.

  1. It is a tool that only you will use
  2. It doesn’t need to deploy code to a server that is exposed to the public Internet
  3. It doesn’t need access to any services that require authentication
  4. It is meant to be a prototype
  5. It is run client-side only in a sandbox. For example: a 100% in-browser JavaScript or mobile app.

Games fit most of these.

I’ve been having fun with my nephew writing JavaScript games using PhaserJS. Agents seem to know this library well and we almost never need to look at the code. The games run in a sandbox (the browser) and don’t require any server-side code (that could be hacked).

26 for 26 in January

A few weeks ago, I made a list of small wins I am going to try to have in 2026. To help me be accountable to them, I am going to make an update post each month. Here’s what I have done so far:

  1. I found a place to get Nattō (my farmer’s market) and got a jar last week.
  2. I added A+ Content to the Amazon page for my book.
  3. I tried Amazon Ads (I’ll write a post next week about my thoughts on that).
  4. I cooked one new recipe from one of my vegan cookbooks last night (I think it will be worth doing again).
  5. I left 4 books in donation mini-libraries.
  6. I joined CrossFit again (it’s my best option for a 3rd Place).
  7. I made a reservation for a new (to me) restaurant in NYC.
  8. I went to a gathering of neighbors in my building and met a few new people.

And I am making progress on some of the other things on the list.

26 for 26

I heard this idea from Gretchen Rubin originally and was recently reminded of it by John August. The idea is to make a checklist of things to do in the upcoming year (i.e. 26 things to do in 2026). It’s another alternative to resolutions (see also: Yearly Themes).

Each item should be doable. To me, it’s an extension of Making Happiness a Priority and my aspirational goals to be Fuerte Y Suerte.

  1. Bench my weight
  2. Be able to do 10 pull-ups
  3. Make a meal with soy curls
  4. Find a place locally where I can get Fermented Bean Curd and Nattō
  5. Add A+ Content to the Amazon page for my book
  6. Try Amazon ads
  7. Go to an intermediate Spanish meetup
  8. Cook one new thing from each vegan cookbook I have
  9. Leave 10 books in the donation mini-libraries around town
  10. Hang pictures of my family in my guest room
  11. Go to a live musical
  12. Go to a NY Liberty game
  13. Go to at least one arena-sized concert
  14. Have a coffee or lunch with someone who lives in my building (see Improving My Social Connection Index)
  15. Join a gym that has a social component
  16. Host someone new for dinner at my place
  17. Try three new restaurants for dinner in Sarasota
  18. Try two new restaurants for dinner in NYC
  19. Go for a weekend away to a new place in Florida
  20. Attend a local political gathering
  21. Release something new to open-source
  22. Get App-o-Mat on current Django and back to being a live server (not static pages)
  23. Publish 10 articles on third-party sites
  24. Appear on 5 podcasts
  25. Publish 10 episodes of my podcast: Write While True Podcast
  26. Write 10 Amazon Book reviews for books I love

Blind Sketching

I want to sketch more, but it seems a little like a chore sometimes. For example, I used to go to life drawing sessions, but it’s a four hour commitment with travel. So, instead I’ve been doing more quick, blind sketches. In ink.

A blind sketch is a sketch you do by looking only at the subject and not your paper at all. It takes at most a couple of minutes for me.

Here’s one I did from a hotel bed last week:

Blind sketch of some stuff on a shelf in a hotel

I like doing it in ink because there is no way to fix a mistake. You have to just move on.

Evening Pages

I have been doing Morning Pages on and off for a few years. If you are new to them, it’s the practice of writing handwritten, non-stop, stream of consciousness, non-edited text for three pages. It takes about 20-30 minutes once you get going. The benefit to me is that it proves that I can force myself to write. It trained me to push past whatever it was that held be back from writing more.

I started doing them again as an exercise in The First 13 Weeks of 2026. It’s part of how I am Making Happiness a Priority. It’s a small boost to the day when I’m finished.

But, for a couple of days this week, I didn’t find time in the morning and decided to do them at night instead—close to bedtime. In these sessions, I treated it more like a shutdown than a boot up.

In the morning, I search for ideas to write about later in the day. At night, though, I have been unloading my thoughts. The things that might occupy my mind as I try to drift to sleep get their final say.

Making Happiness a Priority

My running coach, Holly Johnson, wrote a book a few years ago called How To Make Feeling Good Your Priority [ad] (my review). In it, she wrote about how she applies her running mindset to everyday life. Specifically, when feeling bad during a run (tired, hurt, etc), she would find a way to feel good right now. She’d seek one small adjustment that could make an immediate difference. Her aim was to stop a bad moment from becoming a bad day.

Related to that, I once got some advice to maintain a list of small things you could do to make you happy. They could be quick, or more involved. Perhaps some are situational and some could be done whenever. The idea is that you could use them to substitute out a bad habit or for a pick-me-up. Like, instead of doom scrolling, you listen to a song you like.

In that spirit, I have developed a list of small things that make me happy (or will make me feel like I had a good day). I am not trying to get all of them every day. They’re meant as a way to fill time with things that lift me up instead of doing things I would prefer to do less of. A lot of them are tied to my 2026 theme of Fuerte y Suerte, but not all.

  1. Work towards 10,000 steps
  2. Hang on a pull up bar (there’s one in my office)
  3. Sit in a deep squat for 5 minutes
  4. Go for a walk outside
  5. Work towards my daily protein goal
  6. Read a book
  7. Do Morning Pages
  8. Journal
  9. Selfie Video (5 min) to practice extemporaneous speaking
  10. Call, text, or meet with a friend
  11. Listen to Spanish (Podcast, Music)
  12. Fill a page with Spanish writing
  13. Code on a side project
  14. Tidy
  15. Meditate
  16. Quality time with my wife
  17. Listen to music
  18. Sketch

One nice thing is many of them can be combined. I can go for a walk outside, get steps, and listen to Spanish Music. Or go for walk outside with my wife. Read a book on the elliptical. I did my morning pages in Spanish yesterday. Many take just a few minutes. A hang is less than a minute right now. I can do it while waiting for a compile (jk, I use Python).

And, if I do want to just watch some YouTube, I can sit in a squat or find something in Spanish to watch. Or find some music videos (and dance).

If you are looking to find a way to break a bad habit, a list like this is useful to implement a substitution strategy. If January 1st makes you motivated to make change, then Use Motivation To Program Your Environment—make the list and put it somewhere you can see it.

2025 Blog Roundup

In 2025, I published 112 posts. Here’s what was on my mind.

My biggest accomplishment in 2025 was publishing my book, Swimming in Tech Debt. Here are some posts about the process:

If you want to read sample chapters from the book, sign up here:

I wrote a lot about code reviews.

I completely changed my dev stack from Node/React to Django/HTMX

These were some of my favorites

The most popular post from this year (mostly because of search hits) is Supernote Manta: Review at Eight Weeks. I updated it with my current thinking in How Digital Journaling is Better Than Paper.

Fuerte Y Suerte

Instead of New Year’s Resolutions, I pick a yearly theme to help me make progress on my goals.

In 2023, it was to Make Art with Friends, which led to me joining Toastmasters and a sketch group. I also started a meetup for local software developers. In early 2024, I extended it by joining The Useful Authors group. Then, in 2024, I chose the theme of “Heavy Lifting” to encompass my fitness program and the work it would take to write a book. Last year, it was Just Keep Swimming, which meant to keep working on my book, Swimming in Tech Debt, and get it done.

This year is about strength training, learning Spanish, and marketing my book. I chose to represent that with the theme “Fuerte Y Suerte”, which means “Strong and Lucky” in Spanish. EDIT: Get the t-shirt.

The Strong and Spanish part are clear. By lucky, I mean in the sense of writing a bunch of content on this blog, my podcast, my email list, LinkedIn, and other places and hoping that one of those things takes off (as I described in Blog Posts, Randomness, and Optionality). I think of each post as a lottery ticket with a low fixed cost and huge upside potential. Randomness is the Great Creator.

In the past, this led to My Guest Article on Tech Debt for the Pragmatic Engineer and making the front-page of HN, which I described here: My “Show HN” Follow-Up for “Swimming in Tech Debt”. In my life, it has led to writing a book for Manning, being invited to conferences, jobs, etc.

A couple of days ago, I revived my podcast, and the next episode will be about getting lucky.