• A Writer in the Family

    Years ago, in my early twenties, I was convinced I’d be a successful author someday. One by one, my more literary friends got pieces published—short stories, poems—while I didn’t. Of course, it didn’t help that I wasn’t a good writer, and more importantly didn’t actually try getting anything published. But it became a minor running joke that all my friends would “get published” before I did.

    So it’s with a great sense of both pride and inevitability that I can now congratulate our son, at the age of 10, now being a published author!


  • Another Shenzhen Special:
    15 Minutes with the MAFAM M11

    Thanks to an excitingly mis-sold internet purchase, we are now in possession of the latest in exciting mobile technology – the MAFAM M11. (If you’re mentally incapacitated, you could have one of your very own for 24 whole US dollars!)

    Let’s jump in and see what this technological marvel has in store.

    Four (4) SIM cards! Four! Ideal for the drug dealer in your life. Utterly bizarre for everyone else!

    Also: WhatsApp. Really? OK, say I believe you. Let’s try this. Unboxing!

    Pretty standard, except those four SIM slots! Two are mini-SIM, two are micro-SIM. Now I normally wouldn’t even bother with these, especially not trying to align my nano-SIM card in the slot, but it looks like nowhere on this phone’s spec sheet does it mention WiFi, so if we’re going to WhatsApp on this thing we’re going to need to get our GPRS on.

    OK, let’s get started. No startup jingle, so that’s a bonus. Company logo isn’t centered on the screen though, which as we will see, is emblematic of the quality assurance standards that we’ll see throughout this phone’s design.

    And before we carry on, take a moment to enjoy this menu. “Wha…”!

    OK, time to get this thing online. Helpfully, you can set it to dial up to the internet automatically. Advanced! But first, the default APN settings – usefully named using characters it can’t display – need to be replaced with my real ones.

    Typing text on a numeric keypad was just great, wasn’t it? Remember that? Remember how nice it was to not do that anymore?

    Right, let’s see how the internet experience looks on this phone.

    Google from the browser? Kind of… early 2000s feel here, but still usable.

    That Facebook icon on the home screen? It opens a browser window just like you expected. It’s Facebook’s mobile site, and it just about works.

    And finally, WhatsApp. That service that doesn’t work at all unless you have an Android or Apple phone. Let’s see how they managed this!

    It… opens in a web browser. With helpful download links for your Android or Apple phone. No functionality whatsoever. Not… really… deserving the “Whatsapp” logo on the box, and the “Wha…” icon with pride of place in the menu.

    Alright! Let’s try out the camera. Its quality settings menu includes “Low”, “Medium” and “Advanced”, so naturally we’ll see where the latter gets us.

    Embedded below are a daylight and a low-light shot for comparison, both at the camera’s native, er, 320 by 240 resolution. As you can see, better quality pictures can be obtained from the average potato, though astoundingly the low-light shot actually looks better.

    And to finish up, let’s check some of the other exciting features this phone has.

    First up: Filearray! What is a filearray? We’ll never know, because it’s empty and no option on the phone seems to actually save a file here.

    Next: Magic sound! I can select the Magic Sound of a man, woman, young, old, child or cartoon!

    The phone produces no sound when any of these options are selected.

    We get games though! Check out Sokoban, and this file named Bubble_Bobble_320x240.jar which can’t be run because the phone doesn’t have any storage.

    And that’s a wrap! Don’t buy this.

    MAFAM? Nah, fam.

  • Discontinued as of Today

    As far as I know, SuccessWhale is not being actively used by anyone any more, so I have chosen not to renew the domain name when it expires today. Like most of my past web-based projects, it will continue to live on at an subdomain, in this case, but will not be actively maintained there.  As well as its graphical web interface, SuccessWhale also has a back-end API that used to run on a SuccessWhale subdomain. This has now moved to The OnoSendai Android client already uses this address for the API as of update 479, so you may need to update.

    Thank you to all the SuccessWhale users over the years!

  • Automating the Roast Dinner Timing Chart

    Against all my expectations, the most popular page on this website (at least, the most visited) turns out to be “The Great Roast Dinner Timing Chart”, which was my attempt to help newbies at the revered British art of the Roast Dinner get their timings right. I first posted it over eight years ago—in the intervening time I have cooked a lot of roasts and tweaked my timings a bit, so it was in need of an update.

    I’ve also cooked roast dinners to serve at all sorts of different times, with variations on the ingredients, so I thought the old list to cook certain things for a fixed 7pm dishing-up time could use some improvements too. To that end, I’ve converted it from a static list to an automatically generated one that users can play with. Visitors to the page can now choose their meat and its weight, the accompaniments and the serving time, and the page will do some JavaScript magic to generate a chart just for them.

    If you’re interested, you can check out the source code on GitHub. It’s not much and not very complicated, but free for anyone to use and modify.

    For anyone who prefers the original non-automated version of the Roast Dinner Timing Chart, or anyone without JavaScript capability, you can still get to the old version here.

    Hopefully it will help someone on the way to cooking their best roast dinner yet!

  • Coolest Robot of the Day

    Today in Cool Robot News: A team at Harvard University have developed their tiny RoboBee so that it is equally at home in water and in air. No mean feat by itself, but check out the way it crosses that tricky barrier between water and air: it splits water into oxygen and hydrogen to create buoyancy, then once its wings are clear of the surface it ignites the mixture to push it off into flight. Check this out!

  • Migrating from Jekyll to WordPress

    The final, and most difficult, part of the plan to wind down some of the more complex stuff I do on the internet was the migration of this site from Jekyll and Hashover to WordPress. It’s a decision I took with some trepidation, as I well remember ditching my old WordPress site for Jekyll (via Octopress) four years ago and enjoying the speed and security it brought.

    However, the workflow is what killed it. The typical “By the Numbers” film review is a shared activity with friends around the TV, which doesn’t lend itself to being sat at a desk at the only computer of mine that can reasonably compile the Jekyll site. I switched to hosting the site on GitHub pages and just editing the pages myself in a browser window, but uploading and linking images was still a multiple step, non-WYSIWYG game of making sure the URLs are all right, followed by a 3-minute compile stage where everyone is waiting to read the finished article and I have to explain why.

    Comments were worse still. I staggered between Juvia, a discontinued Rails application that I was out of my depth maintaining by myself, Disqus which “just worked” but put visitors off commenting, and HashOver where fighting spam involved finding offending new comments via ssh.

    Back on WordPress, things may be slower and security more of a concern, but comments are natively supported, I can drag images in, and preview posts on the fly. No compile stage!

    All in all the process took about 10 hours. If you’re contemplating a similar step, here are some useful hints, as unlike the reverse move, migrating in this direction seems to be a rare activity:

    1. This post was really useful, and RSS export/import does seem to be the best way of moving the main post data across. I moved my pages (20 of them) manually, and used the RSS method for my ~1000 posts.
    2. My Jekyll site had three levels of taxonomy – Collection, Category, and Tag. I believe it’s possible to create the same taxonomies in WordPress, but I didn’t bother. I moved one collection at a time, merged Jekyll’s categories and tags into WordPress’ tags, then Jekyll collections became WordPress categories.
    3. The RSS importer can’t import tags, only categories, so I imported everything as categories and used a “Categories to Tags converter” plugin to sort the mess out.
    4. The Disqus comment importer script from the page linked above worked well for importing a Disqus export, with the exception that Disqus comment and thread IDs are now greater than 2^32. The importer uses these as keys into maps, so I had to subtract arbitrary large numbers from the IDs (which PHP is perfectly happy to do) in order to make them usable as integer keys.
    5. I had a lot of files such as pictures in arbitrary locations which Jekyll is happy to deal with, but WordPress is not. I moved everything into “wp-content/uploads/” with some .htaccess redirects so that they can still be found.
    6. Recreating the Jekyll theme wasn’t too hard, although it took around half the total time. When I first moved away from WordPress its themes were a messy mystery to me, but with four years’ more experience, I can see the parallels between my Jekyll templates and WordPress’ ones, and the transition went very smoothly.

    Although it’s been a few days of working late into the night, I’m happy to say it’s now done. Hopefully the blog will be easier to manage from here on.

    No compile stage!

  • The Apocalypse comes to Weymouth

    In the shadow of Hurricane Ophelia, Saharan dust and smoke from Iberian wildfires has been blown towards the UK, resulting in eerie orange skies across the country. I took this photo looking across Portland Harbour into the dim orange sunlight this morning. No filter required!

  • Proper Emmets

    In contrast to two years ago, this year’s holiday was mercifully free of stifling nights and sweltering days. This year we stayed in a caravan by the sea in Cornwall, a much more relaxed (and cheaper!) affair. Since we live by the sea anyway, a seaside beach holiday wasn’t high on my list of priorities, and in truth grey skies and cold winds prevented any sunbathing opportunities. Instead we did proper grockle emmet stuff, touring some of the county’s attractions.

    Lost Summer

    Vienna’s wordy travelogue came courtesy of the many hot evenings where, sharing a single room with a child who was trying to sleep, we would sit silently and miserable on sticky varnished floors, trying to think of something to pass the time. Having more than one room this year was a godsend, and now I’m not sure I’d want to go back to single hotel rooms between the three of us.

    The downside is, if you were expecting an interesting post to read, all I have for you are photos!

    What I Did On My Holidays, by Ian Renton, age 32¼

    We explored Par beach at night, and came back covered in mud…

    Par Sands at night

    We visited the Eden Project, sweating through the rainforest and eating typical Cornish burritos…

    Lily at the Eden Project

    We resisted the urge to buy car insurance at Newquay Zoo—though given how often Google Maps had me driving down narrow muddy lanes and through fords, it might not have been a bad idea…

    Meerkats at Newquay Zoo

    We climbed approximately a million steps to the top of what once was Tintagel castle, drank mead and tried to learn Cornish…

    View from Tintagel

    We ate pasties in Marazion, walked to St Michael’s Mount and got the ferry back…

    St Michael's Mount

    We missed a boat, ate tapas and drank Estrella de Galicia in Fowey, then explored the Lost Gardens of Heligan…

    Giant's Head at Heligan

    And then, all too soon, it was over.

    Until next year!

  • Adventures in Belgium

    Freshly back from a work trip to Bremen at the end of May, they sent me off again for two weeks in Belgium at the start of June, to the exciting seaside destination that is Zeebruges—a town famous for its commercial port, its 1980s ferry disaster, and very little else. By and large our days there were long and consisted of “hotel, naval base, pub, hotel, repeat”, but the event turned out a great success.

    Most of my photos are singularly unexciting shots of grey boats trundling up and down in straight lines. But this one below I’m particularly fond of, not for its exciting subject matter (not so) or composition (likewise), but simply because it’s the most Photoshopped-looking photo I’ve ever taken.

    Belgian Navy flag flying at sea

    Between sea trials and industry days we did get a massive four hours to do the tourist thing and explore the nearby city of Bruges. In contrast to Zeebruges, a town that seems to exist solely to support its harbour, Bruges is an ancient city full of historic buildings and riverside restaurants.

    To lead out, here’s some of the better photos from the evening.

    Flags flying in front of the Church of Our Lady

    Flags flying in front of the Church of Our Lady

    Buildings by the side of Rozenhoedkaai

    Buildings by the side of Rozenhoedkaai

    Boats tied up in the Canal

    Boats tied up in the Canal

    Market Square at Dusk

    Market Square at Dusk

  • This Week’s Helpful Advice: Don’t Help the Poor?

    Our local newspaper, the Bournemouth Echo (beware of annoying ads & trackers), is as ever a font of useful advice. This week it comes from the police, who are letting us know that helping the poor is a bad thing. Now I’m not too upset with the usual idea trotted out, of offering food and drink to beggars instead of money lest they spend the money on booze and drugs. But apparently even that is now discouraged.

    Extract from linked Bournemouth Echo page

    Now I’m not sure whether “professional begging” is really a major problem, but as I understand it a “professional beggar” is someone who has no better way of making money than braving the streets, risking abuse, violence and inclement weather, begging strangers to spare enough cash that they can get by. Sure, they may have a place to go back to at night, putting them one step higher on the poverty ladder than the homeless. But does that make them somehow undeserving of help? Does it make them so undeserving of help that we are advised not to give food to any beggar, just in case they should be a “professional” and not a “real” homeless person?

    Apparently so.

    And don’t forget, the article helpfully reminds us, helping poor beggars on the street by giving them food “falls outside Bournemouth council’s homelessness strategy”. Ah yes, the homelessness strategy. The one where you can only get into the night shelter if you’re a local? The one that famously includes blasting out Alvin and the Chipmunks songs at the bus station all night to stop people being able to sleep there? Great strategy there, Bournemouth council. Just great.