SlideShare a Scribd company logo
Facebook App
                   in Scheme
                          Higepon
                  shibuya.lisp Tech Talk #7




2011   10   22
Higepon

                 • @higepon
                 • Mona OS
                  • http://www.monaos.org
                 • Mosh Scheme
                  • http://mosh.monaos.org

2011   10   22
Facbook App




2011   10   22
Facbook App




2011   10   22
http://lovamimi .com/

                 • Integrated with Facebook
                 • ja/en
                 • PC/iPhone/Android
                 • Written in Scheme

2011   10   22
Popular secrets

                 •




2011   10   22
Popular secrets
                 •




2011   10   22
Popular secrets

                 •




2011   10   22
Popular secrets
                 •
                     facebook




2011   10   22
Facebook App?


                 • Facebook Graph API
                 • Social Graph Data


2011   10   22
Facebook App?


                 • Facebook Graph API
                 • Social Graph Data


2011   10   22
2011   10   22
2011   10   22
Graph API

                 • Friends
                 • Name, Age, Phone number, Photo, Birthday
                 • Post, Likes, Checkin, Online Presence
                 • Work History, Message
                 • Offline Access, Publish Stream

2011   10   22
Wrote in Scheme

                 •
                     • 729 lines
                     • Mosh has facebook/cgi/template library
                 • 4 hours + coke = First version
                 • MySQL / Apache

2011   10   22
Advantage of
                 Scheme / Lisp


2011   10   22
2011   10   22
S-Exp

                 • Graph API returns JSON
                    • Not human readable!
                    • From JSON to S-Exp
                    • S-Exp is much easier to read and use

2011   10   22
Don’t use S-Exp for

                 • Data Storage
                  • MySQL is much better
                 • Template
                  • Can’t copy and paste
                  • Not everyone can read/write.

2011   10   22
Scheme way

                 • (call-with-cgi ...)
                 • (call-with-connection ...)
                 • i18n
                  • (parameterize ([lang ...])

2011   10   22
Summary

                 • Write your Facebook App in Scheme!
                 • Use Mosh
                  • facebook/cgi/template libraries


2011   10   22

More Related Content

Similar to Facebook App in Scheme Shibuya.Lisp tt#7 2011/10/22

20110117 lithium
20110117 lithium20110117 lithium
20110117 lithium
Yusuke Ando
 
Facebook Development for Beginners
Facebook Development for BeginnersFacebook Development for Beginners
Facebook Development for Beginners
Jesse Stay
 
EyeEM
EyeEMEyeEM
EyeEM
trueter
 
Facebook Developer Garage Toronto - Syncapse Presentation
Facebook Developer Garage Toronto - Syncapse PresentationFacebook Developer Garage Toronto - Syncapse Presentation
Facebook Developer Garage Toronto - Syncapse Presentation
Syncapse
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
FDConf
 
Making the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapMaking the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGap
Roy Clarkson
 
Enhancing SharePoint with Responsive Web Design
Enhancing SharePoint with Responsive Web DesignEnhancing SharePoint with Responsive Web Design
Enhancing SharePoint with Responsive Web Design
Eric Overfield
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGap
Ted Chien
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile apps
Alius Petraška
 
OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
Howard Greenberg
 
Mobile web volunteers
Mobile web volunteersMobile web volunteers
Mobile web volunteers
Devendra Shrikhande
 
What's New on the Facebook Platform, February 2012
What's New on the Facebook Platform, February 2012What's New on the Facebook Platform, February 2012
What's New on the Facebook Platform, February 2012
Iskandar Najmuddin
 
Get Social With Facebook
Get Social With FacebookGet Social With Facebook
Get Social With Facebook
Sondre Bjellås
 
Branding SharePoint for Evolving Internet Devices
Branding SharePoint for Evolving Internet DevicesBranding SharePoint for Evolving Internet Devices
Branding SharePoint for Evolving Internet Devices
Eric Overfield
 
Choosing Between Cross Platform of Native Development
Choosing	Between Cross Platform of Native DevelopmentChoosing	Between Cross Platform of Native Development
Choosing Between Cross Platform of Native Development
CodeOps Technologies LLP
 
GigMonkey Facebook Dev Garage July09
GigMonkey Facebook Dev Garage July09GigMonkey Facebook Dev Garage July09
GigMonkey Facebook Dev Garage July09
Sean O'Sullivan
 
Hybrid Mobile application
Hybrid Mobile applicationHybrid Mobile application
Hybrid Mobile application
Sanjay Patel
 
What's New on the Facebook Platform, January 2012
What's New on the Facebook Platform, January 2012What's New on the Facebook Platform, January 2012
What's New on the Facebook Platform, January 2012
Iskandar Najmuddin
 
Designing and delivering elearning in a multi-device world
Designing and delivering elearning in a multi-device worldDesigning and delivering elearning in a multi-device world
Designing and delivering elearning in a multi-device world
Kineo
 
Web 2.0 Revisited - Final project
Web 2.0 Revisited - Final projectWeb 2.0 Revisited - Final project
Web 2.0 Revisited - Final project
Wendy Lile
 

Similar to Facebook App in Scheme Shibuya.Lisp tt#7 2011/10/22 (20)

20110117 lithium
20110117 lithium20110117 lithium
20110117 lithium
 
Facebook Development for Beginners
Facebook Development for BeginnersFacebook Development for Beginners
Facebook Development for Beginners
 
EyeEM
EyeEMEyeEM
EyeEM
 
Facebook Developer Garage Toronto - Syncapse Presentation
Facebook Developer Garage Toronto - Syncapse PresentationFacebook Developer Garage Toronto - Syncapse Presentation
Facebook Developer Garage Toronto - Syncapse Presentation
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
 
Making the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGapMaking the Mobile Web Native with PhoneGap
Making the Mobile Web Native with PhoneGap
 
Enhancing SharePoint with Responsive Web Design
Enhancing SharePoint with Responsive Web DesignEnhancing SharePoint with Responsive Web Design
Enhancing SharePoint with Responsive Web Design
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGap
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile apps
 
OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
 
Mobile web volunteers
Mobile web volunteersMobile web volunteers
Mobile web volunteers
 
What's New on the Facebook Platform, February 2012
What's New on the Facebook Platform, February 2012What's New on the Facebook Platform, February 2012
What's New on the Facebook Platform, February 2012
 
Get Social With Facebook
Get Social With FacebookGet Social With Facebook
Get Social With Facebook
 
Branding SharePoint for Evolving Internet Devices
Branding SharePoint for Evolving Internet DevicesBranding SharePoint for Evolving Internet Devices
Branding SharePoint for Evolving Internet Devices
 
Choosing Between Cross Platform of Native Development
Choosing	Between Cross Platform of Native DevelopmentChoosing	Between Cross Platform of Native Development
Choosing Between Cross Platform of Native Development
 
GigMonkey Facebook Dev Garage July09
GigMonkey Facebook Dev Garage July09GigMonkey Facebook Dev Garage July09
GigMonkey Facebook Dev Garage July09
 
Hybrid Mobile application
Hybrid Mobile applicationHybrid Mobile application
Hybrid Mobile application
 
What's New on the Facebook Platform, January 2012
What's New on the Facebook Platform, January 2012What's New on the Facebook Platform, January 2012
What's New on the Facebook Platform, January 2012
 
Designing and delivering elearning in a multi-device world
Designing and delivering elearning in a multi-device worldDesigning and delivering elearning in a multi-device world
Designing and delivering elearning in a multi-device world
 
Web 2.0 Revisited - Final project
Web 2.0 Revisited - Final projectWeb 2.0 Revisited - Final project
Web 2.0 Revisited - Final project
 

Recently uploaded

"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
Tobias Schneck
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
leebarnesutopia
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
HarpalGohil4
 
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxAI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
Sunil Jagani
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
ScyllaDB
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 

Recently uploaded (20)

"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
 
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxAI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 

Facebook App in Scheme Shibuya.Lisp tt#7 2011/10/22

  • 1. Facebook App in Scheme Higepon shibuya.lisp Tech Talk #7 2011 10 22
  • 2. Higepon • @higepon • Mona OS • http://www.monaos.org • Mosh Scheme • http://mosh.monaos.org 2011 10 22
  • 5. http://lovamimi .com/ • Integrated with Facebook • ja/en • PC/iPhone/Android • Written in Scheme 2011 10 22
  • 6. Popular secrets • 2011 10 22
  • 7. Popular secrets • 2011 10 22
  • 8. Popular secrets • 2011 10 22
  • 9. Popular secrets • facebook 2011 10 22
  • 10. Facebook App? • Facebook Graph API • Social Graph Data 2011 10 22
  • 11. Facebook App? • Facebook Graph API • Social Graph Data 2011 10 22
  • 12. 2011 10 22
  • 13. 2011 10 22
  • 14. Graph API • Friends • Name, Age, Phone number, Photo, Birthday • Post, Likes, Checkin, Online Presence • Work History, Message • Offline Access, Publish Stream 2011 10 22
  • 15. Wrote in Scheme • • 729 lines • Mosh has facebook/cgi/template library • 4 hours + coke = First version • MySQL / Apache 2011 10 22
  • 16. Advantage of Scheme / Lisp 2011 10 22
  • 17. 2011 10 22
  • 18. S-Exp • Graph API returns JSON • Not human readable! • From JSON to S-Exp • S-Exp is much easier to read and use 2011 10 22
  • 19. Don’t use S-Exp for • Data Storage • MySQL is much better • Template • Can’t copy and paste • Not everyone can read/write. 2011 10 22
  • 20. Scheme way • (call-with-cgi ...) • (call-with-connection ...) • i18n • (parameterize ([lang ...]) 2011 10 22
  • 21. Summary • Write your Facebook App in Scheme! • Use Mosh • facebook/cgi/template libraries 2011 10 22