It's written in Ruby and uses the Sinatra streaming API (an EventMachine implementation of Server-sent Events ) to handle both the incoming log data and outgoing live updates to the user's browser.
It uses the Heroku API when you connect to the page to fetch the app's name and number of web dynos . It takes a hint for concurrency per dyno based on the WEB CONCURRENCY config var.
All of the metrics are derived from 60 seconds …
The final option for consideration is em-resque - an EventMachine based worker system. There is a great blog post explaining the problems and reasons behind this gem's creation - we're just about to give it a go, so hopefully it will be as good as it looks.
So far, a standard Resque worker in our case can process 120 jobs per minute, the resque-jobs-per-fork set at 500 jobs per fork can manage about 300 jobs per minute (average) while running with no forking (using …
…years working to advance and improve Ruby's efficiency through concurrency, first with EventMachine and fibers and now with Actors and multithreading so it shouldn't surprise you that my #1 pick is puma . It's my belief that puma and sidekiq are a new breed of Ruby infrastructure that can dramatically improve your application's efficiency — should you decide to take advantage of them.
puma is a pure Ruby, Rack-based web server and drops right …
And a happy Thanksgiving to you as well.
Colour Schemes - A whole pile of 'em for Sublime Text 2 or TextMate.
Zuck - Gem to use Facebook's ads API.
Cramp - Asynchronous Ruby web application framework built on top of EventMachine.
Skitch and Evernote: A Letter from Keith Lang - Looks like they're actually listening to user feedback. Amazing.
Goliath does not seem to have official support for JRuby thanks to the unknown status of EventMachine's Java support.
So the only options left were J2EE app servers such as JBoss, Tomcat, GlassFish and TorqueBox; as well as the recently developed Puma, which is almost pure Ruby.
Thanks to the new ApplicationPool and Spawner architecture in Phusion Passenger 4, we're now able to support JRuby with ease. Because a lot of code has been moved into C++, we no longer …
Describing a slide deck with ' Ruby developers need to stop using EventMachine. It's the wrong direction' is a sure-fire way to get attention :-)
Growing a Rails Application: How We Made Deploy Fast Again
The developers at PagerDuty brought their deploy time down from 10 minutes to 50 seconds. How? You gotta read for that.
Watching and Listening
Aaron Patterson on ' Rails 4 and the Future of Web'
Earlier this month at Aloha Ruby Conference 2012…
Ruby's EventMachine: Event-based Programming (Part 1)
Not up to speed with EventMachine yet? No worries, Phil Whelan kicks off a series of blog posts introducing us to the popular event-processing library (which, incidentally, hit version 1.0 just this month.)
An Experiment in Static Compilation of Ruby: FastRuby
Charles Nutter (of JRuby fame) shows off an experiment in doing static compilation of Ruby to Java. Short and sweet and leans on JRuby…
…was the only application server that was able to support high I/O concurrency use cases. Built on EventMachine, Thin is evented, just like Node.js. Since then, another evented application server called Goliath has appeared, also built on EventMachine. However, evented servers require evented application code, and Rails is clearly not evented.
There have been attempts to make serial-looking code evented through the use of Ruby 1.9 fibers, e.g. through the em-synchrony gem , …
Note : If you end up enjoying this post, you should do two things (I am paying customers for both and get nothing in return). sign up for Pusher and then subscribe to destroy all software screencasts , or vice versa.
For those that do not know, Gauges currently uses Pusher.com for flinging around all the traffic live.
Every track request to Gauges sends a request to Pusher. We do this using EventMachine in a thread, as I have previously written about .
…and weaknesses, though the most common is EventMachine. Just like our simple reactor, EventMachine offers timers and asynchronous handling of events, though EventMachine's versions will scale better. This article's version uses the select() call, which limits code using it to 1024 open file descriptors. On the other hand, EventMachine, if used on a platform that support epoll ( Linux) or kqueue (various * BSD platforms), can readily support at least 10s of thousands. EventMachine…