<?xml version="1.0" encoding="UTF-8"?>
<papers type="array">
  <paper>
    <created-at type="datetime">2009-03-09T11:51:30+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-09T09:00:00+02:00</date>
    <description>Welcome talk, inauguration of EuRuKo 2009</description>
    <family>Session</family>
    <id type="integer">8</id>
    <minutes type="integer">60</minutes>
    <permalink>reception-and-welcome-talk</permalink>
    <photo-content-type>image/jpeg</photo-content-type>
    <photo-file-name>welcome_talk.jpg</photo-file-name>
    <photo-file-size type="integer">9741</photo-file-size>
    <photo-updated-at type="datetime">2009-05-07T17:44:12+02:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Reception and Welcome Talk</title>
    <updated-at type="datetime">2009-05-07T17:44:12+02:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T11:45:17+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-09T10:00:00+02:00</date>
    <description>Keynote by Matz</description>
    <family>Keynote</family>
    <id type="integer">6</id>
    <minutes type="integer">60</minutes>
    <permalink>matz-keynote</permalink>
    <photo-content-type>image/jpeg</photo-content-type>
    <photo-file-name>matz.jpg</photo-file-name>
    <photo-file-size type="integer">18601</photo-file-size>
    <photo-updated-at type="datetime">2009-05-07T17:30:02+02:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Matz Keynote</title>
    <updated-at type="datetime">2009-05-07T17:30:03+02:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T11:48:12+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-09T11:00:00+02:00</date>
    <description>In larger companies - and Ruby is in fact entering these now - there seems to be a misconception of how to deal with risk. In my experience a risk has to be predicted, mitigated if at all possible and avoided like "The Plague". This makes departments, teams and even individuals more and more cautious, thinking more than twice about actually taking the next step, before changing anything.

But that's not necessary: Given a decent set of automated tests for a system (as in many single sub-systems included, like billing, CRM, logistics etc.) you can move forward safely, knowing that there's a safety net that actually works.

A short introduction into such a system test framework shows how tests can be executed, logged and summarised nicely and colourful (read: red &amp; green) - even in an area which is not (yet) automated.

In other words: If you're prepared to fail, then you can afford to fail, gain from it and outperform others.

The risk in this is of course, to become even more aware of how painful failing can be and thus to be even more afraid of doing so.

Lesson to take home: Learn to fail, learn how to fail - and you less likely will.</description>
    <family>Session</family>
    <id type="integer">7</id>
    <minutes type="integer">45</minutes>
    <permalink>the-risks-we-take-ruby-in-systems-testing</permalink>
    <photo-content-type>image/png</photo-content-type>
    <photo-file-name>sk_euruko09.png</photo-file-name>
    <photo-file-size type="integer">612694</photo-file-size>
    <photo-updated-at type="datetime">2009-03-09T19:33:23+01:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>The Risks We Take. Ruby in System Testing</title>
    <updated-at type="datetime">2009-03-10T23:55:34+01:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:00:31+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-09T12:15:00+02:00</date>
    <description>Games programming is usually associated to heavy duty graphics, system-dependent libraries, and serious performance issues. While that's true for virtual worlds or 3d realistic games, you can still have lots of fun developing your own 2d platform games.

After all, if we could do it back in the nineties with BASIC on a Spectrum, we should be able to do it today.

In my talk, I'll be introducing Gosu, a 2D game development library for the Ruby and C++ programming languages, available for Linux, OS X and Windows. Gosu provides libraries for dealing with graphics, sound and input devices in an easy portable way.

I know almost nothing about games programming, and I'm not an expert in Gosu, but I have been playing around with it for a while and I have a fairly good idea of how to start writing your own games. Actually, the fact that I'm no expert and I'm still able to produce some results is proof of how easy it can be.

I will present a very simple game, &#224; la Mario Bros., based in one of the available tutorials for Gosu, and I will use it to illustrate the different concepts of this platform.

I will also show how to create the redistributable binaries for the game, so it can be played in any computer even without ruby installed.

And, if everything goes fine, I will ultimately show you can still have fun with Ruby without using r****s. Muhahahahaha</description>
    <family>Tutorial</family>
    <id type="integer">9</id>
    <minutes type="integer">45</minutes>
    <permalink>fun-with-ruby-and-without-r-s-program-your-own-games-with-gosu</permalink>
    <photo-content-type>image/jpeg</photo-content-type>
    <photo-file-name>screenshot.jpg</photo-file-name>
    <photo-file-size type="integer">56961</photo-file-size>
    <photo-updated-at type="datetime">2009-03-10T01:57:26+01:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Fun with ruby (and without r***s)  Program your own games with gosu</title>
    <updated-at type="datetime">2009-05-07T20:49:23+02:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:06:20+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-09T13:15:00+02:00</date>
    <description>I will be talking about creative applications of Ruby into the field of image processing.  In the talk I'll be exploring the philosophical differences between manipulating images using GUI tools like photoshop and command-line tools like ruby scripting.  What sorts of things can you do with Ruby (+ supplementary libraries, chiefly RMagick) that just aren't possible with a traditional GUI?  Why would you want to use Ruby and not some other tool?  Likewise, what are the limits of using a scripting language to do image manipulation? Where does Ruby fall down in that area?

I'll go "under the hood" and explore some of the math behind traditional image processing techniques like edge detection and blending modes, with the idea that once you know how to do it right, you can do it wrong (but in a creative way).

I'll also go through some examples of neat stuff you can do, to get folks' creative juices flowing.  90% of the image manipulation web programmers do is simple captcha and thumbnail creation.  But that doesn't even scratch the surface of what these libraries are capable of. Some examples include: creating gigantic photomosaics, using face detection libraries, decomposing videos to do frame-by-frame analysis and manipulation and in order to recompose the video in interesting ways. Also, we'll look at how to do seam carving (http://www.seamcarving.com/).

Also, what should one keep in mind when doing image coding?  What techniques are available to do test-driven development of image processing?

Some of the tools used will be:
OpenCV (http://rubyforge.org/projects/opencv/) for image
recognition.
RMagick

Update April 16: I've edited this down to reflect the components that I'll actually have the time to get to in a 30-minute talk. :)  If I've left something out that you'd like to see please let me know. "cory--forsyth&amp;&amp;gmail--com".gsub("--",".").gsub("&amp;&amp;","@")</description>
    <family>Session</family>
    <id type="integer">10</id>
    <minutes type="integer">45</minutes>
    <permalink>who-needs-photoshop-creative-image-manipulation-and-processing-using-ruby-to-do-image-recognition-movie-decomposition-and-more</permalink>
    <photo-content-type>image/png</photo-content-type>
    <photo-file-name>Picture_1.png</photo-file-name>
    <photo-file-size type="integer">120229</photo-file-size>
    <photo-updated-at type="datetime">2009-05-08T17:02:19+02:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Who needs photoshop? Creative image manipulation and processing using Ruby</title>
    <updated-at type="datetime">2009-05-08T17:02:19+02:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:16:23+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-09T16:00:00+02:00</date>
    <description>If you're still using Capistrano or shell scripts to manage your servers, this talk is for you. It's time to automate everything and sleep better at night.

Centralized configuration management is key to any production environment. Standing on the shoulders of tools like Puppet, Chef is a new system configuration framework combining the power of Ruby with tested systems management concepts. Use a tasty Ruby DSL to define your system state. Focus on idempotence to work safely beyond the setup stage. It's a lot of fun; like Rails for sysadmins. Even if you only manage a couple servers, you need to know about it.

During this presentation we'll bootstrap a a 37signals application, Ta-da List, on an EC2 server cluster. We'll go from nothing to a fully configured cluster, discussing along the way the Chef cookbooks that drive the process. We'll also see how to make configuration changes and automatically setup DNS and monitoring checks, time permitting.

Details about Chef here: http://wiki.opscode.com/display/chef
</description>
    <family>Session</family>
    <id type="integer">12</id>
    <minutes type="integer">45</minutes>
    <permalink>chef-the-new-ruby-system-management-tool</permalink>
    <photo-content-type>image/png</photo-content-type>
    <photo-file-name>chef-says-okay.png</photo-file-name>
    <photo-file-size type="integer">23560</photo-file-size>
    <photo-updated-at type="datetime">2009-03-10T13:37:38+01:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Automate Everything: Cooking with Chef</title>
    <updated-at type="datetime">2009-05-09T01:46:18+02:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:20:20+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-09T17:00:00+02:00</date>
    <description>I will give a talk about the idea of Software Craftsmanship: What does this fuzzy term actually mean, how is it different from how we work today, and does being a software craftsman keep you your job? 

I want to combine insight from current Agile software development methodologies, books and essays that touch the subject of Software Craftsmanship my own experience, and take look over the fence at the classic crafts.

This is not a Ruby-specific talk, but I believe it fits the conference very well. Ruby developers generally are passionate about their work and eager to learn, two of the traits of good craftsmen.

"A craftsman is someone who applies skill and care to the creation of a high quality end product." -- Jason Gorman
This is a noble goal that most of us are aiming for. But despite decades of practise and research, we still fail often: unmaintainable applications have to be rewritten from scratch, schedules slip, budgets are overdrawn, developers and customers are unhappy. Success is the exception, not the rule. Software craftsmen possess a blend of technical and social skills as well as the experience to fix this. But what exactly makes a craftsman and how do you become one?</description>
    <family>Session</family>
    <id type="integer">13</id>
    <minutes type="integer">45</minutes>
    <permalink>software-craftmanship</permalink>
    <photo-content-type>image/jpeg</photo-content-type>
    <photo-file-name>Picture_3.jpg</photo-file-name>
    <photo-file-size type="integer">16483</photo-file-size>
    <photo-updated-at type="datetime">2009-05-08T17:23:38+02:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Software Craftsmanship</title>
    <updated-at type="datetime">2009-05-08T17:55:50+02:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:21:56+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-09T18:15:00+02:00</date>
    <description>Several lightning talks, 5 minutes each. 

Moderated by the Lightning Talks Master and his merciless Gong!</description>
    <family>Session</family>
    <id type="integer">14</id>
    <minutes type="integer">45</minutes>
    <permalink>lightning-talks</permalink>
    <photo-content-type>image/jpeg</photo-content-type>
    <photo-file-name>gong.jpg</photo-file-name>
    <photo-file-size type="integer">8619</photo-file-size>
    <photo-updated-at type="datetime">2009-05-07T17:36:29+02:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Lightning Talks</title>
    <updated-at type="datetime">2009-05-07T17:36:30+02:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:27:36+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-10T10:00:00+02:00</date>
    <description>DataObjects tries to improve the Ruby ecosystem by providing a unified database access layer. Projects such as Rack have proven very successful and many other programming languages already have API's like Java's JDBC and Perl::DBI.

Ruby::DBI has been tried in the past, but since it wasn't born out of an immediate need, it failed. DataObjects was born out of the necessity of speeding up and simplifying the DataMapper database adapter code. Besides being used by DataMapper, there is also a Sequel driver released and ActiveRecord will most likely follow shortly.</description>
    <family>Session</family>
    <id type="integer">16</id>
    <minutes type="integer">45</minutes>
    <permalink>dataobjects</permalink>
    <photo-content-type nil="true"></photo-content-type>
    <photo-file-name nil="true"></photo-file-name>
    <photo-file-size type="integer" nil="true"></photo-file-size>
    <photo-updated-at type="datetime" nil="true"></photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>DataObjects</title>
    <updated-at type="datetime">2009-03-09T15:11:18+01:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:28:52+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-10T11:00:00+02:00</date>
    <description>Adhearsion (http://adhearsion.com) is a Ruby-based framework, installable as a gem, that provides a comprehensive development environment for developing voice enabled applications using a jargon free DSL. Further, Adhearsion integrates with Rails in various ways, extending Rails seamlessly into the voice world. 

We will provide an overview of why Adhearsion was created, how it works and then provide a tutorial on developing your first application. </description>
    <family>Session</family>
    <id type="integer">17</id>
    <minutes type="integer">45</minutes>
    <permalink>adhearsion</permalink>
    <photo-content-type>image/jpeg</photo-content-type>
    <photo-file-name>jsgoecke_new.jpg</photo-file-name>
    <photo-file-size type="integer">43884</photo-file-size>
    <photo-updated-at type="datetime">2009-03-09T19:19:24+01:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Adhearsion</title>
    <updated-at type="datetime">2009-03-09T19:19:25+01:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:29:49+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-10T12:15:00+02:00</date>
    <description>Rhodes is an open source Ruby-based framework for building locally executing, device-optimized mobile applications that run on all major smartphone devices. These applications work with synchronized local data from enterprise application backends.  Rhodes also allows you to take advantage of native device capabilities such as GPS, PIM contacts and camera.   Yet you write the majority of your interface with high productivity in HTML.  Rhodes is available for iPhone, Windows Mobile and Research in Motion (BlackBerry),Symbian  and Android smartphones.  In this session we&#8217;ll build a compelling mobile app from scratch in 15 minutes.</description>
    <family>Session</family>
    <id type="integer">18</id>
    <minutes type="integer">45</minutes>
    <permalink>building-crossplatform-mobile-apps-in-ruby-with-the-rhodes-framework</permalink>
    <photo-content-type nil="true"></photo-content-type>
    <photo-file-name nil="true"></photo-file-name>
    <photo-file-size type="integer" nil="true"></photo-file-size>
    <photo-updated-at type="datetime" nil="true"></photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Building Crossplatform Mobile Apps in Ruby with the Rhodes framework</title>
    <updated-at type="datetime">2009-03-12T18:35:07+01:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T12:31:24+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-10T13:15:00+02:00</date>
    <description>Ruby Archaeopteryx Talk is about the creation of midi clips with Ruby code. On a first demo I will show you how to implement an easy drums Machine using Ruby Midi standard libraries to make a complete song by launching pre loaded audio clips on the Drum Machine.

A second part of the talk show the audience how to implement a script to manipulate Reason Software synthesizer with the library Ruby Archaeopteryx developed by Giles Bowkett.

In order to improve the knowledge of midi interfaces and how do they work, there will be a short brief about it and a little demo with a VCI digital mixer, and a Axiom 25 keyboard.

For the last two weeks I'm been think about an hypothetical DSL to create music. We will discuss it in Barcelona ;) </description>
    <family>Session</family>
    <id type="integer">19</id>
    <minutes type="integer">45</minutes>
    <permalink>ruby-archaeopteryx</permalink>
    <photo-content-type>image/jpeg</photo-content-type>
    <photo-file-name>snapshot.jpg</photo-file-name>
    <photo-file-size type="integer">22599</photo-file-size>
    <photo-updated-at type="datetime">2009-03-09T15:06:42+01:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Ruby Archaeopteryx</title>
    <updated-at type="datetime">2009-03-23T10:40:39+01:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T13:16:16+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-10T16:00:00+02:00</date>
    <description>Cucumber (http://cukes.info/) is a novel tool for Behaviour Driven Development. While early BDD tools like RSpec  and Shoulda are geared towards programmers, classes and objects, Cucumber nicely fills the communication gap between customers, programmers and testers. This session will change how you approach requirements and testing of Ruby applications.

In this session I will walk you through the development of a real application using Cucumber and BDD. You will learn how to install and run Cucumber and how to use it with other tools. I will also show you some common antipatterns and mistakes and how to write great features that talk to the whole team.

The presentation will be in the form of a small, fast paced project, alternating between customer-team conversations and real-time programming with Cucumber and Ruby.</description>
    <family>Session</family>
    <id type="integer">22</id>
    <minutes type="integer">45</minutes>
    <permalink>quality-code-with-cucumber</permalink>
    <photo-content-type>image/png</photo-content-type>
    <photo-file-name>euruko2009_logo.png</photo-file-name>
    <photo-file-size type="integer">8864</photo-file-size>
    <photo-updated-at type="datetime">2009-03-12T11:30:17+01:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Quality code with Cucumber</title>
    <updated-at type="datetime">2009-03-12T11:32:31+01:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T13:12:52+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-10T17:00:00+02:00</date>
    <description>Everyone wants speed. Not everyone jumps right into writing Ruby native extensions in C, as it is a hard and daunting task. It would be great to write native extension in a modern and more programmer-friendly language with all the performance. That's what RuDy project aim is: enable and ease writing Ruby native extensions in D programming language.

D is a pretty young language from the C family, combining C/C++ performance and ability to work "close to the metal" with productivity-oriented features known from modern languages like Ruby, Python or Java.

RuDy is an effort to bring something similar to Python's PyD to the Ruby world.</description>
    <family>Session</family>
    <id type="integer">21</id>
    <minutes type="integer">45</minutes>
    <permalink>announcing-rudy-write-ruby-native-extensions-in-d-programming-language</permalink>
    <photo-content-type>image/jpeg</photo-content-type>
    <photo-file-name>fox_head_1.jpg</photo-file-name>
    <photo-file-size type="integer">21857</photo-file-size>
    <photo-updated-at type="datetime">2009-03-12T13:24:16+01:00</photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Announcing RuDy: write Ruby native extensions in D programming language</title>
    <updated-at type="datetime">2009-03-12T13:24:27+01:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T13:17:20+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-10T18:15:00+02:00</date>
    <description>Lightning/short talks</description>
    <family>Session</family>
    <id type="integer">23</id>
    <minutes type="integer">45</minutes>
    <permalink>lightning-short-talks</permalink>
    <photo-content-type nil="true"></photo-content-type>
    <photo-file-name nil="true"></photo-file-name>
    <photo-file-size type="integer" nil="true"></photo-file-size>
    <photo-updated-at type="datetime" nil="true"></photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Lightning/short talks</title>
    <updated-at type="datetime">2009-03-12T10:52:58+01:00</updated-at>
  </paper>
  <paper>
    <created-at type="datetime">2009-03-09T13:18:22+01:00</created-at>
    <creator-id type="integer">3</creator-id>
    <date type="datetime">2009-05-10T19:00:00+02:00</date>
    <description>Candidates cities discussion for the 2010 Euruko Host
</description>
    <family>Session</family>
    <id type="integer">24</id>
    <minutes type="integer">45</minutes>
    <permalink>candidates-cities-discussion-for-the-2010-euruko-host</permalink>
    <photo-content-type nil="true"></photo-content-type>
    <photo-file-name nil="true"></photo-file-name>
    <photo-file-size type="integer" nil="true"></photo-file-size>
    <photo-updated-at type="datetime" nil="true"></photo-updated-at>
    <room-id type="integer">1</room-id>
    <status>Confirmed</status>
    <title>Candidates cities discussion for the 2010 Euruko Host</title>
    <updated-at type="datetime">2009-03-12T10:53:04+01:00</updated-at>
  </paper>
</papers>
