This website contains notes & cheatsheets for web development, Linux systems administration, information security and cryptocurrency.
This site is maintained by David Egan:
19 Jul 2018
When looping with an iterator, the index of the current iteration isn't immediately obvious unless you resort to incrementing a counter. Fortunately it's easy to find the start and end of your loop.
12 Jun 2018
Simple http server socket in Linux. This is an educational work in progress, and these are my notes.
27 May 2018
Python comprehensions are syntactic sugar constructs that provide a way to build a list, dictionary or set from a starting list, dictionary or set whilst altering or filtering elements.
01 Apr 2018
04 Feb 2018
There are many ways to collect user input. In this example a user is prompted to make a selection from a numbered list. This sets the
int choice variable, which can then be used to control programme flow.
15 Oct 2017
Protect your sensitive data - create a LUKS encrypted backup partition for Ubuntu 16.04 Xenial Xerus that is automatically mounted on boot.
22 Aug 2017
Access a Bitcoin core wallet in an airgapped environment. Secure management of cold-wallets.
20 Jul 2017
Fail2Ban can help protect your Linux server from attack. It's a Python package that monitors log files and dynamically adjusts firewall rules to block malicious IP addresses. This article shows how to configure Fail2Ban so that specified IP addresses are ignored.
03 Jul 2017
Ethereum is a decentralized blockchain-based platform that runs smart contracts. Because of the decentralized nature of Ethereum, smart contracts run exactly as programmed - short of an internet apocalypse, there is no possibility of downtime, censorship, fraud or third-party interference. The network is cryptographically secure, decentralized and tamper-proof.
01 Jul 2017
Install Bitcoin Core in Ubuntu 16.04 - how to download and verify from bitcoin.org.
22 Jun 2017
Enable all Apache virtual host configurations at once. This article provides a useful BASH script that loops through and enables all vhost configs - useful when setting up new development machines or changing servers.
28 May 2017
When running migrations on Laravel 5.4 and MariaDB you may encounter an error related to the permitted maximum length of keys - "1071 Specified key was too long; max key length is 767 bytes" Fortunately, there's an easy fix.
22 May 2017
This article lists some sensible configuration defaults for Apache 2.4 on a Ubuntu 16.04 server. It explains how to apply these globally at the server level.
17 May 2017
When submitting a form to a WordPress site, there are a number of reserved keywords that should not be used as name attributes - including “name”, “author” and “type”. Using such keywords may result in odd errors - either unexplained 404 errors or the template reverting to the
26 Mar 2017
When developing a custom Laravel package, you may require an additional package. This article describes how to use Composer to manage such dependencies, and how to use the custom package's service provider to make the added functionality available.