Zurich hack 2022 Denotational Design []

zurich hack logo, uwu

This blog post and after action report is three months overdue, but I participated in Zurich hack 2022. Zurich hack is a voluntary hackaton organized in Rapperswil-Jona 1, with as theme improving the Haskell ecosystem and socializing. Naturally I chose to work on the

Restoring mysql innodb on windows. []

Over the weekend a company had a power outage, causing corruption to the on premise hosted mysql innodb database. This means the company can’t do any work, so I had to fix this fast before they opened again on Monday. It’s not trivial because the system runs on windows, which

Failing in Haskell []

I’m a Haskell failure, don’t tell anyone!

Recently I encountered some dubious error handling code. Not only was it failing, it was failing WRONG 1. This frustrates me because doing failing correctly in Haskell is quite easy, so why was it implemented wrongly? I believe no-one has addressed failing

Installing a NixOS desktop tracked with git []

A few years ago I wrote a post on installing NixOS on encrypted btrfs. I recently went trough that guide to install NixOS once more. It is good, but it has some issues:

  1. btrfs: Which I no longer use due to performance concerns.
  2. git: This requires some special

A brief intro to MTL []

mtl-header

Recently a blog post came out which I quite like, it describes how to use the concrete base transformers. It’s very thorough and gives a concrete example for using transformers. Although it looks quite low level and I think you’ll get more out of transformers by using full

The Nix mutli-monolith machine (NMMM). []

a NMMM computer

I redid how my services are structured. Instead of running each project on a separate VM, they’re now all running on a dedicated Hetzner machine. This is what I call the nix multi monolith machine (hence forth called NMMM, pronounced like tasting something delicious prefixed with an

Using git for templates []

Over the past few years I’ve started using git as a template management tool1. For example, I clone my haskell template project, edit the names, edit the readme end re-setup the remotes:

git remote add template git@github.com:jappeace/haskell-template-project.git
git remote set-url origin git@github.com:jappeace/new-project.git

This allows me to keep

Hacking atom []

On my twitch stream I had project where I made a CRT scan line monitor in atom:

The inspiration was the fallout pip-boy. I though it would be cool to have this be in your editor, maybe some of the gray beards are nostalgic for this?

What amazes me

Ghcid for multi package projects []

GHCID magic

When I tried Ghcidfor a reflex project, it wouldn’t rebuild on file change. This is because reflex has a multi package project setup by default. Recently I found that it is possible to use Ghcid for multi package project builds. The trick is to create an executable

Pinning nixops builds []

Pinned nixops

On one machine my Nixops builds and deploys, but on the other one it fails. Why? Isn’t nix supposed to deliver reproducible builds? Turns out nixops uses by default your system configurations’ channels rather then a pinned nix packages. Which is not why you’re using nix