Here you can find all my posts:
I defer to my computer to check the validity of my scientific computations. In this post, I will describe typed dimensions, and showcase the software package that makes it possible.
Posted on 2024-11-20. Last updated on 2024-11-24.
I started a business, Powerweave. In this post, I explain what Powerweave is and why it is important to me.
Posted on 2024-04-05. Last updated on 2024-10-22.
Trading strategies with typed features using Haskell and type families
In this blog post, I show you the basics of defining typed features in trading strategies using Haskell.
Posted on 2024-02-04. Last updated on 2024-11-25.
I'm building a trading stop-loss system, and I have discovered that it forms a neat algebraic structure.
Posted on 2023-05-07.
This post shows how to design efficient rolling statistics routine based on recurrence relations, as well as implementations in Haskell.
Posted on 2023-03-23. Last updated on 2023-07-17.
Data is often noisy, containing a meaningful signal component as well as undesired perturbations. Many filtering techniques can be used to filter away noise. In this post, we'll see how to use discrete wavelet transforms to de-noise data.
Posted on 2022-11-23. Last updated on 2024-06-05.
Chesterton's fence is a principle which says that we should understand why things are the way, before we try to push for change. Cryptocurrencies based on the blockchain haven't demonstrated that they understand the reason for centralization of the current payment networks.
Posted on 2022-08-02.
Exploring the multiverse of possibilities all at once using monads
I'm working on a global optimization problem, trying to reduce the size of the solution set as much as possible. In this post, I'll show you how to build computations involving choices, such that we traverse the multiverse of possibilities all at once. This post gives an intuition behind the list monad in Haskell.
Posted on 2022-03-02. Last updated on 2023-03-30.
Can you make heterogeneous lists in Haskell? Sure — as long as your intent is clear
Haskell's type system might seem restrictive sometimes. For example, heterogeneous lists are not allowed. In this post, I show how to build heterogenous collections using existential quantification -- which requires us to be explicit about our intent.
Posted on 2021-09-26. Last updated on 2022-07-06.
The department of Physics at McGill University still requires PhD students to pass the old-school prelim exam. That may change in the near future. Here's why I think we should keep it.
Posted on 2021-06-12. Last updated on 2024-02-29.
Harnessing symmetry to find the center of a diffraction pattern
Diffraction patterns are very symmetric; how hard can it be to find its center?
Posted on 2021-01-23. Last updated on 2024-06-20.
This short post shows how I generate the banner at the top of this website programmatically using Matplotlib.
Posted on 2020-11-03. Last updated on 2020-11-05.
The masked normalized cross-correlation and its application to image registration
For my first contribution to open-source library scikit-image, I implemented the masked normalized cross-correlation. This post details the why and how this happened.
Posted on 2019-04-30. Last updated on 2022-02-20.
When one temperature is not enough: the two-temperature model
What if we could prepare a system with two distinct temperatures? What would it look like?
Posted on 2019-04-03. Last updated on 2021-12-14.
Example of a Pandoc filter to abstract away CSS framework quirks
A blog post on using a Pandoc filter to help integrate the Bulma CSS framework into this website.
Posted on 2018-09-12. Last updated on 2018-10-08.
I've been wanting to build my own furniture for a while now. This posts details how I built an asymmetric coffee table using concrete, for less than 100$.
Posted on 2018-09-10. Last updated on 2023-03-23.
In this post, I go over the process of generating this website using Hakyll and other tools.
Posted on 2018-08-02. Last updated on 2021-12-14.
This is the first post of my blog, where I test new features.
Posted on 2018-08-01. Last updated on 2020-05-22.