Hugo's Blog

Wrestling with exponential compile times in GHC

posted on: Jun 09 2024

How type families can easily generate exponetially large types and how to fix it.

haskell

Cracking the Cryptic (with Z3 and Rust)

posted on: Apr 28 2024

Solving a crazy sudoku like puzzle using the Z3 bindings in Rust

Rust

MADS

posted on: Oct 09 2022

Making a math search problem 5x as fast and then 1000x as fast

Rust

Voronoi shading the web

posted on: Sep 18 2022

Creating a simple 2d shader with Rust and Bevy, and compiling it to the web

Rust

$ is the wrong way around (sometimes)

posted on: Sep 05 2022

Reverse application in functional languages is underappreciated

Haskell
Elm

3d normals are 2.0000001d

posted on: Jun 05 2022

How to compress a 3d normal to 2 floats for faster raytracing

c++
vulkan
glsl

Statically Typed Lambda Calculus as an Embedded Language

posted on: Jan 31 2022

Using type level programming to implement statically typed lambda calculus with strong correctness guarantees

Haskell

Solving newspaper puzzles with SMT solvers

posted on: Jan 05 2022

Letting Z3 do the heavy lifting to solve a frustrating puzzle

haskell

Higher Kinded Types in Rust

posted on: Dec 03 2021

Learning a new language: Hello World, prime numbers, then monads

rust

Demystifying the state monad

posted on: Nov 04 2021

Rediscovering haskell's state monad from scratch

haskell

Functional in the wild: typeclasses

posted on: Jul 03 2021

How C++ template can be (and are) used to create typclasses

haskell
c#
c++

Sudoku solving

posted on: Apr 04 2021

Solving sudoku's with an ILP model

python

Who still uses ReaderT

posted on: Mar 18 2021

How haskell's ImplicitParams extension could deprecate ReaderT

haskell

Shining light on a die

posted on: Mar 12 2021

Pathtracing or how I learned to stop worrying and love the nested integral

C++
cuda

The kernel is on fire

posted on: Sep 04 2020

A full tutorial on making a fire effect using a kernel on the gpu

c++
glsl

A Hacking Bootcamp

posted on: Jul 22 2020

Challenge the Cyber bootcamp 2020, a first hand account

A Boomerang Proof

posted on: Jun 05 2020

Solving and proofing a children's math puzzle

C++
haskell

The fun of playing with shaders

posted on: May 05 2020

Why leveraging the GPU to serve your imagination is utterly enjoyable

C++
glsl

C# can be functional pt2: Lists are Monads

posted on: Jan 04 2020

An experiment to see if a list can be implemented as a monad in C#

C#
haskell

C# can be functional pt1: The Maybe Monad

posted on: Dec 15 2019

Piping the power of haskell to the world of C#: Theorists' wet dream or awesome idea?

C#
haskell

The Knight of Hamilton

posted on: Dec 02 2019

An epic tale of a struggling knight, tasked with finding a 'Knight's Tour'

python

Making a blog website

posted on: Nov 01 2019

Creating a static html blog managed with a python CLI

html
css
jinja
python