Hi there! Welcome to my website, here you'll find all my blog posts, videos and personal projects.

By Kimserey Lam with

Blog Posts

Looking for a specific post? Checkout the Blog Index.

The Cost And Benefit Of Mutability

Apr 5th, 2019

Mutability is a topic of high interest in the view of developers adventuring themselves in functional programming languages where it is generally unwelcomed and, in some instances, made voluntarily hard to implement. In contrast, object oriented programming has assignment at its core. Objects are represented as entity with a state modifiable over the lifetime of the application.


Understand Data Abstraction With Examples

Mar 29th, 2019

Data abstraction allows us to think about complex systems in term of their properties rather than their implementations. Reasoning in term of properties provides a ground of assumptions which can be used to create new systems. In common programming languages, abstraction is present everywhere, as interfaces, as abstract and regular classes, as functions, as function signatures, as user interfaces, etc. All of theses tools provide a way to build layers of abstraction which we can work on top of to create new functionalities by manipulating data on the appropriate layer.


Angular Progressive Web App

Mar 22nd, 2019
Angular Progressive Web App manifest.json file

Progressive Web App allows an Angular website to be installed locally and be available on the app drawer and on the home screen of a phone. Today we will see how to use Angular Progressive Web App module to transform our app into a mobile app.


Cloudwatch Alarm On Disk Space

Mar 15th, 2019
CloudWatch Alarm on disk space used

Few weeks ago we saw how to configure CloudWatch to monitor upstream response time from logs. We create a CloudWatch configuration which allowed us to create metrics by parsing the logs and create a dashboard out of it. Building up from there, today we will see how we can monitor disk used space and trigger an alarm when the remaining disk space is critical.


Cycle Detection With Floyd Tortoise And Hare

Mar 6th, 2019
Floyd's Tortoise and Hare

Floyd’s Tortoise and Hare is a cycle detection algorithm operating on a linked list. The algorithm is based on two pointers, the tortoise and the hare, moving on the linked list at a different speed. The algorithm can be used to find cycle existence, deduces the beginning of the cycle, and the length of a cycle. Today we will explore the mathematical proof behind the algorithm and we will implement it in Racket.

Racket Python

The Basket Of Apples Problem With Tree

Mar 1st, 2019
The Basket of Apple Problem

Working with trees is an interesting task. Today we will look into the Basket of Apples problem, which can be solved using a tree structure. This deep dive will allow us to explore how we can reason around trees and understand concepts allowing us to vocalize ideas.


Fixed Point And Newton Method

Feb 22nd, 2019

Last week, we briefly looked into the Y Combinator also known as fixed-point combinator. Today we will explore more on the territory of fixed-points by looking at what a fixed-point is, and how it can be utilized with the Newton’s Method to define an implementation of a square root procedure.


Recursion With Fibonacci

Feb 14th, 2019

Recursion refers to the property of a function to be defined in term of itself. The Fibonacci sequence is a great example of a recursive problem where a Fibonacci number is calculated from a combination of precedent Fibonacci numbers. Recursion can be implemented in many forms, it is even possible to implement recursion without explicit self calling. Today we will look at different implementations of Fibonacci and discover their properties.


Lambda Calculus And Closure

Feb 6th, 2019

In programming, we often hear about Closures. Closures are present in any languages possessing functions as first class citizen. This includes functional languages and also widespread languages such as C#, Python and JavaScript. Today we will look at the origin of closures and understand what they are.


Implementing Exceptions With Continuations Racket Lisp

Jan 30th, 2019

Last week a colleague of mine introduced me to the concept of continuation in Racket (the best of Scheme and Lisp - at least that is what racket-lang.org states). I knew about the existence of Lisp but I never really paid attention to what it provided as language features. So I took the bite and started to read the post shared to me on continuations, written by Matt Might and oh boy… was I confused. Everything about the code confused me, the notation, the syntax, and of course the flow of the program itself. What I understood was that this piece was implementing Exceptions by using continuations which was enough to make me want to understand it.


Property Based Testing With Hypothesis

Jan 25th, 2019

Property-based testing is a testing method where a property of our system is tested against multiple datasets. Today we will see how we can create property tests using Hypothesis in Python.


Python Web Api With Flask

Jan 18th, 2019
Swagger UI

Flask is a microframework for python providing building blocks to compose websites and web API quickly. It has a vast ecosystem driven by open source libraries maintained and used by many developers. Today we will see how we can setup a simple todo web API using Flask and how we can setup OpenAPI 3.0 (OAS3 - previously known as Swagger).

Python Flask

Prometheus With Aspnetcore

Jan 11th, 2019

Prometheus is an open source monitering platform. It provides multiple functionalities to store, manipulate and monitor metrics from our applications. Today we will see how we can push metrics from an ASP NET Core application, and how to make sense of it.

DotNetCore CSharp prometheus

Custom Blue Green Deployment With Nginx And Gitlab Ci

Jan 4th, 2019
Blue-Green Deployment

Blue-green deployment is a method used to reduce risk and downtime during deployment. Today we will see how we can implement a fully custom Blue-green deployment for a single server setup using Nginx and using Gitlab CI for continuous deployment.

GitLab NGINX DotNetCore Ubuntu

Create A Blog With Jekyll

Dec 28th, 2018
Blog Example

Jekyll is a blog aware static site generator. Blog aware means that it ships with functionalities to build blogs and blog posts. The two major benefits from Jekyll are the markdown translation to HTML and its blog creation orientation. I recently migrated out of blogger and moved to building my own website using Jekyll and today I will share the steps I took.

Back to Newer Posts More Posts

Designed, built and maintained by Kimserey Lam.