…environments featuring a single shared heap and garbage collector. Based on our experience working with the JVM, one of the things that surprised us is that we have not, thus far, had to tune Erlang's garbage collector. We've seen reliable performance without VM tuning and with little attention paid to code optimization.
While the primary motivation for choosing Erlang was based around performance (and we have not been disappointed there), we've also benefited from the debuggability …
…OO/functional system, to a multi-machine distributed program. You can't say this about other JVM languages like Java or Clojure. The JVM is a gift and a curse. It makes Scala and Java impractical for scripts, due to startup time. But once your program is somewhat grown-up, Hotspot and the JVM's excellent concurrency features come in quite handy.
More specific to the book, it cleared up some ideas I'd previous found confusing:
What's a method call/operator …
…indirection. This adds a certain amount of overhead to constant access, and also makes it impossible for the JVM to fold multiple constant accesses away, or make static decisions based on a constant's value.
On an invokedynamic JVM, the cache verification is in the form of a SwitchPoint. SwitchPoint is a type of on/off guard used at invokedynamic call sites to represent a hard failure. Because it can only be switched off, the JVM is able to optimize the SwitchPoint logic down …
Support multi-threaded and multi-process runtimes like JVM, Node.js, Unicorn and Puma
Stateless architecture to optimize for reliability and scalability
Additionally, to meet the scalability requirements of Cedar we chose to remove the queuing logic and switch to random assignment. This new routing design was released exclusively on Cedar and was significantly different from the old design. What's important to note is we intended customers to get the new routing behavior only …
…- New statically typed language from JetBrains that compiles to JVM byte codes and JavaScript.
rubyflux - And here's a Ruby to Java compiler.
What Is New in Rails Contributors - A note on the latest updates to the RailsContributors site. I'm amazed that I'm still #29 on the overall list.
Koudoku - Subscription support for Rails applications via Stripe.
Private windows coming to Firefox - Or already here, …
Over a year ago Heroku launched the Cedar stack and the ability to run Java on our platform . Java is known as a powerful language - capable of performing at large scale. Much of this potential comes from the JVM that Java runs on. The JVM is the stable, optimized, cross-platform virtual machine that also powers other languages including Scala and Clojure. Starting today you can leverage the power of the JVM in your Ruby applications without learning a new language, by using JRuby on Heroku.
Mirah - New ruby-inspired language on the JVM.
Divshot - Drag and drop builder for responsive HTML/CSS.
CleanSlate - Extreme CSS reset, useful for adding your own widgets in to someone else's web pages.
GuerillaPatch - Gem to use a common interface for monkey patching Ruby 1.9 or 2.0 (with refinements in the latter case).
Folderol MD - Instant web publishing of Markdown pages.
The Insufficiency of Good Design - Sarah Mei's keynote from RubyConf.
JRuby is an excellent Ruby implementation for the JVM, and in the past few years they have been doing a great job with regard to compatibility and performance. But for a long time, application server support for JRuby had been limited:
While Mongrel and Thin had limited JRuby support, these setups have not been very popular. Since so few people use these setups, their caveats are not very well known.
Unicorn does not support JRuby at all because it was designed to take advantage …
33rd Degree 2012 - Twitter: From Ruby on Rails to the JVM - Raffi Krikorian
Twitter, historically, has been one of the Internet's largest Ruby on Rails website. To support the volume of traffic that comes along with that, Twitter has jumped through many hoops: from re-architecting the way it uses Rails to building and running its own custom Ruby interpreter. To help us focus on our core mission of "real-time" we've undergone a transition and are currently …
…Java or XML, all it means is that you are running Ruby on the Java Virtual Machine. Running an MRI application on Passenger or Unicorn poses a couple issues including memory growth, requiring shared session state and managing database connection pools. Joe identifies the GIL in MRI as the root of these pain points. His suggested solution is to use a runtime that doesn't have a GIL like JRuby. That's not to say switching to JRuby will instantly send rainbows flying out …