Matt Zaske Online Blog
DMARC: Moving to a Monitor-As-Necessary State
- June 27, 2022
- 3 minutes
- inspiration, security, tech
After a year-and-a-half of implementation (mostly monitoring), it is time to switch to a 'steady' or 'monitor-as-necessary state' for all of my things DMARC. I've written about this journey before, with the last major summary in November, 2021.
Read MoreUpgrading an Old Application to 21st Century Passwords
- June 13, 2022
- 7 minutes
- automation, inspiration, mistakes, php, security, tech
I have a confession to make: I've ignored a Really Bad Password Form on an inherited web application for about at least a decade too long.
I'm not proud, but every time I considered changing the password mechanism to something more modern (and more secure), decision paralysis would set in...in great part due to the design challenges I anticipated in quietly upgrading this for users of the app in question.
Read MoreAn MMS 2022 Recap

- May 23, 2022
- 4 minutes
- inspiration, tech
Two weeks out from the last MMSMOA and the technical overload hangover lingers on...but in a Good Way. This post isn't terribly original, but it's my own highlights/recap/pitch of MMS.
Read MoreThe MMSMOA Retweet Bot in Action

- May 09, 2022
- 8 minutes
- automation, inspiration, php, tech, website
Hot on the heels of last week's triumphant return of the "MOA" edition of MMS, I'm writing up a post-conference review of my somewhat-accidental creation: the MMSMOA Retweet Bot.
I shared the bot's story with a number of folks during the conference, often while peddling the bot's stickers, but several folks also encouraged me to share the details via blog post as well so here it is!
Read MoreIn-Place Upgrade of WSL Ubuntu 18.04 to 20.04
- April 25, 2022
- 5 minutes
- inspiration, mistakes, php, security, tech
About two months back (early March to be exact), I had the opportunity to finally deprecate some old versions of applications and packages due to planned retirements and upgrades. Most specifically a full-on move to PHP 7.4 was in sight, though there were other bits.
Read MoreImproving DMARC Compliance: Authenticated SMTP Relay
- April 11, 2022
- 4 minutes
- automation, inspiration, php, security, tech, website
I've done a lot of server migrations for very unrelated reasons over the last six months or so. Many of these host applications that send emails, and I've implemented the basics to get them sending DMARC-compliant messages. This has generally been limited to DNS SPF records for each host configuration. Generally speaking, having SPF or DKIM compliance is 'enough' to get your messages not flagged as spam, though it can depend on the DMARC policy configuration.
Read MoreLAMP to WAMP: Adventures in Server Migration
- March 28, 2022
- 11 minutes
- inspiration, php, tech, website
Server migrations are an inevitable task, but I found myself in a different than normal circumstance recently. A planned server stack retirement, combined with the server "owner's" technical capacity and expertise required a change in platform. Specifically, this shift meant moving from Linux to Windows.
Read MoreCertbot on Windows: Automation Is Possible
- March 14, 2022
- 6 minutes
- automation, inspiration, security, tech, website
A recent project gave me an opportunity to try out Certbot on Windows. As I've written about before, I've had an extensive journey with Certbot, at times in fairly 'non-standard' configurations, and Certbot on Windows is no different.
Read MoreRevisiting Key Authentication Setups
- February 28, 2022
- 6 minutes
- automation, inspiration, security, tech
Nearly 18 months ago I wrote about setting up and using key authentication to connect between hosts. I use it all the time and it's a major timesaver on all sorts of levels.
Read MoreMoving an Old Website to Github Pages: Creating a Finished Product
- February 14, 2022
- 9 minutes
- inspiration, tech, website
In the last post I wrote about the process of creating the layout and the challenges through the content conversion and basic layout stages.
Read MoreMoving an Old Website to Github Pages: Getting Started
- January 31, 2022
- 11 minutes
- inspiration, tech, website
Nearly 25 years ago I spun up a website featuring transcriptions of Monty Python material collected from college students in the 1980s. I don't remember how I came across the archive of these text files, but I still have the originals in part of my personal digital archive. Around the year 2000 I moved the website (and subsequently added more content) into a Wiki system (TWiki, to be exact).
Read MoreDrupal Site Improvements and other Housekeeping
- January 17, 2022
- 8 minutes
- drupal, inspiration, tech, website
On the heels of (and riding the wave following) my recent migration of Drupal to a new server host, I decided it was well past time to finally address some things with my Drupal instance that were been bugging me for a long time.
Read MoreMoving a Legacy Drupal Stack to a New Server Host
One of my "end of 2021 break" projects was a planned "lift and shift" of my primary Drupal instance to a fresh, sparkly new web host stack. The stack on which it resided was reaching end of life and for a few other reasons it was time to make the change. In preparation, over the last year or so I've been de-coupling and untangling some of the baggage that had accumulated on the old server and its structure over time.
Read MoreReconciling Disparate Datasets
- December 06, 2021
- 8 minutes
- inspiration, php, tech
A few weeks ago I was asked to help update a centralized inventory dataset, which to us is definitely a "tertiary" system. Several hundred device records were associated with our part of the organization, and every time I opened the list I quickly "noped" out of doing anything with it. But the time came when I needed to actually do something with it lest I wind up on someone's naughty list.
Read MoreDMARC: Time to Evaluate Reports
- November 22, 2021
- 6 minutes
- inspiration, security, tech
Almost exactly a year ago, I wrote about my first foray into implementing DMARC controls. Specific to domains through which email was not intended to be sent, it was the beginning of my DMARC adventure and expansion into some 35-ish domains.
This became its own series of posts with time:
Read MoreDate Math is Gross
- November 08, 2021
- 3 minutes
- automation, mistakes, php, tech
This year, I'm working with/mentoring a paid intern on a device monitoring project for a portion of our fleet. These sort of projects are always fun and meaningful in that we identify a problem or opportunity to improve, and then solve said problem in a way we've not done before.
Read MoreImplementing Certificate Authority Authorization
- October 25, 2021
- 4 minutes
- automation, inspiration, security, tech
During the foray into fixing up the Let's Encrypt root certificate expiration bits for my affected bot host, while using the helpful SSL Server Test tool, I discovered the "new" (not really new) Certificate Authority Aut
Read MoreKeeping the Wireless On - Script the Reconnect

- October 11, 2021
- 4 minutes
- automation, inspiration, powershell, tech
In our classroom fleet, almost all devices are wireless-only for their network access. This as a design is great for mobility and flexibility and the user experience but presents its own set of very unique challenges on the technical side. At various times and for a wide range of reasons, we encounter the situation where devices "lose" their wireless/Wi-Fi connection.
Read MoreBreaking the Chain: An Edge Case of Let's Encrypt Root Certificate Expiration
- September 27, 2021
- 6 minutes
- automation, inspiration, mistakes, security, tech
It's been written about and announced for some time—the forthcoming expiration of the DST Root CA X3 certificate. The good news for most folks is that it's not a big deal. And that, I thought, also included me. For the most part, this has panned out to be true.
Read MoreA DMARC Follow-Up: Nine Months In
- September 13, 2021
- 3 minutes
- inspiration, security, tech
It's been a full nine months since I first wrote about implementing DMARC controls, and over six months since I last wrote about fiddling with DMARC settings, so it's time to provide another quick update.
Read MoreUndo the Undo -- A Short Tale of a Git Mistake

I had one of those "Oh shit, Git!" moments this past weekend...
Mine was that I made a necessary change, and since it was pretty minor (really a typo fix of sorts) I just went ahead and did it in the main
branch. NBD. Commit
, push
, and pull
on the remote host, and all is good.
Whoops! Cleaning up Mistakes via API

- August 09, 2021
- 5 minutes
- automation, inspiration, mistakes, php, tech
Posting again after kind of a lengthy break. It's summertime, and for lots of disparate reasons I've queued up topics but haven't had the ambition or taken the time to write them all out. So today we get a tale of automation mistakes and the subsequent cleanup.
Read MoreReinstalling reCAPTCHA
In the last post I wrote about finally cutting off the comments feature due to an abundance of spam.
For about two days, this was successful...
Read MoreCleaning Up Old Mistakes Part Deux: Leveraging Includes
- May 10, 2021
- 4 minutes
- inspiration, mistakes, security, tech
This post is the second of a two-part miniseries identifying and correcting old mistakes. Part one discusses cleaning up Git repos based on permissions faux pas.
Today's atonement for old mistakes: Using centralized/standard "includes" for path variables and eliminating passwords from committed code.
Read MoreCleaning Up Old Mistakes: Git Repos With Nested Accounts
- April 26, 2021
- 6 minutes
- inspiration, mistakes, tech
This post is the first of a two-part miniseries identifying and correcting old mistakes. Part Deux is also available.
Today's atonement for old mistakes: Git repos used in production in which nested/disparate accounts run code.
Read MoreA Twitter Bot for Dad Jokes
- April 12, 2021
- 5 minutes
- automation, inspiration, php, tech
About a month ago, I discovered this gem of a tweet:
Read MoreTIL fatherhood dot gov has a dad joke API pic.twitter.com/fZi4rRSQS8
My Personal Git Cheat Sheet
- March 29, 2021
- 3 minutes
- inspiration, tech
I've used a number of various Git cheatsheets over the years, usually duing a moment of "how do I do __ again?" and sometimes during a moment of panic like "Shit! Undo that commit!"
Recently, I (finally) "removed my training wheels" and uninstalled the UI client I had for Git, for two reasons:
Read MoreGit-ting the hang of Hooks
- March 15, 2021
- 8 minutes
- automation, inspiration, tech
Several months ago I made the decision to finally use Git to manage a more complex "legacy" web application project that I inherited over a decade ago and continue to maintain. Years ago when migrating the web application to a new hosting stack, I ported the development/test and production sites into their own Git repositories.
Read MoreSigning Git Commits: Chasing the "Verified" Stamp
- March 01, 2021
- 6 minutes
- inspiration, tech
I've been working on projects lately that actually involve writing more code than I have in a while...and so I'm using Git/GitHub with greater frequency than I have in some time.
Read MoreImplementing DMARC: Adjusting SPF Records
- February 15, 2021
- 5 minutes
- inspiration, security, tech
It's been a couple of months since I last wrote about implementing DMARC and what comes next (review and adjustment). So I figured this would be a good time to document a few changes I've made based on the reporting data received so far.
Read More2020: An Energy Year in Review
- February 08, 2021
- 6 minutes
- finance, inspiration, lifestyle, personal
Now that I've had a chance to really look at the data from our 2020 electric use, in a modified format from what I've written about before, I thought I'd wrap up with an overview of our overall electric use during a most unusual year.
Read MoreMy First Twitter Bot: A Journey into Twitter's API

- February 01, 2021
- 7 minutes
- automation, inspiration, php, tech
Sometime around Thanksgiving/November 2020, I formalized the idea that I would actually build a Twitter bot for the sake of novelty and as an experiment/learning exercise. One night at suppertime, we discussed what might be cool as a bot and those ideas are still on the list as possibilities for the future.
Read MoreExporting Legacy/Archival Emails with Google Apps
- January 18, 2021
- 4 minutes
- automation, inspiration, tech
At work, we've had a number of folks retire over the last 18 months, and a number of those folks are holders of some significant institutional knowledge and memories. Recently I had the opportunity to work with one of these individuals as they prepared to both hand off information to others, which led me to recall several conversations I've had with my Libraries/archives friends about preserving the "right" subsets of digital messages such as email.
Read MoreMy Incremental Certbot Panacea
- January 04, 2021
- 5 minutes
- automation, inspiration, security, tech, website
I've written about Certbot more than any other topic in the last 24 months or so, in part because it's been an interesting adventure for me both in helping to demystify SSL certificates, but also because it's been an evolving and incremental process to Make It Better.
Read MoreInterruptions and Intentionality

- December 28, 2020
- 5 minutes
- inspiration, tech
Interruptions: they're everywhere.
Read MoreImplementing DMARC for Active Domains: Policy & Review
- December 21, 2020
- 6 minutes
- inspiration, security, tech
This is the second post in a two-part series to implement DMARC controls for actively-used domains, where this post focuses on creating and reviewing/adjusting your DMARC policy and controls.
Read MoreImplementing DMARC for Active Domains: Configuring Prerequisites
- December 14, 2020
- 3 minutes
- inspiration, security, tech
As a follow-up from my previous post about implementing DMARC controls for unused/alias domains (those not used for actively sending messages), I wanted to write a bit about how to implement basic DMARC controls for those domains actively used to send emails.
Read MoreArmchair Pair Programming
- December 07, 2020
- 2 minutes
- inspiration, lifestyle, personal
This past Friday, somewhat out of the blue, I was pinged by a friend about helping him work through implementing what I'd done to date with Certbot...with the additional twist of his own unique configuration challenges.
Read MoreImplementing DMARC on Alias Domains
- November 30, 2020
- 6 minutes
- inspiration, security, tech
A few weeks ago I crossed a tweet with some simple instructions for securing your "unused" email domains, specifically the few bits required to implement DMARC controls to prevent Bad Folks from using your domains to send spam emails.
Read MoreThat's a [House] Wrap!

As I'd eluded in a post earlier this summer, we had some major home projects completed this year. As of the end of October, 2020, they're all functionally complete. We only await the delivery and installation of a few missing pieces of window jamb extensions and casing, and a "rainy day" for the contractor to spend a couple quick hours installing.
Read MoreAutomating Certbot: A Recap of My Journey

- November 16, 2020
- 3 minutes
- automation, inspiration, security, tech, website
Over the last two months, I've shared what amounts to a four-part "series" of posts walking through my journey of using Certbot for SSL certificate management, with the primary challenge being not having the traditional root-level access on the web server. Those posts are, in order:
Read MoreCertbot in Manual Mode with Script Hooks
- November 02, 2020
- 4 minutes
- automation, inspiration, security, tech, website
If you've been following along in the mini series, I've gone over the details of using Certbot in manual mode, then bolting some simple scripts together to improve the process of generating and managing certs, all done with a bit of magic thanks to our old friend
Read MoreImproving Manual Certbot Domain Validation
- October 19, 2020
- 6 minutes
- automation, inspiration, security, tech, website
In my second post about using Certbot in manual mode, I address some of the 'pain points' from the first post: namely the process of scripting together some of the bits to create/renew a certificate and otherwise requiring fewer individual commands be entered (or remembered).
Read MoreMoving to Certbot with Let's Encrypt
- October 05, 2020
- 6 minutes
- automation, inspiration, security, tech, website
This is the first post in a short series of posts about automating what one can in an environment that might not support full-automation with Certbot and Let's Encrypt.
Read MoreAnalog Reading
I read and consume a lot of material every day. I love it, and I love how available this material can be to everyone (God Bless the Internet).
What I have been remarkably remiss at over the last year or so, though, is regular old analog reading. The stuff of books, that is.
Read MoreQuick Tests of WQL Queries
- September 21, 2020
- 3 minutes
- automation, inspiration, powershell, tech
Recently I was working on a clean-up/improvement project in the MEMCM (SCCM) console which required some WQL query work and updates. In particular, I was fiddling with some collection queries to segment some areas for a process improvement project coming up. That's intentionally vague, because the 'why' in this case doesn't really matter. What does matter is that I needed WQL to give me proper results.
Read MoreA Good, Long Conversation
Throughout the pandemic I've tried to keep in contact with friends via different mechanisms. One of those venues is Slack, where one friend and I have gotten into this "habit" of sorts where we do some sort of video call (Slack, Zoom, etc.) that ends up lasting several hours. These come up every six weeks or so (in addition to more regular banter via Slack); not often enough to be burdensome, but often enough to be meaningful.
Read MoreQuickly Extracting Icons with Powershell
- September 08, 2020
- 2 minutes
- inspiration, powershell, tech
One of the things I both love and loathe is adding the little icon to an advertised deployment in the Software Center console of SCCM/MEMCM. As many have said it in the past, "Pretty Counts" and I wholeheartedly agree.
Read MoreAuto-Power On Dell Workstation

- August 24, 2020
- 3 minutes
- automation, inspiration, powershell, tech
As we begin another academic year, this time in a pandemic, we're providing more virtual/remote desktop access to computer lab and public-access workstations for those in need. We're starting by using the machines taken out of general service due to physical distancing requirements.
Read MoreFormulas in CSV Files

- August 10, 2020
- 4 minutes
- automation, inspiration, tech
A while back I received a call for assistance in helping to streamline an inherited process. In this particular case, an individual had created a complex (but necessary) process to essentially transform and move data between disparate systems. The employee(s) responsible for creating this process had since left, but the process remained and needed to be manually done often enough that it was painful enough for the person now responsible for the process to ask for assistance.
Read MoreAll Sealed Up!

It's been a wild couple of weeks since I last posted anything here. I'd exhausted most of pre-written content and with a bunch of these improvement and scope creep projects on the horizon it was not feasible to get more material churned out in the short term, so a break it was!
Read MoreImprovement Project Scope Creep
As I've written about before, there have been plenty of random projects to work on during the pandemic and additional time spent around home. Due to a pretty significant hailstorm last summer, we're going to be replacing every roof on the property and also re-siding the house.
That's not where the scope creep comes into play.
Read MoreSetting Up Key Authentication

- July 06, 2020
- 4 minutes
- automation, inspiration, security, tech
While I was preparing to write an upcoming post about moving directly to certbot from SSLForFree now that they've merged with ZeroSSL, I realized that I'd not actually ever written a post about one of the components I use all the time, including for my new certbot process: public key authentication.
Read MorePollinators on the Prairie

One of the things I've always enjoyed about our little home on the prairie is the fact we've always a selection of various critters or insects beneficial to the larger environment. Part of this is bolstered by the fact we live across the road from several hundred acres of waterfowl production area owned and managed by the US Fish and Wildlife service.
Read MorePushing Data Into Google Sheets Sheets (Yes, Multiples)

- June 22, 2020
- 4 minutes
- automation, inspiration, php, tech
If you recall from the last tech post about pushing data directly into Google Sheets, I promised a follow-up regarding the process of adding multiple sheets worth of data to a given parent sheet.
Read MoreInteresting Pandemic Electric Usage Pattern

- June 15, 2020
- 3 minutes
- finance, inspiration, lifestyle, personal
This is a relatively short post, but as I entered our May electric usage into my tracking spreadsheet (see the Energy Use Analysis post from a while back), I noticed something peculiar about this last few months since the pandemic really hit (and we started staying at home all the time).
Read MoreProgrammatically Push Data to Google Sheets

- June 08, 2020
- 3 minutes
- automation, inspiration, php, tech
I've written in the past about the ability to ship files to Google Drive via its REST API and PHP, which is a super-cool process in and of itself. In the last few months, I've been moving more and more of our internal data shipping processes to Google Shared Drives for ease of end user access.
Read MorePandemic Projects Aplenty

It is no surprise to me that retail outlets catering to home improvement projects have been doing well during the pandemic and various iterations of stay-at-home orders. The sudden 'found' time of folks who might normally spend time on other endeavors is suddenly focused into projects around the house. To some degree this is the same here...
Read MoreCharacter-Perfect Fixed Width Import Files

- May 25, 2020
- 4 minutes
- automation, php, tech
One of my springtime projects at work was to button up a recently-refreshed process to transmit some billing data between systems. By 'recently-refreshed,' I mean 'finally made a process whereby a human doesn't have to manually generate a file which had been the de-facto process for the better part of twelve years. Due to the cascading effects of some staff turnover in the unit in question, IT was brought into the loop to help find a better way to work this process.
Read MoreShaking The GnuCash Account Tree

- May 18, 2020
- 5 minutes
- finance, inspiration, personal
Over the years I've developed a habit where a short part (~30 minutes on average) of most weekends are dedicated to entering the week's receipts, reconciling (or balancing) accounts, updating investment fund values, and so forth. Once familiar with GnuCash, this process is pretty straightforward and easy to do.
Read MoreSimple, Yet Powerful Excel/Sheets Functions

- May 11, 2020
- 3 minutes
- inspiration, tech
As a reflection exercise for a project I wrapped up a bit ago, combined as an exercise to make Future Me's life a Better Place, I pulled together a simple Google Sheets workbook to make a quick 'calculator' and balancing mechanism to help keep track of a couple datasets. And in so doing, I again befriended a couple of super simple, and super powerful functions:
Read MoreGnuCash For The Win

- May 04, 2020
- 6 minutes
- finance, inspiration, personal
As I wrote about a couple months back, GnuCash is my accounting software of choice since ~2010. I wasn't exactly "sold" on it from the start, but it was a free and open-source solution that seemed robust enough to handle pretty much anything I could throw at it, from managing business finances and whatnot to a whole mess of personal accounts.
Read MoreCount of AD Groups Ranked by Members

- April 27, 2020
- 3 minutes
- inspiration, powershell, tech
A week ago, someone on one of our more generalized Slack channels asked if anyone knew how to make AD Users and Computers (ADUC) filter mechanism rank output based on a group membership count. Now, I don't necessarily understand (or honestly, care) about the particular use case, but I knew the answer was going to be 'no, that can't be done by way of the GUI.' Which was the first part of my answer.
Read MoreEnergy Use Analysis

A little over a decade ago we had a ground-source heat pump installed for our home heating and cooling. Commonly called a 'geothermal' system, the basic function is that it uses the earth's relative/stable temperature (well below the frost line) to act as a heatsink for air conditioning and heating.
Read MorePowershell Exports AD Computers to CSV

- April 13, 2020
- 2 minutes
- powershell, tech
A couple months ago I wrote about using Powershell to find and export AD records for the purposes of our Windows 7 End-of-Life project. This post is effectively a second in a series of 'exporting computer records from AD with Powershell' if you will.
Read MoreWell, It's Been A Ride These Last Weeks

- April 06, 2020
- 3 minutes
- personal
So I wound up putting a bit of a pause on posting this last month or so. Certainly not for a lack of things to say...but certainly for lack of time to nuance them. I've had to schedule and reschedule the various posts I had in progress (but not fully finished) a couple of times now. Hopefully I can get to the point of starting to regularly crank out new stuff on the normal schedule.
But first, this bit of a reset.
Read MoreTRIM-ming up for Summer

- March 09, 2020
- 3 minutes
- automation, inspiration, php, tech
Not really TRIM-ming for summer, but taking the opportunity to briefly write about Rule #1 when dealing with unknown (or incoming) data.
Sanitize. Thy. Inputs.
Without going into great detail (as it doesn't matter at the end of the day), last week I encountered a vendor that apparently doesn't know how to do this very well. Or at all. What ultimately transpired is the complete failure of a reasonably-routine change process to capture a critical failure in production.
Read MoreThe Financial Automation Account

- March 02, 2020
- 6 minutes
- finance, inspiration, personal
A couple weeks ago, I made brief mention of my financial automation account and how I've come to consider it my "free money" account. I wanted to dig into that topic just a bit more, since it's become a key component of my own regular financial well-being.
Why an Automation Account?
Simple: it's thoughtless, once set up.
Read MoreInteresting Log Entries (or, Why To Patch Thy Systems)

- February 24, 2020
- 3 minutes
- tech, website, drupal, inspiration
So far in 2020, I've been keeping a closer eye on the logs of this Drupal site. Back in the day, I used to pore over logs in a sort of 'bender' fashion, presumably as I was bored or something similar. Rarely was something particularly interesting, but it was a good way to figure out and correct some random things. Still is...but it's 2020 and nobody manually looks at logs anymore.
Read MoreFinancial Literacy Matters

As we enter the thick of tax season (I just filed ours this past week), I thought I'd write a short bit about my own take on financial literacy. This idea was originally sparked when I read an article last year about Why Financial Literacy Matters from a more education-based perspective. I suggest giving it a quick read.
Read MorePrivate Content in Drupal

When I started going down the Drupal road a year ago, with minor delay after delay after delay, one of the many 'dorky' things I wanted to do was port my old "Start Page" to a real platform.
Read MoreQuality Educational Theatre

This past Saturday ended a most marvelous run of the One-Act Play production in which my 7th grader was cast. I'm deliberately not going into any details regarding the production, because it doesn't matter what production was in scope, but how the production went.
It. Was. Fantastic.
Read MoreLow-Budget "CI/CD"

A client project had a database server upgrade in early December, and as I eluded to in a different post from around that time, Git was the shit when it came to making my angle of that migration go smoothly. Past Me made Current Me's life a lot simpler.
Read MoreLetting It Go

Last summer we had a pretty gnarly hailstorm, which has ultimately resulted in the need to replace shingles and siding on the house (among several other things). As a result, this has become a launching point for getting some insulation work and window replacement on the project list. Because if we're gonna do the siding, we might as well get those other things done, too.
Read MorePowershell to Find and Export AD Records

- January 13, 2020
- 3 minutes
- tech, powershell
With the very near end of life for Windows 7, as we work through the last bit of known and managed machines to upgrade or replace I find myself needing to do more frequent "searches" of AD computer object records for analysis.
Read MoreCleaning Up and Updating

I've been a bit remiss in the posting cadence lately (well, since Thanksgiving). Much has been happening in all realms of life (as they are want to be during the "holiday season"). That being said, I don't return to work, proper, until January 6. And so it's time to do some cleaning up and other updates. With any luck, I'll have some material queued up to help buffer the situations when I'm out of time (or random ideas).
Read MoreVisual Customizations for Windows 10 in OSD

- November 25, 2019
- 3 minutes
- tech, powershell, automation, inspiration
As we work through the tail-end of our Windows 7 fleet (January 14, 2020 is coming if you haven't heard...), I've found myself rolling a different type of hammer process for the last of the "upgrades." This past week as I was tweaking what amounts to an in-place update (by way of wipe and load) for Windows 7 to Windows 10, I was reminded of how Past Me was indeed awesome (and inspired) since this simple script with all the various background and image sizes still works in Windows 10 19
High Quality Local Talent

Haven't had a more personal post for a while (hope to rectify that in the next few weeks as I've got some stuff queued up), but it seemed fitting to give a short tribute/shout out to some of our regional performance art talent.
Read MoreTales From The 'Duh!' Archive: Command Syntax

- November 11, 2019
- 2 minutes
- tech, powershell, mistakes
I had a very long week, which means I'm writing a short post this time around.
Among several seemingly disparate things I accomplished in the last week or so, I spent some time deploying applications via SCCM (soon to be called Microsoft Endpoint Manager/Configuation Manager/#MEMCM per the announcement at Ignite this week).
Read MoreLet's Expand Encryption!

This weekend I performed the quarterly actions to update my various letsencrypt certificates, which I've not written about since early May when I'd performed the first set of renewals. Let's Encrypt and SSL For Free are still outstanding services, and I'm super happy with them!
Read MoreWho's Font Awesome?

Earlier this year while working on a client project revision, I decided to spruce up the old and dated icon set. This set had been cobbled together from various sources over time (the way you did these things back in the day), and overall lacked a consistent use and/or feel. Some actions had no associated icon, so educated guesses were made to find a matching icon from the existing set...and so forth.
Ultimately, it was time. But where to start?!
Read MoreTime for a Drupal Refresh

So here we are...just over six months into the new Drupal adventure driving the site. Overall I'm much happier with the transition than I'd originally expected, because the general maintenance and upkeep has been pretty much automatic. Scheduled publishing has been a lifesaver, too, because it's a 'set and forget' thing...unless I cross a month's boundary between create and publish dates (more about that in a bit).
Read MoreI Took a Break

- September 16, 2019
- 2 minutes
- personal
As I've noted a few times in the last few months, things have been remarkably crazy and busy. As it always does, this culminates in a late-August/early-September influx of "survival mode" where most everything centers around keeping the fires to a minimum.
Read MoreCollection Variables in SCCM Task Sequences

- August 26, 2019
- 4 minutes
- powershell, automation, tech
As I've mentioned a number of times in previous posts, on our campus we perform a roughly-annual refresh of multi-user workstations across the institution. This 'multi-user' scope includes machines in classrooms, computer labs, open learning spaces, conference rooms, and so forth.
Read MoreA Brief Respite

- August 19, 2019
- 3 minutes
- personal
Ahh, August: that "season" of all things chaotic, crazy, busy, and otherwise rushed. See also: back-to-school season.
A time when the rush of all the things that haven't yet been accomplished through the summer converge and, like it or not, must be completed before the new school year(s) begin.
Read MoreEnvironment Context Troubleshooting

- August 12, 2019
- 5 minutes
- powershell, automation, mistakes
Broken Context(s). The story of my weekend project.
Due to a number of reasons, mostly well outside my direct control, I spent part of this weekend working through the application and task sequence refresh process for our multi-user workstations...which will need to be finished by August 27.
Read MoreKnit Your Best Life

- August 05, 2019
- 2 minutes
- personal
On Saturday, we made the short trip to [West] Fargo, ND for the Fiber Arts Festival, something we'd not previously visited before. For a small-sized gathering, at first sight I certainly didn't expect to spend half the day at the venue. But it's a good little fest, and we well might go again in the future. Saw lots of folks spinning fiber into yarns, working with said product, and using some neat little machines to do it all.
Read MoreDynamically Created Anchor HREFs

- July 29, 2019
- 3 minutes
- tech, website, automation, inspiration
Back in the day, namely before Javascript and jQuery were really a thing, the idea of dynamically creating an anchor's HREF attribute required some serious magic and behind-the-scenes wizardry. Or something like Flash. Those were not the days...
A Bit of Background
Several years ago, during a client's web app rebuild/refresh, I decided to clean up some of the gnarly baggage behind their reporting mechanism.
Read MoreTo The Moon!

We spent the weekend away from home taking in a production of Guys and Dolls at the Guthrie Theater in Minneapolis, along with a visit to the Science Museum of Minnesota in St. Paul.
Read MoreWhat's That Join Again?

In the interest of hopefully saving Future Me some time, I'm writing this little bit so as not to have to stumble to remember a simple premise:
How do I LEFT JOIN the same table more than once in a query?
For as many times as I've had to join a table more than once (effectively as a certain type of generic lookup table), you'd think I'd have this memorized. But I always get caught forgetting to proper alias both joins.
Read MoreThat's A Wrap, and Happy Summer
As I wrote about two weeks ago (while in mid-run), we just had our early summer theatre production. It was, in my opinion, a very successful run...though bittersweet to see it end after two weekends (and six shows). We had a great and consistent audience, which speaks well to the attempt at doing a show over two weekends in June. Our next board meeting will reveal the "final" financial result of our activities.
Read MoreAuto-Determine Primary IP Address
- June 30, 2019
- 3 minutes
- automation, tech, powershell
One of the things I've baked into our production task sequence for "multi-user devices" is a secondary way to automatically determine a device's use case while in the WinPE stage. The primary, preferred way to determine use case is by the use of SCCM collection variables, but those require a known object (in the proper collection) to function as designed. Thus, for all rebuilds of known devices, the use case is figured out by collection variable.
Read MoreIt's A Half-Wrap!

If we've ever met in person, you'll likely know that I'm a theatre (yes, theatre) nerd, and I have been for a long time. I should write about my theatre history at some point in time.
Read MoreBatch Ship Data to Google Team Drive

- June 17, 2019
- 5 minutes
- automation, inspiration, php, tech
A few weeks ago, I wrote a brief bit about capturing webcam images. This post expands on the initial process: specifically, what to do with the images once procured.
Read MoreWith Summertime Comes Summer...Projects

This was going to be a real post, with some real substance (or at least something).
But then it happened:
Yard Work and Summer Projects
We had a reasonably nice weekend to do some outdoor work. While it's never complete, and always seems to be some sort of re-envisioning, the need to get some stuff done around the house has consumed my time these past few days.
Read MoreCapturing Your Internet-Connected Webcam Images

- June 02, 2019
- 3 minutes
- automation, inspiration, php, tech
Over the years, we've had a few public Internet-connected cameras pointing at various places around campus. We've used them for publicity and other purposes since the mid-1990's, and starting in around 2010 would sometimes be called upon to create a sort of time-lapse video of activity from one of said cameras.
Read MoreRunning On Empty

I have known this for many years, but I reaffirmed my assessment this past week.
I am a creative. I seriously enjoy making things.
Read MoreWindows Scheduled Tasks with Powershell

- May 20, 2019
- 5 minutes
- automation, inspiration, powershell, tech
As I struggled to find looked for inspiration for this week's post, I wound up looking within...oddly enough as I was reconfiguring my email out of office response (the below is what I had for my time at MMS):
MMS: Drinking From the Fire Hose

- May 13, 2019
- 7 minutes
- tech, automation, inspiration, security, powershell
I spent last week at MMSMOA, a conference I cannot recommend enough for anyone working in the Microsoft/Windows/Systems Management space. The main event, held at the Radisson Blu Mall of America, is a solid four-and-a-half days of deep technical material, networking, sharing, and more!
Read MoreHey, Let's Re-Encrypt!

The time has come...to renew some Let's Encrypt SSL certificates! Doesn't seem like 90 days has passed since I originally wrote about trying out Let's Encrypt as a service to generate free, trusted SSL certificates with a limited lifespan (90 days versus the more commercially-focused 1-3 years).
Read MoreWhat's In Your Lunch Bag?

- April 22, 2019
- 5 minutes
- personal, lifestyle, inspiration
Many of those I work and associate closely with know that I'm pretty often a routine machine. I'll be writing more about the various things I've turned into simple routines, automatic processes, and so forth.
Read MorePerformance Can Matter

- April 15, 2019
- 5 minutes
- tech, automation, inspiration
I've had this written down as a topic suggestion for some time, and to balance/counter my post a couple weeks ago regarding performance, there's absolutely another side to that coin.
Read MoreThoughts? I've had [more than] a few

I survived!
Yup, three (very different) presentations in as many months. All a resounding success!
Read MoreDoes the Performance Matter?

- April 01, 2019
- 4 minutes
- powershell, tech, automation, mistakes, inspiration
Back around 2015 or so, I wrote a simple Powershell script which basically re-populates Active Directory (AD) group membership based on data procured from our central systems. Two primary AD groups in particular are synchronized to our print management system, PaperCut, which pre-provisions accounts and access so folks handling monetary transactions don't have to create accounts, etc.
Read MoreIt's Presentation Season!

- March 25, 2019
- 4 minutes
- tech, inspiration, automation
As I mentioned a month ago, I've taken the opportunity to commit to more speaking/presentation engagements than ever before, in an attempt to better inspire folks and do more technical evangelism. It just happens to be that I have three things lined up in as many months!
Read MoreAuto-Transpose Data

- March 18, 2019
- 4 minutes
- tech, php, automation
Many years ago, an individual in our office retired and the position was not replaced. For several reasons, this was an appropriate decision: the landscape of IT and our localized service portfolio had, for lack of a better phrase, stabilized. Our team was more often innovating in ways involving or prioritizing partnerships over custom builds or infrastructure requirements. We were appropriately consuming centralized services made available as a commodity.
Read MoreI Own You, Drupal View!

As I tweeted about in victory a week ago, I managed to finally get my Drupal taxonomy term view(s) to do what I wanted:
Read MoreAuto-Generate OSD Computer Name

- March 04, 2019
- 5 minutes
- tech, powershell, automation
Last summer while re-designing and upgrading our primary task sequence for the "multi-user devices" in our fleet (computer labs, learning spaces, etc.), I decided to tackle what had become a bit of a perennial problem: device naming.
Read MoreWe Have Liftoff!

Liftoff.
Finally.
Aside from some style tweaks likely to come around, the underlying technical bits I've been ignoring or had on the list to address (looking at you, tag views) are now in place and working as I'd expect. There's a pesky bit I've ended up handling in a more manual sense, at least for the short term: content view by tags.
Read More"Just Reload It"
I needed to fix a library-level theme item. And since it's been a while since I last made a change like that (this was all before the original switch to the production Drupal instance), I couldn't remember if it involved uninstalling/reinstalling the theme...or simply clearing the cache.
So I chose the heavy-handed option. What could possibly go wrong, right?
WRONG.
Read MoreHey, Let's Encrypt!
As I'd mentioned in the past, one of the key reasons for changing up my personal hosting plan was to support Let's Encrypt, the free and open Certificate Authority. In 2019, there is absolutely no need for a regular old website or service to pay some exorbitant rate for an SSL certificate. The premium options (extended validation and such) are an entirely different arena--think banking and other services--but those are out of scope for everyday Joe.
Read MoreSpeak your mind caller, we're on the air!
Better late than never?
As of today, the new site is out of maintenance mode and fully live. Hallelujah!
I look at it and see all of its quirks and flaws...and things unfinished. And I let my "good" override my "perfect." For now.
Read MoreA Minor Delay
What a week it's been. Primarily holed up inside 24/7 as we reached record lows with windchill. Our lowest temp reached -33°F, and with the wind we had would've made it feel like closer to -55°F. Dangerously cold. "Historically" cold. Things (schools, businesses, etc.) wound up being more or less shut down from about Tuesday morning through Thursday afternoon. It's certainly the coldest I could remember for the better part of 25 years (it was the mid-1990's).
Read MoreThe Drupal Learning Curve
To embrace the cliché, "The best laid plans of mice and men..."
I was on track.
It was going to happen.
The new site was to be launched as expected.
But my perfectionist side jumped in and started nagging:
Read MoreIf you fix that one thing first...it'll be better.
That function needs some adjustment before you should go live.
Are you sure that style/block/node/view is the right one?
It's [Well Past] Transition Time
As the last full refresh of mzonline.com was fully thirteen years (!?!) ago, ca. 2006, one can say it was time for something new.
I'm super glad I had built the old site out with a tableless and (for its time) clean and well-structured design. While it's been a bit dated for several years, with the exception of the site itself not being terribly responsive (for mobile and alternate screen sizes) it's had a good run.
Read More