functional web development with git(hub), heroku and clojure
DESCRIPTION
Presentation from Atmosphere Conference in Poznan, Poland.TRANSCRIPT
Functional web development with Git(Hub),
Heroku and Clojure
Jacek Laskowski
Poznań, Polska, 13.05.2013
@JacekLaskowskiblog.japila.pl
Don’t forget a picture
Don’t forget a picture
Smile, please :-)
The Goal
Share a platform to develop your skills and have your work
available to the public
PLAYGROUND• GitHub
• Collaboration, review, and code management Platform
• Heroku• Cloud Application Platform
• Clojure• Functional Programming Language
Learnin’ andhaVin’ FUN!
Learnin’ andhaVin’ FUN!
Always!
Learnin’ andhaVin’ FUN!
Always!http://www.flickr.com/photos/lauraprevost83/
GitHub
My GitHub
My GitHub
My GitHub
My GitHub
My GitHub
My GitHub
How to GitHub
GitHub :: Watched Repositories
GitHub :: Notifications
GitHub :: Project page
GitHub :: Project Graphs
GitHub :: Project Contributions
Heroku
Heroku Dashboard
Heroku :: Librarian-Clojure
Heroku :: Project Activity
• Functional Programming Language• Pure functions...wherever
possible• Immutable data structures• Expressions
Clojure
Why Clojure (1)
• “Learn a new language every year” @PragProg
Why Clojure (1)
• “Learn a new language every year” @PragProg
• New (idioms)
Why Clojure (1)
• “Learn a new language every year” @PragProg
• New (idioms)• (Perhaps) cool
Why Clojure (1)
• “Learn a new language every year” @PragProg
• New (idioms)• (Perhaps) cool• Fresh (undoubtedly)
Why Clojure (1)
• “Learn a new language every year” @PragProg
• New (idioms)• (Perhaps) cool• Fresh (undoubtedly)• Java interop available
Why Clojure (1)
• “Learn a new language every year” @PragProg
• New (idioms)• (Perhaps) cool• Fresh (undoubtedly)• Java interop available• More?!
Why Clojure (1)
Why Clojure (2)
http://www.flickr.com/photos/karmaowl/
Why Clojure (2)
http://www.flickr.com/photos/karmaowl/
Why Clojure (2)
http://www.flickr.com/photos/karmaowl/
Functional web development
• Request = a map
Functional web development
• Request = a map• Request processing = a
function manipulating the map
Functional web development
“Functional” request
“Functional” response
“Functional” response
“Functional” response
Functional Librarian-Clojure
• 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
QuestionS?
Jacek Laskowski
Poznań, Polska, 13.05.2013
@JacekLaskowskiblog.japila.pl