---
title: Klang and Strongbox
teaser: Feedback on rails training.
tags: web,open source,rails
author: Dan Croak
published_on: 2009-04-17
---

We've been running [Ruby on Rails training](https://thoughtbot.com/upcase/join)
classes since September. Classes are running online:

* [Beginning Ruby on Rails](https://thoughtbot.com/upcase/intro-to-ruby-on-rails)
* [Intermediate Ruby on Rails](https://thoughtbot.com/upcase/intermediate-ruby-on-rails)
* [Test-Driven Rails](https://thoughtbot.com/upcase/test-driven-rails)

Since graduating, our alumni have been building great stuff. Here's a selection
of their work.

## Klang

[Klang](http://klang.org) is a small record label. Alumni [Mark
Cornick](http://www.viget.com/about/team/mcornick) built their Rails app.

![''](http://images.thoughtbot.com/ui/2009-4-16-Picture_2.png)

From Mark:

> It combines a blog-style news section, a product catalog w/ a (not fully
> automated) shopping cart, a show listing, and some other features. Behind the
> scenes, there's [Shoulda] and [Factory Bot] for testing, and I recently
> replaced `file_column` with [Paperclip] and `restful_authentication` with
> [Clearance].

[shoulda]: http://github.com/thoughtbot/shoulda
[factory bot]: http://github.com/thoughtbot/factory_bot
[paperclip]: http://github.com/thoughtbot/paperclip
[clearance]: http://github.com/thoughtbot/clearance

If you want to see a well-written, well-tested Rails app's full source code,
Mark has has put the [full source code on
GitHub](http://github.com/mcornick/klang). Very cool! The question, where can I
see real-world Rails app source code often comes up on Ruby mailing lists. Point
them to Klang.

As if that wasn't enough, Mark has made [Klang's RunCodeRun
builds](http://runcoderun.com/mcornick/klang) public. For those unfamiliar with
[RunCodeRun](http://runcoderun.com), it's a hosted [Continuous
Integration](http://martinfowler.com/articles/continuousIntegration.html)
service from [Relevance](http://thinkrelevance.com/).

## Strongbox

[Strongbox](http://github.com/spikex/strongbox) is Ruby gem by Spike
Ilacqua that provides Public Key Encryption for ActiveRecord.

![''](http://images.thoughtbot.com/ui/2009-4-16-great_train_robbery.JPG)From Spike:

> The idea isn't new, I originally did this is Perl five or so years ago,  and
> [the most popular post on my blog](http://stuff-things.net/2008/02/05/encrypting-lots-of-sensitive-data-with-ruby-on-rails/)
> is a how-to I wrote a year ago.
>
> I wrote a gem for internal use at the same time I wrote the post, but I never
> published it.  My testing was weak, and I didn't want to put it out in the
> world without better coverage. Enter Advanced Rails Training. The class
> really helped me get my head around testing and TDD, and that's how I've been
> approaching all of my projects. I re-built the gem using TDD and posted it to
> GitHub.

This is a cool idea and has a nice API:

```ruby
class User < ActiveRecord::Base
  encrypt_with_public_key :secret,
    :key_pair => File.join(RAILS_ROOT,'config','keypair.pem'),
end

user.secret.decrypt 'password'
```

Great job, Mark and Spike! We can't wait to see what the growing ranks of
alumni make next.

Visit our [Open Source page](https://thoughtbot.com/open-source) to learn more about our team's contributions.
