RxLift: Reactive Web Components with LiftWeb and RxScala

Overview

LiftWeb makes building dynamic websites extremely easy whilst hiding away a lot of the plumbing. RxScala is a Scala adaptor for RxJava, “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”.

This blog describes how we combined Lift and RxScala for event-based UI components consuming and producing observable sequences.

Continue reading…

Newsletter 7: Error Handling and Two New Books

Hi,

Let’s talk about when things go wrong. It, inevitably, happens and every program needs an error handling strategy. The right strategy depends on the context – a throwaway script might not even need to handle errors – but the tasks for which Scala is typically used demand a robust approach.

In our code reviews we often see ad-hoc approaches to error handling that rely too much on people remembering to do the right thing. Last month we ran a mini-series on this topic on the blog, presenting some intermediate-level techniques that you can apply to make your code more robust.

Continue reading…

Creative Scala: A New Introduction to Scala

We are excited to announce the release of a new book and training course—Creative Scala. Creative Scala is an introduction to Scala designed for people with no previous experience of Scala or functional programming. The name comes from the course content, which is based around the functional drawing library we’ve been working on for the online version of Essential Scala.

The best part? Creative Scala is 100% free!

Continue reading…

Designing Fail-Fast Error Handling

In this post I want to explore the design space for error handling techniques in Scala. We previously posted about some basic techniques for error handling in Scala. That post generated quite a bit of discussion. Here I want to expand the concepts Jonathon introduced by showing how we can systematically design a mechanism for error handling, introduce some moderately advanced techniques, and discuss some of the tradeoffs.

Continue reading…