SlideShare a Scribd company logo
Rupher
Aleksandr Simonov
Aleksandr Simonov
Developer

DBA

DevOps

TechAddict

Owner
Rupher = Ruby + Gopther
James Gosling
Java
Ken Thompson & Dennis Ritchie
UNIX
John McCarthy
Lisp
Larry Wall
Perl
Matz && RMS
Ruby and GNU
Rupher = Ruby + Gopther
Ryan Dahl
Node.js
Rob Pike
Plan9, UTF-8, Go
Rupher = Ruby + Gopther
Ruby
• Dynamic

• Object-Oriented

• Dynamic Typing 

• Metaprogramming

• Block syntax
Ruby’s Unicorns
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Gopher’s Bullets
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
Rupher = Ruby + Gopther
What to choose?!
Ruby?
•ORM

•DSL

•Fast Development

•Pure performance
Go?
•Strict types

•Compiled binary

•Blazing fast

•Slow development
BOTH!
WHY BOTH?!!
Rupher = Ruby + Gopther
Web Application
• HTTP Routes

• Database

• Assets Compilation

• Background Jobs

• Export/Import Data

• Deployment
HTTP Routes
• GET

• POST

• PUT

• DELETE
HTTP Routes
• JSON Parsing much faster on Go

• XML Parsing much faster on Go

• Go can process request in goroutine
Database
• INSERT

• SELECT

• UPDATE

• MIGRATIONS
Database
• SQL Drivers is very fast

• Database pools helpful

• Bulk Insert will help you Luke!
Database
MIGRATIONS in Go so UGLYYYY
-- +goose Up
CREATE TABLE post (
id int NOT NULL,
title text,
body text,
PRIMARY KEY(id)
);
-- +goose Down
DROP TABLE post;
class CreateAccounts < ActiveRecord::Migration[5.1]
def change
create_table :post do |t|
t.text :title
t.text :body
end
end
end
Sequel.migration do
change do
create_table(:post) do
primary_key :id
column :title,:text
column :body, :text
end
end
end
Assets Compilation
• JavaScript/CoffeeScript/TypeScript

• CSS/LESS/SASS

• Handlebars/Mustache

• Gzipping
Assets Compilation
• Sprockets is Ugly

• Gulp is Ugly

• Browserify is Ugly

• WebPack is Not Ugly YET :)
Background Jobs
• Database queue

• Redis queue

• RabbitMQ queue
Background Jobs
• DelayedJob is slow

• Resque is fork based

• Sidekiq is memory eat monster
Background Jobs
• Goworker is Resque compatible

• Go-Workers is Sidekiq compatible

• Your own queue via channels
Export/Import Data
• DSL is your power

• Metaprogramming is your crown

• Pipes is your horse
Deployment
• Docker

• Dokku

• Flynn

• Docker-Compose
Rupher = Ruby + Gopther

More Related Content

PDF
PharoDAYS 2015: On Relational Databases by Guille Polito
KEY
Why ruby and rails
KEY
PlayNice.ly: Using Redis to store all our data, hahaha (Redis London Meetup)
PDF
How to create/improve OSS product and its community (revised)
PDF
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
KEY
Freelancing and side-projects on Rails
KEY
Windycityrails page performance
PPTX
RavenDB 3.5
PharoDAYS 2015: On Relational Databases by Guille Polito
Why ruby and rails
PlayNice.ly: Using Redis to store all our data, hahaha (Redis London Meetup)
How to create/improve OSS product and its community (revised)
[Rakuten TechConf2014] [C-2] Big Data for eBooks and eReaders
Freelancing and side-projects on Rails
Windycityrails page performance
RavenDB 3.5

What's hot (20)

PDF
Introduction to Go
PPTX
Day 1 - Intro to Ruby
PPTX
Day 2 - Intro to Rails
PPTX
Day 8 - jRuby
PDF
Cloud conference - mongodb
KEY
Torquebox rubyhoedown-2012
KEY
improving the performance of Rails web Applications
PDF
Railsで作るBFFの功罪
PDF
Know thy cost (or where performance problems lurk)
PDF
Apcera Case Study: The selection of the Go language
PDF
PureScript Tutorial 1
ODP
Cvcc performance tuning
PPTX
Markup languages and warp-speed documentation
PDF
Solving text search problems with Ruby on Rails
PPTX
Day 9 - PostgreSQL Application Architecture
PDF
Git Internals
PPTX
Talk about java
PDF
Python to go
PDF
Migrate PHP E-Commerce Site to Go
PDF
Intro to git (one hour version)
Introduction to Go
Day 1 - Intro to Ruby
Day 2 - Intro to Rails
Day 8 - jRuby
Cloud conference - mongodb
Torquebox rubyhoedown-2012
improving the performance of Rails web Applications
Railsで作るBFFの功罪
Know thy cost (or where performance problems lurk)
Apcera Case Study: The selection of the Go language
PureScript Tutorial 1
Cvcc performance tuning
Markup languages and warp-speed documentation
Solving text search problems with Ruby on Rails
Day 9 - PostgreSQL Application Architecture
Git Internals
Talk about java
Python to go
Migrate PHP E-Commerce Site to Go
Intro to git (one hour version)
Ad

Similar to Rupher = Ruby + Gopther (20)

KEY
Ruby On Rails
PPTX
Ruby on Rails All Hands Meeting
PDF
Web Development using Ruby on Rails
PPT
Ruby on Rails (RoR) as a back-end processor for Apex
PDF
The Recent Pronouncement Of The World Wide Web (Www) Had
PPTX
Exploring Ruby on Rails and PostgreSQL
PPTX
Ruby on rails for beginers
PPT
Ruby on Rails: Building Web Applications Is Fun Again!
PDF
JRuby - Programmer's Best Friend on JVM
PDF
Ruby on Rails (RoR) as a back-end processor for Apex
PDF
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
PDF
From java-to-ruby-book-summary
PDF
When To Use Ruby On Rails
PPT
Where do you want to go today 2007
KEY
Nosql redis-mongo
PPT
Where do you want to go today
PDF
festival ICT 2013: Ruby, the 0.8 language you were looking for
PPT
Ruby On Rails Seminar Basis Softexpo Feb2010
DOCX
Rails Concept
PPTX
Ruby on Rails - An overview
Ruby On Rails
Ruby on Rails All Hands Meeting
Web Development using Ruby on Rails
Ruby on Rails (RoR) as a back-end processor for Apex
The Recent Pronouncement Of The World Wide Web (Www) Had
Exploring Ruby on Rails and PostgreSQL
Ruby on rails for beginers
Ruby on Rails: Building Web Applications Is Fun Again!
JRuby - Programmer's Best Friend on JVM
Ruby on Rails (RoR) as a back-end processor for Apex
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
From java-to-ruby-book-summary
When To Use Ruby On Rails
Where do you want to go today 2007
Nosql redis-mongo
Where do you want to go today
festival ICT 2013: Ruby, the 0.8 language you were looking for
Ruby On Rails Seminar Basis Softexpo Feb2010
Rails Concept
Ruby on Rails - An overview
Ad

More from Aleksandr Simonov (7)

PDF
Dokku - your own heroku
PDF
Cleaners of Caribbean
PDF
RubyMotion: Overview and Ecosystem
PDF
Capistrano && SystemD
PDF
Pivorak light
PDF
How to become a chef
PDF
Deployment tales
Dokku - your own heroku
Cleaners of Caribbean
RubyMotion: Overview and Ecosystem
Capistrano && SystemD
Pivorak light
How to become a chef
Deployment tales

Recently uploaded (20)

PDF
Getting Started with Data Integration: FME Form 101
PPTX
A Presentation on Touch Screen Technology
PDF
Hybrid model detection and classification of lung cancer
PPTX
A Presentation on Artificial Intelligence
PDF
August Patch Tuesday
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
1. Introduction to Computer Programming.pptx
PPTX
TLE Review Electricity (Electricity).pptx
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
Chapter 5: Probability Theory and Statistics
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Getting Started with Data Integration: FME Form 101
A Presentation on Touch Screen Technology
Hybrid model detection and classification of lung cancer
A Presentation on Artificial Intelligence
August Patch Tuesday
Building Integrated photovoltaic BIPV_UPV.pdf
Enhancing emotion recognition model for a student engagement use case through...
1. Introduction to Computer Programming.pptx
TLE Review Electricity (Electricity).pptx
DP Operators-handbook-extract for the Mautical Institute
Chapter 5: Probability Theory and Statistics
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Programs and apps: productivity, graphics, security and other tools
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
NewMind AI Weekly Chronicles - August'25-Week II
A comparative study of natural language inference in Swahili using monolingua...
SOPHOS-XG Firewall Administrator PPT.pptx
Group 1 Presentation -Planning and Decision Making .pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Rupher = Ruby + Gopther