Posts
Protecting Code Quality with Trunk.io
I recently went down a rabbit hole of VS code extensions and whilst doing some extension exploration of my own I came across one that looked interesting called trunk. I mused that this could help me with trunk based development along with my consistently poor code quality (what can I say, I am a fairly lazy hungovercoder). I quickly became intoxicated with everything that trunk.io had to offer and integrated it into my workflow to easily protect my code quality before committing to the main branch!
Turbo charging your conventional git commit workflow in VS Code
I was recently introduced to git conventional commits as a method of streamlining your commit messages and providing the ability to automatically generate CHANGELOG. My first instinct these days is to quickly search for a VS Code extension on any new language or topic I am given. Lo and behold I had a hit! After some preference tweaking, as recommended by the extension, and a new (but old) keyboard shortcut, I now bring to you my turbocharged git conventional commit workflow in VS code!
Developing locally with cosmos emulator in a container
A problem came up recently whereby we needed to run the cosmos emulator in a docker container for local development and subsequently in the CI stage of our deployment pipeline to reduce the need for a permanent environment. This was a right head scratcher due to the slowness of the emulator to start along with the need for a cert to interact with the emulator. This started to make me feel worse than a classic hungovercoder hangover, there was only way to cure myself of this… Solve the problem with my favourite of all hangover cures - doggos! Lets jump in and demonstrate how we can create a local developer experience with a dotnet app and the cosmo emulator running docker.
Deploying Containerised React App with Runtime Environment Variables
React is a fickle beast when it comes to runtime environment variables and after visiting some of the distilleries on whiskey.hungovercoders.com it becomes an even trickier prospect to handle… My goal was to ensure that I could reference the appropriate API url for each react application at runtime with the appropriate argument in each environment as I deployed them with terraform in Azure container apps. After reading this extremely helpful post from the awesome freecodecamp.org, that did all the work for me, and then adding a little of my own brand of hungovercoding, the outcome was a success! My source code for all of this can be found in hungovercoders/whiskey.inventory.
Shift Left with Scripts
Being an impatient hungovercoder due to the constant headaches the night before often brings upon me, I need to make sure I find out as early as possible whether my deployment pipeline is working. For years I have committed my code and waited for some proprietary tooling embedded within Azure devops or github actions to tell me the answer… I have changed my ways and have now brought the scripts for deployment into my codebase that I can simulate easily locally in my cloud developer environment AND then use the exact same scripts for my deployment pipeline! Read on fellow hungovercoder and find out how to shift left with scripts…
Integrating OKR Cycles into the Agile Framework
It’s been nearly 2 years since I posted one of my first blogs which was around OKRs (objectives and key results). Since then I have been preaching their usage and loving the concept… but I have completely missed integrating their ideas into the day to day agile working practices, rendering them ineffective. Spurred on by co-workers, my will to ensure that prioritisation of value is easy during iteration ceremonies, and the awesome book Succeeding with OKRs in Agile, below are my thoughts on how to integrate OKR cycles into the agile framework.
Automating Adding Issues to Github Projects
Being a hungover coder it can be difficult to remember all the ideas you’ve had or which ones you are currently working on… I’ve therefore invested in github projects and organised all my work (at least for now). One of the constraints of the github projects is that even if you link a repo, the issues or bugs are not automatically added to your project board. Below are three ways to ensure issues are automatically added to the board of your choosing!
Exporting Azure Resources into Terraform with aztfexport
The hungovercoders template.azure.terraform repo is now an absolute beast and a template I frequently use as a starting point for any codebases that will deploy infrastructure to Azure. However, I wanted to know if there was a way to fast-track anyone who doesn’t want to convert their ARM or bicep from first principles into terraform… The answer is yes and it is aztfexport! Lets crack open a can and automate those terraform files!
Creating postman collection for Marvel API in VS Code
I am way behind on my blogging given tis the season to be hungover and not coding… Below describes how to create a simple postman collection using the super Marvel API leveraging environments and variables using the postman VS Code extension. This I thought would be a great opportunity for me to see how API endpoints get structured and documented for a public facing API. I then show how you can add some examples, descriptions and tests (using AI no less!) in the Postman app. dataGriff SMASH!
Adding Comments to Jekyll Minima Blog on Github Pages with Giscus
I wanted to start getting feedback for my github pages hosted jekyll minima backed blog posts. These could possibly be scathing drunkards furious with my methods, so that we may enter an educational debate, or simply feedback on how to improve areas as I am always busting to elevate my code! I came across giscus and found that this was very simple to do by backing it with github discussions as follows…
Azure Terraform Gitpod Cloud Developer Template | Creating a Github template to deploy azure infrastructure with terraform in Azure using Gitpod
I wanted to make some Github templates using cloud developer environments to solve my ongoing configuration and development needs for infrastructure deployment. This has led to an awesome experience for myself as I can now rapidly develop and test against an Azure cloud environment in seconds using this template.azure.platform repo! Read on to find out how I did this with github, gitpod and Terraform!
AI for Software Architecture Part 1 | Generating boiler plate software architecture with chatgpt and event catalog
Unless you’ve been living under a rock (or some rubble caused by the rise of the machines) you must have heard of chatgpt by now. This is a large language model that can write poetry, write content (see my post on SEO) and even generate excellent boilerplate code for pretty much any language and design pattern. I was keen on seeing how well it could do at generating logical software architecture… My plan therefore is to combine new AI models with this great open source event catalog tooling that has templates for markdown I hope to leverage. This first part of the blog series is going to be generating a domain, event and team schema JSON using chatgpt. I will then use this to feed into event catalog markdown templates in part 2. Hold on to your drinks..!
.Net API Container on Gitpod | Great developer experience in a cloud developer environment
Recently I decided to learn docker and all things containers. I dived deep into the deepest darkest spaces of my windows laptops configuration… My laptop suddenly got very angry with me and decided that the C drive was too full, or that suddenly docker desktop and the dotnet framework would disappear from my machine! I desperately wanted to just code and run the whiskey api in a container without wasting time configuring my machine. Well, everyone, there is a way, and that way is using the cloud developer environment gitpod…
How to Pass the Databricks Data Analyst Associate Exam
It was my birthday over the weekend and whilst my body was completely destroyed by whiskey and vermouth… my mind craved sustenance and my soul penance. Therefore I looked at the preparation guidelines for the databricks analyst associate certification and thought “we got this!”. Within 48 hours my mind was full to the brim, my soul ready to redeem some of the reprehensible activities of the weekend by passing the exam and then sharing this approach with you. Here goes…
.Net Core 7 API | Create a distillery lookup API with .Net Core
Well I was definitely a hungovercoder yesterday and it was quite difficult to stare at lists of distilleries without wanting a bit of hair of the dog… Anyway below explains how to create a simple lookup API GET request using .Net core. I am not a .Net ninja, nor am I an API aficionado (yet!), but the following will create you a basic and currently very insecure API. I hope to investigate APIs further in .Net and follow-up with better practice approaches in the future. The ongoing implementation of this API can be found in the hungovercoders github organisation under whiskey.reviews.
SEO What's Occurring? | Basic Search Engine Optimisation
I realised not enough people were coding under the influence and visiting the hungovercoders website. I simply could not understand why not everyone in the world was coming to this awesome site. I heard the letters SEO and thought - what’s occurring? A quick test found that the SEO score of the site was under 20%. Here is what I found out to improve the SEO of www.hungovercoders.com and blog.hungovercoders.com!
How to Pass the Databricks Spark Exam and Cheatsheets
After a few Guinness there is nothing I like better than to do a certification. In this instance it was the databricks spark developer associate certification. It took me about 2 weeks from deciding to do it to passing as I was already well versed in spark. This is how I did it!
Terraform Azure Data Learning Platform
I am quite often creating various data assets like data lake storage, databricks etc on Azure for learning. I want to automate the provision of these to make my life easier and so I decided to crack open a can and learn some terraform on Azure with github actions to make this repeatable!
Local Install of Spark, Python and Pyspark on Windows
Want to install python, spark and pyspark for some local data pipeline testing? Look no further… Accompanying this blog there is also this video on youtube. Multimedia has hit the hungovercoders!!!
Quick Start for Google Analytics 4 Using Google Tag Manager
I want google analytics 4 on my website and I want it now. How else can I ensure that all the hungovercoders are learning all the best tech and finding their local breweries?? The following shows you how to setup a GA4 property and hook it up to your website with google tag manager…
Cookie Consent for your Website Using Google Tag Manager
Ok beer and code lovers, I wanted to make sure that I captured consent for analytics for anyone coming to the hungovercoders website. I’ll be honest by the end of my consent rabbit hole I really fancied a can, but instead I’ll share my knowledge here with you of how I leveraged Google Tag Manager and Klaro to manage consent for a website. The reason that this is such a great combination is that it is free, extremely customizable and you can manage your consent from a single point.
Data Layer with Javascript
I wanted to make some local breweries available to the browser client side so I can then use this in tagging exploits. Below talks through how I can make these alcoholic hotpots available in the data layer!
Track Your Beer with a Tag using Google Tag Manager
You have a load of lovely links on your website that link to external alcoholic partners. How do you keep track of your beer fuelled journeys when a customer goes to those beer-infused partners?? With google tag manager and some tasty javascript, that’s how!
Save Space on your Local Docker
Super quick blog post today which will help stop you screaming at your C drive when it runs out of space for more beer downloads.
Docker Environment Variables and Secret Beers in Azure Key Vault
I have been looking at storing beers in a database and to do that I needed to understand how environment variables work. My alcohol-addled mind needed to hello world this before I got state involved as well. Below is a simple demonstration of how you deal with environment variables in a docker fast api setup and then how you can reference these in a deployed app with key vault in Azure.
Creating a Beer Form with React
With the festive season upon us I have been more hungover than coder recently… However I was able to do this quick react course by NetNinja and can now show you how to start creating beers in a simple single page app!
Creating Schemas and Data from Pydantic Beer Models
A quick post today showing how Pydantic offers some great ways to create schemas from your data model. In this post I”ll show you how to create a JSON schema for you beers and generate some fake data!
Sitting on the docker the beer
In the previous post we created a Beer API using Fast API in python. Now fellow hungovercoders we want to pour this into a docker container and publish in an azure container app, sharing our beer-fuelled goodness with the world!!!
Quick Beer with FastAPI
The following describes creating a basic FastAPI using python to manage Beers. The FastAPI has some superb documentation that even the most ardent hungovercoder can understand! I think I’d actually been out on the Thursday and Friday on the beers when coding the below…
Get by with Git
Drinking too much? Can’t remember all those git commands and methods without googling them every time?? Google no more, this page will help you… get by with git!
Web Scraping for Beer with Python Beautiful Soup
So we’ve previously looked at creating beer in a flask api, now I want to guzzle some beer from the web using the python package beautiful soup to scrape beer information!
Creating a Flask API with Python
The following describes creating a basic Flask API using python to manage Beers. Mmm beer… in a flask…
Team-First, OKRs and Hypothesis Driven Development
Below is a summary of the magic ingredients you can use to dramatically improve your organisations value and staff happiness.
Utilizing User Environment Variables
Creating environment variables is useful for when you want to use the same variable across multiple languages, or perhaps to maintain a consistent environment for your settings on your machine, such as development credentials.
subscribe via RSS