Welcome to the thirty-fourth issue of Racket News.
We have a jam-packed newsletter this time. The start of the 7.8 release process is here, new wiki pages, new bloggers, and we have a new competition organised by Stephen De Gabrielle and Laurent Orseau: the Quickscript Competition. Find all the details in this issue - ready, set, go!
Grab a strong good-ol’ espresso and lets go. Enjoy!
Table of Contents
- What’s New?
- The Quickscript Competition
- Racket Around the Web
- New Releases
- Project in the Spotlight
- Featured Racket Paper
- Upcoming Meetups
- Racket Project Statistics
- The Racket Survey 2020 is here courtesy of Stephen De Gabrielle and Sam Tobin-Hochstadt. Read the blog post and take a few minutes (10–15 mins.) to fill in the survey, which will be open until July 31st.
- A quick reminder that besides the Quickscript competition we have also the Summer Picture Competition ongoing.
- There’s a new Wiki page on Embedding Racket by Nathaniel Griswold - thanks for the valuable contribution.
- There a new Racket blogger in the block: Peter A Wood that started learning Racket and is blogging his progress.
- A good way to start contributing to Racket is to find easy to fix bugs and get started. There’s a wiki page for that!
- Racket 7.8 release process is about to begin. Upcoming date (for July) are as follows:
- 7th: Branch day, merge window starts
- 15th: Merge window ends, testing starts
- 22nd: Testing ends
Quickscript is the scripting functionality behind the DrRacket
For the month of July we will be running a Quickscript Competition: Write your own script and win prizes! There will be weekly winners in categories to be determined by the judges and overall awards at the end of the month.
We follow Racket’s and the ACM’s Code of Conduct.
There will be amazing prizes!
- An exclusive badge for your github profile recognising your efforts and contribution to the community.
- Socks/Mugs/Hats/Stickers with the Racket logo - to be announced on Racket Users mailing list/google group.
Scripts licensed appropriately will be included in a package for installation and universal fame.
End date: 31-July (starting officially now)
Getting started for the impatient in DrRacket.
Help and discussion will be available through the #quickscript-competition slack channel.
Once your script is ready, submit your entry!
Need some ideas to get started?
Here’s a script to open Racket News from DrRacket, submitted by Stephen De Gabrielle.
#lang racket/base (require browser/external quickscript) (script-help-string "Opens racket-news.com in the browser.") ; Launch https://racket-news.com in browser (define-script racket-news #:label "Racket News (browser)" #:menu-path ("&News") #:help-string "Opens racket-news.com." (lambda (str) (send-url "https://racket-news.com") #f))
Another good example is the Open terminal here script. It will open a terminal in the same folder as the currently selected file on Linux, MacOS and Windows. You can get it by installing or updating the quickscript-extra collection, or just copy the source directly into your DrRacket script library.
Fix (08.07.2020): Updated documentation links to point to snapshot documentation.
Racket around the web
Do you blog about Racket? Let me know!
- Racket Survey 2020 by Stephen De Gabrielle and Sam Tobin-Hochstadt.
- Learning Racket by Peter Wood.
- (practical-python->racket introduction) by Peter Wood.
- (practical-python->racket approach) by Peter Wood.
- (practical-python->racket 1.3 numbers) by Peter Wood.
- (practical-python->racket exercise 1.7 mortgage) by Peter Wood.
- Deploying Racket Web Apps by Bodgan Popa.
- Ishido by Alex Harsányi.
If you know of library releases or maybe your own libraries and you want them to be featured, please let me know.
tesselation(src/pkg) is a library to assist in the creation of geometric designs by Zachary Romero.
mind-map(src/pkg) is a library for authoring mind maps using Racket by Sage Gerard.
shlex(src/pkg) is a library for simple lexical analysis for Racket by
nasa-open-api(src/pkg) is a library for a handful of NASA’s Open APIs by Michiah Hugi.
place-controller(src/pkg) is a library to encapsulate Racket places using helpful procedures by Sage Gerard.
Fix (07.06.2020): description of
shlex package (thanks
Project in the Spotlight
From the website:
The Cassius Project develops tools that understand how web pages render. Leveraging modern equation solvers, the Cassius Project hopes to develop a new class of verification, synthesis and debugging tools for web pages.
The Cassius Framework is a mathematical formalization of web page layout, mostly implementing CSS 2.1. CSS is huge, so Cassius supports only a subset:
- The CSS 2.1 box model: margins, padding, and borders
- Min and max widths and heights
- Percentage and em measurements
- Colors, foreground and background
- The inline, block, and inline-block display modes line-height and font-size position and positioning properties float and clear
Featured Racket Paper
This issue’s featured paper is Automated Reasoning for Web Page Layout, Pavel Panchekha and Emina Torlak
Web pages define their appearance using Cascading Style Sheets, a modular language for layout of tree-structured documents. In principle, using CSS is easy: the developer specifies declarative constraints on the layout of an HTML document (such as the positioning of nodes in the HTML tree), and the browser solves the constraints to produce a box-based rendering of that document. In practice, however, the subtleties of CSS semantics make it difficult to develop stylesheets that produce the intended layout across different user preferences and browser settings. This paper presents the first mechanized formalization of a substantial fragment of the CSS semantics. This formalization is equipped with an efficient reduction to the theory of quantifier-free linear real arithmetic, enabling effective automated reasoning about CSS stylesheets and their behavior. We implement this reduction in Cassius, a solver-aided framework for building semantics-aware tools for CSS. To demonstrate the utility of Cassius, we prototype new tools for automated verification, debugging, and synthesis of CSS code. We show that these tools work on fragments of real-world websites, and that Cassius is a practical first step toward solver-aided programming for the web.
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.
Racket Project Statistics
Some data about the activity in the Racket et al. repositories, for the month of June, 2020.
|# commits||Issues (new/closed/open)||PRs (new/closed/open)|
Contributions by (18):
- Alex Harsanyi
- Alexis King
- David Florness
- Fred Fu
- Gustavo Massaccesi
- Matthew Flatt
- Michael Ballantyne
- Paulo Matos
- Philip McGrath
- Robby Findler
- Ryan Culpepper
- Sam Tobin-Hochstadt
- Sancho McCann
- Sorawee Porncharoenwase
- Spencer Florence
- Stephen De Gabrielle
Of these, 4 are new contributors for 2020:
- Alex Harsanyi
- Michael Ballantyne
- Sancho McCann
Repositories included above are:
- Stephen De Gabrielle
for their contributions to this issue.
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.