#489 — February 20, 2020

Read on the Web

A very quiet week for new stuff in the Ruby world this week, so we've revisited a few older tools that have gotten some recent updates, including RuboCop, Brakeman and Oga :-)

Ruby Weekly

Ferrum: A High Level Ruby API to Control Chrome — Think Ruby’s equivalent of Node.js’s Puppeteer for controlling Chrome (either headless or not) from code.

Dmitry Vorotilin

How I MITM'd RubyGems.org... Kinda — When a developer mistyped rubygems as “rubgems”, he wondered what he could do if he registered the domain and picked up similarly misspelled requests made to it.

Gavin Miller

Troubleshoot Ruby App Performance with End-To-End Tracing — Datadog’s APM generates detailed flame graphs to help you identify bottlenecks and latency. Navigate seamlessly between Ruby app traces, logs and metrics to troubleshoot application performance issues fast. Try Datadog APM free.

Datadog APM sponsor

The Top Ruby HTTP Clients for 2020 — ‘http’ is my current favorite, but there are several compelling options nowadays.

Bearer

JRuby 9.2.10.0 Released — The powerful JVM-based Ruby implementation takes some more steps forward.

JRuby Core Team

date-formatter: Format Dates by Example — If wrangling with the various formatting options of strftime gets you vexed, date-formatter is for you, as you get to do things like this: 'January 02, 2006'.to_strftime .. you can also extend Date and Time to support a similar approach. (The docs don’t mention this, but use gem install date-formatter to install.)

Gerald Bauer

💻 Jobs

Announcing a 100% Remote Opportunity as a Sr. Ruby on Rails Dev — We are passionate about giving devs the chance to do meaningful work by building transformational technology solutions.

Clevertech

Software Engineer (Remote or London), Reinventing Consumer Credit — Our startup offers interest-free loans in exchange for a fixed membership fee. We use Ruby and Event Sourcing to make it happen.

CreditSpring

Find a Dev Job Through Vettery — Vettery is completely free for job seekers. Make a profile, name your salary, and connect with hiring managers from top employers.

Vettery

📘 Articles & Tutorials

Linking a Webcam Directly to Rails' ActiveStorage — A developer was tasked with having webcam photos get uploaded to a Rails app directly rather than making a user pick a file. How was it done?

Emmanuel Hayford

Ruby 2.7 Adds Enumerable#tally — Such a neat addition to Ruby 2.7 that I wanted to make a point of it again.

Akhil Gautam

Decoupling Ruby: Delegation vs Dependency Injection — We all know (too tight) coupling is bad and that there are many ways to avoid it in Ruby. Here are two scenarios to help you have a conscious uncoupling.

Honeybadger Developer Blog

▶  11 Ruby and Rails Podcasts Worth Your Time — Well, 7 actual podcasts and 4 screencast sites :-)

Rob Bazinet podcast

Founders/CTOs: We Upgrade Rails So That Your Team Doesn’t Have To

Upgrade Rails sponsor

How to Build a WhatsApp Chatbot with Ruby, Sinatra and Twilio — I always saw Twilio as a service for sending SMS text messages, but it does a lot more nowadays. It’s a commercial service, though, so keep that in mind before progressing.

Phil Nash

Migrating User Passwords From Django to Ruby — Migrating user data between a Python and Ruby app isn’t particularly common but when you need to do it, how? It turned out to not be too tricky.

Igor Alexandrov

Putting All Your Mailer Views in One Place — Andy doesn’t think having mailer views across different directories makes much sense, so shares a way to bring them into one place. I see his point, although he does call it a “pernickety organisational opinion.”

Andy Croll

🛠 Code and Tools

RuboCop 0.80: The Ruby Static Code Analyzer and Formatter — This release provoked some interesting discussion on Hacker News, if you’re into such things.

RuboCop Headquarters

RubyGems 3.0.8 Released — A simple bugfix release.

Hiroshi Shibata

Brakeman: A Security Vulnerability Scanner for Rails Apps — A long standing project we haven’t mentioned in a couple of years, but it continues to get updates and now supports Rails 6. It statically analyzes your Rails project’s code for security issues.

Justin Collins

Upgrade Your Ruby CI/CD Pipeline for Free — Automate your CI/CD pipeline with Semaphore to release 2x faster than with other platforms.

Semaphore 2.0 sponsor

Oga: An XML/HTML Parser Written in Pure Ruby — Oga does not require libxml (or any dependencies, indeed) so it’s a bit easier to install than some other options. The migration story from Nokogiri is also pretty good.

Yorick Peterse

Fake API: A Faster Way to Prototype an API in Your Rails App — Has a syntax similar to Rails routes, FactoryBot, and uses Faker to generate dummy data.

Igor Kasyanchuk

Kiba 3.0: Data Processing & ETL Framework for Ruby — Kiba has been around for a long time, offering a nice DSL and workflow for moving and transforming data. This version removes the CLI, pushing a new parse API.

Thibaut Barrère

Midas: Edge Stream Anomaly Detection — The latest in a line of algorithmic libraries by Andrew.

Andrew Kane

Groupdate 5.0: A Simple Way to Group Temporal Data — For example, to group data by day, week, hour, etc.

Andrew Kane