Posts by Category

Scala

Scala (SBT) Publishing to Github Packages

8 minute read

Github Packages is a natural extension of a CI/CD pipeline created in Github Action. It currently offers repositories for Java (Maven), .Net (NuGet), Ruby (G...

Emoji Progress Bar for SaaS Integrations

2 minute read

The command line progress bar was the first step towards graphical UI. It was an exciting addition to a numerical percent ticking away as a running task too...

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...

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...

Tracking Clients with Finagle

3 minute read

In a Service Oriented Architecture, a service may be used by many different clients – each with with different usage patterns and performance profiles. Behin...

Reusing Finagle Server Filters on the Client

2 minute read

When using Thrift, Finagle Filters on the client inherit from SimpleFilter[ThriftClientRequest, Array[Byte]], while on the server they must inherit from Simp...

Finagle Query Cache with Guava

4 minute read

For many data services, any easy way to reduce database load is to cache calls to semi-static data (ie: append-only, or refreshed only on a set schedule), an...

Developer Friendly Thrift Request Logging

3 minute read

In a system of async service calls, sometimes the most indispensible debugging tool is knowing what and when network traffic is occurring. Unfortunately for ...

Multiplexed Services in Finagle

6 minute read

Apache Thrift is a pretty good RPC library. Methods compose a service, and the service is hosted on a raw TCP port. Even a large implementation with a hundr...

Back to Top ↑

Platform

Scala (SBT) Publishing to Github Packages

8 minute read

Github Packages is a natural extension of a CI/CD pipeline created in Github Action. It currently offers repositories for Java (Maven), .Net (NuGet), Ruby (G...

Emoji Progress Bar for SaaS Integrations

2 minute read

The command line progress bar was the first step towards graphical UI. It was an exciting addition to a numerical percent ticking away as a running task too...

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...

Tracking Clients with Finagle

3 minute read

In a Service Oriented Architecture, a service may be used by many different clients – each with with different usage patterns and performance profiles. Behin...

Reusing Finagle Server Filters on the Client

2 minute read

When using Thrift, Finagle Filters on the client inherit from SimpleFilter[ThriftClientRequest, Array[Byte]], while on the server they must inherit from Simp...

Finagle Query Cache with Guava

4 minute read

For many data services, any easy way to reduce database load is to cache calls to semi-static data (ie: append-only, or refreshed only on a set schedule), an...

Developer Friendly Thrift Request Logging

3 minute read

In a system of async service calls, sometimes the most indispensible debugging tool is knowing what and when network traffic is occurring. Unfortunately for ...

Multiplexed Services in Finagle

6 minute read

Apache Thrift is a pretty good RPC library. Methods compose a service, and the service is hosted on a raw TCP port. Even a large implementation with a hundr...

Back to Top ↑

Javascript

Reflections: 6 Years of Software

6 minute read

My last blog update was 6 years ago, and Javascript still seems popular. Is this a case of There Is No Alternative?

Reactive Front-End with Web Components

less than 1 minute read

The Reactive Manifesto puts together the ideal architecture for today’s system infrastructure, designed to cope with the ever increasing need for performan...

DOM Manipulation using Web Components

3 minute read

HTML elements are free to change the style, size, and placement of their children, and even their order. A lot of advanced use cases define rendering based...

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...

Back to Top ↑

Dart

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...

Back to Top ↑