☎️ Newsletter WoR #58: React 19 beta, better docs for Rails, consent in Tech, Dalí answers your questions...
A monthly newsletter about Ruby on Rails and the web
In this issue, we welcome the beta version of React 19, we share the substantial work taking place to update Rails documentation, we learn about RSpec, we throw shade on MidJourney, we touch upon TypeScript and DevOps…
😚 French version (version française) | 🤌 Italian version (versione italiana) | 🤝 Spanish version (versión española)
[ISSUE FROM THE VAULT]
Over the years, some issues got lost in translation and you couldn’t read it, that’s why we’re translating and sharing those progressively. They will also be a glimpse from the past. Thanks to Marine for her precious translations and Jade for her reviews !
This one is from December 2023:
Web News 🗞️
🛎️ React News
It’s already been two years since React 18 has been released. We mentioned it in newsletter #31 with a guide from Shruti Kapoor. We remember the community being a little disappointed back then with the lack of new features. React 19 fixes all of this with features related to Server Components leaving the Canary channel.
✨ React 19 Beta - The React Team
🤏 News in Brief
TypeScript 5.5 Beta was released on the same day as the React 19 Beta
This month also saw the release of Bun v1.1, packed with new features (and the writer tears up just thinking of the short film Bao from Pixar and shares it with you to not feel alone with her feelings)
The first edition of JS Naked Day took place in April. It’s actually very NSF: devs are called to remove all JavaScript from their websites for 24 hours. We’ll join next year! #noframeworkday
KubeCon Europe took place in Paris this year. You can read Maryam Tavakkoli’s recap here
Supabase, the open-source alternative to Firebase (owned by Google) is now available to the general public (and Super Bass can also be stuck in your head)
We were saddened to hear that Women Who Code - a vibrant community of developers organizing events throughout the world and offering financial support - closes to due lack of funding.
Ruby and Rails News 🛤️
Teaming up with the Rails Foundation, Ridhwana Khan and Bhumi Shah are ✨updating the Rails documentation✨. Here's what they have to say about this project:
💬 We're updating the Rails documentation, filling in those crucial gaps, and updating the content. Our goal is to make the guides clear and consistent for everyone, from new to experienced Rails developers. We want it to be a place where experienced developers can quickly look up something and where new developers can learn Rails concepts with clear explanations and code examples.
Interested in contributing? You can help by reviewing documentation PRs here - your input and feedback is greatly appreciated.
🤏 News in Brief
Solid Queue is a gem to manage queues for Active Jobs. It recently underwent a little glow up by becoming an official Rails gem. The related dashboard mission_control-jobs did too. We introduced both gems in newsletter #56
rails-news to create an app without installing Ruby locally, thanks to Docker magic
To practice by following along, a tutorial by Fiona Lapham: How to Build a Discord Bot in Ruby on Rails
Need more sparkles in your life? Here’s a library to easily add confetti to your app running Stimulus 🎉
If you’re using Stimulus, you can use Stimulus JS controllers from Stimulus Components
We introduced Phlex in newsletter #41 back in December 2022. Phlex UI has now been pre-released and is built using Phlex, TailwindCSS and Stimulus JS
Hotwire is now taught in universities 🫨
After years of “Is Ruby on Rails dead?”, is “Ruby on Rails Resurgence” the new evergreen article headline?
Ruby Tip 💎
Expect() expect{}
In Rspec, you can expect to receive a value or expect a change of value to occur. In both cases you will be able to use "expect".
expect()
will first evaluate the expression inside the brackets and will check if the returned value matches the expected value.
it "creates one more volunteer" do
create_volunteer
expect(Volunteer.count).to eq(1)
end
expect{}
observes the whole process to check if a change or an error has occurred.
it "creates one more volunteer" do
expect{ create_volunteer }.to change(Volunteer, :count).by(1)
end
The expression above is passing a block of code and can be rewritten as:
expect do
create_volunteer
end.to change(Volunteer, :count).by(1)
✨ Differences between expect and expect in Rspec - Yingqi Chen
✨ Mastodon is recruiting their next Core Web Developer !
Working with us: Mastodon is a German non-profit with a remote-only, primarily English-speaking team distributed across the world. Be part of a small team working on the generational opportunity for the future of social media !
[sponsored job posting]
On the Web 🕸️
❌ Opt-out out out
We almost forgot it existed but it’s still here: Tumblr - the micro-blogging platform - is still fairly active among the arts and queer communities. Tumblr once again raised the ire of users by announcing the upcoming sell of user data to Midjourney and Open AI. In an attempt to appease users the CEO of Tumblr announced that this operation will take place only if consent is received from each blog, respecting opt-out preferences. Really?
✨ The Tech Industry Doesn’t Understand Consent - Soatok
👩🏼🚀 Inspiration
From Senior Software Engineer to Staff Engineer: Paola Ducolin writes about her journey at Datadog, lessons-learned about communication, building a trust network, and leadership.
✨ My path to staff engineer - Paola Ducolin
🏳️🌈 A Bit of Reading
This month we send some love to Diversify Tech - Business and Ally Edition, a newsletter filled with fascinating articles on the state of diversity in tech, sharing the voices of under-represented profiles in the industry.
✨ Diversify Tech newsletter- Veni Kunche
Some Code 💻
🤖 Looking for Beta Testers for AI/Machine Learning Training
For years Assitan Koné has been sharing her experiences and knowledge with the community. We actually shared a video from her on technical interviews in newsletter #25 just over two year ago. We’re now helping a little by sharing her offer (with bargain prices) to test her training.
✨ Invitation to join AI MASTERY MADE EASY (BETA) - Assitan Koné - Caribbean Coder
☁️ Floating Away
Do you get scared when you see that cloud and DevOps experience is more and more required, even for front-end roles??!! (we do). This repo takes after the #100Devs challenge to get familiar with and get better at these skills.
✨ 100 Days Of Cloud DevOps Challenge - anj C.
Fun 🎉
☎️ Ask Jeeves Dalí
We’re questioning commercialized AI like ChatGPT or Dall-E that train (*cough* steal *cough*) using the work of authors and artists. They threaten artistic work instead of making repetitive tasks easier like we would have expected. We are however intrigued by this project that even Dalí could have appreciated (but who knows, the author only took grade 10 Italian): have a conversion with him using his Lobster Telephone and models trained from his writing.
✨ Art Exhibit Honoring Salvador Dalí Lets You “Ask Dalí” Anything On His 120th Birthday - Tanvi Joshi
(Two for one since we forgot it in the last edition of the newsletter 😬)
Events 🎡
🎟 Diversity Tickets for rubyday - Verona, Italy - May 31
The eleventh edition of the Italian Ruby conference will take place at the end of May. It has put in place a Scholarship program to offer tickets to students and under-represented groups in Tech so don’t hesitate to fill out this form if you’d like a ticket ✨😉
✨ rubyday in Verona, Italy - May 31
☕ Buy us a coffee to support the newsletter 🍰
✨ Join us: meet-up | twitter | website
Editors: Aurelie, Camille, Lucille and Juliette
English version: Jade
Italian version: Paola
Spanish version: Kattya