sang.id.vn
RSS FeedHi, I'm Sang (ngosangns). I enjoy tinkering and building small tools that save time and make learning/working easier.
All Posts
-
When CSS z-index Gets Ignored
Why a very high z-index still doesn't rise above everything: stacking contexts, top layer, clipping, transform, overflow, and a few HTML/CSS/JS traps.
-
Big Bang vs. Sharing Economy — A Surprisingly Perfect Analogy
What if the universe and the sharing economy evolved the same way? From chaos to structure, from particles to platforms — the parallels are uncanny.
-
Nested contenteditable: Using Shadow DOM to Transfer the Editing Host
The nested contenteditable problem in block-based editors, and how Shadow DOM redirects the editing host to a child element.
-
The float and fixed Positioning Trap in contenteditable
Subtle bugs when using float and fixed positioning inside contenteditable elements, with practical workarounds.
-
When You Actually Need capture: true in addEventListener
Not just theory — here's a real situation where capture: true is the only correct solution in JavaScript.
-
How I Optimized the Auto-Scheduling Feature
From 7 million combinations eating 2GB RAM to a fast, practical solution — using bitmasks, backtracking, and Web Workers.
-
NGINX Notes — Things I Keep Coming Back To
Practical NGINX tricks I keep referencing: rewrite, proxy, load balancing, rate limiting, geo-blocking, and dynamic upstreams.
-
Configure MySQL for Full-Text Search with Vietnamese
Why Vietnamese full-text search in MySQL returns garbage results, and how to fix it with a few config changes.
-
Make PHP Enforce Strict Types
Why you should use declare(strict_types=1) in PHP, and how it helps catch bugs earlier.
-
Thesis Report Formatting in Word — Part 3: Tips & Shortcuts
Advanced settings, handy keyboard shortcuts, and small tricks that make writing Word reports faster.
-
Thesis Report Formatting in Word — Part 2: Table of Contents & Page Numbers
Auto-generated table of contents, table of figures, sections, and page numbering — advanced Word tricks for thesis reports.
-
Auto-Deploy JavaScript Projects with GitHub Workflow
From simple SSH to caching and CI builds — a practical walkthrough of writing a GitHub Workflow to deploy JavaScript projects.
-
Thesis Report Formatting in Word — Part 1: Basic Setup
Unit conversion, margin, paragraph, heading, and tab stop setup — the first things to do when opening a new Word file.
-
Forward Request from a Path to a Specific Port via .htaccess
Using Apache mod_rewrite and mod_proxy to forward requests from a path to an internal port — with examples for multiple apps.
-
Design Pattern Overview — Series Introduction
A curated collection of 26 common design patterns with TypeScript examples — covering Creational, Structural, and Behavioral patterns.
-
Behavioral Design Patterns Explained with TypeScript
A practical guide to 9 Behavioral Design Patterns in TypeScript: Chain of Responsibility, Command, Mediator, Memento, Observer, Strategy, Visitor, State, Repository.
-
Creational Design Patterns Explained with TypeScript
A practical guide to 8 Creational Design Patterns in TypeScript: Singleton, Factory, Factory Method, Abstract Factory, Builder, Object Pool, Prototype, Dependency Injection.
-
Structural Design Patterns Explained with TypeScript
A practical guide to 9 Structural Design Patterns in TypeScript: Adapter, Bridge, Composite, Decorator, Facade, Proxy, Flyweight, Delegation, EAV.