Animated map projections has a new video talking about map projections:

Nothing new here in terms of the history, but their animated transitions between different map projections are really cool. They were rendered using the d3-geo-projection plugin of the dataviz library D3.js by its author Mike Bostock. Compared to gmt, which I’ve blogged about before, there are more classes of projections available if you use the plugin, and it’s designed for web and interactive content, whereas gmt is still very much oriented towards print (Postscript files!) and static images. It’s also more accessible for casual audiences because no special software has to be installed – all modern web browsers support Javascript. Maybe I could reimplement my lantern globe project in D3.js …

Hosting a website with GitHub Pages

My website is a labor of love for me – it is a work of family history and biography that I researched and started to write up in 2007, but only some months ago did I publish it online as a website.


Web-publishing is the poor(er) man’s self-publishing, but it does offer some advantages over paper. I can easily update the site with new features, such as photographs and transcriptions of original documents, and also incorporate interactive features like maps and timelines. It’s perfect for a serial procrastinator like me, because I can make something that is mostly done but not yet perfect available as a working version. For example, I’m still working on text boxes to explain the historical background for something mentioned in the main text of the biography – many of them are already up, but for some I have only an outline of what I would like to write.

In this blog post I’ll explain what free tools (“free” in the sense of not paying money for it, not the “free” in Free Software Foundation) I’ve used to build and host the website. I want to show how a hobbyist with modest web skills, like me, can still get things online quickly and painlessly.

Continue reading

Blast from the past – C-Dogs

When I was a kid back in the late 90s and early 00s I spent a LOT of time on these computer games: SimCity 2000, TetraBlocks (a Tetris clone), and C-Dogs.

C-Dogs was something special – a freeware MS-DOS-based game where blocky cartoon figures ran around a 2D map shooting things up. That sounds pretty primitive, but there were some great things about it: the graphics/artwork were awesome classics of the pixel-art genre, you could customize your characters and build custom maps, and the EXPLOSIONS. The best way to combine all that was great about this game was to build a custom map with lots of barrels of explosives lying around, throw in some grenades, and watch the whole map blow up. Very satisfying.

Screen Shot 2016-11-24 at 23.28.27.png

Exploding fuel barrel

Continue reading

Dropbox no longer serving websites

Update 17 Nov 2016: I’ve now migrated to a GitHub-hosted repository. More details on how I set it up in my next post!

It was fun while it lasted. My project website was doing something odd when I visited it last week to look something up: instead of rendering the index.html page like it did before, the browser started to download it.

Turns out that Dropbox has stopped supporting this feature. My site is/was simply a shared public link in my Dropbox Public folder, to which I pointed a custom domain name. Previously it was possible to host small websites this way, and they would serve up the HTML properly rendered. However this was ended for Basic accounts last month, and will also end for Pro accounts next year.

So what next? I was planning on migrating to Github Pages anyway, because I wanted to have better tracking of versions and edits. That is planned for my next free weekend, so watch this space! If for any reason you urgently want to read about Seah Eu Chin, just drop me a message by leaving a comment here or emailing me.

Language evolution in action

Here’s an example of how a word can completely reverse its meaning, from a BBC article about the Mid-Levels escalator in Hong Kong (also a cool subject in itself):

“We did the planning in 1984,” says architect Remo Riva, director of P&T Group, which consulted the government.

The verb “consult”, when used in a sentence like “A consulted B”, usually means that A asked B for their opinion. However in this case, it’s the P&T Group which were offering advice to the Hong Kong government, and not the other way around. So the sense of the word “consult” appears to have evolved like this:

“The government consulted the P&T Group” → “The P&T Group were consultants for the government” → “The P&T Group consulted for the government” → “The P&T Group consulted the government”

Funny to see this in action. And yet it’s still very strange to imagine that the word “nice”, for example, used to be pejorative, meaning a foolish or silly person.

Or in the case of the word “sanction”, made me completely misinterpret this headline: “Thai people urged to ‘socially sanction’ critics of monarchy”.

Binning trees by topology

Recently stumbled across a 2013 paper from Ryan and Irene Newton describing a tool, called PhyBin, for binning phylogenetic trees, i.e. clustering them by similarity into groups (“bins”). They use the Robinson Foulds metric to represent the distance between trees.

The reason for doing this is to look at the phylogenies of individual gene ortholog clusters in a set of genomes, to find those genes that have a phylogeny different from the others. This might be useful e.g. to detect genes that have undergone horizontal gene transfer. The example they used for their paper was the insect symbiont Wolbachia.

It seems like a nice way to screen a set of genomes for genes that might be interesting. I had wanted to try to do something like this, but with a concordance-factor approach instead. Some other thoughts:

  • Each gene is represented by one tree – uncertainty is not taken into account, unlike with concordance factors, as implemented in BUCKy for example
  • If there are horizontally-transferred genes, they would probably have patchy distribution and not be in every species. But such genes that are present in only some genomes would be pre-excluded from the analysis, also in concordance analysis. In PhyBin paper the authors mention the case of Wolbachia prophage which has precisely this limitation.
  • Collapsing short branches is a good idea