JRubyConf: The Best Conference Ever?

This past week, I had the pleasure of attending JRubyConf in Washington, DC on the campus of Gallaudet University. It is possible that this was best conference I’ve ever attended.

What’s so good about it?

  • The talks – they were almost all great, especially the keynotes. Normally I skip a talk or two to hang out in the hallway or just to take a break, but not this time. The talks were recorded – I recommend watching them whenever they get published.
  • The people – it was great to talk to so many smart, enthusiastic folks. It gives me great hope for the future of JRuby.
  • The food – the conference fed us breakfast & lunch both days, and dinner the first day. The food was top notch – no bag lunches or ‘continental’ breakfasts.
  • The wifi – since the conference was on a university campus, the wifi was excellent. Coming home to my slow DSL was painful :)
  • the whisky – the organizers brought in @whiskycraig from Scotland to run a whisky tasting. It was almost three hours of whisky history, along with five whiskies to taste. I’ve never had whisky, and just assumed they were all kind of the same. It was interesting to see the large variety in flavor across different brands, and the history of whisky was fascinating.


I’d like to thank Joe O'Brien and the other folks at EdgeCase for knowing how to put on a conference – I’m already looking forward to the next JRubyConf!


The commit feeds provided by github only list the files that changed, and do not include the diffs – github-rss fixes that. It is a simple web service that acts as a proxy and uses the github API to fill in the diff for each commit in the feed.


To use, simply give the app your feed url:


You can also use it with private repos, but you’ll need to provide your login and token, and you’ll need to escape the ‘?’ and ‘&’ in the feed url with ‘%3f’ and ‘%26’ respectively, like so:


Use it now!

I have an instance running on Heroku that you are free to use. Here is the feed for github-rss itself as a sample. If you are using github-rss with a private repo, I recommend you run your own instance instead of using mine. It doesn’t store your github token, but it does cache commit data in memcached, and do you trust me that much?


The source is available on github. If you run in to any problems, issues and pull requests are always welcome!

Freedom from Wordpress

Greetings! I just ported this blog from Wordpress to awestruct, the best static site generator out there (translation: the one with which I’m most familiar). What better way to celebrate independence on this July 4th than freeing my blog from unnecessary and insecure dynamic generation?

Maybe this will spur me to post more. Then again, maybe it won’t. I am planning to blog the conversion process so you can follow along at home.

Access commonly used credentials quickly in irb

I often deal with multiple Amazon AWS accounts in irb, and grew tired of copying and pasting my credentials, so I added code to my ~/.irbrc to make them available from a constant. Here is the relevant chunk of my irbrc (explanation follows):

I load the credentials from a separate yaml file, with the keys as symbols (I’ll explain why in a sec):

The yaml is parsed and loaded in to an OpenCascade from the Hashery gem, which works like ruby’s builtin OpenStruct, but provides deep ‘structing’ of the source hash. Since it requires symbols as keys, I store the keys as symbols in the yaml to avoid an ugly symbolize_keys step.

Now, inside irb, I can access the credentials with:


Since I use RVM gemsets for almost everything, I’m often switching between gemsets, some of which have not had an irb session. To handle that case, I have the force_require method that will automatically install missing gems.

Yank to gist (and insert the url instead) in Emacs

On our distributed team, we use IRC constantly to stay in touch, and we often share gists of code/log file chunks/whatever. I use ERC as my IRC client, and use gist.el constantly to turn content in to gists. It works really well when the content you are trying to gistify is already in an emacs buffer. You can gist an entire buffer (or a region of the buffer), and have the url to the gist on your kill-ring (clipboard) ready to yank (paste). But I often have the need to create a gist of content I’ve copied from somewhere outside of emacs – from a terminal, a browser window, wherever.

Until tonight, my workflow was to paste into a temp buffer in emacs, call gist-buffer to create the gist, then yank the gist url into ERC. This evening, I wrote yank-to-gist to streamline that process a bit. It takes the top of the kill-ring, inserts it into a temp buffer, creates a gist from the buffer, then inserts the url for the new gist at the point.

It relies on gist.el being loaded. I Currently only have it bound in erc-mode to C-c y.