From having a nice and consistent elevation plot and an accurate total ascent/descent for an activity, to calculating effects of slope on performance, such as Grade Adjusted Pace for running, it is important to have accurate elevation data. Unfortunately, elevation data is one of the measures most prone to errors during an activity. On-line elevation services can be used to correct this data, but in ActivityLog2, I decided to use solution runs on the user’s computer only, and does not depend on cloud services.
… in which we look at how to really speed up the lookup of geographic locations in a large number or regions covering the entire Earth surface. This is the problem that the tzgeolookup package has to solve: given a geographic location it needs to determine which one among the 425 time zones it belongs to, and it has to do it quickly.
I wrote the ActivityLog2 as an application to analyze training data on the local computer, to avoid using a cloud service, and I also wanted a convenient way to download data off my Garmin watch without having to hook up USB cables to my laptop. The result is the PiFitSync project which I had running for several years now, evolving to download data from three generations of Garmin devices.
Can you write GUI applications in Racket? Different versions of this question shows up periodically on various Racket forums, and, of course, Racket does have a GUI Library. However, usually the person asking the question implies a bit more, and it is not always clear what this “a bit more” is…
Rather than attempting to answer the question myself, I decided to just put together some screenshots of an application I wrote using Racket.
… that is the question. To find the answer will use a logic programming DSL embedded in Racket, named miniKanren.
By the way, if you are in a hurry: the German owns the Fish. Twice.