Racket
(work in progress)
Racket as a “tool”
- I found Scribble a nice tool for taking notes, preparing documents. I use it a lot for communicating with colleagues, preparing offers etc. I customized the LaTeX output to use our company’s document class.
- I used Slideshow for some presentations. Though I lack a lot of practice and creating figures etc. is very time-consuming for me.
Racket “in production”
- Receiving telegrams for a M2M application: The application receives messages via HTTP, checks and convert them and then forwards the messages to another service for data management and visualization.
- Backup script: Fires up a instance on EC2 (Amazon Web Services), copies and runs a Racket script on the new instance. This script dumps a PostgreSQL database and copies the resulting dump to Amazon S3.
- File handling for an EDI project: Transfer files between a local directory and a remote directory via SFTP.
Teaching / Education
- “IoT” course (two days), see our ELS 2017 Paper.
- I use Racket as the first programming language for my apprentices together with the book “How to Design Programs, 2nd edition”.
Resources
Libraries
- AWS by Greg Hendershott: Very nice package that helps to access to many Amazon Web Services via Racket.
- s3-sync by Matthew Flatt: Syncs a local filesystem with a S3 bucket.
- Frog by Greg Hendershott: A nice static web site generator renders Markdown and Scribble; used to make this site.
- Cover by Spencer Florence: A code coverage tool.
- Racket Explorer by Tony Garnock-Jones: Utility for interactive exploration of complex data structures.
- raco-find-collection by Asumu Takikawa: A raco script for finding collections.
Blog Posts, Books and Articles
- Fear of Macros by Greg Hendershott: A great tutorial for macros.
- The Racket Manifesto
- How to Design Programs, 2nd edition
- Beautiful Racket
Small snippets
- How to install all libraries after a new version of Racket comes out:
raco pkg migrate
. - How to find a module’s location:
(collection-file-path "main" "drracket")
,(require syntax/modresolve) (resolve-module-path 'drracket)
in Emacs (with Racket-Mode installed):racket-open-require-path
(C-c C-x C-f),racket-find-collection
which uses the Racket package raco-find-collection, (Source: Racket Users mailing list). - Adding
raco make
to Racket Minimal:raco pkg install compiler-lib
.