DEV Community

Cover image for Hacky Friday Stuff #31.01.2020
Alexey Zhaboyedov
Alexey Zhaboyedov

Posted on

Hacky Friday Stuff #31.01.2020

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

MIR: A lightweight JIT compiler project
For the past three years, Vladimir Makarov has been participating in adding just-in-time compilation (JIT) to CRuby. Now, CRuby has the method-based just-in-time compiler (MJIT), which improves performance for non-input/output-bound programs.
CRuby MJIT utilizes GCC or LLVM, but what is unique about this JIT?

Modern Ruby Serializers
A great overview of serializers in Ruby from a historical perspective and the long road to the SimpleAMS.

Optimization Techniques by Benchmark Winners
This post is based on Jeremy Evans‘s Optimization Techniques Used by the Benchmark Winners presentation. Slides | YouTube at Ruby Kaigi 2019. It‘s better to watch his fabulous presentation, but you can come back here for written references. These techniques coming from maintaining Sequel and Roda. These two gems have always been 0 issues. It‘s probably the best maintained gems. Sequel and Roda are the leader for Ruby in TechEmpower benchmark results. Let‘s see what lessons can we learn to optimize Ruby.

From Single drop-down to Multiple check-boxes
In this article you will:

  • learn how to maintain a Rails application in production with zero downtime
  • see how to make necessary changes on the current DB structure and deliver new features
  • figure out how to ship new features to production without outages, bugs, and downtimes
  • feel what’s Continuous Delivery by a case that happened with a Rails application in production.

Raft 5: Taking Stock

The dirty secret is, TDD isn’t for completely novel problems. We need some information first about the risks and responsibilities inherent to our system.

Continuous deployment Ruby application to Minikube with Google's Skaffold
Kubernetes has made it very easy to deploy and scale applications to the cloud than ever. Still, the development process has not evolved at the same speed.
In this article, we will see how to set up continuous deployment of simple Ruby application to Minikube to reduce the development cycle time using the Google's Skaffold tool.

Tools and libraries

ruby-warning
ruby-warning adds custom processing for warnings, including the ability to ignore specific warning messages, ignore warnings in specific files/directories, deduplicate warnings, and add custom handling for all warnings in specific files/directories.

commander
The complete solution for Ruby command-line executables. Commander bridges the gap between other terminal related libraries you know and love (OptionParser, HighLine), while providing many new features, and an elegant API.

16 New ML Gems for Ruby

Over the next 5 months, I ended up releasing 16 libraries and learned a lot along the way. I wanted to share some of that knowledge and introduce some of the libraries you can now use in Ruby.

Reverse Coverage: Find which tests execute which lines of code
Have you ever wondered what tests cover a specific part of a project?
Occasionally it could be useful to discover how is tested/executed/documented (in the way of tests as Living Documentation) a line (or set of lines) of an application.

Podcasts

Full Stack Radio | 133: Sam Selikoff - Building Production-Ready SPAs Fast with Mirage.js
In this episode, Adam talks to Sam Selikoff about Mirage.js and how to use it to build production-ready front-end applications, even if your back-end API isn't ready yet.

Videos

dry-rb in five: 005 dry-validation (predicates & custom types)
In today's episode we're looking at predicates as a tool to define advanced expectations for incoming data. We can also abstract common set of expectations with our own custom types such as Email, and Age, to use in dry-validation contracts.
Custom types documentation is available at https://dry-rb.org/gems/dry-types

Top comments (0)