What I did on myvacation  {   Spawnfest!
   48 hours       #erlang       Other legaleseSpawnfest
   “Crowd-sourcing the Sourcing of crowds”Erlymob
   Flash-mobs       Activism       “Quick notice” meetupsErlymob
Thriller "Monster Dance", 6:30pm today -->          https://maps.google.com/maps?ll=40.731129,-73.985581Erlymob
#mobA313fErlymob
Thriller "Monster Dance", 6:30pm todayErlymob
I Like it!          I Ignore it!           Ill Do it!Erlymob
TeamNet_Split
   Who scheduled dinner for Saturday evening?Team Net_Split
   Who scheduled dinner?Team Net_Split
   Your flight is when?Team Net_Split
   But I like divingTeam Net_Split
   Who scheduled dinner?       Your flight is when?       But I like diving       Oh right, my wife is also part of th...
The best laid schemes o’ mice an’ men     Gang aft agleyEvolution (in reverse)
What We Planned           Incoming Posts   Sent on same Node Sent across Nodes   Notification Only     Consults       Sent ...
What We Hoped For           Incoming Posts   Sent on same Node Sent across Nodes   Notification Only   Consults   Sent acro...
What We Got           Incoming Posts   Sent on same Node Sent across Nodes   Notification Only   Consults   Sent across All...
   R-TreesWhat got dropped
   R-Trees       NotificationsWhat got dropped
   R-Trees       Notifications       Web-socketsWhat got dropped
   R-Trees       Notifications       Web-sockets       2nd persistence layerWhat got dropped
 app_cache :    https://github.com/dieswaytoofast/app_cache    Mnesia-based persistence and cachingSerendipity
app_cache - definitions
app_cache - init
app_cache - accessors
app_cache - sequences
app_cache - transforms
 Inspired by :    https://github.com/jcomellas/mlapiapp_cache
 twitterl :    https://github.com/dieswaytoofast/twitterlTwitter API
REST& Streaming APIs
Erlang-world
Targets
process_request/4               safe_call/4                               Requestor                 Processor             ...
 Inspired by :     https://github.com/ngerakines/erlang_twittertwitterl
   Chicago BOSS is not for n00bsWho knew?
   Chicago BOSS is not for n00bs      Implementing O-Auth is Teh Sux0rWho knew?
   Chicago BOSS is not for n00bs      Implementing O-Auth is Teh Sux0r      Strings =/= BinariesWho knew?
   Chicago BOSS is not for n00bs      Implementing O-Auth is Teh Sux0r      Strings =/= Binaries      if =/= if      ...
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
What I did on my Vacation (hint: Scuba & Erlang)
Upcoming SlideShare
Loading in …5
×

What I did on my Vacation (hint: Scuba & Erlang)

1,336 views

Published on

Our Spawnfest2012 entry was ridiculously ambitious - a 'social' application involving real-time data-streams, R-trees, heaping doses of OTP goodness including gen_fsm, gen_server, gen_event, and much much more. Because this wasn't challenging enough, our three team-members were from three different countries, making both our application *and* the development distributed!

Join me as I take you through our SpawnFest experience in all its glory (or infamy). Find out what worked, what features got tossed, and what failed miserably - and why.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

What I did on my Vacation (hint: Scuba & Erlang)

  1. 1. What I did on myvacation { Spawnfest!
  2. 2.  48 hours  #erlang  Other legaleseSpawnfest
  3. 3.  “Crowd-sourcing the Sourcing of crowds”Erlymob
  4. 4.  Flash-mobs  Activism  “Quick notice” meetupsErlymob
  5. 5. Thriller "Monster Dance", 6:30pm today --> https://maps.google.com/maps?ll=40.731129,-73.985581Erlymob
  6. 6. #mobA313fErlymob
  7. 7. Thriller "Monster Dance", 6:30pm todayErlymob
  8. 8. I Like it! I Ignore it! Ill Do it!Erlymob
  9. 9. TeamNet_Split
  10. 10.  Who scheduled dinner for Saturday evening?Team Net_Split
  11. 11.  Who scheduled dinner?Team Net_Split
  12. 12.  Your flight is when?Team Net_Split
  13. 13.  But I like divingTeam Net_Split
  14. 14.  Who scheduled dinner?  Your flight is when?  But I like diving  Oh right, my wife is also part of this vacationTeam Net_Split
  15. 15. The best laid schemes o’ mice an’ men Gang aft agleyEvolution (in reverse)
  16. 16. What We Planned Incoming Posts Sent on same Node Sent across Nodes Notification Only Consults Sent across All Nodes Incoming User Locations twitter_r cowboy eceiver mnesia post_rec user_tab user_rec eiver le eiver mnesia mnesia mnesia_ post_dis post_tab geocouc geocoucr_tree_ user_loc post_dis r_tree_ h_procesmanager ator tributor tributor_ le h_table manager sor tablepost_r_t user_pro geocouc user_r_t ree cess h ree
  17. 17. What We Hoped For Incoming Posts Sent on same Node Sent across Nodes Notification Only Consults Sent across All Nodes Incoming User Locations twitter_r cowboy eceiver mnesia post_rec user_tab user_rec eiver le eiver mnesiar_tree_ user_loc post_dis post_dis r_tree_manager ator tributor tributor_ manager tablepost_r_t user_pro user_r_t ree cess ree
  18. 18. What We Got Incoming Posts Sent on same Node Sent across Nodes Notification Only Consults Sent across All Nodes Incoming User Locations twitter_r cowboy eceiver mnesia post_rec user_tab user_rec eiver le eiver mnesia post_dis post_dis tributor tributor_ tablepost_r_t user_pro user_r_t ree cess ree
  19. 19.  R-TreesWhat got dropped
  20. 20.  R-Trees  NotificationsWhat got dropped
  21. 21.  R-Trees  Notifications  Web-socketsWhat got dropped
  22. 22.  R-Trees  Notifications  Web-sockets  2nd persistence layerWhat got dropped
  23. 23.  app_cache : https://github.com/dieswaytoofast/app_cache Mnesia-based persistence and cachingSerendipity
  24. 24. app_cache - definitions
  25. 25. app_cache - init
  26. 26. app_cache - accessors
  27. 27. app_cache - sequences
  28. 28. app_cache - transforms
  29. 29.  Inspired by : https://github.com/jcomellas/mlapiapp_cache
  30. 30.  twitterl : https://github.com/dieswaytoofast/twitterlTwitter API
  31. 31. REST& Streaming APIs
  32. 32. Erlang-world
  33. 33. Targets
  34. 34. process_request/4 safe_call/4 Requestor Processor TWEET spawn Handler Response Tweet Parsertwitterl
  35. 35.  Inspired by : https://github.com/ngerakines/erlang_twittertwitterl
  36. 36.  Chicago BOSS is not for n00bsWho knew?
  37. 37.  Chicago BOSS is not for n00bs  Implementing O-Auth is Teh Sux0rWho knew?
  38. 38.  Chicago BOSS is not for n00bs  Implementing O-Auth is Teh Sux0r  Strings =/= BinariesWho knew?
  39. 39.  Chicago BOSS is not for n00bs  Implementing O-Auth is Teh Sux0r  Strings =/= Binaries  if =/= if  Syntax is Easy, Semantics not so much  Immutable Variables  Instant KarmaWho knew?

×