興趣使然的研究之旅
Introduction
The branches of computer science are vast, and over the past few years, I’ve enjoyed exploring various fields beyond just front-end development. In this series of articles, I want to share some intriguing topics I’ve explored or plan to explore in the future.
I am particularly fond of the First Principle approach, which involves observing things from their essence, especially when it comes to computers— the culmination of human civilization combined with various abstractions. The code I write primarily operates in the browser, which is software that runs on an operating system, and that operating system runs on CPUs and various hardware. To me, this is fascinating. While I can’t cover every topic, I’d like to share some interesting areas I’ve discovered during my explorations.
We often assume that technology will continuously advance as if it were a given, but behind every technological advancement lies the hard work of one or many individuals who developed it to solve the problems they faced at the time, with some technologies even being discovered by chance.
Technology doesn’t improve on its own; it requires individuals willing to get their hands dirty and confront challenges. You don’t necessarily need a high degree or be exceptionally intelligent to make impactful contributions; everyone has the potential to be part of developing and enhancing technology.
People often ask, “If we don’t use trigonometry or linear algebra in daily life, why should we learn math?”
I have two rather romantic responses to this question:
Modern technology has advanced to the point where you can live well without learning math.
The other response comes from my reading of Fermat’s Last Theorem, where Hardy once said:
I have no practical use for mathematical theories; outside of the mathematical community, they don’t make the world any more comfortable. But why should they? The pursuit of answers is merely driven by one’s own desires.
I often find myself easily interested in various things but tend to lose steam quickly. Although it doesn’t feel great, this has allowed me to explore many fields I wouldn’t have thought about before over the past few years. Through this marathon, I hope to share my findings while deepening my own understanding.
You can view this series of articles as thirty seemingly unrelated (yet somehow interconnected) pieces. If you are familiar with any of the topics, feel free to leave comments and share your thoughts for a richer discussion.
Topic Overview
These are the topics I plan to write about over the next 30 days. They may vary depending on circumstances, but all topics are related to IT, including front-end and back-end development, a wide range of computer science subjects, mathematics, hardware, and low-level protocols—essentially, it’s a mixed bag.
Related Posts
- When Measurement Becomes the Goal: From Window Tax to PR Counts I once wrote a small tool to count how many PRs I had contributed in a quarter, how many reviews I had left, and how many tickets I had closed, hoping to use the numbers to prove my output to my manager. My manager simply said performance is not judged by output alone. Only years later did I understand—when measurement becomes the goal, it is no longer a good measure. From Britain’s window tax and the Hanoi rat bounty to evaluating developers by PR count today, the mechanism is exactly the same.
- Using Cloudflare Images for Image Storage and Transformation Putting an image on a web page is the easiest thing in frontend. But doing it properly — resizing, generating every format, holding up under traffic — turns into a whole solution of its own. I ended up handing all of it to Cloudflare Images and keeping just one original.
- Stop Using Access Keys Already Access Keys are an easily overlooked security risk on AWS. Use OIDC with IAM Roles so GitHub Actions can securely access AWS resources without any secrets.
- Database Primary Keys: AUTO_INCREMENT, UUID, and UUIDv7 Backend developers often have to decide on a primary key: auto increment or UUID? What about collisions? How much faster is UUIDv7 compared with created_at + index? After benchmarking 20 million rows and looking at the design trade-offs, this post gives you the answer.