Patterns in Types: Reader, Writer, State in Scala
Mark Hibberd, NICTA
Developers are often very good at spotting repetition in their programs at the value level, but for some reason struggle, or are reluctant to, apply that same careful analysis at the type level. This talk aims to build up an intuition for spotting when you can factor your types, examining what this gains you, and looking at the practicalities for doing so in Scala. We will use an example of building out a simple web stack using reader, writer and state. The code demonstrated is based closely on a tried and tested purely functional web stack currently in production.
For appropriate buzz-word compliance during this talk you will see scalaz, monads, monad transformers, data types, type classes and laws.
Beating some sense into Android's API
Alexander Hennecke, Atlassian
After getting over the epic fact of a phone running a JVM on Linux, Android's API quickly gets us back to reality: Casting galore, things may be null, stuff breaks in interesting ways if you don't follow the convention outlined in the docs. A Java dev quickly drops frameworks on it, replacing the pain with new pain, but Scala gives us the power to beat things into a better shape on our own. I'll present some code and ideas I've come up with to show what's possible.
Declan Conlon, Atlassian
A small and (possibly) simple example of using type-level programming to create a declarative API for command-line option parsing.