Einhorn: the language-independent shared socket manager #

Cool Ruby gem from the team at Stripe which makes it easy to run multiple copies of a single long-lived process. From their announcement post:

Einhorn makes it easy to have multiple instances of an application server listen on the same port. You can also seamlessly restart your workers without dropping any requests. Einhorn requires minimal application-level support, making it easy to use with an existing project.

I’m going to take a seriously look at Einhorn before deploying my next app.

einhorn

(also this)

Praxis: a Ruby framework that takes a different approach to creating APIs #

RightScale recently unveiled their new Ruby framework. They call it Praxis and it takes a unique approach to building APIs. From the announcement:

With Praxis you create an API by going through the design, review and implementation phases and iterating over them as necessary. Each phase is done independently, and possibly by disjoint sets of people. For example architects could design it, developers implement it and both can review it alongside the customers.

Intrigued? Check out their Getting Started guide to see what this process would look like.

CanCanCan picks up where CanCan left off #

Ryan Bates’ unfortunate burnout-induced hiatus from open source left his projects unmaintaned. CanCan — the much beloved authorization gem for Ruby on Rails — was no exception.

CanCan may be dead, but long live CanCanCan!

This repo is a continuation of the dead CanCan project. Our mission is to keep CanCan alive and moving forward, with maintenance fixes and new features. Pull Requests are welcome!

This is what I love about open source. Great ideas aren’t bound to their creators. All it takes is one person who cares enough to pick up the torch and run with it.

docopt gets CLI argument parsing right

Brilliant ideas can be painfully obvious in retrospect. They’ll leave you thinking, “Why didn’t we I think of that before?!” Docopt is that for parsing CLI arguments.

minicron: a system to manage and monitor cron jobs #

minicron is a web interface to manage and monitor scheduled tasks across a series of servers. It’s still in early development, but the tool sets out to solve a pain that anybody with more than a few servers has probably felt. I know I have.

minicron is pre-semantic-1.0 and has a roadmap in the readme. Looks like a great time to get involved.

Add WordPress-style shortcodes to your Ruby blog #

One of WordPress’s strengths is the ability to give non-coders a way to generate custom data with the use of shortcodes. Shortcode elegantly brings that classic feature to the Ruby community.

The gem notes using Parsing expression grammar instead of regular expressions to improve the readability and testability of the code. It supports both block tags and self-closing tags, and adding shortcodes is as easy as adding a partial.

%blockquote
  %p.quotation= @content
  - if @attributes[:author]
    %span.author= @attributes[:author]

Shortcode also supports custom presenters for more complex tasks like image galleries. Take a look at the documentation on GitHub.

Generate 4 language bindings for your API in one Go #

You just built an API, and want to make sure everyone can use it. Building libraries in every language isn’t only going to be hard, its going to take a lot of time. Time you don’t have. This is where Alpaca can help.

You define your API according to the format, alpaca builds the API libraries along with their documentation. All you have to do is publishing them to their respective package managers.

Right now it can generate API clients in PHP, Python, Ruby, and JavaScript. You can see examples of the generated client libraries here. I can’t speak to the quality of all the generated language bindings, but I took a cursory look at the Python lib and it looks good. Looks like Alpaca could save us all a lot of time.

Sponsor: RubyTapas, short Ruby screencasts every week

In Episode #90 we talked with Avdi about pair programming, distributed teams, workflows, and of course, Ruby! Needless to say, we’re big fans of Avdi and his work — and we’re happy to have him sponsor the RSS feed this week.

Don’t just take our word — Avdi has shared an exclusive, Changelog-only, freebie of episode #72 for you to check out (the video above). The episode is called “Random Access” and it kicked off a short mini-series for Avdi where he takes his subscribers on a journey to reimplement a small subset of the UNIX “tail” command in Ruby.