Breakfast Dog

If you’ve ever thought to yourself “Man, my arteries are way too clear and free-flowing,” this is your meal.

  • 1 hot dog
  • 1 bun
  • 1 strip of bacon
  • 1 egg
  • 2 slices of cheese
  • 1 hot dog bun

Wrap bacon strip in a spiral around hot dog, covering as much of it as possible. Use a toothpick to keep bacon firmly wrapped around hot dog.

Place hot dog and bacon onto grill. Cook until bacon is thoroughly, crisply fried and hot dog is cooked all the way through.

Place egg in pan on medium high heat. Scramble egg and cook until no longer runny.

Place cheese slices into hot dog bun. Place eggs on top of cheese. Cheese will melt.

Place bacon-wrapped hot dog onto eggs. Garnish with ketchup or salsa. Eat immediately.

You’re welcome.

Tully Goes Down To The Docks

So, I’ve released a new track for sale on Bandcamp, entitled “Tully Goes Down To The Docks”.

It’s priced at a minimum of $1.00, but you can pay whatever you think it’s worth.

This piece (arranged for toy piano and strings with some digital effects) is one of my generative pieces, meaning it’s entirely composed using software algorithms within Ableton Live. While I’ve made several of these before, this is the first one I’ve really felt comfortable charging for, because I think it’s really good. It’s emotionally evocative and warm, and extremely atmospheric; I’m reminded of a film soundtrack. Hence the title, “Tully Goes Down To The Docks”, which doesn’t actually mean anything. It just sounded like the score for the part of the (non-existent) movie where…well…where Tully goes down to the docks.

The process for creating one of these pieces can take anywhere from a few minutes to several hours. This one took me about an hour. I created multiple tracks in Live and added looping MIDI clips to them. Each clip consists of just a middle C note, playing a rhythm — eighth notes, sixteenth notes, quarter notes, whole notes, either regular repeating or in some rhythmic pattern. Then I load in the Random MIDI plugin, which randomizes the playback notes. Then I add the Scale plugin, which forces the randomized notes into a scale (in this case, C major).

So the clip sends the middle C note, which is then randomized and then quantized (by being forced up or down) into a harmonic scale, and then sent to Propellerheads Reason, my soft synth environment. In this case, there are three Reason instruments: a toy piano, a solo marcato cello and a string section. The returned audio from Reason is sent to a granular synthesis Max for Live plugin called Hadron, which provides some really interesting (if subtle) sonic texturing, and a whole hell of a lot of reverb.

Once it’s all mixed the way I like it (including mastering but, in this case, no compression, as I wanted it to have extremely wide dynamic range), it’s done. I save the file and go to “Render Audio/Video” in Live’s file menu.

The length of the piece is arbitrary, but in this case I cheated a bit: I manually brought in each track at the beginning and then took them out one by one at the end. The entire track runs 128 measures (or 8:36 seconds). Every time I play the track (or render it out in Ableton Live) it’s different; this recorded version is one of an infinite number of variations on a theme.

I could, in theory, create a custom variation for every single person who bought the track, and I’m considering doing that for the next generative piece I do. It’d be interesting: you would own the only copy of your “version” of the song. No two would ever be exactly alike. It’s a different way of thinking about the idea of recorded music — one that’s really only practically possible with this particular form of composition and recording. (In purely digital music, the two are basically the same.)

I hope you like it. I really do. And enough people have bought it that I think it’s probably worth doing a possible entire album of these pieces!

Far Gone And Out: Chapter One

A man walks down the street
It’s a street in a strange world
Maybe it’s the Third World
Maybe it’s his first time around
Doesn’t speak the language
He holds no currency
He is a foreign man
He is surrounded by the sound, sound
Of cattle in the marketplace
Scatterlings in orphanages
He looks around, around
He sees angels in the architecture
Spinning in infinity
He says ‘Amen!’ and ‘Hallelujah!’
–Paul Simon

Every morning, Martin Judith wakes up in his dingy room in a wretched ethnic ghetto on the planet O, which is the center of all power in the galaxy, opens his narrow window and crawls out onto the wide window sill that he thinks of ironically as a balcony, and sits and drinks coffee as Chanel Number Five rains down on him in a fine mist.

It’s not real coffee, of course. It’s called flej-ja-tini in the patois of the Hydrocarbon Ghetto, and downtown they call it muh. Not coffee from a coffee bean, the arabica cappucinoa or whatever the fuck the Latin name is. But it’s dark and it’s hot and it has precisely the same effect on Martin’s nervous system as a venti-triple-bypass of Americano from the Starbucks on Market Street does, so he thinks of it as coffee.

Nor is it Chanel Number Five that coats Martin in a molecule-thin layer of sweet-smelling moisture every morning. It’s just more weirdness, some quirk of planetary macroweather. High in the stratosphere of O are clouds made of some ratio of water and alcohol, and when the sun hits them every morning, the water evaporates and the alcohol comes falling down and gets impregnated somehow with an organic compound in the lower clouds that smells exactly like attar of roses. It falls and falls, and it lands on Martin, and then it evaporates itself, the way aerosolized alcohol tends to do, and it leaves him smelling like Marilyn Monroe. And also his wife Suzanne, who has been dead for four years now, which is not the reason that Martin will admit to himself he does this little ritual every morning.

He pretends to himself that he’s letting the alcohol soak into his not-coffee, and also that bathing in naturally-occurring perfume mist is free, whereas an apartment with an actual shower costs money. More than he makes in his pathetic job.

Martin Judith sips his flej-ja-tini and tries not to consciously think of his wife, while simultaneous trying to subconsciously comforthimself with the olfactory memory of her and the bottle of Chanel Number Five he bought her on the occasion of their first anniversary, and when the rain stops and the coffee runs dry he heads back inside to get dressed and start his day.

 

* * *

Jehsayteh the food vendor is already set up with a line of customers when Martin comes bounding out of his apartment building. He gets in the queue right before an irritable looking Mang, who looks him up and down and flicks its headwings at him contemptuously.

“Fuck off, Tinkerbell,” Martin says. Despite spending eight of the last ten years living in the city of San Francisco, on the planet Earth, he still has a bit of the accent of Northern England, where he was born and raised. Despite this, when he gives the Mang the finger, it’s only the one American finger, not the British V. “First come, first serve.”

The Mang just buzzes at him. But what’s it going to do? It may be eight feet tall, but it’s built like a praying mantis and probably weighs all of about a hundred pounds, even with its armored and oversized cranium and the iridescent wings that dangle from it. Besides, it’s not looking for a street fight. Nobody looks for a street fight in the Ghettos. Street fights mean cops, and cops mean Show me your ID token, you immigrant scumbag, and anyway three Mangs got deported last week for some kind of credit scam.

“Deportation” means the same thing out here in the Universe that it does on Earth: the cops take you to the border and throw you over it. But O is an ecumenopolis, a city-state that covers the entire surface of its planet, and in this case, the border is legally defined as the edge of the atmosphere. So the Mang scammers got taken up to low orbit and kicked out of a fucking airlock. Martin doesn’t spare them much pity; he’s always been fairly confident that he’s not racist, but he can’t help thinking the Mang are just kind of a creepy species, and their music irritates the piss out of him, and besides, they’re a hive mind or something, so they barely even register three dogsbodies doing the Vacuum Mambo.

He reaches the front of the line and Jehsayteh grunts a greeting at him. Jehsayteh is an amphibian from some backwater, and he’s kind of like a walrus and kind of like a frog, with those weird rectangular-pupiled eyes. He sits in a gigantic plastic bucket filled with swampy water behind his food cart.

Martin holds up three fingers. “I want to have…[er, shit, uh]…three of meat sphere…to please?” he says in his halting Standard, with a bit of English thrown in. Jehsayteh bounces up and down in his water, which Martin has come to understand is his way of laughing. But he’s already ladling three large meatballs and a bunch of sauce into a paper bowl, which he slides across to Martin.

“You’re getting better,” he says in Standard, slowly and over-enunciating, but his tone is friendly.

Martin nods. “I…trying? Trying, yes,” he says. He waves his cred at the cart, which beeps.

“Keep it up,” Jehsayteh says, and waves the next customer forward.

Martin takes his meatballs down the hill from his street to the waterfront, where the bus comes. He sits on a low wall overlooking the harbor and eats, tipping his head back and knocking the meatballs into his mouth like the jelly balls at the bottom of a glass of bubble tea.

He’s been here for six months now, he’s pretty sure, and he’s finally starting to get Standard. As languages go, he’s pretty sure it’s not complicated; after all, it has to get spoken by what seems like an infinite variety of species with a definitely infinite variety of ways of communicating. It’s probably no harder in actuality to learn than the German he picked up when he was backpacking in Bavaria back in the early 90s. The difference was that in Bavaria he could stop at any tourist shop and pick up an English/German phrasebook. There are no English/Standard phrasebooks.

As far as Martin knows, he’s one of two people within a few hundred light years of here who speaks English, or even knows that English or England or Earth exists, and the other one is an alcoholic counterfeiter who can’t be bothered to make himself useful, or to pay for his own drinks for that matter.

So he’s stuck trying to figure out the language by inference and guesswork and pointing at things until some kind soul feels sorry for him and says what it’s called. He feels like even more of a fucking idiot than he did in Bavaria back in the day, trying to suavely pick up sexy German girls with his halfwit’s tourist German.

It’s ironic: in San Francisco, he’d gotten used to Americans acting as if his every Anglophonic syllable was somehow saturated with sophistication and grace — this despite the fact that his family were working class thugs whose taste for a good union picket line riot was only surpassed by their predilection for finding City fans in back alleys and using their faces to clean the gravel out of the soles of their Doc Martens. But as far as the Yanks are concerned, he might as well be Martin fucking Windsor, Lord Scunsthorpe-Upon-Scunthorpeshire. It took him a long way in California; got him a proper degree in art history and a nice little gallery in SoMA with a respectable Silicon Valley clientele and a loft in North Beach whose square footage could actually be expressed in four figures.

And none of that matters now. On O — or in O, whatever the right preposition for a planet-city is — here, he’s a nearly-mute idiot. He doesn’t speak enough Standard to get a job working in an art gallery, much less running one. Even if he could find a female of a species he was both a) attracted to and b) biologically compatible with, he can’t ask her out without sounding like he’s gotten a recent worrying blow to the head.

In fact, in his current situation, Martin is about as marginalized as is possible. Even shady weirdos like the Mang have families and cultural cliques and obscure religious celebrations and music. (Terrible, terrible music.) Whenever any ethnic group finds itself the minority in a hostile place, it immediately bands together and insulates and self-protects and starts pumping out really good food.

Not Martin. He’s an ethnic minority of one. There isn’t anybody else here that he can sit with in a bar and reminisce about the glories of The Sopranos, no cousins he can invite over for a proper British curry or even a Mission District barbacoa burrito, no friends with whom he can serenade the glory of good old planet Earth with a good old fashioned drunken rendition of “Don’t Stop Believin'”.

He is alone, and nearly mute, and extremely aware of his status as an illegal and undocumented — if unwilling — immigrant.

And so he makes his living doing the one job that any illiterate, incompetent, drug-addicted maniac in the universe can always do, for just enough money to not end up in a cardboard box or giving handjobs to obese reptilian religious fanatics in back alleyways. Not that he’s done that, or considered doing it for more than five minutes at a time.

Martin finishes his meatballs and sauce and reminds himself again to ask Jehsayteh what the fuck his new favorite dish is actually made of, and then decides again that he probably doesn’t want to know. He takes a long look out at the harbor, where the shipping lanes to the other continent-districts of O lie adjacent to the massive spaceports and their loading docks. One of those big Partari freighters is coming down, parting the Chanel clouds like a fist through a curtain of gauze, its engine wake sending giant rippling waves across the ocean that crash into the breakwaters with sprays of ocean foam as big as houses that startle the bright red idiot gargoyles that sun themselves on the rocks and send them crying indignantly into the morning air.

Martin does not know that he’s smiling, but he thinks to himself: fuck, it could be worse. How in hell could you live without seeing that, even just once?

And then he’s gone into the commuter crowd that flows into the city subways like a river into an underground cavern, gravity driving it ever onward and down into the dark.

If mechanics worked like doctors

So it takes three weeks to get a mechanic to check out your car, during which time you’re rescheduled four times.

“But I have to get to work, and the electrical system is totally malfunctioning! I don’t know why and I’m afraid it might catch on fire or something!” you tell the barely-apologetic receptionist, who tells you that if your car isn’t working at all, you can go to an emergency mechanic’s shop, where they’ll tear out all of the wiring in your dashboard and hook your starter subsystem directly to the battery. “You won’t be able to use your lights or your signals or, of course, your radio or dashboard electronics at all,” the receptionist tells you, “and you might not be able to replace your wiring the way it was, but that’s the best I can tell you. Do you still want me to schedule that appointment?”

And here you are, three weeks later. You arrive five minutes early for your appointment with the mechanic, and the receptionist — maybe the same one, you can’t be sure — hands you a clipboard with a form full of questions about your car, your car’s history, your car’s previous owners…it’s a lot of information, but it’s reassuring: somebody‘s going to take all of this into account. It won’t be like those other times you went to the mechanic.

You return the clipboard to the receptionist. A half-hour of reading articles in Redbook about how to figure out what season you are later, another receptionist pops her head out from behind the garage bay door. “Can you park your car in the garage for me?” she asks, and vanishes. You duly retrieve your car and park it in the garage. “Wait here,” she says, “the mechanic will be by in a minute.”

It’s not a minute. It’s not ten minutes. It’s fully forty-five minutes later when the mechanic finally comes into the garage, moving fast, looking at the clipboard with your information. “Hi,” he says, and shakes your hand. He seems to deliberately make eye contact with you, as if it’s something they taught him in mechanic school. But he only holds it a second, and then returns to your clipboard.

“So what seems to be the problem here?” he says. Hesitantly, you start telling him. “About a month ago, my car started making weird noises when it started.”

“Uh huh.”

“Then the lights, you know, the dashboard lights and the headlights started dimming–“

“Uh huh.”

“I checked the battery–“

“Uh huh.”

You wait a second, a bit nonplussed. He hasn’t looked at you the whole time and doesn’t particularly seem to be paying attention.

“I checked the battery, and it’s fine, so I didn’t know….”

“Uh huh,” says the mechanic. “Well, from what it says here, it looks like you have a blown alternator.”

“No, but I actually replaced the alternator six months ago–“

“Uh huh. Well, it’s probably still the alternator. Just to be sure, though, I’m going to need to run a complete set of diagnostics on your car, just the standard stuff: full engine check, transmission check, electrical check of course, and then we’re going to go ahead and put it in a wind tunnel to make sure it meets manufacturer aerodynamic specifications–“

“Do we really need to do all that? I mean, couldn’t you just look at the alternator, if you think that’s what it is?” You’re a bit nervous. You don’t actually have comprehensive insurance, just collision.

He smiles, a touch patronizingly. “We want to get a good, complete picture of where your car’s at, mmokay? Otherwise, we might miss something.”

“So how much will all of that cost?” you ask.

He shrugs. “I have no idea,” he says. “It depends on a lot of factors, you’d have to ask my receptionist.”

“You don’t know how much it costs to run these tests?”

“Nope. That’s not really my department. But once we’ve run them, we can figure out exactly what’s wrong with your car and how we’re going to fix it, okay?”

He’s walking towards the garage door. He’s actually just walking away from you towards the garage door. “My assistant will be by to get you all checked out,” he says over his shoulder, and then he’s gone, leaving you staggering against the side of your poor, damaged car.

Another half-hour later, the assistant shows up. Or rather, pops his head in the door. “Follow me,” he says, and you do, to a small room with an aging computer on a desk. He sits behind the desk. “Do you have comprehensive insurance?” he asks. You tell him quietly that you don’t. He sighs. “Okay, so you’re paying the full amount.” He consults your clipboard, upon which the mechanic has apparently left some notes. He types for a few moments and then his printer spits out a small pile of papers, which he hands to you.

You pick them up.

You read down until you see the total for the battery of tests the mechanic has ordered for your car, the battery of tests you’re fairly sure you don’t need.

You suddenly feel dizzy. It’s more than you paid for the car in the first place…and you bought the car new.

“There’s also the cost of your consultation with the mechanic, which you can see here,” the assistant says, turning over the paper in your hand.

You look at him in abject horror, willing him to open his mouth and justify this incredibly ridiculous expense, which — if your dazed calculations are correct — suggests that the mechanic is charging roughly $400 per minute of his time.

He doesn’t. He just nods again. “Of course, that includes the cost of the mechanic’s assistant looking at your car while it was in the garage, before the mechanic showed up, and opening the hood.”

“Did they do anything to it?”

“Oh, no. We’re not qualified to do anything, we’re not actual mechanics. He just made sure it wasn’t actually on fire.”

“I could have told you that!”

“Yes, but you’re not a mechanic, are you?” He smiles, and it’s clear that he’s apprenticing to the mechanic in Advanced Condescension.

He hands you another, worryingly large stack of paperwork.

“Now, we can set you up on a payment plan….”

You nod, resigned, and sign away most of what you’d planned on earning for the next six months.

“Okay, I’ve scheduled you for an appointment next week to bring your car in and do these tests,” he says. You look up in astonishment.

“You’re not doing them today?” you ask. He laughs, genuinely amused. “Oh, God, no,” he says. “Our testing facility is backlogged. But we’ll get you in there.”

“And how long after that ’till the test results come back?” you ask through numb lips. He shrugs. “I really couldn’t tell you,” he says. “Not even ballpark?” you ask. He shrugs again. “Probably three weeks,” he says, “if you’re lucky.”

“But I’m afraid my car is going to catch on fire or something, or just break, and I need it to go to work!”

He shrugs a third time. “If it’s really that serious, you can take it to the emergency mechanic.”

“Can they fix it?” You’re hoping he’s going to tell you something different from the receptionist did on the phone, but again, he just shrugs.

“Probably not. They’re not really trained to do diagnostics. They’ll probably just tear out all the wiring and hook it–“

“Straight to my battery, right.” He shrugs again. This guy is a master of shrugging. “That’s just the way it works,” he says.

He leads you out the door, to where your car is now sitting, forlorn, in the parking lot. You thank him — for what, you’re not entirely sure — and get in, turn the engine. It makes the funny noise and you want to turn to the mechanic’s assistant and shout Here! That’s the noise! Did you hear that?

But he’s long gone, and so you pull away, watching the lights of your dashboard instruments pulse rhythmically as you putter towards work.

An open letter to the Web/HTML job post area of Las Vegas Craigslist.

[I originally tried to actually post this to the “Web/HTML/info job listings” area of lasvegas.craigslist.org, but I had to fill out a thing and verify another thing, and screw it. So it’s here instead.]

I’m sorry, but I’ve been reading this area of Craigslist for years now and I feel like I ought to say something as a sort of public service.

Many of you who post jobs here repost them again and again, which suggests to me that you’re having difficulty filling these positions. If I may offer some suggestions?

1) You’re asking for fictional applicants. The chances of finding someone — anyone — who can do HTML, CSS, PHP, MySQL, Javascript, C++, Perl, Java, and Actionscript as well as advanced SEO and social strategy and also video production and copywriting is very, very slim. The chances of finding an applicant who does all of these things equally well or even at a competent level are nil. Absolutely nil. You don’t know that, because you’re simply firing off a list of qualifications you read somewhere. You’re trying to fill the work of several people with one person, and you’re also…well, that’s the second problem:

2) The pay many of you are offering is frankly embarrassing. First of all, paying programmers by the hour is absurd. You pay them a salary. That’s how the grownups do it. And offering someone with serious technical skills $9-12/hr to write code shows potential applicants that you’re either completely clueless about your market or you’re going to be an absolute horror to work for — the kind of boss who complains when a worker is back five minutes late from lunch.

Yes, we’re in a recession. But you’re still asking someone with complex technical skills to work for the same rate or less than a Starbucks barista. Actually, definitely less, because baristas get tips. Perhaps you’d attract more applicants if you offered to stick a $5 in their tip jar whenever they came up with a particularly efficient SQL sorting algorithm?

3) Many of you are extremely firm about not allowing workers to work from home or telecommute. Frankly: grow up. I’ve been a professional designer and developer for almost sixteen years and in those years, my experience has been that really good coders don’t work well in cubicles, in business casual attire, with you peering over their shoulders to micro-manage every moment of their time. Coding is a technical skill, but it’s also a creative endeavor. Not to mention design, of course. On the few occasions I’ve met with or worked with the sort of employers I’m talking to here, most of them had no idea what hardware/software was required to do even simple Photoshop-based development. They didn’t want to buy fonts. They didn’t want to purchase stock images — their command was invariably “Just go find something on Google”. They make it impossible to actually do the necessary work.

I am incredibly good at what I do. Better than the folks you’ve hired. But if you put me in a carpet-covered cubicle under bright florescent lights with some idiot next to me giggling over the funny cartoon of Obama getting cornholed by a Republic Party donkey and some sweaty middle-managing douchebag who peers over my desk every five minutes to see what I’m doing, I’m not going to work at the same level I do when I’m working at home, connected to my office via Skype or simple IM chat. It’s the Web, folks — I can update your site from a beach in Fiji if I need to.

If you pay your devs/designers a salary rather than an hourly wage, you won’t feel the need to make sure you’re getting your money’s worth by demanding they work in front of you. If they suck after their probationary period, fire ’em. Again, that’s how the grownups do it.

4) Many of you are frustrated by former employers/contractors and want to let us know about your problems. Perhaps it hasn’t occurred to you that the guy who promised to make you a Facebook-killer website for $500 might have been kind of a shady dimwit. Facebook cost millions of dollars to develop and thousands of human-hours. You are not going to make a viable competitor with Joomla in two weeks using the phat logo your sister’s kid did in Microsoft Paint.

Most serious developers or contractors don’t work for less than a few thousand dollars per project. I charge a minimum of $1000 for anything — setting up a WordPress site, whatever. It goes up from there. Do you want to know why? Because your four day project isn’t actually a four day project. It takes four days for you to meet with me, tell me what you want, ask me what you need (since you almost never actually know), and also tell me you don’t have a domain or hosting, and $10/month sounds a bit pricey to you. Finally you’ll register the domain and purchase hosting, and then somehow completely fail to understand me when I ask you for your hosting login and password, as they are a small requirement to doing absolutely anything with your website.

Then you’ll vanish for a week because you don’t have the content ready for your site. You didn’t actually even figure out what content needed to be on your site. You thought I could magic you up an elegant, competitively-featured website with my voodoo. Then it’s two weeks of you trying to get as much free work out of me as possible, requesting ludicrous changes and total reworking of major parts of the project.

And when it comes time to write that pathetic check for $500 or whatever infantile sum you’ve decided my time is worth — three or four weeks of my time, at this point — you’re always still putting your funds together, and it takes another week or two to get the check from you, which is inevitably drawn on the Bank of Addis Ababa or the Chimney Sweep’s Credit Union or whatever obscure tiny bank you’ve invariably chosen to do business with, so it takes another week to clear. At this point, I’ve done a project for you for roughly $5/hr.

I understand that small businesses often don’t have big money. Really, I do. But if $500-1000 is the most you can offer someone to build your web-based business for you, you might want to think about doing it yourself. If it’s not worth your time to save $500 to learn HTML, it’s not worth the time of the guy/girl who already knows how to do HTML, you follow?

5) Most of you don’t actually need a full-time web person. You just think you do. You need a contractor to do the initial setup work and then take a small monthly contract retainer or an occasional small fee to make modifications to your site’s structure or layout. The people you hired who didn’t show you how to update your own website content or give you your passwords? Yeah, those are scumbags. They’re the kind of people who, admittedly, give my industry a bad name. You can often tell them by their shifty eyes and absolute unwillingness to provide you with logins, source code, or their original project files for graphic design. They usually wear polo shirts to meetings. Don’t hire them. Hire somebody who will treat you and your project with professionalism and concern, assuming you treat them the same way.

6) Nobody serious is going to work for an employer whose post reads like the scribblings of a five year old. Your computer has a spelling and grammar check. Use it. Also, if you say “Don’t email me, just hit me up on my cell between 6pm and 9pm and ask for Ray-Jay”, you sound like a creepy freak. Nobody wants to work for a creepy freak, except Facebook employees, and Zuckerberg pays them about a hundred times what you’re offering to pay me. (If you don’t know who “Zuckerberg” is, you probably don’t need to be getting into the Internet business.)

Now, having said all of this….

It’s OK to not know how to get this stuff done. Websites are, despite what your sister’s kid tells you, are complex things. It takes years to understand how to make one, much less a really good one. That’s what people like me are here for. It’s even okay if you don’t have a lot of money. I’ll occasionally break my own low-limit cap and work for less than I feel I’m worth, if I like the person and feel like helping them. But when I see an ad saying something like “My last designer was a worthless scumbag and I want somebody who’ll just do what I tell them. NO TELECOMMUTING. Compensation: $300-500 depending on experience”, there’s no way I’m going to click that link. The guy who does — the guy who’s so desperate for work he’ll take on what is clearly going to be a hellish gig — is going to suck as bad as your last designer or worse.

Just keep this stuff in mind, please, when you’re posting here to find somebody to help make your Web project a reality. (I don’t even know why I’m wasting my time; this will surely get deleted immediately. But screw it, I had to say something.)

Stikki and Hauntology

[If you don’t know what Stikki.me is, now you know. 🙂]

Beta screenshot -- almost there!

Last night, I was trying to sell a very important investor on what Stikki is — namely, my wife Rosalie. (She’s not investing money, but I take up a serious amount of our shared living space and time working on Stikki, so in that sense she’s my first and most important angel.) So I was trying to explain it not in financial terms, but in human terms: at the end of the day, when you get past the business stuff, what is Stikki for?

The first augmented reality app.

I’m fascinated by the idea of augmented reality. Not just the specific technology referred to by that name, but the whole notion that physical reality can be augmented by abstract, arbitrary information. This is not a new idea; it may, in fact, be one of the very oldest ideas. The first king who looked at the landscape of his kingdom and saw imaginary lines marking the edges of it was the first reality augmenter; this concept is the underlying basis of all human politics, economics, and war, and every part of our culture that descend from them, including the very concept of ownership — imbuing inanimate objects and places with metadata that exists only in the collective spiritus mundi. All this newfangled frippery of cell phones with GPS and accelerometers is just the latest wrinkle on the very oldest thinking.

This extends not just to the big sweeping Spenglerian world of nation-states, but to the very personal. Most humans have a concept of “home”, a place where, as Robert Frost once put it, when you get there, they have to take you in. As we navigate our way through the streets of our cities, we are constantly aware of a collectively-derived set of metadata about the places we move through. This is a “good” block, this is a “bad” one; this is a “hip” neighborhood, this one not so much. And we also move through our own personal cloud of data. This is where I saw my first concert; I used to work in that building; that’s the hospital where our child was born and where my grandfather died; this is the place I first kissed him; this is the place where she finally said goodbye.

This is true of every place that humans live, even the most sterile, benighted suburban mall parking lot and the most wretched Third World street corner. We each experience the human landscape in different ways. This may just be a stupid Applebee’s to you, but for somebody else, it’s the place they met their spouse or the place where they came out to their parents. That may look like a dingy old music store surrounded by bodegas to you, but to a hundred amateur pianists and two professional ones, it’s the place where they honed their craft after school on endless etudes with the smell of sawdust and epoxy in the air.

Situationism founder Guy Debord defined “psychogeography” as “the study of the precise laws and specific effects of the geographical environment, consciously organized or not, on the emotions and behavior of individuals”. But the abyss cannot gaze into you without you also gazing into the abyss, and probably taking pictures of it and posting them on Flickr and Facebook. Your emotions and behavior effect the environment too. The passing of one human through a place may not physically change it much, but that passing leaves another mental layer of experience on that place. The entire world is covered a mile thick with molecule-thin notional layers of human memory, and what I want to do with Stikki is make a tool that lets us write it down and store it and share it; that lets me tell you my narrative about this place where, at one time or another, we’ve both found ourselves.

One of the things I’ve thought about, once Stikki is established, is to build plugins or applications for it that will retrieve Wikipedia articles for any given location and display them when you use Stikki there, and maybe an annotation of famous pictures or paintings of that place. And I’d love to see this not just be a straightforward, sober, archival tool, but something artistic: a hauntological remix of all the ghosts of human culture that has been in that place, an aching remembrance of things past, the big and the small, the powerful and the personal.

Does that sound vastly ambitious? Of course. But a nerd’s reach must exceed his grasp, or what’s a Heaven for? And it’s not like I’m known for having modest goals.

I also want to make a living off of the site, of course. That’s why it has ads, and it’s why I’m working on figuring out revenue streams that bring something interesting for users to the table. But I mainly want to make something really cool. I’m hoping you think so, and that you use it when the updated version goes into public beta (which I’m hoping will be this week or next; I’m so close right now, just closing up holes and dotting is and crossing ts).

Thought Of The Day

Contraception is sometimes attacked as ‘unnatural’. So it is, very unnatural. The trouble is, so is the welfare state. I think that most of us believe the welfare state is highly desirable. But you cannot have an unnatural welfare state, unless you also have unnatural birth-control, otherwise the end result will be misery even greater than that which obtains in nature. The welfare state is perhaps the greatest altruistic system the animal kingdom has ever known. But any altruistic system is inherently unstable, because it is open to abuse by selfish individuals, ready to exploit it. Individual humans who have more children than they are capable of rearing are probably too ignorant in most cases to be accused of conscious malevolent exploitation. Powerful institutions and leaders who deliberately encourage them to do so seem to me less free from suspicion.

–Richard Dawkins, The Selfish Gene

Why cloud storage for music is really an opportunity for labels

As anybody who knows me knows, I am profoundly ambiguous about the effects of the network on the music industry — particularly the independent bits of it, such as artists (like myself) who fund, produce and distribute their own music without the benefit of big labels.

However, I am completely unambiguous about the recent explosion of cloud-based music services such as Google Music, Apple’s iCloud and Amazon’s Cloud Drive…unlike Chicago-based indie label Numero Group, who have decided to opt out of Apple’s iTunes Match program, which allows users to pay a small fee to “match” the music on their own drives to existing files on Apple’s servers, saving them the time and hassle of uploading those files, which could easily be measured in the tens of gigabytes or more.

Numero says:

In the coming weeks, many customers and friends will ask us this question: why am I not able to automatically access Numero in my iCloud? The simple reason is that Apple and their major label “partners” have created a reward system that is both incomprehensible in scope and totally out of sync with iCloud’s streaming peers’ (Rdio, Spotify, et al) financial mechanics. As we have been entrusted with an incredible wealth of creative assets, and our primary responsibility is to our partners; the artists, producers, and songwriters that make up the Numero catalog, we feel that Apple’s pittance is an insult not only to them, but every other musician, living or dead, and, if the latter is the case, their heirs.

 

While Numero has every right to refuse Apple’s program, I think the problem here isn’t simply a label opting out of a service: it’s a fundamental misunderstanding within the music industry of what cloud storage is and how it works.

Cloud storage is just that: storage. None of the music cloud storage providers allow people to obtain music illegally, so far as I can tell: they simply allow users to store their own music collection, some or all of which may be of dubious provenance. But that provenance isn’t the provider’s responsibility, any more than a U-Stor-It place is responsible for making sure that every item a customer stores in their 8×10 storage unit was legally bought and paid for. All of the providers seem to be taking some steps to ensure that undeniably illegal items (such as leaked, unreleased albums) will be blocked from being uploaded, the same way a U-Stor-It would presumably refuse to allow someone to pull up with a van full of bricks of heroin and dump them in their unit. But if a user happened to have, say, a half-pound of China White at the bottom of a trunk they leave in storage, the onus of discovery isn’t on the storage rental business, any more than it’s on Google Music if somebody happened to have an “illegally” obtained copy of my record.

Nor do I believe these providers owe labels and artists money, any more than hard drive providers do, and I think the only reason labels are going after them is because they’re much larger targets than the group that labels consider the real enemy: people who don’t pay for music. (It has also become deeply unpolitic for a record label to treat the people who pirate their music as freeloading thoughtless assholes, whether or not they actually are.)

What labels and artists ought to be doing is working with the cloud providers, because the providers now have a very valuable piece of data: they know what people like, and their sample data is way more comprehensive than that of music discovery tools like Last.fm and Pandora, because they can see each user’s entire music collection and how they’ve interacted with it, not just what they happen to listen to at work or on their mobile device or what have you.

For example: I’m a Tom Waits fan, so I have a Tom Waits channel on Pandora. Pandora, in return, gives me links to buy Tom Waits records. But each of these ads is a waste of time. Why? Because I already own every Tom Waits record. I’m not going to buy them.

Pandora doesn’t know that, because Pandora only sees what I like, not what I already have. But Google Music does. Google Music knows I like Tom Waits, but it can also tell that I have all his records. It also knows that I have several Elvis Costello records, but not all of them. So it shows me an ad not for Waits’s Rain Dogs, but for Costello’s Blood & Chocolate…something it knows I probably want but don’t actually have. And I’m far more likely to buy that.

More to the point, for indie labels, it can “weigh” my collection and offer me discovery of new/indie music based on an extremely detailed statistical modeling algorithm. For example, I have the Kenny Loggins track “Playing With The Boys” in my music collection, but it’s there mainly to torment people when I DJ at parties. Since I have no other Kenny Loggins tracks (I swear to God), and the play count is fairly low, it’s probably not worth including in a model of my likes and dislikes. But I have four or five Eleni Mandell records; even if I don’t listen to them that often these days, that still suggests that I like Eleni Mandell enough to have several records, and that I would probably like Jessica Lea Mayfield. But I already have both of Ms. Mayfield’s records…so it goes into discovery mode and shows me Lera Lynn instead.

And boom! I’ve just bought Lera Lynn’s record, because it’s right there in front of me, for a reasonable price, and as soon as I buy it it’s in my cloud collection. The barrier to commerce has been lowered so far that it’s probably easier for me to buy it than to steal it.

This actually has more benefit for indie labels than it does for big labels, because a lot of indie music still lies at the edge of the popularity curve: it’s not popular enough to be easily pirated, but by the same token it’s also not popular enough to be easily discoverable. If you want the new Lady Gaga record, you can buy it instantly from iTunes or download it in two seconds from The Pirate Bay, either way…but it’s easier to buy Lera Lynn’s record than to try and find a torrent or even a Rapidshare download for it. (I know, I bought it.) Marrying marketing to the cloud means ads are getting to people who actually want to see them (the most valuable demographic of all no matter what you’re selling) and who are willing to act on them, because they actually represent the path of least resistance.

I hope the indie labels see this opportunity soon rather than railing at the cloud music service providers, which is a wasted and frankly unfair effort on their part, and focus on how this can actually help them — because what helps them helps us, the music-loving audience, by giving us an easy way to find and buy new and great stuff.

 

An open letter to my mobile phone provider

Dear SimpleMobile Customer Service person,

Hi there!

As one of your customers, I have to ask: why can’t I pay my bill online with my Mac or my iPad? (Even though your site says Firefox ought to work, it doesn’t, at least on a Mac.)

Assuming your bill pay system isn’t made of magic, but a standard HTML form submitted over SSH, there cannot possibly be any good reason to lock out anybody who’s not using these two browsers on Windows. If your system is using something like ActiveX that won’t work on a non-Windows system, then your web development team are either a pack of raving idiots or actual time travelers from 1999 and you should fire them and hire me to build you something that actually works, and also explain to them as you hand them their final checks that there is no Web technology that works solely on IE and Firefox. If it works in Firefox, it works in Chrome, Safari, Mobile Safari, etc. Lots of crappy tech only works on IE, but most web developers avoid these technologies once they’ve progressed past, say, middle school.

In fact, the only technology that won’t work on Mobile Safari is Flash…and if your bill pay system uses Flash, you need to call security and have your web team escorted off the premises after being checked for weapons, because anyone who would do such a thing is clearly dangerously insane.

Whatever the convoluted and inevitably wrong explanation for this situation might be, the fact is that it’s pointless and irritating. I am not going to buy a PC and inflict the horrors of Windows on myself simply to pay my mobile phone bill. Instead, I have to actually go to the store and pay my bill…which sucks when the bill is due on a weekend and the store is closed. (You may ask: if you know your bill is due on a weekend, why not just pay on the preceding Friday? The answer is: I’m an American. Paying a bill even a day before it’s due is an act of wretched cowardice, fit only for Communists and probably French people.)

I suppose there might be some value to irritating one’s customers in this way, but I can’t imagine what it might be. I’m not an MBA or anything, but I’m fairly sure that needlessly antagonizing customers is usually considered a bad strategy. (Then again, you are a mobile phone company, and mobile phone companies give out big shiny awards for Maximum Customer Annoyance to each other at industry conferences.)

I also can’t imagine I’m the only customer with this problem. I suspect that I’m not the only customer who has contacted you about this. Let me assure you that when your customer service person goes down to the nerd dungeon and asks Bob the Web geek about it, and Bob hems and haws and says “Yeah, I can’t really change it, it’s based on the architecture of the server, it’s all J2EE” and then continues babbling geekspeak at you for ten minutes, well…Bob is lying. Trust me. I’ve been building websites since Bob was still trying to make his MySpace page look like The Matrix. I know this to be true, because if Bob knew as much as I did, he wouldn’t have thrown up this unnecessary and entirely annoying barrier to commerce.

So: please fix this problem. Let me pay my bill with cool computers. Also consider firing the fool who caused it and paying my extremely reasonable rates to have me fix it.

(I’m also posting this to my blog, in hopes that the prospect of being embarrassed in front of the seven people and also my mom who read it might drive you towards resolution.)

Cheers, Joshua Ellis

I need help with an algorithm

So I’m finally building out Stikki.me’s advertising system, and I’ve realized I might need some help with a geometric sorting algorithm.

Stikki’s advertising is geographically-based; an advertiser “sponsors” a location — most likely the real-world location of their business — with an ad, and users see that ad if they’re within a given radius of the location. The sponsor selects the radius, and pricing for the ad is based upon that radius. (The value of this sort of advertising, by the way, is that the advertiser knows that the user is within reasonable physical proximity of their business, and is therefore capable of patronizing it.)

So here’s what I have to do; when a Stikki user visits Stikki, their geolocation is passed (but not stored) to an AJAX script which returns the correct ads for that location, and that’s where my knowledge of geometric algorithms breaks down. I don’t know what the most elegant way to determine this is.

I’m currently using a two-pass approximate sorting scheme that looks something like this:

  • retrieve subset of all ads where ad’s latitude/longitude is within 5 kilometers of the user’s current position (5km being a wide enough radius to contain all possible current ads),
  • within this subset, calculate minimum and maximum lat/long for each ad based on ad’s lat/long +/- ad’s radius and see if user’s lat/long is within it. If so, return ad.

But I don’t know if this is the most efficient way to calculate this, especially if/when I begin to get larger numbers of ads — more than 1000, say.

This same geometric algorithm is used to determine if a user is in proximity to one of their “alert” stikkis as well.

Anybody have any practical suggestions/advice for this? I could spend the next few weeks learning about collision detection/sorting algorithms, but I’d rather get pointed in the right direction by somebody more versed in geometric algebra than I am.