Blog posts index page 1

A local AI setup using Ollama and Open WebUI

Midjourney prompt: Electronic brain take-off using pixel art.

Until recently, my AI usage has been limited to ChatGPT and a bit of Midjourney.
No Copilot, no Claude, no nothing.

The most serious thing I’ve used AI for, was getting ChatGPT to give feedback on paragraphs for new blog posts, and Midjourney to help create featured images for blog posts.

The few times I’ve tried using AI (read ChatGPT) for programming related stuff, I very quickly got frustrated with the lack of quality in the responses. To be fair, I’ve mainly wanted it to create Clojure code, and Clojure’s niche status and very different syntax are likely the main reason. That, and the fact that ChatGPT is the “wrong” tool for the job.

Anyway, I’ve acquired some hardware to build a local AI, including a second-hand Nvidia RTX 3090 with 24Gb vRAM, and I thought I’d document and share my progress so far.

Read more...

Stumble upon in June 2025

Midjourney prompt: A surreal digital painting of corporate executives laughing in a crumbling glass tower, blindfolded and indifferent, surrounded by a chaotic world of protest signs, burning data, and broken smartphones high contrast, moody lighting, dystopian tech aesthetic, cinematic realism, muted color palette. (Prompt suggested by ChatGPT based on a longer description)

I have started a journey to disentangle myself from Big Tech — at least partly. So far, I’ve avoided boarding the Facebook train altogether (including Instagram, Snapchat and TikTok). And after finishing the book “Careless People” by Sarah Wynn-Williams (recommendable by the way), which describes her experiences from inside Facebook, my JOMO choice feels even better. Apparently, friends and family still invite me to their birthdays using alternative (old-fashioned) means 😅 You know, like phone calls, SMS, and sometimes even face-to-face — weird!

Read more...

Consistent code style for Clojure function definitions

Midjourney prompt: A surreal landscape shaped like layered code blocks, gradients of thought and logic, metaphor for clarity in programming. The illustration is a rough sketch style and in vibrant colors. Background is brimming with tech vibes, circuits and pulses. Using image from core.async post as style reference.

A Clojure function is often defined with name and arguments on a single line:

(defn some-function [with-several arguments]
  ...

and the following post is about why I will advocate for a multi-line alternative:

(defn some-function
  [with several arguments]
  ...
Read more...

Local S3 storage with MinIO for your Clojure dev environment

Midjourney prompt: A single huge digital storage bucket in the clouds using mainly green and orange colors. Image style reference using featured image from blog post: Upload files to SharePoint using Babashka

Simple Storage Service or S3 Cloud Object Storage is a versatile and cheap storage. I’ve used it for invoices, contracts, media, and configuration snapshots, among other things. It’s a perfect fit when the object key (or what many might think of as a filename or path) can be used as a unique key to retrieve what you need — and doing it from Clojure is no exception.

Read more...

Browse posts by tags

The posts touch a lot of different topics in no particular order. It might be more convenient to browse by tags if you have a topic of specific interest.