The Collapse of Freedom of Speech in Real-Time Say what you will about Charlie Kirk (at your own risk) , but prior to his heinous murder the manenjoyed his 1st amendment rights to freedom of speech and believed in the free exchange of ideas.He encouraged and promoted public debates with prominent voices on the left. Now, the politicalright are callously using his gruesome assassination to silence…
Got the time? Every few years I end up having to mess with the time. Not like, the linear flow or the speed at which we perceiveit. As cool as that would be, I'm usually just messing with mundane Windows time settings. When you're working withphysical security systems, maintaining accurate time across all servers and devices is kind of important. And it'scommon for surveillance and access control…
Restreaming RTSP with FFmpeg and MediaMTX { width='400' } If you've ever messed with IP cameras and RTSP video feeds, you might have run into a situation where VLC can accessthe stream without a problem, but the system meant to record that stream can't seem to do it. There's nothing morepermanent than a temporary fix, so in this post I'll show you (and my future self) how to work around the issue.
Why I never learned Bash I’ve been using a computer since ~1996 (age 12/13). I’ve built many PCs, and installed various Windows and Linux operating systems many hundreds of times over the past 28 years. I played L.O.R.D. on my dads BBS, played DOS games like Wolfenstein 3D, Descent, and Duke Nukem. So far in my IT career I’ve worked as a system administrator, software vendor support, and as…
Nerdbank.GitVersioning and the Revision number I love using the NerdBank.GitVersioning CLI tool nbgv . It completely removes the need to think about an aspect of aproject that doesn't add any value to your customers. But today I realized I understood the first three parts of theversion produced by nbgv , but the fourth 'revision' component was not obvious. Turns out it is a uint16 value of…
Serving a web api with Pode I added a subtle 'Now playing' text to the footer of this site which represents the first result in the response fromthe user.getRecentTracks method on the Last.FM API. The data isupdated every few seconds with a little bit of JavaScript by polling a small Pode web service running in my home lab.
But I AM the administrator A while back I was helping a co-worker with a project where the customer neededto automate a lot of minor Windows configuration steps on some Windows IoTserver appliances. One of the tasks was to make it possible to disable WindowsFirewall, because even an administrator was greeted with the message 'For yoursecurity, some settings are managed by your system…
Image Comparison I recently came across a couple of blog posts on image comparisonalgorithms shared by Dr. Neal Krawetz. One of them, titled ' Kind Of Like That ',describes the 'dHash' algorithm which generates a perceptual hash based ongradients in the image. With more than 200k family photos to wrangle, I wrote upa PowerShell implementation to find similar images and it works surprisingly well!
New PSPushover PowerShell Module Back in 2021 I wrote a module called Poshover for sending push notifications with Pushover.net . Thisweek I decided to use that module as a reference during my PowerShell + DevOps Summitworkshop in a few weeks. I never liked the name, so I renamed it to PSPushover and set it up in a new repository.
Parse Code from Markdown Files Introduction Are you testing your documentation? If you write PowerShell scripts or modules, you are hopefully using Pester totest your code. And if you use PlatyPS to generate markdown documentation like I do, then you have a bunch of examplePowerShell code sitting in .md files. But what happens if you rename a command, a parameter, or make a breaking change?
Generate markdown tables from PowerShell I had a need to generate a markdown table dynamically from PowerShell, so I wrote a flexible function which uses theproperties on the incoming objects to define the column names, supports the definition of maximum column widths, andoutputs either pretty-printed markdown with padded values and aligned columns, or 'compressed' markdown without theunnecessary…
Debugging ConvertTo-Json My co-worker, Jared, who regularly uses MilestonePSTools and builds tools with it brought me an interesting problem yesterday - an apparent compatibility issue between our SDK and the #!powershell ConvertTo-Json cmdlet from the built-in Microsoft.PowerShell.Utility module. If you've ever struggled with the error 'ConvertTo-Json : An item with the same key has already been…
Argument Transformation Attributes Introduction Argument transformation attributes make it possible to offer your userssome flexibility in how they supply values for parameters. I've started to usethese in the MilestonePSTools module tomake it possible to provide a name instead of a strongly typed object like a #!powershell [RecordingServer] or a #!powershell [Role] , while still making it clear…
Your users deserve argument completers Introduction One of the things I love about PowerShell is the focus on usability anddiscoverability. The PowerShell team, and the community, have invested so much into reducing friction and accelerating your workflow. Argument completers areone of the tools available to you, and you should consider adding them to yourprojects if you aren't doing so already.
Securely Reading Passwords from the Console If you've ever written a console application which requires the user to enter sensitive information like a password or a token, you might have wrestled with concerns of exposing the password in plain text within the console window.