Timezone Aware Local Time

:: activitylog2, racket

I wanted ActivityLog2 to show that my New Zealand skiing run started at 10am, rather than showing 6am, which is the local time in Western Australia, where I live. This feature took a long time to implement, plus it required a surprising amount of effort, and this blog post describes some of the implementation details.

Interactive Heat Maps

:: activitylog2, racket

A HeatMap chart allows displaying a collection of GPS activities on a map and it is a nice way to visualize GPS data. On-line tools provide this functionality, but I wanted to implement my own, displaying heat maps using data from my own computer, without having to upload it to another website.

Racket Binary Packages

:: racket

The Racket source code is distributed under LGPL and this means that any proprietary Racket application distributed must also provide a way for the user to re-link an updated Racket runtime and produce a new executable for that application. In this blog post we’ll explore how to achieve this.

Interactive Maps in the DrRacket REPL

:: racket, data visualization

I updated the map-widget package to allow map objects to snip%’s so it can be inserted into a pasteboard% and a side benefit of this work is that maps can now be embedded in the DrRacket REPL — while this was not why I did these modifications, it does make for a cool demo.

More Timezone Lookup (loading and saving data)

:: racket

… in which we explore how to write internal Racket data structures to disk and read them back, and use these features to improve load times for the GeoJSON data, so the program does not have to spend 20 seconds in the initialization step.

Timezone Lookup (an adventure in program optimization)

:: racket

… in which we use GeoJSON data for timezone boundaries to determine the time zone for a given location, and learn a few things about the performance of Racket programs.

Timezone Visualization

:: racket, data visualization

The timezone-boundary-builder project publishes GeoJSON files with timezone boundaries based on OpenStreetMap data, and I though it would be an interesting project to load this data in Racket, build some map visualizations with it and explore some of the Racket drawing facilities.