├── .gitignore ├── .hindent.yaml ├── src ├── listings │ ├── yesod-demo │ │ ├── templates │ │ │ ├── homepage.julius │ │ │ ├── homepage.lucius │ │ │ ├── default-layout.lucius │ │ │ ├── homepage.hamlet │ │ │ ├── article.hamlet │ │ │ ├── article.lucius │ │ │ ├── article-with-form.lucius │ │ │ ├── article-with-form.hamlet │ │ │ ├── default-layout.hamlet │ │ │ └── default-layout-wrapper.hamlet │ │ ├── config │ │ │ ├── test-settings.yml │ │ │ ├── robots.txt │ │ │ ├── favicon.ico │ │ │ ├── routes │ │ │ ├── settings.yml │ │ │ └── keter.yml │ │ ├── test │ │ │ ├── Spec.hs │ │ │ ├── Handler │ │ │ │ └── CommonSpec.hs │ │ │ └── TestImport.hs │ │ ├── app │ │ │ ├── main.hs │ │ │ ├── devel.hs │ │ │ └── DevelMain.hs │ │ ├── src │ │ │ ├── Import.hs │ │ │ ├── Import │ │ │ │ └── NoFoundation.hs │ │ │ ├── Article.hs │ │ │ ├── Handler │ │ │ │ ├── Common.hs │ │ │ │ └── Home.hs │ │ │ ├── Settings │ │ │ │ └── StaticFiles.hs │ │ │ ├── Settings.hs │ │ │ ├── Application.hs │ │ │ └── Foundation.hs │ │ ├── static │ │ │ └── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.svg │ │ ├── .gitignore │ │ ├── README.md │ │ ├── stack.yaml │ │ └── package.yaml │ ├── airship-demo │ │ ├── .gitignore │ │ ├── Setup.hs │ │ ├── ChangeLog.md │ │ ├── airship-demo.cabal │ │ ├── src │ │ │ └── Main.hs │ │ └── LICENSE │ └── scotty-demo │ │ ├── Setup.hs │ │ ├── .gitignore │ │ ├── scotty-demo.cabal │ │ ├── stack.yaml │ │ ├── src │ │ └── Scotty.hs │ │ └── LICENSE ├── brain.png ├── haskell.png ├── tokens.jpeg ├── mpowered.png ├── mwa-logo.png ├── notes.tex ├── yesod-form.png ├── yesod-home.png ├── lucid-hello.png ├── yesod-article.png ├── customizations.tex └── slides.md ├── slides ├── slides.pdf └── slides-handouts.pdf ├── README.md ├── Makefile └── outline.org /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /.hindent.yaml: -------------------------------------------------------------------------------- 1 | indent-size: 2 2 | line-length: 60 3 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/templates/homepage.julius: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/templates/homepage.lucius: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/listings/airship-demo/.gitignore: -------------------------------------------------------------------------------- 1 | dist-newstyle 2 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/config/test-settings.yml: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/templates/default-layout.lucius: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/config/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | -------------------------------------------------------------------------------- /src/listings/airship-demo/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /src/listings/scotty-demo/Setup.hs: -------------------------------------------------------------------------------- 1 | import Distribution.Simple 2 | main = defaultMain 3 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/test/Spec.hs: -------------------------------------------------------------------------------- 1 | {-# OPTIONS_GHC -F -pgmF hspec-discover #-} 2 | -------------------------------------------------------------------------------- /src/brain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/brain.png -------------------------------------------------------------------------------- /src/haskell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/haskell.png -------------------------------------------------------------------------------- /src/tokens.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/tokens.jpeg -------------------------------------------------------------------------------- /slides/slides.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/slides/slides.pdf -------------------------------------------------------------------------------- /src/mpowered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/mpowered.png -------------------------------------------------------------------------------- /src/mwa-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/mwa-logo.png -------------------------------------------------------------------------------- /src/notes.tex: -------------------------------------------------------------------------------- 1 | \setbeameroption{show notes on second screen} 2 | \setbeamertemplate{note page}{\pagecolor{yellow!8}\insertnote} 3 | -------------------------------------------------------------------------------- /src/yesod-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/yesod-form.png -------------------------------------------------------------------------------- /src/yesod-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/yesod-home.png -------------------------------------------------------------------------------- /src/listings/yesod-demo/app/main.hs: -------------------------------------------------------------------------------- 1 | import Prelude (IO) 2 | import Application (appMain) 3 | 4 | main :: IO () 5 | main = appMain 6 | -------------------------------------------------------------------------------- /src/lucid-hello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/lucid-hello.png -------------------------------------------------------------------------------- /src/yesod-article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/yesod-article.png -------------------------------------------------------------------------------- /src/listings/scotty-demo/.gitignore: -------------------------------------------------------------------------------- 1 | .cabal-sandbox 2 | cabal.sandbox.config 3 | dist 4 | dist-newstyle 5 | cabal.project.local 6 | .stack-work 7 | -------------------------------------------------------------------------------- /slides/slides-handouts.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/slides/slides-handouts.pdf -------------------------------------------------------------------------------- /src/listings/airship-demo/ChangeLog.md: -------------------------------------------------------------------------------- 1 | # Revision history for airship-demo 2 | 3 | ## 0.1.0.0 -- YYYY-mm-dd 4 | 5 | * First version. Released on an unsuspecting world. 6 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/config/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/owickstrom/fast-and-fearless-evolution-of-server-side-webapps/HEAD/src/listings/yesod-demo/config/favicon.ico -------------------------------------------------------------------------------- /src/listings/yesod-demo/app/devel.hs: -------------------------------------------------------------------------------- 1 | {-# LANGUAGE PackageImports #-} 2 | import "yesod-demo" Application (develMain) 3 | import Prelude (IO) 4 | 5 | main :: IO () 6 | main = develMain 7 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/src/Import.hs: -------------------------------------------------------------------------------- 1 | module Import 2 | ( module Import 3 | ) where 4 | 5 | import Foundation as Import 6 | import Import.NoFoundation as Import 7 | -------------------------------------------------------------------------------- /src/listings/yesod-demo/templates/homepage.hamlet: -------------------------------------------------------------------------------- 1 |

My Blog 2 |