Posts by Year

2022

Lit Custom Components for SVG generation

4 minute read

SVG markup is very similar to HTML, and the Lit Web Components library can be used to not only generate HTML custom components, but also manipulate SVG in a ...

JVM versus Python for AWS Lambda Functions

3 minute read

The suitability of programming languages across different domains is a contested topic. AWS Lambda Functions are a serverless solution that can be used for ...

Scala 3 and AWS Lambda Functions

5 minute read

AWS Lambda offer the ability to run code functions without a server. Basically standalone functions that receive JSON as a parameter and have up to 15 minute...

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

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?

Back to Top ↑

2014

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

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

Back to Top ↑

2013

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 ↑