#510 — July 16, 2020

Read on the Web

Ruby Weekly

Introduction to AWS Simple Workflow Service (SWF) — SWF is used for building and managing background jobs made up of numerous parallel or sequential steps, and like many AWS services it gets complicated fast despite the 'simple' moniker. This post covers the concepts along with a Ruby based example.

Adrian Ancona

System of a Test: Proper Browser Testing in Rails — Covers a few good practices for end-to-end browser testing in Ruby. Focuses on using Ferrum and Cuprite instead of Selenium and writing tests into your Rails app.

Vladimir Dementyev

Scout APM - A Developer’s Best Friend — Scout’s intuitive UI helps you quickly track down issues so you can get back to building your product. Rest easy knowing that Scout is tracking your apps performance and hunting down small issues before they become large issues. Get started for free.

Scout APM sponsor

fast_jsonparser: The 'Fastest' JSON Parser for Ruby — It wraps simdjson (written in C++) which is capable of “parsing gigabytes of JSON per second.” simdjson_ruby is another option here.

Anil Kumar Maurya

Removing SHA1 Passwords From RubyGems.org — RubyGems.org is changing their password storage approach which means if you have an account made before 2013 and haven’t logged in since then, you’ll want to do ASAP or you’ll face an email-based password reset later on (and if your address is out of date, you’ll have problems…)

Colby Swandale

⚡️ Quick bytes:

  • The second edition of Sandi Metz's 99 Bottles of OOP has come out in both Ruby and JavaScript variants.
  • Heroku user? Heroku is dropping TLS v1.0/1.1 support after July 31, 2021. mLab MongoDB, a commonly used MongoDB add-on, is also being removed from Heroku, so double check if you're using MongoDB from Heroku.
  • Redis in Ruby is a in-progress attempt at writing a book about reimplementing a system like Redis with Ruby as a learning experience.
  • Passenger 6.0.6 is out with a Ubuntu Focal (20.04) Nginx-based package release.

💻 Jobs

Backend Engineer - Marketing Engineering (Rails, Python) (f/m/d), Berlin, Germany — Role with Impact. Exciting projects. Benefits + amazing Team. Building the world’s leading talent platform. Join the Heyvolution.

HeyJobs GmbH

Find a Job Through Vettery — Use Vettery to connect with growing tech teams at startups and Fortune 500 companies.


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

📘 Articles & Tutorials

Generating Melodies with Markov Chains — I love when someone does something with Ruby that I have never considered. Here, it’s generative music that allows matt to “jam with the computer.” (And if you really want to go down the Ruby music rabbithole, don’t forget Sonic Pi.)

Matt Bettinson

Defining Gem Dependencies in Single File Ruby Scripts — This tip comes up from time to time and it’s worth being aware of especially if you like throwing together lots of small one file scripts like me! 😄

Nithin Bekal

Rails 6.1 Adds Support for where with a Comparison Operator.where("something > 10") grinds your gears? Say hello to .where("something >": 10)

Abhay Nikam

Letting Change and Uncertainty Advance Your Software Architecture — Learn to design architecture that's adaptable so you can iterate when things inevitably change as you start building.

CircleCI sponsor

Building a Toy Lexer in Ruby — Lexers form one of the first steps of most programming language/compiler implementations as they turn otherwise raw text into organized collections of elements that the compiler can work on further.

Alex Braha Stoll

Using Action Mailbox in Rails 6 to Receive Mail — A “mostly real-life” tutorial on using ActionMailbox to receive and parse incoming email.

Rob Race

Sharing Code with Ruby and Rails — This post is aimed at those a bit newer to Ruby, covering inheritance (both class and table based), mixins, and delegation. There are guidelines and gotchas mentioned along the way.

Poll Everywhere

Loading Ruby Scripts from the JVM Classpath with JRuby — Loading Java class files is cool, but loading a Ruby script that’s inside a .jar file is even cooler (and can help you deploy apps in a more packaged up way).

Charles Nutter

▶  Job Searching and Hiring Advice During the Pandemic — A timely episode for the employers hiring and the Ruby developers looking for work in these unprecedented times.

Ruby on Rails Podcast podcast

Tips for Painless Rails Upgrades — We don’t know about “painless”…maybe “less painful” is more appropriate 😄

Szymon Fiedler (Arkency)

🛠 Code and Tools

Squib: A Ruby DSL for Prototyping Card and Board Games — You really need to see the examples of card decks to get how neat Squib is. Make the next big card-based game!

Andy Meneely

Pragmatic Tokenizer: A Tokenizer to Split (Natural Language) Strings Into Tokens — It doesn’t classify words or anything but can remove stop words, expand contractions, remove special characters, etc.

Kevin Dias

JetBrains RubyMine: Intelligent Ruby & Rails IDE

JetBrains sponsor

bmg: A Ruby Relational Algebra — Allows the querying, joining, and other operations on in-memory, relational data sources. It claims to be the successor to the more functional Alf library (and if you look at the letters BMG you might see how that works..)

Enspirit SPRL

Restforce 5.0: A Ruby Client for the Salesforce REST API — Somehow I’ve never used Salesforce but many readers surely do, given its popularity, so this mature and well maintained library may be of interest. v5.0.0 just came out.


Grape 1.4: An Opinionated Framework for Creating REST-like APIs

Michael Bleigh

MultiJSON: A Generic Swappable Backend for JSON Handling — Basically an abstraction for several back-end JSON de/encoders.


Clearance 2.2: E-mail and Password-Based Rails Authentication

thoughtbot, inc.