Most recent posts

Updating to Macbook Air to macOS Sierra

Despite being, essentially, a Windows developer, I do own a Mac, specifically a mid-2013 MacBook Air. I use it … occasionally, let us say, mostly for iOS development. One day, there may be more to it, but that relaxed rationale is about it for now. Anyway, Apple just released macOS Sierra, the latest operating system for Macs (they’ve moved from the OS X name to macOS to match their taxonomy for iOS and watchOS).

For my own purposes I wanted to quickly note how I did it, since every time I try this out I have to look it up again. First up is that Sierra is available from the Mac Appstore, so in theory it’s just a case of downloading the install and then invoking it. However, for some reason long forgotten, I prefer to create a bootable USB drive just in case. I have Yosemite and El Capitan install USB drives, and I never remember how I made them. It turns out that I used a free app called DiskMaker X in the past, and this is what I used today (and of course I donated to the developer to thank him). Download the install for Sierra (cancel out of it after it’s downloaded), download DiskMaker X and then run it. It will find the install for the new OS, and then ask for a USB drive on which to copy it. I buy simple Kingston 16GB drives (or 32GB) from Amazon that I use for this purpose (around $5 each). After about 10 minutes or so, the USB boot drive will have been created.

After that, remove the USB thumb drive and then start the Sierra install as normal. Watch an incredibly inaccurate progress bar while it installs, and then you’ll eventually get the login screen again, but this time it’ll be for the new OS. Alternately boot from the USB drive and install it from there.

I only discovered one issue after the update: my Ethernet USB adapter (an AISX AX88179) suddenly didn’t work. It certainly had under El Capitan since that’s how I downloaded everything for this process. I soon found that there was a new driver for the new OS, so I downloaded and installed it. Apart from that, everything I regularly use on the machine (XCode, Xamarin, Office, Firefox, etc) works fine.

macOS Sierra stock photo

Making a stack persistent or immutable

A while ago I wrote a book on algorithms and data structures, in my case for Delphi. It’s still on sale , but regrettably somewhat out of date, given the changes to the language in the last 15 years (I’m thinking of the new support for generics in particular). While on my vacation over the last couple of weeks I started thinking about writing a new series of blog posts on data structures, and what easier than updating the book into a new generics-capable one? There was one drawback: I haven’t done...


Free open source comes with a cost

In my blog post “ Thoughts on open source ” I ended cryptically with But be aware that just because they’re “free” doesn’t mean that the cost to use them is zero. Let me expand a little on this with especial regard to JavaScript libraries. What exactly is a cost associated with an open source library? When is it not free? I’ll compare this with buying a library from a component vendor, such as DevExpress , the company I work for. For a kick-off, an open source library certainly does seem to be free...


My CST-01 lasted just over a year

Back in June 2015, I got my (replacement) CST-01, “the world’s thinnest watch”. I wrote about it at the time , mainly because of the stupendous crash-and-burn that the Kickstarter for it turned out to be. The watch is a lovely thing, to be sure. Well, I am sorry to report that, this weekend, after just 14 months of ownership, recharging every five to six weeks or so, the battery has now completely died. The watch only works if it’s plugged into the power charger. Unplug it, and the watch just shows...


Thoughts on open source

Waaaay back when (yes, it was eight years ago, an eternity in software development), I wrote a post on my old blog about using “ Code from the Internet ”. In those days, for me and my readers that meant finding some C# code from some blog post somewhere out there written by some Joe Blow and using it in your own app. These days however, if you’re doing any kind of web development, you’re going to be pretty well using a whole bunch of code from the internet, and in general from that internet outpost...


New theme for old blog

A while back, well after I’d purchased the current theme for this blog , I ran across another great responsive theme on someone else’s blog (unfortunately I never made a note of whose it was, so can’t credit them). The theme is called Selfy and I’d have to say it’s pretty clean and simple. So I bought it in order that I could change the admittedly awful self-designed theme on my old blog. I’m no designer is all I will say. OK, fine, the old theme was rank, and I don’t want to talk about it. Really...


Median stack mode: getting rid of people

Before we went away last week to Belgium, I was reading about a technique for removing people from your photos using Photoshop . I think I’d heard or read about it before way back when but had never really investigated the technique properly. This time though, I delved in deeper to see if I could do it myself. I suppose it was prompted by this short video that takes the technique to an extreme (notice how the shots with just the protagonist and no crowds are stationary/static so the technique can...


Calculating the date of Easter for a particular year

A long time ago, in a galaxy far, far away – OK, it was in London in 1993 – I added a DateEaster function to my personal Dates unit, written in Borland Pascal 7. So: 16-bit DOS for all you oldies. For a bit of fun, I shall present it here with some commentary. At the time I was really proud of this unit: the majority of it was written in assembly for speed reasons (it was used in a swaps trading app I was writing) and it could calculate things like days between two dates (including on a 360-day basis...


Using Node to run JavaScript from Sublime Text

A quick one, more for my benefit next time I have to set this up in the future. Sometimes, I’m writing some JavaScript that can be divorced from a web page. Maybe it’s a weird bit of code, maybe I’m experimenting with (say) functional programming, maybe it’s just a small self-contained function, but I’d really like to test it right there and then, rather than copy/paste it and use the developer tools in my browser. For Sublime Text, we can set up a “ build system ” to do this. First install node...


Professional theme? Sure, except for these bits…

Back in January , I pulled the trigger on a new theme for this blog. I recognized some time ago that I am not a very good web designer (I can do small tweaks to CSS but not comprehensive composition) and it would be far better to buy something that’s well designed and then spend the time wrapping the output from the blog engine to this new look and feel. And that, pretty much, is what happened. I bought a professionally designed theme (making sure it was responsive), and hacked away at the templates...