functional web development with git(hub), heroku and clojure
DESCRIPTION
Presentation from Atmosphere Conference in Poznan, Poland.TRANSCRIPT
![Page 1: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/1.jpg)
Functional web development with Git(Hub),
Heroku and Clojure
Jacek Laskowski
Poznań, Polska, 13.05.2013
@JacekLaskowskiblog.japila.pl
![Page 2: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/2.jpg)
Don’t forget a picture
![Page 3: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/3.jpg)
Don’t forget a picture
Smile, please :-)
![Page 4: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/4.jpg)
The Goal
Share a platform to develop your skills and have your work
available to the public
![Page 5: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/5.jpg)
PLAYGROUND• GitHub
• Collaboration, review, and code management Platform
• Heroku• Cloud Application Platform
• Clojure• Functional Programming Language
![Page 6: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/6.jpg)
Learnin’ andhaVin’ FUN!
![Page 7: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/7.jpg)
Learnin’ andhaVin’ FUN!
Always!
![Page 8: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/8.jpg)
Learnin’ andhaVin’ FUN!
Always!http://www.flickr.com/photos/lauraprevost83/
![Page 9: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/9.jpg)
GitHub
![Page 10: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/10.jpg)
My GitHub
![Page 11: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/11.jpg)
My GitHub
![Page 12: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/12.jpg)
My GitHub
![Page 13: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/13.jpg)
My GitHub
![Page 14: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/14.jpg)
My GitHub
![Page 15: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/15.jpg)
My GitHub
![Page 16: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/16.jpg)
How to GitHub
![Page 17: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/17.jpg)
GitHub :: Watched Repositories
![Page 18: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/18.jpg)
GitHub :: Notifications
![Page 19: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/19.jpg)
GitHub :: Project page
![Page 20: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/20.jpg)
GitHub :: Project Graphs
![Page 21: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/21.jpg)
GitHub :: Project Contributions
![Page 22: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/22.jpg)
Heroku
![Page 23: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/23.jpg)
Heroku Dashboard
![Page 24: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/24.jpg)
Heroku :: Librarian-Clojure
![Page 25: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/25.jpg)
Heroku :: Project Activity
![Page 26: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/26.jpg)
• Functional Programming Language• Pure functions...wherever
possible• Immutable data structures• Expressions
Clojure
![Page 27: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/27.jpg)
Why Clojure (1)
![Page 28: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/28.jpg)
• “Learn a new language every year” @PragProg
Why Clojure (1)
![Page 29: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/29.jpg)
• “Learn a new language every year” @PragProg
• New (idioms)
Why Clojure (1)
![Page 30: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/30.jpg)
• “Learn a new language every year” @PragProg
• New (idioms)• (Perhaps) cool
Why Clojure (1)
![Page 31: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/31.jpg)
• “Learn a new language every year” @PragProg
• New (idioms)• (Perhaps) cool• Fresh (undoubtedly)
Why Clojure (1)
![Page 32: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/32.jpg)
• “Learn a new language every year” @PragProg
• New (idioms)• (Perhaps) cool• Fresh (undoubtedly)• Java interop available
Why Clojure (1)
![Page 33: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/33.jpg)
• “Learn a new language every year” @PragProg
• New (idioms)• (Perhaps) cool• Fresh (undoubtedly)• Java interop available• More?!
Why Clojure (1)
![Page 34: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/34.jpg)
Why Clojure (2)
http://www.flickr.com/photos/karmaowl/
![Page 35: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/35.jpg)
Why Clojure (2)
http://www.flickr.com/photos/karmaowl/
![Page 36: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/36.jpg)
Why Clojure (2)
http://www.flickr.com/photos/karmaowl/
![Page 37: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/37.jpg)
Functional web development
![Page 38: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/38.jpg)
• Request = a map
Functional web development
![Page 39: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/39.jpg)
• Request = a map• Request processing = a
function manipulating the map
Functional web development
![Page 40: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/40.jpg)
“Functional” request
![Page 42: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/42.jpg)
“Functional” response
![Page 43: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/43.jpg)
“Functional” response
![Page 44: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/44.jpg)
“Functional” response
![Page 45: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/45.jpg)
Functional Librarian-Clojure
![Page 46: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/46.jpg)
• Dynamic web applications with Clojure and Ring - part 1http://jaceklaskowski.pl/wiki/Dynamic_web_applications_with_Clojure_and_Ring_-_part_1
• Clojure w aplikacji webowej z Compojure oraz Ring i Hiccuphttp://jaceklaskowski.pl/wiki/Clojure_w_aplikacji_webowej_z_Compojure_oraz_Ring_i_Hiccup
http://jaceklaskowski.pl/wiki
![Page 47: Functional web development with Git(Hub), Heroku and Clojure](https://reader034.vdocuments.mx/reader034/viewer/2022051210/54ba798e4a7959cc5a8b4638/html5/thumbnails/47.jpg)
QuestionS?
Jacek Laskowski
Poznań, Polska, 13.05.2013
@JacekLaskowskiblog.japila.pl