If at first you don't succeed, call it version 1.0

Category Archives: Experiments

I finally got round to trying Ghost last week. I’ve been meaning to give it a go for a while as I’ve heard many good things about it, plus the whole native markdown post entry appealed to me since I do most of my writing in markdown.

Sadly my hosting provider only allows for Ruby on Rails and PHP which means running Ghost myself it out of the question. Given running my own AWS or digital ocean instance would cost about the same as a hosted Ghost blog, I tried the hosted option.

I was… Underwhelmed. I know it’s still in development and isn’t feature complete, but there were just too many little niggles to justify the $5/month it would cost me if I persevered. For all its annoyances, WordPress is very mature and I can host as many blogs as I like for no more than I’m already paying my provider for other things. Seems like I’ll be sticking with it for a while yet.

As part of Kevlin Henney‘s presentation at Sync Conf he showed a technique of visualising your code using Wordle. In a nutshell you strip the comments from your code (lumping it into one giant file in the process), pop it into Wordle and see what drops out. The theory behind this process is that, once you get past the scaffolding of the programming language, the language of the domain should become apparent. The results are very interesting.

I know there’s problems with our main code base. I work on it daily and the entire team knows about the issues at a near visceral level, but finding ways to express and visualise the problems can be hard. Today I discovered I work in a domain of java.lang.String and null. Not great for an OO language. Even the language scaffolding told a story. The relative size of the import keyword to the class keyword show we’ve got a lot of dependency issues.

More surprising was the result from our newer code base. Here the language of the domain started to show through, but it coloured by the unit tests which I’d forgotten to remove. On the plus side @Test features highly, as does final. Tomorrow I’ll generate a few more Wordles without the test code and use it to spark some discussion on our new architecture in our retrospective.