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

By Kimserey Lam with

Blog Posts

Looking for a specific post? Check out the Blog Index.

Python Unitttest

Feb 28th, 2020

Unit tests ensure that the functionalities of the Software are maintained while developping new features. Every language provides library for writing unit tests, and any decent framework provides facilities to enable easy unit testing. In Python the core comes packed with unittest, a module providing all the necessary functuonalities to unit test our application. In today’s post we will look at how we can setup unittest for our Python application.

Python

Cypress Commands

Feb 21st, 2020

Few weeks ago we looked at Cypress, we looked into how we could install it, the different assertion we could use and how we could debug the tests. In today’s post, we will look at how we can create reusable commands to be used across all integration tests.

JavaScript

Manage Windows On Macos With Amethyst

Feb 14th, 2020

When I first moved to MacOS, the first thing I looked for was a window manager. There were few paid options but one of them, Amethyst, striked me as a free open source window manager. In today’s post I’ll share my setup of Amethyst together with the shortcuts I use most in order to manage my windows.

Improve Your Python Shell With Pythonrc

Feb 7th, 2020
Autocomplete

Few weeks ago we looked at IPython, showcasing how the Python Shell with the additional features of IPython provides an incredible boost in productivity. In today’s post we will see how we can go a step further and provide quick scripting functionalities for testing or scripting.

Python

Setup Black With Vscode Python

Jan 31st, 2020

Few weeks ago we looked at Prettier, an opinionated formatter for Javascript and Typescript. Formatter allows us to automate the tasks of making sure that the code written is well aligned, readable, and maintainable. As a side effect, it allows all developers to conform to the same formatting rules since it is automatically enforced. In today’s post, we will look at Black, the Python autoformatter.

Python

Alembic Operations

Jan 24th, 2020

A few weeks ago we looked into Alembic to perform database migrations. We looked into how to install it and the commands it provides to manage databases. In today’s post we will look at the main DDL operations we would use to manage databases.

SQLAlchemy

Debug Python With Pudb

Jan 17th, 2020
Pudb

Python comes with a debugger pdb which allows us to debug code right from the terminal. PUDB enhances the debugger by providing a nice GUI directly inside the terminal. In this post we will look into how we can install PUDB and how we can install PUDB and the commands it offers.

Python

Coding Challenge Array Exercises

Jan 10th, 2020

Coding exercises are hard, no matter what level of experience you have and which point of your career you are at, it is a very different skills to succeed coding exercises versus building real life application. Nonetheless some of them are quite interesting and highlight techniques that can vastly change the performance of a program. In today’s post we look at optimization techniques used in arrays on common problems.

Python

How To Change Wsl User Password

Jan 3rd, 2020

During the installation of WSL, we are asked to create a user and a password for that user. Each sudo commands will require the password input. In this post we will see how we can reset that password.

Ubuntu

Jenkins Shared Libraries

Dec 27th, 2019
Pipeline

When we have multiple pipelines in Jenkins, it becomes necessary to share code between them. For example, we might want to have a stage that we want to setup for a different environment therefore the only change needed would be its parameters. Today we will see how we can provide reusable functionalities in Jenkins pipeline across a single or multiple pipelines.

Jenkins

Embedded Static Pages Library

Dec 20th, 2019

In today post we will explore one of the technique used in ASP NET Core libraries to share static content (like html pages) in the form of a library.

DotNetCore CSharp

Covariance And Contravariance

Dec 13th, 2019

In programming languages supporting generic types, we sometimes come accross the terms Covariance and Contravariance. Those two terms describe how generic type paramters act and how they can be assigned. In today’s post, we will look at their definition together with examples.

DotNetCore CSharp

Sqlite Litecli

Dec 6th, 2019

SQLite comes built in with a command line tool allowing us to execute all sorts of database commands (DDL/DML) but also special dot commands allowing us to list the tables or check the schemas. Being low level by nature, it provides opportunities for application to be built on top of. LiteCLI is an example of a friendly CLI for SQLite. Today we will look at the feature that LiteCLI provides making it a great companion for your SQLite application.

SQLite

Setup Prettier For Typescript

Nov 29th, 2019

One thing making developers life easier is automatic code formatters. Prettier is one of the most famous code formatter, for most part it does what you would expect it to do and most of the time it formats code in a better way you would yourself do. But on top of making your life easier by formatting your own code, it can be used to enforce a convention in term of code formatting accross your team. One of the language supported is Typescript as we will see today.

Typescript

Aws Ip Range Cidr

Nov 22nd, 2019
Example

AWS EC2 security groups rules allow us to give access to EC2 instances on certain ports and certain IP addresses. While ports and address are easy to setup, the rules also support CIDR notation which provides a way to specify a rule for a range of addresses. Today we will see how CIDR notation works and how we can use it do define IP ranges.

AWS
More Posts

Designed, built and maintained by Kimserey Lam.