Numb Dive Thumb Drive Dumb Live

A few days after purchasing my 2012 Honda Civic, I’m beginning to learn a few of its quirks. The car comes stock with an audio unit that plays AM/FM, CD, Line-In, as well as USB support for thumbdrives and iPod. “How cool is that?” I asked. So I loaded up one of my spare thumbdrives with a miscellany of tunes from my collection, hopped in the car, plugged it in, and started scrolling through the list.

What I found was an unsorted collection that had neither rhyme nor reason in its sort order. Tracks from Tool were sorted before Combichrist. All the tracks on The Knife’s “Bleeding the Habitual” were completely out of order. The hell?

I did some digging around. Apparently, the MP3 playback feature sorts all of the files on the thumbdrive according to when they were copied onto the device. Yeah, you read that right. The thumbdrive must be formatted FAT32, an old hard disk format written by Microsoft before it made NTFS the default in all its OSes. If you open a command line window and change drives to one with a FAT32 format and then do ‘dir’, what you’ll find is a somewhat unordered directory listing. Why is that?

Under the hood, FAT32 stores references to all its files one-by-one in a data structure on the disk; when you add a file to a FAT32 directory, the reference to that file is appended to the end of that data structure. When software gets a directory listing, it will, in the very least, get an exact copy of this list. The indexes, you see, are exactly as written: one-by-one, appended to the end. If you want to sort the files on any kind of criteria such as modification date or alphabetical by filename, you must first read in this directory list and sort it yourself with your own software. This is very low-level stuff.

I can understand where the Honda firmware designers opted to sort files based on FAT32 directory entry; it’s cheaper, processor-wise and memory-wise, to query the directory structure and run with that instead of having to read it in and then create the data objects in memory to sort things alphabetically. It takes less time and memory for the radio to do so, and it requires less software engineering talent and money to write and test the code. However, it’s a rather lazy thing to do so, considering that even the smallest of modern embedded computer systems can have as much power and space as necessary if the engineer is crafty enough.

All told, I think it was a budgetary decision on Honda’s part; if their engineers can save $5 per unit for however many millions of units sold, then they’ve made their upper management very, very happy. Someone’s getting bonuses. The downside is that the end user gets a higher degree of confusion which is exactly the kind of thing nobody needs when they’re behind the wheel. To find their music in their collection, they’d have to move their eyes from the road to the screen to scrutinize page-by-page to find the music they want. This is a bad thing — distracted driving kills.

So. How do we work around this shortcoming? Well, luckily for us there is a Linux command-line utility called Fatsort. You can use it on any FAT32-formatted partition to rewrite all of the directory entries so that they’re in alphabetical order. A typical invocation is as follows:

fatsort -f -I -c /dev/sdg1

What this does is to apply an alphabetic sort while (-c) ignoring case, (-I) ignoring prefixes like “a” and “the”, and (-f) forcing the reorder on the mounted filesystem at /dev/sdg1. Your invocation will most likely differ.

After dumping all the music I could fit on the thumbdrive, I processed it with fatsort and plugged it into the head unit. Now all my artists, albums, and songs are sorted alphabetically so I can keep a mental map of where to scroll without taking my eyes off the road too much. I can now know with confidence that King’s X is just before KMFDM.

I wonder if Honda has an updated firmware ROM that fixes this sort of problem. One can only hope. Then again, asking a specialist mechanic at the dealership might be like talking to a wall. Not everybody pays attention to low-level details.


Car’s gone. Got hauled off today. Check is in the mail.

Today’s been one of those days where you pick up your shoes three times and drop them every damn time.

Extremities are tingling; I think I have circulation problems. Or a pinched nerve. Or too much caffeine on a daily basis. Caffeine’s a vasoconstrictor. Or I’m just old.

Strange times at work. Still figuring my ass from a hole in the ground. Everybody’s busy, nobody’s helping. Actually, help is there if I’d actually break silence and ask for it.

Changes. Changes are happening. Not at all welcome, but shit happens to force my hands. Best I can hope for is to push through with grace in these times of friction.

Intransitive Introspectre Interrogator

I’m currently intoxicated and trying to edit instrument definition files in Sonar for this music project. Making minor mistakes, and it’s hilarious. Fan is in the screen door blowing in, but the breeze is blowing through in the opposite direction, making things funny. I just don’t care. So far, no neighborsmoke blowing into my house, so that’s good. Eventually, I’ll finish this music project and publish it. Eventually, I’ll move out of this apartment. Eventually, I’ll live in the world again with people I trust. Eventually, life will begin again. Eventually, I will hope.

Life, Awakened

It is currently 69F outside, 80F inside, and I have a box fan in the screen door to blow in the cool night air. The smell of springtime has filled my dim apartment. There’s a certain florid smell that permeates the night, and I am so in love. The night mists rise as the winds breeze in from the Gulf, bringing the smell of damp ground coming back to life. The smell of river rot, the deep, soul-churning waves of nostalgia as the blossom of trees begin to limit our views and cause us to turn away from the stars to each other. We hide away from the heavens to live it up on warm earth. We are so in love.

Bike at the Station

On Fourty-Two

The past week has been one of meeting my limits and deciding that I had no choice but to push through them.

I’ve had to start riding my bike as my sole mode of transportation because, as many of you know, my car was T-boned by a Suburban with a cattle guard last week while commuting to work. Wreck notwithstanding, I’m having to relearn all those tricks to riding a bike; they say you never forget, but that’s just the balance/pedaling part — what you forget is all the mechanics of how much force to exert on the down stroke, how much you can twist your soles to get some grip on the up stroke, how to ride through the pain, how to choose the best gear ratio, which muscle groups to exert, etcetera. That’s all the stuff you forget, and it’s those walls I’m pushing.

Also, my job is one limit to be pushed after another. I know enough to deal with coworkers, but it’s the little things that make my job a job. I have to answer phones; I’ve been wracked with trepidation over that, and it still pangs me with dread when I hear a phone ring in the cube farm. But it’s my job; I have to answer and help the customers get their servers running. The more calls I take, the more confident, by turns, I feel about it. I still hate doing so, but life sucks sometimes. Eventually, I’ll get so accustomed to it that I’ll be able to rant everlong like a seasoned tech-support operator. That’s the hope, anyway. All the mechanical stuff of how to treat customers who secretly need your help even though they sound angry, knowing that it’s OK to put them on hold, that it’s OK to ask that they log into their customer portal and file a proper trouble ticket, and so on. The greatest of my worries is that I will say the wrong thing and look like the poster child for the company of fools — which I’m not, and which we’re not. The rest of my worries is not knowing what I don’t know, of which there are mountains. But my most seasoned of coworkers are still learning things, so there’s that.

But now that I’m 42, I’m finding myself in the thick business of being a grownup and having grownup problems. I have to find another car. I have to deal with insurance bullshit. I have to go to work. I have to make my way. These are limits, and it’s my vigilant battle to overcome the biggest limit of them all: my own fears. Nobody’s going to hand it all to me; I have to be the one to demand it.