Category Archives: Coding

Levels of AI Interaction

Levels of AI Interaction

Interacting with AI requires you to consider what role it should play, because the end goal is HUMAN betterment. This can also be viewed as, “does the human or the AI decide when it’s a good answer?” Anyway, here are the four layers of AI interaction that we use with every interaction (and may be on different levels for different interactions).

Level 1: Answer

“I want AI to… give me the answer.”

  • Passive use, transactional.
  • Low effort, low ownership.

Continue reading

TRMNL Device showing Trello Board

TRMNL is an E-Ink Screen for Improving Your Habits

I fell for TRMNL on June 2, 2025. It felt fun to transform data with some easy coding and see it appear on a screen beautifully. The dopamine loop was short and the possibilities started flooding my brain. However, before I go too far, let’s get two somethings out of the way first.

My Biases

I have owned 4 variations of e-ink screens (Nook Touch 1st Gen, Waveshare NFC screens, reMarkarkable 2 tablet, and now a TRMNL). I do not hide how much of a joy it is to read, especially as my vision has, um, deteriorated after 40. Like life, the solution to readability is to add light; natural light when possible. I am a fanboy of e-ink technology itself.

E-Ink also doesn’t require power management at the scale of most modern devices. Plugging it in is a thing you forget to do because it’s so infrequent. It also feels like a trick because the last arrangement of pixels never fades, warps, or changes, instead enduring like a Roman aqueduct or a tombstone (in the case of my Nook Touch).

I have two children 5 and under and they are living in that gap where they are curious about the world, but are unable to be self-reliant on gathering that information because of learning limitations (reading words, understanding clocks, etc). Giving them independent opportunities to learn and grow requires different approaches, and this lens is constantly looking at my world and searching for new opportunities.

A $10 Off Coupon

Get $10 off a TRMNL device with the code: mario10
Full disclosure: I’ll also get $10… to buy more TRMNLs.

Continue reading

Windows and Linux WSL2

Recovering Hard Drive Space from Ubuntu in Windows WSL2

I use Docker Desktop on Windows to run local AI, such as Ollama, Open-WebUI, Portainer, and even SwarmUi and Comfy-UI. Because of that, I’m regularly growing and shrinking the number of AI models on my drive and that’s a lot of GB of storage! Recently I noticed less than 15% storage remaining on my SSD and thanks to SequoiaView, I realized it was because Ubuntu was getting huge! So here’s how I solved the problem.

Continue reading

Together.ai

Connecting Local Open WebUI to Together.ai Models

I wanted to learn more about running Open WebUI locally through Docker while also testing out the new Llama 3.2 Vision models (11B and 90B), but my system with a 6GB VRAM video card wasn’t going to be able to run the inference model locally, so I needed a free or inexpensive option; enter together.ai. Their free account offers the 11B model at no charge while also having easy access to the 90B model. So, I downloaded Docker Desktop as the getting started docs suggested and then my inexperience hit a roadblock: How to run a docker terminal command and what command to run?

Continue reading

Piwigo Logo

Piwigo: Configure Custom SMTP on Dreamhost

Piwigo is open-source software for sharing image galleries easily. Installing it on Dreamhost (I’m using a VPS but any type of hosting works) was super easy, but by default any emails sent would have Mail System Delivery Failure due to email security problems.

Luckily, the solution was to create an email account in Dreamhost and configure SMTP in Piwigo. Here are the steps in a new installation:

Continue reading

child reading book

Installing Castopod on Shared Hosting

Castopod is podcast hosting software that allows you to easily serve your podcast(s) from your own server rather than through a secondary service like anchor.fm, blubrry, and libsyn. While I personally use anchor.fm for some podcasts which I wanted to easily monetize, for a new podcast, Story Suggest, I had no desire for it to get monetized by me or anyone else. Furthermore, I also wanted to dip my toe into integration with the fediverse. Don’t worry if you don’t know what that is, it’s not critical to any of this.

Either way, while the installation documentation for castopod is relatively clear, I felt like there were a few quick notes/tips I could add for those installing on a shared host like Dreamhost. While I maintain a VPS at Dreamhost, the functionality and installation is the same. Below I’ve highlighted some clarifying points to help others quickly get setup with Castopod.

Continue reading

discourse

Fixing Yarn ESOCKETTIMEDOUT Error During Discourse Setup

While installing Discourse on a free tier instance in a Google Cloud Compute Instance, I was following this discourse install tutorial with only minor adjustments:

  • Used Ubuntu 20.04 LTS minimal
  • Standard Disk (default is Balanced)
  • e2.micro instance

However, when I was waiting for Step 9 to complete (after running ./discourse-setup) and everything being built, it would fail with an ESOCKETTIMEDOUT error related to yarn. The last message that tries to run is [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'.

Here’s what is going wrong. Yarn has a default timeout that is fine if you are using the minimum recommended for Discourse, but with a micro instance, it takes too long. To fix this, you have to manually edit one of the install scripts that runs for the new Docker container Discourse is building.
Continue reading