June 7-8, 2013
RedDotRubyConf is THE annual Ruby conference of South East Asia — a two day single-track event that brings together renowned international and local speakers.
Thank You!
We are done for 2013! See you next year!
Day 1: 7 June, Friday
  •   9:15AM •
    Aaron Patterson

    Aaron was born and raised on the mean streets of Salt Lake City. His only hope for survival was to join the local gang of undercover street ballet performers known as the Tender Tights.

    As a Tender Tights member, Aaron learned to perfect the technique of self-defense pirouettes so that nobody, not even the Parkour Posse could catch him. Between vicious street dance-offs, Aaron taught himself to program. He learned to combine the art of street ballet with the craft of software engineering. Using these unique skills, he was able to leave his life on the streets and become a professional software engineer.

    He is currently Pirouetting through Processes, and Couruing through code for AT&T. Sometimes he thinks back fondly on his life in the Tender Tights, but then he remembers that it is better to have Tender Loved and Lost than to never have Tender Taught at all.

    Refactoring Rails

    In this presentation we will look at some refactoring techniques used to transform difficult code in to something maintainable. Along the way we will learn about some internals of Rails, including design concepts and potential speed improvements. We'll learn about Rails internals and refactoring techniques, and how we can apply lessons learned to our own applications.

  • 10:15AM •
    Ola Bini

    Ola Bini works as a language geek for ThoughtWorks in Chicago. He is from Sweden but don't hold that against him. He is one of the JRuby core developers and have been involved in JRuby development since 2006. At one point in time, Ola got tired of all existing programming languages and decided to create his own, called Ioke. Then he did it again, and started work on Seph.

    He has written Practical JRuby on Rails Projects for APress, co-authored Using JRuby for the Pragmatic Programmers, talked at numerous conferences, and contributed to a large amount of open source projects. He is also a member of the JSR292 Expert Group.

    His main passion lies in implementing languages, working on regular expression engines and trying to figure out how to create good YAML parsers.

    JRuby For The Win

    JRuby is an implementation of Ruby for the JVM. It gives you unprecedented integration with the Java ecosystem while still having access to great Ruby libraries such as Rails, RSpec and many more.

    JRuby has gone from being an alternative implementation of Ruby, to a battle hardened tool that many enterprises are using in production. The update in the community means that most gems now are released with outstanding JRuby compatibility, and JRuby can still be counted as the fastest implementation of Ruby.

    In this presentation we will take a look at the reasons for using JRuby, how to get started and what things you can do with JRuby that no other platform gives you.

  • 11:15AM •
  • 11:30AM •
    Pablo Astigarraga

    Pablo Astigarraga (best known as pote) spends his time writing debatably passable code, doing software engineering at Citrusbyte and somehow tricking the world into thinking he knows what he is doing.

    Passionate about open source, doing things right, having fun with cool people and using spaces instead of tabs, pote copes with a somewhat unhealthy relationship with moustaches and is always willing to discuss the evils of premature optimization over a beer.

    50 Shades Of MVC

    We at the Rails world are very proud of embracing the Model-View-Controller design pattern, it is integral to the way we build web applications and there is a general consensus that all of us generally know what we are talking about in regards to it, hell , most of our code files are under a model, controller or views directories! We've got to know what we are doing, right?

    Much like Object Orientation the Model-View-Controller pattern is one of the most popular-yet-heavily-altered concepts in modern computer science, what were the original propositions of the pattern? How was it applied back in the 70's, when it was proposed as a part of Smalltalk? How much have we changed it to adapt it to the web application scene? How can we apply this to our day to day work in 2013? is altering the original pattern necessarily a bad thing?

    On this talk I present different aspects of the MVC pattern and its changes from its inception to modern day use, what to keep in mind about the pattern as opposed to a single framework's implementation of it and how knowing this should make us all around better programmers.

  • 12:00PM •
    Alexey Gaziev

    Alex 'gazay' is a team lead in Evil Martians, Russian agile web development shop. He loves to contribute to open source when he can; besides gem gon, you may know him for such rubygems as: talks, gon-sinatra, tonik, spik, etc. Living in Bali, Indonesia, he works (remotely), tries to surf every other day, and plays jazz on a guitar.

    Rails And Javascript: Brothers In Arms Using Gon

    Did you ever want to integrate your Ruby code in controllers and JavaScript code in the frontend? Gon is here to help with seamless serialization, DRY code and live reloading. Organize your frontend the way it deserves!

    This talk will describe several strategies of transporting data between backend and frontend with the gon gem. It covers:
    - simple variable transfer
    - complex serialization with Rabl and JBuilder templates
    - transparent synchronization of JavaScript variables with their server-side counterparts
    - easy way to set initial or global data for whole application
    - real-life examples
    - nice mood with a set of nifty pics
    - and a bit of spice: Gon internals!

  • 12:30PM •
  •   2:00PM •
    Luismi Cavallé

    Luismi Cavallé works at BeBanjo. He's been putting together lines of Ruby code for fun and profit since 2006. He's an active open-source contributor and got his 15 minutes of fame a couple of years back as the author of Steak (later revealed as a [scam](http://steak-is-a-scam.heroku.com)). He's been involved with the Ruby community in Spain organising and speaking at local conferences and leading the Madrid Ruby users group. He lives now in London.

    Keep Your ActiveRecord Models Manageable The Rails Way

    Rails is awesome! It makes it very easy and enjoyable to start a new project. However, as your application grows, you will eventually have to come off the Rails or your codebase will become completely unmanageable. Everyone knows that.

    You'll need presenters and a service layer, including role and use-case objects. DCI will be great too or, alternatively, you can go Hexagonal. After all, the web is just a delivery mechanism, the database is a mere persistence strategy and, of course, Rails is a detail.

    But… Wait a minute! Is that really true? Does the _Rails way_ no longer work when your application becomes large? How is it, then, that Rails claims to be “optimised for sustainable productivity”?

    In this talk, we'll revisit the patterns and conventions that Rails encourages. We'll push them to the limit and see how the maintainers of large Rails applications keep their models manageable without needing to derail. We'll also discuss the trade-offs of being on and off the Rails. And, maybe, you'll finally learn how to stop worrying and love the Rails way!

  •   2:30PM •
    Richard Huang

    I'm a Ruby on Rails freelancer who has a strong focus on code quality, problem solving, server performance and scalability. I'm the author of bullet and rails_best_practices gems, the founder of http://rails-bestpractices.com.

    Building Asynchronous APIs

    I have built API services on high-traffic platforms using different techniques - multi-processors, multi-threads and evented servers. In this talk, I will share the pros and cons of each technique, and introduce why async non-blocking API service is important for high-traffic websites. I will also show how to easily migrate a Rails synchronous API service to an asynchronous API service.

  •   3:00PM •
    Paul Gallagher
    Ruby - The Hard Bits
  •   3:30PM •
  •   4:00PM •
    Sakchai Siripanyawuth

    Founder/Instructor of a Ruby / Rails Web Development School http://www.codemy.net.

    Previously was working at http://www.oozou.com as a lead developer on several projects.

    A Better UJS For Rails

    Javascript and FrontEnd programming is an integral part of developing a rails application, DHH has blessed us with Turbolinks, however turbolinks doesn't give us fine grained control over our page.

    I will be talking about some of the techniques that we've developed at Artellectual to better manage javascript in a Rails application. We will also be releasing a gem that help people get started with the techniques I will be talking about.

  •   4:30PM •
    Lightning Talks
    Max Gorin

    Max Gorin, aka @nomadcoder, is a nomadic web-developer, the author and maintainer of Netzke, a nature lover and a productivity geek.

    Client-Server GUI Web Components With Ext JS And Rails

    Modular approach to complex RIA (rich internet applications) gives considerable advantages over the commonly used MVC: structuring code into well defined components provides for high scalability, reusability and testability of the code. Besides, with components being a Ruby class, developers have full access to such OOP techniques as inheritance and mixins.

    The Netzke open source framework takes all the hard work of enabling these techniques to create web components using Ruby for the server-side, and Sencha Ext JS for the client-side code. This talk will give you an introduction to rationale behind Netzke, as well as show you some very cool code, which will make you want to give it a try in your next project.

    Bartosz Knapik

    Bartosz is a Senior Developer at Lunar Logic Polska. Born with a passion for scripting languages and SOLID principles (which explains his enthusiasm to AngularJS). Been growing with Ruby on Rails since 1.2. Affected by love of travel, explores new areas and cultures in both IT and real worlds. Eager to share knowledge, do dev meetings and workshops.

    Meet AngularJs And Fall In Love

    Have you ever wondered about a javascript framework for your ruby webapp which is easy to extend, easy to test, with auto UI-data binding and separated MVC layers

    I have a proposal for you - angular.js. In this talk I will show what angular.js is and how it is structured. Then I will explain how to build mvc components and test them. Additionally I will provide recipes and guidelines from my 3 years of experience using it.

    Matthew Rudy Jacobs

    Matthew has been coding Ruby since 2006. He is a founder of Hong Kong Codeaholics, and a Mandarin learner.

    Make Me A Better Rubyist!

    If only there were a magic wand we could wave, and we would suddenly become wise, efficient, and passionate. In reality it takes years of hard work to build the skills and experience necessary. In this talk I'll speak about ways to improve learning, both as an individual, and as a community.

    Kentaro Kuribayashi

    Kentaro Kuribayashi, also known as @kentaro/antipop, is a Tokyo-based software engineer, Rubyist/Perl Monger, working for papreboy&co. http://kentarok.org/

    Glint: Fires Arbitrary TCP Server Processs For Tests

    We use many middlewares like memcached, redis, and some other TCP servers. When we test our app, stubbing out connections to such servers can be useful. However, we can't confirm if our code works actually fine in real situation.

    Glint is a library which allows users to fire up arbitrary TCP servers and test against those real servers without stubbing. While it's a very tiny tool, it can be used in various way combined with many servers. I'll provide a way to solve the problem described above using Glint and show you some examples how to use it.

    Robert Roach

    In a previous lifetime, Rob had a corporate career in telecoms, specializing in voice and data networking and Linux. Integrating Asterisk and VoIP solutions with web based applications brought him   the beautiful world of Ruby and Rails by way of the Adhearsion project. In his current role as CTO of a Singapore based social media startup, taggo.me, he is working to put Rails and Ember.js at the center of a revolution in the payments/loyalty program industry.


    Introduction to using EmberJS in Rails projects

  •   5:00PM •
    Jim Weirich

    Jim Weirich first learned about computers when his college adviser suggested he take a computer science course: 'It will be useful, and you might enjoy it.'

    With those prophetic words, Jim has been developing now for over 25 years, working with everything from crunching rocket launch data on supercomputers to wiring up servos and LEDs on micro-controllers.

    Currently he loves working in Ruby and Rails as the Chief Scientist at Neo, but you can also find him strumming on his ukulele as time permits.

    Code Kata And Analysis

    A Code Kata is a simple programming exercise, practiced repeatably by a developer. Much like a musician practices scales and finger exercises to develop his musical skills, a developer will practice code katas to develop his programming skills.

    This talk will be a live performance of a simple TDD-based code Kata, followed by an analysis of the forces and choices involved in the feedback loop between the code and the tests encountered during the kata. By examining this interaction of tests and code, we come to a better understanding of how to use tests to actively affect the direction of our design. By reflecting on the process, we understand how to pick 'what to test next'.

    This talk is targeted for developers who have started using Test Driven Design (TDD) and feel that they don't quite 'get it' yet, and are looking for guidance in the technique.

Day 2: 8 June, Saturday
  •   9:15AM •
    José Valim

    José Valim (@josevalim) is a Rails Core Team Member, author of Crafting Rails Applications and co-founder of Plataformatec, a consultancy firm based in Brazil. He started working with Ruby in late 2006 and received a Ruby Hero award for his open source work on Devise, Simple Form and Rails itself. He enjoys travelling around, speaking at conferences and lately working on Elixir, a programming language for the Erlang VM.

    Concurrency In Ruby: Tools Of The Trade

    Concurrency has been a popular topic in the programming community in the latest decade and has received special attention in the Ruby community in the latest years. In this talk, José Valim will showcase the tools we have available in Ruby and in the community today, focusing on common pitfalls. This is a great opportunity to discuss why concurrency matters and how we could move forward.

  • 10:15AM •
    Akira Matsuda

    Akira is a Rails committer, a member of the CRuby core, an author of widely used Rails plugins such as Kaminari and ActiveDecorator, and the founder of 'Asakusa.rb', the most active Ruby community in Japan.

    Ruby 2.0 On Rails In Production
  • 11:15AM •
  • 11:30PM •
    Simon Robson

    Simon is a programmer based in Chiang Mai, Thailand, where he runs a software development shop. He is also cofounder of SiliconSoi, a project aimed at improving local developer skills, and groundSwell, a healthcare software startup based in California. When not writing code, he enjoys cooking, running and walking up mountains.

    Optimising Self

    If you were building a system that was going to be in production for 10 or 20 years, you'd be pretty serious about your development processes. As a programmer, you will likely be in production *yourself* for considerably longer than that. So how is your self-development process looking? Are you optimising yourself for current performance and long-term viability?

    In this talk we'll consider some aspects - both mental and physical - you may want to be thinking about to make sure personal and professional growth continues smoothly. And also ask if these ideas could be more prominent in how we teach and mentor other programmers.

  • 12:00PM •
    Hiroshi Shibata

    Ruby commiter, Advanced senior engineer in paperboy&co., Inc. Member of asakusa.rb and one of the organizer of RailsGirls in Japan.

    From 'Legacy' To 'Edge': Continuous Upgrades For Rails Apps

    We have a lot of Rails 2.x applications with Ruby 1.8 in production, and engineers feel incredible pain because they can't use a lot of gems and Ruby 1.9 features.

    In this talk, I'll share my thoughts on the following:
    - Why do we need to upgrade Ruby and Rails?
    - What are the strategies available to upgrade Ruby and Rails?
    - How do we reduce technical debt?
    - How do we upgrade Rails while adding new features?
    - How do we do continuous delivery while simuluteously migrating the database?

    I'll also talk about how web companies in Japan work. If you are interested in continuous maintenance and continuous delivery, this is a talk for you.

  • 12:30PM •
    Lunch Break
  •   2:00PM •
    Chang Sau Sheong

    Sau Sheong is the Director of HP Labs in Singapore, and manages a team of engineers and research scientists focusing on research on how people use cloud computing. He is also an active programmer, technology enthusiast and a frequent speaker at technology-related conferences. Sau Sheong has written 3 books on Ruby and the latest is 'Exploring Everyday Things with R and Ruby' published by O'Reilly Media.

    Ruby Playing

    Ruby is a versatile and powerful programming language and platform, something all participants of this conference would already know. However today Ruby is still mostly used together with Ruby on Rails as the platform for developing web applications.

    In this talk I would like to show how easily Ruby can be used in another way -- to develop a real-time, online and multi-player game. This 2D game will be written with Ruby only -- from the client, to the server to the management console will be entirely in Ruby.

  •   2:30PM •
    Yi-Ting Cheng

    Yi-Ting (xdite) Cheng is CEO at Roco, a leader Ruby on Rails consultancy based in Taiwan. She is also the most well-known Rails blogger in Greater China and Southeast Asia.

    She loves adapting cutting-edge technogies to build amazing apps in day to day works. In her spare time she also organizes Taipei Rails Meetup and makes time for attending local hackathons. She recently won the Facebook Hackathon global Grand Prize (using Rails).

    Secure Your Rails Application: The Basics

    Security is hard. Everyone wants their sites to be hacker-free. But the truth is: If your sites were hacked, the causes are often because you forgot the basics.

    In this talk I will show you:
    - Common application design mistakes people make and are not aware of.
    - The most vulnerable controller actions that hackers seek.
    - The default security mechanism of Rails for these issues and reasons why you should not bypass them.
    - And how to write secure codes by default.

  •   3:00PM •
    Christopher Rigor

    Christopher Rigor works at Engine Yard. He is the team lead of the Asia-Pacific team that supports the Engine Yard Cloud, a platform that automates the configuration of servers for different applications.

    Identical Production, Staging And Development Environments Using Chef, AWS And Vagrant

    Learn how Engine Yard uses Amazon Web Services and Chef to bring up any number of servers ranging from a solo instance to a cluster of instances with multiple app instances, database instances and utility instances for memcached, resque, sphinx, and everything your app needs.

    Snapshots are used to create a clone of your production environment where you can test all the changes before making them in production.

    Vagrant and VirtualBox are used to provide a development environment with the same OS you use in production. Chef is used to install the same packages. In fact you use the same chef recipes everywhere.

  •   3:30PM •
  •   4:00PM •
    Prem Sichanugrist

    Prem is a developer working at thoughtbot in Boston, MA. He started using Ruby and Ruby on Rails in 2007 and fell in love with it immediately. Since 2009, he has been contributing to Ruby on Rails and several open source projects, and is now a pretty well-known open source contributor.

    Dependencies Testing With Appraisal And Bundler
  •   4:30PM •
    Nigel Rausch

    Nigel, who was the President of Ruby Australia Committee, is heavily involved in the Australian Tech community. He organises the Local Brisbane’s Ruby, Javascript and WorkAtJelly meetups as well he as organised CampJS and RailsCamps.

    Fast & Effective View Testing

    Too many people use integration tests to check if an element is displayed or not, this is slow and cumbersome. Another solution is to use rspec view specs which end up creating a lot of duplicated code and scenarios.

    In this presentation I will show you a fast and consistent way of testing multiple elements are (or are not) displayed based on a context.

  •   5:00PM •
    Steve Klabnik

    Rails committer, Jumpstart Lab instructor, nomad philosopher.

    Functional Reactive Programming in Ruby

    Ruby's strengths lie in its ability to blend styles. We all know about OOP and Ruby, but it often leans functional, as well. There's a style of writing programs called 'Functional Reactive Programming' that is extremely useful in the Haskell world, but isn't really used in Ruby at all.

    In this talk, Steve will show you FRP, an implementation of it in Ruby, and how to write programs in this style.

  •   7:00PM •