You	
  May	
  Also	
  Be	
  Interested	
  In:
                          Implemen'ng	
  User	
  Recommenda'ons	
  in	
  Rai...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
AllSimplePaths	
  &	
  ShortestPath
                          (Who	
  do	
  we	
  follow	
  on	
  Twiber	
  in	
  common)
...
Thursday, June 10, 2010
AllSimplePaths	
  &	
  ShortestPath
                          (Who	
  do	
  we	
  follow	
  on	
  Twiber	
  in	
  common)
...
Dijkstra
                          (Who	
  do	
  we	
  follow	
  on	
  Twiber	
  in	
  common	
  -­‐	
  on	
  steroids)


...
Closeness	
  Centrality
                              (Who	
  has	
  the	
  most	
  followers	
  on	
  Twiber)




Thursda...
Betweenness	
  Centrality
                              (Who	
  has	
  more	
  influen;al	
  people	
  following	
  them	
 ...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
Eigenvector	
  Centrality
                                    (PageRank)




Thursday, June 10, 2010
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
Metadata



                          Person                                     Project
                                 ...
Metadata



                          Person                                     Project
                                 ...
Breadth or Depth




Thursday, June 10, 2010
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
NoSQL	
  	
  AugmentaBon
                                          Solr




                                        RDBMS
...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
theagiledeveloper.com	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
Upcoming SlideShare
Loading in …5
×

You Might Also Like: Implementing User Recommendations in Rails

8,778 views

Published on

The social trend in the industry has shifted users’ expectations to highly personalized experiences, presenting them with only personally relevant information. This presentation should arm you with the skills to make your system more intelligent and the arsenal of designs and tools to do it with.

To introduce the basics we will discuss how to implement very familiar recommendations like LinkedIn’s degrees of separation, Facebook’s friend suggestions & smart news feeds, and Amazon’s product recommendations. Also personal experiences from real world rails projects will be shared to better understand issues with performance, scale and limitations to certain tools. At the end of 45 minutes you will walk away with the ability to implement personalized recommendations in your app by understanding:

* How to discover relationships in your data

* Effectively model these relationships to infer personalized recommendations

* Successful patterns for incorporate these recommendations in your rails application

Published in: Technology
0 Comments
17 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,778
On SlideShare
0
From Embeds
0
Number of Embeds
2,387
Actions
Shares
0
Downloads
118
Comments
0
Likes
17
Embeds 0
No embeds

No notes for slide

You Might Also Like: Implementing User Recommendations in Rails

  1. You  May  Also  Be  Interested  In: Implemen'ng  User  Recommenda'ons  in  Rails Ma#hew  Deiters theagiledeveloper.com Thursday, June 10, 2010
  2. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Thursday, June 10, 2010
  3. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Thursday, June 10, 2010
  4. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters How  do  they  do  that? Thursday, June 10, 2010
  5. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters think  about  our  data  in   new  ways Thursday, June 10, 2010
  6. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Understand  the  tools  to  do   something  interesBng Thursday, June 10, 2010
  7. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Use  those  tools  in  your   Rails  applicaBon Thursday, June 10, 2010
  8. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters "Everything  should  be  made  as  simple  as   possible,  but  not  simpler."   -­‐  Albert  Einstein Thursday, June 10, 2010
  9. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Thursday, June 10, 2010
  10. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters CreaBve  RevoluBon the  Golden  Age  of  Adver;sing Thursday, June 10, 2010
  11. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Their  vision  of  consuming  life  had  liIle  to  do  with   actual  experience  of  American  consumers Thursday, June 10, 2010
  12. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters An  Academic  approach “Adver;sers  followed  the  wishes  of  conserva;ve  corporate  clients,  who  wanted  the  safe,  “scien;fc”  adver;sing Thursday, June 10, 2010
  13. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Technology  Changed & Approach  Changed Thursday, June 10, 2010
  14. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters In  the  late  40’s,  only  .05%  of  Americans  had  a  TV End  of  50’s,  sBll  only  about  50% 5  years  later  in  1962,  90%  of  Americans  had  a  TV Thursday, June 10, 2010
  15. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Audience  SegmentaBon Adver;sing  was  comfortable  “Male  dominated”  “academic”  approach Thursday, June 10, 2010
  16. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters SimilariBes  in  Web   Development  Today Thursday, June 10, 2010
  17. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters NoSQL Dynamic  Languages Thursday, June 10, 2010
  18. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters We’ve  been  doing  CRUD  for  30  years boring  for  us  and  the  user Thursday, June 10, 2010
  19. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Our  CreaBve  RevoluBon How  can  we  change  our  approach Thursday, June 10, 2010
  20. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters RecommendaBons  =  Money Amazon  is  reportedly  making  ~25%  of   25% sales  on  personalized  suggesBons Net  sales  are  at  $7.13  billion  in  the  first  quarter   Jan-­‐Mar  2010  -­‐  roughly  2  billion  in  3  months 75% Thursday, June 10, 2010
  21. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters RecommendaBons  =  Traffic #1  &  #2  –  StumbleUpon's  rank  among  social  media  traffic  sources  in  the  US. 118%  -­‐  the  growth  in  acBve  users  since  2009. Almost  10  Million  registered  users 400  –  average  number  of  Bmes  a  user  stumbles  per  month. Thursday, June 10, 2010
  22. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Discovering  the  relaBonships  in  your  data Modeling  the  relaBonships Using  graphs  in  your  Rails  App Thursday, June 10, 2010
  23. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters President Obama ”The greatest thing about Facebook, is that you can quote something and totally make up the source.” - George Washington Dick Cheney Precious John Adams lol...so true Thursday, June 10, 2010
  24. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters President Obama ”The greatest thing about Facebook, is that you can quote something and totally make up the source.” - George Washington Dick Cheney Precious John Adams lol...so true Thursday, June 10, 2010
  25. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters http://www.hackdiary.com/2010/02/10/algorithmic-recruitment-with-github/ Thursday, June 10, 2010
  26. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Social  Networking Content Website  AnalyBcs PredicBve  Analysis Thursday, June 10, 2010
  27. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Discovering  the  relaBonships  in  your  data Modeling  the  relaBonships Using  graphs  in  your  Rails  App Thursday, June 10, 2010
  28. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters RelaBonal  Databases  !=  works SQL  is  set  based Thursday, June 10, 2010
  29. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Lady Gaga Kevin Bacon Thursday, June 10, 2010
  30. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Lady Gaga Kevin Bacon Thursday, June 10, 2010
  31. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Example:  Finding  2  degrees  away  for  a  user  in  SQL -­‐  100  people  executes  in  0.01  sec -­‐  1000  people  executes  in  0.1  sec   -­‐  4000  people  executes  in  17.78  sec   -­‐  60K  over  an  hour Thursday, June 10, 2010
  32. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters SQL  Smell 2  degrees more  then  2  degrees SELECT b FROM ( WITH RECURSIVE transitive_closure(a, b, distance, path_string) AS WITH RECURSIVE transitive_closure(a, b, distance, path_string) AS ( SELECT a, b, 1 AS distance, ( SELECT a, b, 1 AS distance, a || '.' || b || '.' AS path_string a || '.' || b || '.' AS path_string, FROM edges2 b AS direct_connection WHERE a = 1 -- set the starting node FROM edges2   WHERE a = 1 -- set the starting node UNION ALL     UNION ALL SELECT tc.a, e.b, tc.distance + 1,   tc.path_string || e.b || '.' AS path_string SELECT tc.a, e.b, tc.distance + 1, FROM edges2 AS e tc.path_string || e.b || '.' AS path_string, JOIN transitive_closure AS tc ON e.a = tc.b tc.direct_connection WHERE tc.path_string NOT LIKE '%' || e.b || '.%' FROM edges2 AS e AND tc.distance = 0 JOIN transitive_closure AS tc ON e.a = tc.b ) WHERE tc.path_string NOT LIKE '%' || e.b || '.%' SELECT b FROM transitive_closure AND tc.distance < 3 UNION ALL ) (WITH RECURSIVE transitive_closure(a, b, distance, path_string) AS SELECT * FROM transitive_closure ( SELECT a, b, 1 AS distance, a || '.' || b || '.' AS path_string --WHERE b=3 -- set the target node FROM edges2 ORDER BY a,b,distance WHERE a = 4 -- set the target node   UNION ALL   SELECT tc.a, e.b, tc.distance + 1, tc.path_string || e.b || '.' AS path_string FROM edges2 AS e JOIN transitive_closure AS tc ON e.a = tc.b WHERE tc.path_string NOT LIKE '%' || e.b || '.%' AND tc.distance = 0 ) SELECT b FROM transitive_closure )) AS immediate_connections GROUP BY b HAVING COUNT(b) > 1; Courtsey of http://techportal.ibuildings.com/2009/09/07/graphs-in-the-database-sql-meets-social-networks/ Thursday, June 10, 2010
  33. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters How  is  Luke  connected  to  Princess  Leah? First Last 1 Luke Skywalker 2 Darth Vader 3 Princess Leah Thursday, June 10, 2010
  34. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters How  is  Luke  connected  to  Princess  Leah? First Last 1 Luke Skywalker 2 Darth Vader 3 Princess Leah Thursday, June 10, 2010
  35. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters How  is  Luke  connected  to  Princess  Leah? First Last 1 Luke Skywalker 2 Darth Vader 3 Princess Leah Thursday, June 10, 2010
  36. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Graphs Rela;onships  are  a  First  Class  Ci;zen  just  like  the  data First Last 1 Luke Skywalker Father 2 Darth Vader Father 3 Princess Leah Thursday, June 10, 2010
  37. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Rows  Nodes First Last 1 Luke Skywalker Node Father Point 2 Darth Vader Actor Father Vertex 3 Princess Leah Thursday, June 10, 2010
  38. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Edges First Last 1 Luke Skywalker Edge Father Rela;onship 2 Darth Vader Arc Father Link 3 Princess Leah Thursday, June 10, 2010
  39. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Less  complex,  100%  natural Luke Darth Princess Thursday, June 10, 2010
  40. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Discovering  the  relaBonships  in  your  data Modeling  the  relaBonships Using  graphs  in  your  Rails  App Thursday, June 10, 2010
  41. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters In  Memory  Ruby  Graph Great  for  small  staBc  datasets  or  ad  hoc  querying Thursday, June 10, 2010
  42. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters RGL Rails App RGL or BackroundRB Rails App RGL Thursday, June 10, 2010
  43. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters # http://github.com/fmeyer/rgl require 'rubygems' require 'rgl/adjacency' require 'rgl/dot' graph = RGL::DirectedAdjacencyGraph.new graph.add_edge 'mary', 'john' graph.add_edge 'mary', 'henery' graph.add_edge 'john', 'frank' graph.add_edge 'frank', 'henery' # Use DOT to visualize this graph: # http://graphviz.org/Download_macos.php graph.write_to_graphic_file('jpg') `open graph.jpg` Thursday, June 10, 2010
  44. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters 20,000  nodes  and  1  million  edges  =  300  MB Thursday, June 10, 2010
  45. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Persistence  &  Dynamic  Data Thursday, June 10, 2010
  46. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Neo4j Thursday, June 10, 2010
  47. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Neo4j.rb Rails App Neo4j Neo4j.rb Lucene Thursday, June 10, 2010
  48. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters class Person include Neo4j::NodeMixin property :name has_n :friends end Neo4j.start Neo4j::Transaction.run do andreas = Person.new :name => 'andreas' john = Person.new :name => 'John', :age => 30 andreas.friends << john end Thursday, June 10, 2010
  49. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Neo4jr-­‐social More  REST,  Less  Java Rails App RDBMS Neo4jr-social Neo4j Solr Lucene Memcache Thursday, June 10, 2010
  50. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Neo4jr-­‐social The  SOLR  of  Graphs  (uses  Neo4jr-­‐simple) #> sudo gem install neo4jr-social #> start-neo4jr-social Thursday, June 10, 2010
  51. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters No  JRuby  Required Packaged  as  self-­‐contained  jeIy  webserver Deployable  WAR Focused  on  SNA Basic  Built  in  Querying Extensible  ~/.neo4jr-­‐social Thursday, June 10, 2010
  52. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Facebook’s  Friend  SuggesBons Demo Johnathan Thursday, June 10, 2010
  53. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters LinkedIn’s  Degrees  of  SeparaBon Demo Johnathan Thursday, June 10, 2010
  54. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters http://wiki.github.com/tinkerpop/gremlin/ Thursday, June 10, 2010
  55. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters SQL Graphs  (Neo4j) Assembly  Required Works  out  of  the  Box Thursday, June 10, 2010
  56. AllSimplePaths  &  ShortestPath (Who  do  we  follow  on  Twiber  in  common) Thursday, June 10, 2010
  57. Thursday, June 10, 2010
  58. AllSimplePaths  &  ShortestPath (Who  do  we  follow  on  Twiber  in  common) Thursday, June 10, 2010
  59. Dijkstra (Who  do  we  follow  on  Twiber  in  common  -­‐  on  steroids) score: 20 score: 5 score: 5 score: 5 score: 5 score: 5 score: 10 score: 10 Thursday, June 10, 2010
  60. Closeness  Centrality (Who  has  the  most  followers  on  Twiber) Thursday, June 10, 2010
  61. Betweenness  Centrality (Who  has  more  influen;al  people  following  them  on  Twiber) http://www.stoweboyd.com/message/its-betweenness-that-matters-not-your-eigenvalue-the-dark-ma.html Thursday, June 10, 2010
  62. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters http://www.hackdiary.com/2010/02/10/algorithmic-recruitment-with-github/ Thursday, June 10, 2010
  63. Eigenvector  Centrality (PageRank) Thursday, June 10, 2010
  64. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Performance Thursday, June 10, 2010
  65. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Sparse  vs  Dense Thursday, June 10, 2010
  66. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Thursday, June 10, 2010
  67. Metadata Person Project started_on => 'Jan 1 2010' finished_on => 'Jan 7 2010' hours => 40 type => 'worked_on' Thursday, June 10, 2010
  68. Metadata Person Project started_on => 1265639038 finished_on => 1266243897 hours => 40 type => 'worked_on_reorg' Thursday, June 10, 2010
  69. Breadth or Depth Thursday, June 10, 2010
  70. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters What  Next... Thursday, June 10, 2010
  71. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Inspired  to  think  about   your  data  in  new  ways Thursday, June 10, 2010
  72. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Graphs Understand  the  tools  to  do  something   interes;ng  with  it Thursday, June 10, 2010
  73. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Use  these  tools  in  your   Rails  applicaBon Thursday, June 10, 2010
  74. NoSQL    AugmentaBon Solr RDBMS Application Neo4j Lucene Memcache Thursday, June 10, 2010
  75. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters CreaBve  RevoluBon Thursday, June 10, 2010
  76. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters QuesBons? Thursday, June 10, 2010
  77. theagiledeveloper.com                                                                                                                                                                                                                          @mdeiters Links •h#p://gist.github.com/431000 •h#p://github.com/andreasronge/neo4j •h#p://github.com/mdeiters/neo4jr-­‐simple •h#p://github.com/mdeiters/neo4jr-­‐social •h#p://www.hackdiary.com/2010/02/10/algorithmic-­‐recruitment-­‐with-­‐github/ •h#p://techportal.ibuildings.com/2009/09/07/graphs-­‐in-­‐the-­‐database-­‐sql-­‐meets-­‐social-­‐networks/ Thursday, June 10, 2010

×