<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>sang.id.vn</title><description>Real-world lessons and technical insights from a software engineer&apos;s journey.</description><link>https://sang.id.vn/</link><item><title>When CSS z-index Gets Ignored</title><link>https://sang.id.vn/when-css-z-index-gets-ignored/</link><guid isPermaLink="true">https://sang.id.vn/when-css-z-index-gets-ignored/</guid><description>Why a very high z-index still doesn&apos;t rise above everything: stacking contexts, top layer, clipping, transform, overflow, and a few HTML/CSS/JS traps.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate></item><item><title>Big Bang vs. Sharing Economy — A Surprisingly Perfect Analogy</title><link>https://sang.id.vn/big-bang-vs-sharing-economy-a-surprisingly-perfect-analogy/</link><guid isPermaLink="true">https://sang.id.vn/big-bang-vs-sharing-economy-a-surprisingly-perfect-analogy/</guid><description>What if the universe and the sharing economy evolved the same way? From chaos to structure, from particles to platforms — the parallels are uncanny.</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Nested contenteditable: Using Shadow DOM to Transfer the Editing Host</title><link>https://sang.id.vn/nested-contenteditable-using-shadow-dom-to-transfer-the-editing-host/</link><guid isPermaLink="true">https://sang.id.vn/nested-contenteditable-using-shadow-dom-to-transfer-the-editing-host/</guid><description>The nested contenteditable problem in block-based editors, and how Shadow DOM redirects the editing host to a child element.</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate></item><item><title>The float and fixed Positioning Trap in contenteditable</title><link>https://sang.id.vn/the-float-and-fixed-positioning-trap-in-contenteditable/</link><guid isPermaLink="true">https://sang.id.vn/the-float-and-fixed-positioning-trap-in-contenteditable/</guid><description>Subtle bugs when using float and fixed positioning inside contenteditable elements, with practical workarounds.</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate></item><item><title>When You Actually Need capture: true in addEventListener</title><link>https://sang.id.vn/when-you-actually-need-capture-true-in-addeventlistener/</link><guid isPermaLink="true">https://sang.id.vn/when-you-actually-need-capture-true-in-addeventlistener/</guid><description>Not just theory — here&apos;s a real situation where capture: true is the only correct solution in JavaScript.</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate></item><item><title>How I Optimized the Auto-Scheduling Feature</title><link>https://sang.id.vn/how-i-optimized-the-auto-scheduling-feature/</link><guid isPermaLink="true">https://sang.id.vn/how-i-optimized-the-auto-scheduling-feature/</guid><description>From 7 million combinations eating 2GB RAM to a fast, practical solution — using bitmasks, backtracking, and Web Workers.</description><pubDate>Fri, 03 Jan 2025 00:00:00 GMT</pubDate></item><item><title>NGINX Notes — Things I Keep Coming Back To</title><link>https://sang.id.vn/nginx-notes-things-i-keep-coming-back-to/</link><guid isPermaLink="true">https://sang.id.vn/nginx-notes-things-i-keep-coming-back-to/</guid><description>Practical NGINX tricks I keep referencing: rewrite, proxy, load balancing, rate limiting, geo-blocking, and dynamic upstreams.</description><pubDate>Thu, 05 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Configure MySQL for Full-Text Search with Vietnamese</title><link>https://sang.id.vn/configure-mysql-for-full-text-search-with-vietnamese/</link><guid isPermaLink="true">https://sang.id.vn/configure-mysql-for-full-text-search-with-vietnamese/</guid><description>Why Vietnamese full-text search in MySQL returns garbage results, and how to fix it with a few config changes.</description><pubDate>Fri, 05 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Make PHP Enforce Strict Types</title><link>https://sang.id.vn/make-php-enforce-strict-types/</link><guid isPermaLink="true">https://sang.id.vn/make-php-enforce-strict-types/</guid><description>Why you should use declare(strict_types=1) in PHP, and how it helps catch bugs earlier.</description><pubDate>Thu, 12 Oct 2023 00:00:00 GMT</pubDate></item><item><title>Thesis Report Formatting in Word — Part 3: Tips &amp; Shortcuts</title><link>https://sang.id.vn/thesis-report-formatting-in-word-part-3-tips-and-shortcuts/</link><guid isPermaLink="true">https://sang.id.vn/thesis-report-formatting-in-word-part-3-tips-and-shortcuts/</guid><description>Advanced settings, handy keyboard shortcuts, and small tricks that make writing Word reports faster.</description><pubDate>Wed, 12 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Thesis Report Formatting in Word — Part 2: Table of Contents &amp; Page Numbers</title><link>https://sang.id.vn/thesis-report-formatting-in-word-part-2-table-of-contents-and-page-numbers/</link><guid isPermaLink="true">https://sang.id.vn/thesis-report-formatting-in-word-part-2-table-of-contents-and-page-numbers/</guid><description>Auto-generated table of contents, table of figures, sections, and page numbering — advanced Word tricks for thesis reports.</description><pubDate>Tue, 11 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Auto-Deploy JavaScript Projects with GitHub Workflow</title><link>https://sang.id.vn/auto-deploy-javascript-projects-with-github-workflow/</link><guid isPermaLink="true">https://sang.id.vn/auto-deploy-javascript-projects-with-github-workflow/</guid><description>From simple SSH to caching and CI builds — a practical walkthrough of writing a GitHub Workflow to deploy JavaScript projects.</description><pubDate>Sun, 02 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Thesis Report Formatting in Word — Part 1: Basic Setup</title><link>https://sang.id.vn/thesis-report-formatting-in-word-part-1-basic-setup/</link><guid isPermaLink="true">https://sang.id.vn/thesis-report-formatting-in-word-part-1-basic-setup/</guid><description>Unit conversion, margin, paragraph, heading, and tab stop setup — the first things to do when opening a new Word file.</description><pubDate>Sun, 02 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Forward Request from a Path to a Specific Port via .htaccess</title><link>https://sang.id.vn/forward-request-from-a-path-to-a-specific-port-via-htaccess/</link><guid isPermaLink="true">https://sang.id.vn/forward-request-from-a-path-to-a-specific-port-via-htaccess/</guid><description>Using Apache mod_rewrite and mod_proxy to forward requests from a path to an internal port — with examples for multiple apps.</description><pubDate>Fri, 05 May 2023 00:00:00 GMT</pubDate></item><item><title>Design Pattern Overview — Series Introduction</title><link>https://sang.id.vn/design-pattern-overview-series-introduction/</link><guid isPermaLink="true">https://sang.id.vn/design-pattern-overview-series-introduction/</guid><description>A curated collection of 26 common design patterns with TypeScript examples — covering Creational, Structural, and Behavioral patterns.</description><pubDate>Sun, 24 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Behavioral Design Patterns Explained with TypeScript</title><link>https://sang.id.vn/behavioral-design-patterns-explained-with-typescript/</link><guid isPermaLink="true">https://sang.id.vn/behavioral-design-patterns-explained-with-typescript/</guid><description>A practical guide to 9 Behavioral Design Patterns in TypeScript: Chain of Responsibility, Command, Mediator, Memento, Observer, Strategy, Visitor, State, Repository.</description><pubDate>Sun, 24 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Creational Design Patterns Explained with TypeScript</title><link>https://sang.id.vn/creational-design-patterns-explained-with-typescript/</link><guid isPermaLink="true">https://sang.id.vn/creational-design-patterns-explained-with-typescript/</guid><description>A practical guide to 8 Creational Design Patterns in TypeScript: Singleton, Factory, Factory Method, Abstract Factory, Builder, Object Pool, Prototype, Dependency Injection.</description><pubDate>Sun, 24 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Structural Design Patterns Explained with TypeScript</title><link>https://sang.id.vn/structural-design-patterns-explained-with-typescript/</link><guid isPermaLink="true">https://sang.id.vn/structural-design-patterns-explained-with-typescript/</guid><description>A practical guide to 9 Structural Design Patterns in TypeScript: Adapter, Bridge, Composite, Decorator, Facade, Proxy, Flyweight, Delegation, EAV.</description><pubDate>Sun, 24 Jan 2021 00:00:00 GMT</pubDate></item></channel></rss>