functional programming enthusiast and public service fanatic.
In early 2020, both the Sun-Times and the Tribune were exclusively tracking state-level data, and the City of Chicago hadn't yet published any data visualization tools, so over Memorial Day weekend, I banged out the first version of Chicago Test Out (so named because, at the time, only testing data was available).
Over time, the city did release some data visualization tools, but since they take several minutes to load and don't work on mobile, I've continued to iterate on CTO and continue to use it to help me manage risk for myself and my loved ones.
ReScript, as a new functional language, doesn't come with a set of bindings to the browser APIs. I've taken to formalizing the bindings I need with standard conventions. They're useful to me as a developer, and they're a great way to learn about ReScript. They're also a lot of fun to write in their own right because it's a pure way of playing with type theory without thinking about implementation details. I've enjoyed writing them, and I hope you enjoy using them.
rescript-push- for the Web Push API
rescript-notifications- for the Notifications API
rescript-service-worker- for the Service Worker API
rescript-indexeddb- for the IndexedDB API.
res-elm- for interoperation between the Elm functional programming language and ReScript through Elm ports
rescript-vigil- a lightweight cross-platform unit testing library in ReScript
⚠️ under development, will be a functional wrapper around IndexedDB.
Although I generally don't write about my professional work, I've enjoyed using "webbureaucrat" as a light-hearted moniker referring to my happy career in public service.
A few of my favorite articles are:
- Safer Data Parsing with Try Monads - in which I advocate for an end to uncaught exceptions in object-oriented languages
- Elm Line Charts - a series which documents how to create time-based data visualizations like those in Chicago Test Out
- Parsing JSON in ReScript - because functional programmers just love writing parsers and the more parsers we write, the happier we are.