Robotics

Lightning Talk: Implementation of the language "Josef" in Ruby

Lightning Talk: Implementation of the language "Josef" in Ruby

by Josef Liška

In this lightning talk presented at Ruby Unconf 2019, speaker Josef Liška introduces the implementation of a programming language called 'Josef' in Ruby, highlighting its educational roots. He connects this new language with Karel, an older educational programming language designed to teach children how to code. Josef shares insights into the interactive tools he uses for workshops, emphasizing Etherpad for collaborative coding sessions.

Key points discussed include:

- Introduction of Etherpad: A tool for interactive workshops, allowing participants to collaborate in real-time.

- Background on Czech Writers: Josef draws connections between programming and literature, mentioning the Epic Brothers, Karel and Josef Čapek, and the origin of the word 'robot'.

- Educational Programming Language (Karel): Karel is an accessible language for children, enabling them to control a robot using basic commands. Its simplicity is compared to Logo, which also uses turtle graphics.

- New Implementation in Ruby: A new version of Karel, written by a friend from the Prague Ruby community, is more readable and forms the basis for a JavaScript engine running in web browsers. Although Josef was unable to demonstrate this live, he provided a screenshot showcasing commands in Czech for simple robot movements.

- Personal Anecdotes: As a father of two, Josef shares his experiences with his children during summer camps focused on the elements of nature. He discusses their ongoing project of building a low-cost tank that embodies these elements, mentioning coding APIs for movement functionality.

- Call for Collaboration: Josef invites interested individuals to collaborate on connecting the Josef robot with hardware, noting a giveaway for the constructed tank unit to an interested participant.

The talk highlights the intersection of coding, education, and family activities, promoting collaboration and interactive learning. Josef emphasizes engagement in programming as a fun and accessible way to introduce both children and adults to the world of coding.

00:00:02.690 Hello everyone, this is my presentation.
00:00:05.459 I'd like to introduce you to Etherpad, a tool that I really enjoy for conducting workshops. If you want to make the session interactive, you can open it yourself and even type in it.
00:00:11.400 I’m from the Czech Republic, which has a few famous writers. One or two of them are the Epic Brothers, Karel and Josef Čapek. You might also know that the word 'robot' is an invention of Josef Čapek.
00:00:20.160 Since the 1980s, there has been an educational programming language called 'Karel', named in memory of Karel Čapek. It's similar to Logo, with its iconic turtle graphics. I would like to show you a screenshot of Karel as I remember it from my youth.
00:00:36.780 In Karel, you control a robot using very simple commands. Basically, children who can type can also control the robot. It uses basic instructions like 'step', 'turn', and so on. This older version was likely written in Pascal and was used in educational settings.
00:01:11.190 A friend of mine from the Prague Ruby community, Cooperhog, wrote a new implementation of this language. While it's not exactly the same, it's slightly better and more readable. This new version is written in Ruby, and I used it to generate a JavaScript engine that runs in the browser.
00:01:36.450 Unfortunately, I wasn't able to run the demo on my laptop due to time constraints, but I do have a screenshot here. The demo uses commands in Czech, such as 'turn left' three times and 'turn right'. This demonstrates programming very simple robots.
00:01:56.010 Now, in the second part of my presentation, I want to share that I am a father of two boys who love to play. In fact, I enjoy playing even more than they do! We have participated in summer camps where we focused on the four elements. Our first camp focused on water.
00:02:21.239 During that camp, we built a simple, low-cost tank, and we are trying to improve it every year. This year, we hope to add some flames to represent fire as the next element. I have some code to control the tank, which has a straightforward API, allowing me to send POST requests to make it move.
00:02:55.889 With this code, I can make the tank go straight, turn left, and right, or even dance. Now, let’s do a small demo!
00:03:19.230 Thank you for your attention! Let's see if everything is working well. [Music plays] Thank you for your patience while we set this up.
00:03:27.030 The overall idea is to connect the Josef robot in the web browser with this hardware. I would like to invite anyone interested to collaborate. Also, this tank will be given away to someone who is genuinely interested in it, as I won't be trying to smuggle it through airport security.