#​624 — October 13, 2022

Read on the Web 🇺🇦

Together with  Honeybadger

Ruby Weekly

Coming to Ruby 3.2: Data.define — Several weeks ago we linked to Victor Shepelev's proposal for bringing native value objects to Ruby and things have progressed. Brandon shows us how they’ll work and why an immutable alternative to Struct will prove useful.

Brandon Weaver

What It Took to Build a Rails Integration for Rodauth — If you have been putting off trying Rodauth (an advanced authentication system that works in any Rack-based app) due to its lack of a natural Rails integration, now may be the time to jump in. Also, the amount of work to create the convenience of Rails is significant.

Janko Marohnić

Do Your Users Trust You?🤥 — Transparency inspires trust—when your next outage happens (planned or unplanned), communication is key. Status pages alert your users of issues early and keeps them updated as each incident unfolds with incident management. Get yours now.

Honeybadger sponsor

Bridgetown 1.2 (“Bonny Slope”) Released — The Ruby-based static site generator introduces a new Ruby-based configuration format and boasts plugin related improvements that promise to “blow the doors wide open for a new level of sophistication and quality” plus a boast that Bridgetown is "no longer just a static site generator but a feature-rich Ruby web application framework."

Jared White

🐘  Postgres 15 Released — The Postgres database system is such a fundamental part of so many Ruby and Rails apps that we thought we’d shine a spotlight on the news release in the shape of today’s ‘newsflash’ issue of Postgres Weekly that highlights its main new feature including MERGE support, faster sorting, new regex functions, and a lot, lot more.

Postgres Weekly

QUICK BITS:

  • The Ruby Prize 2022 nominees have now been decided and the jury (which includes Matz) is now picking the winners who will be announced on November 11.

  • RubyMine 2022.3 EAP2 is now available.

  • FastRuby posted a case study of SoundCloud's upgrades to its monolithic Rails-based app. It took months to take such a substantial app up from Ruby 1.9 to 2.5 and Rails 2.3 to 6.1 (I've done a similar migration on a smaller app before and I can believe this time frame!)

Using Set Operations on Arrays — Before you say “Why not just use a Set?” this post will teach you some things about array operations so you can use arrays more effectively.

Domhnall Murphy

Teleport is the Easiest, Most Secure Way to Access Your Infrastructure — Get secure access to SSH nodes, Kubernetes clusters, web apps, PostgreSQL and MySQL databases behind NAT with Teleport.

Teleport sponsor

On the Importance of Pull Request Discipline — Follow Yash’s tips to prevent your PRs from getting roasted in the group chat.

Yash Kapadia (Shopify)

▶  Under the Hood and on the Surface of Sidekiq
Paweł Dąbrowski

🛠 Code & Tools

RuCaptcha 3.0: A Standalone Captcha Approach for Rails Apps — v3 has moved to using Rust to draw the obscured text images. If third party systems like Cloudflare's Turnstile or Google's reCAPTCHA aren't for you, this might be a viable alternative. This project could also provide a useful look at writing your own Rust-backed gems.

Huacnlee

Hypershield: Shield Sensitive Data in Postgres and MySQL — Looking to hide sensitive data to help comply with GDPR, say? Hypershield creates ‘shielded’ views that can hide sensitive tables and columns.

Andrew Kane

Fixed Price Monthly Code Maintenance and Upgrades for Rails Apps

reinteractive Pty Ltd sponsor

Alba 1.8: The Fastest JSON Serializer for Ruby — Not new, but reader Trevor Turk encouraged us to shine a spotlight on this project again to encourage its ongoing development. GitHub repo.

Masafumi Okura

Parallel: Parallel Processing Made Simple and Fast — Uses processes, threads, or Ractors (Ruby 3.0+ only) to cover all bases.

Michael Grosser

Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut

Shortcut (formerly Clubhouse.io) sponsor

Richard, a.k.a. Schneems, is well known in the Ruby world (1.9+ billion library downloads to his name!) and has spent years helping people contribute to open source. He joins us to talk about one of the busiest months for maintainers.

This month is Hacktoberfest. It's had a controversial past few years. Can you catch us up?

The event is massive. Hacktoberfest is a yearly promotion where developers earn a free shirt by getting commits into open source projects. It's intended to increase contributions but also places a large burden on maintainers. They get overwhelmed due to an influx of pull requests. To combat this, the rules were adjusted so only projects that opt-in via a hacktoberfest label can earn qualifying commits.

They have 40,000 shirts to give out this year. But some say those participants don't stick around. Some people love it, and some hate it.

What do you think? Are you a Hacktoberfest lover or hater?

The event provides anyone looking to start contributing to open source a fun excuse to begin and a good 'timebox.' That can be a powerful motivator to get someone to take their first steps.

Anyone who treats it as a game to be hacked is just taking away from the community. If you're only going to make four of the fastest pull requests possible and then not show up again for an entire year? That's not helpful.

What do we need to do to get more help from maintainers?

Beyond shirts and sponsorships, they need committed contributors who show up and take on some of their load. We need to help engage contributors who want to grow into maintainer roles. Those contributors need experience reproducing issues, documenting code they've never seen, engaging with the community, and reviewing pull requests. These are all necessary skills, and like any skill, they can be taught.

Beyond skills, what's the one thing holding people back from contributing more?

Time. I sent a survey to 66,000 CodeTriage subscribers, and the near-universal answer is people wanted more time. We need to build systems and structures that free up time for contributions.

Does that mean more companies need to give 20% time?

20% time was popularized by Google when they gave employees one day a week to work on whatever they want. 20% time doesn't work. Employees aren't incentivized to use that time, so it atrophies. If your company never promotes you because of your open source work, they're not really paying you to work on open source.

One approach is working with contributors to help them build a system that works with their life. Before the pandemic, I could never find the time to work out. Once I found systems that work for me, I consistently exercise three days a week. Open source is like that too. When you have a system that supports you, you find ways to make the time.

Is anything else holding people back?

Absolutely. It's scary. People are afraid of doing something new in public. They might not openly state this as a problem, though. One mindset shift is to reframe the work. It's not like public speaking. Often getting anyone's attention can be a challenge. It's more like you're working in a cafe in public. Everyone around you is probably too busy to notice when you make a mistake. Plus, they're making mistakes too.

Find Richard's book on contribution for sale at How to Open Source 📚. You can sign up for CodeTriage to find and help projects in need. If you want to earn a Hacktoberfest shirt 👕, you can find details at hacktoberfest.com.

Jobs

Sr. Software Engineer at Opinion Stage (Remote) — Opinion Stage is a platform used by 100,000+ customers for making visual conversational surveys & quizzes that drive top results.
Opinion Stage

Backend Engineer, Ruby on Rails (Remote) — Booqable is a SaaS application for the global rental industry. We are looking for an experienced Backend Developer.
Booqable

Find Ruby Jobs Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired