Josef Liška

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

Ruby Unconf 2019

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.