European Ruby Conference (EURUKO) began twenty years ago as a two-day Ruby enthusiasts' symposium and has since become one of the largest Ruby conferences in Europe. This year, the event took place in Vilnius, on 21-23 September and we were there. So, if you missed it, don't worry! In this blog post, you can find a quick summary of each presentation as well as our thoughts and experiences.
The conference started with a quick, but warm welcome from Sergey Sergyenko. He greeted all attendees and gave all details about the event.
The opening keynote was delivered by Steven Baker, the author of the well-known RSpec gem. He described the beginnings and motivation behind creating the library (it was made primarily as a teaching tool) and his complicated relationship with RSpec. Steven pointed out the significance of mentors, who encouraged him to continue working on the gem. He finished the talk with a very inspiring message: "Be brave, don't be afraid to release and try out your ideas!".
Then, it was time to advertise the community talks. During the conference, there was a special Unconference track - the first two days of the conference had eight slots for presentations made by speakers from the audience. We presented the quick pitches about our topics (each of us presented, too) and then all attendees voted for the most interesting presentations.
The next talk made by Carla Urea was a confirmation that passwords are not ideal. Nowadays, it's possible to adopt a passwordless approach, which is more comfortable, more secure, and significantly reduces the costs of security maintenance. Carla introduced various authentication factors and demonstrated the usage of Web Authentication API. She also mentioned the passkeys and how to integrate them into web apps. Her talk served as an invitation into the passwordless world (now I hate passwords too, thanks Carla!).
The final presentation before the lunch break was a comprehensive lecture on Bundler. Hiroshi Shibata, Ruby core team member and the main contributor to Bundler, described the details of the dependencies resolution process in Gemfile, especially in the context of recent changes (introducing PubGrub). He also revealed that his next major goal is integrating RubyGems and Bundler codebases (fingers crossed!).
After the lunch (and coffee) break, it was time for the last scheduled talk: Hitoshi Hasumi presented PicoRuby, his implementation of mRuby. It was designed to be lightweight and more memory-efficient, making it perfect for microcontroller programming. Hitoshi provided a brief theoretical intro and presented a live example of how to write Ruby code on a microcontroller, all of which he executed on a Raspberry Pi board!
The afternoon belonged to Unconference talks:
- Adrian Marin, Build Rails apps 10x faster
- Chikahiro Tokoro, Generate anonymized database with masking
- Alexander Nicholson, Sinatra is all you need!
- Johnny Shields, Ruby threads (and so can you!).
The day fully packed with the knowledge wasn't finished yet. The main event for the evening was a stunning ruby-doo-bee-doo party. It took place in the old brewery and the transportation was unique: we traveled there by our own (well, rented to be precise) train! However, this wasn't the only exceptional attraction prepared for this EURUKO edition. The organizers brewed a special beer with a delightful ruby color! (and the taste was.. pretty original). Let me just say that the party was a blast. The atmosphere on the back train resembled euphoric sports fans celebrating a victory, rather than the usual attitude of software conference attendees.
The next conference day began with a complex, but essential topic: the utilization of GVL (Global Virtual Machine Lock) in Ruby. In the video, Matz described the backstory behind switching GIL (Global Interpreter Lock) with GVL in Ruby. In the context of the whole computer industry changes, he listed many advantages of GVL: it's simpler, safer, and consumes less memory. Finally, the creator told us about Ractors and their role in making Ruby more concurrent-friendly.
Scott Chacon, in the next talk, questioned the Git tools we use every day. His presentation encouraged everyone to ask the question: WHY? Do it enough times and you will be able to reconsider your technical choices. Scott, who is a co-founder of Github, showed very useful Git command examples contrasted with a few impossible-to-answer questions (such as how to use Git to know which pull request introduced a specific change in the file).
The next presentation served as a compendium of the multithreading knowledge in Ruby. Ivo Anjo, a senior developer at DataDog, demystified several myths about using threads in web applications while offering practical advice and useful tips. If you think about using any multithreading mechanism in Ruby, this talk is a must-watch.
The closing talk from the official agenda was delivered by another guest from Japan, Masafumi Okura, the author of the Alba gem. The talk heavily concentrated on RSpec (which seemed to be a leading topic of the conference) and specific methods: describe, let, it. Masafumi clearly explained the magic behind RSpec DSL and demonstrated how to efficiently navigate gem codebases.
Second-day Unconference talks included:
- Daniel Susviela, Steven, just letitbe. a guide to improve your RSpec performance.
- Cristian Planas, A Rails performance guidebook
- Chris Hasiński, Fantastic databases and where to find them (the full version of this presentation was demonstrated at the Ruby Warsaw Community Conference and you can watch it here)
- Miron Marczuk, How to safely split your multi-tenant application (based on real examples!)
We concluded the day with the organized pub crawling. I must admit it's an unusual experience to meet Ruby fellows at each pub you visit!
The last conference day kicked off with a presentation about Feature Flags. Hana Harencarova shared her expertise with seamless releases using feature flags. The talk was full of tips and tricks based on her experience at Github, with practical examples and code snippets. Hana also showed how to use feature flags at a large scale.
The next point on the agenda was a crucial one: presentations from the potential host cities for next year's EURUKO. Each presenter had compelling and funny arguments behind their city (yes, Mariusz also presented Warsaw). However, the most convincing talk was delivered by the representatives of Tuzla in Bosnia and Herzegovina. Congratulations to them!
It wasn't the end of significant moments. The discussion panel took place after city pitching and proved to be very engaging. On one side, it reminded me why we all hate remote calls (yep, even Matz couldn't escape the typical internet connection problems). On the other hand, we could hear quite an original discussion. Conversation participants shared the story of their beginnings with Ruby and answered other questions (you can watch the entire panel on YouTube). Let me highlight the answers to the last question: "What do they expect from Ruby in the future?" Steven said that Ruby is already perfect (actually, since version 1.8), Carla pointed out that we should invite more junior developers into the community, Hana suggested that more companies should invest in the Ruby stack, and Hiroshi stated that the version control should be improved. Finally, Matz shared his vision of how Ruby will look in 30 years. The creator mentioned that he would be happy if the language were still alive and it would be great to see the Ruby community grow. We will do our best, Matz, I promise.
Matias Korhonen was the next speaker. He presented how to compile WebAssembly (WASM) modules from Ruby. It's possible from Ruby version 3.2.0 through WASI - The WebAssembly System Interface. If you ever wondered how to execute compiled Ruby code on the website: the presentation video is obligatory. And if you want to see the scary Hello World program: check out the version compiled in Wasmtime.
The very last talk for the conference was provided by Tom de Bruijn. The developer from AppSignal presented the story of transitioning the Ruby configuration code into reusable and readable DSL. Tom showed the step-by-step instructions, very educating if you think about creating your own DSL.
The event closed with a farewell speech by Sergey and the group photo. Afterward, we had an opportunity to explore the beautiful city of Vilnius and enjoy one more visit to a local pub.
EURUKO 2023: three days fully packed with knowledge and networking, RSpec love and hate, a beautiful city, and an endless list of pubs to crawl. We'd like to congratulate the organizing team; the huge work put into the event was unmeasurable, but the results speak for themselves! We hope that next year's hosts in Bosnia and Herzegovina will meet the high expectations set by this remarkable event.