Browse our archives by topic…
Exploring OpenChain: From License Compliance to Security Assurance
Open-source software has become an essential part of many organisation's software supply chain, however, this poses challenges with license compliance and security assurance.
Data validation in Python: a look into Pandera and Great Expectations
Data validation is a vital step in any data-oriented workstream. This post investigates and compares two popular Python data validation packages - Pandera and Great Expectations
How to setup Python, PyEnv & Poetry on Windows
Using multiple versions of Python on Windows can be a frustrating experience, especially if you've experienced how smooth the same workflow is on MacOS and Linux/WSL. This post provides a script and guide to getting setup to use Python virtual environments and Poetry, a popular dependency management tool.
Adventures in GitHub Actions: Episode 1 - Goodbye Azure DevOps, Hello GitHub Actions
This series will follow our ongoing journey of migrating the CI/CD pipelines for our many Open Source repositories, from Azure DevOps to GitHub Actions.
How To Implement Continuous Deployment of Python Packages with GitHub Actions
This post demonstrates how to use GitHub Actions to automatically publish updates to your Python package to PyPI, and explores whether this constitutes Continuous Deployment
The OpenChain specification explained
When implementing OpenChain, understanding the specification will help guide your organisation to having processes in place to review and manage open-source software
What are the risks with open-source software?
The key risks associated with open-source software, from whether you use it minimally, to using it throughout all your systems.
What is OpenChain?
With much of the modern world is built upon software, organisations need to understand and manage the legal and security risks associated with open-source software.
How to sign your git commits
Signing git commits proves that you are the author of the code you are pushing up to GitHub, and helps protect the integrity of your software supply chain.
Continuous Integration with GitHub Actions
This post gives an overview of Continuous Integrations and shows how you can implement it with GitHub Actions, with an accompanying example Python project
Publishing Scripts to the PowerShell Gallery
Publishing individual scripts to the PowerShell Gallery can be an effective way to share pervasive functionality without the overhead of maintaining a full-blown PowerShell module. In this post we'll look at how we can take a function that is already published as part of a module and also make it available as a standalone script, without having to maintain two versions of the code.
Using Azure CLI Authentication within Local Containers
Have the recent changes to Azure CLI on Windows broken your dev inner loop when working with containerised applications that need access to Azure resources? If so, this post provides a workaround that will unblock you without having to be stuck on an old version of the Azure CLI.
Introduction to Containers and Docker
Containers and Docker offer a different approach to development and deployment of applications. This post provides an introduction to containerisation and Docker, and provides examples of creating containerised applications with Docker.
Flex Your DevSecOps Muscles With Bicep (and get started with our cheat sheet)
Bicep provides a significant improvement in tooling for organisations seeking to deploy infrastructure as code on Microsoft Azure.
How to deploy a Vue app to Azure Static Web Apps using Azure DevOps and YAML
Static Web Apps are Microsoft's offering for hosting static web applications on Azure. This post runs through how to deploy a VueJS application to a Static Web App using a YAML-defined Azure Devops pipeline.
How to use Power BI deployment pipelines to enable DevOps for analytics
Power BI deployment pipelines is a (relatively) new feature of Power BI that is used to manage collaboration, change management and testing of reports. They can be used to enable DevOps for your analytics solutions, and support structured development and deployment of reports.
How to consume a NuGet package in PowerShell
Sometimes the logic for the bit of work you're doing in PowerShell won't be packaged into a handy PowerShell module with cmdlets to perform the operations you need to perform. But what if there is a .NET package listed on NuGet that does contain the assemblies you need for your work? How can we import that into PowerShell and make use of its classes and methods? This blog explains how to do just that, avoiding current pitfalls in PowerShell's implementation of the NuGet package provider.
How to update credentials for an on-prem Power BI data source using PowerShell
Automating the updating of Power BI data source credentials is a common requirement in the application lifecycle management of a Power BI solution. However, on-premises data sources throw an extra spanner in the works: you must encrypt your credentials using the RSA-OAEP encryption algorithm before sending off the request to update the data source. There is currently no PowerShell module that encapsulates this logic into a set of handy cmdlets, so you must either implement the algorithm's logic yourself, or you can use the helper classes in the existing .NET SDK to do all the heavy lifting for you. This blog shows how to do the latter.
Does your GitHub Repo need 'Code Operations'?
CodeOps enables you to layer standards, automation, and governance to your source control repositories, decreasing manual effort and increasing productivity.
How to fix the "You need permission to access workspace..." error in Azure Synapse Analytics
Data Engineers/Developers want to get access to Azure Synapse Analytics as quickly as possible to start designing and creating their data solutions. Being denied access to Synapse Studio can be frustrating and slows matters down. This article will address the "You need permission to access workspace..." error, discuss what causes it, and describe how to fix it.
How to use the Azure CLI to manage access to Synapse Studio
Azure Synapse Analytics developers need to be assigned a role within Synapse Studio in order to access the GUI. The Azure CLI provides one way of programmatically achieving this, which can be done by any Owner or Contributor of the Azure Synapse Analytics resource.
GitOps: Not Just For Kubernetes!
GitOps (sometimes known as 'operations by pull request') is most often discussed as being an approach for managing your Kubernetes platform, but in this post I will make the case for how it can benefit a much wider audience.
DevOps: Build Bridges not Silver Bullets
Building a system that solves even just 10% of a problem is a worthwhile endeavour, not just because of the value the 10% delivers but because its mere existence will lower the barrier-to-entry for your colleagues to collaboratively iterate on it - not so much 'Build it and they will come' as 'Build a road and they will come'
Streamline .NET Dependency Management with NuGet Meta Packages
Creating meta/virtual NuGet packages to encapsulate frequently used collections of dependencies can be an effective way to both simplify their consumption as well as streamline the process of integrating and testing new versions using tools like Dependabot.
Deploy an Azure Synapse Analytics workspace using an ARM Template
Azure Synapse Analytics is Microsoft's new unified cloud analytics platform, which will surely be playing a big part in many organizations' technology stacks in the near future. For many organizations, Azure Resource Manager (ARM) templates are the infrastructure deployment method of choice. This blog explains how to deploy an Azure Synapse Analytics workspace using an ARM template.
Advanced Azure Resource Manager template patterns – t-shirt sizing and optional resources
One very useful but little used pattern when working with Resource Manager templates, is the ability to use parameters to optionally deploy resources, constrain certain resource configurations based on other user defined parameters, or to toggle parameters based on other values. This blog post explores some of these options.
Automating creation of new ALM environments using PowerShell and Azure DevOps
Did you know that you can fully automate the bootstrapping process of setting up an Azure DevOps enviornment? This post shows you how.
A Step by Step Guide to Connecting to an Azure Virtual Machine with PowerShell Remoting
Learn how to use PowerShell Remoting to connect to an Azure Virtual Machine; a useful technique for managing servers like cattle, not pets.
A Step by Step Guide to Automating TeamCity Backups
In this blog post, I provide a how-to guide for automating your TeamCity backups using a PowerShell script.
A Step by Step Guide to using GitFlow with TeamCity – Part 2 – GitFlow - a Branching Model for a Release Cycle
In this post we show you how to get up and running with GitFlow.
An Omega Geek's Guide to Learning PowerShell
PowerShell is fantastic language for DevOps, automation and general scripting. Every developer should be familiar with it; here's a guide to some useful resources to help you learn it.
A Step by Step Guide to Hosting YouTrack in IIS 7
In this step-by-step how-to guide, we take you through the process of setting up YouTrack, and using IIS as a reverse proxy so you can access your YouTrack server via a custom domain.