rubyconf ar 2013_pdf

188
Server Side Ruby Tips For Mobile apps Monday, November 25, 13

Upload: hanneli-tavante

Post on 15-Jan-2015

8.828 views

Category:

Technology


1 download

DESCRIPTION

RUbyConf ARgentina talk - Server Side Ruby Tips for mobile apps

TRANSCRIPT

Page 1: Rubyconf ar 2013_pdf

Server Side Ruby TipsFor Mobile apps

Monday, November 25, 13

Page 2: Rubyconf ar 2013_pdf

Hello!Hanneli (a.k.a. @hannelita)

Software developer in Brazil

Middleware Consultant at

Coffee and Pokémon <3

Yo no hablo español muy bien

Monday, November 25, 13

Page 3: Rubyconf ar 2013_pdf

What we will see

Monday, November 25, 13

Page 4: Rubyconf ar 2013_pdf

What we will seeSoftware development - evolution

Monday, November 25, 13

Page 5: Rubyconf ar 2013_pdf

What we will seeSoftware development - evolution

Welcome to mobile world!

Monday, November 25, 13

Page 6: Rubyconf ar 2013_pdf

What we will seeSoftware development - evolution

Welcome to mobile world!

Do we need backend?

Monday, November 25, 13

Page 7: Rubyconf ar 2013_pdf

What we will seeSoftware development - evolution

Welcome to mobile world!

Do we need backend?

Ruby for mobile apps backend

Monday, November 25, 13

Page 8: Rubyconf ar 2013_pdf

What we will seeSoftware development - evolution

Welcome to mobile world!

Do we need backend?

Ruby for mobile apps backend

Helios environment

Monday, November 25, 13

Page 9: Rubyconf ar 2013_pdf

What we will seeSoftware development - evolution

Welcome to mobile world!

Do we need backend?

Ruby for mobile apps backend

Helios environment

Funny gifs (or not)

Monday, November 25, 13

Page 10: Rubyconf ar 2013_pdf

What we will seeSoftware development - evolution

Welcome to mobile world!

Do we need backend?

Ruby for mobile apps backend

Helios environment

Funny gifs (or not)

Monday, November 25, 13

Page 11: Rubyconf ar 2013_pdf

Programming

Monday, November 25, 13

Page 12: Rubyconf ar 2013_pdf

1990 -> 2000

Monday, November 25, 13

Page 13: Rubyconf ar 2013_pdf

1990 -> 2000

Monday, November 25, 13

Page 14: Rubyconf ar 2013_pdf

1990 -> 2000

Monday, November 25, 13

Page 15: Rubyconf ar 2013_pdf

1990 -> 2000

Monday, November 25, 13

Page 16: Rubyconf ar 2013_pdf

1990 -> 2000

Monday, November 25, 13

Page 17: Rubyconf ar 2013_pdf

1990 -> 2000

Monday, November 25, 13

Page 18: Rubyconf ar 2013_pdf

1990 -> 2000

Web

Monday, November 25, 13

Page 19: Rubyconf ar 2013_pdf

SKILL SET

Monday, November 25, 13

Page 20: Rubyconf ar 2013_pdf

SKILL SET

PHP

Monday, November 25, 13

Page 21: Rubyconf ar 2013_pdf

SKILL SET

PHP

Apache

Monday, November 25, 13

Page 22: Rubyconf ar 2013_pdf

SKILL SET

PHP

Apache

MySQLMonday, November 25, 13

Page 23: Rubyconf ar 2013_pdf

SKILL SET

PHP

Apache

MySQLMonday, November 25, 13

Page 24: Rubyconf ar 2013_pdf

EASY!

Monday, November 25, 13

Page 25: Rubyconf ar 2013_pdf

EASY!

Monday, November 25, 13

Page 26: Rubyconf ar 2013_pdf

Monday, November 25, 13

Page 27: Rubyconf ar 2013_pdf

A little MOAR

Monday, November 25, 13

Page 28: Rubyconf ar 2013_pdf

A little MOAR

Oracle

Monday, November 25, 13

Page 29: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQL

Monday, November 25, 13

Page 30: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRuby

Monday, November 25, 13

Page 31: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRails

Monday, November 25, 13

Page 32: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Monday, November 25, 13

Page 33: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

Monday, November 25, 13

Page 34: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

Monday, November 25, 13

Page 35: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

Monday, November 25, 13

Page 36: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

Monday, November 25, 13

Page 37: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

Monday, November 25, 13

Page 38: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD

Monday, November 25, 13

Page 39: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vim

Monday, November 25, 13

Page 40: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpec

Monday, November 25, 13

Page 41: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

Monday, November 25, 13

Page 42: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

Cassandra

Monday, November 25, 13

Page 43: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

CassandraNode.js

Monday, November 25, 13

Page 44: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

CassandraNode.jsMeteor.js

Monday, November 25, 13

Page 45: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Monday, November 25, 13

Page 46: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4j

Monday, November 25, 13

Page 47: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4jRedis

Monday, November 25, 13

Page 48: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4jRedis

Heroku

Monday, November 25, 13

Page 49: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4jRedis

HerokuGit

Monday, November 25, 13

Page 50: Rubyconf ar 2013_pdf

A little MOAR

Oracle

NoSQLRubyRailsSinatra

Postgres

HTML

CSS

JS

jQuery

TDD vimRSpecMongo

CassandraNode.jsMeteor.js Backbone.js

Neo4jRedis

HerokuGit

Torquebox

Monday, November 25, 13

Page 51: Rubyconf ar 2013_pdf

F*** YEAH

Monday, November 25, 13

Page 52: Rubyconf ar 2013_pdf

2000 -> Nowadays

Monday, November 25, 13

Page 53: Rubyconf ar 2013_pdf

2000 -> Nowadays

Monday, November 25, 13

Page 54: Rubyconf ar 2013_pdf

2000 -> Nowadays

Monday, November 25, 13

Page 55: Rubyconf ar 2013_pdf

2000 -> Nowadays

Monday, November 25, 13

Page 56: Rubyconf ar 2013_pdf

2000 -> Nowadays

Monday, November 25, 13

Page 57: Rubyconf ar 2013_pdf

2000 -> Nowadays

Monday, November 25, 13

Page 58: Rubyconf ar 2013_pdf

2000 -> Nowadays

Monday, November 25, 13

Page 59: Rubyconf ar 2013_pdf

2000 -> Nowadays

Monday, November 25, 13

Page 60: Rubyconf ar 2013_pdf

2000 -> Nowadays

Mobile!

Monday, November 25, 13

Page 61: Rubyconf ar 2013_pdf

Your mobile

Monday, November 25, 13

Page 62: Rubyconf ar 2013_pdf

Your mobile

Bank account

Monday, November 25, 13

Page 63: Rubyconf ar 2013_pdf

Your mobile

Bank account

Email

Monday, November 25, 13

Page 64: Rubyconf ar 2013_pdf

Your mobile

Bank account

Email

Personal Trainer

Monday, November 25, 13

Page 65: Rubyconf ar 2013_pdf

Your mobile

Bank account

Email

Personal Trainer

Clock

Monday, November 25, 13

Page 66: Rubyconf ar 2013_pdf

Your mobile

Bank account

Email

Personal Trainer

Clock

Photo gallery

Monday, November 25, 13

Page 67: Rubyconf ar 2013_pdf

Your mobile

Bank account

Email

Personal Trainer

Clock

Photo gallery

Communication

Monday, November 25, 13

Page 68: Rubyconf ar 2013_pdf

The Apple

Monday, November 25, 13

Page 69: Rubyconf ar 2013_pdf

The Apple

Monday, November 25, 13

Page 70: Rubyconf ar 2013_pdf

The Apple

Monday, November 25, 13

Page 71: Rubyconf ar 2013_pdf

The Apple

Monday, November 25, 13

Page 72: Rubyconf ar 2013_pdf

The Apple

Monday, November 25, 13

Page 73: Rubyconf ar 2013_pdf

The Apple

Hey, sweet, do you have WhatsApp?

Monday, November 25, 13

Page 74: Rubyconf ar 2013_pdf

iOS Development

Monday, November 25, 13

Page 75: Rubyconf ar 2013_pdf

iOS Development

Objective C

Monday, November 25, 13

Page 76: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Monday, November 25, 13

Page 77: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

Monday, November 25, 13

Page 78: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Monday, November 25, 13

Page 79: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Foundation

Monday, November 25, 13

Page 80: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Foundation

C

Monday, November 25, 13

Page 81: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

Monday, November 25, 13

Page 82: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit

Monday, November 25, 13

Page 83: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit CoreGraphics

Monday, November 25, 13

Page 84: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit CoreGraphics

CoreServices

Monday, November 25, 13

Page 85: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit CoreGraphics

CoreServices

CoreLocation

Monday, November 25, 13

Page 86: Rubyconf ar 2013_pdf

iOS Development

Objective C

iOS

Xcode

SQLite

Foundation

C

C++

UIKit CoreGraphics

CoreServices

CoreLocation

ARC

Monday, November 25, 13

Page 87: Rubyconf ar 2013_pdf

iOS Development

Monday, November 25, 13

Page 88: Rubyconf ar 2013_pdf

iOS Development

Monday, November 25, 13

Page 89: Rubyconf ar 2013_pdf

iOS Development

[[[[ ]]]]

Monday, November 25, 13

Page 90: Rubyconf ar 2013_pdf

iOS Development

[[[[ ]]]]

Monday, November 25, 13

Page 91: Rubyconf ar 2013_pdf

Life is too short to Objective C

Monday, November 25, 13

Page 92: Rubyconf ar 2013_pdf

Life is too short to Objective C

Monday, November 25, 13

Page 93: Rubyconf ar 2013_pdf

Keep doing Ruby

Monday, November 25, 13

Page 94: Rubyconf ar 2013_pdf

BUT

Monday, November 25, 13

Page 95: Rubyconf ar 2013_pdf

BUT

The app is nowpopular

Monday, November 25, 13

Page 96: Rubyconf ar 2013_pdf

BUT

The app is nowpopular

Monday, November 25, 13

Page 97: Rubyconf ar 2013_pdf

Wow

Monday, November 25, 13

Page 98: Rubyconf ar 2013_pdf

Wow

Monday, November 25, 13

Page 99: Rubyconf ar 2013_pdf

Wow

Monday, November 25, 13

Page 100: Rubyconf ar 2013_pdf

Wow

ClientMonday, November 25, 13

Page 101: Rubyconf ar 2013_pdf

Wow

Client ServerMonday, November 25, 13

Page 102: Rubyconf ar 2013_pdf

Wow

Client ServerMonday, November 25, 13

Page 103: Rubyconf ar 2013_pdf

OH NO!

Monday, November 25, 13

Page 104: Rubyconf ar 2013_pdf

OH NO!

Objective C backend!

Monday, November 25, 13

Page 105: Rubyconf ar 2013_pdf

OH NO!

Objective C backend!

Monday, November 25, 13

Page 106: Rubyconf ar 2013_pdf

SALVATION

Monday, November 25, 13

Page 107: Rubyconf ar 2013_pdf

SALVATION

Monday, November 25, 13

Page 108: Rubyconf ar 2013_pdf

Let’s RUBY!

Monday, November 25, 13

Page 109: Rubyconf ar 2013_pdf

Let’s RUBY!

What do you needfor backend, sir?

Monday, November 25, 13

Page 110: Rubyconf ar 2013_pdf

Data Sync

Monday, November 25, 13

Page 111: Rubyconf ar 2013_pdf

Data Sync

Monday, November 25, 13

Page 112: Rubyconf ar 2013_pdf

Data Sync

Monday, November 25, 13

Page 113: Rubyconf ar 2013_pdf

Data Sync

Monday, November 25, 13

Page 114: Rubyconf ar 2013_pdf

Data Sync

Monday, November 25, 13

Page 115: Rubyconf ar 2013_pdf

Data Sync

011001

Monday, November 25, 13

Page 116: Rubyconf ar 2013_pdf

Data Sync

011001

Monday, November 25, 13

Page 117: Rubyconf ar 2013_pdf

Data Sync

011001

Monday, November 25, 13

Page 118: Rubyconf ar 2013_pdf

InApp Purchases

Monday, November 25, 13

Page 119: Rubyconf ar 2013_pdf

InApp Purchases

Monday, November 25, 13

Page 120: Rubyconf ar 2013_pdf

InApp Purchases

Monday, November 25, 13

Page 121: Rubyconf ar 2013_pdf

InApp Purchases

Monday, November 25, 13

Page 122: Rubyconf ar 2013_pdf

InApp Purchases

Monday, November 25, 13

Page 123: Rubyconf ar 2013_pdf

InApp Purchases

Monday, November 25, 13

Page 124: Rubyconf ar 2013_pdf

Push Notification

Monday, November 25, 13

Page 125: Rubyconf ar 2013_pdf

Push Notification

Monday, November 25, 13

Page 126: Rubyconf ar 2013_pdf

Push Notification

Monday, November 25, 13

Page 127: Rubyconf ar 2013_pdf

Push Notification

Monday, November 25, 13

Page 128: Rubyconf ar 2013_pdf

Push Notification

Monday, November 25, 13

Page 129: Rubyconf ar 2013_pdf

Push Notification

Monday, November 25, 13

Page 130: Rubyconf ar 2013_pdf

Let’s RUBY!

Monday, November 25, 13

Page 131: Rubyconf ar 2013_pdf

Let’s RUBY!

No need to do from zero!

Monday, November 25, 13

Page 132: Rubyconf ar 2013_pdf

Helios!

Keep lazy for backend!

Monday, November 25, 13

Page 133: Rubyconf ar 2013_pdf

Helios Defaults

Monday, November 25, 13

Page 134: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

Monday, November 25, 13

Page 135: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

gem install helios

Monday, November 25, 13

Page 136: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

gem install helios

helios new rubyconf

Monday, November 25, 13

Page 137: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

gem install helios

helios new rubyconf

Monday, November 25, 13

Page 138: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

gem install helios

helios new rubyconf

Monday, November 25, 13

Page 139: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

gem install helios

helios new rubyconf

Monday, November 25, 13

Page 140: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

gem install helios

helios new rubyconf

helios server

Monday, November 25, 13

Page 141: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

gem install helios

helios new rubyconf

helios server

http://localhost:5000/admin

Monday, November 25, 13

Page 142: Rubyconf ar 2013_pdf

Helios DefaultsHeroku app

gem install helios

helios new rubyconf

helios server

http://localhost:5000/admin

helios server

Monday, November 25, 13

Page 143: Rubyconf ar 2013_pdf

Checklist

Data Model Sync

InApp Purchases

Push Notifications

Monday, November 25, 13

Page 144: Rubyconf ar 2013_pdf

Checklist

Data Model Sync

InApp Purchases

Push Notifications

Monday, November 25, 13

Page 145: Rubyconf ar 2013_pdf

Checklist

Data Model Sync

InApp Purchases

Push Notifications

Monday, November 25, 13

Page 146: Rubyconf ar 2013_pdf

Checklist

Data Model Sync

InApp Purchases

Push Notifications

Monday, November 25, 13

Page 147: Rubyconf ar 2013_pdf

Rails - application.rb

config.middleware.use Helios::Application do service :data, model: 'path/to/DataModel.xcdatamodel' service :push_notification service :in_app_purchaseend

Monday, November 25, 13

Page 148: Rubyconf ar 2013_pdf

Data model Sync

Monday, November 25, 13

Page 149: Rubyconf ar 2013_pdf

Data model SyncREST model - from

CoreData

Monday, November 25, 13

Page 150: Rubyconf ar 2013_pdf

Data model SyncREST model - from

CoreData

GET /talks

Monday, November 25, 13

Page 151: Rubyconf ar 2013_pdf

Data model SyncREST model - from

CoreData

GET /talks

POST /talks

Monday, November 25, 13

Page 152: Rubyconf ar 2013_pdf

Data model SyncREST model - from

CoreData

GET /talks

POST /talks

GET /talks/2

Monday, November 25, 13

Page 153: Rubyconf ar 2013_pdf

Data model SyncREST model - from

CoreData

GET /talks

POST /talks

GET /talks/2

PUT /talks/2

Monday, November 25, 13

Page 154: Rubyconf ar 2013_pdf

Data model SyncREST model - from

CoreData

GET /talks

POST /talks

GET /talks/2

PUT /talks/2

DELETE /talks/2

Monday, November 25, 13

Page 155: Rubyconf ar 2013_pdf

Push Notifications

Monday, November 25, 13

Page 156: Rubyconf ar 2013_pdf

Push Notifications

Monday, November 25, 13

Page 157: Rubyconf ar 2013_pdf

Push Notifications

Monday, November 25, 13

Page 158: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework

Monday, November 25, 13

Page 159: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework

Rack PushNotification

Monday, November 25, 13

Page 160: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Monday, November 25, 13

Page 161: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

Monday, November 25, 13

Page 162: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

1. Register for PSN

Monday, November 25, 13

Page 163: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

1. Register for PSN

Monday, November 25, 13

Page 164: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

Monday, November 25, 13

Page 165: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS2. Receive

Token

Monday, November 25, 13

Page 166: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS2. Receive

Token

Monday, November 25, 13

Page 167: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

Monday, November 25, 13

Page 168: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

3. App sends token

Monday, November 25, 13

Page 169: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

3. App sends token

Monday, November 25, 13

Page 170: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

Monday, November 25, 13

Page 171: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

4. Notifies APNS when something happens

Monday, November 25, 13

Page 172: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

4. Notifies APNS when something happens

Monday, November 25, 13

Page 173: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

Monday, November 25, 13

Page 174: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS5. APNS

Sends the push

Monday, November 25, 13

Page 175: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS5. APNS

Sends the push

Monday, November 25, 13

Page 176: Rubyconf ar 2013_pdf

Push Notifications

Orbiter framework Helios

Rack PushNotification

Apple APNS

Monday, November 25, 13

Page 177: Rubyconf ar 2013_pdf

Open Source!

Monday, November 25, 13

Page 178: Rubyconf ar 2013_pdf

Open Source!

helios

Monday, November 25, 13

Page 179: Rubyconf ar 2013_pdf

Open Source!

helios rack-push-notification

Monday, November 25, 13

Page 180: Rubyconf ar 2013_pdf

Open Source!

helios rack-push-notification

orbiter

Monday, November 25, 13

Page 181: Rubyconf ar 2013_pdf

Open Source!

helios rack-push-notification

orbiter houston

Monday, November 25, 13

Page 182: Rubyconf ar 2013_pdf

Open Source!

helios rack-push-notification

orbiter houston

Monday, November 25, 13

Page 183: Rubyconf ar 2013_pdf

Open Source!

helios rack-push-notification

orbiter houston

Monday, November 25, 13

Page 184: Rubyconf ar 2013_pdf

Thanks!Questions?

Monday, November 25, 13

Page 185: Rubyconf ar 2013_pdf

Thanks!Questions?

@hannelita

Monday, November 25, 13

Page 186: Rubyconf ar 2013_pdf

Thanks!Questions?

@[email protected]

Monday, November 25, 13