I am a father, entrepreneur, technologist and aspiring woodsman.
My wife Ksenia and I live in the woods of Northwest Connecticut with our four boys and one baby girl run around outside. We also have 2 dogs, (old man) Happy and (puppy) Pheonix. I have a lumber mill and all the kids love using the tractor.
Quality Code Swearing
One of the most fundamental unanswered questions that has been bothering mankind during the Anthropocene is whether the use of swearwords in open source code is positively or negatively correlated with source code quality. To investigate this profound matter we crawled and analysed over 3800 C open source code containing English swearwords and over 7600 C open source code not containing swearwords from GitHub. Subsequently, we quantified the adherence of these two distinct sets of source code to coding standards, which we deploy as a proxy for source code quality via the SoftWipe tool developed in our group. We find that open source code containing swearwords exhibit significantly better code quality than those not containing swearwords under several statistical tests. We hypothesise that the use of swearwords constitutes an indicator of a profound emotional involvement of the programmer with the code and its inherent complexities, thus yielding better code based on a thorough, critical, and dialectic code analysis process.
Bachelor’s Thesis of Jan Strehmel
Previously: Vibe check
- October 2024
Slicing up a design from figma close but not really
Quality Code Swearing more profanity the better
- September
Vibe check who needs science
Quick slide show who needs a server or anything fancy
The raven
How to make opengraph screenshots for hugo it sure looks a lot nicer!
Creating a start page launch pad for all the things
No build static site that used supabase who needs tooling
Seperate git for blog writing i always forget
- August
i heart ruby
Building a blog using github issues what else can we do with github actions
Roda + Sequel maybe its time to move past sinatra
Telegram with curl so easy to send messages
Using act to test github actions locally code on microsofts dime
Playing with streamlit visualizing your data
Building a site with nuejs not quite static, but very small
LLM Tool calls getting it to talk back
Create a telegram ollama client why not?
Playing with Vercel AI SDK is this easier than langchain?
Command line parsing in typescript its no thor but its ok
Using python venv in docker ruby and python, sitting in a tree
degit to template projects nice way to clone
vite-bundle-visualizer why is my build so big
Accessing clerk from ruby backends dont matter
Using clerk with vite and static site Maybe we don’t really want all of that nextjs
rust to wasm to javascript
- July
Coding with aider how much can it figure out for you
Clerk webhooks begining the events
Coding in one file Tailwind and Server Actions
Adding react-email to a nextjs app
Adding authentation with clerk make it simple
Sending email with react-email its nicer to use their interative builder but why not just the simple thing
Using 1password from a script better than keeping keys around
Thoughts on reading the llama 3.1 paper
Vacation Book Reading
- June
Installing a go binary right from the source
Four freedoms
How to use pako with vite javascript string encoding is simply insane
Checking fetch for error why is this so hard
Adapting to new mediums
Recreating notepadtab how small can we go?
- May
Chromadb on fly.io adding some auth
Converting a webpage to something usable not sure if it can be done
- April
I need a trigger warning
Basic LLM Chat UI the base of a few experiments
Oh javascript
Programmatically Interacting with LLMS different techniques for local, remote, rag and function calling
Readability and JSDOM took me a while to get this little code
Streaming responses from ollama really any fetch thing
Image upload with node storing on a seperate directory why do anything so fancy as S3
Vite and express development javascript all the way down
Geocoding with ollama using json schema
- March
Programming with ollama automated interaction
Deploying ollama on fly.io scale to zero
Using pushState and replaceState better linking
Leaflet markers with vite build
Deploying static vite site on fly silly silly
Discovering idagio
shoelace and vite adding static assets
Playing with openrouteservice-js learning about mapping
Things I love about my phone
Address already in use lsof
Making a JSON api from a CSV file using fly download, process, serve, update
Deploying puppeteer on fly.io
Installing sqlite-utils on bookworm missing dependencies
Wait for the download to finish with puppeteer Page.downloadProcess
Deploying OSMR runs pretty fast locally
Port 5000 already open on OSX airplay receiver
My physical relationship to the internet
Quick static site template Rapid and disposable prototyping
Making a web component by scratch progressive enhancement
Ruby crashes on fly.io more memory
Using Datasette to map out charger locations makes it easy to share
POSSE rss to mastodon keep it local and then share
Why are LLMs so small? so much knowledge in such a small space
- February
5 year old hacking chatgpt
AI in Emacs everything in emacs
Fifteen or twenty thousand years
Running Google Gemma Locally in which i discover ollama
- 2023
- October
political implications
- September
Sinatra with activerecord small json server apps
- August
a good death
locations in the magicians
everything is equally evolved
- July
Indexing a hugo site using pagefind static all the way down
erb static site builder single file templating system
timezones and dialects
Flushing DNS cache on OSX I keep forgetting
Thorsh: Thor, but for bash simple bash cli scripting
Should Robots Have Rites or Rights
Using ruby netssh Connect to a server
Playing with unocss Slimmer than tailwind, but still cool
Updating date in org file simple and fun
bad analogies
Buildless websites
threads is a mess
things that are neat about the rivian
hallucinations are bullshit
A Taxonomy of AI Panic Facilitators
Watching a directory for changes simple job queue
rivian trusts the driver
Emacs Blogging mode take 2 emacs and hugo sitting in a tree
Charging Networks Compared Ready for a NACS world
- June
Modern Improvements
Installing gitolite Intercepting git
Installing old ruby on Ventura back in time
Build on git push build your own stuff
Using caddy docker proxy straight from the dockerfiles
Deploying a private docker registry Deployment testing
Using the cloudflare API setting A records ez
Controlling Hetzner with CLI Simple wrapper scripts
Playing with SSHKit Deployment testing
Setting up emacs re-re-dux What is more fun that configuring emacs?
Using Mrsk Deployment testing
- May
Summarizing URLs with ChatGPT save yourself some reading time
- April
Using lastpass from CLI or script better than keeping files around
- March
Post 3
- February
Post 2
- January
Post 1
- 2022
Snowpack for fast builds react and tailwind too
Using ActiveRecord outside of rails just the rake
- 2021
- December
Pulling avatars from slack Basic bot integration
Running SQLite in the browser using NextJS Why not?
Setting up digital ocean spaces to upload Gotta work on my upload scrips
Receiving CloudEvents with NextJS One file to rule them all
Setting up knative eventing lets send some messages
NextJS with Prisma on Kubernetes deploy as a knative service
Serving a knative function on the root root to services
- November
Setting up knative functions functions functions
K8 Dashboard on Docker Desktop what’s going on
Getting emacs working on OSX Monterey security and permissions
- August
Wrapping a executable in a function Easy function wrapping
Uploading to S3 on the command line throwing data into a bucket
- July
Rails on Kubernetes with TLS certmanager
Setting up GitHub Actions for Continuous Integration automating all of the things
- June
Deploying OpenFaaS on Digital Ocean with Terraform Everything functional
- May
Sending files with wormhole tools I didn’t know
Controlling docker in golang So meta
- April
SQL in Org-Mode Everything in org-mode
Bootstrapping React with Tailwind as so I remember
SQLite in the browser pushing everything to the client
Setting up emacs for typescript development If we are going to bother with static types, might as well use them
- March
CLOCViz Run some vizualizations on a repo
Emacs Blog Writing and Navigation Mode emacs and hugo sitting in a tree
asdf as environment manager so much faster
Database Migrations what should I do when not using rails
Installing emacs on buster so many ways to get software
- February
Setting up redis and nat-connector with FaasD Storage for your functions
Uploading Blobs Simple datastore
Building static OpenFaas templates Packaging up the packager
Docker One Liners Why install
Interacting With Git via HTTP Looking at git http traffic
Installing faasd cgi was good, serverless is better
- January
Logging with an HTTP Proxy Simple MITM debugging
- 2020
- November
rails uuid primary key Slightly more obscure
Tailwind and Rails postcss setup
Rails in Docker Why install ruby locally?
- October
Release code diffs What changes between releases
Looking at package.json making sense of package-lock.json
- September
Looking at Gemfiles making sense of Gemfile.lock
- August
gitlog in sqlite sql is great
Using Askgit SQL is so nice
- July
Getting Websters More glorious language
Setting up SSB-Pub Server and migrate your profile
Effigy, a distributed social data layer Scuttlebutt is awesome, let’s run with it
- June
Upgrading emacs on debian fixing crashes
Checking health of RSS feeds Lets clean out the old stuff
Using Syncthing who needs servers
Developing React Inside Docker Clean up after your mess
Simple CORS workaround for local development Keep is Simple
Beginning Emacs Rediscovering emacs
IPFS and Fuse the worlds data in your filesystem
Playing with deno Rethinking package managers
- April
Book Image Shortcode for Hugo Lets link to bookshop
- March
Styling tables with Hugo Markdown sometimes isn’t enough
Emacs Tramp tricks Replacing terminals with emacs
- February
Making charts with VueJS and no tooling Static files all the way
Leveraging disposability for exploration how to play around without leaving a mess
Playing with tailwindcss An excersize in minimilism
- January
Styling Hugo Diffs Showing just what you changed
Template to setup a linode server with DNS and HTTPS use terraform to coordinate stuff
- 2019
- December
Terraform and Packer with Digital Ocean Automate all the things
Computer Setup Script Setup Linux or Chromebook quickly
- September
Setting up an IPFS Node using docker-compose and certbot
- August
Using Org Mode in Hugo emacs everywhere
- July
Installing guix on IntelNUC using the hardware you have, even if we are nonfree
- May
Reverse engineering APIs using Chrome Developer Tools its your data after all
- April
Controlling IKEA Tradfri devices from your computer IKEA is cheap and everywhere
Playing with cabal serverless code
Splitting Git Repos and Work Directories all the fun things git can do
Setting up Indieweb Homepage the dream of the nineties is alive on the indieweb
Easy scraping with httpie and jq Pulling my GitHub starred repositories into Hugo
Building a slimmer go Docker container All we need is the binary
Bootstrapping a react app with bootstrap and font awesome
- March
Setting up a chromebook for development Documenting my steps
- January
Setting up IPFS on a chromebook Connecting to the world
- 2018
- November
Image Manipulation in Firebase its all javascript
Implementing Serverless OAuth for JAM Stacks and static sites
- October
Adding Facebook Login with react you can’t escape it
Automating hugo builds using CircleCI Let someone else run your build server
Adding a CMS to hugo Static doesn’t mean dead
Building a hugo site and theme with Bootstrap hugo is blazing fast
- 2017
- December
Living with a Chromebook so nice
Getting firebase and grpc working under termux tilting at windmills
Authenticated routes using react-router an expirement
Styling and theming with material-ui: React + Material Design hrmph
- November
Styling and theming with rmwc: React + Material Design material design
More lessons learned working on a Chromebook still so nice
Writing code on a chromebook a phone-like laptop
- March
Why Short Term memory is a thing: forgetting as a creative act Philosophy meets computer science
- 2016
- October
Save your Medium articles to your computer in markdown sync everything
Yes, No, Maybe, Don't Know, WTF the limits of Binary Logic and the Importance of Forgetting
- July
Deploying ActionCable on Heroku with Sidekiq you’re gonna need a bigger redis
- March
Owning a Tesla in Brooklyn where do I charge
- 2015
- September
Using seed to explore APIs overview of what we’re working on and how to explore apis
- July
Building a GUI for managing middleman blogs the site will still be fast, really fast
Receiving posted JSON with Sinatra small tricks to make things easier
Bower with Rails Javascript dependancies and sprockets
- June
Adding search to a middleman blog slightly simplier than google
- May
OSX Script for Kiosk Mode make your own screen saver
Slow data and Fast Sites building fast, searchable, functional sites that fail gracefully
- February
Why Engineers build crappy products looks like it was designed by an engineer
- January
Setting up Rails testing with rspec, devise, and the gang so much fun
Setting up Devise with Twitter and Facebook and other Omniauth schemes without email addresses Connect connect connect
- 2014
- December
Using rake for dataflow programming and data science Rake it like’s hot
Building Middleman Extensions make middleman more awesome
Middleman Tricks and Hacks specific tricks I used to build this site
Dateslice: Writing rails extensions adding date group_by to ActiveRecord
Pulling data out of Google Analytics see who’s talking about your stuff
- November
New HappySeed released now with even more awesome
Building Sites with Middleman lean publishing
Scripting Twitter: Collecting Data and Writing Bots adding another client to socialinvestigator
Embedding 3d models on your page Github is awesome
Personal information from only a URL what can automated tools find out
Bot Design Patterns different ways to make different bots
Making a command line utility with gems and thor Any excuse to the use the phrase “Hammer of the Gods”
Making Yosemite Faster something is up with WindowServer
Field of Dreams is 25 years old and hasn't aged well if you build it, will anyone really come?
Bootstrap: Advanced Grid Tricks You really should be defining your own classes
- October
How to track your coworkers Simple passive network surveillance
- 1
- January
Popular posts by year