Explore the concepts and build a library

Image credit: Author



What Is Redis?

The Redis docker page says that it is “an open-source, networked, in-memory, key-value data store with optional durability.” This description captures the key (nice unintentional pun) features of Redis.

Open source — Anyone can inspect Redis’ code or contribute to the project.

Networked— Redis uses the client-server model, in which communication between clients and servers happens over a network. In this…

I arrived in the United States (U.S.) several years ago to pursue an undergraduate education as an international student . There is a lot I could say about the international student experience in the U.S., but the purpose of the short post is to share some of the resources I have found helpful for keeping me informed about relevant immigration policies and filing procedures.

When I talk about my experience as an international student, I sometimes mention that in addition to the formal education I received, I also received an informal one in U.S. …

Microsoft’s releases of the Windows Subsystem for Linux (WSL) and Windows Terminal were causes for much excitement as they signified Microsoft’s commitment to improving the developer experience on Windows. There is still much to be desired from both products, but they have already significantly improved the developer experience on Windows.

Windows Terminal showing “Hello, world!” in Vim

One of the issues I have with Windows Terminal is the annoying sound that gets triggered when I hit a text or navigation boundary using the tab, backspace, or arrow keys. Apparently, that sound is a bell, and it is left on by default. …

Using the boto3 library and s3fs-supported pandas APIs

Image showing pandas data frame being read from and written files on Amazon S3
Image showing pandas data frame being read from and written files on Amazon S3


⚠ Please read before proceeding

There is an outstanding issue regarding dependency resolution when both boto3 and s3fs are specified as dependencies in a project. See this GitHub issue if you’re interested in the details.

This is still an issue as of 2021–02–19.

If you need both packages (e.g. to run the following examples in the same environment, or more generally to use s3fs for convenient pandas-to-S3 interactions…

These functions do a lot of heavy lifting

Image shared under CC-BY-SA-4.0 by 1840151sudarshan at Wikimedia Commons



This function comes in handy when there are one or more possible values that could be assigned to a variable or used in a given situation and there is a known preference for which value among the options should be selected for use if it’s available.

If you have been writing SQL queries of at least a moderate complexity, the purpose of a coalesce function may already be clear to you. But for those who are unfamiliar with it, a motivating example may be instructive.

An implementation of the coalesce function in Python…

NOTE: This is a living document.

Last Updated: March 03, 2021

Photo by Hitesh Choudhary on Unsplash

Code formatting


Black is an opinionated Python code formatter. Sit back and let Black do its thing. It’s also nice that…

Black makes code review faster by producing the smallest diffs possible (Black).

Black has extensive code editor and IDE support. See Black Editor Integration for how to integrate Black into your preferred editor or IDE.

Why use an opinionated code editor?

Xmeters: Taskbar System Stats for Windows

As a coder, tinkerer, and a proponent of Free and Open Source software (FOSS), I’ve been partial to Linux operating systems for almost as long as I’ve been intrigued by computers.

And while I’m still partial to Linux systems and use one everyday for work, I can’t ignore some of the things Microsoft has done in recent years to make people like me feel a bit more at home in Windows.

Over the past few months, I’ve been customizing my Windows environment to be more developer friendly by adopting a package manager, the Windows Terminal, and WSL (Windows Subsystem for…

Deserializing a preorder string-encoded binary tree.

Image of a binary tree

In a previous Haskell video, Exploring Binary Trees (Part 2), we implemented three useful functions for extracting values from a Binary Tree into a list. We implemented these functions using the preorder, inorder, and postorder traversal strategies.

If you are not familiar with these strategies for traversing binary trees, I highly encourage you to watch the Exploring Binary Trees (Part 2) video before continuing with this one.

This is a braata video. And if you don’t know what that means, it just means its a little supm supm extra.

In the comments section for the Exploring Binary Trees (Part 2)…

Before we dive in, let us define some key terms that are typically used interchangeably, but are important to distinguish in the coming discussion.

Key Terms

Database — an organized collection of logically related data arranged for ease and speed of retrieval [1][2].

Database management system (DBMS) — “a software system that is used to create, maintain, and provide controlled access to user databases” [1].

Story time

In 1970, a computer scientist named E. F. Codd blessed the world with the relational model, an idea rooted in the mathematics of relational algebra that gave us the now popular view of data organized as tables…

An intuition-building approach

The recursive algorithm for reversing a linked list can be very unintuitive for a lot of people. In this article, we will gradually build our intuition about this algorithm in the sections that follow.

Before discussing the recursive algorithm, it’s important for us to understand why we are able to use recursion in the first place.

Image source: https://www.flickr.com/photos/torley/2361164281

Here’s the big idea. The linked list is a recursive data structure, which means we can use recursive functions to query or perform operations on it.

We can use recursive functions to query or perform operations on recursive data structures.

Hold up! What’s a recursive data structure?

Typically, we learn that…

Onel Harrison

Software Engineer — Data & Machine Learning

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