I keep my mp3s in directories, separated by genre/artist – album. I like to keep my tags clean and uniform (and I use Tag&Rename for that), but sometimes I let my collection get away from me a bit. When that happens I bust out Perl because, well, I guess because it’s familiar. I’ve written scripts to do simple things like remove non media files recursively from directory structures and alter file and or folder names (say, change underscores to spaces or remove common unwanted verbiage). Because these scripts are for me, there’snever really any error handling or debugging. They’re quick one-offs, written for no one but myself. They’re rarely (never) written as efficiently as they could be. They’re not like my production code, which I’m meticulous about. These are sloppy little tools, written as quickly as possible, made to solve immediate irritations. Here’s an example:
use File::Find::Rule; use MP3::Tag; use List::MoreUtilsqw(uniq);
This one finds all the files in the \\server\music\all\ path beginning with 1 or 01 (or 1_ or 01_ or 1- or… you get the picture), dumps their ID3V1 Artist, Album and Genre tags into an array, winnows that array down to unique values, and dumps that to a text file. Why? Because sometimes I’m unsure what genre I’ve labeled an artist/album (and let’s be fair here. Are the Night Birds Punk or Rock? The Ramones? And is Thom Yorke Rock or Electronic? Hmm? If Tom Petty’s Damn The Torpedoes is Classic Rock, then is Hypnotic Eye as well?) and rather than have to open the directory and look at the tag on one of the songs, I wanted a way to just dump it to a file to refer to later.
Why is it listing the Filename, Artist, Title, Album etc in the CMD as it runs? Because I’m a dork and like to watch things run in command lines.
Why didn’t I write some fancy regex to handle the file name match, or better yet write something that would just pull the data from a single file per subdirectory? Because there’s a tipping point. If you spend more time writing and testing your script than it would take doing manually whatever you’re writing your script to automate, you’re not being effectively lazy.
I’ve definitely been guilty of taking more time to write a script than what it would take to just do the task, but in those instances it’s because I’m enjoying writing and testing and learning. Sometimes I don’t want to write and test and learn. I want to kick some sloppy shit off in a CMD prompt and let it run in the background while I pick my nose and watch redlettermedia. I don’t care how long it takes, so long as I’m not the one doing it anymore. Somewhere there are probably nerds who are very unhappy with me for that statement. Too bad.
I don’t like the Windows 8 preview pane. It makes moving and deleting things difficult, especially over network shares. It likes to lock shit up thanks to the (usually hidden) thumbs.db file it creates. So, turn it off. It’s a simple reg hack:
Tonight was our maintenance window at work, and I updated a bajillion virtual servers. Went OK save for one Windows 2008 r2 box that got stuck in a reboot loop. Updates failed, so I bounced the box to start fresh. It would begin boot, show the dialogs for installing/configuring updates, reach “Configuring Updates: Stage 3 of 3,” and crater. Repeat infinitely. Thankfully the fix was easy. I mounted and booted from the 2008 Server ISO and:
Selected to Repair
Selected the Command Prompt option
Executed the command del C:\Windows\winsxs\pending.xml (actually because it was a virt the drive wasn’t C, but you get the idea)
I upgraded to a (hand me down) Dell Latitude E6530 not long ago. I loaded it with Windows 8.1 (and Classic Shell, because one must). I kept having wireless trouble – dropping off of networks. It wasn’t isolated to my home. What I believe I’ve determined is that, in a nutshell, Windows handling of N networks kind of sucks. I disabled N and since then have been rock solid.
Navigate to your network adapters, right click on the wireless and choose Properties. Beneath the adapter description choose Configure:
Choose the Advanced tab, then locate 802.11n Mode. Switch the Value to Disabled and OK your way out of all.
The things I’ve held onto over the years. Here’s what I think is the 2nd edition of Gwar’s handmade origin comic. Looks like it’s from 1988. I’m sure I got it from one of their shows at Atlanta’s Metroplex back then. Download it here.
I had installed and configured a trial of a web analytics package for my day job and had the server put through the wringer. Among the issues found was a redirect buried deep in the code to cornify.com, “…the #1 unicorn and rainbow service worldwide, spreading sparkly happiness around the world.” I added it to my list of concerns for the products developers and shipped it to them. They responded that the cornify link was an “Easter Egg” put there by one of the coders and wasn’t a security concern.
My immediate thought was this: What if cornify becomes something else? What if it stops being the #1 unicorn and rainbow service worldwide? What if someone buys the name, or hijacks it, and it instead leads to an unsavory site? How will you explain to your paying customers that you’re rushing out an update to the web app they’ve paid you handsomely for, and that their administrators need to burn their time updating it ASAP, because a redirect you added on a whim now points to something lawsuit inducing? Less dramatically, and more likely, why would you want to deal with that inevitable customer who gave you thousands of dollars for your product and doesn’t have a sense of humor? The one who thinks it’s completely unprofessional and a poor reflection on them that your product did what you think is a lighthearted redirect? Is being clever (and let’s be fair – it’s not all that clever) worth that risk?
And that’s when I realized I’d stopped being the Young IT Guy and I’d become the Old IT Guy.