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. POE for years. Likewise, has had Twisted for quite a few years. Graphics toolkits such as use event loops to respond to user interface events. has been getting a lot of attention lately because of the …has had
The other day while I was in the midst of a discussion aboutupgrades, one of the other engineers who works at , , sent me a URL:
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 validfor HTTP 1.0:
Kirk Haines posts part 5 of his key/value stores walk through on theblog. This week's post is on .
Completeness-fu forallows you cleanly define the way a model instance is scored for completeness, similar to user profiles.
Phil Burrows has written up a recipe for logging to MongoDB from your. MongoDB has some features that make it an excellent choice …
Kirk Haines adds to the Ruby Issue Tracking System describing a patch which "eliminate[s] some # 1589 bugs."
Kirk Haines announces the release of , which includes a fix for CVE-2009-1904. 1.8.6-p369
Michael Koziarski makes the bigdecimal-segfault-fix project public on.
June 10th, 2009
Barry Hess finds a bug introduced in 1.8.7-p173 breaks BigDecimal#to_f .
A ticket is added to the …
Kirk Haines wrote a very deep technical post about MRI memory allocation in which you can read also. The main concepts are generally applicable in Ruby 1.9 as well. 1.8
Garbage about memprof. It provides a little more insight into Ruby's GC and how you can debug it within your application. and the screencasthas a good
Lastly it's also worth mentioning that while helpful, GC optimizations aren't necessarily …
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. officially supports background processes through both Delayed …
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 …
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 …
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++."
…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!