Of Computers and Mice

Minor Versions Are Useless

Background I generally prefer Semantic Versioning (SemVer) to Calendar Versioning (CalVer) for software. I love that SemVer makes it easy to anticipate likely working/non-working updates to software! But there is a problem: SemVer doesn’t really give me a good picture of the “freshness” of updates. CalVer solves some of my frustrations with SemVer, but leaves me with other annoyances. I have something better in mind, but I first should enumerate what I don’t like about both systems.

Interactive Pipelines

Overview The PowerShell pipeline is awesome. It makes it a breeze to chain together various commands that you want to perform on an object. Sometimes when you create a quick chain of commands on the PowerShell terminal, you want to have some better visibility on what is actually happening behind the scenes: How many iterations have already happened? How long until the command is all done? How does an object gets transformed between cmdlets?

PowerShell Journeyman - Generic Collections

Introduction This is the first post in my PowerShell Journeyman series. In traditional trades, the Journeyman (often called Jman) is someone who has experience and can get stuff done effectively. They will forsee problems and adequately protect assets (especially coworkers) to keep things running smoothly. My expectation is that before you can be a “PowerShell Journeyman”, you should have experience with many aspects that can help your projects get done quickly and effectively.

Pick a SyntaxHightlighter

I needed a better syntax highlighter than Chroma on Hugo because its Powershell support is laughably bad. There were several that add a bunch of steps every once in a while, but I didn’t super love doing the steps. Then I found that my theme (Blackburn) has native support for highlight.js (which has a much better Powershell parser). This made it as easy as adding a param to my config.toml file:

Appreciating Users

My company started a “thankful thursday” culture intiative recently. We get alloted a few dollars each month to award to coworkers that have stood out in a good way recently. We try to remember to take some time on Thursdays to go hit the company giving portal and award those dollars with a nice message to whoever we’re sending the money to. Honestly, its pretty cool. Gratitude is one of the three key culture elements that I try to keep in mind for my own humanity.

PowerShell and Azure Functions (an Overview)

Background on Azure Functions Azure Functions are a serverless offering on the Microsoft Azure platform. Serverless meaning that you don’t need to manage/worry about what server the functions actually run on. If I understand it right, when you setup a new Azure Functions instance, it creates an docker container for your functions inside of your tenant docker container that runs on host. Your functions in there all can sort of interact with each other (to your joy or detriment).

Konica Minolta and AD SSO and IC Card Reader

I needed a way to convert HID ISO prox card numbers (facility code and ID) to hex for use with our Konica Minolta printers. This was to save us from having to enter “hex trace” mode on the printer every time we wanted to add a new card to an employee’s AD account for card-based printer authentication. Additionally, I needed a way to decode from the Konica hex back to decimal so that I could verify card numbers.

Troubleshooting AzureSWA

Troubleshooting Azure Static Websites and Hugo I’m setting up a blog! I wanted to try out the build process from github to Azure where I don’t do any of the release side. I dutifully followed the Azure tutorial on publishing from Hugo, but kept getting the error: Error: module "Blackburn" not found; either add it as a Hugo Module or store it in "/github/workspace/themes".: module does not exist ---End of Oryx build logs--- Oryx has failed to build the solution.

Hello World

Hello world. Its a programmer’s first words. Maybe not as a baby, but certainly when the programmer inside is born. $Users = Import-Csv -Path $path #-Delimiter "|" if you export your CSVs with a delimeter of "|" $target = @() $Precheck = $Users.PsObject.Copy() foreach ($User in $Precheck) { remove-variable SAM -ErrorAction SilentlyContinue switch ($user.ou) { "it" {$user.ou = "OU=IT"} "finance" {$user.ou = "OU=Finance"} } } Additionally: if (!($(try {get-adUser -Identity $SAM} catch {}))) { $target += $user | select givenname,surname,emailaddress,campus,ou } else { "User already exists!