Article archive

Latest writing

Browse the latest articles across software architecture, developer tools, and applied AI.

AI

Teaching a Local LLM a New Domain

As an interesting experiment I wanted to learn how to teach a tiny local llm a new domain by doing Continued Pretraining (CPT) on domain specific data. This article is a write-up of my...

Read article
AI

Experimenting with A2A

Google just announced a new interoperability protocol for AI agents called Agent 2 Agent (A2A). In this post I will share some of my learnings from playing with some of the early bits of...

Read article
AI

Using Lang Graph with Local LLMs

In this article I will show how to use LangGraph to create an AI agent that works with multiple local LLMs. Through a simple example I will implement a news agent that loads a rss feed...

Read article
AI

LLMs and Card Games

In a previous article I wrote about an experiment where I trained a neural network to play a card game. As a follow up to this project, I figured it would be fun to see if I could get an...

Read article
BAZEL

Large React Production Bazel Build

In this post I will show an example of a large React Bazel build consisting of more than 8000 components and service files. The sample uses Bazel to create a Rollup production bundle...

Read article
KUBERNETES

Microservices in Kubernetes

In this post I will show how to deploy microservices to Kubernetes. My example will show how to deploy a microservice with a public IP in front of an internal service with a cluster scoped IP.

Read article
BAZEL

Building DotNet Core with Bazel

It’s still a bit too early to use the .Net Bazel rules in a real enterprise project, but it’s at least possible to start doing some small POCs. In this article I will show how I built a...

Read article
JAVASCRIPT

The Architecture of My Blog

I just realized the other day that my blog is in its fifth year now. Since the application is built from scratch, I figured it would be fun to do a write-up of the architecture behind my blog.

Read article
BAZEL

Svelte Bazel Seed

I have created a seed application for people who are interested in exploring Bazel as the single build tool for Svelte applications.

Read article
BAZEL

Svelte Bazel Build

This post is a writeup of a POC I did with Bazel and Svelte. The Bazel rules are still considered experimental, but I have a working Bazel build with Svelte compilation and Rollup bundling.

Read article
BAZEL

Bazel and Remote Caching

Lately I have spent some time playing with remote caching of Bazel build artifacts. I am still exploring this, but here is a quick summary of what I’ve learned so far.

Read article
NODEJS

Using TypeScript With NodeJs

Lately I have started to combine Typescript more and more with nodejs coding. In this post I will show how to incorporate Typescript into a nodemon based workflow.

Read article
ANGULAR

Lazy Loading With Rollup

Rollup is currently working on support for code splitting. In this post I will use this new, experimental, feature to bundle a mid size Angular application.

Read article
ANGULAR

Webpack vs ParcelJS

In my demo project I have examples of how to bundle Angular applications with pretty much any bundler under the sun. Today I added Parcel to the collection. Let’s see how it compares to...

Read article
TESTING

Unit Testing RxJs Retries

In a previous article I showed how to add conditional retry logic to RxJs based http requests. In the following post I will show how to unit test the retry logic.

Read article
RXJS

RxJs Subjects Emit Synchronous Values

Working with subjects usually involves “next-ing” out values that subscribers can subscribe to. In this post I will show that the “next-ed” values are received synchronously by the subscriber(s).

Read article
JAVASCRIPT

Using Service Workers

In this post I take a look at service workers in JavaScript. I will show how to use a service worker to support offline loading of an Angular application.

Read article
ANGULAR

Angular Production Builds

In this article I will discuss some of the alternatives for preparing an Angular application for production. I will look at several different approaches, and highlight the pros and cons.

Read article
JAVASCRIPT

JavaScript AST

In this post I will discuss JavaScript ASTs and show how you can easily generate an AST of your code using Rollup.

Read article
ANGULAR

Angular bundling formats

I just updated my Angular samples to version 4 of Angular. Since version 2 the Angular team has made a few tweaks to the Angular distribution format. In this post I will point out a few...

Read article
JAVASCRIPT

How To Create A Tech Blog

In this post I want to share some info about how I built up my blog. Hopefully this will be helpful to other bloggers, but I am also looking for feedback and suggestions for improvement.

Read article
ANGULAR

Angular application bundles

In this post I will discuss different ways to generate Angular application bundles. I will show examples using Rollup, Webpack and the Closure compiler (ADVANCED_OPTIMIZATION).

Read article
JAVASCRIPT

IIFE vs UMD

In the following post I will compare immediately-invoked function expressions (IIFE) to Universal Module Definition (UMD) bundles.

Read article
JAVASCRIPT

Where is promise.finally?

At this point I've used so many different promise libraries that I've lost track of what's supported natively by ES6 promises. Today I learned that “finally” is not yet part of the...

Read article
ANGULAR

Using NativeScript with Angular

Angular code is decoupled from the underlying runtime environment, so in theory our code could run on any type of host. In this post we will show how to use NativeScript in combination...

Read article
ANGULAR

web workers in angular

One really cool thing about Angular is that the framework is decoupled from the DOM via a higher level API. In the following post I will show how to take advantage of this by running an...

Read article
ANGULAR

Change Detection in Angular

One of the most common criticisms of Angular 1.x is the potentially inefficient change detection algorithm tied to the digest cycle. In this post I will discuss some of the major...

Read article
TESTING

Angular Unit Testing

The new component based architecture in Angular is great for unit testing, so in the following article I will demonstrate how to unit test Angular 2.0 code using Jasmine and TypeScript.

Read article
RXJS

Observables in Angular

The RxJs community has presented the idea that any series of events can be modeled as one or many asynchronous or synchronous arrays. In the following post I want to explore this by...

Read article
ANGULAR

Save Navigation Operator in Angular

Angular is now a lot less forgiving about undefined references in binding expressions than Angular 1.x is. In this post I will show how to use the safe navigation operator to safe guard...

Read article
ANGULAR

Forms and Validation in Angular

In the following post I will show how to use the built in form functionality in Angular. Through an example I will wire up some common controls and show how to do data binding and...

Read article
ANGULAR-OLD

Web workers in Angular 2.0

One really cool thing about Angular 2.0 is that the framework is decoupled from the DOM via a higher level API. In the following post I will show how to take advantage of this by running...

Read article
ANGULAR

Input controls in Angular

Capturing user input is an important part of web development, so in the following post I will demonstrate how to use common input controls like textbox, checkbox and radio button in Angular.

Read article
REACT

Integrating React with Angular

I am continuing my Angular article series and today I want to show you how to integrate non Angular code in Angular. Specifically I will be integrating an existing React/Flux component...

Read article
JAVASCRIPT

Angular 2.0 vs Aurelia

Lately I have spent quite a bit of time working in both Angular 2.0 and Aurelia, so I figured I'd share some of my experiences here.

Read article
ANGULAR

Timeouts in Angular

Most Angular developers are probably already familiar with the $timeout service. This service serves an important role in Angular 1.x, so today I decided to go digging for its...

Read article
ANGULAR

Is Angular 2.0 worth it

I have over the past months spent quite a bit of time working with Angular 2.0 by writing sample components and going through the Angular 2.0 source code. At this point I have decided to...

Read article
ANGULAR

Angular promises – then vs success

The Angular team has just announced that the convenience wrappers success and error for promise handling have been deprecated. This is not surprising as the success/error API is not only...

Read article
ANGULAR

Angular and Http

Being able to make http requests is a very important part of a single page application. In this post I will show a quick demo of how to make requests using the Angular http module.

Read article
DOTNET

Visual Studio Code

Microsoft has open sourced their entire .Net platform. This is huge since it opens up the .Net framework to a lot of new users who were previously blocked by the “Windows only” policy....

Read article
ANGULAR

Ignoring Angular bindings

Angular includes a directive that tells Angular to not compile or evaluate bindings in the contents of a specified DOM element. In this simple example I will demo how to wire this up.

Read article
ANGULAR-OLD

Core Directives in Angular 2.0

In Angular 2.0 – core directives are not automatically available in your templates. Instead you have to opt in to the directives you plan to use in your components. In cases where you...

Read article
ANGULAR

Experiences with Angular

Angular is probably still the undisputed heavy weight champion of JavaScript frameworks, but other frameworks are emerging as solid alternatives. In this post I will share some of my...

Read article
ANGULAR

Angular Grid

I am continuing to experiments with Angular. In this article I will demonstrate how to create a grid component using Angular.

Read article
JAVASCRIPT

Object.defineProperty explained

JavaScript lacks explicit access modifiers, so variable “privacy” is hard to come by :-) . Instead we have to come up with clever workarounds to encapsulate objects to simulate the type...

Read article
TESTING

Angular integration tests

Most developers are already familiar with unit testing, but in this article I will describe a second category of automated tests – integration tests.

Read article
TESTING

How to mock http calls in Angular

For better testability, and other important reasons, it's generally advisable to add some form of abstraction around your http access layer. However, Angular offers its own “hook” for...

Read article
TESTING

How to mock providers in Angular

Providers in Angular serve as a way to create independent components that can be injected into other components. There are several different variations on providers; service, factory,...

Read article
TESTING

How to unit test Angular run blocks

Run blocks in Angular are commonly used to bootstrap the application and run initial setup functions. In some cases the logic might be complex enough to warrant unit tests, so in the...

Read article
TESTING

How to Mock with NSubstitute

There are several great mocking frameworks available for .Net, but NSubstitute stands out because of its simple and elegant syntax. Perhaps the biggest benefit is how easy it is to...

Read article
TESTING

How to Create Xpath Using Linq

As an alternative to my previous xpath library, XpathItUp, I've created a lambda based framework for generating xpath expressions. The goal is to improve and address some of the short...

Read article
JAVASCRIPT

JavaScript ES6 Linq

EcmaScript 6 offers some new really nice syntax additions to JavaScript. One of them is arrow functions. Arrow functions provide a compact way to create filter functions, so to take...

Read article
JAVASCRIPT

JavaScript and bind

One confusing thing about JavaScript is how the meaning of 'this' changes based on execution context. In this post I will demonstrate how to use bind() to inject the meaning of 'this' in...

Read article
REACT

Getting started with React Native

In a previous post I showed how to use React to create both client side and server side web components. In this post I will demonstrate how to use React Native to create an IOS application.

Read article
JAVASCRIPT

Writing Jasmine unit tests in ES6

Previously I showed how to write application code using ES6, but wouldn't it be nice to use ES6 when writing unit tests as well? In the following post I will demonstrate how to write...

Read article
AURELIA

Building a Treeview in Aurelia

I have started exploring Aurelia and figured building a treeview would be a good way to learn more about the framework. The following post is a write up of how I built my treeview.

Read article
MONGODB

Sorting by ObjectId in MongoDB

It's common practice in databases to keep a column or field to indicate when a record or document was created. This is useful for audit purposes, but also for sorting. You can add add...

Read article
ANGULAR

Caching promises in Angular

Caching typically translates into an instant performance win in most applications. In this post I will demonstrate how to add basic cache handling to promise based http calls.

Read article
REACT

Decoupled object models in React

A common criticism of React seems to be that it's tearing down the barrier between view and object model - better known as separation of concerns. Some are even claiming that React is...

Read article
ANGULAR

Angular vs React

Lately there has been a lot of buzz about React. People are already comparing it to Angular – another very popular framework. In this post I will look at some of the differences between...

Read article
JAVASCRIPT

JavaScript and its crutches

There is a growing sentiment among developers that the community is saturated with frameworks that all promise to fix “JavaScript problems”. Some are just frustrated with the high number...

Read article
JAVASCRIPT

Is jQuery still relevant

As so many other developers I got my first introduction to complex client side web applications through jQuery. It was essentially the gateway drug that got most developers hooked on...

Read article
ANGULAR

Thoughts on Angular 2.0

A while back the Angular team made an announcement about their plans for the next generation of Angular – Angular 2.0. The presentation revealed changes that represent a big departure...

Read article
DOTNET

Nuget packages

I have created two helper libraries for building xpath xpressions in c#. Here are the nuget packages to get them.

Read article
AI

Machine Learning and Card Games

In the following blog post I will show how to use machine learning to teach a computer to play cards. The game used for these experiments is called “Palace”, but some of you may also...

Read article