# Blog Posts

When You Really Don’t Want Forced Automatic Updates
Tuesday 5th June, 2018

Description A Google Car speeds down the road towards a precipice. The computer inside the car is saying “WARNING: SYSTEM GOING DOWN FOR 10 MINUTES WHILE UPDATES ARE INSTALLED”.

R-Taxben: a Microsimulation Economic Model in R
Friday 23rd March, 2018

I’ve just finished a slideshow about a preliminary translation of a simulation of the UK economy from Python into R. The simulation is the one I’ve been blogging about in recent posts. It’s a “microeconomic” model, meaning that it simulates at the level of individual people. In contrast, a “macroeconomic” model (which this is not), … Continue reading “R-Taxben: a Microsimulation Economic Model in R”

The Perils of Social Media
Monday 22nd January, 2018

Here’s a comic strip about the perils of social media, with reference to a blog by the science-fiction writer Charlie Stross. Click on the image below.

Two Kinds of Conditional Expression: ifelse(A,B,C) versus if (A) B else C
Friday 15th December, 2017

One out of quite a lot of confusing things about R is that it has two kinds of conditional expression. There’s ifelse(); and there’s the if statement. It’s important to know which one to use, as I found when trying to write a conditional expression that chose between lists. The first thing to appreciate is … Continue reading “Two Kinds of Conditional Expression: ifelse(A,B,C) versus if (A) B else C”

Monday 20th November, 2017

Good news that Google have announced they’ll do something about the spoof children’s videos on YouTube. But given how long they’ve taken to do so, I think my cartoon below is justified. Artificial Intelligence is not up to rejecting such videos automatically (it’s an AI-complete task), and there are too many for staff to moderate. … Continue reading “Google Babysitter”

Suffer, Little Children
Saturday 18th November, 2017

Here’s a cartoon I just drew, following the news that YouTube has banned the Toy Freaks channel. Description YouTube master control console in Google HQ. A screen on the console shows a Toy Freaks video, with anguished child. To its right is a two-position switch labelled ‘Delete’ / ‘Leave until New York Times notices’. It’s … Continue reading “Suffer, Little Children”

Beat the Delays: installing R and the BH package on a memory stick
Monday 13th November, 2017

I use R on a range of Windows machines. Often, I’ll only use these once, and they won’t already have R. So I want to carry an installation with me. So I decided to install R on a memory stick. Installing R itself worked, once I’d changed the folder on the “Select Destination Location” pop-up. … Continue reading “Beat the Delays: installing R and the BH package on a memory stick”

Experiments with count(), tally(), and summarise(): how to count and sum and list elements of a column in the same call
Monday 13th November, 2017

Most people have a job. Some don’t. And a few have more than one. I’ve mentioned before that our economic model works on data about British households, gathered from surveys such as the Family Resources Survey. Each collection of data is a year long, and contains a file that describes all the adults in the … Continue reading “Experiments with count(), tally(), and summarise(): how to count and sum and list elements of a column in the same call”

Second-Guessing R
Monday 13th November, 2017

I keep doing experiments with R, and with its Tidyverse package, to discover whether these do what I think they’re doing. Am I justified in spending the time? I’ve said before that the Tidyverse follows rather different conventions from those of base R. This is something Bob Muenchen wrote about in “The Tidyverse Curse”. Dare … Continue reading “Second-Guessing R”

Experiments with summarise(); or, when does x=x[[1]]?
Sunday 22nd October, 2017

Here’s another innocent-eye exploration, this time about the Tidyverse’s summarise() function. I’d been combining data tables by nesting and joining them, which gave me a tibble with nested tibbles in. I wanted to check the sizes of these inner tibbles, by mapping nrow() over the columns containing them. The Tidyverse provides several ways to do … Continue reading “Experiments with summarise(); or, when does x=x[[1]]?”

My Testing Was Hurt By a List With No Names
Tuesday 10th October, 2017

I spied a strange thing with my innocent eye. I was testing spread_to_list, the function I wrote about in “How Best to Convert a Names-Values Tibble to a Named List?”. One of my tests passed it a zero-row tibble, expecting that the result would be a zero-element list: test_that( “Test on zero-element tibble”, { t … Continue reading “My Testing Was Hurt By a List With No Names”

Multinest: Factoring Out Hierarchical Names by Converting Tibbles to Nested Named Lists
Friday 6th October, 2017

Consider this tibble: vat_rates <- tribble( ~l1, ~l2 , ~l3 , ~val , ‘VAT’, ‘Cigarettes’, ” , ‘standard’ , ‘VAT’, ‘Tobacco’ , ” , ‘standard’ , ‘VAT’, ‘Narcotics’ , ” , 0 , ‘VAT’, ‘Clothing’ , ‘Adult’ , ‘standard’ , ‘VAT’, ‘Clothing’ , ‘Children’ , 0 , ‘VAT’, ‘Clothing’ , ‘Protective’, 0 ) It contains … Continue reading “Multinest: Factoring Out Hierarchical Names by Converting Tibbles to Nested Named Lists”

How Best to Convert a Names-Values Tibble to a Named List?
Friday 6th October, 2017

Here, in the spirit of my “Experiments with by_row()” post, are some experiments in writing and timing a function spread_to_list that converts a two-column tibble such as: x 1 y 2 z 3 t 4 to a named list: list( x=1, y=2, z=3, t=4 ) I need this for processing the parameter sheets shown in … Continue reading “How Best to Convert a Names-Values Tibble to a Named List?”

Experiments with by_row()
Thursday 5th October, 2017

I’ve been experimenting with by_row() from the R purrrlyr package. It’s a function that maps over the rows of a data frame, which I thought might be handy for processing our economic model’s parameter files. I didn’t find the documentation for by_row() told me everything I wanted to know, so I made up and ran … Continue reading “Experiments with by_row()”

Abstract Data Types and the Uniform Referent Principle II: why Douglas T. Ross would hate nest(), unnest(), gather() and spread()
Sunday 1st October, 2017

In “Abstract Data Types and the Uniform Referent Principle I: why Douglas T. Ross would hate nest(), unnest(), gather() and spread()”, I explained why the notation for interfacing to a data structure should be independent of that structure’s representation. R programmers honour this principle in the same way that bricks hang in the sky. All … Continue reading “Abstract Data Types and the Uniform Referent Principle II: why Douglas T. Ross would hate nest(), unnest(), gather() and spread()”

Abstract Data Types and the Uniform Referent Principle I: why Douglas T. Ross would hate nest(), unnest(), gather() and spread()
Wednesday 27th September, 2017

“What’s the Uniform Referent Principle?” my colleague asked me on reading my last post. I think I first came across it in Jean Sammet’s famous book Programming Languages: History and Fundamentals. In a description of Douglas Ross’s AED-0 language, she pointed out a feature that she thought particularly noteworthy: the notation for getting information out … Continue reading “Abstract Data Types and the Uniform Referent Principle I: why Douglas T. Ross would hate nest(), unnest(), gather() and spread()”

Thoughts on nest()
Saturday 23rd September, 2017

I’ve been experimenting with the Tidyverse’s nest function, because it may be useful when, for example, using households together with benefit units. Below are some thoughts that I first posted as a comment to Hadley Wickham’s blog entry “tidyr 0.4.0”. More on this in future posts. First, this is likely to be very useful to … Continue reading “Thoughts on nest()”

Literate Programming, Data-flow Networks, and the Inscrutability of Economic Models
Wednesday 20th September, 2017

Write programs as if they were mathematical essays, but with code instead of equations. This is “literate programming”, an idea invented by the famous computer scientist Donald Knuth. The quote below is from www.literateprogramming.com , apparently first published by Knuth in “Literate Programming (1984)” in Literate Programming, CSLI, 1992, page 99: I believe that the … Continue reading “Literate Programming, Data-flow Networks, and the Inscrutability of Economic Models”

Viewlets
Saturday 16th September, 2017

In my last post, I said that I’d arranged for the nodes in my network diagram to be clickable. Clicking on a data node brings up a display showing its contents plus an explanation thereof; clicking on a transformation node shows the code it runs and an explanation of that. I call these little displays … Continue reading “Viewlets”

A Web Interface for Accessing Intermediate Results in R, Using Network Graphs with vis.js
Tuesday 12th September, 2017

My title says it all. I wanted to give those running our model, myself included, a way to visualise how it works, and to access and check intermediate results. At the top level, the model consists of a few rather large functions sending chunks of data from one to another. These chunks are not conceptually … Continue reading “A Web Interface for Accessing Intermediate Results in R, Using Network Graphs with vis.js”

Implementing Key-Value Notation for Data Frames without Using Tribbles
Saturday 9th September, 2017

There’s a lot to be said for tribbles. As Hadley Wickham says in the “Tibbles” chapter of R for Data Science, his tribble function makes it easy to enter small data tables in a program, because you can type them row by row rather than column by column. Like this: tribble( ~actor , ~character, “Shatner”, … Continue reading “Implementing Key-Value Notation for Data Frames without Using Tribbles”

Random Benefit Units for Households II: Generating the Number of Subrows
Wednesday 6th September, 2017

In my previous post, I assumed my household data would give me the number of children each household has. But suppose I had to generate those numbers too? This is just a note to say that one can do this using the base-R function sample.int . If I understand its documentation correctly, then the call … Continue reading “Random Benefit Units for Households II: Generating the Number of Subrows”

Random Benefit Units for Households I: Generating Random Subrows of a Row
Saturday 2nd September, 2017

The data for our economic model comes from records representing the income and expenditure of British households. However, the structure isn’t as simple as just one row per household. This is because it’s necessary to split households into “benefit units”: the word “benefit” here refering to the money the State gives you when you’re ill, … Continue reading “Random Benefit Units for Households I: Generating Random Subrows of a Row”

From Python Dictionaries to Tribbles II: How I Implemented Lookup Tables in R for Numeric Data Codes
Wednesday 30th August, 2017

In my last post, I explained how tribbles make it easy to write data frames as a sequence of key-value pairs. But how can I make these data frames act as lookup tables? By using the base R function match. This is how it works. First, I’ll make a tibble: dict <- tribble( ~key, ~value, … Continue reading “From Python Dictionaries to Tribbles II: How I Implemented Lookup Tables in R for Numeric Data Codes”

From Python Dictionaries to Tribbles I: How I Implemented Lookup Tables in R for Numeric Data Codes
Saturday 26th August, 2017

As regular readers will know, I’ve been translating an economic model from Python into R. It reads data about the income and expenditure of British households, from sources such as the Family Resources Survey and Family Expenditure Survey . Much of this data is coded as numbers, and the model has to translate these into … Continue reading “From Python Dictionaries to Tribbles I: How I Implemented Lookup Tables in R for Numeric Data Codes”

Reification
Wednesday 23rd August, 2017

We programmers live our working lives surrounded by data structures and subroutines, entities that become as concrete to us — as “thing-like”, as “manipulable” — as teacups and bricks. The feeling of thingness is strengthened, I think, by interactive shells such as R’s which enable one to call functions and inspect their results, and to … Continue reading “Reification”

The Innocent Eye, the Martian Poet, and the R Inferno
Thursday 17th August, 2017

Literature has the concept of the “innocent eye”: that visitor to regions strange who, vision unclouded by familiarity, is able to see and report on how absurd things really are over there. There are also “Martian poets”, who send home postcards about the oddities of their own environment as if visiting it from Mars. As … Continue reading “The Innocent Eye, the Martian Poet, and the R Inferno”

Which Symbol Should I Use for Assignment?
Sunday 13th August, 2017

Perhaps I should add to my post about FreeFormatter. I noted that manual conversion of R code for inclusion in web pages is a pain because of the assignment symbol, <-. But I feel I should say that assignment can also be written as =, though this sometimes clashes with = for named function arguments. … Continue reading “Which Symbol Should I Use for Assignment?”

FreeFormatter: Escaping R Code for HTML
Saturday 12th August, 2017

My demo of spreading and gathering data, like all my blog posts, is written in HTML. To prevent < and > symbols in my code messing this up, I had to “escape” them by rewriting them as &lt; and &gt;. This is more of a pain in R than in many other languages, because of … Continue reading “FreeFormatter: Escaping R Code for HTML”

Tuesday 8th August, 2017

In my last post about R, I said I was translating an economic model from Python into R. It’s a microeconomic model, meaning that it simulates the behaviour of individual people rather than bulk quantities such as inflation and unemployment. The simulator uses data about the income and expenditure of British households, from sources such … Continue reading “Demonstrating spread() and gather()”

Should I Use the Tidyverse?
Saturday 5th August, 2017

I’m doing a lot of programming in the statistics language R, as I translate an economic model into R from Python. This is a big project, and I’ll blog about it more in later posts, as I share useful bits of code I’ve written. But in this post, I want to mention a kind of … Continue reading “Should I Use the Tidyverse?”

‘Tis the Season: blooming in translation and in art
Wednesday 12th April, 2017

Thanks to Victor Mair for mentioning “Drawing as Translation” in his Language Log post “‘Tis the Season: blooming in translation and in art”. If anyone has comments about blooming, that would be a good place to make them.

Generalised Inverses, Adjunctions, Aesthetic Balance, and Too Many Cartoon Bricks
Wednesday 12th April, 2017

In the essay “Drawing as Translation” which is the topic of my previous post, I had this little diagram: This represents the process of restoring the “balance” of a drawing, if one were first to copy it mechanically from the original scene. Imagine a pen-and-ink drawing of a house. If the drawing showed every brick … Continue reading “Generalised Inverses, Adjunctions, Aesthetic Balance, and Too Many Cartoon Bricks”

Drawing as Translation
Tuesday 11th April, 2017

I’ve subtitled this blog “What a web developer does”, and most of my recent posts have been about web development, mainly in WordPress. But I do other things too. One is drawing cartoons, which I blogged about in “How to Make Pencil on Tracing Paper Look Good with Gimp”. I recently went to the Oxford … Continue reading “Drawing as Translation”

A Good Review II
Friday 24th February, 2017

Here’s another nice review, written for me by Andrew Moore. To the general public, Andrew may be known for recent features such as Evidently Cochrane’s “Paracetamol: widely used and largely ineffective” and (with Nicholas Moore) the European Journal of Hospital Pharmacy‘s “Paracetamol and pain: the kiloton problem”. But these are just the tip of a … Continue reading “A Good Review II”

How to List Blog Posts from outside WordPress
Tuesday 21st February, 2017

On my website, I’ve got two kinds of page. One kind is like my home page: coded directly as HTML. These pages are static, in that they are files which never change unless I edit them. The other kind of page belongs to this blog. These pages are implemented in WordPress, and are dynamic. When … Continue reading “How to List Blog Posts from outside WordPress”

A Good Review
Monday 20th February, 2017

Here’s a very nice review one of my customers sent. His site is still confidential, so I can’t show it here, but I can say that the WordPress theme he was talking about is a premium theme that works with WP Job Manager. The rest of the text below is his. Like the majority of … Continue reading “A Good Review”

Charlie Stross Hates Microsoft Word
Tuesday 14th February, 2017

Apropos my post in December about preferring to write outlines in HTML rather than Word, search for “stross word”. You will get some interesting results.

Sunday 12th February, 2017

Here’s a useful website for overcoming a defect in Google: IndustryStandardSoftware.com’s Google Result Link Converter. It solves the problem that copying links from a page of search results is harder than it needs to be. For example, here are the first few results for “Oxford world class city”. These are long links, and Google has … Continue reading “How to Remove Mumbo Jumbo from Google’s Search Result Links”

An Example Community-Transport Site
Thursday 19th January, 2017

In July 2016, Oxfordshire County Council ended bus subsidies to 118 Oxfordshire bus routes. It’s why Oxfordshire Neighbourhoods Partnership, who I wrote about in the posts starting at “How to Use Web Pages as Outlining Tools”, was so interested in helping neighbourhoods set up community transport. If you’re over 60, these cuts are a double … Continue reading “An Example Community-Transport Site”

Happy Hosting with Mythic Beasts
Wednesday 4th January, 2017

This post is a plug for the company who host my website, Mythic Beasts. My site has been around for a long time, and has accumulated not only research papers, lecture notes, essays, and free programs, but even a recipe book and a tribute to the Excelsior café. It also has an assortment of interactive … Continue reading “Happy Hosting with Mythic Beasts”

How to Use Web Pages as Outlining Tools V
Tuesday 27th December, 2016

(Continued from How to Use Web Pages as Outlining Tools IV.) To do this, I coded an outline as a list of lists, using HTML <ul> elements. This gave me a bulleted list of bulleted lists, where each list item was a topic such as “A bit of our history” or “New Vehicle Appeal”. I … Continue reading “How to Use Web Pages as Outlining Tools V”

How to Use Web Pages as Outlining Tools IV
Friday 23rd December, 2016

(Continued from How to Use Web Pages as Outlining Tools III.) The trouble with Word is well expressed in author Charlie Stross’s blog post “Writing tools”. He explains why Word is not ideal for writing his science-fiction books, and why it’s bad even for other tasks. Later on in the discussion, commenter Alex writes:My partner … Continue reading “How to Use Web Pages as Outlining Tools IV”

How to Use Web Pages as Outlining Tools III
Tuesday 20th December, 2016

(Continued from How to Use Web Pages as Outlining Tools II.) Community transport costs money. For example, BACT, a volunteer group providing transport around Beccles and Bungay, inaugurated a new minibus last April. It cost over £52,000, a figure which presumably doesn’t include tax, MOT, repairs, petrol, and other running costs. I’d been asked to … Continue reading “How to Use Web Pages as Outlining Tools III”

How to Use Web Pages as Outlining Tools II
Thursday 15th December, 2016

(Continued from How to Use Web Pages as Outlining Tools.) I took the image at the end of the previous post from one of the maps on the Campaign for Better Transport’s site: an interactive map which lets you see the cuts to bus funding in England and Wales since 2010. For Oxfordshire, it shows … Continue reading “How to Use Web Pages as Outlining Tools II”

How to Use Web Pages as Outlining Tools
Monday 12th December, 2016

As well as web development, I’ve been working for a charity called Oxford Neighbourhoods Partnership or ONP. I needed an outlining tool for some of this work, and I’m going to explain how I used Sylvain Hamel’s Simple-expand. This is a a jQuery library for making web pages which you can click on parts of, … Continue reading “How to Use Web Pages as Outlining Tools”

How to Grab Images from Clickpic
Thursday 1st December, 2016

A Summertown artist recently asked me to build her a WordPress site to show off her paintings. As with the other sites I’ve blogged about, I installed WordPress for her at Mythic Beasts, discussed the design of the site and chose a theme, and built a prototype showing the pages we thought we’d need together … Continue reading “How to Grab Images from Clickpic”

How to Make Pencil on Tracing Paper Look Good with Gimp
Thursday 10th November, 2016

Here’s a useful little discovery. I’ve just drawn a cartoon about Trump winning the US Election. It was in pencil on tracing paper. Pencil is often said to be hard to scan, but this, after some thresholding and tidying up in the free image-editing program Gimp, worked very well as an image to display on … Continue reading “How to Make Pencil on Tracing Paper Look Good with Gimp”

How to Make a WordPress Blog Theme Match an Existing Website II
Wednesday 9th November, 2016

(Continued from “How to Make a WordPress Blog Theme Match an Existing Website”.) I then copied the page source to a file called index.php in blog/wp-content/themes/bandolier. This is a so-called “template file”. WordPress uses some complicated rules about which template file to use to display different kinds of information. These are explained in the WordPress … Continue reading “How to Make a WordPress Blog Theme Match an Existing Website II”

How to Make a WordPress Blog Theme Match an Existing Website
Monday 7th November, 2016

I’ve been hosting the Bandolier evidence-based medicine site for Oxford pain researcher Andrew Moore. I’d previously collaborated with him on analysing drug-trial data, but this was the first time we’d worked together on a website. One thing we thought we might want to add was a WordPress blog; and since Bandolier has a very distinctive … Continue reading “How to Make a WordPress Blog Theme Match an Existing Website”

How to Generate Random Quotes in JavaScript
Friday 21st October, 2016

The Promenade theme that I’ve been writing about in my last few posts comes with the default text “PROMENADE WORDPRESS THEME BY AUDIOTHEME” in its footer. Most site owners customise this; for example Marianne Faithfull has set her text to “CONTACT | ACKNOWLEDGEMENTS | THEME BY AUDIOTHEME”. The teacher who I was using Promenade for … Continue reading “How to Generate Random Quotes in JavaScript”

How to Run PHP under WordPress with Justyn’s Magic Includer
Friday 14th October, 2016

Were you to call a gardener to come round and tidy the garden, you’d give them instructions such as “mow the lawn, dig out weed clumps, then use my long-handled shears to trim grass overhanging the edges”. These seem clear, but they’ve omitted something crucial. Where should the gardener find the mower, the trowel, and … Continue reading “How to Run PHP under WordPress with Justyn’s Magic Includer”

How to Bulk-add Gigs in an AudioTheme Theme
Wednesday 12th October, 2016

In “A Promenade of Promenades”, I wrote about using AudioTheme’s Promenade theme to give a clear minimalist visual design to a Summertown teacher’s WordPress website. This teacher gives regular weekly classes, and asked me to list them on the site, all the way up to mid-2018. Promenade, as I also mentioned last time, was designed … Continue reading “How to Bulk-add Gigs in an AudioTheme Theme”

Thursday 6th October, 2016

I’ve been using the Promenade theme from AudioTheme. A “theme” is a piece of software that determines the visual design of a website built with WordPress or some other content-management tool. One of my customers wanted Promenade for her site because of its uncluttered minimalist design, so we bought a copy from AudioTheme and experimented. … Continue reading “A Promenade of Promenades”

Introducing Myself to the Oxford Research Software Developers’ Network
Thursday 6th October, 2016

The RSDN is an association of software developers at Oxford University. I went along to their meeting on October 5th and introduced myself and some of the projects I’d worked on. Here’s a page about these. It covers the same material, more or less, as on my home page, but in more detail. The things … Continue reading “Introducing Myself to the Oxford Research Software Developers’ Network”

Python Functions as First-Class Values
Tuesday 20th September, 2016

This is part of another computer-science tutorial I gave at the Oxford Institute. The idea was to use Python to demonstrate that in programming, functions can be as tangible as numbers, strings, or dates: that they can be assigned to variables, passed to other functions, returned from functions. In short, they enjoy all the privileges … Continue reading “Python Functions as First-Class Values”

How to Teach Computer Animation in an Hour: or, Flying Duck à l’Orange
Friday 16th September, 2016

Over the summer, I taught computer science to post-GCSE students at the Oxford Institute. Some of the students wanted to know about computer graphics and how to program animations. Could I find a way to do this without losing them amongst the complexities of Java method syntax and graphics libraries? As it happens, I’d come … Continue reading “How to Teach Computer Animation in an Hour: or, Flying Duck à l’Orange”

Anna-Karenina Weather
Tuesday 28th January, 2014

Today (and most of the past three months) are what we in the trade call Anna-Karenina weather. All good-weather days are alike; each bad-weather day is bad in its own way.

No News is Good News
Wednesday 24th April, 2013

A customer I sketched in the Summertown Costa this morning, inspired by Charlie Stross’s blog posting about how news is bad for you, PSA: Ignore the news. Sketch Description A heavyset fifty-ish man sitting in an armchair reading the Daily Mirror. No sign of enjoyment is visible in his grim expression.

Ice Age Weather
Friday 29th March, 2013

Today is what we in the trade call Ice Age weather. There’s a patch of snow in the shadow of a lock-up garage in Summertown that hasn’t melted since the snow fell five days ago. AND I THINK IT’S GETTING BIGGER. My neighbour is a geomorphologist, and he explained it to me. During our frosty … Continue reading “Ice Age Weather”

Glove-On-The-Wall Weather
Monday 25th March, 2013

Today is what we in the trade call glove-on-the-wall weather. There’s a raw and gusty north-east wind, but it is dry. Mums are out with pushchairs, their toddlers wiping wind-runny noses and letting fall gloves from chubby pink fists. We are lucky to live in such a big softy of a country, where passers-by will … Continue reading “Glove-On-The-Wall Weather”

If the Daily Express were to Report the Singularity
Tuesday 12th March, 2013

“Robots from Universe Next Door Rush to Steal our RAM.” “Black-Hole Storm Set to Batter Betelgeuse. How YOU Can Beat the Photon Floods.” “Keep Germany out of Singularity, Warns Minister. Secret Plot will Convert Jupiter to Hitler Super-Brain, Take Over EU.”

Curious Repeating Headlines in the Daily Express
Tuesday 12th March, 2013

And speaking of Daily Express Weather, after writing that entry, I found this: Curious repeating headlines in the Daily Express in the NewsFrames blog. The author shows two collections of Daily Express front pages, the first running from 18 January 2013 back to 29 October 2012. It becomes immediately obvious just how often the Express … Continue reading “Curious Repeating Headlines in the Daily Express”

Daily Express Weather
Tuesday 12th March, 2013

Today is what we in the trade call Daily Express Weather. It is colder than the Traitors’ Plain and more bitter than a friend’s betrayal. And it is the only day when reality caught up with Daily Express weather headlines, even though the Express has announced a Big Freeze every week since the end of … Continue reading “Daily Express Weather”

The Scream
Wednesday 27th February, 2013

The images, in essence, are abstract political cartoons. She thinks of the economy while staring at the blank paper, then creates the artwork. From WSU instructor displays abstract political cartoons by Becky Wright, a piece announcing an exhibition by Kristina Lenzi.

“At least” Weather
Monday 19th November, 2012

Today is what we in the trade call “at least” weather. It’s spitting, but at least it isn’t cold. Yesterday was cold, but at least it wasn’t raining. All British weather is “at least” weather, apart from a week of August-hot sunny days in April which make you forget that it will rain, for at … Continue reading ““At least” Weather”

Moodle Cartoon: And You Need to Look Inside Every Single Plugin Before You’ll Know Which Unenrolment Method You Should Call
Monday 19th November, 2012

Another Moodle cartoon, expressing my discovery that a function for returning data about users can return fields, such as Skype ID, that the function for creating users can never accept. (See Why is the argument to core_user_create_users different from the result of core_user_get_users_by_id? .) Cartoon Description The orange Michelin-man-like Moodle figure is disdainfully pointing at … Continue reading “Moodle Cartoon: And You Need to Look Inside Every Single Plugin Before You’ll Know Which Unenrolment Method You Should Call”

Marzipan Town Crier
Sunday 14th October, 2012

This is the cake that was presented at the Oxford town crier competition. I took the photo during the lunch, between the morning and afternoon halves of the competition.

Oxford’s Town Crier Competition 2012
Saturday 13th October, 2012

I’ve put up my photos of the Oxford town criers’ competition of July 2nd. It was a noisy and colourful day, which we finished in an open-top tour bus full of town criers in their regalia, all shaking their bells at the people on the pavements and shouting. You’d be surprised how surprised a citizen … Continue reading “Oxford’s Town Crier Competition 2012”

Fear of Drawing
Sunday 15th August, 2010

The art manuals say that the feeling of not being able to draw is merely the sensation that accompanies the act of drawing. From the short story Zoology by Simon Ings,in the collection When it Changed, edited by Geoff Ryman.

Forecasting the Weather at JACK fm
Thursday 12th August, 2010

I drew this today after they read out my email about their forecasts and suggested I draw a cartoon of Greg forecasting.

BOWiki: Semantic MediaWiki with n-ary relations (2)
Wednesday 11th October, 2006

Following my original blog entry about this, the implementors have posted some details on the Semantic Wiki Interest Group list, swikig. See the thread called “Multi-way relationships?“.

Dr. Who gets professorial chair; Batman, Robin as assistants
Wednesday 11th October, 2006

SF has inspired many researchers, but when will the media stop reporting research as though it were SF? Here’s a feature from the Sunday Herald about Professor Tim O’Shea, now Principal of Edinburgh University: Back in the mid-1970s, Timothy O.Shea had a vision of the future which he has lived to see come to pass. … Continue reading “Dr. Who gets professorial chair; Batman, Robin as assistants”

Parkinsonian Selection
Tuesday 3rd October, 2006

“Still having a hard time with that monster?” Jean asked. “Monster?” “You know. The bureaucracy.” He nodded, smiling — then, remembering, said “Yeah. Always the same story, day in, day out.” Jean snorted. “I’m still not convinced that thing even exists, you know. I checked the library for a slightly less wonky definition, but now … Continue reading “Parkinsonian Selection”

Self-Important
Wednesday 27th September, 2006

I used to think the brain was the most important organ in the body, until I realised who was telling me that. – Emo Philips. Quoted by Daryl Gregory in his short story Second Person, Present Tense.

BOWiki: Semantic MediaWiki with n-ary relations
Wednesday 27th September, 2006

I’m experimenting with semantic wikis as a front end to my Excelsior spreadsheet generator. I’ll say more about this in another posting, but the point here is that some of my semantic annotations need to be relations with more than two arguments. Most semantic wiki engines don’r implement general n-ary relations: if you need them, … Continue reading “BOWiki: Semantic MediaWiki with n-ary relations”

Semantic Wikis in Prolog
Wednesday 27th September, 2006

Going on from yesterday’s post BOWiki: Semantic MediaWiki with n-ary relations, I wonder whether anyone has implemented a semantic wiki in Prolog? Most semantic wikis restrict themselves to binary relations, I assume, because RDF does so. Prolog predicates, however, can take any number of arguments. But I haven’t yet found any Prolog semantic wiki engines. … Continue reading “Semantic Wikis in Prolog”