Photo by Tim Gouw on Unsplash

A couple of weeks ago, I was contacted by a friend to help them explain what the heck P = NP is. I became interested in the topic far back in my second year at the university. What drove me was the 1 million dollar price tag on the thing. Provide proof that P = NP, or otherwise (P ≠ NP), and smile all the way to the bank. For the naive undergraduate, this is a cool opportunity to become wealthy. It’s years now and prospects aren’t great. Have I given up? Yes!

So what are P and NP?

To understand these concepts, we have to…


Learning the basics of JavaScript first before diving into frameworks will give you a lot of leverage in your career journey.

Photo by Claudio Schwarz | @purzlbaum on Unsplash

It was our final meeting with our project supervisor before the presentation. Pius (name changed) was working on an e-commerce app. Everybody except our supervisor knew he didn’t build that app.

He bought it from a website that claims to sell A-grade projects for final year students like him. The supervisor noticed a flaw in the design of the app. The system has no way of ‘knowing’ when the customer gets their product. …


Photo by Jefferson Santos on Unsplash

If you have been wanting to build a web scraper or were just curious about how it is done, I have created this simple walk-through tutorial to get you started. In this tutorial, you will learn the very basics of web scraping. Even though this tutorial uses JavaScript/Node.js, the concepts used here are the same for all programming languages. So if you want a tutorial that does not assume anything, you are in the right place.

Project Setup

As a first step, let’s install Node.js. Node.js is a JavaScript runtime that enables us to run JavaScript outside of the browser. Every browser…


Credit: pexels.com

Starting your programming journey can be a daunting task. It might seem like sailing solo in turbulent waters. Below are some valuable guides to keep you on track as you continue your programming journey.

You don’t have to memorize

This is a problem I see with new programmers. New programmers think that they have to remember all the syntax and functions of a language or if they implement a solution, then they have to remember every step of that solution to fully claim they’ve solved that problem. You do not have to remember or memorize anything. I remember ICPC contests back in my undergraduate days…


Recursion can be a difficult concept to grasp. For most people, the idea of a function calling itself is nothing to wrap one’s head around. Here, I use a simple analogy to explain some of the key components of recursion. This is for someone who is new to the concept or uses recursion but does not seem to understand the whole idea of it.

Let’s say there is a person called Steve.
So Steve was given some oranges to sell. But Steve is so lazy that he does not want to sell all the oranges right away.
Steve noticed that he…


from pixels.com

Unlike other tutorials for both complex and simple set ups, setting up Nutch on a Linux machine is not straightforward even when you follow the official tutorial. Getting Solr and Nutch to working on my machine was a nightmare but I am going to simplify it for you here:

Note: You need to have Java installed on your machine, as both Nutch and Solr are dependent on it.

Firstly, let us get Solr installed

Head over to the Solr website and download the Solr binary release:

Stephen Kastona

I learn, unlearn and relearn. I write code. I’m a christian. I love family. I love to grow.

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