Looking for a specific post? Check out the Blog Index.
Few months ago we talked about the Basket of Apple problem where we represented a tree of rules to distribute apples in baskets. Trees are quite common in software, a simpler example is the example of managers and employees where employees can be managers and managers themselves can have managers. In today’s post, we will look at how we can represent a tree structure in SQLite and how we can retrieve the nodes of a tree using Common Table Expressions (CTE).
Full text search allows users to search records in data storage using properties of the objects. For example a full text search on a blog engine could allow a user to search for a post based on the title or content of the post or categories. The text provided could be a word, or a sentence or part of a sentence and the result would be a list of posts ranked by best match. In today’s post we will look at how we can take implement
fts using SQLite built in
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.