While making a concerted effort to learn Swift properly, I finally understood an unexpected pattern I saw with extensions I’ve been reading Swift for a while, even wrote a little bit of code in it at a previous employer. But I’ve never taken the time to learn it. I’ve been reading “The Swift Programming Guide” (aka Apple official book) for a couple years (on and off). I recently started to work through Apples “Intro to App Dev” ‘course’. Everything has been pretty reasonable, but a couple things have caused me to raise an eyebrow. One was the whole existential / opaque / some / any complexity — but, reading the chapters it became clear that these are choices made by the compiler team for optimization & safety reasons. All good. The other was extension (doc) – that was not so clear.
22nd January 2023, three minutes to read
The Story of Storyvoid
How Storyvoid came to be, and the details of how it was put together Since June 2011, I’ve been working on Storyvoid, and Instapaper client for Windows. With 619 commits spanning nine years of active development, it’s a labour of love. As a free app, it isn’t going to be a business or a breakout hit, but it is mine, for all its warts.
18th December 2022, 33 minutes to read
🔗 Roundup No. 4
Whaddya know, a roundup of recent things I've found interesting It’s been a while — over six months! — since my last link-a-thon. But the time has come, and I have some more interesting links to dump upon you all to read at the end of the year.
18th December 2022, six minutes to read
aka Exposing Digital Clutter in ARverse, aka how might we organise information & assets in an AR world Inspired by a comment by a friend that they don’t like ebooks because they’re hidden from physical view, thus not seeing their unread pile of books nagging at them relentlessly.
12th September 2022, three minutes to read
Simple Git Secrets
Apps have secrets, and you don't want to accidentally put them in git. Lets try a simple approach There are lots of solutions, guides, and services that help you manage your secrets in a professional, secure manner. These are absolutely the type of solution you want for your production environment.
31st May 2022, four minutes to read
🔗 Roundup No. 3
Another roundup of recent things I've found interesting Another round of links — with a slightly smaller gap (90 days on the dot!) between dumps collations.
25th May 2022, four minutes to read
Inner Loop Buddy
tl;dr: I made a VS Code Extension (Inner Loop Buddy) that opens a browser tab when you run a task I made an extension to automatically opens a browser inside VS Code when tasks are executed. Install it from the VS Code marketplace. Leave feedback on GitHub
30th April 2022, two minutes to read
Demoralized by complexity – a rant
Sometimes, software development gets you down. Sometimes a rant about it helps. On the back of my blog post about a simple dev inner loops, I decided I need an extension that would open the internal browser in VS Code when my project opened, or my http server started. Seems simple right?
12th April 2022, six minutes to read
File/New/Project — Simple Developer Inner Loops with VS Code
Developer inner loops are critical. Getting them setup requires many steps. I take a few steps to make the simplest cases simple in Visual Studio Code and Panic Nova. You have a programming idea. It’s not complicated, it’s not fancy, and doesn’t matter to anyone but you. You have limited time, and you just kinda wanna get on with it. You don’t want complexity, you’re not looking for “best practices”, and you’re not looking for the latest whizzbang thing. But you do want it to be easy.
5th April 2022, 11 minutes to read
🔗 Roundup No. 2
More Links I've recently read Time for another round of links. It’s been checks notes 8 months, 6 days since my last round of links, and I’ve finally collected enough for another round!
24th February 2022, three minutes to read
A-la-carte App Store
aka What do I get for that 30%? Apple’s proposal for the Netherlands Dating App Purchase ACM ruling has had many decrying the proposal. At best the proposal is obtuse, at worst it’s pure greed. South Korea has laid out similar requirements. What does it cost Apple to deliver apps for developers?
11th February 2022, five minutes to read
WWDC 2021: Apple is building the metaverse substrate in plain sight
I thought it might be fun to take a semi-serious look at technology from the Apples WWDC21 keynote, and how it might help building the metaverse. I may have spent way too much time watching sessions at 1.5x, and it may have broken my brain a little. The WWDC 2021 keynote made it ever clearer Apple is building the components of a metaverse substrate in the open. This isn’t their first year — WWDC 2019 was where they first pulled back the curtain. Since then, it’s been clear they have the skills pull off the hardware & device software stack. I’ve been less sure they understood the full scope needed to build a compelling AR ecosystem – a metaverse. With this years features, it’s become clear they might be able to pull it off. And it’s out there, in the open - every year they’re moving a little bit closer.
20th June 2021, 19 minutes to read
🔗 Roundup No. 1
Links I've recently read, and think are interesting As I make my daily rounds on the internet I read way to many things. Some are new, some are old. I thought it might be worth sharing some of the most interesting ones people, so here’s some recently read 🔗 that I thought might be worth your time!
19th June 2021, two minutes to read
What happens with a decoupled App Store?
Concerns about walled-garden stores are growning. No-one talks about possible outcomes, and what that might look like. There’s a lot of discussion& hand wringing about the various App Store walled gardens. Many are asking if they should be dismantled, some suggest they be opened up through regulation. The final outcome is not yet clear, but what if decoupled app stores are part of the aftermath? What does that world look like? Lets explore!
21st March 2021, eight minutes to read
Better default architecture target for Visual Studio Solutions
Ever wanted to make your Visual Studio solution buildable on open? Read on! For a long time, I’ve always been frustrated with the default CPU target when opening a Visual Studio solution — ARM. I don’t have an ARM CPU device to deploy to, let alone the machine opening the solution having an ARM CPU.
28th December 2020, five minutes to read
Three Displays, Three Times the Fun, Triple the Pain
Turns out, connecting three high resolution displays to a MacBook Pro 13” is a bit bothersome. Getting it just-so, total pain. Worth it. I’ve always liked large displays. Prior to The Distancing™ I was constantly going between meetings & my workspace, so one large 40” monitor sufficed to stop me from being hunched over a 13” laptop display at my desk. With work-from-home, I pined for mo’ monitor. I’ve never been able get into the groove with dual monitors though. With one dead-ahead, one to the side always felt lopsided. If you put one either side of the center, you’re staring at a seam all day; no thank you!
27th September 2020, eight minutes to read
Using embedded and IoT devices with a VPN
I needed to connect smart devices to a VPN. Here's what I found Modern embedded devices such as connected media players (Apple TV, Roku, Smart TVs), or IoT (internet of things) devices are constrained in what you, the end user, can change in configuration, and the software you can run. This is for good reasons — providing a secure environment for media devices, or enabling ‘zero maintenance’ of IoT devices.
26th July 2020, seven minutes to read
Thoughts On Working From Home
A little waffle on working from home during the pandemic I’ve never enjoyed working from home. I’ve always found it more intense, more stressful, and just, well, generally more. Sure, I’d work from home if I had to (snow storms etc), but in the 16 years I’ve been employed I’d always favour being at work when real work was needed — even when it was on a weekend for just a few hours.
26th July 2020, six minutes to read
Computers are a utility — they should behave like one
Wherein I get a bit ranty about some bad computering. This post inspired by yet again going to pootle around on my personal “computers” at the weekend, and yet again one of them decides to just get “in the way” for nearly an hour before I can actually use it for the purpose intended.
21st April 2019, three minutes to read
Generating sharable UWP test certs
25th February 2018, two minutes to read
Update Dec 28th 2020: Visual Studio 2019 no longer generates certificates by default when creating a UWP project (yay), so you don’t end up broken out of the box! Plus, when you go through the ‘Create App Package’ flow, it will ask to create certifcates – when prompted for a password, just don’t enter one, and it’ll do the right thing. Hurrah!
My Mixpanel client library for Windows UWP
25th February 2018, two minutes to read
The ogre at the end of the keyboard
7th July 2017, five minutes to read
I’m not talking about trolls on Twitter, flunkies on Facebook, or the ill-informed on the internet that have you seeing red.
Always be looking ahead. Not everyone is an asshole.
29th May 2017, two minutes to read
Recently, I was watching a talk by Matt Drance from his 2015 CocoaConf talk “What The Race Track Taught Me About Software Development” [Currently unavailable]. I wanted to watch it because I’ve found his tweets & writings in the past to be interesting & thought provoking — that and I like to think I’m kinda a car guy. Race tracks? Software development? Sure, this should be fun!
co_wait, C++/CX and the UI Thread
16th January 2017, three minutes to read
I was working on some supporting code for my Windows 10 Instapaper client, and I ended up going down a rabbit hole of trying to understand the way that co_await works with the XAML/WinRT dispatcher. I ended up writing some sample code & sharing on GitHub. I’ve included the readme below, but the most up to date details will be on the repo.
Why I wrote a tool to find duplicate files (by MD5-hash) I’ve authored a tool called FileDeduper, which scavenges a file system, MD5-hashes all the files, and then moves all the duplicates to a destination directory keeping the original tree structure. The intent with “move” rather than “delete” was to keep data rather than accidently delete it. Sure, the MD5 hash should mean this isn’t a risk, but you know, safety first.
7th January 2017, 1 minute to read
Thoughts on testing
Extract from my book on testing with Visual Studio 2005 Many — many — years ago I wrote a few chapters for a book: “Professional Software Testing with Visual Studio 2005 Team System”. While I think the book is now probably out of date, I thought it would be worth posting some of the more timeless content (aka not the “Press this button” parts) as a blog post. Do note this was written back in 2007. Also, the publisher was pushing to hit a specific page count to justify the price, so in some cases I am… wordier… than one should be. Sorry.
3rd September 2007, 14 minutes to read