Blog Posts

Python Dictionary

Jul 30th, 2021

Python dictionary is a structure that can be used to store key/value data with constant time for access. Dictionary structures in Python are very versatile which makes them popular and we can see them being used in many projects. They allow us to store keys and values of different types, provide us ways to iterate over the keys or values and have different ways to delete values. In today’s post, we will explore all the functionalities of dictionaries in Python.

Python Class Attribute Versus Instance Attribute

Jul 23rd, 2021

In Python, we can define variables on the class level or the instance level. In today’s post we will look at the differences in behavior.

Pointers To Functions In C

Jul 16th, 2021

Last week we covered the basics of C pointers with their definitions and how to use them in variables and functions. In today’s post we will look at pointers to function and more specificities around pointers like NULL pointer or void return.

Pointers In C

Jul 9th, 2021

Pointers are variables containing addresses of other variables. In C, pointers are used in many scenarios where they improve the code readability or where they are just necessary. In this post, we’ll explore what C pointers represent, how they can be used in functions, and explore the relationship between pointers and arrays.

Visual Studio Code Shortcuts

Jul 2nd, 2021
VSCode

I have been using Visual Studio Code for many years, starting from frontend development with Angular and React, then moving to work on Python and lately working on C# projects. Visual Studio Code has always been at the top of my favorite editor to use as it is very lightweight, responsive and fast. It’s quick to open files, quick to load projects, it has a clean and minimal interface and has a strong community. Over the years of using it, I realised that there are a couple of shortcuts that I keep using in repetition and that I found missing when using other IDE. In today’s post I’ll go through those keyboard shortcuts.

Two's Complement

Jun 25th, 2021

Last week we looked at bitwise operators in Python. We briefly went through all of them without looking into how signed intergers were represented. In this post we will be looking at Two’s complement, Python’s way of storing signed integers, and finally answer the question of why ~9 = -10.

Bitwise Operators In Python

Jun 18th, 2021

When working with cryptographic algorithm and hashes, it’s quite common to operate at the bit and byte level. For those situations, Python provides functionalities to convert int to byte and vice versa and bitwise operators to operate on bits. In today’s post we will look at the different bitwise operators available with examples.

How Time Based Otp Work

Jun 11th, 2021

One-time passwords (OTP) are a great way to provide a second factor of authentication to an application. They are commonly distributed through channels like SMS, voice call, email, or physical token generator - common with banks. Although very useful, each of those distribution channels have limitations on both side; for the user and for the application developer. For example, for the user, SMS or voice call needs network connectivity which isn’t always available, and from the application developer, we need to rely on third party SMS gateway or voice call gateway which don’t support all countries, making 2FA unavailable for some. HMAC-based OTP (HMAC) and later on Time-based OTP (TOTP) were algorithms invented to address those problems providing a way for a prover to generate a valid OTP without the need of the verifier to send it to the prover. In today’s post we will see an example of TOTP implementation and look at how it is constructed.

Chrome Shortcuts

Jun 4th, 2021

As software developers the second application we spend the most time on after our text editor is our web browser. I have been using Chrome browser for years and only recently realised how often I was clicking around with the mouse to change tabs, pin tabs, or simply searching for options. Since then, I learnt few shortcuts that I now use daily, some shortcuts built-in and others brought by extensions. In this post I’ll go through the shortcuts.

Jekyll Category Page

May 28th, 2021

After five years of writing with over 250 posts, I realised that it would be nice to have a page with all post categories that I’ve discussed so far. In today’s post we’ll look at how we can leverage site.categories from Jekyll to construct a category page.

The Different Usages Of Asterisks In Python

May 21st, 2021

In Python, we often see asterisks being used for other operation than the infix operations like multiplication. In today’s post we will look at the other scenario were we encounter the asterisk and understand the meaning of it in those different contexts.

Testing Rxjs Observable With Marble Testing

May 14th, 2021

In Angular, we often use RxJS observables. Since observables are dependent on time, it makes them to hard to test. To make our life easier, RxJS provides a TestScheudler which offers a function run providing helper functions accepting Marbles, a special syntax used to define a timeline of events. In today’s post, we will learn about the Marble syntax and see how we can use it to test the behaviour of our observable composition.

Component Reuse Angular

May 7th, 2021

Angular Router reuses components when it sees fit. The act of reusing a component saves time as the framework doesn’t need to destroy and create back a new object, instead it emits new values onto the observable params and data of the route. In today’s post we dig into the details of when does the reusability of components take place and understand how it impacts route.data.

Understand Dom Rendering With Angular

Apr 30th, 2021

Change detection and DOM rendering are functionalities handled by Angular framework. When we build applications, most time, we don’t really need to pay attention in how things gets rendered as we trust Angular to do its job. But in some cases, it is necessary to understand how the rendering work, for example when using test tools like Cypress which gets instances of DOM nodes to perform action on them. We can get into situation where the re-rendering of arrays detach DOM nodes which were used by our Cypress specification. In today’s post, we will take a look at how the DOM get updated by Angular when re-rendering nodes on component input updates.

Setup Vscode With Python Unittest

Apr 23rd, 2021
Unittest VSCode

Few months ago we talked about Python Unittest. We looked at it from the perspective of running from terminal which is a great way to quickly verify that our application is healthy. When it comes to debugging specific issue, running from terminal can be more tricky. In this post, we will look at how we can enable Unittest test discovery from Visual Studio Code with the Python extension in order to provider a quick and easy way to debug source code and allowing us to breakpoint in unit tests.

Designed, built and maintained by Kimserey Lam.