The latest installment of my series of roundup posts, covering some of my latest findings in the world of all things Ruby. Why two "tidbits" posts in a row? Well, I'm radically redesigning/reworking Ruby Inside to be more interesting, both to you and me. This coupled with work on my new startup coder.io have reduced my available time a lot but, rest assured, everything will be crazy on Ruby Inside again within a week or so :-)
The latest installment of our series of roundup posts, covering some of our latest findings in the world of all things Ruby (or not). These items wouldn't make it in as separate posts, but they should be of enough interest to Rubyists generally to make it a worthwhile browse for most readers.
The latest installment of our series of roundup posts, covering some of our latest findings in the world of all things Ruby. These items wouldn't make it in as separate posts, but they should be of enough interest to Rubyists generally to make it a worthwhile browse for most readers.
Ruby User Groups (RUGs, for short) are typically informal organizations put together to encourage Ruby developers with certain areas to get together, share ideas, and, often, to have some fun. If you're lacking for inspiration or want to get to know some Rubyists within certain parts of the world (or just around the corner, if you're lucky), heading to a Ruby User Groups' meeting can open a lot of doors. But how can you find them?
Garbage Collection and the Ruby Heap is a presentation given by Joe Damato and Aman Gupta at the recent LA Ruby Conference. You only get the slides for now (all 70 of them!), but they're very detailed and can almost work as a standalone concise e-book on Ruby's garbage collection system.
Ruby Best Practices is a book by Gregory Brown (and published by O'Reilly) that looks into the "Ruby way" of doing things in the Ruby language and, specifically, why Rubyists tend to write Ruby the way they do. It's an engaging book and we took a look at it and interviewed Gregory Brown about it just over a year ago.
Sick of Rails 3.0 yet or still enjoying your Sinatra, Rango, Ramaze, Cramp, or totally non-Web-based development? OK - I've sniffed out 12 new, interesting Ruby related libraries or blog posts just for you! with no Rails whatsoever!
Friendly is a new Ruby ORM (a la ActiveRecord) that lets you easily use NoSQL ideas on regular database engines, such as MySQL. Developer James Golick has written a blog post introducing Friendly that goes into detail on how it works - with code examples. Effectively you get schema-less, document-like storage (with indexes!) but based around MySQL.
Welcome to the latest installment in the series of compilation posts summarizing some of my latest findings in the world of all things Ruby. Let's tackle those links..
If you've worked with Web apps using Ruby, you might know of Rack, an interface that sits between Ruby applications and HTTP-speaking Web servers. All of the major Ruby frameworks and server setups use it now, including Rails. Middleware (in Rack) is code that manipulates data going back and forth between your Ruby apps and the HTTP server. You can use middleware to intercept requests, change data in mid-flow, etc. Ryan Bates has a great screencast tutorial if you're new to the concept and want to build your own.
RubyPulse is a screencast site that publishes regular videos about different Ruby libraries. It's a month old so far and German Ruby developer Alex Peuchert has put out 9 episodes already. With a little support, perhaps Alex will be able to keep it going and become the pure Ruby equivalent of Ryan Bates!
Learnivore is a new(ish) site by French Rubyist Thibaut Barrère that aims to aggregate all of the best screencasts in any easy to navigate, searchable manner. Learnivore is worth following (you can even follow it on Twitter) because unlike blog posts, screencasts from disparate sources haven't really been specifically indexed and presented well before.
Ruby5 is a new twice weekly podcast dedicated to Ruby and Rails news. It's headed by Gregg Pollack (formerly of the RailsEnvy podcast which Jason Seifer has now taken over) and Nathan Bibler. They aim to cover several bits of Ruby and Rails news in five minutes. You can also leave comments about the stories on their site as you listen. As of today, there are 7 episodes in the archives if you want to catch up, all in the 5-6 minute range.
Rails Rumble is an annual Ruby (and Rails) development contest where developers attempt to build a working web app in 48 hours. This year it took place between 22-23 August and you can now vote on the top 22 applications (as ranked by an expert panel - disclaimer: I was on the panel). Despite its name, Rails Rumble is not only for Rails applications - this year, any application that uses Rack could be entered. I wasn't aware of this before the contest took off, but hopefully with this in mind many more Sinatra and Ramaze entries could join the fold next year.
It's pretty rare I recommend new blogs to follow on Ruby Inside. Not because I don't like them - I link to their posts all the time! - but because it's hard to tell if a new blog is going to keep going and be worth your while.
The Interactive Ruby Shell, more commonly known as IRB, is one of Ruby's most popular features, especially with new developers. You can bash out a one-liner, try a method you've just learned about, or even build a small algorithm or two without going the whole way to writing a complete program.
New to Ruby 1.9 is the concept of fibers. Fibers are light-weight (green) threads with manual, cooperative scheduling, rather than the preemptive scheduling of Ruby 1.8's threads. Since Ruby 1.9's threads exist at the system level, fibers are, in a way, Ruby 1.9's answer to Ruby 1.8's green threads, but lacking the pre-emptive scheduling.
Adam Sanderson has written an extremely useful RubyGems plugin called open_gem. It makes it really quick to inspect what's inside your gems, e.g.: gem open rails. You'll need to be running RubyGems 1.3.2 first.
When it comes to developing large systems with many interdependent parts, it’s common nowadays to use “queues.” A queue is, for the most part, just a list that you can add items to and remove items from. Apps can use queues to despatch jobs / tasks to other apps or to shuttle logs and status information around.
If you've developed a Web application using Ruby lately, you've probably used Rack in one way or another. Rack calls itself a "Ruby Web server interface" and I tend to think of it as an abstraction between the messy world of HTTP and the potentially just as messy world of your code.
What's Hot on Github is a monthly(ish) post highlighting interesting GitHub-hosted Ruby-related projects that are new or updated within the past month.
The always popular MountainWest RubyConf took place again this year on March 13-14 and the always awesome Confreaks team was on hand to record all of the presentations. Already they have 31 videos of MWRC 2009 up and ready to view in both HD (720p) and 640x360 MPEG4 formats. This is a goldmine of viewing and even if you don't get to a single Ruby conference this year, these videos could do 90% of the work for you.