#512 — July 30, 2020

Read on the Web

🎉 At the end of this week's issue we have an interview with the man, the legend, Michael Hartl of Rails Tutorial fame – don't miss it 😄

Ruby Weekly

The State of Ruby 3 Typing: Introducing RBS — Back in May we mentioned RBS, a language being used for type signatures in Ruby programs, but this is a much more accessible introduction to the concepts around it. RBS and the tooling around it will ship with the eventual Ruby 3.

Soutaro Matsumoto

RubyMine 2020.2 Released — RubyMine is a commercial Ruby IDE but popular enough for a release to be noteworthy :-) There’s a new UI feature for tracking and listing issues within a file of code, support for the Liquid template language, and full GitHub pull request support.

JetBrains

CI/CD with Docker and Kubernetes eBook by Semaphore — Download the free eBook and learn how to deliver cloud-native applications at high velocity.

Semaphore sponsor

TTY::Logger 0.4.0: Structured, Attractive Logging on the Terminal — Nice looking colorized and formatted logging. Part of the popular TTY suite of libraries, which I encourage you to check out when you get the chance. There are libraries for colorizing output, moving the cursor around, writing big fancy text and more.

Piotr Murach

⚡️ Quick bytes:

  • If you're feeling nostalgic for a bit of Ruby history, Past Rubies is a project (and newsletter) looking back at Ruby news from long ago.
  • On the Ruby on Rails Podcast, Brittany Martin and Haroon Ahmed have talked about rails new .. --minimal, a new way to create a truly lightweight Rails app.
  • And don't forget to check out the Michael Hartl interview at the end of this issue ;-)

💻 Jobs

Senior Rails Developer (Remote/Flexible) — YourGrocer delivers fresh food from local independent shops, and we're looking for an experienced developer to join our growing team.

YOURGROCER.COM

One Application, Hundreds of Hiring Managers — Use Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.

Vettery

ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here.

📘 Articles & Tutorials

To bundle exec or Not? That Is the Question — If you’ve ever impulsively used bundle exec without thinking about it and then wondered if you really need to, this explanation may help.

Ariel Juodziukynas

Be Cautious with Coercion Methods — A quick look at Ruby’s built in coercion methods (all those mostly starting with to_...) and some caveats that come with their usage.

Piotr Solnica

Best-Practices on How to Speed Up Your Postgres Queries. Free eBook

pganalyze sponsor

How I Write Tests for My Rails (API) Apps“My strategy of writing tests for Rails applications. Integration tests over unit tests. No to 100% test coverage.”

Prathamesh Sonpatki

Some SQL Tricks of an Application DBA — A neat article with a variety of non-trivial tips for database development. If you ever touch SQL, you should find something useful here or at least enjoy the exploration.

Haki Benita

A Silly Thing You Can Do with the Ruby Parser — ‘Silly’ is like catnip to me. The trick here is defining a class in a rescue clause. You probably don’t want to, but.. you can 🤷‍♂️

Penelope

▶  Noah Gibbs on When Not to use Rails

Rails with Jason Podcast podcast

🛠 Code and Tools

RSpec Queue: Optimally Distribute and Run RSpec Suites Among Parallel Workers — Speed up those CI builds by running your RSpec suites across workers in parallel, all controlled by a centralized queue.

Skroutz

ImageInfo: Finds The Size and Type of Images from the Web — We first linked this 5 years ago but it’s just had an update. It tries to find out image size info for images over HTTP by fetching as little of the file as possible.

Pierre-Louis Gottfrois

Prevent Outages with Timely Upgrades of Your Rails Project — Outdated Rails dependencies don't mesh well with cloud dependencies. Act before your cloud provider leaves you dangling.

Kodius sponsor

To ERB and Beyond: What’s New in Bridgetown 0.16 “Crystal Springs”Bridgetown, a Ruby static site generator, has added plugins for Haml and Slim, which you can use with their Liquid templates for great good.

Jared White

Counter Culture: 'Turbo-Charged' Counter Caches for Rails Apps — Boasts improvements over standard Rails counter caches.

Magnus von Koeller

Torch.rb: Deep Learning for Ruby — A way to use Torch, an open source machine learning framework, more commonly associated with Python.

Andrew Kane

dyndnsd.rb 3.0: A Small, Extensible DynDNS Server Powered by Rack

Christian Nicolai

His Ruby on Rails tutorial is a rite of passage for many budding Rubyists, including at least one of the curators of this newsletter. We’re grateful that he’s taken the time to answer a few questions today:

Back in 2010 when you did the first Rails Tutorial, did you think it’d be popular a decade on?

I certainly hoped so. I could tell from its design and momentum that Rails had a good chance of being a relevant technology for many years to come. And the Web certainly wasn’t going anywhere!

What accounts for its staying power?

It owes a lot to the staying power of Rails itself. Rails creator David Heinemeier Hansson and the other core Rails developers have done a great job of keeping Rails relevant in a changing web development landscape.

As for the Rails Tutorial specifically, it has helped to have the support of the Rails community, which has made the Rails Tutorial (along with its parent company, Learn Enough) a viable business. The financial support of Rails Tutorial customers has made it possible to continue updating the tutorial as Rails has evolved and grown.

What most excites you about Ruby’s and/or Rails’ future?

Ruby has a beauty and malleability that set it apart from competitors like Python and JavaScript. With Ruby-based companies like Stripe and Square supporting it, I expect Ruby to continue to thrive.

Rails, meanwhile, powers some of the biggest and most technologically savvy sites on the Web. Did you know that, in the run-up to Rails 6, both GitHub and Shopify ran their production sites off of the latest development version of Rails? That’s the kind of battle-testing that hardly any other frameworks can match.

You claim to be a philosopher. How do you use that in your everyday Ruby/development work?

I assume you’re referring to the inclusion of “natural philosophy” in my Twitter bio. That term is an old-timey phrase that roughly means “science”, but it suggests a more integrated and even “spiritual” approach to its subject. It emphasizes that science very much belongs as part of the “liberal arts”. That’s the view I took in my own studies, even as I eventually specialized en route to a Ph.D. in theoretical physics.

As a developer and educator, I apply this approach to integrate other areas of knowledge into my work, including fields like literature, history, and art. For example, if you look closely at the Learn Enough tutorials, you’ll find frequent references to Greek mythology, Roman history, and English literature. I think developing an appreciation of that broader perspective is an important part of a technical education.

What will the Rails Tutorial look like in 2030?

In 2030, the Rails Tutorial will be delivered by direct upload to your neural implant, like kung fu in The Matrix. “Whoa,” exclaimed Keanu. “I know Ruby on Rails!”

Michael is cofounder and principal author at Learn Enough.