Category Archives: Software

Software:
Writing it, using it, wrangling it to achieve our ends. This is the essence of hacking.

Slap Head

For those who are keeping score, I’m a dumbass.

So, I have a file server at my home that’s running FreeNAS, which is based on FreeBSD, a popular Unix distribution. I have around 7.4 terabytes of storage capacity across 5 disks; that’s a lot of personal files. I bought a single 8TB disk for the purposes of backing up this mountain of data. The problem is that my methods of making exact copies of files to the disk were failing or taking too long to complete, so the backups were slow and not always good.

When you’re dealing with terabytes of data, everything’s slow and insufficient.

Well, the problem is that I was looking at the problem from the wrong point of view. On my personal workstation, which runs Linux and uses the ext4 filesystem, I have a stack of scripts that basically run “rsync” to make exact copies to a portable 2TB disk. This method is what I tried on the FreeNAS box. Due to the way rsync operates under the hood, especially on complex filesystems where there are lots of hardlinked files, it was occasionally consuming all of the free memory on the fileserver and eventually dying after a few hours of churning, sometimes with no files actually copied.

“There has to be a better way to do this,” I thought. “I guess I’ll split the disk up into smaller chunks and make scripts to do it that way.”

And then, like a strike of lightning, it hit me: this FreeNAS box isn’t running on an ext4 filesystem — it’s running ZFS. What feature does ZFS have that ext4 doesn’t? That’s right — snapshots. Futuristic, amazing, wonderful snapshots. And what can you do with these snapshots? That’s right, you can replicate them, bit-for-bit, to another disk or remote system. Woah.

Just slap me now.

So, I did what any sane person would do: use the available tools as intended. I made a snapshot. I then wiped the backup disk clean, and am currently replicating that snapshot to the backup disk. Then, once the initial snapshot is there, I can take incremental snapshots at later dates and push them to the backup disk in a significantly shorter amount of time.

Use what’s available to you. That’s the key lesson here. This is liberating. Let’s hope this works!

English (US)

Picked up a Samsung Galaxy Tab E tablet a month ago. My big Logitech bluetooth keyboard works with it OK, but it created this stupid, annoying problem: every time I started typing, if I was the least bit sloppy with my shift key finger (left pinky) while pressing the spacebar (such as pressing space after the word “I”, which happens a LOT), the tablet would take that key sequence to mean I was selecting the keyboard language and would eat up the space keystroke, pop up a notification that I had selected the English (US) keyboard, and would pause my typing until the notification disappeared. I could not type delicately enough. This is untenable.

Screencap of typing

Trying to type “I am” it takes the remnant of the left shift with the spacebar to mean “change language”.

Luckily, I found the problem: in Android, all keystrokes (external or otherwise) are filtered through the selected keyboard input method. In this case, it was the default Samsung keyboard. Once I installed Google Keyboard and selected it to be the default input method, the problem disappeared because GK uses a different means to select language.

It’s the little things like this that just go completely under the radar and slip into production. Tiny little annoyances accumulate; so far, my experience with this tablet is lackluster (Bluetooth sometimes stops working and the SD card goes missing). Maybe I should’ve stumped for a more expensive model that’s had more dev resources allocated. Then again, who’s to know if Samsung functions like that?

Car Windows

Since getting my smartphone, I’ve seen the horror of the mobile web — not the boiled-down, large print version of the web customized for mobile devices with small screens, but the regular web shrunk down to render in tiny fonts on small screens. This is what happens when site designers don’t update their HTML and stylesheets so that mobile devices like phones, tablets, readers, etc., can make informed choices about which design to render.

Since this site runs on WordPress with one of the default themes, it’s already “mobile ready”, so it renders a slimmed-down, linear format so anybody can read my sordid blog while they’re on the crapper. However, my music site, glassdoor.net, did not fare so well. It was previously powered by Drupal, but the problem is that Drupal is a big target for malware; if you don’t keep on top of all the software updates, it’s a matter of time before the site gets infected.

Well, in February, it got infected, and my webhost conveniently disabled the site and told me about it. Since then, I’ve revived the old static-ish HTML site I had before Drupal, no frills, no bells, no whistles. It’s just a handful of pages and a bunch of text describing the songs (it’s not exactly static — it uses a few SSI templates and uses mod_rewrite to hide that fact on the URL so nothing ends in .shtml).

What irked me was that my site wasn’t easily viewable on my phone. I know it’s a crappy site, but it’s a point of pride that my things Just Work. So I set about to re-engineer a few things (hence my previous post about CSS media queries). Turns out, it’s fairly easy to come up with a modified stylesheet for mobile devices with a small amount of screen real estate. The site is up, the color scheme is a little brighter (was rather drab, that), and I even spent some time adding the embedded Soundcloud music players so readers could listen as well.

It’s not the end-all, be-all I was wanting, but it functions. If I get enough motivation, I have a redesign in the works that I’ll eventually finish. But that’s another project for another day.

Substandard Compliance

The erosion of academic writing continues:

“Several media queries can be combined in a media query list. A comma-separated list of media queries. If one or more of the media queries in the comma-separated list are true, the whole list is true, and otherwise false.”

Source: W3C Media Queries

Come on, World Wide Web Consortium, I expect better writing out of you. Who let that incomplete sentence through? Can you rewrite this to be a little more clear? Try this:

“Several media queries can be combined into a comma-separated list. The list is evaluated as true if at least one of the media queries is true, otherwise it is evaluated as false.”

This is why browser vendors take vastly different interpretations of the standards.

The Last of FM

I dunno, but I think I’m done with Last.fm. It was neat, I guess, but after five years, I’ve determined that it’s just not useful to my life.

Essentially, supported music players could be connected to your Last.fm profile and every song play is tracked (it’s called “scrobbling”). Ostensibly, it was a way to discover new artists or find music that you’d be interested in. And, on occasion, when you visited your profile, they might offer some free downloads of music that might interest you. All statistics, really. They then bolted on this social aspect to it so you could compare your tastes to those of your “friends” and make new “friends” out of strangers. I guess that’s useful if you live in a society where your identity is tied to what media you consumed (like the one I grew up in). But I don’t live in that society anymore.

I guess my musical enjoyment has waned in the past five years I’ve been using the service (since June 13, 2009). I mean, they’ve tracked 40452 of my song plays on all my linked media players (Winamp, Banshee, Rhythmbox, Amarok, etc.). So I’ve listened to a lot of music, but on every playback there’s this background paranoia that my activities are being logged and put on display to anybody who visits my profile. That paranoia existed in the noise floor of my life, always below the squelch level since I had this feeling that the service was a Good Thing. But my feeling now it that it’s not exactly all that great or useful, so the squelch level has been adjusted lower to be more sensitive, and that nagging in the gut is sharper than ever.

These statistics are serving Last.fm (and their parent corporation CBS Interactive) more than they’re serving me. I guess that’s what burns me a little. A look at my own data tells me a few things, but nothing I didn’t much already know. And it certainly doesn’t accurately predict who my favorite artists are – it just predicts whose songs I play the most (aye, there’s the rub – if an artist produces long albums with short songs, Last.fm thinks you are absolutely in love with that band, because look at all the songs you played!). So, according to Last.fm, my top artists are as follows:

Rank Artist Plays
1 Nine Inch Nails 865
2 Shpongle 846
3 Depeche Mode 829
4 Stellardrone 784
5 VNV Nation 629
6 Skinny Puppy 626
7 Gary Numan 573
8 mind.in.a.box 504
9 The Orb 497
10 The Future Sound of London 487
11 U2 476
12 The Cure 459
13 Rush 457
14 The Knife 445
15 Type O Negative 403

Sure, quite a few of these bands are my all-time favorites, I’ll grant that. But Stellardrone, for instance, was a recent addition only because I grabbed the artist’s discography and used it judiciously to mask background noise while trying so sleep for my graveyard shifts (a recent concern in the past year). The problem is that this data doesn’t reflect my entire history of listening to music since I got my first Walkman in high school – I love so much more than these top bands (where is Pink Floyd, Yes, or Sarah McLachlan, for instance?). This data reflects only my logged plays on connected devices since 2009. Any passing fascinations with such-and-such a band during that time artificially carries stronger weight than it naturally would have carried in the grand scheme of things. Statistics are funny like that.

I uninstalled the Last.fm scrobbler plugin from my laptop’s Winamp over 2 years ago – that was kinda the beginning of the end (really, it was just another piece of software stealing precious processor cycles from my low-powered laptop). I’ve also stopped linking any new software to my profile, just letting the old ones fade out due to upgrades and attrition so that only the Banshee software on my Linux desktop is reporting my song plays. But after recently becoming acquainted with the Plex Media Center, where I’ve been going through my collection at random as the mood fits, I noticed something was missing: the paranoia. Nobody’s watching! (*That I know of, but since Plex is a network-based service linked to a single-sign-on at the plex.tv site, even though the media is hosted at my own house, they could very well be tracking plays on the back end). The scrobbler is still installed on Banshee, and may stay installed for a long while, but I have disabled scrobbling.

So yeah, I’m kinda done. There is so much in my music collection that I adore, so much that I’ve loved in the past, so much that I want to listen to more of, but the thought that I’m being watched (voluntarily, mind you) kinda puts a wet towel on that fire. I want to enjoy my music again without looking over my shoulder. I volunteered all that data, and now I’m voluntarily opting out. The payout just hasn’t been worth it.