DDR3 technical notes (part I: theory)
What’s this blog about? As part of my effort to build my own computer, I’ve been learning about Random Access Memory (RAM) recently, and there’s a lot to learn here! Who knew that there’s more to a RAM than what meets the eye? Anyway, since there’s too many things to learn, I need to record what I learned (much like my learning process with high frequency PCB) so it would be easier for me to review in the future. ...
My high frequency PCB design notes (part I)
What’s this blog about? I spent much of my summer break (while being unemployed) learning PCB design. Specifically, I’ve been following Shawn Hymel’s Kicad tutorials on YouTube and made some simple circuits (Please don’t judge, I know I’m still shit, especially at SMD soldering): Anyway, while my soldering skills definitely needs improvement (or maybe I need to buy a hot air gun instead), I think I’m quite comfortable with Kicad already. Therefore, I began to learn about high frequency PCB design, to know what do I need to keep in mind when designing my own computer, as well as finding out if Kicad is usable for high frequency design (I was concerned with its viability since most people use Altium). ...
Covid-19, data science, and computer systems: sharing the most recent five years of my life
What’s this blog about? Hey guys, this blog will be a bit different from the ones I made before. Rather than sharing some interesting technical stuff, I want to share my life since the Covid-19 pandemic. Why? No reason. However, it’s been over five years now, and IMO, this five-years period has been the hardest for me (yes I’m still young, but still…). Anyway, if you don’t find it important, then don’t read it. If you want to read it, then thanks I guess? It’s fine either way lol. ...
How ARM computers boot: My experience modifying the Raspberry Pi boot sequence
What’s this blog about? Lately, I’ve been quite interested on the hardware side of computer systems, and since all open-source SBCs that I can find are all ARM-based, I guess it is time to learn how ARM-based computers boot. Since I already have a Raspberry Pi (Rpi) laying around, I thought it might be a good idea to use it as a practice - by default, Rpi uses proprietary bootloaders. So to test my understanding, I’ll try to modify its boot sequence using open-source embedded firmware, namely u-boot. ...
HTTP servers from scratch: how to make your own (simple) server without using NodeJS or Apache
What’s this blog about? With final exams approaching, I cannot spend too much time learning outside of class. So I’ve been wondering, what are some projects that I can do that doesn’t take too much time? Since I’ve been writing blogs recently, I had to think up of a way on how to publish it on the internet. What I came up with was nginx as reverse proxy that serves the static files under /srv directory. ...
Taylor Series: How I used math (and SIMD paradigm) to make my code run 9x faster
What’s this blog about? In this blog, I’ll be sharing one of the assignments I did in my parallel programming course, taught by the great Professor Xu Weizhong of CUHK-SZ. This blog will be divided into three parts: what the assignment was about, what I was taught in class to make my code run faster, and what I did to further optimize my code to ultimately make it run 9x faster. ...
Building Neural Networks from Scratch: Math & Python Code Explained (Part II)
What’s this blog about? This is the second part of Creating Neural Networks: Concepts, Math, and Code, where we will be creating a neural network from scratch. If you don’t have a prior knowledge on the concepts of neural networks, then please read part I before you read this article. BTW, all the codes are available on my GitHub repo. Lastly, this is a blog I wrote at Medium.com back in 2023 when my writing skills were worse; so you may find it too wordy. ...
Building Neural Networks from Scratch: Math & Python Code Explained (Part I)
What’s this blog about? This is the first part of Creating Neural Networks: Concepts, Math, and Code, where I will be talking about the theoretical concept of a neural network. Part II will implement the theory discussed here into the code. BTW, all the codes are available on my GitHub repo. Lastly, this is a blog I wrote at Medium.com back in 2023 when my writing skills were worse; so you may find it too wordy. ...
AuxinOS: How I made an x86 Operating System as a hobbyist
What’s this blog about? A while back, I created AuxinOS, an x86 Operating System targeted for Intel machines. Auxin is just an OS that I developed so I can better understand computer systems, and this is a blog I wrote in order to explain how I developed AuxinOS. You can watch the demo on Youtube. BTW, since the compressed tarball of the OS is too large, I cannot upload it to a GitHub repo (there is a limit of 2 GB per file). ...