A Teletype Model 33 ASR teleprinter, with punched tape reader and punch, usable as a computer terminal, on display at the Computer History Museum in Mountain View, California, US — Source: Arnold Reinhold

Terminal, Console, Shell — We’ve all heard these terms, but do you know the difference between them?

The word Terminal comes from terminate, as in the “terminal” end of a communications process.

You may have heard the term ‘dumb terminal’ referring to basic text-based computer that is communicating with another system that’s doing all the hard work — a server or mainframe.

The first type of terminal was known as a teletypewriter (TTY). Instead of having a screen, a TTY was essentially a smart typewriter/printer combo.

When you typed the input was sent to a computer as well as being…

Photo by Jakob Søby on Unsplash

One of the most simple ways to set up an SSH Tunnel is to make use of the ssh command’s -D argument. This argument allows you to specific a port upon which to listen locally. This causes ssh to act as a local SOCKS proxy server, routing any traffic pointed at this local proxy through the SSH tunnel. More details about the -D argument of ssh is shown below in the form of an extract from ssh’s man page.

-D port

Specifies a local “dynamic” application-level port forwarding. This works by allocating a socket to listen to port on the…

Photo by FLY:D on Unsplash

I recently saw several articles that mentioned research into how password managers store your secrets in memory. Some of the results were not great. Several password managers were reported as leaving some or all of your secrets in memory, as plain text, even after they have been used.

Obviously, this is not ideal.

However, this absolutely does not mean that we should abandon password managers. Password reuse, in other words, people using a password on one website or service that they use on others, is becoming the most common way for malicious actors to gain access to your online accounts…

Photo by James Harrison on Unsplash

In recent years, open source software has become more frequently used by businesses and individuals alike. Why is this, and what makes open source solutions so increasingly popular? Below I list five reasons why open source software can be good for your business.


The security of software used in your business is very important. It is used to protect, process and store your company’s intellectual property. By its nature open source software has the code it comprises of visible to all. This means large open source projects are frequently reviewed by the community, allowing security vulnerability to be spotted and…

Photo by Stephen Crowley on Unsplash

It’s a modern day standard that all web applications store their platform specific configuration in environment variables. In the PHP world, this usually mean a .env file in the root of your project.

Most modern frameworks, such as Laravel and Symfony, come with built in support for a .env file. For older projects, which may have an outdated framework, or perhaps no framework, there may be no support at all. In some cases, you might simply prefer to use a more standard environment file over the way in which configuration is currently provided by your project.

An Easy Solution

As part of upgrading…

Photo by Samantha Lam on Unsplash

It is generally recommended that developers of web applications ensure their users pick decent passwords. This often means ensuring a minimum length, preventing common passwords, or words from the dictionary. Sometimes users need to mix and match various numbers, letters, and symbols too.

But we can do better.

Checking passwords against previous breach corpuses

Several of my open source packages focus around password security. The most popular of which let developers check their users’ passwords, to ensure they have not been exposed in 3rd party data breaches. …

Photo by KOBU Agency on Unsplash

There are many traits that a senior developer should have. Here’s my take on the essentials.

Soft Skills

I feel I need to mention soft skills first and foremost, as they are so frequently overlooked. They’re more than just being nice.

Soft skills revolve around an individual’s ability to harmoniously interact with others. They’re an essential complement to the hard skills more commonly associated with being a great developer.

Senior developers should have the ability to discuss their own thoughts and genuinely take in the opinions of others. Without this, an otherwise senior developer can be at risk of becoming a lone…

Photo by John Barkiple on Unsplash

Minimum viable product (or MVP) is a term that is thrown around a lot in enterprise software development, but not everyone is clear about what it means. Or specifically, what it should mean. It’s a source of significant debate, but this is my take.

What is a minimum viable product?

The minimum viable version of a product is the first version with sufficient features to satisfy the stakeholders and implement the product’s essential functionality. The ‘minimum’ part of MVP will vary heavily, dependant on the aim of the project and the expectations of the people involved.

Here are a few simple examples to demonstrate the concept.

Photo by Christopher Burns on Unsplash

This article is aimed at developers looking to migrate existing data from one database schema to another. It should be very useful if you are planning to move from one system to another, such as moving from Drupal to WordPress, or wishing to migrate external data into a new bespoke system.

UXDM (Universal Extensible Data Migrator) is an open source PHP library I created to simplify the process of moving data from any source to any destination. Installing UXDM is easy via composer, as shown below.

composer require divineomega/uxdm

The example below shows a simple migration of data between two…

Jordan Hall

🖥️ Full stack developer

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