Racket News - Issue 35

Permalink: https://racket-news.com/2020/07/racket-news-issue-35.html

Welcome to the thirty-fifth issue of Racket News.

Just after the last issue was published gitlab pages went down and with it, Racket News. Nothing to worry - you can always reach Racket News through the web archive program. Each time an issue is published, the archive is updated with the most recent version of the website.

If you haven’t filled in Racket Survey 2020, do not postpone it. There won’t be a better time than now!

There’s so much going on with the Quickscript and Standard Fish Summer Competitions - I have created separate sections with news about these. Thanks to Stephen De Gabrielle for updating me with this juicy info.

Grab a creamy Macchiato and let’s go. Enjoy!

Table of Contents

  1. What’s New?
  2. The Quickscript Competition
  3. Standard Fish Summer Picture Competition 2020
  4. Racket Around the Web
  5. New Releases
  6. Project in the Spotlight
  7. Featured Racket Paper
  8. Upcoming Meetups

What’s New?

  • Have I mentioned the Racket Survey? It will be open only until July 31st so please take a few minutes to fill it in.

Quickscript Competition

The competition has had an exciting week with both entries from existing and new contributors.

  • CVE Search by robertpostill
  • design-recipe-template builds a simple design recipe template for a function whose name is highlighted entry by smtuttle
  • show-highlighted is a demo of using 2htdp/universe that displays the highlighted text “flashing” 5 times in a World-window in random colors by smtuttle
  • defines: List and search top level definitions by Metaxal
  • Open Racket news and events in the browser by spdegabrielle
  • Eyes are following you by spdegabrielle
  • Letterfall: See you code fall like rocks! by Metaxal
  • Run this quickscript to install all scripts from the competition! by Metaxal
  • Breakout! by soegaard
  • Format-selection by alex-hhh
  • Robo-Head-Pat by Lambduli
  • Rot13 Decode/Encode by Karrq

How to install entries so far

You can manually install a new script individually or run the entries installer to install the lot.

  1. click the Scripts menu in DrRacket and click Manage Scripts > New script...
  2. enter the name “competition–2020” or the name of the script you are installing
  3. paste in the script or the entries installer into the new file and save
  4. click Scripts > Manage Scripts > Compile Scripts and Reload
  5. run the script from the Scripts menu

You can check, edit and disable the scripts via the library: Scripts > Manage scripts > Library...

How to enter

  1. create a gist or snippet or pasterack of your script.
  2. submit your entry.

Prizes

Prizes are limited but still available! Enter while stocks last.

In addition to the glory and admiration of your peers…

  • If you participate once, you get stickers, and an exclusive badge for your GitHub profile recognising your efforts and contribution to the community.
  • if you participate twice time, you get also a mug,
  • if you participate three times, you get also a t-shirt

You can participate more than once.

Reminders:

  1. quickscript uses standard racket no special scripting language - and you can require any package you like
  2. no installation required quickscript is already part of DrRacket

Have you have any trouble using quickscript?

Please let Stephen De Gabrielle know as an important outcome of this competition is identifying barriers to use; I’ll do my best to help resolve any issues.

Need inspiration?

Check out the existing entries or look at the scripts in scripts-extra

More info at the competition repo.

Standard Fish Summer Picture Competition 2020

Big changes to the competition this year!

No limits!

You are no longer limited to pictures; we will be celebrating contributions in all forms of creative coding; anything is an acceptable entry.

All skill levels

This competition encourages participation at all skill levels; it’s a great way to learn something new or expand your horizons if you are new to Racket and an experienced Racketeer wrangling macros on the high seas.

Get started

The official start of the unofficial standard fish competition is the forthcoming release of Racket 7.8 in early August - but don’t let that hold you back - get your creative coding boots on and get coding.

Resources/Get help

  • There will be a dedicated Racket Slack channel at #standard-fish - you need to get a slack invite at https://racket-slack.herokuapp.com/ if you haven’t already.

Full details are revealed in the competition readme at https://github.com/standard-fish/racket-summer-picture-competition–2020

Racket around the web

Do you blog about Racket? Let me know!

New Releases

If you know of library releases or maybe your own libraries and you want them to be featured, please let me know.

  • majordomo(src/pkg) is a job manager that includes automatic retries with updated state on restart by David Storrs.
  • scribble-slideshow(src/pkg) is a library providing both a language and a library for writing slideshows using Scribble notation by Ryan Culpepper.
  • scribble-bettergrammar(src/pkg) is a Scribble library for typesetting grammars with annotations by William Bowman.
  • define-who(src/pkg) by sorawee.

Project in the Spotlight

This week’s project in the spotlight is Gregor (pkg/src) by Jon Zeppieri.

From the website:

Gregor is a date and time library for Racket. It provides:

  • data structures for representing dates, times, and their combination, both with and without time zones;
  • generic functions for accessing these data structures;
  • date and time arithmetic, based on a proleptic Gregorian calendar and the tz database; and
  • localized formatting and parsing, based on CLDR.

Featured Racket Paper

This issue’s featured paper is Compiler and Runtime Support for Continuation Marks, by Matthew Flatt and Kent Dybvig.

Abstract:

Continuation marks enable dynamic binding and context inspection in a language with proper handling of tail calls and first-class, multi-prompt, delimited continuations. The simplest and most direct use of continuation marks is to implement dynamically scoped variables, such as the current output stream or the current exception handler. Other uses include stack inspection for debugging or security checks, serialization of an in-progress computation, and run-time elision of redundant checks. By exposing continuation marks to users of a programming language, more kinds of language extensions can be implemented as libraries without further changes to the compiler. At the same time, the compiler and runtime system must provide an efficient implementation of continuation marks to ensure that library-implemented language extensions are as effective as changing the compiler. Our implementation of continuation marks for Chez Scheme (in support of Racket) makes dynamic binding and lookup constant-time and fast, preserves the performance of Chez Scheme’s first-class continuations, and imposes negligible overhead on program fragments that do not use first-class continuations or marks.

Upcoming Meetups

Do you know of any upcoming meetups I can advertise? Let me know.

  • (chaperone) RacketCon 2020, to happen virtually sometime in October. Fill in the survey form, if you haven’t done so already.

Contributors

Thanks to

  • Stephen De Gabrielle

for their contributions to this issue.

Disclaimer

This issue is brought to you by Paulo Matos. Any mistakes or inaccuracies are solely mine and they do not represent the views of the PLT Team, who develop Racket.

I have also tried to survey the most relevant things that happened in Racket lang recently. If you have done something awesome, wrote a blog post or seen something that I missed - my apologies. Let me know so I can rectify it in the next issue.


Contribute

Have you seen something cool related Racket? Send it in and we will feature it in the next issue.