I’ve been working on standardizing each of my projects onto some common infrastructure and patterns. Nix flake with build targets for everything, including tests/linting Nix devshell for development deps Github Actions with a shared repo of reusable workflows* Official documentation in a top-level ./docs folder The ./docs folder at the root of the project holds all the user and developer…
I personally believe that if you are writing Open Source code using an ‘AI’, the morally correct license is the most viral copyleft license possible - AGPL. (I know you’re judging the em-dash, but this article was fully written by me, a real human) I used to license all my code as MIT, but with how large corporations have continued to take advantage of and abuse permissive…
For my latest quixotic project I decided to develop it in an unstable, “feature-first” manner. The exact opposite of how I usually develop software. In the past I’ve usually tried to write code in a sort of “bulletproof” style, with every change and feature being over-engineered, over-tested, and fully reviewed before merging to main. Very similar to how TigerBeetle…
I just got back from spending 3 days of my time and more than $1000 to travel to and attend a conference. For my “side-project” Eidetica . What can I say, I’m a tech geek with free time and I had some room in my budget. I didn’t socialize/connect/chat very much as usual, but that wasn’t the point this time. I wanted to see and hear in person from other projects in the…
Can you use a CRDT as a Database? I’ve been thinking about this a lot, and my answer is a resounding… Maybe Depends on your data, and your use case. If your data is a good fit, and you’re ready to take on the quirks associated with doing so, I’m working on a batteries-included, decentralized DB that will store/track history/sync/query/authenticate/encrypt for you. Choose…
Discuss and yell at me on Reddit along with the people who didn’t have time to read the 1263 words in this post but somehow did have time to read all 188,283 words from the candidates: https://old.reddit.com/r/NixOS/comments/1onhpbt/i_let_ai_vote_for_me_in_the_nix_sc_election/ Update: Something I did not realize until later, there were 24 candidates and approximately 550 eligible voters.…
I am working on Eidetica , an OSS project that may one day be a good backend for apps to store data. It is primarily useful as an open library for free software to use but may be valuable enough for companies to use and pay for. What !%&*-ing license should it have? I basically want a license that says “ use it for free, but if you make money you have to pay for it. ” I don’t…
Warning, I’m about to get on my mild OCD soapbox again. Too many development tools expect to get the privilege of a config file in the root directory of my projects. Many of them don’t even allow it to be a hidden file—they just require a fully unhidden “tool.yml” file sitting right there in the root of your project. Stop it. Please. Linux HOME Directory Link to heading…
Back in the day I honed my optimization chops while working on Project Euler problems. I was dumb and young, and most of the things I tried were pointless, but I did stumble on a technique that I have kept using in the nearly 2 decades since. Write the slow version first Link to heading Project Euler problems have the stated intention that all of the prompts should be solvable in less than a…
EDIT: Apparently I’m not alone in feeling this way, here’s a post from the same day I posted this: All LLMs Will Be Sparse BitNet Hybrids I took a break from working on my decentralized DB to dive into the latest LLM research. As usual, I focused on opportunities for optimizations and performance improvements. This post is mainly a summary of my private notes I made while…
If you’re old enough you may remember “Antennagate” from 2010, when iPhone users were told they should avoid gripping the phone in certain ways. The phrase “you’re holding it wrong” became shorthand for blaming users instead of fixing bad design. Apple, of course, was trying to blame users instead of admitting their own problems. But here’s the thing:…
I’m stepping onto my mild OCD soapbox today. But I needed to get this out there. Base 10 was a mistake. I want to curse the evolutionary gods for giving us 10 fingers instead of 12. The Problem with Base 10 Link to heading Our decimal number system is built on an accident of human anatomy. We have ten fingers, so we count in base 10. That’s it—that’s the entire reason. We’ve built our…
Disclaimer: I am a Software Engineer. I am not an Economist, nor am I a Lawyer, and even I know that this isn’t as simple as it sounds. TL;DR - I’m proposing that we allow copyrighted material to be used for training AI models, and in return we should institute a new tax on the profits from those AIs. The current crop of AI models are not possible without utilizing large amounts of…
An AI assistant has become an invaluable part of my development workflow over the past year, especially over the last several months. I started with Copilot, switched to Cody for a few months, and am now using Continue.dev. I was really happy using Cody (made by Sourcegraph ), and was happily recommending it to friends, so I wanted to lay out why I stopped using them and switched to Continue.dev.…
You’ve heard of SaaS and IaaS , so I wanted to get in on that. But, you know, not make any money from it. Background: What is Chaz ? Link to heading I already announced Chaz , but now I’ve made ChaZ . Chaz is my Matrix bot that hooks your chats up to the LLM of your choice. Chaz hooks up your normal Matrix client with the LLMs, you can even add images into the conversation if the…
# These three commands are all equivalent pokem !RoomID:jackson.dev Backup failed! pokem --room !RoomID:jackson.dev Backup failed! curl --fail -d 'Backup failed!' pokem.dev/!RoomID:jackson.dev pokem Backup failed! # Will send to your configured default room pokem error Backup failed! # Will send to your configured room named 'error' pokem --room error Backup failed! # Same as above # It also…
June 6, 2024 This is mostly a demonstration of what Windows Recall actually seems to do under the hood, and is not meant to be seriously used. Here’s the code, I have more to say after: #!/usr/bin/env bash if [ ' $1 ' == '--daemon' ] ; then MD5LAST = '' while true; do # Use the current date and time for the screenshot filename FILE = ~/recall/ $( date + '%Y/%m/%d/%Y-%m-%d-%H:%M:%S' ) mkdir…
Chaz is a Matrix bot that connects you to a large number of LLM models. It is a replacement for the Chat interfaces that you might be used to when working with LLMs. Code repository Instead of dealing with each company’s custom interfaces, this just moves your chats into Matrix with all the features of your favorite Matrix client. (Chaz is written in Rust, and while building this I also…
March 20, 2024 I’ve used NixOS exclusively for several years now, and it’s occasionally useful to have an “escape hatch” into a different distro. For certain tasks NixOS is more difficult than it needs to be, so being able to run a task in Ubuntu/Arch/etc has saved time by not having to deal with the Nix configs. For example, I work with a lot of different software…
Updated May 21, 2025, with a better script example All of my personal scripts with more than a few dependencies start with the Nix-shell shebang : #!/usr/bin/env nix-shell . Regardless of what language they are written in. That only works if nix is installed, so it is difficult to share with others who may not use nix. If I want the script to be shared with other people, I instead use something…
Updated October 3, 2024 Updated with help from @poz and others who have reached out with suggestions. I’ve now been using Nix , the package manager, fulltime on my personal machines since 2021. I run NixOS on my personal desktop/laptop and VMs, so I have some reasonable experience using it. I really enjoy using Nix, and think it’s a very useful tool, but it definitely needs a lot of…
October 28, 2022 After using Tailscale to manage my Wireguard VPN for the past few months I decided to migrate my network off of it to my own custom configuration. I found that I didn’t need any of the extra features that Tailscale enables, and I enjoyed learning how to manage everything myself. With NixOS, I was able to recreate the ability to do Endpoint migration to make things a little…
September 13, 2022 I have been toying with learning Rust for the last few years, but since I wasn’t able to use it at work it never really stuck with me. Throughout my career I mainly worked on low-latency C/C++ systems, and on performance engineering work directly (benchmarking, optimization work, etc) and Rust is trying to play in the same ballpark. Since retiring at the start of this year…
If you enjoy something, you’ll tend to do it more often. Obviously. However, there tend to be a lot of things that you know are good for you, but that aren’t exactly enjoyable. Today we’re going to try to fix that through a technique I call Stimulus Bundling; the goal of which is to make those healthy but boring things more enjoyable. The example I’ll be using today is…
Today I’m going to talk about something that may seem a little off-topic; you need to have better passwords for your online accounts. This is probably not news to you. Every time a big website gets hacked there is a flood of news stories about the dangers of weak passwords, but it always dies down quickly. You might feel guilty about using ‘123456’ as your password for a couple…
Recently I’ve been trying to lose a bit of weight. Not a lot, just 10-15 pounds. I’m relatively fit but I’ve packed on a little bit of unwanted fat over the years. For a few months I did the easy thing. I said to myself ‘Hey, we’re gonna lose weight now,’ then proceeded to do mostly nothing. I was arrogant enough to believe that because I wanted to lose weight,…
Feeling like you’re working hard but not getting anything done? As if you don’t know what you actually accomplished in the past month or 3? The simple truth is: you’re disorganized. I’m not talking about how clean your home is, you are disorganized in how you manage your time. Your productivity system is in shambles. Sure, maybe you have all 327 tasks you need to do saved…
On a cold winter night in 1964, Catherine ‘Kitty’ Genovese was attacked outside her apartment in Queens, New York. Coming back from work at 3 a.m., she was stabbed in the back but managed to scare away her attacker. Several minutes later her attacker returned, raped her, and ultimately killed her. The New York Times reported that 37 or 38 people witnessed the murder, but not a single…
I have a problem with traditional bucket lists. Most people make a ‘bucket list’ at some point in their life. It’s simple in concept; you sit down and make a list of all of the wonderful things you want to experience before you die. There’s certainly nothing wrong with that, it’s great to have a list to remind you of all of the things you dream of doing. The problem…
Self-actualization sits at the peak of Maslow’s Hierarchy of Needs, and while you may not have heard the word it’s what you’ve been searching for out of life. To get there we need to internalize the differences between our ideal self and our real self, which is what we’re going to examine today. I think Maslow put it best by defining it simply as “the full realization…
Ensuring that every child has access to a quality education is one of the most important things we can do as a society. Unfortunately we seem to be pretty bad at it. And I’m not just talking about the U.S. (which ranks about average among developed nations, while spending much more per student). Every school system is stuck in the past. It’s not entirely the fault of those working in…
Think of a fictional character that you admire. It could be from a movie, a book, or maybe your favorite video game. Pick a character that brings you joy. Someone who is entertaining to watch and read about. This character should have a life that is a great story, since that’s what the movie/book/game is about. Most importantly pick a role model, someone who you want to emulate. Someone who…
Today I’m going to talk about why people believe stupid things. Like really stupid things. Things that are so clearly wrong that these people must have something wrong with their brains. By that I mean that this is another article on Cognitive Biases . And by ’these people’ I mean everybody. Since the US in currently in the midst of its presidential primary election season,…
120 years ago, an Italian economist named Vilfredo Pareto discovered a similarity between the landowners of Italy and the peas growing in his garden. This observation led to a now common rule of thumb in business known as the Pareto principle. You may have heard it called the 80-20 rule. The Observation Link to heading Pareto made his initial observation by looking at the distribution of land…
I’ve noticed a disturbing trend recently. Not that it’s a recent trend, I’ve just begun to notice it. People are irrationally afraid of things that they will likely never experience. As an example, let’s look at terrorism. More people seem to be afraid of getting killed in a terrorist attack than they are of being killed by cancer. That fear is mind-bogglingly irrational.…
The fatal mistake made by almost everyone when trying to improve themselves is to take on too many things at once. You see this all the time in people’s New Year’s Resolutions. I’m going to eat healthier AND I’m going to workout everyday AND I’m going to finish that knitting project AND I’m going to journal everyday AND … It doesn’t work. Few people are…
For the past month I’ve been foregoing my usual steaming hot shower for a cold one. Not everyday, that habit is a hard one to break, but the majority of the time I voluntarily froze myself in pursuit of science. I try a lot of crazy shit on myself, so let me answer the usual questions even before we get started: Yes, it’s difficult and uncomfortable. No, I’m not crazy. Yes, I…
This is part of a series of articles examining Cognitive Biases. Go here to view the rest of the series. The False Memory Bias has been on my mind recently due to an (un)fortunate binge-watching of Netflix’s documentary series Making a Murderer. The documentary covers the trial and conviction of Steven Avery for a crime he did not commit back in 1985, his release based on DNA evidence in…
I’m not very good with portion control. Not only in terms of my eating, but in terms of everything in my life. I can’t watch just 1 YouTube video, or just 1 episode of a TV show. I can’t play a video game for only an hour. I can’t drink just 1 beer. I can’t eat just 1 piece of chocolate. I don’t think I’m alone in this. Binge watching Netflix is normal for a lot of people I know, and it’s even…
If you’ve never been exposed to the idea of Cognitive Biases, you are probably under the impression that people are typically rational. Sure people are misinformed or uninformed or may have a different value system, but you assume that they probably make decisions consistent with the facts that they have. Unfortunately that’s just wrong. The human brain is the most complex known object in the…
In a landmark 1998 study , 67 people were tested to try to determine if willpower was a limited resource. The scientists were able to show that they could deplete willpower in their test subjects through a very simple mechanism, chocolates and radishes. The experimenters setup a waiting room with a tray of snacks; half the tray filled with radishes and the other with chocolates. One group of…
There’s something about this time of year that inspires everyone to reflect on their accomplishments and look towards the future. There’s nothing inherently special about January 1st, it marks nothing of note in the natural world; the only thing significant is that the last digit of the date changes. Still, it’s a time for many to make their New Years Resolutions. Almost everyone makes them it…