Explore my collection of blog posts.
The Intuition behind Convolutional Neural Networks
Before convolutional neural networks became popular, neural networks would often struggle with 2D data like image classification and image segmentation. In this article, we’ll dive into a bit of history to uncover the motivation behind convolutional neural networks, then understand the idea behind how and why they work.
Mar 28, 2024How to Hypnotise Yourself
Ever been curious about hypnosis? In this blog, we explore one of the simplest catalysts for hypnosis: selective attention, and briefly talk about the science behind it.
Oct 5, 2023Histogram Equalisation for Colour Images
Histogram equalisation is a staple technique to increase image contrast in greyscale images. In this article, we take a look into how it can be adapted to be applied to colour images.
Jun 6, 2023Support Vector Machines
A support vector machine is a powerful and simple machine learning architecture that used to be state-of-the-art in image classification. In this article, we delve into the intricacies of support vector machines and its applications in linear, non-linear, binary and multi-class classification.
Mar 1, 2023Voronoi Diagrams
Voronoi diagrams are essential in the world of technology. Its applications cover computer graphics, medical diagnosis, network analysis and fluid dynamics. In this article, we introduce the fundamentals of Voronoi diagrams and analyse one application in graphics: texturing and animating water.
Nov 15, 2022Benchmarking Loops in JavaScript
Back-end JavaScript and Node.js has been on the rise in recent years, so code performance analysis is necessary. This article presents a look into the performance of different ways to loop through an array in JavaScript.
Aug 19, 2022Freeing Up Disk Space on Mac (DIY)
Running out of disk space? Storage on Mac OS X gets used up quickly and mysteriously. This article is a comprehensive guide to freeing up disk space without tools like CleanMyMac. In the process of doing so, we’ll also discover exactly where all our big folders are. This article is written with respect to Mac OS X Catalina, but is perfectly applicable to other Mac operating systems.
May 28, 2022Bezier Curves
If you’ve ever worked with vector art, you’ve almost certainly come across Bezier curves. But what exactly are they? This article explains how to construct a Bezier curve, discusses where they are used, and describes underlying mathematics.
May 8, 2022The UCI Protocol for Chess Engines
Let’s dive into the world of chess engines and how they communicate with sites like Lichess and Chess.com. We’ll take an existing engine and implement a handler for a popular protocol called UCI. Finally, we’ll briefly look at how to connect it to Lichess.
Jan 15, 2024Setting Up Unrestricted ChatGPT Locally on Mac
ChatGPT and other AI language models have taken the world by storm thanks to their revolutionary capabilities. However, these online models are becoming more and more restrictive. Their responses are now flooded with disclaimers and warnings, and they also flat out refuse to answer some prompts. This situation will likely become worse with the impending AI laws. This article guides you to set up and run ChatGPT on your local computer that responds to any prompt. It is tailored towards Mac users (UNIX systems).
Jun 26, 2023Enhancing Greyscale Image Contrast through Histogram Equalisation
Image processing is an integral subfield of computer vision, a field which has been on the rise as part of AI. In this article, we take a look at histogram equalisation: an important tool to increase image contrast. We focus exclusively on greyscale images.
May 22, 2023On the Philosophy and Design Choices of this Site
Why does this site look the way it looks? In this article, I explain my choices and my vision, as well as a look into the web frameworks and tools used.
Jan 26, 2023Monte Carlo Tree Search
Monte Carlo tree search is a staple algorithm in the field of machine learning. It is employed by some of the leading AI in strategy games like chess and Go. It is also a relatively easy algorithm to implement. This article describes the methodology of the Monte Carlo tree search.
Sep 16, 2022Looping Through a List in JavaScript
This short article aims to explore and compare the different ways of looping through a list in JavaScript: for, forEach and for of.
Jul 16, 2022Programming Bezier Curves
In a previous post, we explore concepts of Bezier curves. In this article, we will write a program in JavaScript that draws Bezier curves. As a disclaimer, we will not be covering everything (e.g. using the JavaScript canvas), only the fundamentals. Nonetheless, the source code is provided.
May 8, 2022