October 17, 2018, 5:00 pm
![]() 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 |
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 |
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 |
|
↧
October 24, 2018, 5:00 pm
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. |
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 |
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 |
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 |
|
↧
↧
October 31, 2018, 5:00 pm
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 |
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 |
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 |
|
↧
November 7, 2018, 4:00 pm
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 |
![]() 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 |
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 |
|
↧
November 14, 2018, 4:00 pm
![]() 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 |
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 |
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 |
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 |
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 |
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 |
|
↧
↧
November 21, 2018, 4:00 pm
🦃 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 |
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 |
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 |
Senior Ruby Developer— We are a rapid growing startup in the construction space, helping companies to streamline field documentation and communication. CompanyCam LLC |
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 |
|
↧
November 28, 2018, 4:00 pm
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 |
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 |
Senior Ruby Developer— We are a rapid growing startup in the construction space, helping companies to streamline field documentation and communication. CompanyCam LLC |
Why On Earth Do Fibers Exist?— “Fibers were created so one could implement generator pattern” What’s the generator pattern? Read on. Nikita Misharin |
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 |
|
↧
December 5, 2018, 4:00 pm
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 |
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 |
|
↧
December 12, 2018, 4:00 pm
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 |
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 |
▶ 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 |
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 |
|
↧
↧
December 19, 2018, 4:00 pm
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 |
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 |
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 |
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 |
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 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 |
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 |
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 |
Testing Private Methods?— “why I think it’s useful for tests not to have any knowledge of a class’s private methods” Jason Swett |
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 |
|
↧
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 |
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 Release— Last 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 |
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 |
▶ 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 |
|
↧
January 16, 2019, 4:00 pm
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 |
RubyFlow: A Ruby Community Link Blog— RubyFlow 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 |
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 |
|
↧
↧
January 23, 2019, 4:00 pm
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 |
Zeitwerk: An Efficient and Thread-Safe Code Loader— Provides a way to forget about require s 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 |
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. |
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 |
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 |
|
↧
January 30, 2019, 4:00 pm
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 |
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 |
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 |
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 |
|
↧
February 6, 2019, 4:00 pm
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 |
Try Vettery— Vettery specializes in developer roles and is completely free for job seekers. Vettery |
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 |
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 |
|
↧
February 13, 2019, 4:00 pm
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 |
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 |
Try Vettery— Vettery specializes in developer roles and is completely free for job seekers. Vettery |
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 |
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 |
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 |
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 |
|
↧
↧
February 20, 2019, 4:00 pm
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 |
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 |
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 |
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 |
|
↧
February 27, 2019, 4:00 pm
![]() 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 |
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. Create a profile to get started. Vettery |
|
↧
▶ 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 |
![]() 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 |
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 |
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 |
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) |
mrubyc/c: An Alternative Implemention of mruby — mruby 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 |
|
↧