Recent Posts

ThreadLocal Variables and Scala Futures

5 minute read

Thread-Local storage (TLS) allows static variables to be attached to the currently executing thread. The most common use of TLS is to pass global context t...

Advanced Uses of Polymer Templates

4 minute read

Most sortable HTML table generators (such as AngularJS’s ng-grid) allow cells to be customized and formatted according to templates, however all templates ...

Sortable Table with Polymer Web Components

4 minute read

As businesses now rely more heavily on web applications to perform daily operations, a user friendly datatable/spreadsheet is indispensable to all web deve...

Polymer Data-Binding Filters

2 minute read

One useful feature of modern Javascript libraries is 2-way data-binding. All interactive websites perform this functionality one way or another, but only a...

Maintainable Web Development without Javascript

2 minute read

In the years 2002-2003, Internet Explorer captured 95% of world-wide browser market share. It was unfathomable to many that over the next 10 years IE would d...

Web Components

1 minute read

At the heart of a web page, there are UI elements and these elements interact: with the user, each other, and the server. Although HTML5 expanded the origi...

Real-time Data Mining with Spark

8 minute read

There are 2 new principles at the vanguard of today’s technology: Reactive UX. As the world’s population spends an increasing portion of their lives elect...

Finagle ServerSet Clusters using Zookeeper

5 minute read

The key to high availability is redundancy; it follows that if uptime matters, Finagle needs to be deployed to multiple servers. This article walks through...

Separation of Concerns with Finagle

3 minute read

The Separation of Concerns (SoC) pattern is one of those software architectural choices that everyone is helpful. It increases clarity, shortens the amount o...

Transitioning C# to Scala Using Thrift

less than 1 minute read

A 30 minute presentation I made on Sept 19th in a Scala-Toronto Meetup. The slides introduce Apache Thrift and the additional features offered by the Twitter...

Binary Semaphore Filter

3 minute read

Long running queries are very taxing on a database. But caching idempotent queries may not always be a suitable solution. What happens if queries run for N-s...