As given at Scotland On Rails 2008.
(note: the highlighting and layering hasn't come through so well in Slideshares conversion process. I'll probably put a version to download from my site to solve this)
2. HAZ HACKF
EST
This Talk
I CAN
Overview The Scene Strategy
Popularity RUBY1
Contests vs Launch
Authority
Features Performance Stats
http://flickr.com/photos/intangiblyawesome/12593056/
48. Putting it together
Sources
Wiki
Newsgroup
http://flickr.com/photos/laffy4k/166300185/
49. Putting it together
Extract
Sources
Wiki
Newsgroup
http://flickr.com/photos/laffy4k/166300185/
50. Putting it together
Extract
Map
Sources and
Combine
Wiki
Newsgroup
http://flickr.com/photos/laffy4k/166300185/
51. Putting it together
Rails
Models
Extract
Map
Sources and
Combine
Wiki
Newsgroup
http://flickr.com/photos/laffy4k/166300185/
52. Putting it together
Rails New Interface
Models
Extract
Map Display
Sources and Filter
Combine
Manage
Wiki
Newsgroup
http://flickr.com/photos/laffy4k/166300185/
53. Principles
create a web application to...
• Improve the usability and accessibility of the
content.
• Increase reliability - give back control and
ownership to the individuals whose
information is being displayed
• Add value
54. Early Concept
Text
Early proof of concept wireframe design
57. Hey, I didn’t give you permission to
copy my data!
http://flickr.com/photos/dvusd/2213212393/
58. But...
• No need for people to enter their details
again. (DRY)
• Great kick start - site looks active before
any users had really started using it
• Users got a chance to see how it worked
straight away
• Data already in public domain
Cover the bases : Have an opt-out for users
59. Add Value
• Additional profile information e.g.
• How long have you been using Rails?
• How long have you been using Ruby?
• Rails Core contributor
Added extra attributes to profiles that
created new data streams
e.g. rank by authority
60. Management
Give as much freedom as a Wiki using a structured database.
Give control and ownership to the individuals
whose information is being displayed
How?
61. Reporting
• Needed side effect
• Self policing
http://flickr.com/photos/chrisjohnbeckett/442682895/
82. 1st Iteration
• Set (limited) scope of project
• Knocked together a basic proof of concept.
• Scraping and validity, versioning of the data
extracted.
• Dev work in 2 - 3 Days
• Put out a version to get feedback from the
community.
84. “So this is basically a
facebook for hiring?
Looks cool.” - DHH
Flickr Credit: http://www.flickr.com/photos/rooreynolds/243058018/
85. Release Strategy
• Ask DHH
• Notify Ruby Inside
• Send mail out to initial beta testers
• Post Announce on Rails newsgroup
86. Release Strategy
Continued...
• Released on a Thursday
• End of week - People are more open to
trying things out.
• Released in the AM (before America went
online)
• Any issues could be ironed out before
the larger rush of folks
87. Ruby Inside
Nov 17th 2006
http://www.rubyinside.com/worlds-largest-index-of-rails-developers-workingwithrails-launches-303.html
88. Ruby on Rails Weblog
Text
http://weblog.rubyonrails.org/2006/12/3/working-with-rails-tell-the-world
89. Keeping Track
http://flickr.com/photos/andropolis/
• Direct emails
1121113459/
• Technorati
• Google Stats (referrers)
• Google & Google Blog Search
103. Authority, Popularity, and Experience are
metrics by which to compare Rails
developers.
It’s up to the visitor to decide what weighting
they give to them.
112. Generation
• Chart Scheduler (background daemon)
• Uses OpenWFEru scheduler gem
• Generates a RankSet and ranks for a given
set of votes
Summary
Votes fetched at Midnight
Ranks generated once a day at 8am http://openwferu.rubyforge.org/scheduler.html
113. Generation
• Chart Scheduler (background daemon)
• Uses OpenWFEru scheduler gem
• Generates a RankSet and ranks for a given
set of votes
Summary
Votes fetched at Midnight
Ranks generated once a day at 8am http://openwferu.rubyforge.org/scheduler.html
114. Has Many Charts?
Overall Popularity | Blog Popularity | Code
Popularity | Training Popularity | Speaking Popularity
| Publications Popularity | Overall Activity |
Hackfest 2007 | Rails Activity Weekly | Rails Activity
Monthly | Rails Activity Yearly | Monthly: June 2007 |
Monthly: July 2007 | Monthly: August 2007 |
Monthly: September 2007
Uses STI: Chart::Contribution, Chart::Base
115. How many records?
*this figure is actually now much higher so these figures will be even higher!
116. How many records?
• 12 Charts
*this figure is actually now much higher so these figures will be even higher!
117. How many records?
• 12 Charts
• 10,000 users*
*this figure is actually now much higher so these figures will be even higher!
118. How many records?
• 12 Charts
• 10,000 users*
• 12 * 10, 000 = 120000 votes a day
*this figure is actually now much higher so these figures will be even higher!
119. How many records?
• 12 Charts
• 10,000 users*
• 12 * 10, 000 = 120000 votes a day
• 12 * 10, 000 = 120000 ranks a day
*this figure is actually now much higher so these figures will be even higher!
120. How many records?
• 12 Charts
• 10,000 users*
• 12 * 10, 000 = 120000 votes a day
• 12 * 10, 000 = 120000 ranks a day
• 240,000 records generated a day
*this figure is actually now much higher so these figures will be even higher!
121. How many records?
• 12 Charts
• 10,000 users*
• 12 * 10, 000 = 120000 votes a day
• 12 * 10, 000 = 120000 ranks a day
• 240,000 records generated a day
• 1,680,000 a week
*this figure is actually now much higher so these figures will be even higher!
122. How many records?
• 12 Charts
• 10,000 users*
• 12 * 10, 000 = 120000 votes a day
• 12 * 10, 000 = 120000 ranks a day
• 240,000 records generated a day
• 1,680,000 a week
• 50,400,000 a month
*this figure is actually now much higher so these figures will be even higher!
124. Lots of records
what to watch out for?
• (Careful) Indexing
125. Lots of records
what to watch out for?
• (Careful) Indexing
• Archiving
126. Lots of records
what to watch out for?
• (Careful) Indexing
• Archiving
• Joins
127. Benefits
• Versatile - can rank pretty much anything
• Ability to scale
• Keeps vote and rank history
128. Feature after Feature
• Busy few months
• Groups, Sites, Gems, Plugins... Hackfests, lots
of updates
129. Development Strategy
• Short iterations of developments
• Mainly FDD
• Try out features in branches
• Used Edge Rails to stay ahead of the game
• SVK is your friend*
* the cooler kids now use git
130. Enter the Blogsphere
The WWR Feed Aggregator
http://www.slideshare.net/martinbtt/getting-distributed-with-ruby-on-rails/
131. Enter the Blogsphere
The WWR Feed Aggregator
http://www.slideshare.net/martinbtt/getting-distributed-with-ruby-on-rails/
In Summary
132. Enter the Blogsphere
The WWR Feed Aggregator
http://www.slideshare.net/martinbtt/getting-distributed-with-ruby-on-rails/
In Summary
Uses AP4R gem async messaging
Distributed fetching and processing of feeds
133. Behind the scenes
• STI for many of the resources
• Global filters for all
• Custom filters available for specific
resources
135. Performance
• Typically 8 db queries per page
• fragment caching for long running tasks
• extensive use of db query cache
• optimised queries - indexes etc
• lots of ram
• avoid db joins where possible
138. Adoption of Rails
amongst users
1.0
0.5
This chart was created by tallying up the number of people using Rails based on when they said they
started using Rails on WWR
Rails 0.5 and 1.0 release dates are also shown for reference
139. Adoption of Rails
amongst users
1.0
0.5
Old skool After
Fan Boys?!
Rubists party
This chart was created by tallying up the number of people using Rails based on when they said they
started using Rails on WWR
Rails 0.5 and 1.0 release dates are also shown for reference
140. Adoption of Rails
amongst users
1.0
0.5
Text
Trend shows steady growth
148. Where next?
(For Rails)
• Corporate experimentation with Rails. These
have largely started to pay off and large scale
developments are starting to happen.
• A heap of books for new developers to pick
up and learn.
• Rails matures
149. Where next?
(For Rails)
• Corporate experimentation with Rails. These
have largely started to pay off and large scale
developments are starting to happen.
• A heap of books for new developers to pick
up and learn.
• Rails matures
Big name companies using Rails
http://blog.obiefernandez.com/content/2008/03/big-name-compan.html
158. The site's usage is continuing to grow - the number of
visitors is now roughly double what it was 6 months ago.
O’Reilly will be continuing it’s support through
the rest of 2008
New features coming soon...