Sign in

Jan van Brügge

@jvanbruegge.cerberus-systems.de
41 followers 36 following 43 posts
PostsRepliesMedia
Jan van Brügge @jvanbruegge.cerberus-systems.de · 23/09/2026
On sunday, I was visited by this tiny jumping spider (finger for scale) 😍 I didn't even know we had jumping spiders in Germany ¯\_(ツ)_/¯
A small jumping spider looking at the camera. You can see its big eyes and armsThe same spider from the sideThe spider with a finger next to it, showing how small the spider is (roughly a quater the height of the finger tip)
100
Jan van Brügge @jvanbruegge.cerberus-systems.de · 29/08/2026
Looking good @paverson.bsky.social
Picture of my board game shelf with the Distilled Collector's cask box on the lowest shelf
010
Jan van Brügge @jvanbruegge.cerberus-systems.de · 24/06/2026
I was baffled when I learned that the english version of #FantasyRealms does not underline card names in the color of their suit like the german version does. it is way harder to tell if a given card works for the hand you're building or not. But this is nothing a few fineliners can't fix:
Serval cards from the game Fantasy Realms. If a card mentions another card by name, the name is underlined in the color of its suit. For example, the Hydra gives bonus points for the Swamp, which is a Floor card, so the name "Swamp" is underlined in dark blue
000
Jan van Brügge @jvanbruegge.cerberus-systems.de · 16/03/2026
Over the last three weekends, my father and I built what I call the ultimate board game shelf. I designed it in #FreeCAD and tried out the new assembly workbench in 1.0 (it's sadly not quite there yet, let's see if 1.1 fixes the issues) Now my collection has space to grow :)
010
Jan van Brügge @jvanbruegge.cerberus-systems.de · 12/02/2026
My mom just dropped by to give me the possibly best birthday cake @haskell.org 😅
A chocolate cake with a Haskell logo made out of marzipan on top.
0403
Jan van Brügge @jvanbruegge.cerberus-systems.de · 04/02/2026
Truly the quality we have come to expect from Microslop
A screenshot of a very broken GitHub mobile website
000
Jan van Brügge @jvanbruegge.cerberus-systems.de · 19/01/2026
Again, more vibecoding on Github, my future projects are all going to codeberg.org
A screenshot of the mobile GitHub website that shows the read me of the nixpkgs repo. It does not fill the width of the screen
010
Jan van Brügge @jvanbruegge.cerberus-systems.de · 07/12/2025
Don't you love seeing vibe coding out in the wild?
020
Jan van Brügge @jvanbruegge.cerberus-systems.de · 03/12/2025
Probably the stupidest way to approach advent of code day 1 in #Haskell, but I just love knot-tying too much
Screenshot of the following Haskell code:


data Elem a = MkElem
  { left :: Elem a,
    x :: a,
    right :: Elem a
  }

value :: Elem a -> a
value y = y.x

mkRing :: Int -> Elem Int
mkRing size = start
  where
    (start, final) = go final 0
    go prev !n =
      let x = MkElem prev n (if n == size - 1 then start else next)
          (next, end) = go x (n + 1)
       in (x, if n == size - 1 then x else end)

left :: Int -> Elem a -> Elem a
left 0 x = x
left n x = left (n - 1) x.left

right :: Int -> Elem a -> Elem a
right 0 x = x
right n x = right (n - 1) x.right

ring :: Elem Int
ring = right 50 $ mkRing 100
010
Jan van Brügge @jvanbruegge.cerberus-systems.de · 30/09/2025
#Haskell language server was just released and it includes my changes to the notes plugin. You can now use "find references" to see all the places that reference a given note
A screenshot of Neovim with the cursor on a GHC-style note. In a window on the lower screen it shows two file paths with line numbers and short previews of note references
1195
Jan van Brügge @jvanbruegge.cerberus-systems.de · 04/02/2025
Currently listening to a concert of the fantastic Anna Lapwood in Dortmund. Absolutely love it
Anna Lapwood on the organ in the concert hall of Dortmund
000
Jan van Brügge @jvanbruegge.cerberus-systems.de · 24/01/2025
110
Jan van Brügge @jvanbruegge.cerberus-systems.de · 20/01/2025
Really happy to see that people like the hls-notes-plugin for #haskell language server. Notes are just such a nice way to document code.
Github issue comment:
@jvanbruegge Just want to let you know, this plugin is awesome! It is awesome to explore a codebase using Goto Definition for the notes. It also motivates me to write more notes, as they are trivial to discover now and make it much easier to document architectural decisions.
This message is just to let you know, I appreciate this plugin a lot, I deeply underestimated how useful it would be!
020
Jan van Brügge @jvanbruegge.cerberus-systems.de · 05/12/2024
So, today I finished the most difficult #factorio build I've ever done. It's an automated crafting system where you can set what items you want in your storage and the system will craft them including intermediate products (!!). More details and the blueprint are here: old.reddit.com/r/factorio/c...
A complicated mess of combinators and assembly machines
020
Jan van Brügge @jvanbruegge.cerberus-systems.de · 28/11/2024
Look what they need to mimic a fraction of our power! #haskell
DO = (unit, bind) => f => {
    const gen = f()
    const next = acc => {
        const {done, value} = gen.next(acc)
        return done ? unit(value) : bind(value)(next)
    }
    return next()
}

// specific DO instance for Either:
doEither = DO(unit, bind)

With this, we can use a slightly weird, but much more readable do notation:

input = 42
result = doEither(function* () {
    a = yield divide(42, input)
    b = yield divide(42, a),
    c = yield divide(b, a),
    return c;
})
console.log(prettyEither(result)) // "Right 42"
0121