A folder of documents becomes rows, the rows are processed in batches rather than one at a time, and nothing leaves until a person has marked it reviewed. The gate is the product.
Tag: Python
2026
Running 7 scanners is a thread pool and an afternoon. Making them agree on what a finding is — one shape, one severity scale, one row per problem — is the whole product.
Six megabytes of exported messages, labelled and filtered by a few dozen keyword rules. No model, no API bill, nothing leaving the laptop — and every label traceable to the line that produced it.
Some sources have no export button and no intention of building one. Record what the source draws as it draws it, give every object a stable key, and you own a dataset the source never published.
Testing whether a point falls inside an area is one line of code. Deciding whether an object was actually there takes the whole sequence of observations, and a threshold you have to pick yourself.
A public feed with no export button and a rate limit. Walking it politely with rotating exits, collapsing 37 spellings of city names into one, and turning the result into map layers by city and by area plus category counts over time.
Poll a source every 15 minutes, hash the path for a stable ID, keep the state in SQLite, archive what you find, say one thing in a chat channel. Six stages, no platform.
One small real problem, walked end to end: fetching, a stable ID, storage, notification, scheduling, and the failure mode that looks exactly like good news.
A Python CLI and Chrome extension that exports public Google Maps to KML, KMZ, and GeoJSON — preserving layers, placemarks, and marker icons.