Ruby is a great language for building web applications and manipulating text but it's also the best language to interact with your favorite Mac apps or even build a new app to sell on the Mac App Store. I will demonstrate how to build a simple GUI app in MacRuby and discuss the benefits and drawbacks of doing so versus using RubyCocoa, Objective-C, Objective-J, or Java. I will also discuss the roadmap for MacRuby 1.0, scheduled to be released later this year.
"Then it starts to scan the computer and transmit bits of information every time he clicks the mouse while he's surfing. After a while, [...] we've accumulated a complete mirror image of the content of his hard drive [...]. And then it's time for the hostile takeover." -- Lisbeth Salander in Stieg Larsson's "The Girl with the Dragon Tattoo"
Hacker dramas like the Stieg Larrson book make for good fiction, but we know that real life rarely matches drama. And with all the security features that Rails 3 has added, surely it is difficult to hack a typical Rails web site. Right? Wrong! Without deliberate attention to the details of security, it almost certain that your site has flaws that a knowledgeable hacker can exploit. This talk will cover the ins and outs of web security and help you build a site that is protected from the real Lisbeth Salanders of the world.
Puppet and Chef, both of the modern examples of configuration management and systems integration software are written in Ruby. Add Capistrano, Rake, and MCollective to the list and this starts to seem like much more than coincidence. We'll examine the history and implementation of each of these packages to find patterns that make Ruby an awesome tool for systems administration in 2011. We'll pay special attention to UNIX idioms as they're expressed in Ruby, API design and code organization, standard- and third-party libraries, and the language grammar itself. We'll learn lessons on idempotence, failure modes, and logging along the way that apply to any type of development and we'll discuss Ruby's future at the top of the operator's toolbox.
24th–26th March 2011