Tagged with 'php'
Triggering a Slack Notification on Completion of a Task Sequence

- October 28, 2024
- 8 minutes
- automation, inspiration, php, powershell, tech
A number of years ago I started having my primary OSD Task Sequences "check in" as one of their last steps. Specifically check in with key information so I can follow up as necessary ("trust but verify") with downstream actions to ensure our asset management systems are properly updated.
I chose a Slack webhook to accomplish this as I could set up a quiet channel for notifications and queue them for later review (once a day or a few times per week).
Read MoreReflections on Advent of Code 2023

- January 01, 2024
- 7 minutes
- inspiration, php, tech
I finally gave Advent of Code a shot for 2023! In years past I'd think about/stumble across/remember it a week or two in and automatically 'nope' out of starting. This year, in large part due to the WinAdmins Discord, I was both reminded of it in advance and also had a small community of other folks taking part (and a private leaderboard to watch).
Read MoreUpgrading All The Things to Ubuntu 22.04
- February 13, 2023
- 5 minutes
- inspiration, mistakes, php, security, tech
One of my "winter break" projects this year was to get all of my disparate Ubuntu server instances upgraded and into parity. Last year I wrote about my adventure moving WSL Ubuntu from 18.04 to 20.04, which happened before 22.04 was officially released. In that process I noted the longer-term target of moving to 22.04 which brings us to the here and now!
Read MoreAdding Push Notifications to the Tempest WeatherBot

- August 22, 2022
- 7 minutes
- automation, bots, inspiration, php, tech, weather
This is the "final" installment of my summer 2022 blog series about the development of my Slack Tempest WeatherBot.
Read MoreAdding External Data to the Tempest WeatherBot

- August 08, 2022
- 5 minutes
- automation, bots, inspiration, php, tech, weather
This is the third in the short series of my journey building the Slack Tempest WeatherBot. In this post I'm walking through the steps to incorporate external data from the National Weather Service (NWS) API for alerts and forecast options.
Read MoreExpanding Interactivity with the Tempest WeatherBot

- July 25, 2022
- 5 minutes
- automation, bots, inspiration, php, tech, weather
In the last post I wrote about the basics of building the Slack Tempest WeatherBot and its basic set of command arguments. This post builds on those commands with an overview of expanding the Slack interactivity by adding a bot app home tab.
Read MoreCreating a Slack Bot for Tempest Weather Station

- July 11, 2022
- 5 minutes
- automation, bots, inspiration, php, tech, weather
In summer 2020, I picked up a WeatherFlow Tempest station...a purchase I'd been considering for the better part of a year. It's an awesome and compact little thing, and on the whole I've been super happy with it. In my location it tends to over-report rainfall as the haptic rain sensor is also sensitive to vibrations on the mounting point (a pole in my yard).
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 MoreThe MMSMOA Retweet Bot in Action

- May 09, 2022
- 8 minutes
- automation, bots, 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. I run and have access to a bunch of different environments so it felt right to get environments back to a standard (or at least closer) base configuration.
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 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. Relatively simple things like straightening out, consolidating, or consistently applying vhost configurations.
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 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. It works out well for everyone involved because we get an improved process or "thing," the intern gains some practical experience and skills (often with stuff they've never encountered), and the intern gets paid to boot.
Read MoreWhoops! 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 MoreA Twitter Bot for Dad Jokes
- April 12, 2021
- 5 minutes
- automation, bots, 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 First Twitter Bot: A Journey into Twitter's API

- February 01, 2021
- 7 minutes
- automation, bots, 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. Ultimately, I settled on a bot idea that built on some things I've used in the past (Google API) so I wouldn't have to learn All The Things in addition to building a bot and figuring out the Twitter API.
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 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. As folks started working remotely, moving data to Google has solved several support burdens regarding access and such.
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 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 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 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 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 More