This website uses cookies

Read our Privacy policy and Terms of use for more information.

I've been vibe-coding tools for a little bit. It's been a lot of fun, but this isn't another post about how great LLMs and AI are at coding. I've been building small AI tools that plug into my daily workflow, mostly exploring what local models can and can't do compared to cloud ones, and using my Obsidian vault as the backbone for all of it.

One of the tools I've made lets me use Apple shortcuts to dictate a message, transcribe it, and drop the transcription into an iCloud folder. From there, a local LLM reads the file and extracts three things: what I'm grateful for, interesting thoughts I should come back to, and TODO items I want to act on. It appends all of that to my daily Obsidian note.

It's useful. I can quickly capture thoughts while I'm out and return to them later. The transcription is less than perfect, so the LLM is responsible for not only extracting those topics, but also un-mangling the poorly transcribed text. Yes, I could make the tool read an audio file directly. I haven't committed to that yet.

It was late the other night, and an idea popped into my head. There are so many things out there right now written by AI. I don't want to be another one of those, and I want to retain my own voice, but what if I added a guest author to my blog who was an AI voice? They wouldn't post often, but would be the voice of my coding assistant and a bit witty. I thought of a book series I read once called The Bartimaeus Trilogy. The author's text is interjected periodically by a character named Bartimaeus, who was sarcastic, contradicted the author, and was genuinely funny.

So I used my voice transcription to capture the idea and went to bed.

The next day, I woke up and was going about my day, and remembered the voice memo I'd recorded the night before and ran the tool to process it.

I quickly scan the results and see that none of my idea is there. I'm confused and slightly panicked. I look again to see:

"Create a Twitter post with a Macedonian accent."

This was how it had captured my grand idea. The one that had kept me awake pondering it.

I laughed and lost a little faith in my AI tooling.

It's still a prototype, though, and I keep improving it.

As for the AI guest author idea, I don't know if it's any good, but I plan to try it. I hope it ends up being an entertaining aside rather than an annoyance. We'll see.

This week on the blog

Speaking of things that didn't work as planned, I wrote more about my experiences vibe coding local AI tools this week. The Macedonian accent incident didn't make it into that post, but plenty of other surprises did. What worked, what didn't, and what I learned about trusting small models with real tasks.

The SQL for Python Developers series rolls on with the eleventh of 25 posts, rounding out the introduction of various clauses in the SELECT query with a post on the HAVING clause. HAVING is used to filter rows based on aggregated values. It's often confused with the WHERE clause, but it serves a different function.

Finally, I participated in T-SQL Tuesday for the first time. This is a monthly exercise where SQL practitioners write a post about a common prompt. It was fun to write and gives you some insight into other people in the profession. This month I wrote about career risks I've taken. I hope to participate again next month.

What I'm building

The transcription tool from the story above is just one of several prototypes I have running right now. Here's what I've got going:

  • Blog post draft reviewer - Takes a draft and provides feedback on tone, grammar, and style.

  • Content discovery agent - Scours RSS feeds, Bluesky, and Mastodon once a day to find articles that match my interests.

  • Pebble - A privacy-centered, local AI powered baby journal. This one has been unexpectedly fun.

  • Promo generator - Takes a post and attempts to write social media posts to promote it. This one has been a disappointment.

  • Transcription summarizer - Adds wonderful commentary to my Obsidian vault, like, "Create a Twitter post with a Macedonian accent."

  • Weekly review generator - Reviews activity in my Obsidian vault for the past week and creates a summary post.

I've been surprised by how well some models handle certain tasks and how badly they handle others. These are all still under construction, but they have been a lot of fun to build.

  1. Why Your AI Agent Needs a SQLite Task System - I'm using SQLite as a place to store data in process for my tooling. I wasn't sure about this decision, but arrived at it because I didn't want my Obsidian vault getting littered with partially processed data. After making this decision, I came across this article.

  2. I use offline LLMs a lot - how do folks choose? - A LinkedIn post about choosing the right local model. This is a question I'm learning to answer as I explore local AI, which I think has some great upsides like privacy, but isn't as powerful as cloud-based models.

  3. (All) Databases Are Just Files. Postgres Too. - I chose SQLite for my tooling (see link 1), and at first it felt like an odd choice compared to something heavier like Postgres. This article is a good reminder that whether you're using DuckDB, SQLite, or Postgres, it's all just files in the end.

  4. Human brain cells on a chip learned to play Doom - If AI and LLMs haven't been an uncanny enough sci-fi experience this year, we have scientists putting human brain cells on silicon, and ironically, they taught them to play Doom.

I had a fun and productive week, and I hope you did too. I will not be tweeting in a Macedonian accent, but I plan to keep sharing my interesting exploits with you in the next SELECT * FROM Jamal.

-- Jamal

That's it for this week. If this was useful, the best thing you can do is share it with someone who would get something out of it.

Find me on LinkedIn · Bluesky · X · Mastodon

Not subscribed yet? Fix that here: jamalhansen.beehiiv.com

Note: My last two newsletters have featured my own photos. This week, I couldn't find a photo of my own on theme. Thanks to Pavol Svantner on Unsplash for providing a photo.

Keep Reading