SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
What I did on my
vacation
  {   Spawnfest!
   48 hours

       #erlang

       Other legalese




Spawnfest
   “Crowd-sourcing the Sourcing of crowds”




Erlymob
   Flash-mobs

       Activism

       “Quick notice” meetups




Erlymob
Thriller "Monster Dance", 6:30pm today -->
          https://maps.google.com/maps?ll=40.731129,-73.985581




Erlymob
#mobA313f




Erlymob
Thriller "Monster Dance", 6:30pm today




Erlymob
I Like it!




          I Ignore it!




           I'll Do it!




Erlymob
Team
Net_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 diving




Team Net_Split
   Who scheduled dinner?

       Your flight is when?

       But I like diving

       Oh right, my wife is also part of this vacation




Team Net_Split
The best laid schemes o’ mice an’ men
     Gang aft agley




Evolution (in reverse)
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                  geocouc
r_tree_        user_loc       post_dis                                                                                               r_tree_
                                                                                     h_proces
manager          ator         tributor         tributor_         le                                           h_table                manager
                                                                                       sor
                                                 table




post_r_t                      user_pro                                                      geocouc                                  user_r_t
  ree                           cess                                                           h                                       ree
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




                                                mnesia
r_tree_        user_loc       post_dis         post_dis                                                                        r_tree_
manager          ator         tributor         tributor_                                                                       manager
                                                 table




post_r_t                      user_pro                                                                                         user_r_t
  ree                           cess                                                                                             ree
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_
                                                 table




post_r_t                      user_pro                                                                                         user_r_t
  ree                           cess                                                                                             ree
   R-Trees




What got dropped
   R-Trees

       Notifications




What got dropped
   R-Trees

       Notifications

       Web-sockets




What got dropped
   R-Trees

       Notifications

       Web-sockets

       2nd persistence layer




What got dropped
 app_cache :
    https://github.com/dieswaytoofast/app_cache

    Mnesia-based persistence and caching




Serendipity
app_cache - definitions
app_cache - init
app_cache - accessors
app_cache - sequences
app_cache - transforms
 Inspired by :
    https://github.com/jcomellas/mlapi




app_cache
 twitterl :
    https://github.com/dieswaytoofast/twitterl




Twitter API
REST& Streaming APIs
Erlang-world
Targets
process_request/4               safe_call/4




                               Requestor                 Processor
                                                                      TWEET
                                                     spawn




                                                         Handler



                  Response                           Tweet



                                                             Parser




twitterl
 Inspired by :
     https://github.com/ngerakines/erlang_twitter




twitterl
   Chicago BOSS is not for n00bs




Who knew?
   Chicago BOSS is not for n00bs

      Implementing O-Auth is Teh Sux0r




Who knew?
   Chicago BOSS is not for n00bs

      Implementing O-Auth is Teh Sux0r

      Strings =/= Binaries




Who knew?
   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 Karma




Who knew?

Weitere ähnliche Inhalte

Kürzlich hochgeladen

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 

Kürzlich hochgeladen (20)

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 

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

  • 1. What I did on my vacation { Spawnfest!
  • 2.
  • 3. 48 hours  #erlang  Other legalese Spawnfest
  • 4. “Crowd-sourcing the Sourcing of crowds” Erlymob
  • 5. Flash-mobs  Activism  “Quick notice” meetups Erlymob
  • 6.
  • 7. Thriller "Monster Dance", 6:30pm today --> https://maps.google.com/maps?ll=40.731129,-73.985581 Erlymob
  • 9. Thriller "Monster Dance", 6:30pm today Erlymob
  • 10. I Like it! I Ignore it! I'll Do it! Erlymob
  • 11.
  • 13. Who scheduled dinner for Saturday evening? Team Net_Split
  • 14. Who scheduled dinner? Team Net_Split
  • 15. Your flight is when? Team Net_Split
  • 16.
  • 17. But I like diving Team Net_Split
  • 18.
  • 19. Who scheduled dinner?  Your flight is when?  But I like diving  Oh right, my wife is also part of this vacation Team Net_Split
  • 20.
  • 21. The best laid schemes o’ mice an’ men Gang aft agley Evolution (in reverse)
  • 22. 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 geocouc r_tree_ user_loc post_dis r_tree_ h_proces manager ator tributor tributor_ le h_table manager sor table post_r_t user_pro geocouc user_r_t ree cess h ree
  • 23. 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 mnesia r_tree_ user_loc post_dis post_dis r_tree_ manager ator tributor tributor_ manager table post_r_t user_pro user_r_t ree cess ree
  • 24. 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_ table post_r_t user_pro user_r_t ree cess ree
  • 25. R-Trees What got dropped
  • 26. R-Trees  Notifications What got dropped
  • 27. R-Trees  Notifications  Web-sockets What got dropped
  • 28. R-Trees  Notifications  Web-sockets  2nd persistence layer What got dropped
  • 29.  app_cache : https://github.com/dieswaytoofast/app_cache Mnesia-based persistence and caching Serendipity
  • 35.  Inspired by : https://github.com/jcomellas/mlapi app_cache
  • 36.  twitterl : https://github.com/dieswaytoofast/twitterl Twitter API
  • 40. process_request/4 safe_call/4 Requestor Processor TWEET spawn Handler Response Tweet Parser twitterl
  • 41.  Inspired by : https://github.com/ngerakines/erlang_twitter twitterl
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55. Chicago BOSS is not for n00bs Who knew?
  • 56. Chicago BOSS is not for n00bs  Implementing O-Auth is Teh Sux0r Who knew?
  • 57. Chicago BOSS is not for n00bs  Implementing O-Auth is Teh Sux0r  Strings =/= Binaries Who knew?
  • 58. 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 Karma Who knew?