The Coding Fonts I've Used Over the Years
All things considered, the vast majority of developers still write code using monospace fonts. In this post, I'll share some of the monospace fonts I've used in recent years.
All things considered, the vast majority of developers still write code using monospace fonts. In this post, I'll share some of the monospace fonts I've used in recent years.
A mental model refers to the cognitive process of how we anticipate things unfolding or how things work. It sounds a bit academic, but for example, when we see a button UI on a screen, we expect it to be clickable and that clicking it might trigger a series of events. Therefore, when users find that the UI does not behave as expected, they feel confused.
Taking this opportunity to try out the pinnacle of the keyboard world—and a dream keyboard for many software engineers—the HHKB. Having used it thoroughly since purchasing, I'm extremely satisfied and sharing my thoughts here. Along with the HHKB review, this post also covers the principles behind electrostatic capacitive keyboards.
For software engineers, Japan's unique culture, environment, and compensation make it far from a top choice. Many who move here do so simply out of personal affection for the country. Setting aside salary and Japanese corporate culture, this post focuses purely on the current state of Japanese society and highlights my biggest concerns right now.
We often say we should listen to the voices on the ground because they are the ones actually doing the work, and the same goes for software development. However, becoming a Tech Lead requires more than just understanding the code itself; more importantly, you must have a comprehensive understanding of the entire project. Here are a few areas I consider crucial.
With Taiwan entering a Level 3 alert due to the pandemic, some companies have started implementing remote work. Having worked remotely since last year, I thought I'd share some of my experience.
In this project development, for what was previously purely static Landing Pages, the planning team requested calling APIs to fetch data for dynamic updates. Combined with increasing page interactivity, our legacy static setup of pug + webpack + jQuery was no longer sufficient. We adopted Next.js for the new version's development—and kicked off our journey into the pitfalls of setting up a server.
Google Chrome 89 introduced the Web Serial API, allowing external devices—including USB devices and Bluetooth devices with a Serial interface—to interact directly via browser APIs. This allows browsers to communicate directly with hardware.
This article introduces how browsers handle the form tag under the hood and how to use FormData in JavaScript to simplify form operations.
Forms are a ubiquitous part of the web, capable not only of transmitting plain text but also enabling file uploads. However, because form behavior differs somewhat from other data transfer methods, it often causes confusion and misunderstandings. By diving into the specifications to trace the full context, this article explores what happens behind the scenes of forms, how Form Data differs from other transport mechanisms, and what the HTML form tag actually does under the hood.
For the past two days, I had been feeling an uncomfortable sensation around my heart—every few minutes, it felt like my heart was being squeezed. It wasn't painful, and there were no other abnormal symptoms. I initially thought it was just temporary, but since it persisted for over a day without improvement, and because it involves the heart after all, I decided to go see a doctor.
Just a rambling journal entry
Svelte's core philosophy is to extract as much necessary information as possible during the compilation process to minimize runtime overhead. The previous article explained how Svelte works from compilation to code generation; today, we'll examine how the code generated by Svelte actually works.
To generate the final code, Svelte must compile components once to gather the necessary information. Svelte's process from compilation to code generation mainly passes through several stages, which will be introduced one by one in this article.
Interest in Svelte has been climbing year after year. This article summarizes several reasons why Svelte is worth learning in 2022, while also discussing some of its drawbacks.
This series of articles focuses on exploring the inner workings and implementation of Svelte, aiming to give readers a deeper understanding of Svelte's compilation mechanism and code generation. Since Svelte's compilation process involves parsing code, this article will primarily discuss what an Abstract Syntax Tree (AST) is and elaborate on its role and importance.
Looking back at the tech-related things I did in 2020~
Turbolinks is a JavaScript package typically paired with Ruby on Rails (though it can also be used as a standalone library). It primarily fetches HTML and swaps it in directly to avoid the overhead of full page reloads and re-requesting CSS. Saying "no JavaScript is required" isn't entirely accurate—JavaScript is still there under the hood, but handled by the library so you don't have to write it yourself during development.
2020 was a chaotic year, but it was also a year that prompted me to rethink the essence of computers. Throughout the year, I tried many things outside my comfort zone, mostly revolving around a single theme: rediscovering the low level. In high school, I majored in electronics. In an era where advancing to higher education was the mainstream path, although we had lab classes, it mostly felt like going through the motions, and I spent the majority of my time studying and solving exam problems. My only saving grace was that the academic workload wasn't as heavy as in a regular high school; otherwise, I probably wouldn't have made it into Taiwan Tech.
linaria is a CSS-in-JS library that emphasizes zero runtime. It lets you use syntax similar to styled-components while generating CSS at compile time, thereby reducing the overhead of dynamically updating styles.