SlideShare a Scribd company logo
1 of 101
Download to read offline
Rails
@a_matsuda
✴Intro
✴Rails Development
✴Social Coding
✴10 Pro Tips
self.inspect

✴name: Akira Matsuda
✴Twitter: @a_matsuda
✴GitHub: amatsuda
A Rails programmer
Rails3 Recipe Book
OMG Timetable
Seattle.rb
RubyGems
“Writing Friendly
  Libraries” !!!
RubyKaigi Eric Hodel
✴ Intro


✴Rails Development
✴ Social Coding

✴ 10 Pro Tips
Who does Rails
Development?
Rails development
Rails app development


✴Ride on someone else’s “rails”
Rails app development

 I’m not gonna talk
   about that Rails
development today
Rails app development
Developing “rails”


✴“rails” for yourself
✴“rails” for everyone
Developing “rails”


✴Developing Rails plugins
✴Developing Rails
Rails Development
✴There are 3 types of Rails
 development
✴One (that you do everyday) is
 not so fun
✴Other two are fun
✴ Intro

✴ Rails Development


✴Social Coding
✴ 10 Pro Tips
To develop “rails”


Is to write a software
    not just for you
To write a software
      not just for you

✴You need to Communicate
✴That’s called “Social Coding”
Social Coding

To code is not just to speak to
    your computer, but to
communicate with the people
           behind it
Social Coding
Get yourself involved in
     Social Coding
  The way to be a
    member of
 “The Community”
“The Community”
“The Community”
is not in this Island
Each of these are
        “a community”
✴      Ruby
✴Asakusa.rb
✴Seattle.rb
✴...
“The Community”
       ==
  “The World”
“The community”


✴A community that people
 communicate in Ruby code
Let’s get out of here

Code Ruby, and be a
    member of
 “The community”
✴ Intro

✴ Rails Development

✴ Social Coding


✴10 Pro Tips
Pro tip: to become a
 great Social Coder
Pro Tip #1


Read Rails
Read
   `git log`
every morning
Firstly

✴% brew install hub
✴% function git(){hub "$@"}
✴% alias g='git'
Firstly


% g clone rails/rails
Every morning


✴% g pull
✴% g log (diff)
This will tell you:


✴What Rails 3.2 / 4.0 will be like
✴Who’s actually creating Rails
Who’s actually creating
          Rails

  You see, so many
people are committing
You will notice:

Not only the core team
 but WE are creating
        Rails!
This will teach you:

✴How to improve a product
✴How to test a software
✴How to write a good comment
Pro Tip #2


Know the people
Reading git log will tell you


✴Who’s remarkable
Remarkable people

✴Stalk them online
✴GitHub
✴Twitter
✴Blog
BTW

You can actually meet and talk
 to the 3 topmost remarkable
      people here today
@tenderlove
@wycats
@carllerche
Pro Tip #3


Imitate good commits
A good commit
✴Atomic
✴With tests
✴With a short commit comment
 telling
  • What
  • Why
Do it in *your* project


✴in English, of course
Pro Tip #4


English
Why are you scared?

✴We had been learning English
 for 6 years
✴We’re speaking Ruby everyday
✴There are only 26 letters
✴Know these 26 letters
✴Aware of the accents
Watch Railscasts
Pro Tip #5


Live on the edge
edge is fun

✴As you’re reading edge every
 day,
✴Can’t wait to try these great new
 features until stable release
Just bundle it


✴gem 'rails', :path => '~/src/rails'
Yes, Bundler! <3 <3 <3
Pro Tip #6


Contribute to the
 documentation
docrails


% git clone lifo/docrails
docrails

A special Rails fork just
   for contributing
documentations via GH
Rules
✴Anyone can commit
✴No code. Documentations only
 (guides / code comments)
✴Commit to master branch
 directly
Let’s start with a minimal
       contribution
For example,


             “s/a/an/g”
https://github.com/rails/rails/commit/90887cb
Anyone can do this if
he/she knows how to
   use grep & sed
Pro Tip #7


  Share your
monkey patches
Push it to the upstream
That’s the absolute way
  to make the world
        happier.
✴local monkey patch =>
 makes only your app better
✴push your patch =>
 makes the whole world better
Lonely Monkey Patches




        Rails
Social Monkeys




    Rails
Stop writing
“how to workaround”
  on your rubbishy
   H tena blog
Push the patch instead
Please.
fork Rails, push, and
 send a pull request
Pro Tip #8


Start from a gem
not only using edge
       Rails,
  use edge Gem
% gem up
% bundle update
 for your health
% gem i [any gem] --pre

is also a good challenge
add a feature
      x a bug
request for a feature
Gems I wrote patches for


 https://github.com/
      amatsuda
Pro Tip #9


Write a good README
Kaminari
Pro Tip #10


Attend RailsConf
RailsConf
✴Everyone you see in the `git log`
 is there
✴Meet your Rails heroes
✴For a Rails otaku, RailsConf
 would be far more exciting than
 RubyConf
One more thing
Pro Tip #11


Write a book
You will nd tons of
  bugs, typos and
 incompatibilities
So you can x them


  that’s called
BDD

   Book
   Driven
Development
B-D-D!


No, I’m not talking
 about “VDD”...
Summary

Code Ruby socially and
get yourself involved in
   “the community”
Conclusion


“The community”
  awaits YOU!
Thank you!

More Related Content

What's hot

The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
Prasid Pathak
 
GiordanoArman-Technicaldescription (1)
GiordanoArman-Technicaldescription (1)GiordanoArman-Technicaldescription (1)
GiordanoArman-Technicaldescription (1)
Giordano Arman
 
Web development meetingup
Web development meetingupWeb development meetingup
Web development meetingup
PiTechnologies
 

What's hot (20)

The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...
 
Target anything wilth body classes!
Target anything wilth body classes!Target anything wilth body classes!
Target anything wilth body classes!
 
Full-Stack Development
Full-Stack DevelopmentFull-Stack Development
Full-Stack Development
 
Building native mobile Apps with ReactNative
Building native mobile Apps with ReactNative Building native mobile Apps with ReactNative
Building native mobile Apps with ReactNative
 
How to survive the JavaScript apocalypse
How to survive the JavaScript apocalypseHow to survive the JavaScript apocalypse
How to survive the JavaScript apocalypse
 
The Once And Future Script Loader (v1)
The Once And Future Script Loader (v1)The Once And Future Script Loader (v1)
The Once And Future Script Loader (v1)
 
רועי פלד
רועי פלדרועי פלד
רועי פלד
 
Fixing web and JS gaps
Fixing web and JS gapsFixing web and JS gaps
Fixing web and JS gaps
 
GiordanoArman-Technicaldescription (1)
GiordanoArman-Technicaldescription (1)GiordanoArman-Technicaldescription (1)
GiordanoArman-Technicaldescription (1)
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCore
 
Inheriting iOS code
Inheriting iOS codeInheriting iOS code
Inheriting iOS code
 
Robust Web APIs with node.js and Express
Robust Web APIs with node.js and ExpressRobust Web APIs with node.js and Express
Robust Web APIs with node.js and Express
 
Save your social energy with windows live
Save your social energy with windows liveSave your social energy with windows live
Save your social energy with windows live
 
Full stack-web-design
Full stack-web-designFull stack-web-design
Full stack-web-design
 
Looking for a place to hang my helmet
Looking for a place to hang my helmetLooking for a place to hang my helmet
Looking for a place to hang my helmet
 
SxSW 2015
SxSW 2015SxSW 2015
SxSW 2015
 
PhoneGap in a Day
PhoneGap in a DayPhoneGap in a Day
PhoneGap in a Day
 
Ajax for PHP Developers
Ajax for PHP DevelopersAjax for PHP Developers
Ajax for PHP Developers
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynote
 
Web development meetingup
Web development meetingupWeb development meetingup
Web development meetingup
 

Viewers also liked

Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方
Takahiro Fujiwara
 
Agile Shibuya github_enterprise
Agile Shibuya github_enterpriseAgile Shibuya github_enterprise
Agile Shibuya github_enterprise
Koichiro Ohba
 

Viewers also liked (20)

Railsエコシステムの研究
Railsエコシステムの研究Railsエコシステムの研究
Railsエコシステムの研究
 
100915 HTML5とか勉強会発表資料
100915 HTML5とか勉強会発表資料100915 HTML5とか勉強会発表資料
100915 HTML5とか勉強会発表資料
 
VCSクエスト
VCSクエストVCSクエスト
VCSクエスト
 
Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方Pythonとgit hubとベンチャー企業の上手な付き合い方
Pythonとgit hubとベンチャー企業の上手な付き合い方
 
Agile Shibuya github_enterprise
Agile Shibuya github_enterpriseAgile Shibuya github_enterprise
Agile Shibuya github_enterprise
 
Github of project
Github of projectGithub of project
Github of project
 
Asakusa.rb Rocks!
Asakusa.rb Rocks!Asakusa.rb Rocks!
Asakusa.rb Rocks!
 
Rails 3.1 "wiki_mode"
Rails 3.1 "wiki_mode"Rails 3.1 "wiki_mode"
Rails 3.1 "wiki_mode"
 
Asakusa.rb設立のお知らせ
Asakusa.rb設立のお知らせAsakusa.rb設立のお知らせ
Asakusa.rb設立のお知らせ
 
Ruby in the World, and Rails in Japan
Ruby in the World, and Rails in JapanRuby in the World, and Rails in Japan
Ruby in the World, and Rails in Japan
 
100.times { Asakusa.rb.meetup! }
100.times { Asakusa.rb.meetup! }100.times { Asakusa.rb.meetup! }
100.times { Asakusa.rb.meetup! }
 
New Wave of Database Programming with Ruby 1.9 on Rails 2.1
New Wave of Database Programming  with Ruby 1.9 on Rails 2.1New Wave of Database Programming  with Ruby 1.9 on Rails 2.1
New Wave of Database Programming with Ruby 1.9 on Rails 2.1
 
i18n_generatorsのご紹介
i18n_generatorsのご紹介i18n_generatorsのご紹介
i18n_generatorsのご紹介
 
Rails 3のはなし
Rails 3のはなしRails 3のはなし
Rails 3のはなし
 
「その他」のUI Framework 3選
「その他」のUI Framework 3選「その他」のUI Framework 3選
「その他」のUI Framework 3選
 
p2pネットワーク
p2pネットワークp2pネットワーク
p2pネットワーク
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用
 
NIPS 2016 Overview and Deep Learning Topics
NIPS 2016 Overview and Deep Learning Topics  NIPS 2016 Overview and Deep Learning Topics
NIPS 2016 Overview and Deep Learning Topics
 
Uncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game TheoryUncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game Theory
 

Similar to Rails Development That Doesn't Hurt

Frugal Web Development
Frugal Web DevelopmentFrugal Web Development
Frugal Web Development
tcottrill
 

Similar to Rails Development That Doesn't Hurt (20)

Vim 讓你寫 Ruby 的速度飛起來
Vim 讓你寫 Ruby 的速度飛起來Vim 讓你寫 Ruby 的速度飛起來
Vim 讓你寫 Ruby 的速度飛起來
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
 
Intro to Rails
Intro to RailsIntro to Rails
Intro to Rails
 
API-First Design and Django
API-First Design and DjangoAPI-First Design and Django
API-First Design and Django
 
Girl develop It Orlando HTML Remix
Girl develop It Orlando HTML RemixGirl develop It Orlando HTML Remix
Girl develop It Orlando HTML Remix
 
Community and Github: 7/27/2011
Community and Github: 7/27/2011Community and Github: 7/27/2011
Community and Github: 7/27/2011
 
RoR (Ruby on Rails)
RoR (Ruby on Rails)RoR (Ruby on Rails)
RoR (Ruby on Rails)
 
Hack Rio/OS
Hack Rio/OSHack Rio/OS
Hack Rio/OS
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
How to Teach Yourself to Code
How to Teach Yourself to CodeHow to Teach Yourself to Code
How to Teach Yourself to Code
 
Front End Sadness to Happiness: The React on Rails Story
Front End Sadness to Happiness: The React on Rails StoryFront End Sadness to Happiness: The React on Rails Story
Front End Sadness to Happiness: The React on Rails Story
 
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB GalaxyMongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
MongoDB World 2019: Don't Panic - The Hitchhiker's Guide to the MongoDB Galaxy
 
Finding Frank - Spotify API.pdf
Finding Frank - Spotify API.pdfFinding Frank - Spotify API.pdf
Finding Frank - Spotify API.pdf
 
Make your app idea a reality with Ruby On Rails
Make your app idea a reality with Ruby On RailsMake your app idea a reality with Ruby On Rails
Make your app idea a reality with Ruby On Rails
 
Frugal Web Development
Frugal Web DevelopmentFrugal Web Development
Frugal Web Development
 
Beyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionBeyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in Production
 
Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015
 
Contribute to rails
Contribute to railsContribute to rails
Contribute to rails
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
 
Mind Your lang — Accessibility Camp Toronto 2016
Mind Your lang — Accessibility Camp Toronto 2016Mind Your lang — Accessibility Camp Toronto 2016
Mind Your lang — Accessibility Camp Toronto 2016
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

Rails Development That Doesn't Hurt