Chumsky Parser Combinator Review: Truly Parser Combinators for Humans

Lambda Calculus: Part II As I recounted in my previous post, I’ve been enthralled in studying higher-level CS in my free time. Lambda Calculus has long been a particular interest of mine, so I recently took to writing a Lambda Calculus interpreter. The interpreter takes in a lambda expression and attempts to reduce it, step by step, or to infinity–or termination. As usual, I grew bored with the project with time and eventually decided I was content with its degree of completion and correctness. As of writing, the interpreter can reduce church encoded arithmetic and list expressions, and attempt to reduce the paradoxical combinator, step by step, or by causing a stack overflow. Surprisingly to those who will peruse the source code, almost all of the components are handwritten. It uses no parsing libraries and has no dependencies, aside from, implicitly, Rust’s standard library. This was a mistake. ...

November 18, 2024

Thinking in Lambdas

Note: this post will likely be one in a series detailing my experience writing a lambda calculus interpreter My First Abstraction Around the age of 14, I decided I wanted to learn Haskell. Haskell is a language that is notorious for its learning curve, with many simple tasks requiring at least a superficial understanding of higher level math concepts (e.g., “a monad is a monoid in the category of endofunctors”). Haskell, unlike many other languages, adopts a theory-first, applications-second philosophy. That is, while more widely used languages like Python and JavaScript bear relatively minimal cognitive overhead when writing programs, and very little background knowledge to be productive, Haskell requires an understanding of its theory to write code that even compiles. That is to say, while other languages are a means to an end, Haskell is an end in and of itself. ...

November 6, 2024

NixOS: Fearless Ricing

Rice: Noun or Verb? Ricing, in the Linux community, is the practice of configuring a system to match the user’s aesthetic or functional goals. Ricing is primarily achieved through theming UI elements according to a desired look, though users frequently receive praise for other customizations, including niche or rare operating systems, shells, and window managers. r/unixporn is the de facto home for “ricing,” on the internet, with 500K members as of writing. r/unixporn is a diverse collection of both the beautiful and the ugly in the ricing community. Making an aesthetically pleasing “rice,” these days is not particularly difficult. Window managers like Hyprland, provide built-in support for so-called “eye candy.” Hyprland comes out of the box with see-through blurred windows, smooth animations, shadows, rounded corners, and standard window management features that automate window placement according to specified layouts, allow for multiple workspaces, and provide keyboard shortcuts for moving between and transforming windows. Since Hyprland’s release, r/unixporn has become inundated with cookie-cutter “rices:” Hyprland + Arch Linux + Wayland, and call it a day. Here are a couple of examples of such rices: ...

November 1, 2024

Hello world

Welcome to my personal website, where I will document my creative and intellectual pursuits. Expect topics ranging from my newest Rust passion project to my amateur research around my latest obsession.

October 25, 2024