<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PäksTech</title><link>https://www.pakstech.com/</link><description>Recent content on PäksTech</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>2021 Janne Kemppainen All rights reserved</copyright><lastBuildDate>Thu, 28 Feb 2019 17:07:09 +0200</lastBuildDate><atom:link href="https://www.pakstech.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Increase LXC Disk Size in Proxmox</title><link>https://www.pakstech.com/blog/proxmox-increase-lxc-disk/</link><pubDate>Sun, 10 Mar 2024 13:04:55 +0200</pubDate><guid>https://www.pakstech.com/blog/proxmox-increase-lxc-disk/</guid><description>&lt;p>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!&lt;/p></description></item><item><title>Automatic Release and Build Workflow using GitHub Actions</title><link>https://www.pakstech.com/blog/github-actions-release-workflow/</link><pubDate>Sat, 11 Nov 2023 11:36:38 +0200</pubDate><guid>https://www.pakstech.com/blog/github-actions-release-workflow/</guid><description>&lt;p>Recently, I&amp;rsquo;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&amp;rsquo;ll outline how this approach could be used in other projects, too.&lt;/p></description></item><item><title>Referencing Azure Key Vault secrets in Azure Functions</title><link>https://www.pakstech.com/blog/azure-functions-key-vault/</link><pubDate>Mon, 07 Aug 2023 12:55:58 +0300</pubDate><guid>https://www.pakstech.com/blog/azure-functions-key-vault/</guid><description>&lt;p>In the previous posts we&amp;rsquo;ve covered how to &lt;a href="https://www.pakstech.com/blog/azure-key-vault-bicep/">create an Azure Key Vault using Bicep&lt;/a> and how to &lt;a href="https://www.pakstech.com/blog/azure-function-apps-bicep/">create an Azure Function App using Bicep&lt;/a>. Now, let&amp;rsquo;s see how we can combine them together and reference secrets from a Key Vault in an Azure Function.&lt;/p></description></item><item><title>Using GitHub Copilot for writing documentation</title><link>https://www.pakstech.com/blog/documentation-using-github-copilot/</link><pubDate>Wed, 05 Jul 2023 20:27:44 +0300</pubDate><guid>https://www.pakstech.com/blog/documentation-using-github-copilot/</guid><description>&lt;p>Over the past few months, I&amp;rsquo;ve had the chance to dive into &lt;a href="Titlehttps://copilot.github.com/">GitHub Copilot&lt;/a>, 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.&lt;/p></description></item><item><title>Manage Azure Key Vaults using Bicep</title><link>https://www.pakstech.com/blog/azure-key-vault-bicep/</link><pubDate>Fri, 30 Jun 2023 16:26:06 +0300</pubDate><guid>https://www.pakstech.com/blog/azure-key-vault-bicep/</guid><description>&lt;p>In a previous post, we explored the power of Bicep in &lt;a href="https://www.pakstech.com/blog/azure-function-apps-bicep/">defining and managing Azure Functions&lt;/a>. Now, let&amp;rsquo;s dive into the world of Azure Key Vault and see how we can manage one using Bicep.&lt;/p></description></item><item><title>Deploy Azure Function Apps with Bicep</title><link>https://www.pakstech.com/blog/azure-function-apps-bicep/</link><pubDate>Wed, 28 Jun 2023 20:39:36 +0200</pubDate><guid>https://www.pakstech.com/blog/azure-function-apps-bicep/</guid><description>&lt;p>I&amp;rsquo;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.&lt;/p></description></item><item><title>Implement v-model in Vue.js</title><link>https://www.pakstech.com/blog/vue-v-model/</link><pubDate>Thu, 12 Jan 2023 20:14:59 +0200</pubDate><guid>https://www.pakstech.com/blog/vue-v-model/</guid><description>&lt;p>In Vue, the &lt;a href="https://vuejs.org/api/built-in-directives.html#v-model">&lt;code>v-model&lt;/code>&lt;/a> 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?&lt;/p></description></item><item><title>Combine Multiple Filter Conditions in Python</title><link>https://www.pakstech.com/blog/python-multiple-filter/</link><pubDate>Mon, 03 Oct 2022 20:29:08 +0300</pubDate><guid>https://www.pakstech.com/blog/python-multiple-filter/</guid><description>&lt;p>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 &lt;code>filter()&lt;/code> function provides an interesting alternative.&lt;/p></description></item><item><title>Create a Web App with Vue 3, Tailwind CSS and Storybook</title><link>https://www.pakstech.com/blog/vue-tailwind-storybook/</link><pubDate>Thu, 01 Sep 2022 18:30:49 +0300</pubDate><guid>https://www.pakstech.com/blog/vue-tailwind-storybook/</guid><description>&lt;p>I&amp;rsquo;ve been doing some small scale frontend development for a while now, and I have to say that I&amp;rsquo;ve really grown to love the &lt;a href="https://vuejs.org/">Vue.js&lt;/a> framework. Combined with &lt;a href="https://tailwindcss.com/">Tailwind CSS&lt;/a> and &lt;a href="https://storybook.js.org/">Storybook&lt;/a> it makes for a strong starting point for your next web app!&lt;/p></description></item><item><title>Optional Arguments in Azure DevOps</title><link>https://www.pakstech.com/blog/azure-devops-optional-arguments/</link><pubDate>Mon, 11 Jul 2022 09:47:38 +0300</pubDate><guid>https://www.pakstech.com/blog/azure-devops-optional-arguments/</guid><description>&lt;p>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.&lt;/p></description></item><item><title>Loops in Azure DevOps Pipelines</title><link>https://www.pakstech.com/blog/azure-devops-loops/</link><pubDate>Mon, 25 Apr 2022 21:32:22 +0300</pubDate><guid>https://www.pakstech.com/blog/azure-devops-loops/</guid><description>&lt;p>If you need to do the same thing over and over again, why repeat yourself? In this post we&amp;rsquo;ll discover how looping works in Azure DevOps pipelines.&lt;/p></description></item><item><title>Replace Docker with Podman and Buildah</title><link>https://www.pakstech.com/blog/replace-docker-with-podman/</link><pubDate>Thu, 21 Apr 2022 21:28:22 +0200</pubDate><guid>https://www.pakstech.com/blog/replace-docker-with-podman/</guid><description>&lt;p>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?&lt;/p></description></item><item><title>Send Teams Notifications from Azure DevOps</title><link>https://www.pakstech.com/blog/azure-devops-teams-message/</link><pubDate>Wed, 06 Apr 2022 20:10:56 +0300</pubDate><guid>https://www.pakstech.com/blog/azure-devops-teams-message/</guid><description>&lt;p>An important part of a CI pipeline is to keep you updated on what&amp;rsquo;s happening. When a build or a test suite fails you might want to be notified about it. In this post we&amp;rsquo;ll learn how to send messages to a Teams channel from an Azure DevOps pipeline.&lt;/p></description></item><item><title>Configure a TLS Secret in Kubernetes</title><link>https://www.pakstech.com/blog/kubernetes-tls-secret/</link><pubDate>Mon, 07 Feb 2022 22:26:54 +0200</pubDate><guid>https://www.pakstech.com/blog/kubernetes-tls-secret/</guid><description>&lt;p>Quite often, when you&amp;rsquo;re working with a Kubernetes cluster, you also need to handle TLS secrets. Projects like &lt;a href="https://cert-manager.io/docs/">cert-manager&lt;/a> can take much of that load off your shoulders but sometimes you still need to configure a certificate manually.&lt;/p></description></item><item><title>Upgrade Ubuntu on WSL2</title><link>https://www.pakstech.com/blog/upgrade-ubuntu-on-wsl2/</link><pubDate>Sun, 06 Feb 2022 18:00:07 +0200</pubDate><guid>https://www.pakstech.com/blog/upgrade-ubuntu-on-wsl2/</guid><description>&lt;p>If you search for Ubuntu distributions on the Microsoft Store you&amp;rsquo;ll notice that only the long term support LTS releases are included. In this post I&amp;rsquo;ll show you how you can upgrade to the latest release, if you need to.&lt;/p></description></item><item><title>Copy SSH Keys from WSL2 to Windows</title><link>https://www.pakstech.com/blog/copy-wsl-ssh-keys/</link><pubDate>Mon, 10 Jan 2022 17:17:03 +0300</pubDate><guid>https://www.pakstech.com/blog/copy-wsl-ssh-keys/</guid><description>&lt;p>You may have generated an SSH key pair that you use with &lt;code>git&lt;/code> on Windows Subsystem for Linux. But if you also want to use Git for Windows then you might want to reuse the same key on the Windows side so that you don&amp;rsquo;t need to maintain more keys on the remote, such as GitHub.&lt;/p></description></item><item><title>Fix NPM No Such File Error on WSL2</title><link>https://www.pakstech.com/blog/npm-no-such-file/</link><pubDate>Sun, 21 Nov 2021 22:26:25 +0200</pubDate><guid>https://www.pakstech.com/blog/npm-no-such-file/</guid><description>&lt;p>I was working on a Node.js project and decided to run it on top of Windows Subsystem for Linux but it just wouldn&amp;rsquo;t work. The &lt;code>npm&lt;/code> command would fail with a &amp;ldquo;no such file or directory error&amp;rdquo; like this:&lt;/p></description></item><item><title>Get docker-compose Working on Raspberry Pi</title><link>https://www.pakstech.com/blog/rpi-docker-compose/</link><pubDate>Sun, 31 Oct 2021 19:13:41 +0200</pubDate><guid>https://www.pakstech.com/blog/rpi-docker-compose/</guid><description>&lt;p>I was setting up Docker on my Raspberry Pi since I wanted to run Home Assistant on top of it. I wanted to use docker-compose to manage the container, but the installation was not successful.&lt;/p></description></item><item><title>Cancel a Git Commit</title><link>https://www.pakstech.com/blog/git-cancel/</link><pubDate>Tue, 26 Oct 2021 17:10:34 +0300</pubDate><guid>https://www.pakstech.com/blog/git-cancel/</guid><description>&lt;p>Did you commit and push something that you didn&amp;rsquo;t intend to? Don&amp;rsquo;t worry, it&amp;rsquo;s quite simple to fix!&lt;/p></description></item><item><title>Edit Kubernetes Secrets</title><link>https://www.pakstech.com/blog/edit-kubernetes-secrets/</link><pubDate>Fri, 15 Oct 2021 17:20:00 +0300</pubDate><guid>https://www.pakstech.com/blog/edit-kubernetes-secrets/</guid><description>&lt;p>Has your API key changed? Maybe you need to update a TLS certificate? There are many reasons why you&amp;rsquo;d want to edit secrets in Kubernetes. Luckily, this is &lt;em>relatively&lt;/em> simple.&lt;/p></description></item><item><title>What ChatOps Solutions Should You Use Today?</title><link>https://www.pakstech.com/blog/chatops/</link><pubDate>Mon, 27 Sep 2021 20:56:10 +0300</pubDate><guid>https://www.pakstech.com/blog/chatops/</guid><description>&lt;p>Over the years we have seen many tools that enable communication with computer systems using a chat interface. Many of them are now obsolete as their development has ceased, though they still seem to be recommended everywhere. What are the tools that you should use today?&lt;/p></description></item><item><title>Use Inquirer.js to Create a Conversational CLI User Interface</title><link>https://www.pakstech.com/blog/inquirer-js/</link><pubDate>Fri, 24 Sep 2021 16:00:11 +0300</pubDate><guid>https://www.pakstech.com/blog/inquirer-js/</guid><description>&lt;p>Your CLI apps don&amp;rsquo;t have to be boring. Especially when there are plenty of possible configuration options, and the program is not going to be executed from a script, it might be better to provide a conversational user experience.&lt;/p></description></item><item><title>Should You Switch to Colemak?</title><link>https://www.pakstech.com/blog/switch-to-colemak/</link><pubDate>Wed, 25 Aug 2021 19:11:19 +0300</pubDate><guid>https://www.pakstech.com/blog/switch-to-colemak/</guid><description>&lt;p>You may have been pondering with the idea of switching away from QWERTY to a &lt;em>superior&lt;/em> keyboard layout such as Colemak or Dvorak. But is it worth the trouble, especially if you&amp;rsquo;re a programmer?&lt;/p></description></item><item><title>Create GitHub Actions Workflows with a CLI App</title><link>https://www.pakstech.com/blog/actions-workflow/</link><pubDate>Mon, 23 Aug 2021 22:38:36 +0300</pubDate><guid>https://www.pakstech.com/blog/actions-workflow/</guid><description>&lt;p>GitHub Actions workflows are defined as YAML files that can contain various configurations. Sometimes it can be difficult to remember all the available options. That&amp;rsquo;s why I created a handy little tool called &lt;a href="https://github.com/jannekem/actions-workflow">Actions Workflow&lt;/a>!&lt;/p></description></item><item><title>Write a Bash Command That Fails Randomly</title><link>https://www.pakstech.com/blog/bash-random-fail/</link><pubDate>Thu, 12 Aug 2021 22:28:39 +0300</pubDate><guid>https://www.pakstech.com/blog/bash-random-fail/</guid><description>&lt;p>Usually you want the commands that you run to succeed. Though sometimes it might be useful to make them fail randomly for test purposes.&lt;/p></description></item><item><title>Run Selected Python Unit Tests from the Command Line</title><link>https://www.pakstech.com/blog/python-select-unit-test/</link><pubDate>Sat, 07 Aug 2021 20:08:25 +0300</pubDate><guid>https://www.pakstech.com/blog/python-select-unit-test/</guid><description>&lt;p>It doesn&amp;rsquo;t always make sense to run the full suite of tests when you&amp;rsquo;re developing a part of a program. So how can you run only a portion of your Python unit tests on the command line?&lt;/p></description></item><item><title>Make an NPM Package Executable with npx</title><link>https://www.pakstech.com/blog/npx-script/</link><pubDate>Mon, 02 Aug 2021 20:03:32 +0300</pubDate><guid>https://www.pakstech.com/blog/npx-script/</guid><description>&lt;p>You may have used the &lt;a href="https://github.com/facebook/create-react-app">create-react-app&lt;/a> package and thought that you&amp;rsquo;d like to make your own NPM package work in the same way with &lt;a href="https://docs.npmjs.com/cli/v7/commands/npx">npx&lt;/a>. It&amp;rsquo;s actually quite easy.&lt;/p></description></item><item><title>Add Videos to a GitHub Repo Readme</title><link>https://www.pakstech.com/blog/github-video/</link><pubDate>Thu, 29 Jul 2021 18:00:00 +0300</pubDate><guid>https://www.pakstech.com/blog/github-video/</guid><description>&lt;p>When you create something cool and interactive what better way is there to demonstrate it than through video?&lt;/p></description></item><item><title>Configure Nextcloud Behind a Cloudflare Tunnel</title><link>https://www.pakstech.com/blog/nextcloud-cloudflare-tunnel/</link><pubDate>Sat, 24 Jul 2021 10:19:56 +0300</pubDate><guid>https://www.pakstech.com/blog/nextcloud-cloudflare-tunnel/</guid><description>&lt;p>When you set up a private Nextcloud installation on your home server and want to have it accessible from the outside network you traditionally need to poke a hole in your NAT and set up dynamic DNS to be able to find the correct IP every time. With Cloudflare Tunnel you can connect to your server without ever exposing your IP address to the world.&lt;/p></description></item><item><title>Run GitHub Actions on Issue Comments</title><link>https://www.pakstech.com/blog/gh-actions-issue-comments/</link><pubDate>Fri, 23 Jul 2021 18:00:00 +0300</pubDate><guid>https://www.pakstech.com/blog/gh-actions-issue-comments/</guid><description>&lt;p>GItHub Actions lets you do all sorts of fun things with your CI pipelines. Issue comments are one of the many events that can trigger an action run, and they can be used to create some useful interactions.&lt;/p></description></item></channel></rss>