Blog

We offer the articles below in the hope that they will be useful, but we cannot accept liability for any problems caused by the instructions that they contain. If you have a problem, question or feedback relating to one of our articles, please post a comment so that other readers can benefit. We regularly review comments and reply or update the articles, to ensure their continued usefulness. All articles are provided free, without any advertising or tracking, for the benefit of the technical community.

If you require paid commercial support, please contact us for assistance.

How to fix Cygwin terminal not opening

At the moment I'm working on a project where I need to use Windows, but don't have access to the Windows subsystem for Linux. In order to get access to Linux command line tools, I've installed Cygwin. For some reason Cygwin frequently breaks after a system reboot. Clicking on the Cygwin terminal launcher from the start menu, or from within Windows Explorer, briefly flickers as the Cygwin terminal starts and then immediately closes. There are lots of posts about similar issues on online forums, which generally involve some complex reinstallation of Cygwin, or updating the launch shortcuts.

UK government doesn't recognise .uk top level domain

When domain registrations for the .uk TLD* were introduced in 2014, many in the technical community dismissed it as a cynical cash grab by Nominet. Since then, they seem to have been proven right, as evidenced in media coverage by The Register among others. However, several years ago I registered a .uk domain to use for personal emails, as much for the novelty as anything.

Fix missing Droid monospace fonts in VSCode, VSCodium and Sublime on Ubuntu and Debian

Today I noticed that my usual code editors had stopped displaying code in monospace. Here is a quick fix to get that working again.

Monospace fonts are a huge help when editing code, as they make it much simpler to follow the vertical alignment of code at a glance. This is useful for whitespace-agnostic languages such as JavaScript, PHP, C++ etc, and essential for whitespace-dependent languages such as Python.

How to view user-defined stored procedures in PostgreSQL

Recently I’ve frequently been finding myself needing to look up details of custom stored procedures in PostgreSQL databases. Here are a few helpful queries for that.

First, a simple list of the queries:

SELECT n.nspname AS schema, p.proname AS procedure FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid WHERE n.nspname NOT IN ('pg_catalog', 'information_schema') AND p.prokind = 'p';

Second, the owner of the procedures:

SELECT proname, proowner::regrole FROM pg_proc WHERE pronamespace::regnamespace::text = 'public';

MySQL/MariaDB unable to execute: Unknown column in WHERE clause due to TRIGGER

A couple of times recently I’ve seen a mysterious error while developing PHP applications using MariaDB. The error logs show something like the following:

Unable to execute INSERT INTO user ( email, password ) VALUES ( :email, :password ). Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'email' in 'where clause'.

jQuery tablesorter custom sort based on time datetime

For data heavy web projects with data displayed in tables, I frequently use the jQuery tablesorter plugin to allow users to easily sort data without writing a lot of custom code or relying on server-side processing. The plugin autodetects many data types, including dates, but I wasn’t entirely happy with the built-in date processing on a project I recently worked on.

How to disable autocomplete for email input in HTML forms

Recently I was making a simple web form to allow admins of a site to create accounts for new users. The admin enters the email address of the new user. When the form is submitted, a random password is generated and emailed to the user. (This is for privacy/security: it prevents the admin from knowing another user’s password.) However, the admin needs to enter their own password when submitting the form. In other words, the email address and password fields in the form are for two different accounts.