Home » Author Archives: James Roper

Author Archives: James Roper

Fun doesn’t mean compromising scalability

software-development-2-logo

Today I read an interesting piece on InfoWorld about Meteor, Meteor aims to make JavaScript programming fun again. It is an interview with Matt DeBergalis, a co-author of Meteor, about Meteor and why a developer would choose it. The title in particular resonated well with me, “making programming fun again” is a catch phrase I have often used in presentations ...

Read More »

A practical solution to the BREACH vulnerability

scala-logo

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 Frameworks CSRF protection. Some background First of all, what is the BREACH vulnerability? I recommend you read the ...

Read More »

Call response WebSockets in Play Framework

play-framework-logo

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 some use cases that I’ve thought of: You have some transformation of a stream that can ...

Read More »

Advanced routing in Play Framework

scala-logo

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 way to implement some routing pattern. Whatever it is, Play will allow you to do pretty ...

Read More »

Java 8 Lambdas – The missing link to moving away from Java

java-logo

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 internet abound with testimonies about it. Everything I’ve read and every person I’ve talked to, including myself, has the same story. ...

Read More »

Understanding the Play Filter API

play-framework-logo

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 filter is just a function that takes an action and returns another ...

Read More »

Scaling Scala vs Java

scala-logo

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 unanticipated load?’ In this post I will seek to answer that, and show that indeed ...

Read More »

Iteratees for imperative programmers

scala-logo

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 comfortable writing imperative code than functional code, then you may be a little overwhelmed by all ...

Read More »

Benchmarking Scala against Java

scala-logo

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 question. In this post, I will show you that Scala is ...

Read More »
Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close