• Week 341

    20 July 2019

    I kicked off work on Longridge this week, with a remote meeting to go over the shape of the initial work, and some of the approach. That's given me some grounding, some ideas for a deadline at the end of Week 342, and - most importantly - some homework before a workshop in week 343. That homework lead to some planning, research, and an afternoon of kicking tyres on the internet - amongst other things. I actually need to check what I can say about Longridge - I think I can be reasonably public - so I might describe that more next week.

    I spent a day brushing up on the state of web development in 2019. I'm a lapsed front-end developer back from the days when that primarily involved deep knowledge of HTML and awful, awful browsers. (I definitely have built some IE6-compatible sites in my time). Since then, I've seen front-end change a lot, and done a nice pile of work on Captionhub with the HTML5 media extensions and spec. But there's still new things to learn, so I spent an afternoon bringing myself up-to-speed with CSS Grid. Gosh, it's good, isn't it? It solves a problem elegantly, and still gives - in many situations - completely acceptable fallbacks when it's not available. A really elegant API, and a nice bit of technology. I have a small backburner project that I'm using to learn new things on, and I spent some more time on that this week, too; it's nearly hitting a nice alpha point, so perhaps a concerted day or two in the future will push that over the hill.

    It's nice catching up with technology once it's a little established. I subscribed hugely to the notion of choosing boring technology. I've never been let down by boring technology, and, some days, it's been reassuring to have my bacon saved by not picking something that goes out of fashion as fast as it came in, or doesn't have support, or just ended up being the wrong horse. It's why I still am entirely comfortable shipping Rails projects: it works, it's expressive for developers, Performant Enough, and gets web-apps based around shipping content to/from databases over HTTP out the door quickly. Uncontroversial. So rather than hurtling to stay up-to-date with trends, I'm comfortable keeping one eye on them, and the other on the Unexciting Present. I'll read, think, compare, but committing to using them is a very different process. Now that I'm in a lull, it's time to catch up a little and explore.

    I also shipped a few small pieces of code related to things I've been doing recently.

    Firstly, some Javascript: wxr_to_json is a small command-line node tool for converting Wordpress eXtended Rss to JSON files, simply for ease of processing. It's a little opinionated - it flattens some one-item arrays into objects - but it works very well for large WXR dumps; v8 and xml2js are very, very quick.

    Secondly, some Ruby. I packaged up a gist by Stefan Daschek into a gem to use as a Capistrano plugin. It's ideal for deploying static sites (including build processes) with cap: it makes a clean local checkout, gives you hooks to run build processes, and then uses rsync to move built content to a server (and lets you use all of cap's versioned deployment tools). The code worked, but it felt cleaner to turn it into a gem, rather than a lib file floating around my repository. So I finished the bundling job and wrote a pile of documnetation. No idea if either of these will be useful to other people, but they're easily shared. So let's do that, then, and perhaps someone else will find them useful. (Why are you using a server and not a CDN for a stic site, you might ask? To avoid yakshaving, primarily. Change one thing at once!)

    And that was a week.