Posts tagged racket

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.


Automating Tests for the Plot Package

:: racket

A few weeks ago I accepted to become maintainer of the plot package and one of my first objectives was to setup an automated build and test runs using Github Actions. The plot tests were changed to verify automatically that they pass (previously they had to be visually inspected for correctness), and the technique may be useful in writing tests for other graphical packages and applications.


Ishido

:: games in racket, racket

… in which we attempt to recreate a game from the nineties using the Racket graphical facilities and we manage to do it in less than 1000 lines of code.


Markdown View using the Racket editor%

:: racket

The Racket text% editor class can be used to display multi line text with formatting, such as fonts and colors; it is however, somewhat difficult to set it up and use its formatting capabilities. This blog post shows how to build a text view which allows inserting markdown text and the result will be formatted, with headers, links and images.


Dependency Management in Racket Applications

:: racket

.. in which we look at how to manage the versions of packages used by a Racket application, and ensure that the correct package versions are used when building the application.


A Game of Tetris (user interface)

:: games in racket, racket

The previous blog post introduced the Tetris game mechanics and made the game playable. In this blog post we’ll look at how to build an actual GUI application around the game mechanics: we’ll keep score, increase difficulty, peek at the next block and more. As we do that, we’ll explore some more interesting things you can do with the Racket pict library, and look at some of the GUI facilities available in Racket.


A Game of Tetris (gameplay)

:: games in racket, racket

.. in which we implement a Tetris game step-by-step in Racket, exploring pict graphics, contracts and unit tests.


Dual Axis Plots

:: racket, data visualization

… in which we explore how to show on the same plot two data series that have different data ranges. The Racket Plot package does not support this functionality directly, but with the help of some data transformation, we can still achieve good results.


Custom Rackunit Test Runner

:: racket

As the number of tests for a program continues to increase, it is no longer sufficient to know that all tests passed or which test failed. Other questions start to become important: were some tests inadvertently disabled? which tests were skipped? how did the duration of a test evolve over several versions of a program? Existing build platforms, such as Azure Devops, can help with test management, but in order make use of their features, we need to extend the Racket unit test library to report the test results to the build pipeline.


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.


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