Chris Worfolk's Blog

Summer on the Horizon on iBooks

October 18th, 2016 | Books, News

Yesterday I announced that the Leeds Restaurant Guide had returned to the iBook Store. Today, I am pleased to announce that my novel, Summer on the Horizon, is available on the iBooks Store for the first time.

It is already available from Amazon in paperback and Kindle edition, and is now available on the iBooks Store as well.


Restaurant Guide on iBooks

October 17th, 2016 | Books, News


When I originally released the Leeds Restaurant Guide, I originally published it via a company called eBook Partnership. They are a great bunch of people, and get your book into pretty much every eBook store there is.

However, it was not perfectly suited to the format of the guide. We push out new editions regularly, and it was not practical for us to push these changes through in the same way we could with Kindle. Therefore, after two years, I decided to call it a day with the other eBook stores.

That changes today, as I now have direct access to the iBooks Store. The guide is back in there and will receive updates for future editions too. View on the iBooks Store.

Introducing Bedtime

October 15th, 2016 | Tech


Cook: “Here at Apple, we’re proud to announce our latest innovation. It’s called Bedtime, and it can improve your sleep quality by 160%.”
Ive: “Tim, I think bed time is already a thing.”
Cook: “NO, we invented it!”

Baby Worfolk

October 11th, 2016 | Family


It’s a girl!

Nappy cakes

October 7th, 2016 | Family


Yeah, apparently they are a thing. It is a bunch of presents, predominantly nappies, arranged into a cake shape. I had never heard of it until Elina came home from her last day at work carrying one. Then, in a pleasant coincidence, we arrive at my parents to be handed another one from my auntie. More are welcome: you can’t have too many nappies!

Flavoured vinegars

October 4th, 2016 | Food


As if vinegars are not exciting enough on their own, they can be made even more exciting by adding other stuff. In these bottles I am making a garlic vinegar using white wine vinegar and a rosemary vinegar using a red wine vinegar.

You blanch the ingredients for one minute before refreshing them, then inserting them into a steralised bottle and filling the rest with the vinegar.

I cannot say whether it has been a success yet as you need to leave them for two months before use!

How we built Rena Men

October 3rd, 2016 | Programming, Tech


Recently I launched a new website, Rena Men. It is deployed onto the Heroku platform and does quite a bit of cool stuff, so I thought I would document what I have done here.


It is implemented in PHP, using the Rauma framework. Rauma is a project I developed for Learn Finnish and subsequently open-sourced.

Rena Men is built in several modules. There is a website, a content management system (CMS) and an image server. Because they use common functionality like the entity classes, there is also a shared library which is brought in as a Composer dependency.

The website itself is fairly straight forward. Beyond the PHP, there is only only the CSS, pre-processed with SASS, and a tiny amount of JavaScript loaded in with require. The CMS is a bit more complicated, using Babel to transpile the ES6 JavaScript, and styled up with Bootstrap.


Each module is deployed onto the Heroku platform. This makes it really easy to do as I can roll out an update just using git push. The code itself is stored in a series of private repos on BitBucket, and the Heroku build process fetches them from there.

In the case of the CMS, it also uses the Node buildpack to run a Bower install. Third party additions such as Bootstrap are pulled in on-the-fly just like we do with Composer dependencies. Heroku does not have SSH key integration for Bitbucket (it does for Github) so I’m using a ready-only account with Basic HTTP auth access.

The database is provided by one of the Heroku app add-ons. The storage is provided by Amazon S3. Heroku is built in AWS, so that fits nicely. We store originals in the file system, and then crop them on-demand using the image server.


Because cropping images is expensive, the image server originally had a local file cache where it would store each crop. However, as Heroku has a ephemeral file system, you cannot write to it, so I had to turn that off in production.

Instead, we’re using the AWS CloudFront CDN. This was super easy to implement. I just created the settings in AWS, pointed cdn subdomain at AWS and it started working. Like other web proxies, it caches your content based on the headers you send it.

Herb oil

October 2nd, 2016 | Food


This is one of Michel Roux’s recipes. You heat half a litre of oil (I used sunflower) then dump some herbs into it. I used parsley and tarragon. Leave it to cool and infuse, then strain it and pour it into a steralised bottle.

Whether I can tell the difference between regular oil and herb oil remains to be seen.

The trouble with Corbyn voters

October 1st, 2016 | Politics


Last month, Jeremy Corbyn won another significant victory in winning the Labour Party leadership election. He increased his share of the vote to 61.8%. This is especially notable because Labour banned any member who had joined in the past 9 months from voting. Therefore, his share of the vote is going to continue to increase for the next nine months as well.

The question still remains as to whether he can win a General Election. Clearly he is electable in almost every other situation. However, Labour trail in the General Election polls by a significant amount. How much of this is due to Corbyn and how much to the attitude of the rest of the Labour party is unclear, but it is difficult to extricate a party leader from responsibility.

Here is the problem though: I think people chose to vote Jeremy Corbyn because they wanted someone who was genuinely different. They were given the choice between electable business-as-usual candidates, and Corbyn, and they chose the latter. This is not unusual. Those of us who vote for the Liberal Democrats, Greens, or any of the minor parties, know the feeling of deciding to stick with your principles rather than compromising them for electoral glory. We would rather stand up for what we believe in than take a distant second best to have our candidate in Number 10.

My guess is that Corbyn has been elected a on a tide of this feeling. Many Corbyn voters believe he can win (his record in elections is now 11 for 11 undefeated), but perhaps many of them simply do not care whether he is electable or not. They are making a stand for working-class people, for the NHS and for traditional Labour values.

If this is the case, then there is no point putting up candidates like Owen Smith to try and win back the voters. They are not interested in whether Owen Smith has a more expensive suit or more-neatly trimmed beard. They are not in the market for a more-mainstream looking candidate. You cannot win them over with talk about election polls, because it is values they are interested in.

Nor will votes of no confidence, nor continued party scheming and in-fighting do any good. All of this is based on the idea that once Corbyn voters see the pragmatic option is a new leader, they will abandon their hero. But this premise could be entirely misleading. Instead, perhaps it is the case that after 20 years of New Labour, the membership has finally found the balls to stick up for traditional Labour values.

If so, campaigning against Corbyn is futile. Setting your own house on fire does not work when everyone else is willing to burn.

Plateau de fruits de mer

September 30th, 2016 | Food


I’ve seen a couple of restaurants offering a fruits der mer platter recently, so thought i would give it a crack myself. The name is French and translates to “fruits of the sea”. It typically consists of a mix of shellfish, served over ice.

Mine included a lobster, cut in half down the middle, a crab, crayfish, prawns in the shell, muscles and clams. All of it was bought live from the fish market. I am not normally a lobster fan, but serving it on ice worked really well.

The downside of serving it all on ice is that it created a very slippy base: when carrying the platter the whole array of food slid from side to side, and I even lost a prawn or two moving it to the table.


I served it with two mayonnaises. This was not the plan, but my first one turned out too thin, so I did a second one. I also did a gribiche sauce, which is the pale one in the bowl and a honey mustard sauce (bottom left).

I won’t be doing it again in a hurry: it was too much of a hassle.