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.
Neat idea from Dan Mayer at Living Social: Coverband is a rack middleware which helps measure production code coverage.
Why would production code coverage data be useful? Because you can use it to find (and then purge) latent code paths in your app. How’d it go at Living Social? Dan says:
After running in production for 30 minutes, we were able very easily delete 2000 LOC after looking through the data. We expect to be able to clean up much more after it has collected more data.
Read more about Coverband on the Living Social Tech Blog.
Que is the new kid on Ruby’s job-backgrounding block.
It takes advantage of PostgreSQL’s advisory locks to provide concurrency, efficiency, and safety. Chris Hanks – Que’s author – in an email to us, says:
…in a benchmark on EC2’s biggest compute-optimized instance it’s capable of queuing and dequeuing almost 10,000 jobs per second, while DelayedJob and QueueClassic max out at around 500
Between that and its built-in support for transactions (for ActiveRecord and Sequel), Que looks pretty tantalizing to this long-time Resque user (and admitted Postgres fanboy).
Dashing is a framework from Shopify for building gorgeous dashboards that can be displayed on large TVs throughout your office.
It ships with pre-made widgets, is completely customizable, and can be deployed to Heroku in a breeze. See Dashing in action here and here.
For members only — Avdi wants you to start learning Ruby with a pro (him). He’s giving our members an exclusive 77% off discount to enjoy RubyTapas for 3 months. Normally a subscription to RubyTapas is $9 per month, but our members save $21 and pay just $6 to get access for 3 months!
Monocle is yet another link and news aggregation site with a tech focus. The site’s creator, Alex MacCaw, has just open sourced the code behind it.
This looks like a shining example of a well-factored Sinatra app powered by PostgreSQL. If you’re just learning Ruby or want to learn some new tricks, give it a read.
We would like to thank Chris Wilson of Bendyworks for contributing this post. Chris has some interesting ideas about the structuring of Rails applications and hopefully this post will get us all thinking and talking.
Watson lets you create issues while you code, including custom labels, without ever having to interrupt your workflow. It syncs with remote services like GitHub and Bitbucket — Push locally created issues and get the status of remote issues right in your command line.
Pick your flavor and install either the Ruby or Perl version.
If you aren’t happy with the current process monitoring tools out there, check out Eye. It uses Celluloid to provide multi-threaded process monitoring that behaves very similarly to Bluepill. One valuable addition is the ability to get more information about the processes running:
$ eye i(nfo)
sample1 ....................... up (21:52, 0%, 13Mb, <4107>)
sample2 ....................... up (21:52, 0%, 12Mb, <4142>)
Other bonus tools include debugging configurations and tailing the logs of the processes being monitored.
Gobot is a Go framework for robotics and physical computing. It currently works with Beaglebone Black and Sphero, with more platforms coming soon.
Golang not your thing? Artoo is a sister project for Ruby and Cylon is a sister project for Node.
Kindle users will love this little Rake tool by Tobias Lütke that downloads your highlights and emails random ones to you.
What better way to be reminded of things you once thought important enough to highlight? Somebody needs to turn this in to a web service so more people can use it…
Andrew and Adam talk with Lee Hambley about some serious subjects such as Capistrano 3.0/2.0, open source burnout, various conversations around deploying, Ruby, respect, handing over the reigns and more. If you hack on open source or run an open source project, you should listen to this episode.
Githug is a cool new way to learn git by Gary Rennie. From the readme:
Githug is designed to give you a practical way of learning git. It has a series of levels, each utilizing git commands to ensure a correct answer.
Want to add personalization such as recommendations or content discovery to your application? PredictionIO has your back.
You can download and install the server yourself or use their cloud infrastructure. Clients already exist for Java, PHP, Python, and Ruby, and I assume more are on the way.
Check out all of their open source goods right here.
Thanks to ngx_mruby, Matz’ embeddable Ruby implementation (mruby) can now be used to script Nginx!
I’ve long been allured by OpenResty, which enables fast web app servers written in Lua to sit right on top of Nginx. Will ngx_mruby serve as a foundation for similar projects for Rubyists?
Adam and Jerod talk with Katrina Owen – Panelist on Ruby Rogues, Instructor at Jumpstart Lab and creator of Exercism.io, an open source platform for crowd-sourced code reviews on daily practice problems.
Interesting project from Brian Shirai which he describes as:
Rubinius X is an experiment in modernizing Ruby. Rubinius X can be imagined as a time machine that brings the future to the present, enabling us to write modern programs now.
Check out what makes it different and his motivation for starting it.
reactive_record from Chris Wilson is a nifty library that generates ActiveRecord models to fit a pre-existing PostgreSQL database.
If you’re thinking about self-publishing a technical book, you should take a look at Quarto, a Ruby-based toolchain for generating ebooks in EPUB, Mobi, and PDF formats.
Quarto is essentially a set of rake tasks backed by a Ruby library. You can check out the README for all the details, but here’s an excerpt about the tool’s flexibility:
Quarto doesn’t (yet) introduce any revolutionary ideas to e-publishing. Instead, it ties familiar tools together in a way that lets you write the way you want to.
There are a lot of tools that try to tie together an end-to-end publishing pipeline. But when you want to interpose your own processing in between steps, you’re out of luck. The fact that Quarto is structured as a set of Rake tasks means that you can add your own dependencies, your own steps, or tack extra processing onto any of the existing steps just by adding to your project’s Rakefile.
Buyer beware. We reached out to Avdi to see if he wanted us to say anything in particular about the project, he replied:
here’s a quote: “It’s a mess because I coded it in a frantic week” :-P
Ahh, I know the feeling all too well.
Is he just being humble or is Quarto not ready for prime time? Hey, it’s open source so you can be the judge!
If you’re curious about Confident Ruby, be sure to check out this blog post where he announces the book’s release as well as Quarto’s.
Share your thoughts and upvote on Hacker News.
Adam Stacoviak and Jerod Santo talk with Michal Papis about the history and future of RVM, the plan for RVM 2.0, the complexities of managing your Ruby version, Ruby 2.0 and more. SPONSOR: App Sketchbook – use the code “DANSENTME” to save $5.00 Subscribe to The Changelog Weekly! Michal Papis (mpapis) on Twitter mpapis (Michal […]
For those of you running a Jekyll or Octopress powered blog, Brandon Mathis has been working like crazy on Octopress 3.0, determining what it is and isn’t, and along the way breaking off pieces to release as independent gems.
His goal in doing this, is to allow Jekyll users to be able to install a few gems and be able to use most of Octopress’s goodies without having to change a thing.
Yesterday, he announced Jekyll Liquid Plus.
Jekyll Liquid Plus includes:
- Redesigned, but backwards compatible: include, assign and capture tags
- All new: render, wrap, wrap_include and return tags
From this Alpha post from Brandon:
My goal for Octopress is to be a writer-focused usability layer on top of Jekyll and a cohesive framework for building themes and plugins. Octopress will work alongside Jekyll without getting in the way at all. It’s shaping up nicely.
Is it safe to say that Octopress 3.0 is coming soon? Many are waiting with baited breath. My guess is that with this and the other independent gems Brandon has released, he is getting close.
Check out the source for Jekyll Liquid Plus on GitHub.
Subscribe to Weekly to hear about more projects from Brandon.
Full disclosure: I am the creator and owner of Portly. Pssh works with or without Portly. But, without Portly, adding a local tunnel to your machine can be a pain.
If you’re a fan of episode #90 on pair programming with Avdi Grimm, you know that pairing can be an invaluable tool for debugging, learning, and just overall better code. Unfortunately, remote pairing generally gets less enthusiasm since there’s such a learning curve to the setup, and it tends to feel inconvenient.
Portly has launched a new tool called Pssh that makes remote pairing simple with just a gem and a browser. Install Pssh and run it either inside your tmux/screen session or from a vanilla shell, and your buddies can remote pair with you from their browser.
> gem install pssh
If Pssh is started inside a tmux or screen session, it boots up its own console for you to manage users. If started from a plain shell, it behaves just like you opened a fresh console and kills Pssh when you
Paired with the native Mac app from Portly, you can share a url to your session and lock it down with HTTP Authentication. Open up another browser tab to check out the changes to the local website you’re working on in real-time.
Check out the homepage, the readme or the source on GitHub to learn more about Pssh and how it works.
Share your thoughts and comments on Hacker News.
Way back in January, I wrote a blog post called “Rails has two default stacks”. In it, I discussed how people like to customize the defaults that Ruby on Rails gives you. Your company might prefer Postgres/HAML/RSpec, for example, over the default MySQL/ERB/MiniTest.
There’s an under-used feature of Rails that allows you to automate the creation of your own stack: templates. Check it:
$ rails --help
rails new APP_PATH [options]
-r, [--ruby=PATH] # Path to the Ruby binary of your choice
# Default: /opt/rubies/ruby-2.0.0-p195/bin/ruby
-m, [--template=TEMPLATE] # Path to some application template (can be a filesystem path or URL)
Application template? Yep. There’s very little documentation on this feature, unfortunately. There is a work in progress Rails Guide that gives some answers, but it’s not done yet.
Anyway, the TL;DR is this: you can write a little script to help initialize a Rails app just the way you want to. And Rails startup template is exactly that.
Here’s some of the things it gives you out of the box:
bourbon gems, as well as a few more.
- Creates a new git repository, and optionally a new one on GitHub
- Sets up foreman for easy environment variable and background service config.
include_tree . from your
application.css, since the author prefers to require things manually.
There are some other features, as well.
Check it out on GitHub and vote it up on Hacker News.
Vincent Isambart, a French Rubyist living in the land of the rising sun (Tokyo, Japan), and a few others have started a new organization on GitHub to renew the efforts to help translate the Ruby Hacking Guide (originally written in Japanese by Minero AOKI) into English.
The Ruby Hacking Guide is a book that explains how the ruby interpreter (the official C implementation of the Ruby language) works internally.
If you’d like to help…
People who are good at Ruby, C and Japanese or English are needed. Those good at Japanese (native Japanese speakers are of course welcome) can help translate and those good at English (preferably native speakers) can help correct mistakes, and rewrite badly written parts… Knowing Ruby and C well is really a requirement because it helps avoiding many mistranslations and misinterpretations.
Interested parties can join in by forking this repo to get started. There’s also a mailing list to introduce yourself — mention who you are, your skills, and how much free time you have.
For those wanting to read what’s been translated so far, check out the public version online.
Have an opinion? Discuss it on Hacker News.
ht/ Hiro Asari via Steve Klabnik.