Blog

I am a big fan of the WP Mendeley and I have been using it for quite a long time. I use Mendeley to maintain my bibliography anyway, so having an automatic way to display various sets of publications in WordPress is a bonus. One of the features that I missed is the option to display the abstract of papers. This is not available out of the box, but it’s not too difficult to achieve. Here are the steps that I had to take in order to allow visitors to display the abstracts of my papers.

Read more

Photos taken during a nice stroll along the Basingstoke canal near West Byfleet. I took these photos using my mobile phone on a nice sunny day in December 2020. Given how pretty the place is, I am sure there are more photos to come.

Read more

A few weeks ago I introduced my students to the notion of dictionaries in python. The obvious way of teaching them, especially in the context of my module, is to use dictionaries to create word frequency lists. In order to make the students understand better why dictionaries are useful, we discussed other ways to produce frequency lists which use only lists. This prompted me to try to think as many ways as possible to produce frequency lists. I also wanted to see how feasible is to use these methods.

Read more

This is a very much delayed series of posts related the yearly module I give on Python programming for Natural Language Processing. The purpose of this module is to teach students how to use Python for processing corpora and for other Natural Language Processing (NLP) related tasks. The background of students is different from year to year, but in general students come with non-computer science related backgrounds. This makes the module a bit challenging because in about 12 weeks, I need to bring these students from zero to an intermediate level.

Read more

When my university decided to discontinue the support for personal webpages (i.e. literally pull the plug from the server hosting them), I was left with a dilemma. I had a pretty static HTML page that was hosted there and a rather standard (and largely abandoned) WordPress installation. Because I liked the structure of my HTML page, I decided to create a theme based on it and restart using my WordPress blog. What you read now, is the result of this conversion. Depending on when you read this post, there may still be some rough patches. In this post, I will show how you can develop a theme for WordPress using Varying Vagrant Vagrants and synchornise it using Dropbox.

Read more

The First Shared task on Aggression Identification was organised in conjunction with the First Workshop on Trolling, Aggression and Cyberbullying. The idea of the shared task was fairly simple. Classify a text in one of the following three categories: Overtly Aggressive (OAG), Covertly Aggressive (CAG) and Non-aggressive (NAG). This means that the task is essentially a standard text categorisation task and an approach based on bag-of-words is a good baseline to start with (neither me, nor the task organisers provided a baseline based on bag-of-words, so I don’t know what is the accuracy of the method).

Read more

The other day I wanted to format the text in a post using a definition list-like structure. Basically I wanted something like this:

Read more

The other day I wanted to allow users of the metadiscourse annotator to quickly locate in text the marker they tag. This is particularly important if the text contains many markers. When the user presses a button I wanted the following effect:

Read more

Update: One day after I wrote this post, version 2.8.36 was released to fix this problem. It seem that other versions of Symfony were also affected. If you are interested in this problem, read on. If you are affected by it, you should upgrade, not use the fix from here.

Last night I implemented a few improvements in the Metadiscourse annotator which I am developing in my spare time. (I rewrote several functions that cut the running time of two actions from minutes to seconds … but that’s for a different post, maybe …). I tested the new code on my development computer and everything seemed perfect, so I deployed the new version. Just before sending an email to the people who use this program, I noticed that a particular functionality that relied on AJAX requests no longer worked. This was completely unrelated to the changes I made. Initially, I thought it is because I restricted the HTTP method to GET, whilst the request was done using POST. I fixed that, but it was still not working. After spending a bit of time, I realised that none of the AJAX requests worked anymore. This was at 1am, how else 🙂

Read more

10/14