Synchronizing FIT files using a Raspberry Pi

:: activitylog2

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.

Heat Maps Revisited

:: activitylog2, racket

The Heat Map visualization in ActivityLog2 has been updated to handle large amounts of data, making it possible to show all 11 years worth of GPS points that I have, and still being able to show an interactive map, where the user can zoom and move the map while data is loading.

Asteroids (Gameplay)

:: racket, games in racket

… having spent most of the first blog post on writing a small game engine to be able to handle the Asteroids game, in this post we’ll look at how to implement the actors to actually make the game playable.

Asteroids (Game Engine)

:: racket, games in racket

… in which we look how we can implement the classic Asteroids game game using only the Racket language and its graphics facilities. We’ll implement a basic game engine, a basic physics engine and the game itself, and manage to do it in about 1000 lines of code.


:: racket, activitylog2

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.

Who Owns the Fish?

:: 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.

Shaded Area Plot

:: racket, data visualization

… in which we explore using interval renderers and color maps to create a plot where the area under the line is shaded based on data from a second data series.

Box and Whiskers Plot

:: racket, data visualization

The Box and Whiskers plot is a method for depicting groups of numerical data through their quartiles and it is a popular way to depict statistical information about data sets, yet the Racket plot package does not support such a plot type. In this blog post we’ll explore how to add this plot type to the plot package without having to modify the package itself, and we’ll look at some useful techniques of extending the plot package.

Climb Analysis Tool

:: racket, activitylog2, data visualization

As part of preparing for a bicycle race in my local city I wanted to look at the climbs of the bike route and evaluate their difficulty. Since all the (free) online tools only provided basic analysis tools, I decided to write my own.

Plot Animations

:: racket, data visualization

There is no specific animation function in the Racket plot package, but animations can be build by repeatedly plotting individual frames onto a canvas or image using plot/dc. The technique requires drawing the entire plot every frame, which will be inefficient for complex plots. In this blog post we explore how to construct plot animations using the set-overlay-renderers method of a plot snip, which is a more efficient method when plots are embedded in GUI applications.

Space Invaders

:: games in racket, racket

… in which we attempt to recreate a classic game using the Racket graphical facilities and exploring classes and objects.

Rendering the World Map Using the Racket Plot Package

:: racket, data visualization

As part of writing the geoid package, I needed to visualize some geographic projections and I discovered that the 3D plotting facilities in the racket plot package can be easily used for this task. The geoid package and the projection it uses is somewhat complex, so, to keep things simple, this blog post covers the display of the country outlines on a globe loading the data from the GeoJSON file and using only basic plotting facilities.

© Alex Harsányi, licensed under CC BY-NC-SA 4.0 , and there's a cookie policy.