#rpm12 day 0: The plan

We’re on the cusp of yet another RPM Challenge. This will be my fifth year participating in the challenge, and my planned project this year should definitely be my most unique challenge to date.

As I’ve noted previously, this year I will be recording my album entirely using my iPhone. I will record some/most of the tracks into GarageBand on my Mac, and I will do further post-production with the Mac, but I’ll produce every sound with — or through — the iPhone.

As an added challenge for myself, usually I enter into a recording project with an overarching concept. This year, the only concept is that the iPhone is the instrument. Usually I come in with a clear set of song ideas or an overall compositional structure for an album, and quickly arrive at completed songs. (Last year, for instance, I had one song — “Spooncherry” — completely “in the can” by 4 AM on February 1.) This time around I am going to try to just record as much material as I can, in whatever form it may take, for the first half of the month, without working up any of it into a final state. And then I will spend the second half of the month sorting through the debris and trying to make sense of it all.

We’ll see.

I know I am not starting a revolution by making music on the iPhone. Plenty of people are doing a lot more with this than I am. I am just curious to see what I can produce. There is some precedent in my own work: I recorded the theme song to my podcast entirely on the iPhone (using the iPhone version of GarageBand), and earlier in January I recorded a 3-song EP on a Saturday afternoon.

It begins at midnight.

Parental guidance is suggested

I don’t write a lot here about the fact that I’m a parent. I certainly don’t try to hide it. I regularly tweet my 5-year-old daughter’s witticisms, and I post pictures of her and her 8-year-old brother on Instagram all the time. But I don’t blog about it because, well, I don’t really feel like I have that much of value to say on the matter.

I’m not a great parent. I’m not a bad parent, but I’m not one of those super-engaged, every-day-is-inspired-genius, my-children-are-the-center-of-my-universe Parents. I’m just a dude who’s married and has a couple of kids. We make sure they’re fed, bathed regularly, do their homework, brush their teeth, all of that stuff. On the weekends we try to take them out and do things that are fun, intellectually stimulating, or (ideally) both.

So, I get a passing grade in the parenting department. But whatever you do, don’t come looking to me for parenting advice.

We’re not exactly (tie-)dyed-in-the-wool hippies, but like Steven and Elyse Keaton, one of our biggest fears is probably that our son will grow up to want to wear suits to school and believe in trickle-down economics. Politically, we’re pretty far to the left (at least by U.S. standards). We value and respect a diversity of perspectives, and if we teach our kids anything in life we want it to be to respect other people, and ways of being that may be different from their own. We also want them to be independent thinkers and to question authority.

The problem then arises that we may be too reluctant to teach them our own perspectives and values and beliefs. I sometimes wonder where the line is between filling kids’ heads with (the wrong) ideas, and not filling their heads with anything at all. Where does a careful effort not to impose ways of thinking and being cross over into not encouraging them to think, period?

Our kids are smart. They’re excelling in school. Yet sometimes they seem to lack “common sense.” That idea of common sense can be a tricky one, and is something we are especially trying to avoid. Because while just about anyone can say it’s “common sense” not to put your hand on a hot stove, where does common sense stop being “common”; when does it stop making “sense”? There was a time when slavery was “common sense.” It’s still “common sense” to some people that women should make less money than men for doing the same work. We’re currently in the middle of a national struggle to overcome the idea that it’s “common sense” that gay couples shouldn’t enjoy the same rights as heterosexual couples. Common sense, in other words, is often shorthand for assumed prejudices, because it’s hard to argue with “common sense.”

Just yesterday, as our family walked home from the LRT station, we were discussing the fact that even though our kids are so “smart,” we still don’t trust them to do “common sense” things like cross the street by themselves. I mentioned how, from first grade on, I walked six blocks to school by myself (well, with a neighbor who also went to my school and was two years older). My parents knew that I could find my way safely to and from a location a half mile away, five days a week.

A couple of days ago, I overheard our kids in the living room, discussing whether or not they believed in ghosts, and I was dismayed when they agreed that, yes, they both believed in ghosts. What?! As a science-minded agnostic (leaning atheist, but absence of evidence does not constitute proof against), I was upset to hear this. But as a let-them-decide-for-themselves liberal parent, I said nothing. I was hoping that the fact that they even felt the need to question whether or not ghosts were real was a good enough start for now.

I grew up Lutheran. Went to church most Sundays, went to Sunday school through high school. Beyond religion, my parents imparted most of their beliefs about the world and how to live in it directly to me, without all of this namby-pamby moral relativism I’m using to hold back my subjective opinions on certain topics with my own kids. (Fortunately, they were — and are — die-hard Democrats.) I avoided burning my hands on the stove, or running out into the street in front of a moving car, not through my own independent discovery, but because my parents told me not to.

I do think we live in a time when parents are expected to allow their children to discover for themselves, and to treat them as precious snowflakes, rather than to teach them stern lessons about the cruel realities of the world. (And we’re seeing the results of that approach as a generation grows up and never leaves home.) At the same time, I wonder if perhaps we, specifically, are taking certain aspects of that philosophy too far, even as we intend to counteract it. Children do need guidance to learn how the world works. And trying too hard to avoid accidentally imparting your own unconscious prejudices on them might sometimes lead to not even teaching them those things that truly are “common sense,” but still need to be taught.

Teaser: My least-readable blog post may be coming soon

Aside

I have a topic for an impending blog post that is likely to be my most arcane, geeky, unreadable post ever. Even if you know what I’m talking about. It will be the blog post equivalent of Metal Machine Music. Even I won’t be able to read it after it is written.

The topic: migrating the primary keys in a CakePHP site’s MySQL database from GUIDs to integers. I can’t wait.

File under “Don’t Make Me Do This Myself”: a comparison of “TTW” (Through The Web) WYSIWYG text editors

I really don’t want to have to spend time thinking about this, but there’s such a dearth of useful information out there on this topic — based on my searches of Google and Bing, which return little more than uncritical lists of 40+ different TTW text editors, usually displayed on such hideously designed or woefully outdated websites that I discount their validity on sight — that I feel compelled to step in.

The question today is TTW (through-the-web) WYSIWYG (what-you-see-is-what-you-get) text editors. If all of that sounds like 10 letters of gibberish to you, feel free to stop here. But if you’re a web developer, especially of the custom CMS variety, you’re certainly aware of the situation: how do you give users of your system a usable tool that allows them to easily edit site content without having to muck around directly with HTML? (That is, after all, kind of the whole point of a CMS.)

It’s something I’ve struggled with for over a decade. At one point I was actually rolling my own. But that’s a little more JavaScript than I care to deal with directly, and I long ago left the project of building a WYSIWYG editor to those who really love that kind of thing.

That puts me in a position where I need to select the best available option for a pre-built, drop-in WYSIWYG editor. Fortunately things have come a long way in this regard over the past decade. I’ve been — more or less happily — using TinyMCE to solve this particular problem for the past 3-plus years. But lately “less happily” has been outweighing “more,” and I’ve been exploring my options.

So far the only viable alternative I’ve found (or had recommended to me) is CKEditor. It’s the successor to one of the really early TTW WYSIWYG editors, FCKEditor, which I tried ages ago and never really liked.

Today I took a major step forward with cms34, my custom CMS, by setting up a configurable site option that allows users to select the editor of their choice: TinyMCE, CKEditor, or raw HTML. As inclined as I am to use raw HTML myself, I’m giving CKEditor a whirl for now.

So far I am inclined to say CKEditor is just the remedy I’ve been looking for to cure my TinyMCE malaise. As good as TinyMCE is, it just gets a little wonky sometimes. It especially seems to have trouble figuring out where to put closing tags when you’re switching between block elements, and especially when you’re inserting new content. I find myself often switching to the HTML pane to fix its quirks manually, but I can’t expect clients to do that.

My experience with CKEditor is still pretty limited at this point, but I have to say I really like how it’s set up for customizing the interface (which buttons to show, especially), in addition to its better handling of switching between elements than TinyMCE. They’re both pretty similar, actually, in how they’re configured, and in the overall user experience. But CKEditor has a little more polish, a little more flexibility. It almost feels like “TinyMCE done right,” although perhaps it’s too early for me to make such a proclamation.

So, that’s it for me, for now. The only two options in this realm that I really have any experience with. I know there are others out there. Some may even be good. Even better than TinyMCE or CKEditor. What’s your favorite?

In UX we trust: Netflix as a case study in how good search isn’t good enough

Last night, prompted by a Dan Benjamin tweet, I felt inclined to watch one of my favorite ’80s movies, Fletch. I own Fletch on DVD (two versions, in fact), but I didn’t feel like busting them out. I wanted to watch it on my iPhone in bed, so I decided to check the iTunes Store and Netflix.

Unsurprisingly, iTunes did have it, but only for purchase, not for rental. And I’m not inclined to pay $14.99 to buy a digital copy of a movie I already own twice over on disc. While on iTunes, I saw a recommendation for The Sting. Intrigued, since I have never seen it (gasp!), I considered it as a possible alternative, and was pleased to see iTunes had it as a $3.99 rental. But before dropping four bucks on it I decided to check its availability on Netflix.

I checked the iTunes Store first, because I have learned to assume Netflix won’t have what I want available for instant streaming. Or, more accurately, I have learned not to trust that Netflix will have what I want.

And that’s where the problem lies: I don’t trust Netflix. It’s not that I think they’re up to anything nefarious (it’s not the same as the distrust I have these days for Google, for instance). And it’s not even entirely that I have become jaded by past experience discovering just how woefully limited their selection of streaming content is.

It’s that I don’t trust their interface to really show me what’s available.

Why not? They have a search box, after all. I can just search for what I want. To the best of my knowledge, the search box works pretty well. If they have something, it comes up. If they don’t, it doesn’t.

As usual, I couldn’t keep my frustration to myself, so I took it to Twitter:

So, again, why don’t I trust Netflix? I’ve been pondering that question all morning, and I think I have it figured out. It’s because good search, alone, isn’t good enough. Search is open-ended. It’s also kind of like standing outside a locked door and whispering through the keyhole to someone inside. You know there’s a lot of stuff inside the room. You even know that the room probably holds things you want. But you can’t see for yourself what’s inside, and the person on the other side of the door is only answering yes-or-no questions.

Of course, Netflix does offer more than search. But on mobile devices like the iPhone and iPad, it doesn’t offer a whole lot more. Sure, it has recommendations. And you can browse by genre. But I don’t really give a crap about their “recommendations.” That’s the person behind the door, offering a little bit more information, but it’s far from flinging the door wide open. And browsing by genre is great, if you know what genre the movie is in. If it even fits a genre. (I honestly don’t know what genre I’d find The Sting in. Is it a comedy? Drama? Action? I don’t know enough about the film to find it by genre.) And once you’ve selected a genre, you’re dumped into an experience not unlike rummaging through the cutout bin at a record store. (And if you’re too young to understand that analogy, get off my lawn.)

I took a few screenshots on both the iPhone and iPad, as well as on the Netflix website on my computer, to demonstrate what I’m talking about.

First, search results:

Well, that’s lovely. No results. OK. Did I spell it wrong? Is it case-sensitive? Am I hallucinating and this movie never even existed? Is anybody out there?

OK, well… hmm. What should I do now? Maybe I should browse comedies.

Really… that’s where we start? Can I fine-tune my selection a bit? Sort them into some kind of meaningful order? No, why would I want to do that. I’ll just flip through all of these aimlessly until I find something I can tolerate for the next two hours… I mean no, wait. Help me find what I’m looking for, dammit!

Well, OK. I’ve used enough apps between the iPhone and iPad to understand that the experience is often stripped down on the iPhone due to the smaller screen. That’s understandable. What about if I do the same search on the iPad?

You’re joking, right?

Let’s back up a step and see what Netflix presents to the user when they first enter the “Comedies” genre:

Well… um… that’s… a little better… I guess… than the iPhone experience. This is actually pretty close to what you get when you visit Netflix on the Apple TV, as well, and is somewhat of an improvement — aesthetically, at least — over the old version of Netflix for iPad. But still… it’s just that person behind the door, or the cutout bin.

Open the damn door and let me see for myself what’s in there.

Not that I think this is an adequate solution, let me say that right away, but I decided as a last resort to see if the desktop web interface for Netflix offered a superior experience. Here, where Netflix acknowledges that DVDs do, in fact, exist, the results are a bit better:

Thank you for at least acknowledging that the movie I asked about exists. Thank you for telling me that it’s not available for instant viewing but is available on DVD. Would it be so hard to do that on the mobile apps? I recognize that DVDs are useless on an iPhone or iPad, but simply providing this information reassures the user that their search worked. Now I can move on with my life.

What about browsing? Will you finally just open the door and let me see what’s in the room? At long last, sir, will you please just do that?

Yes!

You may note here that not only am I (after a few extra clicks) able to get a simple, alphabetized list, I am even able to browse subgenres! Who knew such wonders existed?

Sadly, browsing by title within a subgenre is probably the best way to get at what may be an ulterior motive behind the limited browsing interface Netflix presents in its mobile apps, as expressed in my tweet last night: their selection of streaming movies kind of sucks. There are plenty of reasons for this, and I’m not going to criticize Netflix for the challenges involved in working out licensing deals to stream thousands of movies for a very small, flat monthly fee. Netflix is a pretty amazing thing, when you look at what cable TV was like when I was a kid. (What am I saying? Look at what cable TV is like right now!)

Ultimately, though, whether or not Netflix is deliberately hiding its poor selection behind a mediocre browsing interface, it still has a mediocre browsing interface. Who cares? you say. Just search for what you’re looking for. Have you been reading this at all? I reply. Search, no matter how good it is, by itself is not good enough. Users need to be able to get their bearings, see what’s inside the room. We need an understanding of the scope of information we’re dealing with in order to make a meaningful search, and to make sense of the results we’re given, when we can’t find what we’re looking for.

So, a couple of final thoughts on how all of this ranting translates into a meaningful lesson in UX (user experience):

1. Don’t just rely on having a search box as an excuse not to organize and display your content in an easy-to-browse way.

2. Give meaningful feedback when a search fails. Don’t just tell the user “no results.” That’s obvious. Help them out. Give suggestions for alternate searches. And if there’s anything relevant in your database about the user’s search terms, even if it’s not directly available to them in their current context, at least let them know as much.

P.S. As it turns out, Netflix has neither Fletch nor The Sting available for instant viewing. I ended up not watching anything last night, and played around with this synthesizer app instead.

Some final (?) thoughts on SOPA/PIPA

We did it! Apparently. Whatever “it” is.

Wednesday’s “SOPA Strike” finally got the attention of Congress (and millions of confused high school and college slackers who had to endure 24 hours without access to Wikipedia, humanity’s only known source of information). In the wake of the protests, sponsors of both the House and Senate bills “shelved” the bills.

For now, they’re gone. But do you remember the end of Halloween, when Loomis shoots Michael and he falls out the window, and then when they look down a second time, he’s gone? Yeah, that.*

Before I move on to other topics (hopefully forever), I just wanted to share some final thoughts about SOPA/PIPA.

1. They’re not really dead. Sure, it’s entirely possible that we’ll never hear about SOPA/PIPA — by those names — again. But if you think the MPAA, RIAA, and their legions of highly paid lobbyists are going to let it all go this easily, you must be new here. As long as there’s any chance that anything the entertainment industry owns is being copied illegally, which is to say, until copyright law is forgotten during the zombie apocalypse (which might just be led by Zombie SOPA itself), old media dinosaurs will continue to fight for their lives.

Actually dinosaurs employing an army of zombies to fight Internet cyborg pirates sounds like a perfect Hollywood movie idea. (Copyright 2012 Scott Anderson. All rights reserved.)

2. Piracy is not really the problem. Sure, piracy happens. Sure, it’s illegal, and very probably even “wrong.” But what’s really wrong (as in, factually incorrect) is the idea that piracy translates directly into lost income for movie studios and record labels, or, as they (and their cronies in Congress) like to put it, lost jobs for gaffers and key grips and best boys and Foley artists and all of those other weirdly named jobs you see scrolling by in extremely small type at the very end of the ending credits of big Hollywood movies.

Yes, if Hollywood goes down, it’s going to take those kinds of middle class jobs down with it. But trotting these people out to get the average person to support this legislation is not unlike Prolife Across America’s billboards with pictures of babies and speech bubbles saying “I could wiggle my toes at 18 weeks!” Bear with me. Regardless of whether they’re right or wrong on the issue, both tactics are designed to appeal on a very simple, gut emotional level, and to discourage critical thought about what’s really going on, whose agenda is really being promoted, and what the implications of that agenda are.

Aside from the documented cases of entertainment industry lobbyists making egregious “errors” in their calculations of the numbers of jobs affected or the billions of dollars “lost” each year to piracy, there’s the simple logical fallacy that every pirated movie or CD equates to a lost sale. On reflection, this should be obvious: many, if not most, of the people who are pirating a movie or an album were not likely to buy it otherwise.

Then again, sometimes getting a copy of an album from a friend turns a person into a lifelong fan of a musician. A personal example: in my life I have purchased every album ever released by both Rush and Yes, which is a lot (there are 31 Rush albums and 29 Yes albums in my iTunes library right now), several of them multiple times, as each new remastered version is released. I have seen these two bands in concert a combined 8 times. I’ve bought their concert videos on VHS and DVD. In all I’ve probably spent over $2000 in the past 20 years on my Rush and Yes obsessions. And it all began because a friend made me cassette copies of A Show of Hands and Classic Yes (both of which I subsequently purchased on CD) back in high school.

So, you see, piracy is not really the problem in two ways: 1) an instance of piracy doesn’t necessarily mean a lost sale up front, and 2) copying now may lead to a lot of purchasing later.

3. Copyright is broken anyway. The other day I mentioned that copyright law had been changed to allow Disney to retain exclusive rights to Mickey Mouse. In fact, the Copyright Term Extension Act of 1998 was even referred to as the Mickey Mouse Protection Act! I’m not against copyright, per se. I believe that the creators of original works should reserve the right to decide how their works are used and distributed, and to profit from their efforts.

But I also believe that an ever-changing law that allows that protection to extend in perpetuity, long after the creator’s death, is counterproductive and harmful to the free exchange of ideas within a society. I’m firmly against software patents for the same reason. In fact, I’m even more against software patents than I am against indefinite copyright extension, but that’s a topic for another post. But I think it’s worth mentioning that I am equally, or even more so, opposed to protectionism in my own field than I am in the entertainment industry.

4. Adapt or die. That’s it, really. As I’ve noted previously, these bills (and any future legislation like them) are not really designed to protect the interests of content creators. They are intended to prop up a dying industry that grew fat on profits over a period (specifically the 1970s through the 1990s) when their business was built upon a model that is ultimately unsustainable, especially as new means of distribution have proliferated. Combine that with what is broadly regarded as a precipitous decline in the quality of their products, along with untenable pricing, and you have a perfect recipe for the kind of collapse and failure currently underway. Don’t blame piracy; blame yourselves for overcharging for a product of low value.

P.S. Boy, it feels good to be able to link to Wikipedia again!

* You seriously haven’t seen it, and I spoiled the ending for you? Whatever. Also, would describing a portion of a film in a blog post like this have been a prosecutable offense under SOPA/PIPA?

I recorded an EP today… on my iPhone

What did you do today? I recorded an EP. Every sound on it was produced using my iPhone. (Sure, it was mixed and mastered on my Mac, but the only “instrument” was my iPhone with an assortment of music apps.)

For the curious, the apps I used were: Argon, Funkbox, Beatmaker, Filtatron, NESynth, Animoog and Beatwave. (I’d provide links but… come on. Just go to the App Store and look ‘em up.)

The EP is available to stream or download for free right now on alonetone.

Three years

Judging by the old posts dredged up by my new WordPress plugin, Room 34 presents On This Day*, it was three years ago today that President Obama was inaugurated.

It’s been a strange three years. The president has probably failed to live up to the (unreasonable) expectations a lot of his supporters put in him, and he’s been too willing to contort himself in vain efforts at compromise, but I think he’s still accomplished a lot, and he’s certainly better than his predecessor (although that’s damning with faint praise).

I’m supporting the president’s re-election, if less enthusiastically than in 2008. And if for no other reason than what last night’s (yet another) Republican debate proved**… they’re a sorry lot indeed.

* Yes, that’s kind of a douchey name for the plugin. I wanted to just call it “On This Day,” but there’s already another plugin (which does basically the same thing, but appears to have been abandoned by its developer) in the repository with that name. This was the best I could come up with, because I think “On This Day” is the best possible name for a plugin that does what it does.

** I’m basing my opinion of last night’s debate, like all of the others, on what I’ve gleaned from Twitter. I would never subject myself directly to watching one of these debates, because a) I already know there is no possible way I’d ever vote for any of these candidates, except possibly under extreme duress, and b) I value my sanity.

Scott’s Accidental Artisanal Ketchup

I cannot imagine many things more hipster than artisanal ketchup. Then again, I do love ketchup. Then again again, can I really endorse a product whose website uses a handlebar mustache as its favicon?

I’ve never actually tried artisanal ketchup, but I think I may have just accidentally made some myself. You see, SLP and I stopped by Everett’s today, and ended up walking out with a take-and-bake “mom’s meatloaf.” I figured a meatloaf like that needed a proper tomato sauce to go with it, not just a few squirts of Heinz, but I couldn’t find a recipe to my liking. So, I just decided to wing it with ingredients I had on hand. I realized as I was cooking my sauce that it was drifting dangerously close to artisanal ketchup territory, but nonetheless I went for it. The end result was good. A great complement to the meatloaf, if perhaps not quite sweet enough or thick enough to stand in for real ketchup on something like a (grass-fed) hamburger.

Yes, this recipe is principally comprised of beef broth, so it’s anything but vegetarian. Then again, I made it to put on meatloaf.

Here’s the recipe, as I made it (to the best of my recollection). If you experiment and find a better variant, please let me know in the comments!

Accidental Artisanal Ketchup

1 tsp olive oil
¼ c red onion, chopped
1 tsp red wine vinegar
1 – 6 oz can tomato paste
2 c beef broth (for thicker sauce use 1 ½ c)
1 tsp brown sugar (or more, to taste)
½ tsp salt (or more, to taste)
dash cinnamon

Whisk together the tomato paste and beef broth until well blended. Set aside.

Heat the olive oil in a 10-inch skillet over medium heat. Add the onions and cook until softened, about 8 minutes. Avoid browning the onions.

Add the vinegar and stir to combine. Stir in the tomato paste-broth mixture. Bring to a gentle boil, then reduce heat to a low simmer.

Stir in brown sugar, cinnamon and salt. Taste and adjust seasonings as needed. Don’t put the same spoon back in the pot or you’ll be Chopped.

Continue to simmer for 15-20 minutes or until desired consistency is achieved.

For a vegetarian option, substitute vegetable broth or water in place of beef broth. If using water, add extra salt.

For a smooth sauce, i.e. to get rid of the chunks of onion, puree after cooking. (And if you don’t know what happens when you put a hot liquid in a blender, you’re on your own.)

Serve hot or cold on whatever you like: meatloaf, burgers, poutine, scrambled eggs, ice cream. It’s all good.

Update: When I made the ketchup a second time, I considerably increased the amount of both red wine vinegar and brown sugar, from 1 tsp each to 1 tbsp each. It was awesome. I’d also suggest adding a dash of either Spanish paprika or cayenne pepper for some extra kick.