Do you have your "favourite" server that is responsible for just a tiny number too many things ? I know I have one, it's my CI runner, but also serves as a platform to experiment with local LLMs, but also is a Nix builder for all other machines I have. Lots of responsiblities ! Luckily, I don't need it to do all of those things at the same time, it just didn't know that previously. I would run a…
So much to say on the Fediverse and so little characters of text per post ! Well, at least on Mastodon. But fear not - someone smarter than me figured out what files to patch to increase the limit . As I am increasingly lazy, I dreaded the change as it would mean I would need to reapply the patch whenever I redeploy the server, which is more often than I want to admit. Nix to the rescue ! { pkgs,…
I've been moving more and more of my infrastructure to be self-hosted recently. Part of that involves setting up CI jobs for testing and publishing artifacts, mostly rust crates but also this very blog. I really wanted to re-use my existing Nix flakes for those projects, this way I know my local dev env would be the same env then used on CI . I am self-hosting a Gitea instance (will probably be…
This is just a quick info that this blog is now self-hosted by yours truly. I'm using a small server at Mythic Beasts . I have a small CI situation going on via (self-hosted) Gitea Actions, it rsync s the contents to the server. Good old nginx + rsync and that's it. I took this as an opportunity to hook up htmltest and it highlighted that a lot of places I linked to no longer exist or have moved.…
If you're here to learn about how to set up a Mastodon server on NixOS the easy way - you can use services.mastodon.enable = true; and take it from there ! This post does describe a bit more convoluted setup than that. I've been on the fediverse on and off since friendi.ca started to be a thing. I remember hosting an instance at ponk.pink that suddenly got popular and the server melted away while…
I wanted to host my ssh server on a different port than the default 22 , this allows me to skip on some spam in the logs, as the default port gets scanned quite often. By changing that on the server I broke distributing my nix builds, as they were using the default port as well. It took me a while to figure out how to configure the port the builder would use so I thought I would share here. Here's…
Hey, I wrote a thing. Thing being a piece of software. I have a collection of photos & documents that I really care about. I synch them between computers using syncthing and also run backups regularly. What I didn't have was a way to quickly detect bitrot. Enter legdur legdur is a simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a…
Want this great feeling of entering a directory and having all your dev setup done but can never remember how to set up nix flakes ? What you'll need is, in addition to a working direnv with nix and nix flake enabled, is: .envrc : use flake .gitignore : .direnv/ flake.nix (this nixpkgs hash points to the first revision with zig 0.9 present): { inputs = { nixpkgs = { type = "github"; owner =…
For something very different this time, a quick recipe for a very specific situation. One of the very few fiber-to-the-home solutions in the UK is through Cityfibre, sold as Vodafone "Gigafast" packages where I live. As with other ISPs they give you their own internet router. If you would like to use your own, here's how. TLDR; Obtain PPPoE credentials specific to your account from Vodafone, then…
Update 2023 - updated links to the most current code store - git.cyplo.dev instead of sr.ht Hello and welcome to the second edition of me doing a summary of the year of using tech tools. Here's a list of software and some hardware I find useful, either things that I use daily or things that make an unusual task pleasant instead of incredibly difficult. This is constantly evolving, so please mind…
Being able to precisely control what failures in underlying systems occur and at what time can be really useful in achieving a fast and stable test suite. While I am a big proponent of dependency inversion and being able to control dependencies via the explicit injection points in your API, sometimes it's impractical to do so. This is where fail can help us immensely, providing an escape hatch for…
I like baking, as it can be something that does not involve any computers. Please have this recipe for cornbread, based on buttermilk and baked in a skillet. As for baking goes, this recipe is quite forgiving and you don't need to watch ratios as closely as with others. Ingredients This is for a 20cm (8") skillet, which gives you enough bread for you and one other person to enjoy over a weekend.…
Update 2023: my dotfiles are self-hosted now at git.cyplo.dev ; They also have a different structure than described here; I've removed now-dead links to github. Here's a list of software and some hardware I find useful, either things that I use daily or things that make an unusual task pleasant instead of incredibly difficult. This is constantly evolving, so please mind the publish date of this…
I am fascinated by the concept of fuzzing. It fits well with my desire to test weird code paths by using more of computer's time and less that of a programmer. What is fuzzing ? It's a type of automated testing, especially good with finding edge cases in your code. It runs totally outside of your code and knows nothing about it - it just throws random data at it. Modern fuzzers instrument your…
Hello ! As you may have noticed - this website looks different now ! Why is that ? I've not only changed the visual theme but also a lot of underlying infrastructure. Let's start with describing the old setup and see where we can improve. The site previously ran on Nikola , was built on Travis and then pushed to Netlify , which I later changed to Github Pages . While it worked it had some issues…