RSS Amplifier

Blog

Beyond Coordinates

A personal blog about maps, graphics, software engineering, and the ideas that connect them.

littlepotato.meRSS feed ↗42 posts

Latest posts

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.

Web Gaussian Splatting: Cesium 3D Tiles vs. SparkJS 2.0

A technical comparison of Cesium's standards-based 3D Tiles pipeline and SparkJS 2.0's renderer-native, paged Gaussian-splat runtime.

How Mapbox Renders 3D Interchanges

An analysis of Mapbox's lane-level HD road data, elevation features, styles, and rendering pipeline for 3D interchanges.

C++ Concurrency Study Notes

A reading outline covering C++ concurrency, synchronization, atomics, parallel algorithms, and concurrent data structures.

Quadtrees and Collision Detection

Designing a quadtree for spatial partitioning, range queries, and collision detection, with implementation tradeoffs in C++.

WebAssembly Study Notes

Notes on WebAssembly modules, memory, JavaScript interoperability, toolchains, performance, and browser execution.

Understanding C++ Rvalue References and std::move

How rvalue references, std::move, and move semantics improve resource management in modern C++.

Notes on Natural Language Processing

Books and an outline of notes on natural language processing.

Poor pigs

Aren't we all just poor pigs? Touch too many sensitive words, and you might not survive either.

Polygon Triangulation on a Sphere vs. a Plane

Why planar triangulation distorts polygons on a globe, and how subdivision and spherical interpolation improve the result.

How Assuming the Earth Is Flat Speeds Up deck.gl Rendering

How deck.gl balances Web Mercator projection cost and WebGL floating-point precision with an automatic offset coordinate system.

Interoperability Between C++ and JavaScript in V8

How V8 maps values, exposes C++ variables, functions, and classes to JavaScript, and invokes JavaScript callbacks from C++.

Advanced Thread Safety in C++

Advanced techniques for protecting shared state in C++, including mutex discipline, deadlock avoidance, and thread-safe object design.

Spatial Search Algorithms: Querying Millions of Points Instantly

A practical comparison of spatial indexing strategies for efficient point and geometry queries at large scale.

C++20: Building a Thread Pool with Coroutines

A minimal thread-pool implementation based on cppcoro concepts, designed to explain the essential mechanics of C++20 coroutines.

Running a Web Crawler on a Cloud Server

Notes on moving a multithreaded web-crawling and upload workload to Google Cloud Platform.

Publishing Mapbox-Compatible Vector Tiles with GeoServer

A practical walkthrough for publishing a Mapbox-compatible vector tile service with GeoServer.

The Lifecycle of a Mapbox Vector Tile

How Mapbox GL JS requests, parses, prepares, uploads, and renders vector tiles across the event loop, workers, and render loop.

Three.js Study Notes

Study notes on Three.js.

C++ Study Notes

Study notes on C++.

Implementing Building Shadows in Mapbox

Implementing time- and location-based building shadows in Mapbox by adapting Threebox to Mapbox GL JS v2.

Understanding std::string_view

Using std::string_view for allocation-free string access while avoiding lifetime, ownership, and null-termination pitfalls.

WebGL Study Notes

Study notes based primarily on WebGL Fundamentals.

Designing a Cultural Revolution-era Map

A cartographic experiment combining historical Beijing street names with period-inspired typography, colors, symbols, and map styling.

Visualizing Train Operations at Shanghai Hongqiao Railway Station

A map-based visualization of individual trains, cars, platforms, and routes around Shanghai Hongqiao Railway Station.

Generating 3D Road Interchanges from OSM Data

Using OSM layer ordering, slope constraints, and linear programming to infer road elevations for 3D interchanges.

Implementing Kriging Interpolation, Part 1: The Mathematics

The semivariogram, model fitting, covariance matrix, and weighted estimation behind ordinary kriging.

Implementing Kriging Interpolation, Part 2: C# Implementation

Implementing kriging interpolation in C# with Math.NET, semivariogram fitting, and matrix operations.

A Simple Way to Correct Raster Map Offsets in China

Approximately correcting GCJ-offset raster tiles by transforming the requested tile extent before retrieving imagery.

SEO Study Notes

Notes on crawling, indexing, ranking signals, site structure, content quality, and search-engine optimization.

Information Retrieval Study Notes

An outline of core information-retrieval concepts, from inverted indexes and ranking to clustering and evaluation.

SEO, Search Engines, and Search Quality Rating

Designing an effective relevance-labeling platform and what its workflow reveals about search ranking and quality evaluation.

Word Segmentation Algorithms and a Simple Implementation, Part 1

How MMSEG and Jieba combine dictionaries, DAGs, dynamic programming, and HMMs for Chinese word segmentation.

Word Segmentation Algorithms and a Simple Implementation, Part 2

A closer look at the algorithms behind Jieba and other Chinese word-segmentation systems.

Algorithm Notes by Problem Type

Study notes organized by categories of algorithmic problems.

Algorithm Notes: Arrays

Patterns for array problems, including numeric operations, two pointers, traversal, and in-place transformations.

Algorithm Notes: Dynamic Programming

Recognizing dynamic-programming problems and deriving optimal subproblems, state transitions, and common solution patterns.

Algorithm Notes: Trees

Tree construction, traversal, search, binary search trees, tries, and common interview problem patterns.

What Calculator Percent Keys Teach Us

Why pocket calculators interpret percentages unexpectedly, and how to model that behavior with the shunting-yard algorithm and RPN.

Using an eSIM in Mainland China

A practical record of purchasing, activating, and testing a travel eSIM in mainland China.

Client-side Raster Tile Reprojection

Reprojecting non-Mercator WMTS raster tiles in the browser for display on a Web Mercator map.

Implementing Polygon Gradient Fills

Using a polygon straight skeleton to implement an inward glow or shadow similar to QGIS shapeburst fills.