<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cuth's Blog</title><link>https://blog.cuth.dev/</link><description>Recent content on Cuth's Blog</description><generator>Hugo</generator><language>en-ca</language><lastBuildDate>Tue, 28 Oct 2025 18:28:59 -0400</lastBuildDate><atom:link href="https://blog.cuth.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Azure Management Identity</title><link>https://blog.cuth.dev/posts/azure-management-identity/</link><pubDate>Tue, 28 Oct 2025 18:28:59 -0400</pubDate><guid>https://blog.cuth.dev/posts/azure-management-identity/</guid><description>&lt;h2 id="why-am-i-writing-this"&gt;Why am I writing this?&lt;/h2&gt;
&lt;p&gt;Lately, I am doing more and more Azure stuff and find that terms are thrown around that I have trouble understanding. I, of course, went on Youtube and looked up a video on Azure. One by John Saville on Managed Identities popped up.&lt;/p&gt;
&lt;p&gt;As a student in computer science, I decided I should listen, learn, take notes, and eventually apply.&lt;/p&gt;
&lt;p&gt;To make sure I really understand it, I will write it here so that I am an idiot.&lt;/p&gt;</description></item><item><title>Incident Management</title><link>https://blog.cuth.dev/posts/incident-management/</link><pubDate>Sat, 10 Feb 2024 18:06:46 -0400</pubDate><guid>https://blog.cuth.dev/posts/incident-management/</guid><description>&lt;p&gt;&lt;img src="https://blog.cuth.dev/assets/sinking-ship.jpg" alt="Sinking ship"&gt;&lt;/p&gt;
&lt;p&gt;You finish your day, get home, put your bag down and hug yor cats (or kids ;) ). You hear a noise from your phone: A notification&amp;hellip; From work. It&amp;rsquo;s almost 7PM, you had a long day and you simply want to wind down. You debate ignoring the message, but your work ethic kicks in and makes you look. It&amp;rsquo;s in the incident channel, never a good sign. Production is down. The web application is not responding and is showing a white screen. The feeling of dread starts in your stomach as you hurridely get your laptop out and venture forth your aid.&lt;/p&gt;</description></item><item><title>Cidr</title><link>https://blog.cuth.dev/posts/cidr/</link><pubDate>Mon, 14 Nov 2022 18:04:16 -0400</pubDate><guid>https://blog.cuth.dev/posts/cidr/</guid><description>&lt;h2 id="what-is-an-ip-address"&gt;What is an IP Address?&lt;/h2&gt;
&lt;p&gt;Let&amp;rsquo;s start with the basics.&lt;/p&gt;
&lt;h3 id="ip-address-classes"&gt;IP Address Classes&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Class A
 Public range of 10.0.0.0 to 127.0.0.0
 Subnet mask: 255.0.0.0
 Number of Networks: 126
 Number of hosts per network 16,777,214
Class B
 Public range of 128.0.0.0 to 191.255.0.0
 Subnet mask: 255.255.0.0
 Number of Networks: 16,382
 Number of hosts per network 65,534
Class C
 Public range of 192.0.0.0 to 223.255.255.0
 Subnet mask: 255.255.255.0
 Number of Networks: 2,097,150
 Number of hosts per network 254
Class D
 Public range of 224.0.0.0 to 239.255.255.255
 Number of Networks: n/a
 Number of hosts per network multicasting
Class E
 Range: 240.0.0.0 to 255.255.255.255
 First octet value range from 240 to 255
 Number of Networks: N/A
 Number of Hosts per Network: Research/Reserved/Experimental
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So, what does all this mean?&lt;/p&gt;</description></item><item><title>Setup Gitlab Raspberry Pi</title><link>https://blog.cuth.dev/posts/setup-gitlab-raspberry-pi/</link><pubDate>Sun, 08 May 2022 18:01:40 -0400</pubDate><guid>https://blog.cuth.dev/posts/setup-gitlab-raspberry-pi/</guid><description>&lt;p&gt;Install a Linux based distro. I tend to install raspbian 64-bit lite since i don&amp;rsquo;t use the UI. To do this, i use the Raspberry PI Imager.&lt;/p&gt;
&lt;p&gt;Next, I update the packages: sudo apt update &amp;amp;&amp;amp; suso apt upgrade&lt;/p&gt;
&lt;p&gt;Next, I installed Docker: &lt;a href="https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script"&gt;https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Finally, I followed this tutorial on how to setup a Gitlab Runner: &lt;a href="https://medium.com/devops-with-valentine/use-your-raspberry-pi-to-run-gitlab-ci-jobs-8cc29fa49dbe"&gt;https://medium.com/devops-with-valentine/use-your-raspberry-pi-to-run-gitlab-ci-jobs-8cc29fa49dbe&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Building My Homelab Part 1</title><link>https://blog.cuth.dev/posts/building-my-homelab-part-1/</link><pubDate>Mon, 20 Dec 2021 19:48:56 -0400</pubDate><guid>https://blog.cuth.dev/posts/building-my-homelab-part-1/</guid><description>&lt;p&gt;So, I decided to build a homelab. I&amp;rsquo;ve been dabling with setting a homelab on a cloud platform for a while. However, I always found it a tad annoying that I had to pay to simply host content when I had a PC lying around at home.&lt;/p&gt;
&lt;p&gt;So, without any more delay, here is my Homelab.&lt;/p&gt;
&lt;h2 id="part-i"&gt;Part I&lt;/h2&gt;
&lt;p&gt;In this first part, I will explain why I chose thte OS and underlying technology. Just know, these are my choices. They aren&amp;rsquo;t necessarily correct. If you find something wrong or a better way of how to do this, please leave me a comment, or reach out to me. I listen to all feedback.&lt;/p&gt;</description></item><item><title>Path Params vs Query Params</title><link>https://blog.cuth.dev/posts/path-params-vs-query-params/</link><pubDate>Fri, 21 May 2021 19:42:00 -0400</pubDate><guid>https://blog.cuth.dev/posts/path-params-vs-query-params/</guid><description>&lt;h2 id="rest-params"&gt;Rest Params&lt;/h2&gt;
&lt;p&gt;I always get Query Params mixed up with Path Params. I think it&amp;rsquo;s time I write about it so as to never forget again!&lt;/p&gt;
&lt;h3 id="rest-api-call"&gt;REST API Call&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;GET https://api.somedomain.com/path/to/resource?id=998&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Here is an example of a REST API call. Let&amp;rsquo;s break it down.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Property&lt;/th&gt;
 &lt;th&gt;Descritpion.&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;GET&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;The HTTP method&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;https&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;The protocol used to make the call. In this case it is Hyper Text Transfer Protocol. Here is a more complete list.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;api&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;subdomain of the main domain&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;somedomain&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Domain of the server hosting the REST API&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;com&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;The type of web site. This is known as a Top Level Domain (TLD)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;/path/to/resource&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;This is the relative path or the URI to the Resource we want to query.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;id=998&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;This is a Query Param&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;We could modify this to use a Path Variable:&lt;/p&gt;</description></item><item><title>Time Management</title><link>https://blog.cuth.dev/posts/time-management/</link><pubDate>Wed, 19 May 2021 19:36:46 -0400</pubDate><guid>https://blog.cuth.dev/posts/time-management/</guid><description>&lt;h2 id="tips"&gt;Tips&lt;/h2&gt;
&lt;h3 id="have-a-plan"&gt;Have a Plan&lt;/h3&gt;
&lt;p&gt;It is a good idea to have a plan. At the beginning of the current day or the end of the day, plan for the upcoming day. I know I may be tired, but it might help.&lt;/p&gt;
&lt;p&gt;Also, break up larger, insurmountable tasks into smaller ones. Take the time to plan out work and how to go about it. I tend to start coding waaaay too fast. This is a bad habit I picked up from Univserity.&lt;/p&gt;</description></item><item><title>Dict and Callable Typing in Python</title><link>https://blog.cuth.dev/posts/dict-and-callable-typing-in-python/</link><pubDate>Mon, 17 May 2021 19:32:00 -0400</pubDate><guid>https://blog.cuth.dev/posts/dict-and-callable-typing-in-python/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;This will be a short article on Typing on the specific Types Dict and Callable.&lt;/p&gt;
&lt;p&gt;Reference from Python Docs&lt;/p&gt;
&lt;h2 id="callable"&gt;Callable&lt;/h2&gt;
&lt;p&gt;With a Type Callable, it means you are passing in a function, a callback if you will ;) .&lt;/p&gt;
&lt;h3 id="syntax"&gt;Syntax&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;func&lt;/span&gt;(callback: Callback[[param1, param2], return_param] &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;None&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; return_param &lt;span style="color:#f92672"&gt;=&lt;/span&gt; callback(param1, param2)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Here, a callback is expecting 2 params and is returning one. The names are arbitrary. Also, you could use the ellipses operator to indicate an infinite list of params.&lt;/p&gt;</description></item><item><title>My First Post</title><link>https://blog.cuth.dev/posts/my-first-post/</link><pubDate>Sun, 12 Jul 2020 14:00:00 -0400</pubDate><guid>https://blog.cuth.dev/posts/my-first-post/</guid><description>&lt;p&gt;After a lot of soul searching, I decided it is time to up my game as a Software Developer.&lt;/p&gt;
&lt;p&gt;For a few months now, I have been noticing I am having trouble coming up with proper software solutoins to my tasks. In my PRs, I am always getting plenty of comments that indicate that I am not implementing the best practice principles i was taught.&lt;/p&gt;
&lt;p&gt;So, I decided I need to improve. I searched for things to do to imprve as a Software Developer. To help me along my path, I devised a lists of things I need to work on:&lt;/p&gt;</description></item></channel></rss>