The Last Week in Ruby: Rails 3.1.1, Sinatra Recipes, Spree Gets Funded and more »

Created at: 18.10.2011 01:10, source: Ruby Inside, tagged: Miscellaneous News

Back in 2008 and 2009, Ruby Inside had a long line of "Interesting Ruby Tidbits That Don’t Need Separate Posts" posts, aimed at sharing a collection of news and libraries in one hit. In the last year, I've shifted Ruby Inside to focusing on less frequent tutorials or investigative features and have been putting all of the news on Ruby Weekly, my weekly newsletter.

There are still many, though, who would prefer to read the news in their RSS readers or on the Web, so I'm going to be taking the things I find for Ruby Weekly each week, doing a little reformatting, and sharing them here on Ruby Inside too. The longer articles will then slot in nicely in between :-)

So here we go, starting off from Ruby Weekly issue 63. You can check out the full 63 issue archive, if you like, or even sign up for Ruby Weekly here if you weren't familiar with it. Or, of course, stay here on Ruby Inside and get the same (or more) each week - it's your choice!

Without further ado..

Headlines

Rails Recipes: Rails 3 Edition (in Beta)
Chad Fowler has been updating the Pragmatic Programmers' Rails Recipes book to Rails 3.1 standards. It's in beta now (as an e-book) with the full print release expected in December 2011.

Spree (Open Source Rails E-commerce System) Raises $1.5 Million
Spree is a popular open source Rails e-commerce system and its creator has raised $1.5m in venture capital to take it even further (as well as offer Spree-based consulting). Tom Preston Werner (GitHub) and James Lindenbaum (Heroku) have joined as advisors.

Articles and Tutorials

Sinatra Recipes - Handy Recipes for Working with Sinatra
Sinatra Recipes is a community contributed set of recipes and techniques for working with the popular Sinatra webapp library. There are examples of using many different libraries with Sinatra that are bound to prove useful, if only to learn from.

Give It A Pry
Pry is a powerful REPL environment for Ruby and an ideal alternative to IRB. Jon Jackson shows off his top 5 reasons for switching to Pry - maybe they'll convince you too.

Rubyists Already Use Monadic Patterns
Monadic programming is a pattern that comes up in a lot of code, just like most patterns. While associated with pure functional language like Haskell, Dave Fayram demonstrates how many patterns used by Ruby developers are monadic too.

The Ruby 1.9 Walkthrough: Go Deep on Ruby 1.9
The Ruby 1.9 Walkthrough is a thorough, up-to-date video walkthrough of Ruby 1.9 - perfect for 1.8 developers who are unsure about the leap. Even Ruby 1.9 guru James Edward Gray II said he picked up plenty of stuff from it.. but beware, it's long :-)

Presentations and Videos

Gregory Moeck: Why You Don't Get Mock Objects
Not a big fan of mock objects in testing? Don't even know what mocks are? Get up to speed with Gregory Moeck who makes a convincing case for mocks in this RubyConf 2011 replay. In essence, if you're doing object orientation properly, you need mocks (ooh, controversial!)

Your Data, Your Search: ElasticSearch
A wonderful Ruby-focused slide-deck by Karel Minarik (that was presented at EURUKO 2011) all about the concept of 'searching', the flaws in naive solutions, and a tour of the ElasticSearch system and using it from a Rails app.

Complex Ruby Concepts Simplified (Presentation)
At RubyConf 2011, Matt Aimonetti gave a presentation that dug into Ruby's garbage collection, C interface, global interpreter lock, and more, and the slides are definitely easy (and worthwhile) to follow.

The Intro to Rails Screencast I Wish I Had
Over at NetTuts+, Jeffrey Way has put together an interesting 40 minute 'introduction to Rails' screencast that takes the high road and covers topics like TDD, auto testing, RSpec, and Capybara. It's an introduction for people who want to get it right first try.

Libraries and code

Tire: A Rich Ruby API for the ElasticSearch Search Engine/Database System
Tire is a Ruby client for ElasticSearch, written by Karel Minarik. ElasticSearch is a scalable, distributed, cloud-ready, highly-available, full-text search engine and database with powerfull aggregation features, communicating by JSON over RESTful HTTP, based on Lucene, written in Java.

Queue Classic: A Powerful PostgreSQL-Backed Queueing Library
Queue Classic is a PostgreSQL-backed queueing library built by Ryan Smith of Heroku that focuses on concurrent job locking, minimizing database load and providing a simple, intuitive user experience.

Ruby Jobs of the Week

Sr (Agile) Software Engineer at Apple [Cupertino, CA]
Apple is seeking the very best engineers to be part of a continuously tested and integrated development process in its Developer Publications team. The systems they build are used for all Apple developer documentation for Mac OS X and iOS. You need deep knowledge of Ruby including Rails, RSpec, Bundler and Devise.

Last but not least..

The Ruby Toolbox Gets A Makeover
The Ruby Toolbox is a popular site that categorizes and rates gems by their popularity and functionality. If you're looking for a gem and you can't quite figure out which ones are out there, it's worth a look. A recent redesign has really kicked things up a notch.


more »

Thanking Ruby Inside’s September 2011 Supporters »

Created at: 11.10.2011 17:56, source: Ruby Inside, tagged: Miscellaneous notweet

Ruby Inside wouldn't be what it is without you but it's time for me to thank the companies who also help to keep Ruby Inside going by sponsoring my work. Thanks!

I take care not to accept sponsors who have little of interest to the Ruby scene so hopefully you'll find something useful below - it's not a roster of faceless companies, these folks are doing great stuff.

Gauges - Simple, Sexy Real-time Analytics

Gauges is a tool for collecting and analyzing the Web traffic for all your sites in real-time using a fast, reliable, hosted system. You can even see overview data for all your sites on a single page. It comes from Ordered List, the same folks who built Harmony.

CodeSchool - Learn By Doing

CodeSchool is an innovative, interactive online marketplace where you can learn to code directly in your browser. Courses so far include the FREE "Rails for Zombies" (and forthcoming Rails for Zombies 2), Functional HTML5 & CSS3, and Rails Best Practices. They have some great stuff in the pipeline and if you're looking to pick up some new skills, definitely check them out.

New Relic — On-demand Application Management

New Relic is a full-stack Java, Ruby, PHP, and soon Python, application performance and management app that started life as a Rails-only service.

New Relic has long dominated the performance monitoring scene, particularly amongst Rails apps (folks like 37signals and Shopify use them heavily), but they've not rested on their laurels. Just a few months ago they released a Real User Monitoring service which goes right down to the customer experience. How quick pages load, how quick the pages are to render, etc.

Cloudmailin - Incoming Email for your Web App (As A Service)

Cloudmailin is a cloud service that can accept e-mail and then send the required data, real time, to your webapp over an HTTP POST request. Take the strain out of hosting your own e-mail infrastructure and let Cloudmailin take care of it instead.


more »

RubyDrop: A Dropbox Clone in Ruby »

Created at: 26.11.2010 22:56, source: Ruby Inside, tagged: Cool Miscellaneous

rubydrop.png Ever used Dropbox? It's awesome. A cross-platform (Windows, Mac, Linux, and even mobile) file syncing and backup service with 2GB for free (or 2.25GB if you sign up with this link). Well, if you'd like to roll out your own system on your own infrastructure, send some thanks to Ryan LeFevre, the creator of RubyDrop, an open source Dropbox clone based on Ruby and git.

Cloning Dropbox sounds like a tall order and in reality, "Dropbox clone" is a big stretch. RubyDrop is quite simple under the hood and focuses on the file syncing part of the problem. A Ruby process monitors a folder for changes and uses Git to do the heavy lifting and change management between your clients and a defined central server.

RubyDrop is not without its flaws. What happens when files are changed on multiple nodes and then clash? Your mileage may vary. What's good, though, is that Ryan seems keen to improve the system and has already planned a centralized server and is considering integrating rsync to make file syncing smoother. Ryan is a systems engineer at TwitPic with a background in PHP, JavaScript, and C but RubyDrop is his first Ruby project. I look forward to seeing more both from him and RubyDrop.

[sponsor] MinuteDock is a fast and streamlined time tracking/logging app that makes tracking time and sending invoices painless and easy. Check it out.


more »

Is the Ruby Standard Library a Ghetto? »

Created at: 22.11.2010 22:14, source: Ruby Inside, tagged: Controversy Miscellaneous

mikeperham.pngIn The Ruby Stdlib is a Ghetto, Mike Perham argues that Ruby's "standard library" (all the libraries that come by default with Ruby installs) is old and crufty and suggests some parts that should be removed.

The Problem

In case you're unfamiliar with the term, the ever authoritative Urban Dictionary lists ghetto as, among other things:

an impoverished, neglected, or otherwise disadvantaged residential area of a city, usually troubled by a disproportionately large amount of crime

Anyone's who recently looked up documentation for stdlib-dwelling libraries has probably been a little frustrated. I see rants and raves from time to time on IRC and Twitter and I'm often surprised at how much isn't documented. Frequently, documentation advocates like James Britt will encourage people to start contributing documentation in an attempt to tidy up their own back yard, but the process is, IMHO, reasonably arcane compared to that of other open source projects.

A Solution?

Mike's suggests that we remove most of the substantial libraries, like Net::* (including the popular Net::HTTP), DRb, REXML, RSS, and even WEBrick, and to have them as separate, RubyGems-installable libraries.

I agree. Even forgetting the technical aspects, freeing these libraries from the clutches of the standard library and having defined maintainers (on, say, GitHub) could encourage more developers to engage with them, fork them, provide patches, and so forth, as we see with other popular Ruby libraries.

The sticking point? The "standard library" is called "standard" for good reason. You can install Ruby 1.8.7, 1.9.2, JRuby 1.5, or any mainstream implementation and expect to run require 'drb' successfully out of the box. Taking libraries out of the standard library would change this and, of course, require significant community agreement and discussion, not least from the Japanese Ruby high guard.

I applaud Mike for kicking off the discussion, though. In a year or two's time, we might get to look back at the discussion much as we can now look back at 2008's "No True 'mod_ruby' is Damaging Ruby's Viability On The Web" and breathe a sigh of relief.


more »

AppSumo: A Discount Bundle of Webapp Credits Suited to Ruby Developers »

Created at: 14.11.2010 17:10, source: Ruby Inside, tagged: Miscellaneous News

appsumo.pngAppSumo is an intriguing "bad ass developer bundle" that brings together $1543 of credit for ten different Web app development related resources (most are Ruby focused or have Ruby APIs) for a mere $47 purchase.

The services include:

  • Twilio - an API driven telephony service (I use this — it's great)
  • Heroku - the Ruby webapp hosting environment
  • Hoptoad - the errors notification service
  • New Relic - the performance monitoring and application management service
  • As well as Recurly, SendGrid, MongoHQ, SauceLabs, Infochimps and Linode.

Sadly I'm already signed up with most of these services and most of the credits are for new or upgraded accounts only, but if you want to give any of the above services a try or want to build a new app that relies on them, this looks like a steal.

I also need to put a big fat disclaimer here in case you have problems with AppSumo: I'm not related to AppSumo, getting nothing from them (shame!) and am not responsible if it turns out to be flaky. That said, I've only seen good reports so far (there are lots of them on Twitter). Enjoy.


more »