Towards Faster Ruby Hash Tables

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 value of an element with given key if it is in the table
  • the shift operation (remove the earliest element inserted into the table)
  • traverse elements in their inclusion order, call a given function and depending on its return value, stop traversing or delete the current element and continue traversing
  • get the first N or all keys or values of elements in the table as an array
  • copy the table
  • clear the table

Continue reading “Towards Faster Ruby Hash Tables”

Share

Red Hat Software Collections 2.3 now beta

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 include:

Continue reading “Red Hat Software Collections 2.3 now beta”

Share

Using API keys securely in your OpenShift microservices and applications

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 in OpenShift Enterprise 3. We’ll deploy a Sinatra application that uses environment variables to interact with the Twitter API; create a Kubernetes Secret object to store the API keys; expose the secret to the application via environment variables; and then perform a rolling update of the environment variables across our pods.

Continue reading “Using API keys securely in your OpenShift microservices and applications”

Share

Are “Web Components” in the future for PatternFly?

pf_wc

Web development has become increasingly complicated in recent years.  The questions of which framework to use often can eat up much time at the start of a project.  I can’t remember the number of times people have asked me while working on a Knockout project if I’ve heard of Durandal, or when considering Angular 2 – what about React/Flux or Aurelia?

Patternfly is a community project that promotes design commonality and improved user experience. Its offerings include open source code, patterns, style guides and an active community that helps support it all. But, this complexity, choosing web frameworks, also affects PatternFly.  Our goal is “to build a UI framework for enterprise web applications”.  That requires that we remain outside of the discussion of which framework is best and provide a solid set of patterns and designs for developers to rely on.

How can you build a UI framework when there are so many choices and so many strong feelings about the different choices?  In my opinion, it’s important for developers to choose the framework that is best for the project and fits their skill set.  There isn’t one choice that works for everybody and it’s important that we support all developers that want the benefit of well-designed components that can be used in enterprise applications.

Continue reading “Are “Web Components” in the future for PatternFly?”

Share

Containerize your Ruby on Rails/PostgreSQL application with RHSCL Docker images

New RHSCL-based Docker images that are now in beta let you easily build your own application containers even without writing any Dockerfiles. Here is an example of a Ruby on Rails application built with the Ruby 2.2 image using the PostgreSQL 9.4 image as a database backend.

Continue reading “Containerize your Ruby on Rails/PostgreSQL application with RHSCL Docker images”

Share

Red Hat Software Collections 2.0 Docker images, Beta release

I’m very happy to announce that Docker images based on collections from Red Hat Software Collections (RHSCL) 2.0 are in beta testing.  The images are available from the Red Hat Container Registry, and we’ve got the set of collections for language, databases and web servers covered – a complete list is below.

If you’ve not tried out the Docker package from RHEL7 Extras, you need to enable the Extras channel, install the docker page, and start the docker service; an extended guide for RHEL Docker is available here.  Once you are set up, pulling the RHSCL Docker images is very simple… for example, you can fetch the Python 3.4 image as follows:

Continue reading “Red Hat Software Collections 2.0 Docker images, Beta release”

Share