In improvisational comedy and brainstorming there is a principle of “Yes, and…” where people are encouraged to accept and build upon every new idea and suggestion. With software development, these suggestions come in the form of feature requests and, for OSS projects, pull requests. And why wouldn’t you want your product to have more features? Unfortunately, “Yes, and…” for software development…
Recently I found myself having to define, and build, some custom virtual machine definitions on Azure. The reason I needed to do this was so that I had some custom Linux and Windows VM images that had certain tools and config pre-configured. This was a new experience for me, and while I found the documentation and samples pretty useful there’s a lot of copy/pasting and not a lot of scripted,…
It’s common in software engineering to find yourself in a situation where you suddently have the idea that “if I just rewrite all this code life will be SO much better”. It often happens after you’ve been frustrated by a a set of bugs, or performance issues. It’s also very common when you inherit someone else’s code. Typical examples might be.. “If I replace all of this Python code with Go it’ll…
This is a work-in-progress list of things to remember when writing code. Some of them are especially useful if you’re writing code in a team of developers. Keeping this list in mind will, I believe, make you a better software engineer. They’re in no particular order. It’s Not Your Code You don’t own the code you write. Don’t get attached. If someone comes along and improves it, that’s fine. If…
Azure DevOps has a really neat feature that allows the author or a pull request, or any of the reviews of the PR, to mark the pull request as “auto-complete”. This means that as soon as any other policies are marked as complete, the change will get auto-merged into the main branch. The usual list of things that need to happen before a PR gets auto-completed include: no merge conflicts detected the…
A few years back I decided I’d try and use my (limited) skills drawing cartoons to publish some iMessage Stickers on the Apple AppStore . Here are a few examples: iMessage stickers are essentially images that you can send to people when chatting in Messenger. That’s it. The AppStore lets you find and download these to your iPhone, and then the Messenger app lets you send them to your contacts in…
I grew up programming on my TV, with a Sinclair ZX81 followed by a ZX Spectum. Computers built into keyboards, that you can easily plug into a TV, are part of my DNA. So, given this, how could I resist buying the new Raspberry Pi 400 !? The following are my initial thoughts on the hardware, and on using it for light weight development. TL;DR: I like it :) Tech Specs The Raspberry Pi 400 is,…
Last year I wrote two posts, explaining how I was using Docker to simplily my [Jekyll] static site builds on my local machine. The links are below, but the TL;DR is that I’ve further simplified all of this by using Visual Studio Code, and the Remote Container extension, to create a DevContainer. You can read most about Dev Containers here:…
This post has been sitting in my “drafts” folder for over a year. So, rather than trying to finish it (I had hoped to add a bunch of nice illustrations and images) I’ve decided to publish it “as is”. I enjoy drawing cartoon characters, and my recent purchase of an iPad Pro with Apple Pencil meant that I spent a good deal of time over the Christmas break drawing. At the same time, my kids have…
The other day my daughter presented me with 4 pages of hand-written essay and said “Can you help me? I’ve written this essay, but I was supposed to do type it up!”. There are plenty of tools and services out there that can do this, but I decided to use the Computer Vision service that’s part of Azure’s Cognative Services. My initial script was pretty scrappy, but it very quickly did the job and…