Blog

Increase LXC Disk Size in Proxmox Janne Kemppainen |

I noticed that I had only allocated 8G of storage for my Paperless-ngx LXC container running on Proxmox. Thankfully, increasing the amount is super easy!

Automatic Release and Build Workflow using GitHub Actions Janne Kemppainen |

Recently, I’ve been toying with a small personal side project where I wanted to implement automated release management with a press of a button, including version numbering and uploading build artifacts. In this blog post I’ll outline how this approach could be used in other projects, too.

Referencing Azure Key Vault secrets in Azure Functions Janne Kemppainen |

In the previous posts we’ve covered how to create an Azure Key Vault using Bicep and how to create an Azure Function App using Bicep. Now, let’s see how we can combine them together and reference secrets from a Key Vault in an Azure Function.

Using GitHub Copilot for writing documentation Janne Kemppainen |

Over the past few months, I’ve had the chance to dive into GitHub Copilot, and I must say, my experience with it from a programming perspective has been alright. However, what really caught my attention is how it can come in handy when it comes to writing documentation.

Manage Azure Key Vaults using Bicep Janne Kemppainen |

In a previous post, we explored the power of Bicep in defining and managing Azure Functions. Now, let’s dive into the world of Azure Key Vault and see how we can manage one using Bicep.

Deploy Azure Function Apps with Bicep Janne Kemppainen |

I’ve been recently working with some twenty plus Azure Function Apps that I need to manage. Previously, those functions had been handcrafted and managed manually from the Azure portal. In this post I will share how I switched to using Bicep templates instead and what I learned in the process.

Implement v-model in Vue.js Janne Kemppainen |

In Vue, the v-model directive is used to create a binding between an input or a component, and a data reference. This makes it possible to update the state of a value that is passed to a component. But how can you implement it yourself, especially if the value needs to be passed through a nested component?

Combine Multiple Filter Conditions in Python Janne Kemppainen |

This problem occurred when I was trying to think of an alternative way for returning the first item from a list that matches given constraints. Using if statements inside a for loop is the obvious way to comb through the items but the built-in filter() function provides an interesting alternative.

Create a Web App with Vue 3, Tailwind CSS and Storybook Janne Kemppainen |

I’ve been doing some small scale frontend development for a while now, and I have to say that I’ve really grown to love the Vue.js framework. Combined with Tailwind CSS and Storybook it makes for a strong starting point for your next web app!

Optional Arguments in Azure DevOps Janne Kemppainen |

Sometimes your Azure DevOps pipelines need to adapt to different situations with sane default values. On the other hand, optional arguments become especially handy when you want to create flexible and reusable templates.

Loops in Azure DevOps Pipelines Janne Kemppainen |

If you need to do the same thing over and over again, why repeat yourself? In this post we’ll discover how looping works in Azure DevOps pipelines.

Replace Docker with Podman and Buildah Janne Kemppainen |

Since Docker announced that the licensing terms for Docker Desktop have changed so that large companies need to start paying there has been growing interest towards alternatives. How can you switch to a free and open source solution, or should you?