Hacky Friday Stuff #1.11.2019
Tags: ruby, rails, fullstack, fridaystuff
Published: 2019-11-01 09:49:39

*Links about web development, product engineering, tools and services from all over the internet.*

[Rails 6.0.1 RC1 Released](https://weblog.rubyonrails.org/2019/10/31/Rails-6-0-1-rc1-released/)
I am happy to announce that Rails 6.0.1.rc1 has been released.
If no regressions are found, expect the final release on Tuesday, November 5, 2019.

[Rails 6.0 new framework defaults: what they do and how to safely uncomment them](https://medium.com/@dylansreile/rails-6-0-new-framework-defaults-what-they-do-and-how-to-safely-uncomment-them-586146f371e8)
This is a walkthrough of the nine default flags in new_framework_defaults_6_0.rb generated by rails app:update. At the end of this article you’ll feel confident in deleting that file and adding load_defaults 6.0 to your application.rb.

[Rails 6 adds tools for Action Cable testing](https://blog.saeloun.com/2019/10/22/rails-6-adds-support-for-actioncable-testing.html)
Prior to Rails 6, there were no tools for testing Action Cable functionality provided out of the box. One can use action-cable-testing gem which provides test utils for Action Cable.
In Rails 6, the action-cable-testing gem was merged into Rails, in addition to other additional utilities. so now we can test Action Cable functionalities at different levels.

[The One Who Created Elixir](https://www.welcometothejungle.com/fr/articles/btc-elixir-jose-valim)
Creator of the functional programming language Elixir and cofounder of Plataformatec, a software consultancy specializing in Elixir and Ruby, José Valim discusses how it all started with programming, the lessons he learned while creating Elixir, and his involvement in its future.

[Static Typing in Ruby with a Side of Sorbet](https://blog.heroku.com/static-typing-ruby-with-sorbet)
As an experiment to see how static typing could help improve our team’s Ruby experience, we introduced Sorbet into a greenfield codebase with a team of 4 developers. Our theory was that adding static type checking through Sorbet could help us catch bugs before they go into production, make refactoring easier, and improve the design of our code. The short answer is that yes, it did all of that!

[How Ruby Can Surprise You](https://tech.showmax.com/2019/10/how-ruby-can-surprise-you/)
A nice list of quirks and specifics of Ruby that look confusing.

### Gems

[full_request_logger](https://github.com/basecamp/full_request_logger)
Easy access to full request logs via a web UI. The recorder attaches to the existing Rails.logger instance, and captures a copy of each log line into a per-thread buffer. When the request is over, the middleware makes the recorder store all the log lines that were recorded for that request as a compressed batch to an auto-expiring Redis key.

[bundle-diff](https://github.com/readysteady/bundle-diff)
Bundler plugin for showing diffs of bundled gems against latest versions.

[httpx](https://gitlab.com/honeyryderchuck/httpx#httpx-a-ruby-http-library-for-tomorrow-and-beyond)
HTTPX is an HTTP client library for the Ruby programming language.

[modulation](https://github.com/digital-fabric/modulation)
Modulation provides an alternative way of organizing your Ruby code. Modulation lets you explicitly import and export declarations in order to better control dependencies in your codebase. Modulation helps you refrain from littering the global namespace with a myriad modules, or complex multi-level nested module hierarchies.

[lowkiq](https://github.com/bia-technologies/lowkiq)
Ordered background jobs processing.

[tapping_device](https://github.com/st0012/tapping_device)
Tapping Device is a gem built on top of Ruby’s TracePoint class that allows you to tap method calls of specified objects. The purpose for this gem is to make debugging Rails applications easier.


### Tools

[Unused](https://unused.codes/)
A command-line tool to identify unused code. Unused is best leveraged with dynamic programming languages including Elixir and Ruby.

[Fathom](https://usefathom.com/)
Fathom, simple analytics for bloggers & businesses.

### Javascript

[SWR](https://swr.now.sh/)
SWR is a React Hooks library for remote data fetching.
The name “SWR” is derived from stale-while-revalidate, an HTTP cache invalidation strategy popularized by RFC 5861.
SWR first returns the data from cache (stale), then sends the fetch request (revalidate), and finally comes with the up-to-date data again.

### Podcasts

[Code[*ish*] | 41. Architecting Multi-Tenancy](https://www.heroku.com/podcasts/codeish/41-architecting-multi-tenancy)
Salesforce architect Ian Varley discusses multi-tenant architecture, including how it differs from multi-user systems. Salesforce, along with other immense cloud platforms, rely on a shared resource architecture in order to scale horizontally. Multi-tenancy offers unique challenges around job scheduling, resource contention, and ensuring secure isolation between users.

[Ruby On Rails Podcast | 293: Speed as a Feature with Gannon McGibbon](http://5by5.tv/rubyonrails/293)
Gannon McGibbon is a Software Developer at Shopify. He primarily works on improving codebase health of Shopify's monolithic Rails app. Gannon regularly contributes to open source with commits on Rails, Ruby, and Rubocop. He joined Brittany to discuss his latest blog post, "How to Write Fast Ruby on Rails code".

### Videos

[Building the New Facebook with React and Relay | Frank Yan](https://www.youtube.com/watch?v=9JZHodNR184&feature=youtu.be)
Ashley and Frank discuss some of the technologies and strategies powering FB5, the new facebook.com. Topics covered include Facebook's approach to CSS-in-JS, data-driven dependencies, phased code downloading, and more.

[Nordic.js 2019 • Avdi Grimm - No Return: Moving beyond transactions in software and in life](https://www.youtube.com/watch?v=k-Q_dXVQM1c&feature=youtu.be)