TFN Generator

A Tax File Number (TFN) is a unique identifier issued by the Australian Taxation Office (ATO) to individuals and organizations for tax and superannuation purposes. It consists of a nine-digit number, where the last digit is a checksum, which ensures that the number is valid. The below tool generates random TFN with a valid checksum. Once you have clicked on the Generate TFN button, click the TFN to copy it to your clipboard.
Read more

Azure CLI - My commonly used commands

Subscriptions Subscriptions - List all az account list --output table Subscriptions - Show current az account show --output table Subscriptions - Set current az account set --subscription "{Subscription Name}" Function App Function App - List all az functionapp list --query "[].{Name:name, Location:location, State:state}" --output table Function App - list stopped az functionapp list --query "[?state=='Stopped'].{Name:name, Location:location, State:state}" --output table App Service App Service - list stopped az webapp list --query "[?
Read more

A vault with the same name already exists in deleted state

When setting up a deployment pipeline with Azure DevOps, I came across the following error: A vault with the same name already exists in deleted state. You need to either recover or purge existing key vault. Follow this link https://go.microsoft.com/fwlink/?linkid=2149745 for more information on soft delete. The cause of the error was that after a previous attempt to deploy, I decided to clean up the resource groups I created, which included an Azure Key Vault.
Read more

Visual Studio Code - Running F# scripts from VS Code tasks

Below is an reference tasks.json file showing a single task that runs an F# script. { "version": "2.0.0", "tasks": [ { "type": "shell", "command": "dotnet fsi ./MyScript.fsx", "label": "My Script", "problemMatcher": [], "options": { "cwd": "${workspaceFolder}" }, "presentation": { "reveal": "silent", "panel": "dedicated", "showReuseMessage": false, "clear": true } } ] }

Ubuntu on Raspberry Pi - Logitech keyboard not working

When running a fresh install of Ubuntu 21.XX Desktop x64 on a Raspberry Pi, I always have issues with using my Logitech Keyboard (K400r). I can use the keyboard to log in and type text within the search bar. But if I try and type in the terminal or Firefox search bar, nothing works. I have found this workaround provided by user matzelchen on the Raspberry Pi forum, and adding here so I can easily find it again.
Read more

ConfigurationBuilder - How do I do that again?

Often when starting a new F# app, there comes a time when I want to read some configuration settings from a file, which can be overridden by environmental variables when running in production. This is closely followed by head-scratching as I try to remember how ConfigurationBuilder works and what NuGet packages I need. The below example should set you straight until Microsoft changes the API again, which should be just before the next time I type dotnet new .
Read more

Azure Functions - Help! Why do my function keys keep changing?

I created an Azure Functions Application a little while ago and found that the function keys would change every 24 hours. I should note that this particular app was triggered by an HTTP call every 24 hours. So it would only work once, and then the caller would be locked out the next time it tried to call the app. I raised a ticket with Microsoft, and the support engineer let me know that function key changes may be triggered by:
Read more

Power BI - Rolling Average

TL;DR If you want to create a Rolling Average in Power Bi using DAX, skip to here Why Rolling Average A common task I have is to analyse the performance of automated warehouses. This might involve monitoring how many cartons pass by on a conveyor or counting how many cartons are palletised by a robot. When dealing with time series information like the number of cartons per minute, the data can be quite noisy, particularly if you have slugs (groups) of cartons moving together with large gaps in between.
Read more

Azure Functions - Debugging in VS Code

Dear Future Me, If you are trying to debug Azure Functions locally using Visual Studio Code and you come across the error: “Failed to attach to process: Only 64-bit processes can be debugged.” This is because vscode requires you to run the Azure Functions runtime as a x64 bit process. The instructions don’t normally include this because it assumes you are have installed Azure Functions Core Tools using npm. But if I know you, you probably installed it using chocolatey.
Read more

Label Printing: Thermal Transfer vs Direct Thermal

The logistics industry favours thermal printing due to its ability to produce accurate images with excellent edge definition, making it ideal for printing barcodes. There are two thermal printing methods available; Thermal Transfer and Direct Thermal. In Thermal Transfer, a thermal print head applies heat to a print ribbon contain ink. That ink is melted onto the label to form the image. Direct Thermal requires a thermal sensitive label that the print head will heat directly to form the image.
Read more