Ruby

Featured image for: Mostly harmless: An account of pseudo-normal floating point numbers.
Article

How I developed a faster Ruby interpreter

Vladimir Makarov

Learn about 8 optimization techniques for a faster interpreter in Ruby which I developed using a dynamically specialized internal representation (IR).

ossible future development directions for the MIR project.
Article

MIR: A lightweight JIT compiler project

Vladimir Makarov

Take an in-depth look at the MIR lightweight JIT compiler project's goals and state of development, such as the addition of support for CRuby.

Article

Register Transfer Language for CRuby

Vladimir Makarov

This post shows the advantages and disadvantages of using register transfer language (RTL) for CRuby, and it compares the performance of RTL CRuby with that of trunk CRuby.

SystemTap
Article

Making the Operation of Code More Transparent and Obvious with SystemTap

William Cohen

You can study source code and manually instrument functions as described in the “Use the dynamic tracing tools, Luke” blog article, but why not make it easier to find key points in the software by adding user-space markers to the application code? User-space markers have been available in Linux for quite some time (since 2009). The inactive user-space markers do not significantly slow down the code. Having them available allows you to get a more accurate picture of what the...

SystemTap
Article

"Use the dynamic tracing tools, Luke"

William Cohen

Reviewing source code can be helpful in understanding how code works, but the static view may not give you a complete picture. The paths taken through code are heavily data dependent. Learn how to use Systemtap and debuginfo to dig into the Ruby interpreter internals on Red Hat Enterprise Linux 7.

Article

Towards The Ruby 3x3 Performance Goal

Vladimir Makarov

This blog post is about my work to improve CRuby performance by introducing new virtual machine instructions and a JIT. It is loosely based on my presentation at RubyKaigi 2017 in Hiroshima, Japan. Version 3 of Ruby should be 3 times faster than version 2.

Video Thumbnail
Video

JRuby 9000 by Charles Nutter

Ruby has come a long way since JRuby first ran Rails in 2006. Frameworks like Rails have grown up with the modern web, now supporting web sockets, microservices, and integration with Javascript client libraries like Ember. Concurrency utilities modeled after the JDK are helping Ruby scale horizontally. Applications can be built with Rake - or with JRuby plugins for Gradle and Maven. Maven poms can be written in a beautiful Ruby DSL. Swing, JavaFX, and other graphics libraries become easy and fun with JRuby. Sass and Asciidoctor are already being used in Java apps thanks to JRuby. And you can bundle up the whole thing in an executable jar or war file; your devops will never know it's Ruby. Come see what JRuby 9000 can do for you in 2015.

Article

Now available - Red Hat Software Collections 2.4 and Red Hat Developer Toolset 6.1

Mike Guerette

Today, we are announcing the general availability of Red Hat Software Collections 2.4, Red Hat’s latest set of open source web development tools, dynamic languages, and databases. We are also announcing Red Hat Developer Toolset 6.1, which helps to streamline application development on Red Hat Enterprise Linux by giving developers access to some of the latest, stable open source C and C++ compilers and complementary development tools. New language additions to Red Hat Software Collections 2.4 include: Nginx 1.10 Node.js...

Article

A Beginners Guide to DSL Writing in Ruby

Heiko Rupp

In this article, I want to describe how to write a DSL / parser in Ruby with a treetop parser. Writing the Grammar and Parser in Ruby first has the advantage of interactivity. Ruby is interpreted and has a very quick startup time. To get going I’ll start writing a JSON parser. This may sound strange as there are already JSON parsers out there, but I don’t try to replace them, but rather show the concepts along that line rather...

Article

Towards Faster Ruby Hash Tables

Vladimir Makarov

Hash tables are an important part of dynamic programming languages. They are widely used because of their flexibility, and their performance is important for the overall performance of numerous programs. Ruby is not an exception. In brief, Ruby hash tables provide the following API: insert an element with given key if it is not yet on the table or update the element value if it is on the table delete an element with given key from the table get the...

Article

Eclipse Vert.x Core Cheat Sheet

Clement Escoffier

Eclipse Vert.x is a toolkit used to build reactive and distributed systems on the Java Virtual Machine. Vert.x supports a variety of languages letting you choose which one you’d prefer. The Vert.x Core cheat sheet covers the creation of a project using Apache Maven, Gradle or the Vert.x CLI, and references most common Vert.x Core APIs, in 3 different languages (Java, JavaScript, and Groovy). Forgot how to create an HTTP server, use the HTTP client, implement a request-response on the...

Article

Red Hat Software Collections 2.3 now beta

Mike Guerette

Today, Red Hat announced the beta availability of Red Hat Software Collections 2.3, Red Hat’s newest installment of open source web development tools, dynamic languages, and databases. Delivered on a separate lifecycle from Red Hat Enterprise Linux with a more frequent release cadence, Red Hat Software Collections bridges developer agility and production stability by helping to accelerate the creation of modern applications that can then be more confidently deployed into production. New additions to Red Hat Software Collections 2.3 Beta...

Article

Using API keys securely in your OpenShift microservices and applications

Shane Boulden

In the microservices landscape, the API provides an essential form of communication between components. To allow secure communication between microservices components, as well as third-party applications, it's important to be able to consume API keys and other sensitive data in a manner that doesn't place the data at risk. Secret objects are specifically designed to hold sensitive information, and OpenShift makes exposing this information to the applications that need it easy. In this post, I'll demonstrate securely consuming API keys...

            Article
       Thumbnail
Article

Red Hat Software Collections 1.0 Beta Now Available

Mike Guerette

You may have seen references to "software collections" in this blog, but this is different. "Red Hat Software Collections", now in beta for the first time, is a collection of refreshed and supported web/dynamic languages and databases for Red Hat Enterprise Linux. Now you can have two versions of software on one OS, or refresh these languages and databases more frequently. See this list below! From the announcement: "Red Hat is pleased to announce the Beta release of Red Hat...