Pandora’s Beat Box

Pandora drives another nail into the coffin of the traditional (can we now say legacy) music industry. Instead of a broadcast model, you create “stations” by choosing one or more seed songs. Then Pandora finds similar songs based on a complex categorization system [The Music Genome Project].

I never really listened to regular radio for lots of reasons: Advertising, blathering DJs, no “skip” button to bypass the 90% crappy programming. I’d listen to NPR in the car sometimes, but thankfully they podcast everything now. My brief flirtation with iPod radio transmitters is also thankfully moot with MusicLink and the aux port in the Civic. Yes, I use two iPods in my car at once. That’s another story though.

Internet radio has some strong benefits over regular broadcast: Tailored content, less talking, no advertising, full remote control functions, being able to see previously played songs for follow-up. We’ll see if it survives the changes to the royalties fee structure though. Thing is, I’d still skip lots of songs. The categories are still too broad, assuming I even know what they mean. Anybody have a good taxonomy that explains house, tribal, and all those other exotic species? Problem solved with Pandora.

Pandora’s genius is the correct man-machine division of labor. Experts (humans) classify songs across hundreds of dimensions, genes in their speak. They do what humans do best, recognize complex patterns and subtle traits in analog. Then machines do what they do best: Suggest music by crunching those hundreds of genes across millions of songs to find similarities that a listener might not even perceive. Human experts classify individual songs and machines crunch the entire database. Perfect.

After seeding the station, Pandora gathers listener feedback (thumbs up/down on suggestions) to fine-tune each station; I skip fewer and fewer songs. The adaptive icing on the cake. This is all great for me, but what’s the business incentive here?

This is what radio-industry-asaurus doesn’t get: I find new music that I like, stuff I’d absolutely never even look at otherwise, and buy it. My Touch goes places where internet access is limited or non-existent. Will that change if/when ubiquitous internet access becomes available? Perhaps, but I wouldn’t hold my breath for iPods and paperback books to become obsolete anytime soon.

Like most iTunes users, my purchases dropped off after an initial feeding frenzy. I hunted down all those albums from the vinyl/tape days that I couldn’t find on disc and the singles from otherwise worthless albums. Pandora does what you’d expect from a smart Web 2.0 application: It lets you click on songs and buy them directly from Amazon (a little clunky) or iTunes (smooth as expected). You can also bookmark the song or the artist for later consideration. Pandora makes my life easier with useful personalization and helps pay the bills with some web services smarts.

I came across another music site, iLike, on Facebook. Comparing music with friends doesn’t lead to new music purchases though. Reading a Facebook page or the “What’s New” iTunes emails doesn’t entice me to buy. Actually hearing music does. I’ll keep using iLike because it provides concert and album release announcements for artists I’ve bookmarked, something Pandora doesn’t do.

Now I will admit to something embarrassing. My Sweet Dreams (Are Made of This) station suggested a Britney Spears song, Heaven on Earth. And I really like it. And I bought it. I would never have bought anything like this without Pandora. Oh joy, another reason to avoid letting friends scroll through my Touch’s music library.

Unlike Pandora’s Lunchbox (love the name, the food not so much), this Pandora lives up to its mythic namesake. Try it and let me know what you think.

No Joy in Geekville Tonight

Three things vex me tonight:

The WordPress visual editor still doesn’t work right in Safari. I reported the bug over a month ago; somebody just posted a hack-around. Maybe the applet isn’t theirs. I suppose I should track down the actual owner and follow up there. Bleh once.

Bluehost doesn’t support MediaWiki, neither directly nor through Fantastico. The two wikis they do offer just don’t compare. I should bite the bullet, manually install and maintain MediaWiki. WordPress upgrades with Fantastico have been so effortless; I’m feeling a little too spoiled to do that right now. Bleh twice.

I haven’t found a suitable plug-in for versioning WordPress posts yet. The two I found didn’t look encouraging. I know from my day job just how dangerous versioning done wrong can be, so this isn’t something I’d try on my live sites. My options (clone and test, roll my own plug-in, hack up a publish-to-Wordpress from something like subversion or alfresco) all sound like work as well as potentially wonderful learning experiences. More time hacking, less time blogging. Bleh thrice.

So in keeping with my goal of blogging more, I decided to complain about all three rather than actually do anything about them. Maybe some kind reader will motivate me with an inspiring comment or silver-platter me with effortless solutions. Maybe. “Kindness of strangers” and all that.

For now, productively unproductive. I sense perl mongers drinking beer nearby…

I Should Know Better

Apparently I need a document management system for blogging. Oh the irony.

The day was off to a great start with breakfast occurring entirely in the AM. Scoble’s post on why enterprise software isn’t sexy caught my eye between order and omelet. Documentum, hot or not? Hmmm. After coffee in the Square (replete with fat and saucy squirrels) I headed home with an outline in my head. The first draft was done five hours after walking in the door. It felt like five minutes. Easy enough, right?

Yeah, right. I knew I was in trouble when I didn’t make it through the first proofread before heading back to the WYSIWYG editor to move paragraphs around. And change paragraphs. And delete paragraphs. And rewrite paragraphs. The changes cascaded until the whole idea imploded, leaving me feeling drained and empty-handed after seven hours of work. I don’t have a great track record of finishing a draft after an implosion like this regardless of how much serviceable material remains.

Editing a long post feels like bending a wire hanger: Each time makes it more brittle and deformed until it finally snaps–verbal metal fatigue. (I love a good physics analogy.) Right about now I’d be pulling up a version history if this were a design document or a piece of code. Maybe it’s time to treat blogging like “real work” and look for a WordPress/subversion plug-in. At least I’ll learn more about subversion and perhaps even recover my also-failed draft about the WordPress plug-in architecture. Ugh.

I don’t have this problem coding, but that’s more like forging a sword than bending a hanger. A tight code/compile/test loop proofs each change against the whole of the code and works out any code fatigue before the whole thing falls apart. That digital temper/hammer/quench keeps the right balance of hard and ductile to move forward at each stage.

It probably also helps that a machine doesn’t tolerate nonsense like a big text box or a human reader will. Hmmm. Maybe my next post will be entirely perl poetry.

My BlackBerry Knows Where I Am

I’m in NYC to see people and catch Suzanne Vega later tonight. And my BlackBerry knows it thanks to “My Location” on Google Maps.

No big deal in a GPS world, right? I don’t have GPS though. Google’s doing some kind of rough triangulation based on cell phone towers which so far has been much more accurate than the 1.7 km disclaimer. Urbanites faring better is no surprise given the density of towers here and in Philly. Not sure what extras Google has in store, but it’s free and it’s geeky-cool and gives me Google Maps (and traffic and search) with less Suretyping–and that’s a Good Thing.

I looked at GPS units for road trips during my time between but they’re still bulky and/or expensive. Will “My Location” be enough? The price sure is right. Especially since I still haven’t taken one road trip into unknown territory in my two months off.

Android starting to make more sense to you last few Luddites out there? Google gets phones. They are making me get phones, and I HATE phones. More precisely, I get all my Google stuff on my phone, my Touch, my boxes, and even at kiosks with a well-scaled experience.

My iPhoned friends should particularly rejoice given the obvious synergy between this feature and their interface. First time since my Touch shacked up with my BlackBerry that it’s been jealous of its older brother.

From the Blackberry Pearl of John Kominetz

More Vista Hating from the Trenches

Microsoft has finally inspired Apple-like passion in their customers. Too bad they’re passionately hating rather than loving it. Of course Apple couldn’t resist kicking Microsoft while it’s down in their latest ad [Podium]. I hope Gates and Ballmer have cardiologists on call.

Anecdotes from friends have been uniformly bad. My friend T is not in the industry, but he knows more than the average computer user. Here’s what he wrote after encountering Vista on his parents’ computer:

P.S. Not sure if you’ve experienced it yet, but Windows Vista SUCKS!!! It takes about 2 more clicks through menus to do just about everything! Why did they have to f*ck with XP????

Vista hasn’t touched a single machine in my home and probably never will. Pundits are calling for Microsoft to drop Vista completely, go gangbusters on Windows 7, and do a few extra-special XP service packs in the meantime. That doesn’t seem like crazy talk given the vitriol that’s still building against this product almost a year after launch.

I suppose I’ll have to use Vista at a client eventually, but I bet it won’t be my next one–or even the one after that! Granted most of my clients have huge installations and some laggards are just rolling out XP to the frontiers. However, there seems to be enough Vista hating in the press that the herd animal mentality will kick in and have companies fleeing Vista en masse.

Goose That Laid the Golden EggsWith this talk of Microsoft going into the ad business to chase Google’s golden-egg-laying goose now that they’ve killed their own, I’m really beginning to question Microsoft’s competence instead of just their motives. What have they done in the last ten months to address either the technical or perception problems with Vista? Not much. It’s certainly making room for innovation to return to the operating system market with the likes of Apple, Google, and Ubuntu eager to cook Microsoft’s goose even more. What really makes me smile is how open source UNIX is the foundation of this revolution.

The Elephant and the Blind Men

Thanks V for emailing me another link to an off-the-mark Documentum blog at 01:30 and keeping me up all night.

“Blind monks examining an elephant” by Itcho Hanabusa. Blogs about Documentum are popping up all over the place. Some suffer from a myopia based on limited experience with a complex product. Virtual documents are not categorically evil. Documentum back-ending SAP isn’t a good example of anything other than marketing-driven hackery. A Java programmer can’t “learn Documentum” in 21 days.

Documentum is big, really big, Carl Sagan billions-and-billions big. There are several dozen different software components on top of a hybrid object database and content storage system. That object database comes with an incredibly rich schema that has evolved over many years. It carries plenty of junk DNA. Early versions included minimal clients; customization was essential for even basic functionality. In fact Webtop, the client du jour, was a reference implementation that borrowed some very corrupt interaction design DNA from its predecessor, Rightsite. Documentum is getting old and can’t reinvent itself at the core because of all those bloated docbases holding the company jewels.

One point bears repeating. The Documentum server is a much more complex information system than a database server like Oracle because it’s not tabula rasa out of the box. It comes with a vast collection of object types and tables that relate in obscure ways on top of its database server capabilities. Its genome bears the DNA of plenty of evolutionary dead ends like the unix-based security system and the original compound document–a version 1 precursor to the virtual document, not a virtual document mimicking another structure like XML or OLE linking.

The very idea of finding content on the internet about Documentum is still hard for me to comprehend. In its first decade, the company jealously guarded information about its product and actively discouraged third parties from writing books. Now V sometimes tortures me by sending links to the worst posts. Maybe the silver lining in Documentum’s third party blackout was me getting to bed earlier. But I digress.

I have the same problem talking to new developers all the time. They describe Documentum in the language of their technological comfort zone: A database guy will talk to me about tables and queries. A web guy will talk to me about application servers and the web content management lifecycle. A java programmer speaks in DFC with little understanding of what lies beneath.

It doesn’t help when their words have one meaning in their comfort zone and another in Documentum. That even happens across Documentum versions or components. It got so bad that Documentum started including a glossary in the documentation that maps one version’s po-TAY-toe to another’s po-TAT-oh. Honestly, I’m at the point where I pick the name I like and stick with it especially when a real stinker is in vogue like DocPage Server. Bleh!

It’s the Documentum retelling of the Story of the Blind Men and an Elephant. People with a few years of experience use a few tools, not the entire toolbox, to solve a few very particular problems. What makes this worse is clients aren’t trying to solve interesting or novel problems anymore. One reason is the product’s popular enough that clients have preconceived notions about what Documentum can do. Another is EMC (and Documentum before it) trying to open up new markets. Anybody else remember the fiasco when Documentum decided it was a web content management system and snubbed pharma and aerospace? Not good for anybody.

Contractors fare a little better than full-time employees because they see more projects and get faster access to new versions by hopping to new clients who are Documentum first-timers. Even contractors can get bogged down though, getting typecast by technology or industry and only working those kinds of projects or clients. Maybe the nature of the business works against knowing the entire product unless you make it a priority.

It’s also possible that the whole thing is just too big to grok. I certainly don’t know the entire suite of the top two versions in spite of concentrating on Documentum for 14 years now. So how’s a reputable developer or blogger supposed to see the entire elephant? Step back and look at the whole before focusing on any one component.

Ok, I’m biased. I’m a server programmer turned architect so my approach will probably drive java purists crazy. They might argue that if the DFC is a complete abstraction of the system, it would provide a conceptually integral view of structure and behavior while concealing the hackery and junk DNA at the lowest levels. Studying the guts would be more confusing and likely to lead newbies down dead ends.

The problem is that the DFC (at least up to 5.3) doesn’t completely cover the system and is still poorly documented–especially given how long it’s been in use. I still keep the Object and API Reference Guides close at hand when doing DFC for when the javadoc map is blank and the code does something unexpected–and it always does. Our web-enabled cut-and-paste programming culture probably isn’t helping. And yes, I do it too. Damned internet!

Although I’m warming to Java (after more than half a decade), I still think it’s a cumbersome language that can bury unskilled programmers in a mess of abstraction and layering. A first year computer science undergrad should still start with C. Any other science starts with the fundamentals and builds upon them. C is a terse language that sits closer to the hardware; it makes for a difficult but instructive experience by getting closer to how the computer actually works. It’s high-level enough to escape the disconnect from reality that comes from doing assembler–similar to how quantum physics makes no instinctive sense to monkeys evolved in a macroscopic context. It’s also good to know a little about the byte shuffling underneath for when things go wrong. Introduce Java after C and let the student’s understanding evolve just as the languages did, one from the other. But I digress again.

So here’s how I recommend getting to know Documentum better:

  • Study the Architecture Overview document until you can draw the system architecture from memory. It will help you intuit where something happens, especially when something goes wrong.
  • Read Server Fundamentals at least one time all the way through and skim the Administrator’s Guide. The server is the foundation upon which everything is built; these documents provide an overview of the system’s base structure and behavior.
  • Keep the Object and API Reference Guides handy. When something unexpected happens, look at the model to get a feel of what objects are involved. The API guide can provide some history and particulars hidden or ignored by the DFC or the javadocs. Oh, and print out that giant E-R diagram if you have a plotter.
  • Get comfortable with IDQL and IAPI (or one of those swiss army knife tools although it feels like cheating to an old timer like me) so you can examine the underlying state while manipulating it at higher levels (DFC, Webtop, etc.)
  • Run IDQL, IAPI, and scripts on the docbase server’s host to cut out any caching annoyances and docbroker switcheroos. Unix geeks, feel free to tail logs too.