Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 48
  1. Local Hoogle

    Contents Hoogle patches Proof of concept: read haddock-html field from ghc-pkg entries Proof of concept: make generate --local respect GHC_ENVIRONMENT variable Cabal patch Usage Hoogle didn’t work when I tried to use it for local documentation search, so I

  2. Finishing BioShock

    In October 2025 I finished playing BioShock.

  3. Doing the "right" thing

    Over the course of this decade, when faced with a choice I’ve often wondered which option is the “right” one for me.

  4. 2025 Project Review

    Contents Blog Type-passing compilation mdpreview LastPass to KeepassXC migration GMail to Fastmail migration Devops practise Feeds for YouTube subscriptions gen-alias PDF form filling web app Learning PDF Talk: A “third way” of compiling polymorphism Expe…

  5. Removing Disqus

    Disqus recently sent me an email, warning that (thank you) they will soon enable ads in my site’s comment sections (no thank you).

  6. Smalltalk and Lambda Calculus

    Contents Boolean objects (Natural) number objects Lambda calculus Objects ↔︎ lambas Thoughts In Smalltalk, everything is an “object”.

  7. A Haskell "Foldable" quiz

    How does GHCi respond to fold [] 42?

  8. Paying for KeePassXC

    KeePassXC is a password management program.

  9. We just experienced a tiny earthquake!

  10. Reply to Standalone relational storage engines?

  11. Contents Setup Exploration Thoughts and ideas I was working on my (currently private) YouTube feed reader project, watching the dependencies build after I upgraded the GHC version, when I noticed an odd transitive dependency: happy. happy is a parser gene…

  12. Context menus

    I got an email that had an unfamiliar time zone in it.

  13. Contents Finding the GHC package database used by Cabal Package database analysis Thoughts and ideas I wanted to do some dependency analysis of a Haskell project, and I wanted to see what it was like without installing a Cabal-specific tool such as cabal-…

  14. 2024 Project Review

    Contents Blog Self-hosted GitHub CI runners citools Using linear algebra for quantitative queries Travel planning web app Nix Flakes for NixOS configurations basque opstools Improved cd command git-format-staged Git CLI overhaul Haskell build tool experim…

  15. My Git CLI overhaul

    I split this out of my 2024 project review because it got too long.

  16. In Praise of ZSA

    ZSA makes ergonomic keyboards.

  17. Unfettering the imagination

    xeval is a small and not particularly useful program that arose from an important thought process.

  18. Contents Background The encoding Example: streams Example: (co)lists Summary Proof Future work Appendix: philosophical ramblings Infinity as an object Codata via Π\Pi -types Agda’s sized types are inconsistent.

  19. Per-project Nix substituters

    Contents Setup Without Flakes With Flakes A lot of Nix projects end up with their own binary cache (also known as a “substituter”).

  20. Contents Summary Symptoms Solution Details Recently I’ve been tweaking the appearance of my desktop environment, which consists of XMonad and Taffybar, with LightDM as the display manager, all tied together using NixOS and home-manager.

  21. 2023 Project Review

    Contents Ipso Ipso scripts Laurel Blog site generator improvements Music: “Neon Rain” Music: “Resurrect” Nominal Sets Hover Pill 2D visibility tests 3D graphics fundamentals Low-level IR compiler Parametric polymorphism in cartesian closed categories Talk:

  22. Diablo 1 in 2023

    Contents Music Setting and Story Gameplay Conclusion I didn’t know another Diablo game was coming until I saw advertisements for Diablo 4 on buses around the city.

  23. Nominal Sets

    For years I’ve used De Bruijn indices, in part because of Haskell’s bound library, which abstracts (pun intended) De Bruijn indexed binders in a simple and type-safe way.

  24. Here are the proofs for my Nominal Sets article.

  25. Gear Acquisition Syndrome

    Over the past few years I’ve become wary of a certain feeling related to my artistic hobbies like drawing and music production: the sense of excitement and “motivation” after I’ve acquired some new art-related material.

  26. Migrating from Jekyll to Hakyll

    Contents Background Changes Prettier URLs MathML support Syntax highlighting Thoughts I’ve just finished migrating this site from Jekyll to Hakyll.

  27. Web Resources I Enjoy

    In this conversation, Sam Harris and Cal Newport talked about how we use the world wide web, how it has become extremely centralised around a few social media platforms, and the role of recommendation algorithms in this system.

  28. 2022 Project Review

    Here’s a review of all1 the programming projects I worked on in my spare time this year.

  29. RIP Dream.In.Code

    Dream.In.Code was a programming help forum that ran from 2001 to the beginning of 2022.

  30. WebGL Slower Than Canvas?

    I’ve recently been working on web a graphics project where I played a Canvas API implementation against a WebGL implementation.

  31. I’m an experienced Haskell programmer, and I’ve been writing a lot of Rust lately.

  32. Docker Cleanup Commands

    I’ve Googled this one too many times, so I’m writing it here for future reference. #!

  33. Memory-sensitive languages like C++ and Rust use compile-time information to calculate sizes of datatypes.

  34. Lambdas are Codatatypes

    I was first clued into this a while ago by a comment on Bob Harper’s blog that “exponentials are coinductive”, but it only really clicked for me today.

  35. I’ve been using Agda on NixOS for a while (mostly via agda-mode in Emacs), but I remember it was a bit difficult to get going the very first time.

  36. In this Twitter thread, Eugenia Cheng talks about how she presented at a conference for women in STEM, and was confronted by a white guy who felt ‘called out’ by some of her anecdotes.

  37. Learning a Craft

    I remember when I first learned about computer programming, around 2008 or 2009.

  38. Writing

    I think writing can help us think better.

  39. On Programming Language Design

    In his propositions as types talk, Philip Wadler contrasts programming languages that have been ‘invented’ with those that have been ‘discovered’.

  40. I love bound - it makes De Bruijn indices mindlessly easy.

  41. A certain algorithmic puzzle website has a problem that goes like this… Given a grid of integers, find the largest product of n numbers which are adjacent in the same direction (left, right, up, down, or diagonally) In this diagram, A, B, and C are diagon…

  42. It’s difficult to learn functional programming without hearing about continuations.

  43. NixOS is a Linux distribution with declarative configuration management.

  44. Introduction to Unification

    Unification is a vital process in the implementation of Hindley-Damas-Milner type inference.

  45. Why LINQ (well, C#) is Broken

    LINQ is a system that provides a flexible query interface for .NET languages.

  46. $ sed -i "s/pattern/replacement/g" FILES The Story Last semester I had to write a static website by hand with no templating resulting in a lot of duplicated code across multiple pages.

  47. With so many programming languages and frameworks at our disposal, it is too easy to believe that knowledge of many tools is the defining characteristic of a good programmer.

  48. Monad transformers combine the functionality of two monads into one.