馃憢 Hey!

Welcome to my blog.

Implementing text-overflow: ellipsis property on Servo

What鈥檚 this blog about? This is an explanation to a PR I submitted on the Servo community to implement basic support for text-overflow: ellipsis property on Servo. Scope & Limitations I would like to emphasize that this PR attempts to add basic support for text-overflow property, not a full-fledged feature. Specifically, some limitations include: This PR only adds support for single-valued text-overflow, so anything involving first value, such as text-overflow: ellipsis ellipsis, is not supported yet. No RTL support. According to the CSS specification, if there isn鈥檛 enough space for the ellipsis glyph, then the ellipsis glyph must be clipped. This has not been supported yet. Instead, what will happen is one or more characters (except for the first one) will be clipped to make more room for the ellipsis glyph. the CSS specification also mentioned that if the ellipsis glyph is not available for a particular font, then we should fallback to three dots .... This fallback hasn鈥檛 been implemented yet. No support for float yet. I鈥檓 not sure how to best explain it now, but this will be elaborated in a later section. Despite this, the code in this PR will be written (at least I鈥檒l attempt it to the best of my ability) in a way that makes it possible for future contributors to extend text-overflow property without significantly changing the logic. ...

November 5, 2025 路 7 min

DDR3 technical notes (part I: theory)

What鈥檚 this blog about? As part of my effort to build my own computer, I鈥檝e been learning about Random Access Memory (RAM) recently, and there鈥檚 a lot to learn here! Who knew that there鈥檚 more to a RAM than what meets the eye? Anyway, since there鈥檚 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. ...

September 6, 2025 路 12 min

My high frequency PCB design notes (part I)

What鈥檚 this blog about? I spent much of my summer break (while being unemployed) learning PCB design. Specifically, I鈥檝e been following Shawn Hymel鈥檚 Kicad tutorials on YouTube and made some simple circuits (Please don鈥檛 judge, I know I鈥檓 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鈥檓 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). ...

September 3, 2025 路 8 min

How ARM computers boot: My experience modifying the Raspberry Pi boot sequence

What鈥檚 this blog about? Lately, I鈥檝e 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鈥檒l try to modify its boot sequence using open-source embedded firmware, namely u-boot. ...

August 10, 2025 路 11 min

HTTP servers from scratch: how to make your own (simple) server without using NodeJS or Apache

What鈥檚 this blog about? With final exams approaching, I cannot spend too much time learning outside of class. So I鈥檝e been wondering, what are some projects that I can do that doesn鈥檛 take too much time? Since I鈥檝e 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. ...

April 26, 2025 路 8 min

Taylor Series: How I used math (and SIMD paradigm) to make my code run 9x faster

What鈥檚 this blog about? In this blog, I鈥檒l 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. ...

April 23, 2025 路 7 min

Building Neural Networks from Scratch: Math & Python Code Explained (Part II)

What鈥檚 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鈥檛 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. ...

April 19, 2025 路 12 min

Building Neural Networks from Scratch: Math & Python Code Explained (Part I)

What鈥檚 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. ...

April 17, 2025 路 6 min

AuxinOS: How I made an x86 Operating System as a hobbyist

What鈥檚 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). ...

April 8, 2025 路 25 min