May 26, 2026 - Finished reading this paper by Judy Hanwen Shen and Alex Tamkin on “How AI Impacts Skill Formation”. The study found that software engineers who overrely on AI do cognitive offloading, which means that they do not learn new skills as well as non AI using developers do. If you’d like to know more, I’d recommend reading this article.

May 25, 2026 - Moved my site back to GitHub Pages - I want to get rid of the laptop I was hosting it on.

May 3, 2026 - Studied specification for next functional programming course project and started studying lambda calculus.

April 30, 2026 - Gave talk on my compiler.

April 29, 2026 - Prepared to give talk on my compiler.

April 28, 2026 - Yesterday I listened to Grand Sanderson’s appearance on Dwarkesh Patel’s podcast. Grant spoke about the importance of having empathy for students. When you learn something, it’s easy to forget what it was like to not know or understand something. So for the record, one thing I found hard about learning Haskell is that often there would be massive jumps in concepts. One moment you’d be told ‘this is how this thing works’, and then you’d go look at how it is actually implemented, and have no idea how to interpret the code because it was implemented using features of the Haskell language you’ll learn about later. I needed a tutor who could explain a concept, and then guide me through how it should be implemented - starting from how I would do it, to the way it is done most elegantly. I should not forget this.

April 28, 2026 - Added math rendering to my site and learnt more about functional programming.

April 27, 2026 - Learnt a lot about Haskell again.

Switched from simple HTML files to using zola for static site generation.

April 25, 2026 - Learnt a lot about Haskell.

April 22, 2026 - Learnt that Haskell algebraic data types are a semiring.

April 21, 2026 - Made flash cards for defining Rings, Fields, Vector Spaces, and Algebras.

April 19, 2026 - Read and understood this George Hotz blog post. Summary: all companies that rent seek off closed models will suffer the same fate previous attempts have (AI wrappers) because the companies that make and serve these models need the profits. If you want to have a capitalistic economy built on top of AI (like SaaS on the cloud), you need commodotized AI (like the cloud).

April 15, 2026 - Continued preparing presentation for compiler demonstration.

April 14, 2026 - Started preparing presentation for compiler demonstration.

April 12, 2026 - Created a chrome extension that blocks recommended videos on YouTube.

April 11, 2026 - Wrote the documentation for my compiler.

April 6, 2026 - Wrote the parser, type-checker, and part of the code generator for my compiler.

April 5, 2026 - Wrote the scanner for my compiler.

April 4, 2026 - Structured the repository of my compiler project and wrote the outline for the end presentation. Also signed up for Google AI Pro and setup Google Antigravity.

March 31, 2026 - Defined the EBNF for the small C-subset that I’m targetting.

March 28, 2026 - Demonstrated that I can run assembly code on my WeMos D1 microcontroller.

March 26, 2026 - I’m going to write a compiler in Haskell that compiles from a very small subset of C to the assembly language for an ESP32 microcontroller. Today I researched my microcontroller and setup a clear plan to write my compiler.

March 24, 2026 - Created a Beamer template I can use to make presentations.

March 23, 2026 - Wrote report on Conway’s Game of Life in Haskell.

March 22, 2026 - Performed experiments on my Game of Life implementations.

March 21, 2026 - Implemented Conway’s Game of Life in Haskell again in two different ways.

March 20, 2026 - Implemented Conway’s Game of Life in Haskell.

March 18, 2026 - Studied Haskell and continued experimenting with types.

March 17, 2026 - Fixed issues with SSHing into homelab. My problem was that I couldn’t SSH into or even ping my homelab from my laptop, despite both being connected to the exact same 2.4GHz Wi-Fi network. Pings resulted in a Destination Host Unreachable error originating from my own IP address. The cause of this error was the router enforcing “Client Isolation” (also known as AP Isolation), a feature that prevents wireless devices from communicating with each other. Because of this, the router was dropping ARP (Address Resolution Protocol) requests. My laptop couldn’t resolve the homelab’s IP address into a physical MAC address (Layer 1 [link layer] of the network in TCP/IP model, Layer 2 [data link layer] of the network in OSI model), meaning the SSH connection was failing before network traffic could leave my machine. I fixed the issue by entering my router’s web UI which showed ‘Client Isolation’ as disabled, but it was suffering from a “stuck UI” firmware bug where the interface didn’t match the router’s actual internal state. By toggling the setting on, saving, turning it back off, and saving again, I forced the router to actually apply the correct rule, allowing local traffic to flow.
I also eliminated friction in my daily workflow by setting up an SSH config file (~/.ssh/config). I mapped the shortcut Host lab to the homelab’s IP and my username, and linked it to a dedicated SSH key pair. By copying the public key to the homelab (ssh-copy-id), I can now securely access the homelab instantly just by typing ssh lab, bypassing passwords entirely.

March 15, 2026 - Studied Haskell and experimented with types. Disabled the keyboard (with sudo grubby --update-kernel=ALL --args="i8042.nokbd") on the laptop that is currently hosting this blog because it was short-circuiting and prevented me from entering certain numbers on an external keyboard. Made progress in fixing issues with SSHing into homelab

March 14, 2026 - Studied Haskell and experimented with implemeting functions through recursion.

March 13, 2026 - Studied Haskell and experimented with list comprehensions.

March 10, 2026 - Decided that I’ll write a RISC compiler for my ESP32.

March 9, 2026 - Learnt what a reverse proxy is. Studied Haskell, became comforable with currying.

March 5, 2026 - Discovered that SSHing into my laptop doesn’t work anymore - will sort this out another day.

March 4, 2026 - Setup SSH on my homelab, and connected from my main machine. I also personalised my website a bit more.

Febuary 25, 2026 - I wanted to learn more about how to configure my router for self hosting, so I connected to the router admin page at http://192.168.0.1/. After landing there I learnt that I have a tp-link AC1200 Wireless Dual Band Router Archer C50 and that it has “Simultaneous 2.4GHz 300 Mbps and 5GHz 867 Mbps connections” - this made me want to test the diffirence in speed between these two connections. I installed iperf3 on my laptop and my phone and these were the results:

phone/laptop network Transfer Bitrate
2.4/2.4 37.8 MBytes 30.7 Mbits/sec
2.4/5 38.4 MBytes 32.2 Mbits/sec
5/2.4 34.1 MBytes 28.6 Mbits/sec
5/5 34.5 MBytes 28.9 Mbits/sec

I only ran each test once, so this was not very scientific, but I was surprised by the worse performance of the 5GHz network. There are a few reasons for this:

  1. The router was in a different room than my devices and because the 5GHz signal is fragile, it could be slower.
  2. Because both my phone and laptop were connected wirelessly, the packets had to travel through the air twice. Because wifi is half-duplex (it can’t send and receive at the exact same time), the router has to listen to the phone half the time and talk to the laptop the other half. This cut my available speed in half.