RSSAmplifier

Blog

Notes from Sean

Recent content on Notes from Sean

linsomniac.comRSS feed ↗24 posts

Latest posts

AI Loops and Collaboration

This weekend I decided to play around with agentic loops and the results have been
:chefskiss:. I’m using loops and combining Codex CLI and Antigravity CLI working
with Claude Code as my primary agent to produce great results with less human
attention.

Framework for Securities to trade on the blockchain

Last week was a busy week for cryptocurrencies. I haven’t seen this covered in the
mainstream news, but it looks like frameworks are being put in place for securities
to begin trading on the blockchain.

Shell quoting for bash wrappers

TIL ${*@Q} helps with quoting/escaping hell.

Building and Publishing Apt Repos to Github Pages

uv is becoming really useful, but I noticed there is no apt repo/PPA of it. I
decided I wanted to try publishing an apt package repository via Github Pages.
The LLMs got me started, but there were a lot of little things to work out, so here’s
a complete recipe.

Docker Apt Install for Python+UV

While reviewing Hynek’s awesome
 “Production-ready Python Docker Containers with uv” 
article, I made some changes to the final container. Here’s my proposal for changes.

ElasticSearch Snapshots to Backblaze B2

An important part of setting up an Elasticsearch cluster is to configure snapshots.
I recently set up snapshots to Backblaze B2, an affordable alternative to AWS S3.
This is a complete example of configuring them.

ChatGPT 4 vs. Claude

Above the fold content

Deep nesting vs Magic

I had a piece of code that was deeply nested for loops, and I wanted to see what it
could look like if it wasn’t deeply nested. Deep nesting is the root of all evil,
you know. Which is the most clear, maintainable code?

Python Testing a CLI Script Without .py

I often write little CLI programs in Python, where I just want to call it “script”
rather than “script.py”. I also want to be able to test functions in these scripts.
It gets tricky if you want to test code from a file without a “.py” suffix.

Understanding Headscale ACLs and Users

I spent quite a bit of time while I was learning Headscale being confused about users.
Here are some key points that helped me understand them.

Using jq to help remove headscale nodes by name

Headscale CLI requires that you remove a node by id rather than name. jq to the rescue!

The More Things Change: ChatGPT Echoes Google's Early Days

Watching the discussion about ChatGPT reminds me of the early days of Google. I’m
thinking back to when it was under the Stanford domain and opinions of it since.

Using Systemd as a Socket Server for a Shell Command

In the past I’ve run socat as a daemon to run a shell command and send the output
to a socket. It works well, but I wanted to try the systemd way of doing what
“xinetd” has done in the past: Run a command and send the output to a socket.

More Simple Static Site Generators

Looked at a few more static site generators, looking for a simple one, based on responses
in a “Hacker News comment section on Hugo today” .
Here are some more mini reviews.

Simple Static Site Generators for a Blog

I’ve been playing around with a few simple static site generators, the simpler
the better. Here’s a mini review.

Connecting Android to Headscale

It’s a little tricky to connect android to Tailscale, but here’s how I do it using the
Google Workspace authentication.

Headscale Authentication with Google Workspace

Headscale “users” can be authenticated using Google Workspace logins. This only applies to
nodes that do not have tags . Nodes with tags do not get logged in/out via OIDC.

Using PGLoader to Copy Data from MS-SQL to PostgreSQL

PGLoader can painlessly copy data from a SQLServer into PostgreSQL, including
setting up the schemas and copying the data. A very slick tool that I’d never
used before.

Fixing a SQLite Schema

I created a schema and accidentally put “test” instead of “text” in a column type.
To fix it, I tried copying it to a new column, since you can’t alter a column in
sqlite, then copying it back, but that lost the NOT NULL constraint.

Ender 3 Pro, SKR Mini v2.0, and BLTouch upgrade


 I had wanted a BLTouch 3D printer, I felt like the bed leveling would reduce
the amount of fiddling per print. I chose to upgrade the motherboard to get
something with a native BLTouch port, as the way to achieve it.

Addendum to Wilkerson's Garden Beds


 Over the last few weeks, I built April Wilkerson’s Raised Garden Beds with
self-watering system. They are really good looking, and were fun builds, but
I do have some notes on the build that may help others.

Encrypting ZFS on Ubuntu 20.04

Ubuntu 20.04 includes the ability to install with ZFS for the root and boot
partitions. However, it does not include an option for encrypting the root
volume. Fortunately, it is easy to enable it.

Generating Letsencrypt Personal Certs on Route53

We have a bunch of machines behind haproxy load balancers. The haproxy is
publicly accessible and can use the ACME HTTP method for certificate
renewal. The machines behind it are using self-signed certs from our own CA,
but there are cases where we might like to have certs on both systems that are
“legit”. For example, a gitlab instance that is accessible internally…

About me

My name is The Dude. I have the following qualities: 
 
 I rock a great beard 
 I’m extremely loyal to my friends 
 I like bowling 
 
 That rug really tied the room together. 
 my history 
 To be honest, I’m having some trouble remembering right now, so why don’t you
just watch my movie and it
will answer all your questions.

Notes from Sean · RSS Amplifier