One of the really cool things covered by Abelson and Sussman’s classic series of lectures, Structure and Interpretation of Computer Programs (SICP), was how fundamental programming constructs could be implemented almost from nothing. This, of course, culminated in the implementation of Scheme within Scheme itself, but it’s interesting to look at some of the smaller building blocks.
The Android operating system (as does iOS, I believe) has a rather annoying “feature”. That is, whenever your device starts charging, its screen turns on, presumably to let you know that the device is now charging.
This sort of feedback is usually considered good interaction design. It’s important to inform the user when events occur. However, this must not come at the expense of annoying and inconveniencing the user.
It took me an unbelievably long time to grasp functional programming. In the lectures I took, it was described in terms of lambda calculus with lots of weird mathematical symbols that didn’t make sense to me.
However, little did I know that I had already learnt functional programming back in GCSE Maths, without even knowing it!
A common misconception I’ve noticed amongst fellow programmers is the idea that constants can never be modified. Whilst it is true that a constant’s value may never change during runtime, it may certainly be appropriate for a programmer to modify it in the source code.
This post was originally written in 2015, but has been revised to reflect changes to the Steam service.
PC game distribution service Steam allows users to purchase funds for their ‘Steam Wallet’ which can then be used to buy games and in-game content.
That can be done on this webpage. It’s great if you want to add £4, £10, £25, £50 or £100 to your account, but what if for some reason you wanted to add an amount that’s not listed? Is this possible?
The answer is, of course, yes! But it requires a little trickery:
Today I came across this satirical take on the FizzBuzz programming test (via Hacker News). The FizzBuzz test requires you to write a program that will output the positive integers 1 to n (where usually n=100) with certain substitutions, as in the children’s game. If the number is divisible by 3, the value
Fizz is provided. If the number is divisible by 5, the value
Buzz is provided. If the number is divisible by both 3 and 5, the value
FizzBuzz is provided.
Here are my thoughts on each of the acts in the second semi-final of 2018’s Eurovision Song Contest.
Here are my thoughts on each of the acts in the first semi-final of 2018’s Eurovision Song Contest.
I am a big fan of detective fiction and recently discussed the genre with some of my friends. The following is adapted from what I wrote in that discussion, and I am publishing it for posterity.
The 1920s and 1930s are termed the Golden Age of Detective Fiction, during which a great number of works from Agatha Christie and her contemporaries were published.
This coming Thursday, 3rd May, England goes to the polls. Or rather, London and a few other places do. Compared to the general election in May 2015, the various elections (including the London mayoral and London Assembly elections) in May 2016, the EU referendum in June 2016 and the general election in June 2017, this one is a bit of a bore.
Back in 2014, I created a website to host a friend’s solutions to one of my all-time favourite mystery novels, Ryukishi07’s Umineko no Naku Koro ni.
The original solutions came in plain text, which I wanted to apply formatting to. Not realising there were existing solutions for it, I formatted the files with my own custom tags, and wrote a parser in PHP that would read the files and output the web pages.
The result was acceptable, though not everything was automated, so the process was a little tedious.
Four years later, I am now rather a fan of Markdown and Jekyll, which power this blog. These technologies can make creating static websites a real breeze. I decided to use my newfound knowledge about them to create an improved version of the website I had created before.
This is an updated version of a previously published post.
Once again, I am attempting to write a blog. I’ve attempted to do so several times before, with varying degrees of success. Here are some of the services I’ve tried, what they did well, and what I didn’t like about them.
Note: To use this tool, you need access to a server where you can upload a PHP script that will run when queried over HTTP.
Mastodon is a relatively new decentralised social network I’ve been trying out recently (you can find me at
@firstname.lastname@example.org). It’s a lot of fun and I’m excited about the possibilities it opens up.
A number of us are currently taking part in #woollyweek, in which we log out of Twitter entirely for an entire week. In fact, in the longer term, I’d like to phase out my use of Twitter entirely and supplant it with Mastodon.
That, however, raises the question of how your Twitter followers will be able to find you on Mastodon. You can tweet out a link to your Mastodon profile and pin that tweet, which is probably a good idea, but even pinned tweets are unlikely to attract much attention in the longer term. What you really want to do is to tweet your toots.
Ever wanted to get hold of high resolution image files of your favourite LINE stickers? It’s easy!