Some Information
About me
A little bit of detail
My [English] name is Don. I'm currently an engineering student at UCLA, pursuing by Bachelor of Science in Computer Science and Engineering. Outside of school, I enjoy writing (on this website), reading, movies, and traveling. I love exploring new places, especially trying out new food. I also enjoy poker, blackjack and board games in general.
If you want to know more about my curriculum and professional experiences, please check out my portfolio and résumé at ddonle.com or my Linkedin. I also left some of my personal notes in the Notes section above, either from my classes or from when I worked as a tutor, feel free to use them.
Is that all you have to say about computer science?
Of course not. Here's a bit more to my story:
At the age of 15, I was introduced to computers and programming after inheriting my first laptop from my older brother. I wrote my first few lines of code in C, starting with a simple script to solve quadratic and cubic equations, and then an unsuccessful attempt at solving the quartic. Soon after, I built a simple scientific calculator, a game of tic-tac-toe, followed by a basic version of Snake on the terminal.
Throughout my teenage years, I've tried many other programming languages (like Python or JavaScript), but it turns out I prefer languages that are strongly typed, closer to the hardware, yet high-level enough to be productive like C or C++, and most recently, Rust. Overtime, I also found myself drawn slightly more to the engineering side of computers (i.e. computer architecture, digital systems, signal processing, etc.) which ultimately led to my choice of major in college.
The majority of my programming experience is in C and C++, primarily within the aerospace industry and in the fields of image processing, SLAM, GPUs, and computer graphics. While I have worked in web development, it is not my main focus. I enjoy programming in general, but I am particularly drawn to low-level and systems programming.
About this website
Background and choice of design
I started digging through the internet back in middle school to collect and read scientific textbooks. While doing so, I couldn't help but encounter a lot of interesting computer science and math blogs. As a result, I got inspired by some of them and decided to create this website: a place for me to upload my writings and projects. I primarily write about math, programming, and physics, and occasionally about everyday topics like food reviews.
This website was formally built back in summer of 2024, but I've been writing a lot of the content on this website on LaTeX documentations way before that. I coded this website from scratch using HTML, CSS, and vanilla Javascript (ancient and primitive, I know, but they works). For this reason, the website might not be very well-optimized, so please excuse me. To view the source code, click on the logo on the side navigation bar or follow this link.
- Question: Why not use a framework or a static site generator?
- Answer: I wanted to learn the basics of web
development, so in order to learn, I must create things. This
website the became my first web project. Plus, this site has no
complex API calls, so a framework would be overkill, although using
a framework would have probably been a bit easier. Ok, but why not a
static site generator like Jekyll? I feel like static site
generators offer much less control over things, such as the ability
to easily create highly customizable components like this one:
The Fourier transform of the impulse train is another impulse train:\[ \mathcal{F}\{\delta_T(t)\} = \frac{2\pi}{T}\sum_{k=-\infty}^{\infty} \delta(\omega - k\omega_s), \qquad \omega_s = \frac{2\pi}{T}. \]
or this one below (click on the arrow!)
Proof
The proof is left as an exercise to the reader.
Structure
There are two types of blogs on this website: articles and posts. Articles are technical and focus specifically on topics in math, computer science, physics, or engineering. Posts, on the other hand, are shorter, usually non-technical, and primarily cover everyday niche topics.
Third party tools
Earlier, I did say that I built this website from scratch. I was lying. Nobody builds anything from scratch, we're all standing on the shoulder of someone. Some other tools I used are MathJax, a javascript library that helps display fancy equation like this:
I also use prism.js to provide some nice code syntax-highlighting for websites like below. You can change the code theme in the setting
#pragma once
template<typename Func>
double numerical_derivative(Func f, double x, double h) {
// Use the central difference formula for better accuracy
return (f(x + h) - f(x - h)) / (2.0 * h);
} About the logo: that's the trajectory of a double pendulum in a computer simulation.
Check list
The general layout of this website should be completed, but I will still add some new features every once in a while, if I have time. This website is still relatively new anyway.
Some features I might add in the future:
- A comment system.
- A screen reader for better accessibility.
- Export page as pdf.
Disclaimer
This website is private, and it was created solely to display my writings, projects, and personal things that are interesting to me; therefore, the quality of this website is subjective only to me. If you have any suggestions on how this website can be improved, or if you find any:
- wrong information,
- errors in the source code,
- contents that you are not happy about,
- spelling or grammar errors,
feel free to reach out to me using the email address below. Any feedback or thoughts about this website would be greatly appreciated.
I am also open for conversations, so if you just want to have a chat, you can reach out to me via discord or telegram.