The complete package from option handling to writing a man page

Photo by Ben on Unsplash

If you’re like me, you’re more comfortable writing simple scripts in PHP than C or Go or whatever language people are currently recommending. Fortunately, PHP is more than capable of producing command line apps for use in Linux or macOS.

In this tutorial, I’ll explain:

  • Components of a command line app including things like a man page, config files, and so on.

As a minimum, you should be able to use these concepts and techniques to develop your own simple command line applications, in your language of choice.


Photo by David Iskander on Unsplash

Literate lessons from lockdown life

So you want to be a freelance technical writer? Maybe not, but maybe you’re at least wondering:

  • What’s it like working as a freelancer for a startup?
  • How does it feel working remotely for a product launch?

Hopefully, I can answer those questions and shed some small insight into working remotely, as a freelance writer, for an exciting startup.

The setup

Quix is a small startup with a very strong team, headed by four McLaren engineers. Their work is, quite frankly, mind-bogglingly complex. They’re fighting the good fight: taking a pile of complicated concepts and technologies…


This Metroidvania is minimal in every way, but manages to deliver a great gameplay experience by focussing on the essentials.

The ‘overworld’ screen allows travel between the four settings, although the order in which you’ll do everything is relatively fixed.

I have a confession. I’ve never played a Metroid game. I know, I know: hand in my gaming card, how can I even pretend to have any credibility when it comes to reviewing video games, right? And it gets worse: even though I’ve played one or two entries in the Castlevania series, I haven’t even played Symphony of the Night, the one that lent its suffix to the Metroidvania genre that I’ve become so fond of.

It’s a cross I’ll just have to bear for now — at least until I can be bothered to play them on NSO. For…


Give readers a smoother journey across your JavaScript-enhanced sites

Photo by Kyle Glenn on Unsplash

A short history of history

The back button is the web’s ‘undo’, practically its killer feature second only to the hyperlink. It’s the availability and simplicity of the back button that allows link-following to be a cheap, non-destructive action. The back button encourages readers to browse more.

In pre-JavaScript days, the role of the back button was straightforward: return to the previous page i.e. URL. This was taken literally, but advances in client-side technologies now have us questioning just what a page is and how well it corresponds with a URL.

As an example, consider a page that contains a tabbed interface, in which a…


A tale of carelessness and stupidity

Photo by kyler trautner on Unsplash

I’ve been working with version control systems for most of two decades now, so I really should know better. Since starting out with CVS, it’s been drilled in to me:

check in your source, the stuff you can’t recover if you lost it

There’s never an exception to this rule, and if you think there is, think again. I mean it: literally take the time to think about your exception properly, then realise why you should still version control that file.

This is a short tale of careless autocomplete, a quirk of Unix, and a hastily assembled .gitignore file. …


A static-site approach to preference management

Photo by Chris Barbalis on Unsplash

Opening links in a new window — or a new tab for the best part of twenty years — has always been a hot button issue. Many writers feel like it’s the sensible thing to do in order to ‘keep a reader on your page/site’, whilst usability practitioners despair at what they see as annoying and counterintuitive behaviour that ignores the user’s wishes. In Linking to a new tab vs. same tab, Jesse Summers argues that:

If a user clicks on a link, they shouldn’t be surprised by what happens.

and I mostly agree. There are noted exceptions but, generally…


Tracing the DNA between a brand new game and a selection of classics

The survival sub-genre has emerged into the limelight in recent years; it combines parts of several other genres, depending on which game you play. Typically, there are dire circumstances, scarce resources, and the need for the player to craft what they need from those resources in various clever ways. Games as far-ranging as the classic Oregon Trail all the way to this year’s Ground Zero fall into this category in some way, but they share a common DNA. Let’s look at several of these titles to see what elements connect them.

The Survivalists (2020)

The Survivalists is, unsurprisingly, a survival game, but it’s…


Played on Nintendo Switch

Big Brother meets … Big Brother. In this pixellated tale of dystopian reality game show, you’re tasked with completing a series of platforming puzzles — by fair means or foul.

It might seem nepotistic, but any game with a character named ‘Bobby’ is already off to a good start in my book.

Mining the Orwell playbook is hardly an original concept, but it feels churlish to complain about that when the details are handled as well as they are in Ministry of Broadcast. Many individual touches combine to create a chilling atmosphere — literally, with the constant snowfall and icy sections present — and the foreboding music backs this up to create a genuinely unsettling game.

The overall task is to reunite…


Spiritfarer is a captivating game with exploration, crafting, and platforming elements, woven around the moving stories of its characters.

Undoubtedly, it’s the visual style that initially attracted me to Spiritfarer. I’d been following this game’s development for some time, so I was delighted when it announced during Nintendo’s Indie World Showcase in August. The 2D hand-drawn, cartoon style is reminiscent — to my eye, at least — of Japanese animation studios such as Nippon Animation or Studio Ghibli.


Using JSON-LD for better SEO and other benefits

Photo by Kenny Luo on Unsplash

What is JSON-LD?

JSON-LD (JavaScript Object Notation for Linked Data) is a highly-structured yet flexible data format that can be used to describe web pages, people, and all sorts of types of data available online.

One high-profile usage is Google’s ‘review snippets’ — small pieces of additional information appearing alongside normal search results. For example, if you search for “interstellar”, you should see something similar to this:

Bobby Jack

Technologist & writer, Bobby is currently working on several projects including a management dashboard for static websites and an education portal. bobbyjack.me

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