16 April 2014

The Ruby Reflector

Topic

Kirk Haines

  Source Favicon
By Kirk Haines of Engine Yard Developer Blog over 2 years ago.
Email

You have likely heard of event based/driven programming, which you may also see referred to as "evented" programming. It has been around and in use for a long time, but it is seeing a growing swell of interest in recent years. Perl has had POE for years. Likewise, Python has had Twisted for quite a few years. Graphics toolkits such as GTK use event loops to respond to user interface events. Javascript has been getting a lot of attention lately because of the …

engineyard.com Read
  Source Favicon
By Kirk Haines of Engine Yard Developer Blog over 2 years ago.
Email

The other day while I was in the midst of a discussion about Linux kernel upgrades, one of the other engineers who works at Engine Yard, Scott Likens, sent me a github URL:

https://github.com/FooBarWidget/passenger/commit/4d765d71ea689c42ade897fc93851b8a8797e9c7

It turned out that this patch had hit the Passenger github repo after our last set of ebuild releases, so I started investigating.

The patch fixes a concerning issue. Consider the simplest valid HTTP request for HTTP 1.0:

engineyard.com Read
  Source Favicon
By Ruby on Rails of Rails Envy » Home over 4 years ago.
Email

Kirk Haines posts part 5 of his key/value stores walk through on the Engine Yard blog. This week's post is on MongoDB.

Completeness-fu

Completeness-fu for ActiveRecord allows you cleanly define the way a model instance is scored for completeness, similar to LinkedIn user profiles.

Rails Logging with MongoDB

Phil Burrows has written up a recipe for logging to MongoDB from your Rails app. MongoDB has some features that make it an excellent choice …

railsenvy.com Read
  Source Favicon
On codahale.com almost 5 years ago.
Email

Kirk Haines adds Backport # 1589 to the Ruby Issue Tracking System describing a patch which "eliminate[s] some BigDecimal bugs."

Kirk Haines announces the release of Ruby 1.8.6-p369 , which includes a fix for CVE-2009-1904.

Michael Koziarski makes the bigdecimal-segfault-fix project public on GitHub.

June 10th, 2009

Barry Hess finds a bug introduced in 1.8.7-p173 breaks BigDecimal#to_f .

A ticket is added to the …

codahale.com Read
  Source Favicon
By Shai Rosenfeld of Engine Yard Developer Blog over 2 years ago.
Email

Kirk Haines wrote a very deep technical post about MRI memory allocation in Ruby 1.8 which you can read also. The main concepts are generally applicable in Ruby 1.9 as well.

Joe Damato has a good Garbage Collection and the Ruby Heap screencast about memprof. It provides a little more insight into Ruby's GC and how you can debug it within your application.

Lastly it's also worth mentioning that while helpful, GC optimizations aren't necessarily …

engineyard.com Read
  Source Favicon
Email

Kirk Haines wrote a great blog post on memory allocation here . You can read more about performance tuning in REE here , or JRuby over here .

Background processes Starting with metric collection, use tools like RPM , or memprof to find your most expensive actions. Often, these actions can be moved to a background worker that run periodically using a separate GC. Engine Yard officially supports background processes through both Delayed …

engineyard.com Read
  Source Favicon
By Kirk Haines of Engine Yard Developer Blog almost 4 years ago.
Email

Memory allocation in the MRI 1.8.x series of Ruby is seen by many developers to be a black box. A developer writes code and the interpreter just does some magic to make sure that the memory for the code is allocated, and more importantly, eventually garbage collected. You don't have to think about, it or even care about it all that much.

And generally... that attitude is a productive one. The less you have to actively worry about the little details—like memory management—the more you …

engineyard.com Read
  Source Favicon
By Kirk Haines of Engine Yard Developer Blog 4 years ago.
Email

In previous posts, I've routinely mentioned a piece of software called Varnish. Varnish is a caching reverse proxy for web traffic, and if your job or your interests lean toward production web applications at all, you definitely want to get familiar with it.

This post isn't going to try to make a case for using a caching reverse proxy, as I think that's already sufficiently covered. Instead, it'll focus specifically on an overview of Varnish; what you need to do with it …

engineyard.com Read
  Source Favicon
By Kirk Haines of Engine Yard Developer Blog 4 years ago.
Email

"Why does everybody say that CPUs are fast nowadays and that ‘it doesn't matter that language XYZ is slow'?

It does matter: web applications. If your applications can't serve all the visitors, then you're going to lose your customer or you'll have to learn some other language with better performance.

Once our application serves 200 million page views each day... the languange is really sensitive, so we go with C/ C++."

—ruby-talk Thread

engineyard.com Read
  Source Favicon
Email

…Yard-supported open source Ruby projects: Yehuda Katz and Mikel Lindsaar on Rails, Evan Phoenix and Brian Ford on Rubinius, Charles Nutter, Tom Enebo and Nick Sieger on JRuby, and Kirk Haines on Ruby 1.8.6.

The future of Ruby, Rails and all things open source is looking bright; see you there!

engineyard.com Read