Reverse Geocoding of Japanese Administrative Divisions

A few months ago, I wanted to map Japanese coordinate data to administrative division levels. To achieve this, I developed a reverse geocoding tool reversejp using administrative boundary data from the Japan Meteorological Agency (JMA). The core functionality is implemented in Rust, and I packaged it as a Python library using PyO3 and Maturin. Although Japan’s land area is not very large, the JMA dataset subdivides the country into over 3,000 administrative units at its finest level. Considering Japan’s total land area, this results in extremely fine-grained coverage. ...

 · 2 min · 231 words · ringsaturn

A Local Debugging MongoDB Proxy

A local debugging MongoDB proxy

 · 1 min · 122 words · ringsaturn

Group world cities by timezone

A simple example of how to group world cities by timezone

 · 4 min · 725 words · ringsaturn

Released pg-tzf: High-Performance Lat/Lon → Time Zone PostgreSQL Extension

Developed and released pg-tzf, a PostgreSQL extension providing microsecond-level latitude/longitude to time zone conversion, based on the Rust library tzf-rs and the pgrx framework.

 · 1 min · 145 words · ringsaturn

Just Writing Something

A record of blog improvements, including multilingual support, SEO optimization, and a personalized logo generated by ChatGPT.

 · 2 min · 289 words

Short URL in Hugo

A guide to implementing short URL redirects in Hugo static sites, featuring both manual HTML redirect pages and an automated Go-based solution for generating redirect pages.

 ·  · 2 min · 288 words · ringsaturn

Auto center with caption for images in Hugo

Create a file: layouts/_default/_markup/render-image.html: 1 2 3 4 5 6 <figure class="align-center "> <img loading="lazy" src="{{ .Destination | safeURL }}#center" alt="{{ .PlainText }}" > {{ with .Text }} <figcaption><p>{{ . | safeHTML }}</p></figcaption> {{ end }} </figure> Then magic happens: 1 ![sample](/img/nmc-bin/RADAR_L3_MST_CREF_GISJPG_Tiles_CR_20250126_13_06_3_2_6.png) Render as: sample

 · 1 min · 45 words · ringsaturn
China’s first WSR-88D Doppler weather radar (Image source: [The Paper](https://www.thepaper.cn/newsDetail_forward_26004388))

Historical Fragments of China's Meteorological Radars

Some historical fragments discovered while researching.

 ·  · 11 min · 5139 words · ringsaturn

Better Python Project Maintenance

This article introduces two major pain points in Python project maintenance and their solutions: 1) Passwordless publishing using PyPI’s Trusted Publishers with GitHub Actions, and 2) Ultra-fast dependency locking with the uv tool. It also discusses version management when depending on machine learning frameworks like PyTorch, providing specific configuration examples.

 · 4 min · 644 words · ringsaturn

What Does the Python Version Number x.y Actually Mean?

At work, we use uv to manage Python projects, which allows us to quickly install dependencies and lock sub-dependency versions. After returning from a period of leave, I routinely updated the packages on my computer and noticed that uv had a new version, so I updated it. However, after updating the uv.lock file in a project, I found that many wheels for dependencies had disappeared from the lock file. For example, here’s the configuration of the pyproject.toml file: ...

 · 3 min · 441 words · ringsaturn