Skip to main content


Designing a better terminal text color experience

Hello, it is 2019. We've been computing together for over 50 years. And then there's this:
Text in the ANSI 16 color palette that, for some strange reason, is a thing that still exists.Okay, I get it. Most of us who use the terminal (aka console, Command Prompt, whatever you prefer to call it) are down to earth, get the job done software developers and system administrators and not graphics design artists. But isn't that just a teesy, tiny bit painful to look at? And isn't this almost 2020? Many of the text bits are quite unreadable - the black text on black background in the above image is especially invisible. And the colors you can see for the most part just yell, "I'm a color! Look at me for an extended period of time and get a free headache!"Sure, each and every user can usually change default colors to something else but these are the default colors.Actually, it is worse than that, excluding the usually but not always configurable 16 color pa…
Recent posts

Only your "inner web developer" cares about efficiently handling web browser resize events

Who here has sunk hours of time into efficiently handling the web browser's window resize event? [Raises hand.]

What part of your user base is actively resizing their browser window to see if you efficiently handle the window resize event? [Uh... 0.0000000001%?]

Stop doing that. No one cares.

(I also thought about titling this post, "How to identify a web developer with just one question" but still including a similar level of snarkasm.)

Hardware fingerprinting with a web browser

While I was updating jQuery Fancy File Uploader to support recording video and audio from webcams, microphones, and other media sources, I ran into an interesting web browser security related problem that appears to affect all major web browsers that support the MediaRecorder API.

From the Developer Tools console of your favorite web browser, run this one-liner:
navigator.mediaDevices.enumerateDevices().then(function(devices) { console.log(devices); }); Then go to another page on the same domain and repeat the process. Try it in a new tab. As of this date, in both Firefox and Chrome (untested in Edge), it looks like the 'deviceId' of each attached hardware audio/video device remains static across a domain during a single browser session. Since a lot of people leave their web browsers open for long periods of time, this information can be used to track a user's activity across a single domain without using cookies or localStorage. The user is also not alerted to the …

The "gig worker" is the new hobo

I've recently read several articles lately on the so-called "gig economy" and had the epiphany today that we've seen these people before.

A "gig worker" is simply a modern, hipster version of the hobo.

No benefits, temporary and usually labor-intensive work, constantly moving around, and regularly living on the borders of poverty and homelessness. Nothing has really changed here. New day, different name. Calling it a "gig economy" is a nice way of saying that the companies offering "gig work" are too cheapskate to hire for permanent positions.

And some gig workers freely admit that they are actually hobos: Hobo with a laptop

Welcome to 2018.

The medical reason I use tabs instead of spaces

Oh the old war between tabs and spaces. The battles that have been fought and won and lost. The friendships born and destroyed. The style guides that have been created that demand one or the other. The insane auto-indentation calculation systems that mix tabs and spaces in the same document. The difference in pay that can be achieved...and then debunked.

But enough waxing poetic. I used to be a spaces guy for many, many, many years and even went so far as to tout "two-space tabs" as "the best indentation format". All of my code consistently used spaces and I loved it. But then I switched to tabs and haven't looked back. There's a simple reason to use tabs that universally beats out all other reasons:

Carpal Tunnel Syndrome

Years ago, I got carpal tunnel not once, but twice in a fairly short period of intense coding. I made the realization that I needed to cut back the number of times I was hitting the spacebar. So even "two-space tabs"…

Linux LVM is a disaster

I just got done converting my last LVM enabled system to non-LVM. Not by choice, mind you, but because Linux LVM is a disaster and creates disasters. Every system I've ever deployed Linux LVM to (servers mostly because Ubuntu Server LTS edition "recommends" it), I've encountered nothing but problems. I've got a decade of experience deploying and running Linux servers so it's not a competence issue. LVM is a technology that simply isn't ready for real production environments. LVM also lacks mature community support when things go sideways. RedHat created and barely maintains LVM, which is all I need to know since anything RedHat touches usually winds up a convoluted mess.

What is Linux LVM (that's lvm2 to the initiated)? In short, LVM is a set of user and kernel space modules that give greater control over partitioned space. To that end, it works pretty well. You can partially assign partition space on a drive and leave the extra storage avai…