Categories
Data Structures & Algorithms Python Video

How to Implement Quicksort – Essential Sorting Algorithms in Python

In this video, we learn the ins and outs of Quicksort, a sorting algorithm that will come in handy in many situations. We go over theory, and then visualize the entire sorting process from start to finish.

We cover the quicksort method in general, as well as two partition schemes: Lomuto and Hoare methods. Lomuto is simpler, but the Hoare method, named for Quicksort’s inventor, C.A.R. Hoare, is more efficient. \

The full implementation in Python can be found at the following link: https://github.com/stephengrice/youtu…

Thank you for watching. Please leave comments or create an issue on Github if you have questions or find an error. Create issues here: https://github.com/stephengrice/youtu…

Categories
Article Data Structures & Algorithms How To Python Video

How to Implement a Binary Search Tree in Python

Decisions, decisions… Life is all about choices! Usually there are so many ways to go. An infinite expanse of roads and pathways stretches in front of you, an endless gradient of details; as you consider them, your head starts to spin, your eyes start to droop, your mind races, your head pounds –

Wait a second. There’s no need to stress. Since we’re talking about Binary Search Trees, decisions are going to be a lot easier. A Binary Search Tree (BST) gives you two choices: left or right, less than or greater than, 0 or 1 – hence the name, binary.

Categories
Article Linux

Push Out Your SSH Keys – Jump Nodes in a Jiffy!

Every day, system administrators, students, professors, and everyday computer users struggle with entering their password on the command line. With each passing jump from one system to another, ten seconds tick by. Whoops, that’s a mistake – make it 30!

Over time, entering your password every time you want to move between nodes using SSH can become a real hassle. The benefits from “pushing out” your SSH keys, or making all of the nodes you typically jump to trust your public key, will save you more time with every use, snowballing from seconds, to minutes, to hours!

This article describes two ways of pushing out your keys: The easy way, and the hard way.

Categories
Article Programming Video

Ruby Gems: How to Make Your Own (Just Write, Build, and Push)

Anyone who has used Ruby before knows that gems are the spice of life. They are easy to install and distribute, even easier to use, and most importantly, they provide useful functionality. It’s not uncommon to see entire software projects centered around a single well-made gem. Take any Ruby on Rails project, and you’ll see this in practice.

Categories
Article Linux

Breaking Free from User Space: Writing Your First Kernel Module

This post is Part 3 of a series on the Linux kernel.

Part 1 – Part 2

So we’ve already built the kernel from source and even modified the source code. While these were some pretty cool parlor tricks, isn’t it about time we learned something useful?

Well, I can’t promise that, but today we’ll take a step in the right direction by building a Linux kernel module.

Categories
Article Linux

Making Simple Modifications to the Linux Source

This post is Part 2 of a series on the Linux kernel.

Part 1 – Part 3

The Linux kernel is one of the most complex open-source projects available to the public, and the source code that comprises it is highly intricate, to say the least. Knowing this, I wondered what it would take to pick apart such a technological beast and actually begin to understand it. The key to understanding, like anything else, is to learn by doing. The entire source repository is available to view in a browser, and more than 95% of it is written in C. How hard could it be to write a little C code?

As it turns out, it’s harder than expected. Keep reading to get the full rundown on how I edited the kernel source, built it, broke it (several times), and finally made a simple change that produced an output in the system logs.

Categories
Article Linux

How to Compile the Linux Kernel from Source

This post is Part 1 of a series on the Linux kernel.

Part 2 – Part 3

Linux is everywhere, and there are plenty of Linux distributions available providing great out-of-the-box features. But what happens when you need to make an intricate, low-level change to system functionality? What if you wanted to get into kernel development and start to understand one of the world’s largest open source projects?

Categories
Article Data Structures & Algorithms How To Python Video

How to Implement a Custom Hash Table in Python

This tutorial will show you how to implement a hash table with separate chaining. It’s not the most efficient method, but it is the simplest way to get started and create a fully functioning hash table.

Categories
Article Data Structures & Algorithms How To Python

How to Implement a Queue From Scratch Using Python

You may hate the line at the DMV, but without it, things might turn into a rough-and-tumble free for all! In the same way that a line keeps raging motorists from getting out of hand, a Queue helps your computer keep its ducks in a row. The Queue functions very much like a line of people. It’s a First-In, First-Out (FIFO) data structure, so no cutting!

Categories
Article Data Structures & Algorithms How To Python Video

How to Implement a Custom Linked List in Python

Need a quick run down on a classic data structure? Look no further.

Click here for the full LinkedList source code. Also, here is the test code.

A linked list is an ordered collection of elements. The thing that makes it special is how it stores data. Behind the scenes, each number, string, object, or other value you may need to keep track of is stored in a Node. Each Node references its successor.