8:00-9:00
Registration
9:00-9:15
Welcome
9:15-10:00
A Dickens of A Keynote
Main Room
Pecan Room
10:00-10:45
Misunderstanding
As programmers, we're familiar with complex logic and decisions: complex boolean expressions, long if/else cascades, and convoluted cases. But we quickly learn to avoid them as much as possible, finding ways to simplify.
That's because even though computers can handle that complex stuff, we humans like simple logic. We have trouble internalizing complex lines of reasoning.
Our bias toward simple explanations shows in all kinds of ways. It affects how we think about politics, science, economics, and yes, programming. And it can lead us astray. Some things really are complicated, and to understand them properly requires thinking about the complexities. If we insist on simple explanations—or just default to them because we don't think very hard about it—we can reach the wrong conclusions.
This talk will explore how to think about some important programming topics that are often misunderstood. You may leave the talk with your mind changed. You may simply find your position strengthened. At the very least, I hope you'll learn some new, clear ways of explaining things to those around you, helping them to think clearly about complex issues.
spkr8.com/t/7815
11:00-11:15
Break
11:15-12:00
Rails 3.1 Whirlwind Tour
Rails 3.1 introduces a lot of new changes. In this session we'll cover most of the changes, including how to take advantage of them.
From Reversible Migrations, the new Asset Pipeline, Coffee Script, SASS, and even HTTP Streaming.
This will be a code-heavy talk demonstrating many of the new features in Rails 3.1.
spkr8.com/t/7837
Exceptional Ruby
You know how to raise and rescue exceptions. But do you know how they
work, and how how to structure a robust error handling strategy for
your app? Starting out with an in-depth walk-through of Ruby's Ruby's
rich failure handling mechanisms -- including some features you may
not have known about -- we'll move on to present strategies for
implementing a cohesive error-handling policy for your application,
based on real-world experience.
spkr8.com/t/7836
12:00-1:00
Lunch
Main Room
Pecan Room
1:00-1:45
As a language, can we make Ruby on Rails as historically significant as Latin, Ancient Greek or Sanskrit?
Ruby on Rails is a dying language. The same as the ones that came before it. Eventually, it will deprecate and be relegated to the history books. Does anyone know what the cultures or values of Fortran, Cobol, Pascal or Basic were? Does anyone know what was specifically accomplished with them? If you do know, do you really think that anyone besides a small circle within the tech-geek world cares?
Only a few uber geeks still speak Latin, Greek or Sanskit. Yet, the entire planet knows about these languages and what they contributed. They care not just because of the monuments built, most of which have turned to dust and have become fables, but because of the ideas, culture and values that were created and passed on through the generations. Each of these languages created a distinct culture whose memorable flame burns eternal and contributed to the planet.
What culture, if any, will Ruby on Rails create?
The efficiency of Ruby on Rails, the demand for it, the convergence of economic and technical forces provide the tools and incentives to create a culture of our choosing that could be memorable for decades and longer.
Will we seize the opportunity to create lasting positive change?
Within 8 months of Ruby Nuby's first meeting, it has grown to over 700 members with training locations in 3 countries and multiple university partners . Ruby Nuby will present a systematic plan of how we can make Ruby on Rails as memorable as Latin, Sanskrit or Ancient Greek due the culture, ideas and values we will create and pass on.
spkr8.com/t/7835
Ten Things I Hate About Ruby
We all love Ruby. But let's face it: It isn't perfect. We each
may have a personal list of complaints. Yours will vary; this is
mine. These are the things about Ruby semantics and the Ruby core
that I find counter-intuitive, difficult to remember, incomplete,
improperly designed, or not quite adequate. There might even be
one or two notes here on syntax, the most fundamental level of any
language. And "hate" may be too strong a word; but once in a while,
we have to ask what is lacking in our favorite tool, so that someday
when replace it, we will have something better (whether that thing
is called "Ruby 2.0" or something else entirely).
spkr8.com/t/7834
1:45-2:30
Practical Metaprogramming: "Modeling Thought"
... Or, Lessons Learned While Using Ruby's MP System to Model a 2,500 Year-Old, Dead Language
During LSRC III's Reject Conf, I began a project to model the linguistic
behavior of verbs in Classical Latin. Owing to the irregularity of human
communication, modeling the provision of unambiguous answers (return values) to
ambiguously asked things (flexible / incomplete method calls) might have
required hundreds, if not thousands, of method definitions or static values
entered in a database.
But what if heuristics could be given to a Ruby class such that it "thought"
as language learners are taught to think? What if it could be taught to be
flexible in respecting the ambiguous calls given and to still give precise, correct
answers back - as human language learners are capable of doing? By adopting
this design paradigm, code could become leaner and more reflective of human
cognitive process.
Thankfully for Rubyists, this is not a dream, this is reality. Our programs
can operate more intelligently, more heuristically, and more insightfully.
We can save ourselves days of development time by integrating this next tier
of metaprogramming patterns I propose to demonstrate. While I will demonstrate
these patterns by modeling linguistics based on the [LatinVerb
library](https://github.com/sgharms/LatinVerb), these techniques have wider
application across problem domains.
spkr8.com/t/7831
Consuming the Twitter Streaming API with Ruby and MongoDB
Want to build your next application off of live Twitter updates? Twitter provides a streaming API that you can filter by username, keyword, or geo-location. Using a couple of great Ruby gems, we can store tweets from the streaming API into MongoDB, a NoSQL store that's perfect for analysis.
I'll go over the basics of the Twitter API, MongoDB, the mongo and tweetstream ruby gems, and how to bring it all together into a sample application.
spkr8.com/t/7832
2:30-3:15
Procrastinate your code: Do it later.
You can't do it all. Sometimes breaking the request/response cycle is just too constraining and you need to bust out of it. Enter asynchronous processing.
Delayed Job and Resque, two takes at solving this problem, are popular tools. We'll explore their differences, demonstrate how to get up and running in minutes, and show you how to find the best fit for your project.
spkr8.com/t/7825
Accelerated native mobile app development with the Ti gem
Titanium mobile is fast becoming the native platform of choice for Rubyists. This talk will show you how to put your Ruby skills to use to write native apps for iOS and Android faster than you ever thought possible including:
- The Ti gem which offers Rails-like generators for views, models, and other project items
- CoffeeScript to write JavaScript using idioms familiar to Rubyists
- Compass and Sass to write JavaScript stylesheets
- Rake to compile, build, and deploy your apps
spkr8.com/t/7830
3:15-3:30
Break
Main Room
Pecan Room
3:30-4:15
The world runs on bad software
The world is full of poorly structured, overly verbose, untested code. But, a lot of people are doing amazing things and making insane amounts of money from bad software. As someone who might call himself a “software architect” or “craftsman”, this is difficult reality for me to accept. This talk explores the balance between pragmatism and perfection.
Ruby, being as expressive and versatile as it is, makes it easy for newbies to write alien code that looks more like Java than anything resembling our beloved language, while those versed in "The Ruby Way" spend their days and nights obsessing over how to refactor ten lines of working code into three.
There is a cost to writing good software. It takes time to write automated tests, refactor code, and do things right. You may miss opportunities to get your software in front of real people, get essential feedback, or even launch at all.
I have seen and often written both abysmal software that makes me want to cry and glorious code that would make any mother proud; both were perfectly adequate for the task at hand.
Bad software that ships is better than good software that nobody uses. Learn how to strike a balance between pragmatism and perfection.
spkr8.com/t/7829
Much Ado About CoffeeScript
CoffeeScript will ship with Rails 3.1 to replace RJS as the preferred way to dynamically generate JavaScript. It's a new language that take the best parts of Ruby, Python, and others to ease the worst parts of JavaScript. More than being the new kid on the Rails block however, CoffeeScript is mind-expanding in ways that will make you remember the first time you ever gave Ruby a try. This presentation will take you through the basics of CoffeeScript, starting with a crash course in syntax, all the way to a working application.
spkr8.com/t/7828
4:15-5:00
More DSL, Less Pain
One much loved feature of Ruby is the ease with which the object model allows for internal DSLs. However, "metaprogramming" code, in Ruby, can be hard on the eyes which written in large quantities. "Lispy", a gem by Ryan Allen, was a first step toward a generic decoupling of internal DSLs from their implementation. I forked it, took it a ways further, and used it in a significant refactoring of a gem. During this presentation, I'll demonstrate how the LISPish notion that code is data can go a long way toward easing the burden of implementing internal DSLs
spkr8.com/t/7827
OPI (Other people's infrastructure)
In business, OPM(other people's money), is the preferred way to start a business. In today's web economy it is now possible to get your app up and running quick by using OPI. This can include everything from server hosting to video processing.
spkr8.com/t/7826
5:10-6:00
Keynote
6:30-
Happy Hour Sponsored by Spiceworks
At Cover 3 Restaurant and Sports Bar (right across the street from the conference center - 2700 W. Anderson Ln Ste #202)
6:30-
Open Sessions