Stop…. Think, Plan, then Code.

When in doubt, choose efficiency.

Don’t call hardware-related stuff, UNSAFE, you might offend the digital world and its representatives.

Jordan Harrison — unsplash


Consider a laborer tasked with clearing a land. In his toolbox, a cutlass. With the cutlass he can be able to finish his work. Now imagine if he is given a lawn mower, well you can agree with me that if he puts in the right amount of effort with the lawn mower, he can be able to finish his work on time and of course more conveniently.

Many a programmer put more emphasis on the…

Microsoft Technology, fighting the good fight since 1975.

Andre Tan — Unsplash


An operating system manages a computer’s hardware and presents the computer at a certain level of abstraction to the programmer and the end user.

This computer might be a PC, an Xbox console, a Hololens 2, Iot devices on Rasberry Pi you name it. For a software company, there comes the question, how do you manage all these devices? Do you create individual operating systems for them or do you create a single base that manages them all. If a single base, how do you create the base layer? How do you…

In memory of Egeoluka, truly loved and truly missed.

For certain reasons, I have come to appreciate the title ‘programmer’.

by Lukas Blazek — unsplash

Note: The below might seem basic but I find them invaluable in completing my understanding of the programmer’s craft.

A Programmers Task

A programmer has two primary tasks.

  1. To instruct a digital computer.
  2. To model reality.

A computer computes, stores and communicates. That’s all it does and that’ s all it can ever be instructed to do.

  1. To compute— CPU or/and GPU
  2. To store — Memory
  3. To communicate — Array of I/O devices.

Tools for Reasoning

To model reality, a programmer needs to have certain tools…

updated for python 3.85, postgreSQL 13.1 and django 3.1.3

Using Ubuntu as the default.

by Jordan Harrison — unsplash

First Things First

We create a folder, activate a virtual environment in it, get django and a postgres database connector (psycopg2) and finally create a django project in our folder. ( I am using Ubuntu on WSL2).

sudo apt update
mkdir psq && cd psq
python3 -m venv env && source env/bin/activate
python3 -m pip install django psycopg2
django-admin startproject psq .

Checking what was installed:

python3 -m pip freeze

updated for postgreSQL 13.1

A million accolade for the world’s most advanced open source RDMS.

I love Microsoft’s Windows Subsystem for Linux.

by Carlos Muza — Unsplash

Meet PostgreSQL

PostgreSQL is a RDMS that follows the client/server model. The server can be on the same host with the client or not (in which case it accesses the server through a TCP/IP connection).

Windows and Mac OS: Download and Install on Windows and Mac from EDB postgres

On Ubuntu (WSL2): To install postgreSQL (client & server) on linux, we use the below code. postgresq-contrib installs additional extensions.

sudo apt update
sudo apt install postgresql postgresql-contrib

The above install…

Have you missed me C++? I have you. Spent a lot of time with python but now I have returned to renew our relationship with bits, bytes (and iterators).

I use the phrase “Golang algorithms” not because the algorithm is new and peculiar to golang but because I use the naming convention I found there and there algorithm as starting point for my solution.

by Andre Tan — Unsplash

Humble Appeal: If you find anything wrong with the algorithm or if you have a better implementation, I would love to here from you at the comment section. I am always open to learn new things.

updated for python 3.8.3

Fortes fortuna adiuvat, Fortuna Eruditis Favet.

To completely understand the Python/C API, build custom types.

Working with the Python/C API gets you close to understanding language implementation.


Modern programming languages are algebraic languages. The concept of an identifier is central. An identifier is used to denote mathematical primitives like variables, types, functions etc.

Each identifier introduced (either through a declaration or direct definition for languages that doesn’t support explicit declarations) is associated with an object of the computing process that has certain properties. For example the class of the object (either a variable, user-defined function, built-in…

updated for Python 3.8.3

by Lukas Blazek — Unsplash

For the sake of performance and reliability, solve interpreted problems in interpreted languages and compiled problems in compiled languages.

Python gives you the power of three languages: an interpreted language Python and two compiled languages C and C++.

When I talk about Python, I mean CPython.


It is very difficult (if not impossible) for an interpreted language to beat the execution speed of a compiled language.

One of the selling points of Python is the speed (development speed) at which ideas can be bootstrapped using it. But as web apps are becoming very ambitious in providing…

updated for python 3.8.2 and django 2.2.12

et vincere nemo dividat, the experts say, Well I hear you but how do you conquer a project whose divided parts are as complex as the whole part?.

Django is large and powerful. Extensibility seems to be a guiding principle. The size of its documentation is scary but on a closer look, it is based on very simple concepts.

We will rebuild it using a top-down approach, utilizing the library till everything is rebuilt. Check the table of content below for guidiance.

First Steps — Relying on django’s HTTP and URL systems

Create a folder M. Create and activate a virtual environment in…

updated for python 3.8.2

We should all aspire to be programmers like the experts of old and the experts of today.

Web development has many beautiful algorithms, I think I am in love.

<< previous | next >>

This write-up continues from Python: Syntax, Semantics and Standard Library.


The python documentation remains a major source of information. What is presented here is just a condensed form of what is found there subject to my understanding.


Over the years, different design paradigms have been proposed to help programmers cope with real-world problems.

The concept of identifiers and its limited scope as…

Chukwunonso Nwafor

I love solving computational problems using C++, python and C

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store