Most people have heard of ENSIME by now as the go-to mode for Scala editing in Emacs. This alone is quite awesome, but what you may *not* know is that ENSIME itself is entirely editor agnostic! This talk will briefly cover ENSIME, what it offers, how it works, how we talk to it, and what it means for you.
by Miles Sabin
Generic (aka polytypic) programming involves parametrizing programs in terms of the "shape" of the data types they operate on, going beyond what's possible with simple type parametrization. In the Haskell world it's exemplified by Scrap your Boilerplate and related projects.
shapeless is an exploration of this space in Scala, and my talk shows some of its capabilities and applications and also explains some of the type class and dependent type based implementation techniques involved.
by Andrew McCallum
Martin Odersky didn't initially expect Scala to find a following in the field of machine learning because of machine learning's large appetite for memory and numeric computation. But the field is expanding in new ways, with interest in parallel and distributed computation, dynamically changing model structures, and the desire to put easy-to-use DSLs into the hands of non-experts. This talk will describe these trends and discuss several machine learning projects that use Scala, including FACTORIE, a 30k-line DSL for graphical models whose development is being sponsored by Google and the NSF.
by Seth Tisue
Beginner-friendly talk introducing the concept of “typeclasses”. What are these “typeclass” things Scala people are always talking about? Where did they come from? How are they expressed in Scala? Are they in the Scala standard library? When might I want to use them instead of other kinds of polymorphism such as inheritance and overloading? (reprise of talk previously delivered at Boston Scala)
by Dean Wampler
Apache Hadoop is the current darling of the "Big Data" world. Most Hadoop Applications are written in the low-level Java API or high-level languages like Hive (a SQL dialect). I examine how OOP and Java thinking is impacting the effectiveness of Hadoop, both the internals and the way you write applications. Using Scala examples from tools like Scrunch, Spark, and others, I demonstrate why functional programming is the way to improve internal efficiency and developer productivity. Finally, I look at the potential future role for Scala in Big Data.
by Runar Oli
Even simpler than the Cake Pattern, more flexible than Guice, and more powerful than Spring, the ultimate tool in dependency injection is already built into Scala.
If web interaction is this century's version of running water, Unfiltered is a set of Scala pipes and wrenches that work with everything from Tomcat to Netty.
This talk will walk through the options for integrating Unfiltered with application servers big and small, old and new, before performing some live-plumbing for an NE Scala web service using the toolkit. (We'll do our best not to flood the conference hall.)
Asynchronous and non-Blocking network frameworks have become a big deal: tools like node.js and BlueEyes have set the pattern for new projects.
Many Scala developers don't understand these approaches though. In this talk I'll introduce Async/Non-Blocking IO and demonstrate both Netty & Raw NIO – and discuss strengths and weaknesses of each.
We'll also discuss patterns and concepts around this: The use of callbacks, Either[E, T] to pass errors, implicit tricks to simplify them and even the Iteratee pattern.
spray (www.spray.cc) is a suite of lightweight Scala libraries for building and consuming RESTful web services on top of Akka.
In this talk I'll show you how spray makes it easy to supply your Scala applications with a high-performance, fully asynchronous REST/HTTP API, no matter whether Akka is already a key component in your application stack or not. The talk will briefly highlight the design goals and key concepts behind spray before showing off one or more real-world examples as well as emerging best-practices with regard to architecture and development process.
by Chris League
We investigate the facilities in various languages for higher-order programming-in-the-large. Scala developers often borrow from Haskell, but what more can we learn from the ML family? What about (heaven forbid) C++ and its template libraries? Do dynamically-typed languages enable more sophisticated code recombination and reuse? We'll ask these questions, answer some of them, and generally compare, contrast, and encode all sorts of modularity with Scala.
*The “modular module” moniker was lifted from a paper by Xavier Leroy.
9th–11th March 2012