-
musically coding
I’ve been in the WordPress plugin mindset all summer thanks to a bit of contract work, so finding myself with that metaphorical hammer and looking for some nails to pound on is not a surprising place to be.
In other words, I wrote myself another plugin.
Here’s the backstory. I manage the website for an orchestra that I play in. I sit in the second violins, among about fifty other amateur musicians and we perform community concerts throughout the year. All of our music is distributed in the form of PDF parts behind a password protected page on a WordPress site. And up until this week there has been nothing particularly special about how I put the files up there, a method that generally includes uploading about fifteen to twenty parts and building a little link table for each piece.
It’s basic, and it generally works, but it is also quite time consuming and it would be a chore and a half to train someone else to do what I’m doing… not impossible, just lots of steps with some light HTML coding and managing metadata, yada yada.
I’ve been meaning to come up with a simpler way.
Vibe coding has helped enormously. AI can build out a starter framework and check for bugs in my code while I do the technical and UI design and refine the actual functionality and styles.
What I built, then, was a new plugin called Sheet Music Librarian.
The new plugin makes heavy use of the content type functions in WordPress to build a new content type (Sheet Music) with (so far) a couple taxonomies supporting it (Instrument & Season). The content type handles the metadata for the piece, the season categorizes it by a set or season or collection, and the instrument allows each of the attached PDF files to be categorized by instrument. It also has a key feature: bulk upload. So when our actual music librarian sends me three new pieces and sixty files to upload, I can just create those three Sheet Music records, upload twenty files at a time, use the drop down menu to flag the instrument on each, assign it to the right season collection and publish it. It all appears neatly in place on our site in about five minutes. So efficient. And probably pretty easy to train someone else to take over eventually.
On the front end the look is a bit different but mostly similar. The output is generated through a configurable shortcode and at the very top of each collection is a select menu with each of the first two nested layers of instrument categories so that any of the members can, say, pick their instrument and see just the files for their part.
I massaged the code with some extra help of the WordPress Checker plugin and uploaded for review last night.
You can check out the plugin and code repository on my plugin page.
-
the panoramic slide
Someone is bound to tell me that I simply didn’t look hard enough and that eight plugins already exist to do what I was trying to do. Yet, after installing approximately eight WordPress plugins the other day trying to do what I had in my head that I wanted to accomplish, I could find nothing that worked.
So I did what any reasonable guy with coding experience would do. I wrote and published (well, submitted for review and publication) my own plugin.
So what was the problem I was trying to solve?
My puzzle was around panoramic photos. Do you ever use that feature on your phone camera? You are standing at the edge of some wild vista that just can’t be captured in 4×6 mode and so you use that auto-stitching mode on your camera to pan across the scene and voila: an ultra-wide photo of the whole scene in one panoramic photograph.
I love these things. I started using them as multi-monitor desktop wallpaper on my computer, but then too, I wanted to share them. But the socials all have different ways of coping with photos that just don’t fit nicely on the screen. And if you just drop them in a normal template for regular pics you get either something stretched, cropped, or a pic roughly the vertical height of a postage stamp that is hardly impressive. Others have tried to solve this with crazy JS plugins that create 3D-ish viewers or lightboxes, but I wanted something a bit more subtle and simple.
Now, I’m not saying this is a perfect fit, but about a year ago I found a neat little lightweight CSS way to approach this panorama viewing problem on a little app that I built: I called it the panoramic slider.
It’s not complex: you just display a fixed size box matching the height of your image on a website and then put the image inside the box… but here’s the trick. You don’t stretch or fit it. You just put it in and tell the code to overflow it outside of the box (invisibly) and allow it to scroll horizontally. The user sees part of your picture but then can drag it back and forth to see the rest.
So I finally built an automated way to do this in WordPress via a plugin, and it looks something like this:
Try clicking the (autohiding) arrows or sliding it with your finger (on a mobile device).
I was just going to keep it to myself, but after spending a few hours with the code, allowing AI to check it for obvious errors, tweaking the styling, and making a pretty respectable version one, I submitted it for review and publication in the WordPress library. If all goes well, you can download it for yourself in a few days… and start taking and posting more panoramic pictures.
You can check it out more fully on my plugins page.
-
security drill
Running a website, any website, essentially means you need to become a bit a security hawk.
Granted, I installed this website on a domain name that I registered over two decades ago and from which I have run various sites, subdomains, and web apps. If it isn’t in at least a dozen dark web databases I have utterly failed at self-promotion in those twenty years. But the downside of that success is that yeah, hours after I relaunched this site, there were hundreds of little knocks on the back door as various bots and hackers tried to see how tight the locks were set.
Hackers are an inevitability.
And I’ve been mitigating this by:
- adding various plugins that track sus behaviour and block sus actors from hammering against the wall and brute forcing their way through my defences
- hiding my login page
- disabling the default features in wordpress that automagically publish my login username as the writing credit in my posts and feeds
- setting stupidly strong passwords that mathematically should take longer to brute force crack than the age of the universe
It’s daunting. It’s daunting for everyone, even folks who are seasoned at this, knowing that just behind a fragile digital firewall is some bad actor with a bot farm and nothing better to do that try and break into your digital backyard.
And it’s neither fun nor seemingly fair, but it is normal enough that its not worth panicking about.

