Why React Compiler Can Render Stale Data in MobX observer Components
A minimal reproduction of React Compiler caching stale JSX around MobX observer, why interior mutability conflicts with memoization, and the practical fixes available today.
A personal blog about maps, graphics, software engineering, and the ideas that connect them.
A minimal reproduction of React Compiler caching stale JSX around MobX observer, why interior mutability conflicts with memoization, and the practical fixes available today.
A technical comparison of Cesium's standards-based 3D Tiles pipeline and SparkJS 2.0's renderer-native, paged Gaussian-splat runtime.
An analysis of Mapbox's lane-level HD road data, elevation features, styles, and rendering pipeline for 3D interchanges.
A reading outline covering C++ concurrency, synchronization, atomics, parallel algorithms, and concurrent data structures.
Designing a quadtree for spatial partitioning, range queries, and collision detection, with implementation tradeoffs in C++.
Notes on WebAssembly modules, memory, JavaScript interoperability, toolchains, performance, and browser execution.
How rvalue references, std::move, and move semantics improve resource management in modern C++.
Books and an outline of notes on natural language processing.
Aren't we all just poor pigs? Touch too many sensitive words, and you might not survive either.
Why planar triangulation distorts polygons on a globe, and how subdivision and spherical interpolation improve the result.
How deck.gl balances Web Mercator projection cost and WebGL floating-point precision with an automatic offset coordinate system.
How V8 maps values, exposes C++ variables, functions, and classes to JavaScript, and invokes JavaScript callbacks from C++.
Advanced techniques for protecting shared state in C++, including mutex discipline, deadlock avoidance, and thread-safe object design.
A practical comparison of spatial indexing strategies for efficient point and geometry queries at large scale.
A minimal thread-pool implementation based on cppcoro concepts, designed to explain the essential mechanics of C++20 coroutines.
Notes on moving a multithreaded web-crawling and upload workload to Google Cloud Platform.
A practical walkthrough for publishing a Mapbox-compatible vector tile service with GeoServer.
How Mapbox GL JS requests, parses, prepares, uploads, and renders vector tiles across the event loop, workers, and render loop.
Study notes on Three.js.
Study notes on C++.
Implementing time- and location-based building shadows in Mapbox by adapting Threebox to Mapbox GL JS v2.
Using std::string_view for allocation-free string access while avoiding lifetime, ownership, and null-termination pitfalls.
Study notes based primarily on WebGL Fundamentals.
A cartographic experiment combining historical Beijing street names with period-inspired typography, colors, symbols, and map styling.
A map-based visualization of individual trains, cars, platforms, and routes around Shanghai Hongqiao Railway Station.
Using OSM layer ordering, slope constraints, and linear programming to infer road elevations for 3D interchanges.
The semivariogram, model fitting, covariance matrix, and weighted estimation behind ordinary kriging.
Implementing kriging interpolation in C# with Math.NET, semivariogram fitting, and matrix operations.
Approximately correcting GCJ-offset raster tiles by transforming the requested tile extent before retrieving imagery.
Notes on crawling, indexing, ranking signals, site structure, content quality, and search-engine optimization.
An outline of core information-retrieval concepts, from inverted indexes and ranking to clustering and evaluation.
Designing an effective relevance-labeling platform and what its workflow reveals about search ranking and quality evaluation.
How MMSEG and Jieba combine dictionaries, DAGs, dynamic programming, and HMMs for Chinese word segmentation.
A closer look at the algorithms behind Jieba and other Chinese word-segmentation systems.
Study notes organized by categories of algorithmic problems.
Patterns for array problems, including numeric operations, two pointers, traversal, and in-place transformations.
Recognizing dynamic-programming problems and deriving optimal subproblems, state transitions, and common solution patterns.
Tree construction, traversal, search, binary search trees, tries, and common interview problem patterns.
Why pocket calculators interpret percentages unexpectedly, and how to model that behavior with the shunting-yard algorithm and RPN.
A practical record of purchasing, activating, and testing a travel eSIM in mainland China.
Reprojecting non-Mercator WMTS raster tiles in the browser for display on a Web Mercator map.
Using a polygon straight skeleton to implement an inward glow or shadow similar to QGIS shapeburst fills.