In this talk we start with the basic concepts of CoffeeScript and move on to the more powerful and fun features of the language. While we're looking at CoffeeScript we'll see how it relates to the Ruby code we write everyday. What do Ruby 1.9 lambdas and CoffeeScript functions have in common? Which of the two languages supports splats, default arguments, and ranges? The answers may surprise you.
David is a Software Architect at Redpoint Technologies and the lead organizer for SecondConf. His professional web application developer career traces back more than a decade, originally writing Apache modules and PERL CGI scripts, then adopting Java in its infancy, jumping to Ruby shortly after Rails went 1.0, and now investigating Node.js, SproutCore, and CouchDB. In his free time, David hacks on Arduino projects with his daughter and frequents local meetups.
I will present the inner workings of my Ruby algorithm, called HysteriaEngine, which uses personality profiles to generate human-like behavior for an agent, in this case a bot that plays in UnrealTournament2004. I will cover the stack needed to run the bot, using Ruby on top of a little Java, but primarily I will deconstruct the algorithm that generates the commands that drive the bot, code structure decisions in designing the algorithm, and the complexity involved in generating human-like behavior. I will also touch on some of the obstacles of TDD-ing a stochastic model that often has purposefully unpredictable results. Casey Rosenthal is Chief Software Engineer for Port Forty Nine, currently working for NASA, Caltech, and JPL to engineer systems for storing and disseminating the image archives of space telescopes such as Hubble, Spitzer, Chandra, etc. He is writing a chapter on using personality profiles in artificially intelligent bots for an upcoming book titled “Believable Bots,” to be published in late 2011
A lot of Ruby developers use Rails for their everyday projects. Often they toy around with front-end themselves or outsource it, ending up tangled in a web of css-all-over-the-place.
Keeping your front-end code clean is hard. Before you know it you're suffering from CSS specificity issues and not-really-generic partials. Find out how to keep things tidy using the HTML5 document outline and modular Sass & CoffeeScript, for truly reusable code.