Racket meet-up Saturday 7 May 18:00 UTC :racket:

Racket meet-up Saturday 7 May 18:00 UTC :racket:

2022-05-07T18:00:00Z

Online: https://gather.town/app/wH1EDG3McffLjrs0/racket-users

When: First Saturday EVERY Month UTC: 18:00

  • Show and tell
  • News & rumours
  • AOB

30 minutes but can overrun

London, United Kingdom Sat, 7 May 2022 at 19:00 BST
Pacific Time, PT Sat, 7 May 2022 at 11:00 PDT
Eastern Time, ET Sat, 7 May 2022 at 14:00 EDT
Taipei, Taiwan Sun, 8 May 2022 at 02:00 CST
Mountain Time, MT Sat, 7 May 2022 at 12:00 MDT
Central Time, CT Sat, 7 May 2022 at 13:00 CDT
Central European Summer Time, CEST Sat, 7 May 2022 at 20:00 CEST
Corresponding UTC Sat, 7 May 2022 at 18:00

Time converter

Note: Discussing here is fine. I misunderstood the settings for announcements. If you need low volume announcements only please adjust your 'watching first post' in notification preferences.

Prefer to chat? Join us on Racket Discord or Slack

3 Likes

Reminder the Racket meet-up is Saturday 18:00 UTC


Racket meet-up Saturday 7 May 18:00 UTC :racket:

May 7, 2022 7:00 PM

Online: https://gather.town/app/wH1EDG3McffLjrs0/racket-users

When: First Saturday EVERY Month UTC: 18:00

Late update!
@peat is going to show off Racket running in the notebook environment at the meet-up tomorrow.(tonight? Idk)

Sadly I can’t attend as I’m going to a music festival instead. Let me know how it goes.

Bw
Stephen

3 Likes

Here's a summary of the meeting as I remember it.

Peter Schmiedeskamp (@peat) showed us how to install Racket on Amazon SageMaker Studio Lab. As far as I understood, you can use Jupyter Notebooks in this environment, but you don't have "real" shell access, so Peter's workaround is to execute shell commands from a Jupyter Notebook to install a Conda environment, in which then Racket and IRacket are installed.

Peter then showed a second Jupyter notebook with some Racket examples, including graphical output. This looked pretty nice! :slight_smile:

You can find more links on Peter's work at his recent post.

Relatedly, we discussed using Racket for Data Science. I don't remember much now, only that Hazel Levine's Sawzall library was mentioned, which provides a data frame implementation for Racket. Other attendants, please add what I forgot. :slight_smile:

After that, I talked about my Racket Glossary project. It started from the very long thread here on Discourse. The idea of this project is to hopefully counter somewhat the feeling of being overwhelmed by the Racket Reference after having learned the basics of Racket from the Racket Guide. I collected a lot of terms and categorized them in three categories (basic, intermediate, advanced), so you can start with the "basic" concepts and then turn to the intermediate and advanced stuff later.

So far, only a few entries in the glossary exist, but if you look at the Scribble document, you can see that I go beyond typical glossaries by giving more context and often examples for the glossary entries. I plan to write the entries in the "basic" category, then publish the glossary as a Racket package, then continue with the "intermediate" and "advanced" entries. I'll want feedback especially for these latter categories. :wink:

In a related discussion, I think we agreed that there's a lack of "intermediate" documentation, i.e. on how do you continue with Racket once you're through the Racket Guide. You can find several Scheme/Racket introductions, but I have never seen, for example, a document that describes how to structure Racket programs.

We also talked a bit about the Racket Wiki. Information in the wiki seems to be rarely found when you do a web search on a Racket topic. Also, there were different opinions on what the wiki is or should be used for.

That's all I remember right now. What did I forget? :slight_smile:

6 Likes

I tried to write the racket related blogs on my post targeting intermediate users and showing how various Racket features and libraries work together and can be used in more complex applications. Here are a few examples:

  • You may not want to implement yet another Tetris game, but that blog post will show how to use pict for basic graphics, and combine them in a GUI canvas% and build a full GUI around it. It also shows how to use contracts and unit tests.
  • You may not want to play Ishido or Chess but those blog posts will also show how to use pasteboard% and snip% objects to build interactive canvas based applications.
  • You may not want to build a Markdown viewer, but that blog post will show you how to use the text% and editor% classes to use complex text formatting.
  • You may not ride a bicycle and may not want to analyze your local climbs, but that application shows how to use various packages to load and analyze data and build a GUI application around it. The entire application is a single 900 line of commented Racket code and it does something non-trivial and useful (well, useful to me anyway :slight_smile: )

There are more examples on my blog, and I used all the presented features in my own production applications. I wrote them in the hope that other users will find it easier to determine how things fit together...

While everyone wants good documentation. writing it requires a lot of coordination and effort, and it is unlikely to happen. It is much simpler and manageable if the community writes "intermediate and/or advanced tutorials" covering various topics -- this is what I tried to do. My own interest and expertise is in GUI, graphics and the plot library, so my blog posts cover those topics. Perhaps others can write blog posts on other topics, like web development?

Alex.

8 Likes

Just a note, Sawzall (Hazel's library) uses the data frame implementation from the data-frame package by @alexh.

4 Likes

@alexh I've come across your blog posts at some point and am impressed how much effort you put into those! Thank you! :heart:

I guess for me the "You may not want to" part was what made me want to revisit these articles possibly later. They felt "too concrete" for me at the time and I didn't have an intrinsic interest in most of the topics.

As I just looked through your Racket posts, I found An Overview of Common Racket Data Structures and I remember I found this one helpful. :slight_smile: As I understand better now in the context of Learning racket/scheme - how do you get to the practicing stage?, what was helpful for me wasn't only what you wrote about the data structures, but that these were the data structures and APIs I should focus on. :slight_smile:

What you wrote in this discussion thread also made me realize that different people might understand "intermediate" differently. For someone who's a long-time Racket user, some of my "intermediate" topics may belong in their "basic" category.

Personally, I am looking/wishing for more documentation in the Racket ecosystem "between" your post on datastructures and the posts on solving concrete problems (although I do understand that reading about concrete solutions to problems can inspire you in the solution for other problems). (I have ideas now what articles I'd like to see and maybe even write, but I need to think more about it.)

What I wrote above isn't a criticism of your blog posts! As I said, they're great, and personally I think you should write the posts that you like to write. :+1:

5 Likes

Is now a good time to mention we welcome contributions to

:question:

4 Likes

ooh - we can make new cookbooks too?

Currently

  • Plot Cookbook - has a few nice plots but needs some simple ones too
  • GUI Cookbook - all examples work on Linux, Windows and macOS
  • Rsound Cookbook - this is a work in progress - it only contains ding.rkt :cry:
3 Likes

Your blog posts are incredibly helpful. Would be happy to contribute $.

2 Likes

Just to advertise, Jay McCarthy has a set of blog posts using Racket here:

https://jeapostrophe.github.io/cat-categories.html

3 Likes

Just saw Turing machines on https://jeapostrophe.github.io/cat-categories.html

Very nice.

You may want to look at my own code for Turing machines,

a universal one included.. See https://github.com/joskoot/turing

Needs some adaptations in order to allow it to be installed as a package.

If there is interest, I can do that adaptation.

Jos

2 Likes