The first post, of a brand new blog.
Around this blog right now, yokermusic.scot is in disarray. An unlucky traveller through the internet could technically stumble upon this broken website and make their way slowly around it, if they clicked on the right links and followed the broken HTML forms. I will take this opportunity to attempt to explain in brief why this website exists, how it does what it does and what I hope to achieve with it.
I’ve never wanted to work for someone else. At the time of writing this I am an employee but I’ve never felt satisfied with the idea of not creating your own destiny. The goal for me is to make my own income for myself, to enjoy my work and to achieve what I want to achieve in life. I’ll confess: I’ve never blogged before, never written a website seriously before and never tried to make money on my own before. This is new territory.
Over a year ago, through regular polemical discussions over breakfasts that lasted hours longer than they were planned to, I came to three arrogant decisions:
Sometime I will dedicate posts to each of these, but for now here is a summary of my thoughts on each topic:
yokermusic.scot runs on Pico CMS with a custom plugin.1 I’ve always found most large CMS to be unwieldy, difficult to administer and require bodging to make websites that don’t conform to the standard templates. I also don’t understand how they work on the inside which is always a big no–no for me. Through a myriad of different templates and include files, I am able to create all the different pages I need. A vastly different template is easy to create just by copying the file and changing the necessary parts. The plugin file is currently a monolithic mess of PHP around an huge switch statement which determines the template to render, I need to refactor it. Since everything else is flat–file, the database for edition generation is SQLite.2
The most complex bit of logic revolves around edition generation. Each edition consists of a Lilypond file with variables which are turned on and off using lilypond’s “-e” flag which allows the insertion of arbitrary Scheme code.34 Accompanying the edition is an XML file which describes the questions to be asked of the user and how they correspond to Scheme output. The questionnaire for each edition is generated from the XML using an XML to array function and then, scarily, Pico’s extension language Twig.5 Precompiled editions are kept in a gzipped filestore and non-compiled editions are queued for compilation using php-resque.6 The compilation process mounts a compressed read–only filesystem along with bind mounts for in and out folders, chroots into the filesystem, executes the lilypond command, exits the chroot, destroys the mounts and archives the relevant files.
This way, hopefully, no Scheme passes through the user and I can safely run Lilypond without the safe mode option which would prohibit passing Scheme into the compilation process.
Yoker/Yockÿrr/Iuchair was originally conceived as a joke loosely based upon the Glaswegian comedian Limmy’s sketch about a junkie called Dee Dee taking a fantastical trip to Yoker, Glasgow.7 8 Upon making it to Yoker, Dee Dee’s inner monologue exclaims:
I was in Yoker. I thought this day would never come. Is it really this easy? Is it really this easy to get the things you want in life? You just need to hold out for it?
Upon deciding to start a record label/sell editions/perform music I decided on the name Yoker because it was funny. It’s a memorable name and I think that if people don’t know the name’s genesis, then they think nothing more of it.
By attempting to do everything, I hope to never compromise the integrity of the music that I create.