Writings

My blog posts, tutorials, and more.

Implementing Clicking Outside of a Menu in JavaScript

A common feature in web development is closing a popup or menu when the user clicks outside of it.

nextjs
reactjs
javascript
web
dev
tutorial
Published at: 03/07/2025

Tutorial: How to Reorder and Squash Commits with Git

When working with multiple WIP commits or other related commits, you may want to combine them to kee...

git
tutorial
dev
Published at: 02/27/2025

Implementing a Scroll-and-Snap Effect Using the Intersection Observer API

Traditional English speaking test prep methods felt inefficient, and the process of recording my ans...

design
dev
web
tutorial
Published at: 02/06/2025

Understanding the Pandas DeprecationWarning: DataFrameGroupBy.apply operated on the grouping columns

When working with Pandas, you may encounter the SettingWithCopyWarning. In this article, I'll share ...

python
ai
dev
Published at: 01/15/2025

Rethinking UI/UX: The Hidden Gaps in Design and How to Bridge Them

One of the biggest problems in the UI/UX industry is the widespread misunderstanding of the true val...

design
uiux
Published at: 01/11/2025

Understanding the SettingWithCopyWarning in Pandas

When working with Pandas, you may encounter the SettingWithCopyWarning. In this article, I'll share ...

python
ai
dev
Published at: 01/01/2025

VS Code Custom Snippets: Boost Your Productivity (Part 3)

n this final part, we’ll focus on how to share and version control snippets for a more streamlined w...

productivity
dev
tutorial
Published at: 12/05/2024

VS Code Custom Snippets: Boost Your Productivity (Part 2)

Now, let’s dive into some advanced features that will further enhance your productivity.

productivity
dev
tutorial
Published at: 12/01/2024

VS Code Custom Snippets: Boost Your Productivity (Part 1)

VSCode is packed with handy features, many of which remain underutilized by developers. In this arti...

productivity
dev
tutorial
Published at: 11/30/2024

Testing Asynchronous Code in Javascript

Building on my previous article, I want to explore the broader topic of testing asynchronous code in...

dev
javascript
Published at: 11/20/2024

Testing Asynchronously Thrown Errors in Javascript

When testing JavaScript applications, it’s often necessary to verify that expected errors are trigge...

dev
javascript
Published at: 11/19/2024

Multifunctional AI Assistant (Part 3)

AI assistant that can help with a range of tasks.

productivity
design
uiux
ai
dev
Published at: 10/24/2024

Choosing Between useState and useRef in React: A Case Study from My AI Assistant App

A discussion about the decision on choosing useRef over useState in a specific scenario.

javascript
reactjs
dev
Published at: 10/09/2024

Multifunctional AI Assistant (Part 2)

AI assistant that can help with a range of tasks.

productivity
design
uiux
ai
dev
Published at: 10/08/2024

Multifunctional AI Assistant (Part 1)

AI assistant that can help with a range of tasks.

productivity
design
uiux
ai
dev
Published at: 09/25/2024

Mastering Chart.js Tooltips: Customizing Labels with Line Breaks

How to customize the label of tooltips of charts in Chart.js

javascript
reactjs
dev
Published at: 08/31/2024

AI-Powered English Speaking Tutor For Learners

Near-real-time English chat with instant feedback.

productivity
design
uiux
ai
dev
Published at: 08/20/2024

An AI-Powered App That Streamlines Your Speaking Test Prep Workflow

Traditional English speaking test prep methods felt inefficient, and the process of recording my ans...

productivity
design
uiux
ai
dev
Published at: 07/27/2024

Generate a Table of Contents for Medium Writings With One Click

Manually creating TOCs for Medium writings was tedious, so I decided to automate the process by deve...

productivity
uiux
dev
Published at: 07/16/2024

How I Made My Python Data-Scraping Program 140 Times Faster

Last month, I developed a Python program to crawl a data-intensive website with numerous pages and t...

productivity
dev
python
Published at: 07/12/2024

Handling Functions in Server Components with Next.js

How to Resolve the “Functions cannot be passed directly to Client Components” Error in Next.js

dev
javascript
reactjs
Published at: 06/24/2024

UX Insight: On Radio Buttons (Part 2)

Good design incorporates radio button's characteristics to enhance usability, while poor design ofte...

design
uiux
Published at: 03/23/2024

UX Insight: On Radio Buttons (Part 1)

Radio buttons are a fundamental component in UI/UX design, yet it seems that they are often misused,...

design
uiux
Published at: 03/22/2024

Understanding event.target and event.currentTarget: A Comprehensive Guide

When working with the DOM, you’ll often encounter events that help capture and respond to user inter...

dev
javascript
Published at: 06/12/2022