Designing a hash function where the order of inputs doesn’t matter is surprisingly easy.

 July 25, 2021
 9 minutes
On MultiSet Hashing 
 July 18, 2021
 9 minutes
Quantum Computing: Some AnalogiesI’ve developed a few intuitions about algorithms on quantum computers. This post is an attempt to share them.

 July 10, 2021
 13 minutes
Signatures From Identification SchemesIt turns out that all you need to make a signature scheme is a way to prove your identity.

 July 05, 2021
 15 minutes
Introducing NuntiusRecently, I made a toy E2E encrypted messanger, called Nuntius. I had fun tinkering on it, and thought that some of the cryptography involved would be fun to explain.

 June 06, 2021
 16 minutes
Introducing NimotsuRecently, I’ve been working on a little encryption tool called Nimotsu. My goal with this project was to implement all of the cryptographic primitives involved. I had a lot of fun doing so, and thought it would make for an interesting blog post.

 April 05, 2021
 23 minutes
ConstantTime Big Numbers: An IntroductionOver the past couple months, I’ve been working on a library for constanttime Big Numbers in Go. I think it’s about time that I presented a bit of this work.

 February 28, 2021
 10 minutes
Some Thoughts on Numeric ClassesThis is just a quick post, crystallizing some of the ideas I’ve had recently about organizing numeric classes in Haskell.

 February 21, 2021
 6 minutes
Fractals on The WebLast week, I made a little web application for visualizing some fractals, and I thought I’d write up a few thoughts about how it works.

 February 14, 2021
 11 minutes
Spaced Repetition for MathematicsRecently, I’ve been experimenting with using spaced repetition for selfstudying “advanced” mathematics. This post goes through my motivations for adopting this system, as well as a few techniques I’ve used in adapting it to mathematics.

 February 02, 2021
 17 minutes
Tychonoff's Theorem and Zorn's LemmaTychonoff’s theorem proves that the product (even infinite) of compact spaces is also compact. The proof makes judicious use of Zorn’s lemma. In fact, it uses it so well, that I gained an appreciation for how fun the lemma can be.

 December 13, 2020
 12 minutes
Chinese Remainder Theorem for ProgrammersThis is a quick post about the Chinese Remainder Theorem. Specifically, how to use it to solve a system of system of simple modular equations.

 October 14, 2020
 8 minutes
Monty Hall and CounterfactualsThis is about some shower thoughts I had recently about the infamous Monty Hall problem. Namely, how to make sense of the counterintuitive results involved. We’ll see how reasoning counterfactually can make the best strategy seem a lot clearer.

 October 02, 2020
 9 minutes
Categorical GraphsThis post is a basic introduction to the idea of Categorical Graphs, or just the standard theory of Graphs, developed through the lens of Category Theory, and generalized in the obvious ways that follow through that lens. This is just an introduction mainly because this theory doesn’t seem to have been developed very far yet, and I haven’t been able to develop it that much independently so far. I think I have a good grasp on some very basic ideas here, and wanted to present them while they’re still fresh in my head.

 September 09, 2020
 10 minutes
Recursive Types as Initial AlgebrasRecently (well, more like a month ago), I came across this interesting observation: In my head, I immediately jumped to the notion of Algebras in Category Theory. I had recently studied that notion, found it quite interesting, and was very happy to see this observation, because it was actually quite obvious to me thanks to what I’d recently learned. The goal of this post is to unpack that tweet, and then explain why that observation is true.

 August 30, 2020
 17 minutes
Encoding the NaturalsIn this post, we’ll cover 3 ways I know of encoding the natural numbers $\mathbb{N}$ in your standard functional language with recursive types and polymorphism. At least, these are the 3 most generalized ways of doing it. As we’ll see, some common encodings are just specific cases of a more general encoding. Prerequisites Some familiarity with defining data types in a functionalesque language might be helpful, but shouldn’t be strictly necessary.

 August 17, 2020
 14 minutes
Empty vs NonEmpty GroupsThe usual definition of a Group excludes empty groups by definition. There are alternate definitions of a Group that allow us to include the empty set, and which are quivalent to the normal definition in all other cases. This post explores this alternate definition, and the resulting differences with the normal concept of a Group. What is a Group? A Group is one of the most important structures in abstract algebra.

 June 18, 2020
 7 minutes
Monomorphisms vs EpimorphismsThe concepts of monomorphism and epimorphism are very important in Category Theory. I always had a hard time remembering which one was which until I thought about a good mnemonic.