Wednesday, December 30, 2015

Coping With What Apple's Become

A few years ago, I got annoyed with my iPhone for some reason. It might have been that the center button died, or it might have been the design catastrophe known as iOS 7, but either way, I'd had enough. I switched to a 1990s-style flip-phone which I bought at Best Buy for maybe $10. People kept giving me funny looks, so last year I bought an iPod Touch to see if I could tolerate iOS. The good news: I can tolerate it, on a $200 device. The bad news: I wouldn't pay a penny more. The 90s flip-phone is less irritating, to me. No tragically broken design, and no iTunes. The flip-phone's design is crap too, of course, but it's not tragic crap from a company that should know better; it's just cheap crap. My phone cost me less than a visit to my local comic book store usually does, so I don't mind.

Also, I use the iPod Touch as a social media quarantine device; its main purpose is to isolate social media onto just one machine, so that, if I want to concentrate, I can put that machine away, or go somewhere else and leave it at home. I still occasionally use Twitter on my laptop, but only because I've got a new project where I'm tweeting images I've created in Cinema 4D once every day. I've ordered a Lightning SD card reader for my iPod Touch; when I get it, my plan is to use an SD card to transfer files off the laptop onto the iPod Touch, move the Cinema 4D project off of Twitter and onto Instagram, and permanently hosts-ban Twitter on my laptop.

I prefer this nano-sneakernet approach to Dropbox; I won't use Dropbox because of their privacy policies, their irritating interface, and their connection to the prominent war criminal Condoleezza Rice. And I don't use iCloud, either, not just because of all the horror stories on Twitter and elsewhere of it destroying people's music collections, but also because that happened to somebody I know personally.

Recently my external hard drive for iTunes died. As a result, my music ownership fractured across several devices. I'm scared to sync anything to or from the old iPhone, because it means I'd risk iTunes doing something stupid to my music in the absence of the expected drive. (In fact, that's the real problem; Apple software's gotten so aggressively stupid that I just don't trust it any more, not even with utterly unremarkable, basic tasks.) So I'll probably have to write some software which manually removes the audio files. That software will also have to rename the files as well, since Apple obfuscates the names, but that's not hard; I've solved that problem before. Meanwhile, though, everything I buy on Beatport is on my main laptop; everything I buy on iTunes is on my iPod Touch, or at least one of my two iPads. (Both iPads run iOS 6, btw, because I just haven't been able to get over the awfulness of iOS 7 and up.)

Consequently, I'm just about guaranteed to pick up a ten-year-old iPod on eBay and switch to Swinsian.

About a year ago, I discovered that a guy I know in Los Angeles had switched from Apple to Linux — I think Ubuntu — and taken his whole company with him. They have just one person using OS X now, and that only for QA reasons. I worry that sooner or later, I'll have to make the same move. But I can't — not really. It would only solve my OS problems in dev work and social media. I make music using Ableton Live, I do 3D modeling and animation in Cinema 4D, I make videos in After Effects, I make images in Photoshop and Illustrator, and I make books in InDesign. Moving away from Apple isn't feasible for most of these areas.

I'm really not sure what to do about this, and it's very frustrating.

Update: I have an old MacBook Air running Snow Leopard. I keep it on Snow Leopard, because it's got an old 32-bit app that isn't good enough to upgrade, but is good enough to keep. Just needed that box today, for the first time in months; the recent App Store certificate expiration fiasco broke the app that I needed. The new version doesn't support Snow Leopard, of course, because it's ancient. It also carries a price of $30, and what I get for that $30 is the restoration of functionality which Apple improperly disabled. If Apple robs me of this money, I'll carry on living, but I can hardly call it a consensual exchange.

Monday, December 28, 2015

Soon To Celebrate My Tenth Year Of Not Being An Apple Developer

Been thinking about making this for a while. Finally sat down and drew it.
Some years, I went through this cycle several times. Maybe even monthly, when the iPad was brand new.

The things that give me pause are hopefully pretty obvious:
The things that make my eyes glow while little hearts and stars flutter around me are probably all equally obvious too. With Swift becoming open source, it's not inconceivable that the cycle might end. But it's been a stable pattern for almost a decade now. In fact, Swift becoming open source seems more like the kind of thing which would extend the cycle's lifespan than the kind of thing which would bring it to a happy conclusion. I'm pretty sure I've got another ten years of this ahead of me.

Tuesday, December 15, 2015

Melodics: Bad

Melodics, despite the name, is an app solely about rhythm, which aims to be the Rocksmith of finger drumming. I love Rocksmith, and I like finger drumming. I also play the drums a little. So I wanted to love Melodics, but it has several terrible flaws.

First, it's an OS X app, but its UI has no menus, so you do everything by pointing and clicking on suspiciously link-like fragments of text, which results in suspiciously HTML5-like animations. It seems to be a web app embedded inside an OS X container, with no knowledge at all of the principles that are supposed to be the foundation of UX and UI in OS X apps. To be fair, Rocksmith makes similar mistakes.

Second, the controller mapping in Melodics is a mess. It's a finger-drumming app, so you'll want to connect a MIDI controller. My controller was on their list of supported controllers, but for some reason, I still had to manually set up its controller mapping. And you can't do that without reading the instructions on their support site. The UI is baffling and there is no help text.

If you get it wrong, which I can almost guarantee you will, you have to blow out the ~/Library/Application Support/Melodics/ directory (and the first subdirectory of that is ~/Library/Application Support/Melodics/Melodics/, which is just pitiful). There's no way to edit an existing configuration, and uninstalling the app doesn't help. Clicking on the bad configuration will give you nothing, right-clicking will give you nothing, and as far as I was able to tell, the app has literally no concept of editing or deleting a configuration at all. When you give up in desperation, there's no uninstall process either. You just delete the app manually, reinstall it, discover that your controller config is still fucked, and then go hunting for directories that should have been deleted when you uninstalled, but weren't.

Third, you don't train on finger drumming against normal tracks, like you train in Rocksmith on guitar against songs you know. Licensing songs is expensive, so I expected that Melodics probably wasn't going to use incredibly famous multiplatinum global hit songs. But it doesn't use songs at all. It barely even uses beats. The trainings default to metronomes. You're literally just playing against a click most of the time. It's godawful, especially with syncopated beats, since you have no musical context to get you into the groove, just a metronome and some boxes on a screen. They don't even show you the bpm.

Because there's no musical context, the Melodics way to learn finger drumming doesn't feel like you're learning finger drumming at all. It feels like you're watching blocks on a screen and you've got to hit different buttons when you see different blocks. It's very difficult to even perceive it as being a musical experience, in any sense of the term. It's more like being a lab rat subjected to the tortures of some dickhead scientist who wants to find out how much tedious repetition a rat can take before it loses the will to live.

Fourth, and worst of all, is the pedagogy. There are very good reasons to doubt that the Melodics developers know even one single thing about how people learn musical skills, which would have been useful information to uncover prior to building an app to teach musical skills.

Where Rocksmith gives you a ton of different modalities, both in terms of feedback and in terms of what you can work on — chords, individual notes, specific techniques like hammer-ons and palm muting — Melodics only allows you to hit drum pads when it asks you to. And its feedback is limited to four options: you hit the drum pad at the right time, too early, too late, or you just "miss" a note completely — and playing extra notes count as "missed" notes. So if you get into the vibe and bang out a few extra notes because you're having fun, Melodics counts those as errors. This is a music game which literally punishes you for enjoying the music.

Not that enjoying the music happens very often. You progress to a new level by getting everything perfect on the existing level. So, most of the time, you're playing against a metronome, and your entire run through the exercise becomes worthless if you hit one note imperfectly. So you're constantly restarting the exercises and getting frustrated every time you make minor errors.

Maybe it's harsh to compare Melodics to Rocksmith, but Rocksmith's the high water mark in this area, and if you haven't designed your app to compete with it, you haven't done your due diligence. Also, Rocksmith's very well designed. It sets you up so that you do deliberate practice, but you don't even notice, because you're busy having fun. By contrast, Melodics emphasizes the least interesting aspects of practicing a musical instrument, and demands perfection. That's not how you get good at playing an instrument; that's the way a bad music teacher makes a kid give up on music forever.

Also, consider the fact that Rocksmith has a mode with very similar characteristics to Melodics exercises. In Rocksmith's Score Attack mode, you play notes and it tells you if the notes are on time, late, early, or missed. It'll even kick you out if you miss too many notes. But where Melodics subtracts points for any note which isn't perfect, Rocksmith gives you points for every note you play, and just gives you more points when your timing improves. This motivates you to improve your timing. It gives you a sense of accomplishment. It's fun.

Returning to my enumeration of Melodics's many serious flaws, fifth, you can't control the tempo of your exercise. The most valuable part of Rocksmith is the Riff Repeater, a mode where you can slow down a piece of music to half speed or even slower, and isolate specific sections of the song to focus on the exact parts which are challenging for you. This is a beautiful little deliberate practice machine.

Melodics is very obviously a very early MVP release from some daft little startup somewhere, so I could understand if they hadn't built a fully-fledged Riff Repeater equivalent. But the Riff Repeater's simplest form is just a goddamn user-definable tempo, which is not that difficult to build, especially when the backing track is a fucking metronome. And any good music teacher will tell you that if you're just starting with a piece of music, you should play it slowly and carefully, to get it right, and thereby lock in the habit of getting it right. Melodics pushes you to play unfamiliar music quickly, without taking the time to learn it first, and thereby encourages you to lock in bad habits. It's therefore actively destructive to its stated goal of teaching you a musical skill.

On the rare occasions when you manage to succeed with Melodics, despite all the ways it sets you up to fail, you are "rewarded" with horrifically conceited and obnoxious writing. For instance, where other apps label buttons "OK," Melodics uses "Nice," "Sweet," or "Yessssss" instead. Puzzlejuice did it better, back in 2012, and even then, when it was new, original, better-written, and happening in the context of a more engaging game, it was still only mildly amusing, and only for a little while.

With Melodics, it's just awful. If you get a perfect score on an exercise, Melodics tells you that you are a pad animal, even a "padimal." "Padimal" appears in all upper case, e.g. "PADIMAL," and if you get a perfect score on fifty different exercises, you see this same terrible attempt at humor all fifty times. There isn't any way to turn it off, and they didn't bother to come up with even two distinct jokes for that situation. It's just that one joke, over and over and over again.

Don't get me wrong, I don't want them to write any more of those jokes, because even one of these jokes is too many, but what makes their choice there especially senseless is that they came up with multiple jokes for another part of their app, and it doesn't even make sense. They have this obnoxious little "joke" area, which you see when the app starts up, where they put garbage like "did we learn nothing from the mistakes of disco?" But these jokes aren't funny, and even if they were, they would serve no useful purpose at all. The developers spent time coming up with multiple bits of copy for an area which never needed copy in the first place, but the copy you actually interact with, as a core element of the game, is always the same.

Also, this is a tangent, but disco never really made any mistakes. Disco suffered a backlash first because desperate music companies tried to milk it dry without ever really connecting with the actual disco culture, and second because it came from a predominantly black and gay subculture, and consequently met with enormous hostility from racists and homophobes when these companies pushed it on the mainstream. Neither of these causes for the disco backlash had anything to do with disco itself doing anything wrong at all, except perhaps not hiding enough from the mainstream music industry of its day. If you think disco itself made mistakes, you just don't know anything about the history of dance music.

More to the point, the UI of your app does not exist so that you can have a space to display your ignorance about bygone eras and obscure musicology. Your users will be perfectly fine if you don't inform them of that ignorance, and frankly, everything about this app's user interface is so incredibly bad that they're going to spot the much more relevant forms of ignorance anyway. It's painfully obvious that the makers of Melodics don't know a goddamn thing about how people learn music, or how user interfaces work. In a situation like that, you don't want to give your users specific examples of additional things that you don't know anything about either. Instead, you should just leave that shit blank, because that writing serves no purpose in the first place. Good user experience does not start by treating your app's UI like a bathroom wall at a crappy high school and scribbling there the first goddamn thing that comes into your head while you're taking a shit.

Dear Melodics developers, your product is utterly fucking terrible. I wanted to love it. I was willing to settle for liking it. Instead, I hate it beyond words. Please stop everything you're doing and read these books instead:
Your app will be better if you learn how people get good at making music, and if you take your UI more seriously, and stop flooding it with self-indulgent bullshit.

Also, there are several places on the Melodics web site where two distinct pieces of text overlap, making an unreadable mess, and, if you've got an OS X dock on the right-hand side of your screen, Melodics is basically unusable outside of full-screen mode.

The minute I saw the Melodics web site, I thought I was going to use Melodics literally every single day for the next year. Rocksmith is great but I don't really care all that much about rock music. It's all about dance music and hip-hop for me, so I was thrilled to discover Melodics. But this app was so awful, the only way in hell I'll ever give it another shot is if three years go by, and at least thirty different people tell me that the latest version is amazing. Because everything about Melodics sends the message that the user's time is of no value, and that the user's musical aspirations are not worth taking seriously. Interaction design is a form of communication, and what the Melodics team communicated to me was that they don't give a fuck about me and they think my desire to learn finger drumming is a joke. So I'll probably hate them, or at least their app, forever.

Melodics is basically the strongest argument I've ever seen against underestimating the importance of the word "viable" in the phrase "minimum viable product." I'll give the Melodics team credit for this much, they sure as fuck figured out what the "minimum" part means. But if you get "minimum" right and you get "viable" wrong, then you don't have a product. You have a "product" instead.

To put it another way:

Friday, December 11, 2015

DJ Arx: Tell Me

I'm planning to put out some music in the near future under the name DJ Arx.

Here's the first track:



If you've been reading this blog for a very long time, you might recognize the name Arx. You might know that I wrote a Ruby library called Archaopeteryx to improvise original d&b beats, and that I used "Arx" as a nickname for Archaeopteryx since nobody could figure out how to spell it or pronounce it, and/or that I later re-wrote Archaeopteryx in Clojure and called it Arx.

So I should probably say that as far as DJ Arx is concerned, I've been making this music the usual way, not by writing code to generate the music for me. That might happen in the future, and it's certainly happened in the past, but it's not happening right this second.

Instead, I'm using the name DJ Arx mainly because, if you go on Google and search for "Giles Bowkett," you'll discover that Giles Bowkett, in addition to being my actual real live human name, is also the name for a programming brand. Type "giles bowkett" into Google, and its autocomplete will say things back to you, like "giles bowkett ember" or "giles bowkett scrum."

This is the danger with personal branding; the person can change faster than the brand. Indeed, in the age of Google, anything which makes it to the Internet will live forever, including the names of ephemeral things like human beings, so it's a pretty safe bet that many of today's most powerful personal brands will live longer than the people they grew around, in the same way coral reefs outlive the organisms which first grow them.

Maybe, when we die, our inheritors will sell our personal brands to Narrative Science to cover the costs of our burials. Maybe really huge personal brands like Robert Scoble and Anil Dash will always be blogging, long after the people they sprouted from have been forgotten. Maybe software will crystallize these evanescent patterns of "personal" preference into repeatable algorithms, and on the day the last human being breathes his/her/their/its/etc last breath, and the machines truly inherit the universe, a cluster of algorithms and datacenters named Kanye West will tweet about it.

In the meantime, this is exactly the kind of nerdy, incomprehensible, navel-gazing tech industry bullshit that I don't necessarily want random music fans to have to clamber through just to hear some beats. The social media paradigm assumes that if anybody is interested in anything you do, they're automatically interested in everything else you do as well, but that's not realistic at all. It's not even so much that the person's changed faster than the brand; it's that social media demands so-called "personal brands" while totally failing to accomodate the reality that people are multidimensional, and identity is context-dependent.

Social media emerged in the aftermath of the dot-com crash, and bears some residual scars from that era. It's a technology designed mostly to enable hustling and networking, but it's become one of the major ways our culture articulates identity, and it's not perfect for that role.

Since I'm doing something new, intended for a new audience, I needed a new "personal" brand. On a practical level, I needed a name that, like my own name in "real life," was easy to google, but which, unlike my "real" name, was also easy to remember and pronounce. And I needed a name which wasn't inextricably entangled in the history of Ruby on Rails, or weighed down with the endless opinions on this blog, many of which I no longer remember, and some of which I no longer agree with.

I didn't have a name like that until I invented it, but now that I have it, I plan to use it.

DJ Arx will have a web site, but it's not live yet. "He" has threadbare accounts on SoundCloud, Instagram, YouTube, and Twitter, which I hope to populate in the near future. So follow my alter ego on your preferred humanity-to-branding conversion system, and stay tuned.