Search results


Title and summary Date/time
A practical solution to the BREACH vulnerability
Two weeks ago CERT released an advisory for a new vulnerability called BREACH. In the advisory they say there is no practical solution to this vulnerability. I believe that I've come up with a practical solution that we'll probably implement in Play ...
2:15:33 PM
100 Continue support in Play
The 100 Continue status code in the HTTP spec is one that most people know very little about. You kind of read it, don't really understand what it's talking about, and then just skip over it. I didn't know what it was about until I became a developer ...
4:34:12 PM
How to write a REST API in Play Framework
A very common question that we get on the Play mailing list is how do you write a REST API using Play Framework? There's no explicit documentation on it, you won't find a page in the Play documentation titled "Writing REST APIs". The question is often ...
4:18:00 AM
Call response WebSockets in Play Framework
I got a question from a Play user about implementing call/response WebSockets in Play Framework. This is not something that comes up that often, since it means using WebSockets to do basically what AJAX does for you, so what's the point? But here are ...
3:09:12 AM
What is wrong with Monads?
Nothing is wrong with Monads. What is wrong is how people communicate them. There are people out there that learn abstract concepts first, and then work out how to apply them to solving their every day problems. Then there are people that learn how ...
5:46:46 PM
SBT per version global plugins
I'm an IntelliJ user, so I have the SBT idea plugin permanently in my global SBT plugins. This is fine, until I start working across versions of SBT, and particularly with milestone builds of unreleased SBT versions, because in that case, the version of ...
3:50:33 PM
Advanced routing in Play Framework
We frequently get questions about how to meet all sorts of different routing needs in Play Framework. While the built in router is enough for most users, sometimes you may encounter use cases where it's not enough. Or, maybe you want a more convenient ...
1:51:42 AM
Java 8 Lambdas - The missing link to moving away from Java
I learnt functional programming, but then I decided I liked imperative programming better so I switched back. — Nobody, ever Moving from imperative programming to functional programming is a very common thing to do today. Blog posts on the ...
10:11:49 AM
Understanding the Play Filter API
With Play 2.1 hot off the press, there have been a lot of people asking about the new Play filter API. In actual fact, the API is incredibly simple: trait EssentialFilter { def apply(next: EssentialAction): EssentialAction } Essentially, a ...
2:30:41 AM
Iteratees for imperative programmers
When I first heard the word iteratee, I thought it was a joke. Turns out, it wasn't a joke, in fact there are also enumerators (that's ok) and enumeratees (you're killing me). If you're an imperative programmer, or rather a programmer who feels more ...
9:28:48 AM
Scaling Scala vs Java
In my previous post I showed how it makes no sense to benchmark Scala against Java, and concluded by saying that when it comes to performance, the question you should be asking is "How will Scala help me when my servers are falling over from ...
2:19:37 AM
Passing common state to templates in Play Framework
This question comes up very frequently on the Play mailing list, so I thought I'd document a quick example of how to pass common state to shared templates in Play Framework when using Scala. The use case is typically that you have a common header, but ...
1:52:00 PM
Benchmarking Scala against Java
A question recently came up at work about benchmarks between Java and Scala. Maybe you came across my blog post because you too are wanting to know which is faster, Java or Scala. Well I'm sorry to say this, but if that is you, you are asking the wrong ...
5:40:34 PM
ScalaFlect: Statically typed query DSLs
I've been hard at work over the past few weeks redesigning my Mongo object mapper, the Mongo Jackson Mapper, to support Jackson 2.0, be simpler to use, and be far more powerful with less surprises to users. Something that has been at the front of my ...
5:16:45 AM
Three things I had to learn about Scala before it made sense
Last year I sat down in a meeting room with a few other colleagues to learn from one of Atlassian's biggest Scala advocates about Scala. I kept on hearing good stuff about Scala, and I like trying new things, so I was eager to have my eyes opened so ...
10:09:08 AM