You can’t learn in a vacuum: lessons from 6 open source software maintainers Lessons learned from the maintainers of 6 major Ruby projects on maintaining and contributing to open source software.
Running Chrome Headless, Selenium and Capybara inside GitLab CI and Docker Selenium + Chrome Headless fail with mysterious errors when run in GitLab CI and Docker. Here's why, and also how we fixed it.
How to win friends and open-source your software Traveling Ruby, one of Phusion's open source projects, gets a massive overhaul. Find out how to make your work pull request-ready.
How Dishwashers Ruin Ruby Apps Procrastination can get you into a lot of trouble, work just builds up until you have to spend all your time just catching up. It’s the same with web apps, if you just defer work until after sending the response you’ll s
Why Ruby app servers break on macOS High Sierra and what can be done about it People who have upgraded to macOS High Sierra and who are using a preforking app server such as Puma or Unicorn (with the right settings), may have noticed this error: objc[81924]: +[__NSPlaceholderDictionary initialize]
Let's-Honor-Ryan-Bates Cast ep 1 Ruby developers, do you remember the awesome RailsCasts? Author Ryan Bates is doing well and just got married. We want to honor and congratulate him, but just writing a postcard is a bit boring. So... what better way to
ActionCable under stress: Finding a DoS vulnerability in Rails 5 WebSockets Apps In this article we will show you how Rails 5.0.0 ActionCable applications on Puma, the new default Rails app server, might be exposed to denial of service by slow clients. We will be using the OS X network shaping tools
Resolving Web Application Resource Bottlenecks with Concurrency This article is a general introduction into the bottlenecks of web applications and how application servers can deal with them to improve request throughput and response times. We will start off by introducing the role o
Efficiently and Conveniently Building Ruby and Node.js Application Docker Containers for Production In this article we will show how we build Docker application containers in two steps and explain why that is a useful thing to do. We then walk you through writing a build script that not only builds an application conta
Using Rails 5 ActionCable and RethinkDB to build a Reactive WebSocket App In this article we will demonstrate how to build a WebSockets driven application using Rails 5’s ActionCable. By using RethinkDB's active changefeeds feature we can eliminate the need for a separate event broadcasting se
Web applications on Phusion Passenger are not vulnerable to HTTPoxy A short time ago an old security issue was revealed to still be present in many modern application servers. The issue is now known as HTTPoxy, and no fewer than 6 CVE's were issued to document the vulnerabilities in var
ActionCable under stress: fixing data corruption, socket leak issues in Rails 5 During performance testing of the Rails 5.0.0 release we discovered two bugs in Rails. One data corruption bug that occurs when two threads transmit on the same channel, and another bug causing socket leaks that could ev