Quantcast
Channel: Ruby Weekly
Viewing all 462 articles
Browse latest View live

Ruby 2.5.3 Released

$
0
0

#421 — October 18, 2018

Read on the Web

Ruby Weekly

Ruby 2.5.3, 2.4.5, and 2.3.8 Released— The reason? Two vulnerabilities have been disclosed and fixed: a tainted flag bug with Array#pack and String#unpack and a broken equality check in OpenSSL::X509::Name.

The Ruby 2.3.8 release also notes that Ruby 2.3 is now in its security maintenance phase and in March 2019 maintenance on Ruby 2.3 will end, so if you’re still using Ruby 2.3, you need to begin your migration to 2.4 or 2.5.

ruby-lang.org

How We Halved Our Rails Memory Consumption with jemalloc— We’ve included other posts about jemalloc before, but we never tire of seeing the dramatic improvement it can bring about in an application.

Carmen Chung

Redis™ 5.0 on RedisGreen— The latest version of the popular database featuring the new stream data type is out and available to make your apps better and faster.

RedisGreen sponsor

Testing Ruby's CGI— Ruby starts up pretty fast nowadays, so if you want to run a simple Ruby program on-demand, going the CGI script route isn’t a terrible option. But what about testing them? (TIL WEBrick supports CGI..)

Mike Perham

GitHub Actions: Workflow Automation on GitHub— Still in beta, Actions takes GitHub into new, ops-style territory by providing definable, automated workflows for deploying and releasing software. It’s billed as “the biggest shift we’ve had in the history of GitHub”.

GitHub

Falcon: HTTP/2 for Ruby Web Development— Falcon is a Rack-compatible web application server that can handle HTTP/2, HTTP/2, and WebSockets. Very interesting.

Samuel Williams

💻 Jobs

Experienced Ruby Developer (SF or Remote)— Help thousands of doctors make patients healthy with an even healthier team and codebase.

Able Health

Mid-Level Full Stack Engineer @ HITRECORD (Full Time, Los Angeles)— Looking for an experienced Angular/Ruby & Rails developer to join a small but dynamic team to grow a platform for creative collaboration.

Hitrecord

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

▶  Discussing 'Sonic Pi' with Sam Aaron— A 50 minute podcast chat with the creator of one of the most interesting Ruby projects out there, the Sonic Pi code driven music environment.

Ruby Rogues podcast

Using Minitest to Regression Test a Static Jekyll-Built Site— Ruby is really well suited for creating basic test scripts for things you’re playing with.

Thibaut Barrere

A Look at Some ActiveSupport::StringInquirer Magic— Another trip into the Rails source to discover how it does some of the clever things it does.

Igor Springer

Ruby Gotchas for the JavaScript Developer— I’d never thought of people picking up Ruby after JavaScript, but as it appears to happen, this may be of use.

Dmitry Pashkevich

PostgreSQL Tips for Rails, Created by Citus Devs at RailsConf— How to improve Postgres perf for Rails, ft. statement time-outs, marginalia, pg_stat_statements, pgBouncer.

CITUS DATA sponsor

Diving into Ruby Weekly with Peter Cooper— The founding editor of this newsletter spoke with Brittany Martin on the newly revived Ruby on Rails podcast about his Ruby history and how Ruby Weekly works.

The Ruby on Rails Podcast podcast

▶  Gradual Typing of Ruby at Scale at Stripe— If it seems familiar, we linked to the slides two weeks ago.

Dmytro Petrashko and Paul Tarjan

Microservices vs Spaghetti Code Are Not Your Only Options

Floor Drees (Phusion)

What Exactly Makes 'Bad' Code Bad?

Jason Swett

🔧 Code & Tools

checker_jobs: Run Regression Tests On Your Data using a Convenient DSL— Drivy Engineering is open-sourcing this gem.

Drivy Engineering

Active Merchant: Shopify's Simple Payment Abstraction Library— A well-established, long-standing gem that continues to get frequent updates.

Shopify

Monitoring and Distributed Tracing for Ruby Apps. Try Datadog Free

Datadog sponsor

Loaf: Manage and Display Breadcrumb Trails in Rails Apps

Piotr Murach

Faktory 0.9.0: The Background Job System Now Uses Redis— Faktory (a background job processor from the creator of Sidekiq) has replaced RocksDB with Redis in this release.

Mike Perham

Roda: The Routing Tree Web Toolkit— roda is a web framework aimed at simplicity and productivity, and an interesting alternative to something like Sinatra. Version 3.13.0 was just released.

Jeremy Evans

Toucan: A Ruby Framework to Craft Small CLI Applications— Toucan works with an ncurses-powered input and output ‘window’ that run asynchronously.

Fernando Schuindt


Yabeda: A Modular Framework for Instrumenting Ruby Apps

$
0
0

#422 — October 25, 2018

Read on the Web

Ruby Weekly

Yabeda: A Modular Framework for Instrumenting Ruby Apps“Adopt metrics-driven development with an extendable framework that supports Rails, Sidekiq, and Prometheus out of the box.” There’s a lot to dig into here.

Evil Martians

Distributed Cron for Rails Apps with Sidekiq Scheduler— This is a nice article on what has to be a common issue in larger applications that have background jobs.

GoDaddy

Scaling Out Multi-Tenant Rails Apps on Postgres, the Citus Way— The activerecord-multi-tenant Ruby gem is Lukas’s recommended gem if you want to make it easy to scale out your multi-tenant Rails app on Postgres & Citus.

CITUS DATA sponsor

Hyperstack: Build Client-Side Webapps with Ruby— Formerly known as Hyperloop, Hyperstack is a Ruby-based DSL and toolkit for building front-end webapps where the Ruby code gets compiled into JavaScript using Opal.

Chang, VanDuyn, Creekroad, et al.

Hanami v1.3.0 ReleasedHanami is an interesting Ruby webapp framework that’s been growing in popularity recently. This latest release switches testing over to RSpec and they have a fantastic new ‘guides’ site with tutorials on getting started with Hanami for yourself.

Luca Guidi

Thoughtbot Opens Up Its Online Ruby Courses to Everyone— Some years ago, Thoughtbot launched Upcase, a platform for learning Ruby and Ruby-related skills via online courses. This is now free for everyone and includes courses on TDD, Vim, Git, advanced ActiveRecord, etc.

Thoughtbot

Cache Invalidation Complexity: Rails 5.2 and Dalli Cache Store— Rails 5.2 adds a way to configure recyclable cache keys, which will not work if you’re using the Dalli Cache store. Here’s why, followed by what to do.

Heroku

💻 Jobs

Senior Ruby Engineer (Portland, OR or Pasadena, CA USA)— Seeking a mid/senior Ruby engineer to help us change the live events industry. This is a great chance to make a huge impact.

Goldstar

Mid-Level Full Stack Engineer @ HITRECORD (Full Time, Los Angeles)— Looking for an experienced Angular/Ruby & Rails developer to join a small but dynamic team to grow a platform for creative collaboration.

Hitrecord

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

Tab Completion in GNU Readline: Ruby Edition— A look at both using Readline to create text inputs in a Ruby CLI app and then how to add tab completion to those inputs.

George Brocklehurst

How To Execute RSpec in Parallel Locally

Leszek Zalewski

The Innards of a RubyGem“Gather ’round children, and let grandpa recount the ways of the old days when life was hard, and installing gems was a headache-inducing, hair-pulling, teeth-gritting ordeal.”

Robert Beekman

Rails 5.2 Adds DSL for Configuring the 'Content Security Policy' Header— CSP can be used to specify domains that are valid sources for various assets (scripts, images, fonts, etc.)

Sushant Mittal

Nine Tips for Rails Migration Mastery— Just can’t ever have enough tips on migrations.

Michael Nelson

CircleCI Launches Support for GitHub Checks— Now integrating with the GitHub Checks API, so you can see the status of your workflows under the Pull Request Checks tab in the GitHub UI.

CircleCI sponsor

Ruby 2.6's Range#cover? Now Accepts a Range Object As An Argument

Abhay Nikam

Debugging a Silently Failing Webpacker Compilation— The lesson: “don’t put webpack-cli package only as a dev dependency if you need to do the compilation on the server.”

Josef Strzibny

How Does Devise Keep Your Passwords Safe?— or, “Tales from the enCRYPTion” (What? It’s almost Halloween.)

Tiago Alves

Writing Less Error-Prone Code— Valuing readability over conciseness along with enabling “copy & paste”-ness lead to less error prone test code in the long run.

Thoughtbot

🔧 Code & Tools

minitest-mock_expectations 1.0.0 Released— An alternative to Mocha if you’re in the minitest ecosystem. GitHub repo.

Bogdan Denkovych

TTY::Config: Define, Read and Write Ruby App Configurations

Piotr Murach

Falcon: A Modern High-Performance Web Server for Ruby, Supporting HTTP/2 and HTTPS Out of the Box— We featured this last week, but just in case you missed it..

Socketry

Monitor and Analyze Ruby App Performance in Real-Time. Try Datadog Free

Datadog sponsor

Sail: An Admin Panel for Managing Config Settings on a Live Rails App

Vinicius Stock

Salus: A Security Scanner Coordinator— A tool for coordinating the execution of security scanners, such as Brakeman and npm audit, that are appropriate for the given context.

Coinbase

PyCall: Call Python Functions from Ruby

Kenta Murata

New Bundler and Rubocop releases, plus using R and ggplot from Ruby

$
0
0

#423 — November 1, 2018

Read on the Web

Ruby Weekly

Building a Ruby C Extension From Scratch— While there are easier, gem-assisted ways to wrap C code from Ruby, knowing how to do this from the ground up can be handy.

Thijs Cadier

A Safer RuboCop with RuboCop 0.6— In its new, just released version, 0.6, Ruby’s favorite code linter gains the ability to mark a “cop” as unsafe so you can pick and choose how auto corrections happen.

Bozhidar Batsov

An In-Depth Look at Ruby's Exception System— Ruby's exception system is more powerful than many people realize. This book shows you how to get the most from it.

Honeybadger sponsor

Promising Benchmark Results for Ruby 2.6.0-pre-preview3— You need to know what you’re looking at here, but essentially the next preview release of Ruby with the JIT compilation feature enabled is significantly faster on the Optcarrot NES emulation benchmark.

Takashi Kokubun

Maintaining 65,000 Open Connections in a Single Ruby Process— How to hijack a Rack (and Puma) server to get control of the incoming sockets in a shockingly small amount of code, though admittedly “it is not very economical in its memory usage”.

Wander Hillen

Announcing Bundler 1.17.0— Version 1.17.0 brings some interesting features, including a remove command that will remove a gem from the Gemfile, a la npm.

Samuel Giddins

Ruby Plotting with Galaaz: An Example of Tightly Coupling Ruby and R— Galaaz is a system for tightly coupling Ruby and R, the popular graphical statistical programming environment, by means of GraalVM. This could be great news for you if you want to access ggplot for producing rich statistical graphics from Ruby.

Rodrigo Botafogo

💻 Jobs

Web Developer – Ruby on Rails at 'Wer liefert was' (Hamburg, Germany)— Become a part of the success story: "Wer liefert was" is Europe’s leading B2B online marketplace with close to 300 employees.

Wer liefert was? GmbH

Sr. Rails Engineer at Six Park - Funded FinTech in Melbourne, AU— Six Park is a fast-growing, fast-paced FinTech, searching for Sr. Rails folks that can shape engineering, our practices and our business.

SIX PARK

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

▶  Discussing Fast Tests with Vladimir Dementyev— Creator of TestProf talks about why fast tests are valuable and how you can make yours faster.

The Ruby Testing Podcast podcast

How to See Your Rails Feature Specs Run in the Browser— Just a couple of tweaks mean you get to see your Rails app’s test running live in a real browser.

Jason Swett

Postgres & Multi-Tenancy: citus_stat_statements for Per Tenant Stats— Need insight into the load specific customers are putting on the database? Citus can parameterize every query.

CITUS DATA sponsor

It's Ruby, There Must Be a Better Way— If you’re looking for a little code-along Ruby challenge, this is for you. Then see how Ryan approached it.

Ryan Palo

Building Auto Login for Fast Rails Development with Sorcery— A way to enable logging in as different users during development only.

Josef Strzibny

Phusion Passenger Gets a New Documentation Site— It’s the same documentation as before but better organized.

Phusion

Running Tests in RubyMine: Overview and ImprovementsRubyMine is a commercial Ruby IDE.

JetBrains

How to Check If a Variable is Defined in Ruby— Using defined?

Jesus Castello

🔧 Code & Tools

Atom Now Understands Your Ruby Better Than Ever Before— Atom 1.32 provides improved syntax highlighting and code folding by parsing your code while you type it. Ruby is one of the first 11 languages supported.

GitHub

Rocket Job: Ruby's Missing Batch System— Create and monitor various jobs and trigger these same jobs in many different ways.

Rocket Job

Shop Like a Developer – Discover and Experiment with Hot New Services 🔥

Manifold sponsor

Rackula: Generate Static Sites from any Rack Middleware— For turning a Rack powered webapp into a static copy.

Socketry

AutoloadReloader: An Alternative to the Rails Autoloader Based on Module#autoload

Shopify

Pagy: The 'Ultimate' Pagination Gem— Works with all Rack-based frameworks and is storage/ORM agnostic. We’ve linked this a few times now but updates continue to come thick and fast.

Domizio Demichelis

Sniffer: Log and Analyze Outgoing HTTP Requests— Hooks into Net::HTTP, Patron, Curb, Typhoeus and other Ruby HTTP libraries.

Andrey Deryabin

Karafka: A Ruby Framework for Working with Apache Kafka

Mensfeld, Vavruk, et al.

Ruby 2.6.0 Preview 3 Released

$
0
0

#424 — November 8, 2018

Read on the Web

Ruby Weekly

Ruby 2.6.0 Preview 3 Released— The next step along the road to the (hopefully) eventual Xmas release of 2.6. The big news here is, as we’ve covered recently, the included initial ipmlementation of a JIT compiler, although overall performance is up slightly too. We also get endless ranges, then, and Bundler becoming a default gem.

Yui Naruse

Do You Test Ruby Code for Thread Safety?— If you don’t, here’s a demonstration of a new gem (called threads) and how it makes thread related testing easier.

Yegor Bugayenko

Semaphore 2.0 Is Now Public— Automate custom continuous delivery pipelines. Autoscale and pay only for what you use. Semaphore 2.0 is built for developer productivity, and it just works. Get $20 free credit and start shipping faster today.

Semaphore sponsor

An Update on Bundler 2.0— In short, Bundler is adopting a support policy that mirrors Ruby core, so if you’re using old versions of Ruby or RubyGems, time to upgrade. TLDR: “each year, we plan to release a new version of Bundler that drops support for any Ruby that is no longer supported.”

Colby Swandale & André Arko

Procsd: Manage Your Processes in Production Hassle-Free with systemd— Given a Procfile, Procsd promises Heroku-like simplicity for process management by creating system services which can be managed (start, stop, status check, etc.) with the systemd process manager.

Victor Afanasev

JRuby 9.2.1.0 Released— JRuby 9.2.x is the latest major version of JRuby (a Ruby implementation that runs on the Java Virtual Machine) that promises Ruby 2.5 compatibility.

JRuby Core Team

▶  Discussing Ruby Testing with Michael Hartl, Creator of 'Rails Tutorial'— Topics covered include deciding what to write tests for and how to decide when to do test-first vs. test-after.

The Ruby Testing Podcast

💻 Jobs

Ruby on Rails Developer at X-Team (Remote)— We help our developers keep learning and growing every day. Unleash your potential. Work from anywhere. Join X-Team.

x-team

Full Stack Ruby Engineer (SF; NYC; Victoria, Canada; or Remote)— Become a part of JUUL's software engineering team and help us improve the lives of the world's one billion adult smokers.

JUUL Labs

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

Cross-Language Performance Profile Exploration with Speedscope— Speedscope is a interactive, web-based viewer for large performance profiles, and it supports viewing Ruby profiling info exported from stackprof and rbspy.

Mozilla Hacks

Free eBook: Actionable Continuous Delivery Metrics— This eBook provides you insight into your CD pipeline & helps you to improve your CD process with metrics.

GoCD sponsor

▶  A Grab Bag of Ruby and Ruby on Rails Tricks— Covers a variety of Rails development tricks in just 12 minutes.

Drifting Ruby

Git Aliases I Can't Live Without— A list of handy Git aliases inspired by the oh-my-zsh suite.

Michal Konarski

Migrating from Paperclip to ActiveStorage

Leonardo Negreiros

▶  Discussing Ruby Performance Profiling with Dan Mayer

Ruby Rogues podcast

Why We Use Ruby on Rails to Build GitLab“It’s worked out really well because the Ruby on Rails ecosystem allows you to shape a lot of functionality at a high quality” - CEO of Gitlab

GitLab

🔧 Code & Tools

Coverband 3: A Production Code Coverage Tool, Now Even Faster— Get deep insight into the production usage of every line of code in your Ruby app to find both dead code and hot spots.

Dan Mayer

Eventide 1.0: Evented, Autonomous Microservices for Everyone— Eventide supports PostgreSQL and EventStore and looks extremely interesting.

Scott Bellware

Lastpassify: Generate YAML Configuration Files from Lastpass Values— Lastpassify is a command-line tool that will create config files by reading sensitive values from Lastpass. Interesting idea!

University of Minnesota

Detect Ruby Production Errors in Real-Time, Then Debug Them in Minutes

Rollbar sponsor

Asset Sync: Synchronises Assets Between Rails and S3

Rumble Labs Ltd.

Agoo: A High Performance HTTP Server for Ruby

Peter Ohler

A 'Awesome' Curated List of Ruby Security Resources— It’s early days for this list of resources, but if you’re asking “How do I make my Ruby app more secure?” it’ll help.

Andreas Tiefenthaler

graphql-smart_select: A Plugin for Graphql-ruby to Select Only The Required Fields

Abroskin Alexander

What’s New in Ruby 2.6?

$
0
0

#425 — November 15, 2018

Read on the Web

Ruby Weekly

What’s New in Ruby 2.6?Ruby 2.6 preview 3 is out, the final release is just over a month away, but here’s a look at what’s in it for you as a Ruby developer.

Guy Maliar

Image Placeholders for Your Development Environment— Replace broken images with placeholders using Rack middleware.

Arkency Blog

PostgreSQL Tips for Rails Created at Railsconf by Citus Devs— How to improve application performance for Rails apps on Postgres. Written by Citus engineers on the show floor at RailsConf. Featuring useful utilities like statement time-outs, marginalia, pg_stat_statements, & pgBouncer.

CITUS DATA sponsor

Proc#<< and Proc#>>: An Eventual Way to Do Proc Composition?— Here’s the underlying proposal if you want to learn more.

GitHub

Taking Stimulus.js for a RideStimulus is a JavaScript framework from the Basecamp folks (including DHH) that works around the idea of decorating your HTML.

Josef Strzibny

Hash Rockets Are Good Actually— One developer’s opinion on why the classic, default way of notating hashes is better than the optional, symbol-oriented 1.9+ approach.

Sam Phippen

💻 Jobs

Sr. Fullstack Engineer (Remote)— Sticker Mule is looking for passionate developers to join our remote team. Come help us become the Internet’s best place to shop and work.

Sticker Mule

Ruby on Rails Developer - Coppell, TX— Join our tight-knit and diverse team delivering health and wellness clarity.

Onsite Health Diagnostics

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

Setting Up Local SSL for Rails 5 Development and Tests— A comprehensive approach to this age-old issue of local web development.

Ross Kaffenberger

3 Brief Tips for Using ActiveRecord::Calculations— A follow up to a Rails performance post from 2016. That’s commitment.

Luciano Becerra

Exploring Ruby 2.6: Enumerator, Hash, and Enumerable Changes

Brandon Weaver

Avoiding Network Calls in Rails Tests Without Using Mocks— .. or stubs, or even (the awesome) VCR. Dependency injection, FTW.

Jason Swett

Exploring RubyGems Data with Honeycomb— Some neat insights into Rubygems, namely, which ones are most downloaded, the slowest to pull down, and what regions are pulling the most gems.

Emily Nakashima

Build and Deploy Your Next App on DigitalOcean— Try the most developer-friendly cloud platform on us with a $100 credit toward your first app. Get started.

DigitalOcean sponsor

Birds of a Fiber: A Look at Falcon, a Modern Asynchronous Web Server for Ruby— Can Fibers give a web app more throughput? The answer is a resounding… “maybe”.

Derek Haynes

▶  Migrating Twitter from Rails and Powering Up with Linkerd— A 30 minute podcast chat with William Morgan, a core maintainer of Linkerd and formerly an infrastructure engineer at Twitter, where he helped move Twitter from a monolith to microservices.

Ruby on Rails Podcast podcast

▶  Four Ways to Scale on Heroku— It’s not just about adding more dynos.

Adam McCrea

Vim in the Future— A brief look at the past and present of the Vim editor, its good and bad bits, and whether learning it is truly worthwhile.

Emily St

🔧 Code & Tools

WebpackerCLI: Bring The Power of Webpacker to Any Web Framework

Daniel P. Clark

Launching a New Product? Use Segment as the Data Foundation for Your Tech Stack

Segment sponsor

finite_machine: A Minimal Finite State Machine with a Straightforward Syntax— The gem is back with its first release in over 2+ years.

Piotr Murach

JRuby 9.2.4.0 Released— Just a week after 9.2.1 comes 9.2.4 - releases coming fast for the popular JVM-oriented Ruby implementation.

JRuby Core Team

Passenger 5.3.7 Released with Fixed Ubuntu 18.04 Packages

Phusion Blog

Writing GraphQL Queries in Native Ruby

$
0
0

#426 — November 22, 2018

Read on the Web

Ruby Weekly

🦃 Hey - we're keeping things short this week in respect of Thanksgiving. If you celebrate, we hope you have a good one. Back to full service next week.
— Peter Cooper, Cooperpress

GQLi: Writing GraphQL Queries in Native Ruby— The folks at Contentful are working on a library (GQLi) that allows you to write GraphQL queries in native Ruby. Very promising.

Contentful

Building SQL Expressions with Sequel— A great, in-depth introduction to Sequel, an interesting alternative to Active Record. “Sequel’s API for building SQL expressions allows you to consistently stay in Ruby even for very advanced use cases.”

Janko Marohnic

Long Term Support for Ruby on Rails 4.2, 3.2 and 2.3— Rails LTS provides extended support for old versions of Ruby on Rails. Drop-in gem replacements are available for Rails 4.2, Rails 3.2 and Rails 2.3. You can even run your old Rails app with modern Ruby versions.

Rails LTS sponsor

'Clean Code' Concepts Adapted for RubyClean Code is a long-standing, popular book on the art of ‘software craftsmanship’ and this guide shows off its suggested approaches for making Ruby code more readable and reusable.

Alex Jiao

When I Use Controller/Request Specs in Rails and When I Don't— Based on recommendations from the RSpec team and his own experience, Jason describes the only two scenarios where request specs are reasonable.

Jason Swett

Ruby 3x3 and RubyConf Los Angeles— Noah’s been to quite a few Ruby events recently and has been discussing the future of Ruby and Ruby performance with the core team and others. Where do things stand? (Spoiler: “expect Ruby 3x3 around Christmas of 2020”)

Noah Gibbs

The Benefits of Materialized Views (and How to Use Them with Rails)— A ‘materialized view’ is essentially a ‘live’ SQL query whose results are accessible as a database table. It’s supported by several database systems though Postgres is the most likely candidate with Rails.

Ryan Rebo

💻 Jobs

Senior Ruby Developer— We are a rapid growing startup in the construction space, helping companies to streamline field documentation and communication.

CompanyCam LLC

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Tutorials

Fibers Are The Right Solution— After looking at various approaches to concurrency, the claim here is Fibers offer the safest and least intrusive bang for your buck.

Samuel Williams

What Is MJIT in Ruby 2.6 and How Does It Work?— An accessible look into using the JIT options in Ruby 2.6, what they do, and some benchmarks.

Jesus Castello

Five Security Issues in Rails Apps From Real Life— Common (yet often unaddressed) security issues that Igor is also kind enough to show you how to fix.

Igor Springer

🔧 Code & Tools

Standard: A Ruby Style Guide, with Linter and Automatic Code Fixer— A ‘spiritual port’ of StandardJS. (Psst.. don’t forget our JavaScript Weekly newsletter if you also develop with JavaScript.)

test double

Iguvium: A Gem for Extracting Tables from PDFs— Renders a PDF into an image, looks for table-like structures & tries to place characters into detected cells.

Dima Ermilov

typerb: Strong Type Checking for Ruby— Uses the RubyVM::AST additions to 2.6.

Oleg Antonyan

Zammad: A Web-Based Open Source Helpdesk/Customer Support System— Implemented as a Rails 5 app.

Zammad

What the inclusion of Bundler in Ruby means

$
0
0

#427 — November 29, 2018

Read on the Web

Ruby Weekly

Modulation: Explicit Dependency Management for Ruby— An interesting experiment that feels a bit like JavaScript’s import syntax. Intended for managing dependencies between source files inside Ruby apps and not for third-party dependencies.

Sharon Rosner

Bundler is Built Into Ruby 2.6— What the inclusion of Bundler in Ruby means, including, what happens when you install Bundler as a gem. To me, this feels as big a step as when RubyGems became part of Ruby in 1.9.

Noah Gibbs

Monitoring and Distributed Tracing for Ruby Apps— Utilize flame graphs, search and analytics for distributed traces, and automated anomaly detection to optimize Ruby application performance. Monitor application data alongside infrastructure metrics and logs in real-time. Try Datadog free.

Datadog sponsor

Finding Ruby Performance Hotspots via Allocation Stats— An interesting walkthrough of how a developer discovered and fixed some performance issues in ruby_parser by investigating object allocations.

Justin Collins

Rails 4.2, 5.0, 5.1, and 5.2 Security Fix Releases— Rails 4.2.11, 5.0.7.1, 5.1.6.1 and 5.2.1.1 have been released with some important security fixed in these, so upgrade pronto.

Official Rails Blog

An Official 'Snap' Package of Ruby Now AvailableSnaps are self-contained software packages for Linux distributions that avoid some of the issues other package systems have with dependencies and now Ruby has its own official ‘snap’ package. Snapcraft link or GitHub repo.

Hiroshi Shibata

Securing Sensitive Data in Rails— A rather comprehensive look at what data is sensitive and how to secure the many ways of accessing and storing that data.

Andrew Kane

💻 Jobs

Senior Ruby Developer— We are a rapid growing startup in the construction space, helping companies to streamline field documentation and communication.

CompanyCam LLC

BackerKit Is Looking for a Sr. Developer (SF)— The leading platform for creators that want to focus on creating. We're building some neat stuff, join us. Check out our team values here.

Backerkit

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

Fibers and Enumerators in Ruby: Turning Blocks Inside Out— Lots of posts on fibers recently…here the focus is on flow control and how Fibers compare to Enumerables.

Julik Tarkhanov

Why On Earth Do Fibers Exist?“Fibers were created so one could implement generator pattern” What’s the generator pattern? Read on.

Nikita Misharin

Advanced Ruby Exception Handling— Did you know that, as of Ruby 2.1, Exception#cause lets you find the original exception that led to another?

Dimitrios Lisenko

How Well Do You Know Ruby's Exception System?— Ruby's exception system is more powerful than many people realize. Download our free eBook to level up from novice to expert. 🤘

Honeybadger sponsor

Stopping Slow Client DoS Attacks with Puma on Passenger 6— A ‘slow client’ attack is when an attack opens up HTTP connections and then operates very slowly, consuming resources of the server. Passenger 6 makes it easy to avoid this problem.

Camden Narzt (Phusion)

How To Use Heredocs in RubyHeredocs (a.k.a. here documents) are document-style multiline string literals.

Jesus Castello

dup vs clone in Ruby: Understanding The Differences— Worth revising if you want to copy objects properly and not be surprised by the result.

Jesus Castello

Four Things About Pry, The Powerful Ruby REPL/Console— If you’re still not using Pry, maybe these benefits could sell you on the idea.

Bruno Jacquet

Rails Scaffolding and TDD Are Incompatible— Principally because scaffolding requires you write tests after. But this isn’t a big problem, says Jason.

Jason Swett

'We Don't Have Time to Write Tests'“No matter what your scenario, don’t fall into the fallacious belief that skipping tests saves time.”

Jason Swett

🔧 Code & Tools

JRuby 9.2.4.1 Released

The JRuby Team

MetaCLI: 'Lazy' Command-line Option Parsing— Dynamically figures out command line arguments and options from method definitions.

Roman Le Négrate

Video Encoding, Storage, and Delivery in A Single Platform

MUX sponsor

Rails 5.2.2.rc1 Released— The 5.2.2 release candidate is out now, and if no regressions are found, the final release can be expected early next week.

Official Rails Blog

Scenic: Versioned Database Views for Rails— Bring the power of SQL views to a Rails app without having to switch to a full SQL schema format.

Scenic

Instagram Crawler: An Instagram Photo Downloader— Be careful of TOS and data protection issues here and use responsibly.

Leon Ji

Rack::Attack: Rack Middleware for Blocking and Throttling— Continues to get frequent updates and releases.

Kickstarter

Ruby now a first-class language on AWS Lambda

$
0
0

#428 — December 6, 2018

Read on the Web

Ruby Weekly

AWS Lambda Gets Official Support for Ruby— After much community demand, AWS’s popular Lambda serverless platform now supports Ruby as a first class language, opening up an interesting new way to deploy Ruby code. Psst.. if serverless interests you, we have a weekly serverless newsletter too.

Amazon Web Services

▶  Matz's RubyConf Keynote on the Power of the Ruby Community— The creator of Ruby, Yukihiro ‘Matz’ Matsumoto, delivered the opening keynote at RubyConf 2018 covering the Ruby creation story, how Ruby is built, how the community works, and even jokes about his future retirement.

Confreaks

Getting Your Manager to Say ‘Yes’ to DevOps Tools— Have you ever found yourself in a situation where you have discovered a new tool that may be able to solve a problem for your team?

CircleCI sponsor

Phusion Passenger 6 Released— While Passenger was originally an app server solely aimed at getting Rails apps rapidly deployed to the Web, it’s now grown into a more general tool and now includes generic language support as well as first class support for other languages popular with Rubyists like Elixir and Rust.

Hongli Lai (Phusion)

The 2019 Fukuoka Ruby Award Competition— Every year the Fukuoka regional government in Japan gets together with Matz to grant an award to a Ruby-related code-based project. Anyone worldwide can enter and the grand prize is 1 million yen. Entry closes on January 31, 2019.

Fukuoka Ruby

Rails 5.2.2 Released— The release notes on GitHub are now an attractive and informative aggregation of the changes made to each of Rails’ constituent gems.

Rafael Franca

Building an API with Ruby and the Serverless Framework— Now that AWS Lambda supports Ruby, you can use the popular, though confusingly named, ‘Serverless framework’ to build and deploy your functions in a structured way.

Serverless Framework

💻 Jobs

Ruby on Rails Developer at X-Team (Remote)— We help our developers keep learning and growing every day. Unleash your potential. Work from anywhere. Join X-Team.

x-team

BackerKit Is Looking for a VP of Engineering (SF)— The leading platform for creators that want to focus on creating. We're building some neat stuff, join us. Check out our team values here.

Backerkit

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Tutorials

How Fast is Ruby 2.6.0preview3 for Discourse?— We’ve seen a few 2.6preview benchmarks, but this one is from a Benchmark Guru™ and shows, definitively, that 2.6 might be faster than 2.5.

Noah Gibbs

Deploying a Rails 5.2 and PostgreSQL App with AWS Elastic Beanstalk

Evrim Persembe

Check Out New Pay-As-You-Go Semaphore CI/CD Pipelines— Deliver your Rails apps faster with powerful, autoscaling CI/CD. Join the conversation on Product Hunt.

Semaphore sponsor

Passing current_user by Default When Using Sidekiq— If you need to pass a user object to your background jobs, it’s possible to do it elegantly and ‘by default’ using middleware.

Ashish Gaur

Reflections on Memoization and Alternatives— Caching ‘expensive’ results can yield performance improvements but it’s not always the best solution.

Joël Quenneville (Thoughtbot)

Using Scenic & SQL Views to Aggregate Data— The Scenic gem makes working with views and ActiveRecord much easier so you can aggregate your data your way.

André Perdigão

The Value of Mutation Testing— An interview with the creator of the mutant testing gem. “Mutation testing is the process of heuristically determining semantics of your program that are not covered by tests.”

Pedro Pereira Santos

How to Quickly Test a URL with Curl::Easy— A very brief tip that may be handy if you have a large selection of URLs to check for linkrot (might be time to do the Ruby Weekly archives..!)

Stefan Wintermeyer

Creating a Simple Slack Bot in Ruby— A simple 10 minute screencast and sample code.

Drifting Ruby

How to Use Simple State Machines in Ruby— A nice introduction to state machines with example implementations from scratch and using gems.

Jesus Castello

🔧 Code & Tools

HTTPX: A Ruby HTTP Client 'For Tomorrow and Beyond'— Its features include HTTP/2 support, a chainable API, and concurrent requests by default.

HoneyryderChuck

rack-fluentd-logger: Rack Middleware to Send Traffic Logs to Fluentd— Fluentd is an “open source data collector for unified logging layer.”

Mikhail Slyusarev

Stealth: A Framework for Building Conversational Bots— A Rails-inspired MVC framework for building voice and chat bots. Version 1.1.0 dropped this week.

Black Ops Bureau Inc.

Down: Flexible Streaming and Downloading of Remote Files over HTTP— Can use open-uri, Net::HTTP, HTTP.rb or wget behind the scenes.

Janko Marohnić

Detect Ruby Production Errors in Real-Time, Then Debug Them in Minutes

Rollbar sponsor

DatabaseConsistency: A Tool to Find Inconsistency Between Active Record Validations and Database Constraints

Evgeniy Demin


Ruby 2.6.0 Release Candidate 1 Released

$
0
0

#429 — December 13, 2018

Read on the Web

Ruby Weekly

Ruby 2.6.0 Release Candidate 1 Released— Things are looking good for Ruby 2.6’s eventual final release on Christmas Day. We’ve linked a lot of great Ruby 2.6 roundups recently, but now’s the time to finally get testing and playing if you haven’t yet.

Yui Naruse

Running Sinatra Serverlessly on AWS LambdaAWS Lambda now supports Ruby so people are beginning to explore the possibilities - here’s how to use Sinatra with it.

Tomas Valent

An In-Depth Look at Ruby's Exception System— Ruby's exception system is more powerful than many people realize. This book shows you how to get the most from it.

Honeybadger sponsor

mruby 2.0.0 Released— mruby is a lightweight Ruby implementation designed for embedding or linking with other apps. New features include keyword arguments and argument deconstruction.

mruby

A Java Developer Walks Into a Ruby Conference— Charles Nutter, maintainer of JRuby, received a Groundbreaker Award at Oracle Code One. Even with this award, I don’t think Charles gets enough credit.

Alan Zeichick (Forbes)

PSA: Ruby 4.2.x Doesn't Work with Ruby 2.6— Article is in Japanese but it’s as simple as the headline. Why? BigDecimal.new has been removed in Ruby 2.6.

koicの日記

💻 Jobs

Sr. Fullstack Engineer (Remote)— Sticker Mule is looking for passionate developers to join our remote team. Come help us become the Internet’s best place to shop and work.

Sticker Mule

Senior/Lead Ruby on Rails Developer at Hint (Remote)— Do you enjoy debugging, killing tech-debt, and refactoring code? We’re seeking an experienced Ruby on Rails developer to join our team.

Hint

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

▶  Building Generic Software— A talk from RubyConf that digs into the idea of building multiple APIs that each handle a smaller, more ‘generic’ part of a problem and then bringing them together.

Chris Salzberg

How to Reduce Memory Usage by Tuning Gemfile— Split your dependencies into groups so Rails only loads the gems it actually needs.

Greg Navis

Free eBook: Actionable Continuous Delivery Metrics— This eBook provides you insight into your CD pipeline & helps you to improve your CD process with metrics.

GoCD sponsor

Juggling Chainsaws at Machu Picchu: Metaprogramming in Ruby— The chainsaw, in this case, is method_missing.

Tim Ash

The Science of Polymorphic Routes in Rails— If you’ve ever wondered why code like form_for @post can result in different URLs for different posts and purposes, this will help you understand how it works.

Ryan Bigg

▶  Writing Ruby Like It's 2018— This is a neat 10 minute talk that covers a little Ruby history but ultimately urges us to try out new approaches and features that modern versions of Ruby enable.

Joe Leo

Ruby Kafka Messaging App using Docker— How to run a Ruby app running in one container to Kafka running in another. If you’ve ever tried to Dockerize Kafka, you’ll appreciate this.

Bala Paranj

How to Use The VCR Gem to Improve Your Testing Suite— Avoid issues with hammering external APIs during testing by recording and replaying what occurs using VCR.

Jesus Castello

The Rails 5 Active Record Attributes API— The Attributes API allows you to cast attributes to both built-in and custom types.

Abhay Nikam

🔧 Code & Tools

Rack Middlewares That Have Saved Me Literally Hours of My Life

Sam Phippen

JRuby 9.2.5.0 Released

JRuby Core Team

Scale Automatically and Release Faster with DigitalOcean Kubernetes

DigitalOcean sponsor

WebMock: Stub and Set Expectations on HTTP Requests for Testing— Supports lots of HTTP libraries like Net::HTTP, Excon, the http gem, & Curb::Easy.

Bartosz Blimke

grpc_kit: A Kit for Creating GRPC Servers/Clients in Ruby

Yuta Iwama

Displaying, Downloading and Streaming Files with Active Storage“a quick’n’dirty cheat sheet for basic Active Storage actions”

Josef Strzibny

Action Cable Client: A Ruby Client for Interacting with Action Cable— 3.0.1 supports reconnect.

L. Preston Sego III

A look at back at Ruby in 2018

$
0
0

#430 — December 19, 2018

Read on the Web

Ruby Weekly

This week we're taking a break from the usual roundup to look back over the top Ruby news and links of 2018 (in which Ruby turned 25 years old!)

We'll be back in the new year (hopefully with big Ruby 2.6 news!) but before we go just want to take this opportunity to thank you for reading, and wish you a Merry Christmas and a great 2019.

— 🔻 Peter Cooper and Glenn Goodrich

🗞 Ruby developments in 2018

Modeling Time Series with Redis 5.0— An overview of using the new streams data type to model time series data in Redis.

RedisGreen sponsor

💻 Jobs

Backend Ruby Engineer (x 15) - Remote— GitLab is hiring Ruby on Rails engineers for the different product teams in the backend.

GitLab

Love to Pair Program?— BackerKit is hiring developers who LOVE pairing to join our agile team. Join us! Learn more about our team values here

BackerKit

Join Our Career Marketplace & Get Matched With A Job You Love— Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details.

Hired

📘 Articles & Tutorials

Bringing Proper Pattern Matching to Ruby?— You're clearly interested in Ruby continuing to add new features as our second most popular link this year followed a presentation at RubyKaigi in proposing a way to add pattern matching to Ruby. Matz's conclusion was that he liked the idea but not the syntax and further suggestions are sought.

Victor Shepelev, Brandon Weaver, et al.

Top 10 Errors From 1000+ Rails Projects (and How to Avoid Them)— Analysis of the ten most common errors from over 1000 Rails projects monitored by Rollbar, along with advice on avoiding such errors yourself.

Phil Nash

How Fast is Ruby 2.5?— 2018 was the year of Ruby 2.5 and it's been one of the most stable and impressive major Ruby releases I can remember while offering relatively modest performance improvements.

Noah Gibbs

Yo Dawg, I Heard You Like Newsletters, So I Made You Another Newsletter— Join other kick-ass developers and learn about engineering, DevOps, cloud architecture, played out memes💀, and more.

Honeybadger sponsor

Using Lambdas to Simplify Varying Behaviors in Your Code— An excellent article on how lambdas are used to remove conditionals and apply design patterns including specific, real-world use cases - and the second most popular tutorial we linked this year.

Keith R. Bennett

What’s New in Ruby 2.6?— The final release is just over a week away (hopefully) so here’s a look at what’s in it for you as a Ruby developer.

Guy Maliar

Ruby Optimization with One Magic Comment— Mike Perham of Sidekiq fame explains how freezing your strings can help performance quite a bit and how Ruby 2.3+ can help make this easier.

Mike Perham

An Overview of Ruby GUI Development in 2018— It’s not often written about but building graphical apps in Ruby is a thing, and here’s a comparison of the most popular approaches.

Saverio Miroddi

Actionable Tips to Improve Web Performance with Rails— Based on a talk from Wroclove.rb, the tools and tricks listed here will result in better Rails and general Web performance.

Radek Markiewicz

🔧 Code & Tools

Introducing Action Text for Rails 6— The most popular link in 2018 was about Action Text, a new framework coming to Rails 6 to make it easier to edit and display rich text content. It leans upon Basecamp’s Trix editor and DHH recorded a screencast showing how it works.

David Heinemeier Hansson

Yabeda: A Modular Framework for Instrumenting Ruby Apps“Adopt metrics-driven development with an extendable framework that supports Rails, Sidekiq, and Prometheus out of the box.” There (remains) a lot to dig into here.

Evil Martians

Track Data Once with Segment and Send It to 200+ Tools. Get Started for Free

Segment sponsor

rb: Turn Ruby Into a Versatile Command Line Utility— Weighing in at a mere 10 lines, rb is a clever approach to making Ruby an even handier pipeable command line tool for manipulating and extracting data. Be sure to check the examples.

redka

Stimulus: A JS Framework for the HTML You Already Have— An interesting framework from Basecamp - full origin story here. Over the year it’s gained new reference documentation.

Basecamp

An Epic Collection of Ruby One Liners— Ruby isn’t just for building webapps, y’know. It’s an amazing swiss army knife for anyone at the command line and these examples could help you out with a lot of menial tasks.

Sundeep Agarwal

Ruby 2.6 and Bundler 2.0 Released

$
0
0

#431 — January 3, 2019

Read on the Web

Ruby Weekly

Ruby 2.6 Released— As is traditional, the latest major release of Ruby came out on Christmas Day. The much awaited 2.6 includes an initial implementation of a JIT compiler (which needs to be enabled manually), the then alias for yield_self, RubyVM::AbstractSyntaxTree, endless ranges, and a lot more (see next item).

Yui Naruse

The Changes in Ruby 2.6— A comprehensive ‘changelog’ of what’s new in Ruby 2.6 (complete with examples for most items) if you want to really dig deep into the new release.

Zverok

Redis Data Types in 2019— An overview of all data structures provided in the latest version of Redis

RedisGreen sponsor

The Timeline for the Release of Rails 6.0— RailsConf is at the end of April, so that’s the target. Read on for the milestones between now and then. Since Rails 6 will only support Ruby 2.5+, you’re encouraged to get your code running on Ruby 2.5/2.6 first if you plan to upgrade Rails too.

David Heinemeier Hansson

Bundler 2.0 Released— Bundler now only supports Ruby 2.3+ and RubyGems 3+ and supports auto-switching between Bundler 1 and 2 depending on the lockfile (so both Bundler 1.x and 2.0 can be installed at once as needed).

Colby Swandale

▶  How to Use The Ruby 2.6 Just-in-Time (JIT) Compiler— A short six minute video walkthrough of getting Ruby 2.6’s JIT support enabled.

Go Rails

The Top Ruby Weekly Links of 2018— Our last issue was a round-up of 2018’s top Ruby news, but we’ve put them together on the Web too.

Chris Brandrick (Ruby Inside)

💻 Jobs

Ruby on Rails Developer at X-Team (Remote)— Join the most energizing community for developers. Work from anywhere with the world's leading brands.

X-Team

Love to Pair Program?— BackerKit is hiring developers who LOVE pairing to join our agile team. Join us! Learn more about our team values here.

BackerKit

Find A Job Through Vettery— Vettery matches top tech talent with growing companies. Create your profile to get started.

Vettery

📘 Articles & Tutorials

Why RSpec Users Should Care About Rails System Tests— Why RSpec/Rails users should switch from feature tests to system tests.

Ross Kaffenberger

How to Use the AWS Secrets Manager in a Rails App

Anonoz Burps

How to Run Feature Specs Headlessly or Not Headlessly at Will

Jason Swett

A Weird and Wonderful Trip through Ruby’s Standard Library— Alex shares some of his favorite, but not commonly known, modules in Ruby, such as the Abbrev and English modules.

Alex Taylor

Think All Error Monitoring Apps Are the Same? They’re Not.— Honeybadger combines monitoring for Ruby exceptions, uptime, and check-ins all in one powerful platform. Check us out.

Honeybadger sponsor

Discussing Serverless Ruby on AWS Lambda with Alex Wood— Alex Wood, the creator of AWS Lambda’s Ruby runtime, joins the Ruby on Rails podcast to discuss the work involved.

Ruby on Rails Podcast

Ruby and AWS Lambda, Serverless BFFs?— AWS Lambda has now support for Ruby, let’s build a GraphQL API with it.

Oriol Gual

How I Organize My Vim Hotkeys— Not Ruby specific but you might find this useful if you’re a Vim user.

Sam Phippen

Testing Private Methods?“why I think it’s useful for tests not to have any knowledge of a class’s private methods”

Jason Swett

🔧 Code & Tools

RubyGems 3.0.2 Released— A minor bugfix update to 3.0 which came out in December.

RubyGems Blog

Rack::Component: Handle HTTP Requests with Modular, Memoizable Components— An interesting idea, clearly a little inspired by React.

Chris Frank

Smart Init: A Way to Eliminate Initializer Boilerplate Code— Provides a DSL to help you get rid of repetitive boilerplate code in your initialize methods.

Paweł Urbanek

Logster: Log Viewer UI and Framework for Rack— An embedded Ruby ‘exception reporting service’ admins can view on live sites.

Discourse

Track Data Once with Segment. Send It to 200+ Tools. Get a Free Dev Account

Segment sponsor

Jets: A Serverless Framework for Rubyists

Tung Nguyen

Jb: A Simple and Fast JSON API Template Engine for Rails

Akira Matsuda

Sinatra 2.0.5 Released— It’s not been a release heavy year for Sinatra, but the reliable webapp library continues to do its job perfectly.

Kunpei Sakai

Ruby 2.6.0p0 has a sneaky HTTP related bug

$
0
0

#432 — January 10, 2019

Read on the Web

Ruby Weekly

Exploring a Critical Net::Protocol Issue in Ruby 2.6.0p0— It seems Ruby 2.6.0p0 introduced a serious bug if you do any HTTP communication from Ruby (using libraries like Net::HTTP, say) where certain payloads are getting corrupted. Luckily, a fix is in but we await a new official release so you may want to put off your production upgrades just for now.

Maciej Mensfeld

You Can Use Bundler Without a Gemfile— Did you know that it’s possible to use Bundler within a single Ruby script and without an external Gemfile? For some reason this had never occurred to me and it’ll be a game changer for my many single file scripts.

Victor Afanasev

Run Your Tests 2.1x Faster on Semaphore 2.0. Pay as You Go— Sign up with GitHub, get $200 of free credit, and give it a spin.

Semaphore 2.0 sponsor

Creating Ruby Bindings and Extensions— A practical guide to going native with C. In this case, looking at how a developer built a way for Rubyists to use Uber’s H3 hexagonal geospatial indexing system.

Sean Handley

The Ruby Reference— An attempt to bring together and extend core Ruby documentation for Ruby 2.6 in one place.

zverok

An Update on the Bundler 2 ReleaseLast week, we announced the release of Bundler 2 which depended upon RubyGems 3.0 - this requirement caused some issues so Bundler 2.0.1 (out now) relaxes the requirement to RubyGems 2.5.

Colby Swandale

How Fast is the Released Ruby 2.6.0?— Ruby and Rails benchmarking enthusiast Noah Gibbs is back with some initial results from his process where rather than testing just Ruby itself, he tests a basic Rails app running on Ruby.

Noah Gibbs

💻 Jobs

Love to Pair Program?— BackerKit is hiring developers who LOVE pairing to join our agile team. Join us! Learn more about our team values here.

BackerKit

Find A Job Through Vettery— Vettery matches top tech talent with growing companies. Create your profile to get started.

Vettery

📘 Articles & Tutorials

Bindings and Lexical Scope in Ruby— A concise review of scope and bindings followed by how ERB templates leverage them.

Jeff Kreeftmeijer

▶  Using Action Text in a Rails 5.2 Application— I bet you thought you had to wait for Rails 6 to use Action Text, didn’t you?

Go Rails

Common Mistakes That Cause Rails App Outages— Threads, database connections, timeouts, oh my!

Igor Springer

Active Admin Tips and Performance Optimizations— Active Admin gem is a popular tool for building admin interfaces in Rails apps.

Paweł Urbanek

Debug Faster With Context Based Logging— When done right, logs can be your most powerful debug tool.

Timber.io sponsor

▶  My Vim Setup for Rails“using Vim I can edit circles around anyone using Atom, Visual Studio, Sublime Text or any other non-keyboard-based editor”

Jason Swett

Rails Needs Active Deployment— A call to standardize Rails deployments. “I’m calling out for DHH or anybody else in the Rails community to think about Active Deployment.”

Stefan Wintermeyer

How To Use Environment Variables in Ruby

Jesus Castello beginner

🔧 Code & Tools

TensorStream: Bringing Machine Learning to Ruby— A pure Ruby machine learning framework that’s inspired by TensorFlow but doesn’t require you to get involved with Python at any stage. (Though if you want to use regular TensorFlow, there’s tensorflow.rb too.)

Joseph Emmanuel Dayo

Spin Up a GoCD Continuous Delivery Server in Less Than 5 Minutes

GoCD sponsor

Solargraph: A Ruby Language Server— A set of tools to integrate Ruby code completion and inline documentation into editors, such as VS Code.

Fred Snyder

Ruby 2.6 Ubuntu Packages Now Available— If you’re on Ubuntu and want Ruby 2.6 packaged up nicely, you can thank the folks at Brightbox.

John Leach

pipe_operator: Elixir/Unix Style Pipe Operations in Ruby— It’s just a proof of concept.

LendingHome

Three ActiveRecord mistakes that slow down Rails apps

$
0
0

#433 — January 17, 2019

Read on the Web

Ruby Weekly

3 ActiveRecord Mistakes That Slow Down Rails Apps— The culprits are count, where, and present?, and here’s advice that you will, no doubt, use from someone who literally wrote a book on Rails performance.

Nate Berkopec

Using Ruby in 2019— If you need a few reasons to be excited about being a Rubyist this year (or fight off the yearly “Ruby is Dead” posts) then this is for you.

Jason Charnes

eBook: Best Practices for Optimizing Postgres Query Performance— Learn how to get a 3x performance improvement on your Postgres database and 500x reduced data loaded from disk in this free pganalyze eBook.

pganalyze sponsor

A New Form of Lambda Composition in Ruby 2.6— 2.6 brings a couple of new proc composition operators: << and >>, which allow easy, intuitive, and (dare I say) functional composition of procs.

David Bourguignon

RubyFlow: A Ruby Community Link BlogRubyFlow is a community blog we run (all you need is a GitHub account to post) and has become one of our main sources of links, so if you have a library, tutorial, or something else Ruby related, post about it there.

RubyFlow

Cuprite: A Headless Chrome Driver for Capybara— A pure Ruby (no Java, Selenium, or WebDriver stuff needed here) driver that lets you run Capybara-based tests on a headless Chrome browser.

Machinio

💻 Jobs

Senior Web Developer at Dr. Bill (Remote OK)— Dr. Bill helps Canadian doctors save time by streamlining their billing. Help lead our team into the next phase of growth.

Dr. Bill

Senior Backend Engineer - Ruby on Rails (Berlin - On site)— Growing market and opinion research company, with a modern JavaScript and Ruby on Rails stack. We also have a team boat. Join us.

Dalia Research

Find A Job Through Vettery— Vettery specializes in developer roles and is completely free for job seekers.

Vettery

📘 Articles & Tutorials

How to Reduce Test Interference in Minitest— If you’ve ever had issues with Rails test leaking state between test cases, here’s a gem that’ll run one test per process.

Greg Navis

Partial Application in Ruby— Partial application, or currying, is a technique that uses a function to create new functions of lower arity (meaning, they take fewer arguments.)

Igor Morozov

Extracting Text From Images Using Ruby— Using Tesseract, MiniMagick, & OpenCV to extract subtitle text from screenshots (to categorize memes, no less!)

Ahmed Saleh

Performance Monitoring and Error Tracking for Rails— With deep process inspection - diagnose runaway memory leaks and deadlocked/zombie/high CPU processes.

Baseline Red sponsor

Serverless Slack Commands with Ruby: AWS Rekognition— Using the Jets framework on AWS Lambda to create a Slack command that scrapes and filters images.

Tung Nguyen

Crafting User Notifications in Rails with Active Delivery— Someone has created a framework to handle notification delivery that can use email, SMS, or just about any notification type you can dream up.

Vladimir Dementyev

Building a Serverless API with the Jets Ruby Serverless Framework— We first mentioned the Jets framework back in issue 431, but here’s a proper tutorial showcasing its usefulness.

BoltOps

Rails 6 Adds ActiveRecord::Relation#pick— A shortcut to select the first value for one or many attributes from a set of records.

Prathamesh Sonpatki

Understanding the Eigenclass in Less Than 5 Minutes— A bold claim for a somewhat obtuse concept?

Mehdi Farsi

🔧 Code & Tools

Suggest: Tells You Which Method Does The Thing You Want to Do[1,2,3].what_returns? 1 # => [:first, :min]

Josh Bodah

TTY::Pie: Draw Pie Charts in Your Terminal Window— The latest release adds a way to format legend labels however you like.

Piotr Murach

Shop Like a Developer – Discover and Experiment with Hot New Cloud Services 🔥

Manifold sponsor

FastJsonapi: A Super-Fast JSON:API Serializer for Ruby Objects

Netflix

Trav3: API Client for Travis CI API Version 3

Daniel P. Clark

The first beta of Rails 6.0 is here

$
0
0

#434 — January 24, 2019

Read on the Web

Ruby Weekly

The Ruby Toolbox: A Handy Catalog of Ruby Gems— Around for years, then abandoned, and now being actively worked on again, the Ruby Toolbox is a great way to explore and compare open source Ruby libraries. It’s recently been getting lots of neatenhancements.

The Ruby Toolbox

The First Beta of Rails 6.0 is Here— It’s almost 3 years since Rails 5 was first released, so this is pretty exciting. As well as supporting new things like parallel testing and built-in multiple database support, Rails 6 also features two new frameworks: Action Mailbox and Action Text.

David Heinemeier Hansson

Level Up Your Knowledge of Ruby's Exception System— Ruby's exception system is more powerful than many people realize. This book shows you how to get the most from it.

Honeybadger sponsor

Run.rb: Run Ruby in the Browser using WebAssembly— Pronounced “runner bee”, this project is Ruby 2.6 compiled to WebAssembly so you can execute Ruby without leaving the browser. It’s still very basic, but the promise is real and you can play with the demo here.

Jason Charnes and Will Glynn

Zeitwerk: An Efficient and Thread-Safe Code Loader— Provides a way to forget about requires in your code - just name things following a convention and you’re done. “The original goal of this project was to bring a better autoloading mechanism for Rails 6.” It’s not in Rails 6 yet but is due for beta 2.

Xavier Noria

Using OAuth to Access Google Services from a Ruby Script— Like Martin, I’ve found this a pain in the past, so it’s great he’s documented the process. If you want to interact with something like, say, YouTube’s API, this will be a lifesaver.

Martin Fowler

💻 Jobs

Sr/Software Engineer - The Age of Privacy Is Here. (SF Bay Area)— DataGrail helps customers offer transparency and control of personal data. Rails. Go. CI/CD. Modern stack.

DataGrail

Senior Ruby Developer— We are the best camera app for contractors. Join the team and help us scale our infrastructure to handle the 50+ million photos we will process this year.

CompanyCam, Inc.

Find A Job Through Vettery— Vettery specializes in developer roles and is completely free for job seekers.

Vettery

📘 Articles & Tutorials

Ruby Tricks for Junior Developers— As you level up in Ruby, there are many intermediate and advanced functions and techniques that will help you discover more of the language. Here are just a few including the safe navigation operator and the dig method.

Clement Bruno

Why Ruby Doesn't Have A Boolean Class— Ruby has TrueClass and FalseClass, but no Boolean class to unite the two. What gives??

Avdi Grimm

Use Lead Time Metric to Improve Your CI/CD Process— GoCD’s latest CD metrics blog will guide you how to identify bottlenecks and improve your CI/CD process.

GoCD sponsor

Building and Deploying a Ruby Slack Bot on AWS Lambda— This step-by-step tutorial lambda-fies a Sinatra app.

Mutually Human

Launching Your Own Ruby Gem: Popularizing It Within The Ruby Community— Once you’ve built your gem, you’ll want to encourage to use and maintain it, which boils down to docs, marketing, and presentation.

Paweł Dąbrowski

Using Google reCAPTCHA v3 with Turbolinks— reCAPTCHA v3 is essentially a hidden, score-based CAPTCHA but you’ll need to write some extra code to let it work with Turbolinks-powered pages.

Sven Pachnit

First Explorations of GitHub's New 'Actions' System— The tale of automating the workflow of releasing a Ruby gem, based off of the GitHub Action for npm.

Floor Drees (Phusion)

Use Multiple Migrations When Adding Database Constraints— If you don’t do this correctly, you could be looking at downtime as your DB catches up.

Andy Croll

Best Practices for Improving Page Load Speed Whitepaper. Download Now.

Cloudinary sponsor

The autoload Method in Ruby

Mehdi Farsi

Ruby Memory, ActiveRecord, and Draper— How Appaloosa tracked down an ActiveRecord method that was ballooning CPU and memory usage under load. These kinds of posts are very valuable.

Appaloosa Store

🔧 Code & Tools

macinbox: Puts MacOS Mojave into a Vagrant Box

David Kramer

script_core: A Script Engine Powered by mruby— A fork of Shopify’s ‘enterprise script service’ that can be used to execute untrusted Ruby code in a sandbox.

Rails Engine

James Cox Working on Awesome Print 2.0Awesome Print is a long-standing ‘pretty printer’ for Ruby objects and some new life is being breathed into it - use 2.0.0.pre or --pre to grab it for now.

James Cox

40 Best Ruby Gems We Can't Live Without— I feel like it’s been a while since we posted one of these so, here you go, a roundup of some goodies.

Sergiy Volkov and Rostyslav Korin

Ruby 2.6.1 released

$
0
0

#435 — January 31, 2019

Read on the Web

Ruby Weekly

Ruby 2.6.1 Released— This release is primarily to resolve the critical Net::Protocol issue we mentioned a few weeks ago. If you’re using 2.6 in production at all, this is a must update.

Yui Naruse

Rails 6 to Keep Source Maps in Production, Decrees DHH— For performance reasons, source maps were originally not going to be included in production Rails apps, but this week DHH stepped in and reverted to ‘source-maps-by-default’ behavior in tribute to the Web’s tradition of ‘View Source’ actually being useful.

Ruby on Rails

Timeseries in Redis with Streams— A Ruby walkthrough on using the new Stream data type in Redis to model time series.

RedisGreen sponsor

42 Performance Tips for Rails Developers— A collection of pretty brief tips, but at least a few are likely to help you, whoever you are (most are not Rails specific). Covers things like eliminating N+1 queries, using HTTP2, and using rack-mini-profiler.

Magnus Skog

Another Look at What's New in Ruby 2.6— Ruby 2.6 came out last month and this post does a good job of rounding up the most interesting new syntax and method improvements and some examples of them.

Nithin Bekal

ValueSemantics: A Gem for Making Value Classes— If you know what Value Objects are, this is worthy of your attention with its simple, dependency-free, extensible approach. If you don’t, this article makes a good case for their use.

Tom Dalling

💻 Jobs

Backend Engineer - (Dumbo, Brooklyn, NY)— Make an impact on our scalable e-commerce and inventory management application that services brands and customers worldwide.

Maisonette

Sr. Fullstack Engineer (Remote)— Sticker Mule is looking for passionate developers to join our remote team. Come help us become the Internet’s best place to shop and work.

Sticker Mule

Find A Job Through Vettery— Vettery specializes in developer roles and is completely free for job seekers.

Vettery

📘 Articles & Tutorials

Building a Service-Oriented Architecture with Rails and Kafka— Based on a talk at RailsConf, this post covers the basics of Kafka, evented architectures, and basic integration with Rails.

Heroku

RSpec Mocks and Stubs Explained in Plain English— A straightforward explanation of what they are in case of confusion, though the author also explains why he doesn’t actually use them much.

Jason Swett

eBook: Best Practices for Optimizing Postgres Query Performance— Learn how to get a 3x performance improvement on your Postgres database and 500x reduced data loaded from disk in this free pganalyze eBook.

pganalyze sponsor

Replace Timecop with Rails’ Own Time Helpers in RSpec— Timecop has long been used to set specific times (or ‘time travel’) in tests, but did you know that Rails has had similar functionality baked in since Rails 4.1?

Andy Croll

The Simplicity and Power of Ruby Struct— The what, when, and how of Struct along with comparisons to its ‘competitors’, such as OpenStruct& Hash.

Paweł Dąbrowski

“!” and “?”: Understanding One of Ruby’s Coolest Naming Conventions— Besides covering the basic conventions, Luan goes through an inconsistency and looks for similarities in other languages.

Luan Gonçalves

How ActionCable Broke Puma— ..and why iodine and/or AnyCable should be used instead.

Plezi

How to \watch Star Wars in Postgres

Citus Data sponsor

🔧 Code & Tools

rack-mini-profiler: Profiler for Your Rack Apps in Dev or Production

Sam Saffron et al.

Hanami v2.0.0 Alpha 1 Released— This is ‘more a preview’ as Hanami 2.0 is a total rewrite from 1.3 that includes a new router, application simplification, and better performing actions.

Luca Guidi

Apparition: A Capybara Driver for Chrome using CDP— CDP stands for Chrome DevTools Protocol and, here, means you can run Capybara tests headlessly without selenium or chromedriver. Cuprite is another such library - we have not yet done a comparison of the two.

Thomas Walpole

Dry-rb: 18 Useful Ruby Gems That Come Together— A nice introduction to a few of the 18(!) gems in the Dry.rb offering.

Jesus Castello

TTY: The Ruby Terminal Apps Toolkit— An ecosystem of gems for building elegant command line apps.

Piotr Murach

Textbringer: An Emacs-Like Text Editor Written in Ruby— We first linked this two years ago and its author has continued to improve things and make releases.

Shugo Maeda

EmailInquire: Validate Email Addresses for Common Typos

Maxime Garcia


An experimental wrapper around Ruby's TracePoint

$
0
0

#436 — February 7, 2019

Read on the Web

Ruby Weekly

Introducing dry-schema: A Data Coercion and Validation Library— A new library from Dry.rb focused on data validation. It was built to improve some of the issues in dry-validation.

Piotr Solnica

A Complete Program— An interesting exploration of a thought where, in this case, “complete” means “done enough for me to feel good about abandoning” it. In other words, how do you feel good about stopping work on a program?

Richard Mavis

Make a Valuable Open Source Contribution with CircleCI Orbs— CircleCI Orbs (packages of configuration) are a growing trend in open source. In this post, learn how to write your own orbs that thousands of developers can plug into their CI workflows.

CircleCI sponsor

TraceSpy: An Experimental Wrapper Around TracePoint— Very much an experiment/work in progress, but this is an interesting attempt at exposing a more fluent API around TracePoint, a Ruby 2.0 feature for tracing code execution.

Brandon Weaver

Better Support for C Extensions in TruffleRubyTruffleRuby is a promising, alternative GraalVM-based Ruby implementation being worked on at Oracle, and it has recently made some key steps in supporting C extensions.

Duncan MacGregor

strftimer: A Ruby strftime Format Generator— Give it a date and time format written long-hand and it’ll give you the Time#strftime format to use. For a Good Strftime and Rails DateTime Formats should also be useful in this area.

Edward Forshaw

💻 Jobs

Ruby on Rails Developer at X-Team (Remote)— Join the most energizing community for developers. Work from anywhere with the world's leading brands.

X-Team

Ruby Backend Developer (f/m/d), Berlin, Germany— Role with impact. Great team spirit. Benefits & relocation. Building the world's leading talent acquisition platform. Interested? Check out Glassdoor & kununu.

HeyJobs

Try Vettery— Vettery specializes in developer roles and is completely free for job seekers.

Vettery

📘 Articles & Tutorials

Unraveling Classes, Instances and Metaclasses in Ruby— Sorting out how classes, instances, and metaclasses fit into how Ruby looks up a method.

Jeff Kreeftmeijer

▶  Taming Monoliths Without Microservices— A talk from RubyConf Australia which is taking place.. right now!

Kelly Sutton

▶  The Case Of The Missing Method: A Ruby Mystery Story— An exploration of Ruby objects behind the scenes wrapped in a story of intrigue, also from RubyConf Australia.

Nadia Odunayo

How to Protect Individual Resources with Passwords— Rails comes with all the tools you need to protect individual resources (in this case, uploaded files) with a password.

Greg Navis

A Rubyist Takes a Stroll in Elixir-Land...with Surprising Results— Get outside your comfort zone and join us as we compare and contrast resolving modules in Elixir vs Ruby. Let’s get weird.

Honeybadger sponsor

Dream Code First— The Ruby community embraces TDD for the most part, but there are still arguments to the contrary. Here’s how to make the case against those arguments.

Tom Dalling

▶  An Interview with TruffleRuby's Chris Seaton— A 30-min chat with the leader of the TruffleRuby project, a high-perf alternative Ruby implementation being built at Oracle. A good way to dig into what it’s really all about.

Remote Ruby Podcast

▶  What the RegEx?— A brief eight minute look at regular expressions. Ideal for beginners.

Drifting Ruby beginner

How I Switched From Ruby to Python— We’re not recommending this course of action since, well, we don’t have a Python newsletter yet, but.. I won’t let that get in the way of a good story.

Benoit Larroque

▶  Ruby is the Best JavaScript— A “display of complete moral depravity” to make valid Ruby code that looks just like JavaScript(!) This is one you just watch for fun.

Kevin Kuchta

Avoiding Junk-Drawer Classes in Ruby— The best example of a “junk drawer” class is the User class in many Rails apps. Tons of methods and attributes for different contexts. Don’t do it.

Starr Horne

6 Postgres Tips for Rails Developers from the Show Floor at RailsConf

Citus Data sponsor

Does Rails Handle a Large Number of Nested Routes Better Than Sinatra?

Josef Strzibny

🔧 Code & Tools

RubyMine 2019.1 EAP Updated— JetBrains’ popular (commercial) Ruby IDE adds support for TruffleRuby and can now show you a call hierarchy of methods.

Artem Sarkisov

Spree 3.7 Released: The Rails-Based Ecommerce System— 3.7 is the last 3.x release before 4.0 but includes an all new REST API based on JSON API and using Netflix’s fast_jsonapi serializer.

Spree Commerce

Heaven's Door: A Capybara Test Scenario Recorder for Rails— A Rails engine that records browser operations and turns that into a Capybara test scenario.

Akira Matsuda

prettier-ruby: A 'Prettier' Plugin for Ruby CodePrettier is a popular code formatter usually associated with JavaScript and CSS.

Kevin Deisz

Blazer: A Ruby-Powered Business Intelligence Tool— A system for putting together charts and dashboards based on business data. Supports a wide variety of data sources. Version 2 came out a few weeks ago.

Andrew Kane

activerecord-import: Bulk Data Insertion with ActiveRecord— It just reached version 1.0. Does some clever things like generate the minimal amount of SQL inserts by analyzing associations.

Zach Dennis

A thorough tutorial on building a Rails and React app

$
0
0

#437 — February 14, 2019

Read on the Web

Ruby Weekly

Ruby 2.7 to Add Enumerable#tallyEnumerable#tally is a new function letting you count lists using a function - a long-wanted Ruby feature. Related commit.

Brandon Weaver

How to Create a CRUD App with Rails and React— A really thorough tutorial covering fronting a Ruby on Rails API with a React client along with linting, flash messages, and handling 404s in React.

James Hibbard

Production-Quality Redis Hosting— Better tools, analytics and support for your high-performance Redis needs.

RedisGreen sponsor

What’s Coming to Rails 6.0?“I’ve read through the CHANGELOGs of all Rails parts (ActiveRecord, ActionPack, ActiveSupport, etc.) and picked some of the features that I found the most interesting.”

Guy Maliar

An Interesting Way to Quickly Refactor Exceptions— Clean up error handling by writing your own error classes that match against other exceptions based on various attributes.

Paweł Dąbrowski

How to Create Your Own Rails Generator— Rails includes a mechanism for creating your own generators. This tutorial shows you how it works and walks through creating one of your own.

Ivan Matas

Exploring TracePoint— The first in a five-part series on TracePoint (the built-in object oriented API for Ruby’s tracing functionality) starts with initialization and how to pull information out of the current binding.

Brandon Weaver

💻 Jobs

Senior Ruby Backend Developer (f/m/d), Berlin, Germany— Role with impact. Great team spirit. Benefits & relocation. Building the world's leading talent acquisition platform. Interested? Check out Glassdoor & kununu.

HeyJobs

Cloud Operations Engineer - Invoca (Santa Barbara, CA or Remote)— Be part of a team of Operations Engineers deploying code to our production SaaS platform & public cloud infrastructure.

Invoca

Try Vettery— Vettery specializes in developer roles and is completely free for job seekers.

Vettery

📘 Articles & Tutorials

Be Careful Assigning to has_one Relations“When you assign a new instance of an associated model to its has_one model the existing instance is removed from the association and causes a permanent change to be written to the database.”

Andy Croll

Keeping Your Schema Close to You with the annotate Gem— Annotate adds comments to your model files that summarize that model’s schema, making it easier to look things up.

Hongli Lai

Use The Lead Time Metric to Improve Your CI/CD Process— GoCD’s latest CD metrics blog will guide you on how to identify bottlenecks and improve your CI/CD process.

GoCD sponsor

Early Hints and HTTP/2 Push with Falcon— How Falcon implements the burgeoning HTTP/2 web standard along with Rack’s early hints proposal.

Samuel Williams

Using PostgreSQL To Perform Tasks in a User's Local Time Zone— This is a very cool trick that uses Postgres’s IN TIME ZONE function to find the users to target with a task.

Scott Watermasysk

Make Delegated Methods Private in Rails— Did you know that delegating methods in a private scope does not make them private? Me neither. Luckily, there’s a workaround (and a forthcoming fix.)

Nithin Bekal

Tips for Running Free Dynos on Heroku in 2019— The somewhat convoluted rules around running stuff for free on Heroku. The short answer is free Heroku is for side projects and non-production environments.

Adam McCrea

How to Build Application Search for a Rails App— The folks behind Elasticsearch offer an Elastic App Search Service that can provide your app with fast, full-text searching capabilities with minimal integration effort.

Kellen Person and James Rucker

▶  Discussing TDD and Refactoring with Corey Haines

The Ruby Testing Podcast podcast

🔧 Code & Tools

JRuby 9.2.6.0 Released— A relatively minor update but with lots of fixes and tweaks. The stdlib is now up to Ruby 2.5.3 standards.

JRuby

Rubanok: Parameters-Based Transformation DSL— The idea is to tidy up how parameter names (such as via params in a webapp) relate to actions taken. You need to look at the examples really to see if this is for you or read this introductory post.

Vladimir Dementyev

Record Analytics Data from Your Ruby Code and Send It to Hundreds of Tools

Segment sponsor

Solrb: An Object-Oriented Solr Client for RubySolr is an open source search server, though Elasticsearch is now more popular.

Machinio

10 Essential Gems for Webapp Development with Rails 5.2— Have we listed one of these posts in a while? Regardless, this is a solid list.

Sreedev Kodichath

Some 'Unnoticed' Features of Rails 6

$
0
0

#438 — February 21, 2019

Read on the Web

Ruby Weekly

Some 'Unnoticed' Features of Rails 6— There’s a sizable number of changes coming to Rails 6 (which is already in beta) that aren’t getting the limelight, such as host whitelisting, new migration features, and tons of time and date syntactical sugar.

Alexandre Ferraille

Work on a Register Transfer Language (RTL) for CRuby— A detailed and rather low level article on the performance improvements that researcher Vladimir Makarov has been working on to make Ruby faster. Here we see his work with RTL, an approach for the Ruby VM to interpret instructions that results in a performance boost but at a cost.

Vladimir Makarov

Level Up Your Knowledge of Ruby's Exception System— Ruby's exception system is more powerful than many people realize. This book shows you how to get the most from it.

Honeybadger sponsor

The Power of Ruby Structs“I invite you to explore beyond ActiveRecord models and into the world of PORO (Plain Old Ruby Objects)..” And quite an exploration it is, too.

Dustin Zeisler

Build, Package, and Deploy an AWS Lambda using the Ruby Runtime“This post is a complete guide. That means we are going to create an AWS Lambda in the console first and then move onto using AWS SAM on our local machine to package and deploy the Lambda to AWS.”

Blackninja Dojo

Rubyhack Conference (Sandy, Utah, April 4-5, 2019)— The speakers have now been announced. Matz will be giving the keynote talk.

High Altitude Coding Konference

💻 Jobs

Ruby Backend Developer (f/m/d), Berlin, Germany— Role with impact. Great team spirit. Benefits & relocation. Building the world's leading talent acquisition platform. Interested? Check out Glassdoor & kununu.

HeyJobs

Senior Ruby Developer - Remote— Join our fully remote team and help scale one of the leading recreational poker platforms to millions of users.

Replay Gaming

Find A Job Through Vettery— Vettery specializes in developer roles and is completely free for job seekers.

Vettery

📘 Articles & Tutorials

Exploring TracePoint in Ruby: Events— We linked to part one in last week’s issue, the series continues by focusing on what events can be traced and how it’s done.

Brandon Weaver

▶  Discussing Rails Performance with Nate Berkopec— A 25 minute chat with a true Rails performance expert.

The Ruby on Rails Podcast, with Brittany Martin podcast

Microbenchmarks vs Macrobenchmarks (or What's a Microbenchmark?)— Noah is well known for his Ruby performance benchmarks and here he explains why certain types of benchmark are better at measuring certain things than others.

Noah Gibbs

IMAGECON 2019: Transforming the Digital Experience. Registration Now Open

Cloudinary sponsor

Refactoring With Design Patterns: The 'State' Pattern— A basic but easily understood example of the pattern.

Cleiviane Costa

Form Validations with HTML5 and Modern Rails— Progressively adding smart functionality on top of what HTML5 and Rails bring to the validations table.

Jorge Manrubia

Going Deep on UUIDs and ULIDs— You’ve probably seen UUIDs like 123e4567-e89b-12d3-a456-426655440000 but what about ULIDs like 01ARZ3NDEKTSV4RRFFQ69G5FAV?

Starr Horne

Moving from Ruby to Rust“Moving from Ruby to Rust was a success that dramatically sped up our dispatch process..” We don’t want to lose any readers, but we think it’s important to share experiences like this too.

Andrii Dmytrenko

Making Flux Queries in Rails

InfluxData sponsor

🔧 Code & Tools

Semantic Logger: A Feature Rich Logging Framework— Can replace existing Ruby and Rails loggers and can send off logs to numerous systems like MongoDB, New Relic, Elasticsearch, or more generically to file, over TCP, UDP, HTTP, etc.

rocketjob

Crabstone: Ruby Bindings to the Capstone Disassembly Library— This has quite a specific and niche use case (binary analysis and reversing in the security community) but v4.0 came out recently, the first release in years.

david942j

TTY::Markdown: Convert Markdown into Terminal-Friendly Output

Piotr Murach

Flipper: Fast and Simple 'Feature Flipping' for Ruby

John Nunemaker

Passwordless: Add Password-Free Authentication to a Rails App— Provides ‘magic links’ in emails for logging in. A new version came out recently.

Mikkel Malmberg

Rails 6.0 Beta 2 released

$
0
0

#439 — February 28, 2019

Read on the Web

Ruby Weekly

Rails 6.0.0 Beta 2 Released— The gradual march towards a release candidate of Rails 6 continues. The second beta includes 532 commits beyond the first beta and includes switching autoloading over to the Zeitwerk library (here’s more info on what that means).

Official Rails Blog

Busting a Year-Old Bug in SprocketsSprockets is a popular Rack-based asset packaging system. Here we get to see a bug found within it and the process a developer went through to solve it.

Richard Schneeman

Free Visual Testing with Percy— Replace time-consuming manual QA to catch visual UI bugs automatically. Percy’s all-in-one visual testing solution makes it easy to test your UI across browsers and responsive breakpoint widths and review all visual changes with a single click.

Percy sponsor

Diving into Ruby's dup and clone— A real dive under the hood to look at how Object#dup and Object#clone differ and how they work, built off of a practical example.

Jeroen van Baarsen

Sorbet Playground: A Way to Play with Typed Ruby— An in-browser playground for Sorbet, a type-checker for Ruby (which we told you about in issue 402 last summer.)

Stripe

The Ruby Toolbox Now Has Historical Gem Download ChartsThe Ruby Toolbox, a handy way to find actively maintained gems, now offers charts “displaying both the total number of downloads as well as the downloads per month”

The Ruby Toolbox

💻 Jobs

Sr. Fullstack Engineer (Remote)— Sticker Mule is looking for passionate developers to join our remote team. Come help us become the Internet’s best place to shop and work.

Sticker Mule

Senior Ruby Backend Developer (f/m/d), Berlin, Germany— Role with impact. Great team spirit. Benefits & relocation. Building the world's leading talent acquisition platform. Interested? Check out Glassdoor & kununu.

HeyJobs

Find A Job Through Vettery— Vettery specializes in developer roles and is completely free for job seekers. Create a profile to get started.

Vettery

📘 Articles & Tutorials

How I Replaced a Rails App with a Few Dozen Lines of Ruby— An interesting use of GitHub Actions to write less code and maintain less infrastructure.

Nicky Holden

Secure Your Rails Staging Environment with HTTP Basic Authentication— HTTP Basic Authentication is considered a bit old fashioned but it has some handy, small-scale use cases, such as this.

Andy Croll

eBook: Best Practices for Optimizing Postgres Query Performance— Learn how to get a 3x performance improvement on your Postgres database and 500x reduced data loaded from disk in this free pganalyze eBook.

pganalyze sponsor

An Instrumental Intro to GraphQL with Ruby— A nice introduction that uses plain Ruby to serve GraphQL using Agoo, an HTTP server gem.

Peter Ohler

▶  How to Deploy Rails to Production on Ubuntu 18.04— I’m always grateful for an up to date guide on this stuff. While this is a video, there’s a written guide too.

Go Rails

How I Write Characterization Tests— Not a term I’d heard of before either, but characterization tests essentially define the actual behavior of some code (rather than future intended behavior).

Jason Swett

Use (Space)Vim as a Ruby IDE— A few tips on turning SpaceVim into a powerful Ruby IDE.

Shidong Wang

How to Scale Out Multi-Tenant Rails Apps on PostgreSQL

Citus Data sponsor

Action Cable vs AnyCable: A Comparison— Action Cable or AnyCable? This article shows an analysis of their respective performance.

Maurizio De Santis

▶  Connecting SQS Events to Ruby AWS Lambda Functions with Jets

Tung Nguyen

Creating Raspberry Pi Apps with Raylib and Ruby— Raylib is library used to create GUI and gaming applications. This tutorial is less about how to build such apps and more how to use SWIG to wrap Raylib to use it from Ruby.

Avik Das

🔧 Code & Tools

Passenger 6.0.2 Released— A patch level release for the popular app server.

Camden Narzt (Phusion)

Enums: Safe Enumeration Types for Ruby— Why do we need more than just using constants or a hash for enums? Gerald tries to show us a better way.

Gerald Bauer

Sail 3.0: An Admin Panel for Managing Config Settings on Live Rails Apps

Vinicius Stock

Eight Ruby Frameworks That Aren’t Rails— These tend toward microframeworks (like Cuba) or specializations (like Grape) and it’s a good idea to know they’re out there.

Epifany Bojanowska

What's new in Rails 6

$
0
0

#440 — March 7, 2019

Read on the Web

Ruby Weekly

▶  What's New in Rails 6— Last week’s release of Rails 6 beta 2 has us all interested in Rails 6 again, and here we get to see the new bits in a tight, well-produced video (11 minutes).

Drifting Ruby

RubyGems Updated Due to Vulnerabilities— Several vulnerabilities, including one where a gem author could package a gem in such a way as to delete arbitrary directories, get fixed in 3.0.3 and 2.7.9 so upgrade now.

Hiroshi Shibata

DevOps Monitoring, for Developers. *Gasp* 😲— Honeybadger simplifies your production stack by combining exception monitoring, uptime monitoring, & check-in monitoring into a single, easy to use platform. Surprise & delight your users by fixing errors before they even have a chance to complain.

Honeybadger sponsor

Ten Steps for Securing Your Web Applications“Security is hard.” This post helps you handle both intended and unintended functionality. Make it a checklist for your apps.

Joe Kunter (Heroku)

Webpacker 4.0 Released— Webpacker makes it easy to use the popular webpack JavaScript bundler with your Rails apps. If you need to upgrade from using Webpacker 3.5, here’s an upgrade guide.

Ruby on Rails

Ruby Trickery“Please, do not use any code in this blog post in production systems. It can cause weird behavior.” Still, these tricks (things like overriding addition and playing with unary methods) are kinda fun.

Ryan Bigg

💻 Jobs

Ruby on Rails Developer at X-Team (Remote)— Join the most energizing community for developers. Work from anywhere with the world's leading brands.

X-Team

Software Engineer - Backend (Poland)— Help us bend Ruby and Elixir to our will on our quest to revolutionize the beauty and wellness industry.

Shedul

Find A Job Through Vettery— Vettery specializes in dev roles and is completely free for job seekers.

Vettery

📘 Articles & Tutorials

Ruby's Hidden Gems: StringScanner— If you’ve not used the StringScanner class (it’s part of Ruby’s standard library), this post on using it to parse a log message into a JSON object will be fruitful.

Michael Kohl

A Look at MJIT Support in Ruby 2.6

Sudeep Tarlekar

Ruby’s Many CLI Option Flags and How To Use Themruby -c -w -e 'puts "Ruby has more CLI options than you probably expect."' What do you think that does?

Jesus Castello

Why Don't We Validate Controller Parameters?— Validations are standard practice in ActiveRecord, but what about in controllers for params? apipie-rails makes it easy.

Igor Springer

New Microsoft Azure Elastic Agent Plugin for GoCD— Run your CI/CD pipelines on Azure virtual machines. Let GoCD scale up on-demand agents based on your needs.

GoCD sponsor

Rails 6 Adds Negative Scopes on Enums— In other words, it adds not_ prefixed scopes on enum attributes.

Abhay Nikam

Approaches for Speeding Up Your Rails Apps— You’ve probably heard all of this before, but can you ever hear it enough?

Daniel Lempesis

Debugging Sidekiq Poison Pills“That one time a memory leak almost took down one of our apps – and how we fixed it.”

Brittney Johnson (Gusto)

Solving Slack-Side Disconnects in slack-ruby-client— The story & approach behind debugging an issue experienced by users of a Slack client library.

Daniel Doubrovkine

Deconstructing Shopify's Monolith— Shopify has one of the largest Ruby on Rails codebases in existence and its system was, for years, a huge monolith. This post looks at the limits they ran into and why and how they migrated to a microservices-based approach.

Kirsten Westeinde (Shopify)

🔧 Code & Tools

StoreModel: A Gem for Handling JSON-Backed Attributes as ActiveRecord Models— Rather than deal with JSON columns as hashes, treat them as mini models of their own.

Dmitry Tsepelev

mrubyc/c: An Alternative Implemention of mrubymruby is a lightweight, embeddable Ruby interpreted being worked on by Matz himself. This, however, is an alternative implementation aimed at even smaller memory use cases (down to 40KB memory size).

Shimane IT Open-Innovation Center

Pagy 2.0: The 'Ultimate' Pagination Gem— Works with all Rack-based frameworks and is storage/ORM agnostic. 2.0 improves i18n support, is faster, and works on more versions of Ruby than before.

Domizio Demichelis

Share Your Whole Stack with Your Team with One Workflow 👩‍💻

Manifold sponsor

slack-ruby-client: A Ruby Client for Slack's Web, Real Time Messaging and Event APIs

Daniel Doubrovkine, Artsy and Contributors

PyCall: Call Python Functions from Ruby

Kenta Murata

Viewing all 462 articles
Browse latest View live