SlideShare a Scribd company logo
Ecossistema
Ruby
Fabio Akita
@akitaonrails
codeminer42.com
9 ANOS!
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Rails 3.2.14-rc1
Rails 4.0.0
Ruby 1.9.3 p429
Ruby 2.0.0 p195
JRuby 1.7.4 (Java 7)
Repositórios
Tdc 2013 - Ecossistema Ruby
http://u.akita.ws/git
https://help.github.com/articles/using-pull-requests
Tdc 2013 - Ecossistema Ruby
git checkout master
git checkout -b new_branch
git commit -a -m“new change”
git push origin new_branch
git checkout master
git checkout -b new_branch
git commit -a -m“new change”
git push origin new_branch
git checkout master
git checkout -b new_branch
git commit -a -m“new change”
git push origin new_branch
git checkout master
git checkout -b new_branch
git commit -a -m“new change”
git push origin new_branch
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Desenvolvimento
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
vagrant init precise32 http://
files.vagrantup.com/precise32.box
vagrant up
vagrant ssh
vagrant halt
vagrant init precise32 http://
files.vagrantup.com/precise32.box
vagrant up
vagrant ssh
vagrant halt
vagrant init precise32 http://
files.vagrantup.com/precise32.box
vagrant up
vagrant ssh
vagrant halt
vagrant init precise32 http://
files.vagrantup.com/precise32.box
vagrant up
vagrant ssh
vagrant halt
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
brew install ack ctags git macvim
wget zsh
Tdc 2013 - Ecossistema Ruby
sh -c "`curl -fsSL https://
raw.github.com/skwp/dotfiles/
master/install.sh`"
cd ~/.yadr; rake update
sh -c "`curl -fsSL https://
raw.github.com/skwp/dotfiles/
master/install.sh`"
cd ~/.yadr; rake update
http://u.akita.ws/vim
Continuous
Integration (CI)
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Exceptions
Tracking
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
# Gemfile
group :production do
gem 'airbrake'
end
# config/initializers/errbit.rb
if defined?(Airbrake)
Airbrake.configure do |config|
config.api_key = 'SUA_CHAVE'
config.host = 'errbit.cm42.io'
config.port = 80
config.secure = config.port == 443
end
end
Tdc 2013 - Ecossistema Ruby
MyApp::Application.config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => "[MyApp] ",
:sender_address => %{"notifier" <notifier@mycompany.com>},
:exception_recipients => %w{developers@mycompany.com}
}
Code Quality
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
gem install brakeman
brakeman -o report.html
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
gem install rails_best_practices
rails_best_practices -f html .
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
gem install excellent
excellent -o excellent.html .
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
# spec/spec_helper.rb
require 'simplecov'
SimpleCov.start 'rails'
Tdc 2013 - Ecossistema Ruby
CDN
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
http://u.akita.ws/assets
Full Text Search
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
# Gemfile
gem 'sunspot_rails'
gem "sunspot_with_kaminari"
group :development do
gem 'sunspot_solr'
gem 'progress_bar'
end
# config/sunspot.yml
production:
solr:
hostname: index.websolr.com
port: 80
log_level: WARNING
path: /solr/69xxxxxxx39
# read_timeout: 2
# open_timeout: 0.5
development:
solr:
hostname: localhost
port: 8982
log_level: INFO
test:
solr:
hostname: localhost
port: 8981
log_level: WARNING
# app/models/document.rb
class Document < ActiveRecord::Base
searchable do
text :title, :more_like_this => true
text :excerpt_html, :more_like_this => true
text :body_html, :more_like_this => true
string :cached_tag_list
time :published_at
end
end
<form id="formsearch" method="get" action="<%= searches_url %>">
<input type="text" name="q" />
</form>
class SearchesController < ApplicationController
def index
page = params[:page] || 1
query = (params[:q] || "").strip
@posts = Sunspot.search(Post) do
fulltext query do
query_phrase_slop 1
phrase_fields :title => 2.0
phrase_slop 1
end
paginate :page => page,
:per_page => Post::DEFAULT_LIMIT
order_by :score, :desc
end
end
end
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Mensagens
Assíncronas
Tdc 2013 - Ecossistema Ruby
<script src="http://js.pusher.com/2.1/pusher.min.js"></script>
<script>
var pusher = new Pusher('SUA_CHAVE');
var channel = pusher.subscribe('meu-canal');
channel.bind('meu-evento', function(data) {
alert('Chegou um evento com a mensagem: ' + data.message);
});
</script>
require 'pusher'
Pusher.app_id = 'APP_ID'
Pusher.key = 'APP_KEY'
Pusher.secret = 'APP_SECRET'
class HelloWorldController < ApplicationController
def hello_world
Pusher['meu-canal'].trigger('meu-evento', {:message => 'hello world'})
end
end
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Web Servers
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
gem install passenger
sudo passenger-install-nginx-
module
http://u.akita.ws/ubuntu1204
Tdc 2013 - Ecossistema Ruby
heroku create
git push heroku master
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
gem install af
af push --runtime ruby193
af update sua_aplicacao
af restart sua_aplicacao
gem install af
af push --runtime ruby193
af update sua_aplicacao
af restart sua_aplicacao
gem install af
af push --runtime ruby193
af update sua_aplicacao
af restart sua_aplicacao
gem install af
af push --runtime ruby193
af update sua_aplicacao
af restart sua_aplicacao
iOS Backend
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
gem install helios
helios new myapp
createdb -h localhost myapp
cd myapp && helios start
# Gemfile
gem 'helios'
gem 'pg'
# config/application.rb
config.middleware.use Helios::Application do
service :data, model: 'path/to/DataModel.xcdatamodel'
service :push_notification,
apn_certificate: 'path/to/apple_push_notification.pem',
apn_environment: 'development'
service :in_app_purchase
service :passbook
end
Tdc 2013 - Ecossistema Ruby
Educação
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
Thanks!
@akitaonrails

More Related Content

KEY
Background Jobs with Resque
PDF
Background processing with Resque
PDF
Android Libs - Retrofit
KEY
GPerf Using Jesque
KEY
Php resque
PDF
Virthualenvwrapper
PPTX
Capistrano - automate all the things
PDF
Retrofit
Background Jobs with Resque
Background processing with Resque
Android Libs - Retrofit
GPerf Using Jesque
Php resque
Virthualenvwrapper
Capistrano - automate all the things
Retrofit

What's hot (20)

PDF
G*なクラウド ~雲のかなたに~
PPTX
Getting Started with Capistrano
PDF
Designing net-aws-glacier
PPT
Capistrano
PDF
[JCConf 2020] 用 Kotlin 跨入 Serverless 世代
PDF
Server Side Swift
PDF
State management in a GraphQL era
PDF
HTTPBuilder NG: Back From The Dead
KEY
What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...
PDF
Infrastructure = code - 1 year later
PDF
G* on GAE/J 挑戦編
PDF
Grails 1.4.0.M1 メモLT
PDF
PDF
Groovy Powered Clean Code
PDF
Puppet and Openshift
PDF
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
PDF
HTML5 tutorial: canvas, offfline & sockets
KEY
gunicorn introduction
PDF
Deploying Rails Apps with Chef and Capistrano
PDF
Practical Chef and Capistrano for Your Rails App
G*なクラウド ~雲のかなたに~
Getting Started with Capistrano
Designing net-aws-glacier
Capistrano
[JCConf 2020] 用 Kotlin 跨入 Serverless 世代
Server Side Swift
State management in a GraphQL era
HTTPBuilder NG: Back From The Dead
What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...
Infrastructure = code - 1 year later
G* on GAE/J 挑戦編
Grails 1.4.0.M1 メモLT
Groovy Powered Clean Code
Puppet and Openshift
Puppet Camp Düsseldorf 2014: Continuously Deliver Your Puppet Code with Jenki...
HTML5 tutorial: canvas, offfline & sockets
gunicorn introduction
Deploying Rails Apps with Chef and Capistrano
Practical Chef and Capistrano for Your Rails App
Ad

Similar to Tdc 2013 - Ecossistema Ruby (20)

PDF
Ecossistema Ruby - versão SCTI UNF 2013
PDF
Ecossistema Rails - IBTA 2014
PDF
Rupy 2013 - Hoje e Amanhã, Ruby & Rails
PPTX
Toolbox of a Ruby Team
PDF
Otimizando Aplicações em Rails
PPT
PDF
Introduction to Rails - presented by Arman Ortega
PDF
Building Mobile Friendly APIs in Rails
PDF
Ruby on Rails Kickstart 101 & 102
PDF
What's new in ruby on rails 4
PDF
Rails missing features
PDF
Web Development using Ruby on Rails
PPTX
Construindo APIs Usando Rails
PDF
Cloud Foundry Open Tour China (english)
PDF
Using Sinatra to Build REST APIs in Ruby
PPTX
What the rack
PDF
Basic Rails Training
PDF
TorqueBox for Rubyists
PPTX
Exploring Ruby on Rails and PostgreSQL
PDF
Rails and the Apache SOLR Search Engine
Ecossistema Ruby - versão SCTI UNF 2013
Ecossistema Rails - IBTA 2014
Rupy 2013 - Hoje e Amanhã, Ruby & Rails
Toolbox of a Ruby Team
Otimizando Aplicações em Rails
Introduction to Rails - presented by Arman Ortega
Building Mobile Friendly APIs in Rails
Ruby on Rails Kickstart 101 & 102
What's new in ruby on rails 4
Rails missing features
Web Development using Ruby on Rails
Construindo APIs Usando Rails
Cloud Foundry Open Tour China (english)
Using Sinatra to Build REST APIs in Ruby
What the rack
Basic Rails Training
TorqueBox for Rubyists
Exploring Ruby on Rails and PostgreSQL
Rails and the Apache SOLR Search Engine
Ad

More from Fabio Akita (20)

PDF
Devconf 2019 - São Carlos
PDF
Meetup Nerdzão - English Talk about Languages
PDF
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
PDF
Desmistificando Blockchains - 20o Encontro Locaweb SP
PDF
Desmistificando Blockchains - Insiter Goiania
PDF
Blockchain em 7 minutos - 7Masters
PDF
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
PDF
Desmistificando Mitos de Tech Startups - Intercon 2017
PDF
30 Days to Elixir and Crystal and Back to Ruby
PDF
Uma Discussão sobre a Carreira de TI
PDF
THE CONF - Opening Keynote
PDF
A Journey through New Languages - Rancho Dev 2017
PDF
Desmistificando Mitos de Startups - Sebrae - AP
PDF
A Journey through New Languages - Guru Sorocaba 2017
PDF
A Journey through New Languages - Insiter 2017
PDF
A Journey through New Languages - Locaweb Tech Day
PDF
A Journey through new Languages - Intercon 2016
PDF
Premature Optimization 2.0 - Intercon 2016
PDF
Conexão Kinghost - Otimização Prematura
PDF
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
Devconf 2019 - São Carlos
Meetup Nerdzão - English Talk about Languages
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - Insiter Goiania
Blockchain em 7 minutos - 7Masters
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Desmistificando Mitos de Tech Startups - Intercon 2017
30 Days to Elixir and Crystal and Back to Ruby
Uma Discussão sobre a Carreira de TI
THE CONF - Opening Keynote
A Journey through New Languages - Rancho Dev 2017
Desmistificando Mitos de Startups - Sebrae - AP
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Locaweb Tech Day
A Journey through new Languages - Intercon 2016
Premature Optimization 2.0 - Intercon 2016
Conexão Kinghost - Otimização Prematura
The Open Commerce Conference - Premature Optimisation: The Root of All Evil

Recently uploaded (20)

PPTX
Machine Learning_overview_presentation.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Big Data Technologies - Introduction.pptx
Machine Learning_overview_presentation.pptx
The AUB Centre for AI in Media Proposal.docx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Chapter 3 Spatial Domain Image Processing.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A Presentation on Artificial Intelligence
Review of recent advances in non-invasive hemoglobin estimation
Network Security Unit 5.pdf for BCA BBA.
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation_ Review paper, used for researhc scholars
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Machine learning based COVID-19 study performance prediction
Programs and apps: productivity, graphics, security and other tools
Unlocking AI with Model Context Protocol (MCP)
A comparative analysis of optical character recognition models for extracting...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Big Data Technologies - Introduction.pptx

Tdc 2013 - Ecossistema Ruby