Skip to main content

· 6 min read
Shaw Innes

Recently, I’ve been working on a few internal projects that required creating and hosting documentation for our team.

However, one challenge consistently got in the way of me being able to quickly share the information: finding an uncomplicated yet secure way to host this valuable content.

Using a static content generator like mkdocs was my preferred approach, but I really wanted to avoid having to run it in a docker container or behind a web server in order to add authentication to the mix.

As it turns out, Azure Static Web Apps paired with MkDocs and Azure AD is a relatively simple solution to this problem. The documentation alludes to the fact you can do all of this, but it took a few hours of stuffing around to get it "just right". Hopefully this can save you the hassle.

· 4 min read
Shaw Innes

Onboarding new team members can be a costly aspect of building and maintaining software, and this gets harder the bigger your organisation gets.

It's well known how much we cringe at the thought of having to write documentation, but thinking about it differently, and adopting a documentation-as-code approach we can remove the friction of this process.

In my talk, "Documentation for Developers", I share some stories and practices you can use to help make your software easier to understand for new developers joining the team. I also share some tools and techniques for capturing the architecture and design of your software.

Whether you're a one-person team hoping to scale up, or an enterprise with hundreds of repos, this talk will have some useful tips.

· 3 min read
Shaw Innes

I recently tried to create a simple demonstration of using Azure B2C in a React App using the MSAL-browser and MSAL-react libraries following the official documentation. I found it very confusing to understand which endpoints I should be using to use B2C authentication rather than AAD, and to subsequently obtain an access token.

If you don't care about my struggles and just want to copy and paste a solution: Give me the code!

· 7 min read

I was recently asked by a colleague to help brainstorm a solution to displaying a large number of data points onto a leafletjs map on a client project. The problem was that although client-side clustering was working in most instances, it was suffering from performance problems due to having to send the entire dataset to the client before performing the clustering.

One proposed solution which we implemented was to round the latitude and longitude of the resulting data with lower precision which would effectively group nearby points onto a single location which could be grouped. While this worked, it didn't seem clean to me so I decided to do some further research into established solutions for this.

TL;DR - I've created a working sample project for this here

· One min read

When creating a certificate request to create an intermediate CA, you generally want to add an Authority Key Identifier to the request so that there is clarity as to which issuing key was used to sign the intermediate CA cert. .NET Core currently lacks a native extension for this, so I hacked something together, allowing a similar experience to when adding a Subject Key Identifier to the request.

· 2 min read

Sometimes you need to serve some local static content over HTTP/HTTPS for testing SPAs or other things.

I recently stumbled across the dotnet-serve tool which is a dotnet cli global tool. It provides similar basic functionality to the Python module, however it also allows you to do a couple of extra things like returning headers, enabling HTTPS, and enabling content compression.

· 2 min read

As an Australian developer, I'm always fighting with applications that default to US date formats. I was recently working on an Angular 8 application which was using the DevExpress DevExtreme components. The problem was that the date controls kept formatting my dates as MM/DD/YYYY which isn't helpful

I had a look at the DevExpress documentation and struggled to configure it to use my Australian date formats. It took longer than I expected to figure out the trick, so I thought I'd document it here for anyone else who gets stuck.

· 3 min read

When you're at work meetings, have you ever noticed how many people will just find all the reasons why something won't work?

Have you ever worked with someone who, rather than doing this, moves towards the outcome whilst working around the challenges. "yes, we can do this, and we need to manage these risks"

Employees of large companies waste millions of dollars every year having circular arguments about why particular activities won't work.  These activities are time-consuming, frustrating, and largely ineffective.

A while ago I was introduced to the term "Institutional Yes" vs "Institutional No".  The way I see this idea is that any given organisation will have a predisposition or culture towards having a positive or negative attitude towards the possibility of taking action.

· 7 min read
Shaw Innes

As the end of another year approaches, it's always a time for reflection on the last 12 months.  Family, and community, is a vital part of civilisation. Familial bonds are what has made the human race so pervasive and successful. In every extended family there are a variety of diverse members with mix of gender and age.  Yet in the global technology community (and STEM to a broader extent) this diversity is lacking, both in gender, and race.

Many in the industry will disregard this to a "pipeline problem", a lack of interested candidates from an early age.  And, whilst I agree that this is a major aspect of the problem, I don't believe it's the only one, and there's another one which may be simpler to improve.

· 5 min read

Have you ever attended a conference or workshop where you wish the presenter could easily share their slides?  Or, are you a presenter and you'd like to share your slides with the audience in a frictionless way?