Play! Framework provides several BodyParsers out of the box to parse common HTTP request bodies. One of them is for file uploads. Since Play can’t reasonably know what you’re doing with the body, they can’t aggressively delete the file after the result is returned. Their solution is to clean up the file when the variable is garbage collected, using Java’s finalize—rarely seen in the Scala world. Since the TemporaryFile is held inside request (request.body: TemporaryFile), this is usually reasonable since request won’t be GCed during the lifecycle of the request... (more) →

Scala Days 2015 talks have posted. My favorites: Scala Records: Extensible records and type-indexed maps Toward a Safer Scala Reactive Slick for Database Programming Why Scala.js Type-safe off-heap memory for Scala Delimited dependently-typed monadic checked exceptions in Scala Scala Collections Performance

Here’s a few classes and functions I’ve collected over the past few years that I find incredibly useful with day-to-day Scala development. .. (more) →

James Roper, tech lead of Play! at Typesafe, spoke at Box in Mountain View, CA on 4/24/2014. Code from the Java 8 project Play! Framework Meetup Group Java 8 heralds a new era of reactive programming, with lambdas and promises taking the limelight as the bright new features of the language. To best take advantage of these features, Play Framework offers a ground up asynchronous full stack web framework, with a high velocity development environment, making it the most natural web framework to use with Java 8... (more) →

Durango, Colorado

After living in the Bay Area for 8 years, in January 2021 my wife and I (and dog!) moved to Durango, Colorado. We had road tripped through previously, and loved the pace of life, access to outdoors, fitness culture, and walkability. It’s a small mountain town that has avoided stains of suburbia. We walk to the grocery store, and have easy access to mountain biking, river sports, rock climbing, hiking, skiing, and more. We’re thrilled with our decision. if (!.. (more) →