Azure Management Identity
Why am I writing this?
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.
As a student in computer science, I decided I should listen, learn, take notes, and eventually apply.
To make sure I really understand it, I will write it here so that I am an idiot.
Incident Management

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… From work. It’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’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.
Cidr
What is an IP Address?
Let’s start with the basics.
IP Address Classes
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
So, what does all this mean?
Setup Gitlab Raspberry Pi
Install a Linux based distro. I tend to install raspbian 64-bit lite since i don’t use the UI. To do this, i use the Raspberry PI Imager.
Next, I update the packages: sudo apt update && suso apt upgrade
Next, I installed Docker: https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script
Finally, I followed this tutorial on how to setup a Gitlab Runner: https://medium.com/devops-with-valentine/use-your-raspberry-pi-to-run-gitlab-ci-jobs-8cc29fa49dbe
Building My Homelab Part 1
So, I decided to build a homelab. I’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.
So, without any more delay, here is my Homelab.
Part I
In this first part, I will explain why I chose thte OS and underlying technology. Just know, these are my choices. They aren’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.
Path Params vs Query Params
Rest Params
I always get Query Params mixed up with Path Params. I think it’s time I write about it so as to never forget again!
REST API Call
GET https://api.somedomain.com/path/to/resource?id=998
Here is an example of a REST API call. Let’s break it down.
| Property | Descritpion. |
|---|---|
| GET | The HTTP method |
| https | The protocol used to make the call. In this case it is Hyper Text Transfer Protocol. Here is a more complete list. |
| api | subdomain of the main domain |
| somedomain | Domain of the server hosting the REST API |
| com | The type of web site. This is known as a Top Level Domain (TLD) |
| /path/to/resource | This is the relative path or the URI to the Resource we want to query. |
| id=998 | This is a Query Param |
We could modify this to use a Path Variable:
Time Management
Tips
Have a Plan
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.
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.
Dict and Callable Typing in Python
Summary
This will be a short article on Typing on the specific Types Dict and Callable.
Reference from Python Docs
Callable
With a Type Callable, it means you are passing in a function, a callback if you will ;) .
Syntax
def func(callback: Callback[[param1, param2], return_param] -> None:
...
return_param = callback(param1, param2)
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.
My First Post
After a lot of soul searching, I decided it is time to up my game as a Software Developer.
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.
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: