ruby can haz everyone
DESCRIPTION
Talk about how to get involved in the ruby community and start patching and writing gemsTRANSCRIPT
Ruby Can HazEVERYONE!
Mikel Lindsaar
@raasdnil
Friday, 22 April 2011
Working in Rails & Ruby for 5+ Years
Author of Mail, maintain TMail
Rails Committer
Entrepreneur
http://rubyx.com/
http://stillalive.com/
Friday, 22 April 2011
Example of StillAlive.com
Full stack production monitoring for your app
Friday, 22 April 2011
Ruby Wants You
Friday, 22 April 2011
MINSWANMatz is nice, so we are nice
Friday, 22 April 2011
Scratch Your Own Itch
Friday, 22 April 2011
Write a library
Patch a library
How do I start?
Friday, 22 April 2011
Patch a Library
Friday, 22 April 2011
Fork on GitHub
6 Steps to Patch
Write a failing test case
Push to your fork
Send a pull request
Clone
Run the tests { Fix the code }
Friday, 22 April 2011
Fork
Friday, 22 April 2011
Fork
Friday, 22 April 2011
Clone
Friday, 22 April 2011
Clone
Friday, 22 April 2011
Write a Failing Test Case
Friday, 22 April 2011
Write a Failing Test Case
Friday, 22 April 2011
Fix the Code
Friday, 22 April 2011
Fix the Code
Friday, 22 April 2011
Run the tests
Make it greener than you started
Multiple Rubies?
Friday, 22 April 2011
Push to your fork
Don’t push changes to the version
Detailed commit message
Friday, 22 April 2011
Send a Pull Request
Friday, 22 April 2011
Send a Pull Request
Friday, 22 April 2011
Profit
Friday, 22 April 2011
Write a Library
Friday, 22 April 2011
README Driven Dev
Friday, 22 April 2011
README Driven Dev
Friday, 22 April 2011
README Driven Dev
tom.preston-werner.com
2010/08/23/readme-driven-development.html
Google “README Driven Development”
Friday, 22 April 2011
Write your Wish List
Friday, 22 April 2011
Write your Wish List
Friday, 22 April 2011
Friday, 22 April 2011
Friday, 22 April 2011
Research as Needed
Friday, 22 April 2011
RFCs
Research as Needed
Friday, 22 April 2011
RFCs
Research as Needed
Friday, 22 April 2011
Setup Your Gem
Read http://docs.rubygems.org/read/book/7
Get your tests failing
Create a simple directory structure
Friday, 22 April 2011
Simple Gem Creation
You don’t need no tools
Builds a gem skeleton with ruby
http://github.com/rubyx/nugget
$ ruby -s <(curl -s https://github.com/rubyx/nugget/raw/master/install.rb)
Friday, 22 April 2011
More on Nugget
http://github.com/rubyx/nugget
Need to do lots of things to get started
Lowers barrier to entry to release a gem
5 minutes => Nothing to published on rubygems
Friday, 22 April 2011
Nugget File Structure
Friday, 22 April 2011
Nugget Patches Wanted
http://github.com/rubyx/nugget
Add test unit support
Rails gem support?
Make it a gem
Friday, 22 April 2011
Test First Development
I use RSpec because I am lazy and forget stuff
EVERYTHING in Mail is BDD
Regressions Caught
Seriously - do it
Friday, 22 April 2011
Testing for Libraries
Comments in Spec Files are OK
Use Custom Matchers
Break Down Your Spec Files
Start Simple
Spec in Multiple Rubies
Friday, 22 April 2011
Start Somewhere
Friday, 22 April 2011
Start Somewhere
Friday, 22 April 2011
Start Simple
Friday, 22 April 2011
Start Simple
Friday, 22 April 2011
Comments are OK
Friday, 22 April 2011
Comments are OK
Friday, 22 April 2011
Use Custom Matcherswhen appropriate
Friday, 22 April 2011
Use Custom Matcherswhen appropriate
Friday, 22 April 2011
Use Custom Matcherswhen appropriate
Friday, 22 April 2011
Use Custom Matcherswhen appropriate
Friday, 22 April 2011
Break Down Spec Files
Friday, 22 April 2011
Break Down Spec Files26 Sub Directories
79 Ruby Spec Files
73 Edge Case Emails
Many Many Lines of Specs
1,289 examples
No Failures :)
Friday, 22 April 2011
Spec in Multiple Rubies
MRI - 1.8.7, 1.9.2
JRuby
REE
Have to be a good Ruby Citizen
Rubinius
Friday, 22 April 2011
Devil is in the Detail
Friday, 22 April 2011
Devil is in the Detail
And Thats It!
Simple Hey?
Friday, 22 April 2011
Devil is in the Detail
And Thats It!
Simple Hey?
Parsers
Network
SMTP
POP3
IMAP
Pattern MatchingEdge Cases
SPAM
AttachmentsFile IO
Observers Status Reports
Mbox
Encoding
Decoding
Bad Emails
Inline Attachments
Interceptors
Delivery Agents
Body Decoding
Language SupportSendmail Delivery
PGP Signing
Domain Key EmailsOMGMIME!
File Types
Legacy Emailsrfc822
Header Errors
Friday, 22 April 2011
Listen to your Users
Friday, 22 April 2011
Listen to your Users(but not blindly)
Friday, 22 April 2011
Listen to your Users(but not blindly)
Friday, 22 April 2011
Have Good Specs
Friday, 22 April 2011
Encourage Participation
Clear “How to Test” Instructions
Clear “How to Contribute” Instructions
Modular Design
MIT License
Mail has 53 contributors
Friday, 22 April 2011
Release Often
Friday, 22 April 2011
@raasdnil
I can fix thiz: http://netherregionoftheearthii.blogspot.com/2010_04_18_archive.htmlVideo Cat: http://www.coolfunnycats.com/?p=1954
Repair Cat: http://www.mike2.com/category/animals/cats/page/4/All Other Cats: http://icanhascheezburger.com/
Questions?
StillAlive.comRubyX.com
We are hiring!
Mikel Lindsaar
Friday, 22 April 2011
Friday, 22 April 2011