Apps

This is the place where I showcase the "apps" I've created for myself over the years. The development process always followed the same pattern. I'm trying to tackle some problem which can be best solved through programming, such as "Which fonts support which characters?" or "which scales contain which chords?" So I write a script in Python that gives me the solution. However, the script is not terribly "user friendly". Fortunately, I can use Django ("The web framework for perfectionists with deadlines") to build a web app while reusing most of my existing code. The resulting application is not only easier for me to use, but also (by putting on this website) usable by others.

While all applications have been tweaked to be compatible with Mezzanine (the CMS this website uses), they should be compatible with any other Django project (especially those that extend "base.html"). All of these apps can be installed with the Python package manager pip, and all source is available on GitHub. Please read below for more detail.

Is it YAML?

YAML is a data-serialization-in-text format that I've been interested in since 2001 or so. It doesn't have the overhead of XML, and it has more flexibility than JSON. It never took off as I originally anticipated, but neither is it dead; the main personnel behind its development are busy with other things, and no-one has taken up the slack.

At one stage, I was interested in writing a "YPath" specification - intended to be to YAML what XPath is to XML. Alas, other things intervened, and I became too busy to do anything. However, I had time to create my own "Is it YAML?" web application to check whether text was actually YAML or not. There was an official web-based reference parser, but I never liked how it rendered non-ASCII characters using escape sequences, and now the page appears to be 404. So I rolled my own.

There is a GitHub repository for Is it YAML? The app can be installed via:

pip install isityaml

Chord Generator

When I was young and learning the guitar, my parents gave me a copy of The Guitar Handbook as a present. It's a well-regarded book, and justifiably so. One of the things that amazed I was the number of chords that one could play on the guitar - not just "major" and "minor", but "seventh minus ninth minus fifth", to take an example plucked from the air. The handbook also described lots of scales, such as "Harmonic Minor", and "Melodic Minor" both ascending and descending. What wasn't clear is which chords went with which scales.

As a teenager, I tried to solve the problem with paper and pen. As a young adult, I wrote some program in Visual Basic, but the output wasn't very clear to read. As an older adult, I wrote Chord Generator for the same task. HTML tables are far easier to read.

These days, I prefer the bass guitar, but often have difficulty finding time to play any instrument.

Yes, there is also a GitHub repository for ChordGenerator (and there is an additional repository for musictheory, which ChordGenerator depends on). Or you can install the app via:

pip install chordgenerator

Glyphviewer

Glyphviewer is an application that takes a font file (such as Deja Vu Sans or Roboto or even Times New Roman), and shows which characters it supports. It even displays text using that font. For more information, please see the documentation. Yes, there's a GitHub repository, and you install it via:

pip install glyphviewer

Recent Tweets