Songs from the 2000s

While I got started with my first MP3s in the early/mid 90s and started expanding my tastes during college, it wasn’t until my post-rave days in the early 2000’s that I would self qualify as truly “music obsessive”.

Part of that change probably had to do with exposure from the tastes new coworkers and friends after I graduated. And, while I have fond memories of Amoeba and KCRW, a lot of it probably also had to do with my music collection finally crossing the virtual/physical threshold and fully embracing MP3s as my “record collection.” Shortly after, I went all in on the cloud, storing all my music on my server.

While I hadn’t gone to many concerts growing up, in my post-college life I more than made up for it. I became a regular at the Derby, Spaceland, the Troubadour, the Henry Fonda, the El Rey, heck, even the Glass House out in Pomona (and anywhere else playing music). Multiple shows a week were not uncommon, sometimes with friends, but more often than not by myself – heading in early and catching all the opening acts just in case they were any good (not often, but the ocassional payoffs seemed to make it worthwhile). After Upcoming got rolling, my show-going time dropped significantly (something something irony about seeing all the events but being too busy), and after moving up to the Bay area (and starting to travel frequently) this trend has worsened (only slightly offset by an increase in festival going, and by finally succumbing to SXSW Music: The Best Thing Ever).

Still, my music consumption has continued unabated. It continues to fascinate how much my musical tastes/experience has been shaped/facilitated by changes in the new media landscape (where attention, not distribution is the limiting factor). And while it’s been enormously interesting/satisfying watching the future of music coming (Topspin, Spotify, etc.) in an abstract way, it’s also been great looking at how it’s impacted own personal musical journey.

All of this ramble is to give a bit of preface and context for what I’ve put together. A couple weeks ago, I got it in my mind to try to make my own “decade” list – not something authoritative, just something to map my musical (and of course in turn, my actual) decade. Rather than a short list of albums, I’d pick out songs. This was at first rather discouraging, but with some encouragement, I redoubled my efforts and over the past few days I’ve plowed through my collection and culled almost 1200 tracks (and over 500 artists) from this decade. I then wrote some code to process those lists and dynamically generate a playlist that I’m calling “Songs from the 2000s.”

Each time the player is loaded, 40 songs, 4 from each decade are randomly picked (in year order, of course) from the aforementioned set of songs. An artist will only be called once. Rather than try (or rather, pretending) to be comprehensive, what I’m hoping give is a taste of my musical journey.

Here’s to the next decade.

Late Night Update

This past year hasn’t been quite the return to form I’d hoped to have for my blogging. Still, there’s nothing like a near-data loss experience (well, I had good backups, but a drive on my server had gotten royally screwed – I have some Evernote scratchings, but I’ll spare people the details of fighting apt-get/dpkg when your libc6 version breaks perl and then eventually, your entire system) to get one a bit nostalgic, and kicking the tires again. Being laid up in bed with a nasty cold all weekend and staring at a mile-long TODO list probably doesn’t hurt either.

In any case, after I get some stuff done before Christmas, I’ll probably be spending some of the last days of the decade thinking doing some reflection (also, while I first started migrating .plan updates to the web in ’97, and the direct predecessor to my current blog in ’99, my 10-year blogging on rf.net is actually coming up in a few months

(Amazingly, it wasn’t until earlier this year when my old USC links (and email account!) finally got broken. 10 years ain’t a bad run.)

Paul Graham Nails It

I’m not always in agreement with Paul Graham, but he’s absolutely spot on with his essay on how broken the Apple App Store is and how it’s disastrous.

So I bought it, but I bought it, for the first time, with misgivings. I felt the way I’d feel buying something made in a country with a bad human rights record. That was new. In the past when I bought things from Apple it was an unalloyed pleasure. Oh boy! They make such great stuff. This time it felt like a Faustian bargain. They make such great stuff, but they’re such assholes. Do I really want to support this company?

This essay is just chock full of good stuff and worth a full read.

How would Apple like it if when they discovered a serious bug in OS X, instead of releasing a software update immediately, they had to submit their code to an intermediary who sat on it for a month and then rejected it because it contained an icon they didn’t like?

By breaking software development, Apple gets the opposite of what they intended: the version of an app currently available in the App Store tends to be an old and buggy one.

If your company seems evil, the best programmers won’t work for you. … But the real problem for Microsoft wasn’t the embarrassment of the people they hired. It was the people they never got. And you know who got them? Google and Apple. If Microsoft was the Empire, they were the Rebel Alliance. And it’s largely because they got more of the best people that Google and Apple are doing so much better than Microsoft today.

Frickin’ Lasers! (and Pico Projectors)

Until this weekend, my interest wasn’t very piqued by the whole pico projector trend. They’ve been pretty low-res, low-light, and limited battery-life affairs. Even as a super-heavy traveller, I’ve rarely felt the need to project from my phone or even my laptop w/ a pocketable projector. The space has been heating up recently (720P? >10 Lumens? 2-4hr battery life?), but what really caught my attention was seeing that Microvision was finally releasing a real product using their laser-based projection technology.

Although I’ve never bought a product from Microvision, I feel like I have a bit of a history with them: one where they’ve constantly disappointed by having incredibly cool technology that never made its way into my grubby little hands. Back in the early 2000’s I went through a huge AR nerd period. At the time, with academia failing to pull through with gear, I started looking at what was commercially available, and found the Microvision Nomad – a $4-6K system that had a red laser pointed at your eyeball running Windows CE (breathtaking I know – I decided to wait for the next generation). Unfortunately, after hitting some financial difficulties, Microvision all but abandoned their AR displays, and no one else (Olympus, Brother, Sony, or Microvision themselves) has released any commercial AR overlay displays since (there appears to be a booming military market for these, however)…

Which leads us to Microvision’s recent focus on pico projectors. While this may have been the right financial decision to make, it was always for me, a pretty boring path, both in comparison to the AR products and also when considering the limitations of the projectors themselves. The Microvision SHOW WX at version glance doesn’t seem to be all that great – it’s only 10 lumens, battery life of 1.5-2 hours, and a WVGA resolution. (Oh, and it’s about 50% overpriced compared to its competition.)

That being said, one thing did catch my eye. Because of their projector is laser-based, it has infinite focus. That is exactly what you think it is – multi-planar (and non-planar) projection is automatically focused, no mathematical tricks required.

Which isn’t to say that there isn’t awesome math that can’t still be applied. Check out these vids on using structured light and pixel shaders to do some astounding color and geometric correction on arbitrary surfaces:

Of course, there’s even more fun stuff that can be done, with structured light (such an awesome term) like Johnny Lee’s work on projector based tracking:

In the same way that AR on simple magnetometer/accelerometer equipped cell phones (no IMUs or HUDs ma!) proved to have surprisingly useful (well, at least interesting) applications, so will, I suspect, these pico-projectors. Assuming there are some fast GPUs w/ flexible shader pipelines available in portable form… – well, even without that, there should be lots of interesting visual applications…

App Store Discoverability

While I have some angst about what the app store model means in terms of platform control and openness, it’s clear that Apple’s App Store implementation was a quantum leap improvement in terms of user experience, allowing end-users to finally easily install useful apps on their fancy “smart” phone. Solving that “install” problem has resulted a panoply of apps, which has in turn spawned the new (well, the standard infoglut/attention-scarcity) problem of “discoverability.” This problem is particularly acute for finding the good stuff from the crap (quality), or finding the thing that will make your life better that you didn’t even know existed (serendipity).

This is a problem that affects Apple more-so than it’s competition at the moment primarily because of it’s scale (almost a magnitude greater # of apps than Android’s Market), but one that any successful app store will need to address. I believe that it does affect Apple a bit more because of the lack of a trial or easy refund path, which basically makes the cost of trying out an unknown paid app, well, the cost of the app. Android’s Market, in contrast, has a trial period, which somewhat lowers the bar there (although that’s offset by the insane lack of “Update All” functionality and cumbersome uninstall procedure). In terms of browsing, however, both the Android Market and Palm App Catalog basically otherwise ape Apple’s browse functionality: lists of apps with filtering by category and ordering by recency and global popularity.

This is somewhat surprising to me because it seems that there are tons of pretty trivial ways to make apps more discoverable. This week saw the launch of First & 20 – which is on the right track – but this type of functionality should really be built into the marketplace, and should allow you to see the most popular apps that your friends are using (no offense, but I kinda don’t give a shit about what Dan Lyons has on his home screen). This of course, could be built as a third party app – just recently, I was discussing something similar with a friend about automatically slicing and parsing Home Screen screenshots to programmatically determine popularity (err, someone with some spare time go do that, OK)?

Now granted, social has never been something that Apple has been any good at (or even understood, really), but hey Palm, isn’t Facebook sync BUILT INTO YOUR PHONE ALREADY? (yes yes, having a working store and err, enough apps for discoverability to be a problem probably takes priority). (Note: even if you don’t have a social network, you could do something clever w/ opt-ins based on analysis of your active address book or something like that – it doesn’t have to be invasive, just a one time click to opt into the system either as an individual or even as an anonymous/aggregate fashion.)

The attention network aspect is just one potential solution (albeit, the one that to my mind gives the most bang for the buck). Along the social lines, there are two other paths to explore – the activity stream – having a view to see what your friends have just installed, starred, reviewed, etc. and on the other end, aggregate stats of usage – you’d probably get a pretty good ideas of which apps were worthwhile if you could see what apps were most used during the day (either in opens or in minutes). This could also be applied to other aggregates, like the global population, or to clusters (recommendations: people who used the apps you use also use these apps).

The last low hanging fruit (off the top of my head – I’m sure there’s more but I’m headed to bed now) is in how badly reviews and ratings are collected. Apple beats the competition here by both allowing the easiest removal of apps (by comparison, app removal is pretty painful in both Android and WebOS) which has a rating (but no review) roadblock. While better than nothing, the uninstall review roadblock is still fatally flawed. Because the ratings are only collected on uninstall, and reviews multiple clicks away (also after a search step, since there’s no list of installed apps), you inevitably end up with both skewed ratings (of primarily the people who by definition didn’t like it enough to leave it installed) and skewed reviews (those that loved or hated it enough to go through the huge pain of writing a review).

You could try to mitigate these issues by including options to rate/review whenever you’re updating, or even with an opt-in that might bug you say on the 10th time you opened an app. Hybrid solutions with the previously mentioned approaches could involve having active recommendation/rating requests through your network (to my friends that have installed this app, do you like it?) or, probably more simply by getting rid of manual ratings and switching to showing the aggregate metrics that actually matter: retention rate, opens and minutes used (per day, totals, graphs) as “ratings”. These have the bonus of also being enormously useful to developers and being completely passive to end-users, which is good both for the data quality and for the user experience. (The self instrumentation potential is also interesting.)

None of these ideas are rocket science, but I haven’t really seen much written along these lines, which is just been a bit surreal to me because it seems like no one has been really acknowledging how sub-optimal the current app discovery experience is. (I can’t be the only one that feels this way, can I? Does everyone just discover news apps through NYTimes ads and Lifehacker posts? We’re thankfully past the “have to show all my friends this (not really) awesome new app” phase, right?)

Lessons from Android: Unintended Consequences (or How to Kneecap Your Developer Community)

An interesting clusterfuck has been brewing within part of the Android Dev Community – how serious of a long-term effect and what ultimate spillover it will have remains to be seen, but I thought it’d be worth gathering some notes about this as it develops. It started yesterday as something, that on the surface, only effected an important, but miniscule percentage of Android users, but that over the course of a day, has blown up into something may actually have potentially long-term consequences on the Android platform as the open mobile platform of choice.

Yesterday, Cyanogen, an Android community developer who maintains the most popular (and arguably best) alternate Android firmware, CyanogenMod, mentioned receiving a cease and desist from Google Legal.
Alternate firmwares (or custom ROMs) are along the lines of the custom WinMo firmwares that enthusiasts have been putting together for years (and in fact, there is at least some community crossover, including some shared forums). I only recently discovered CyanogenMod after complaining to the one Android superfan I know about how slow the Android phone I had was, and it was to me a night and day improvement over the stock firmware – performance went from unusably laggy to downright zippy.

Now, while Google is obviously within their legal rights (the C&D was specifically about redistribution of their closed source components), honestly, I’m rather baffled by this. It just doesn’t make any sense from a practical perspective – these apps are distributed with all the phones that the Cyanogen firmwares can be installed on, and are mostly used by a small set of the platform’s most dedicated enthusiasts (low tens of thousands at most, less than 1% of the Android userbase) – and of course, by a select few hobbyist developers putting in an inordinate amount of time in maintaining the firmwares and supporting those users. Not only is there no upside in attacking this community, but I can’t picture any scenario where there would be a net-positive outcome for Google.

As you can imagine, once word spread about the C&D, a community reaction was inevitable. A petition app was quickly put on the Marketplace (not the worst idea, honestly), and there were a few mentions in the more general tech news, although I haven’t noticed a big splash (say on Techmeme)… yet. That may change soon, I believe, as the fallout is now much bigger than inconveniencing a few “modders.”

Earlier today, Dan Morrill posted an official position statement on the issue. His statement about redistribution of closed source components seemed straightforward enough, but the implications are still unfolding. It turns out that by explicitly outlining the legal boundaries for closed-source components, we learned that not only core parts of the Android experience (like the Google Mobile services and Marketplace app), but also parts of the SDK and other base components are also protected. This news doesn’t just kill custom ROMs, but potentially makes Android as an open source project not viable at all. From Cyanogen’s Twitter stream:

@crazywizdom it’s pretty much like a bare bones linux install without the google bits. no contact sync or anything like that. #

From what they explained to me, you are not even allowed to copy the proprietary applications from your device. #

@gacktoh but you can’t distribute the market app. And it relies on the Google Mobile services anyway. #

I’m trying to get clarification now on what can actually be included. There are things in the SDK that aren’t in AOSP. Very confusing. #

Oh yeah, one last tweet before I violate the don’t-tweet-while-drunk rule. Nandroid is probably illegal. Awesome huh. #

All this woe (that’s counterproductive towards Google’s interest even if weren’t a PR, and now full on developer community nightmare – the custom firmware releases brought steady streams of improvements to tide over the true believers to what has been thus far, a somewhat lacking software product), probably set in motion because some PM got wind of the v1.6 Marketplace app being on the phone and got in a snit, setting the legal wheels in motion. And poof, over the course of a day, a cascade of events leading… who knows where.

Which is not to say that this can’t be fixed. The Google folks (even the legal teams) are smarter and more agile than most – if this is a priority, there are many ways to patch things up, from offering some sort of non-commercial redistribution terms, or having the Android team announce that they’re working with the community to make sure that they’re making it a priority to make sure that custom firmwares can be installed w/o touching the proprietary APKs, or that the AOSP is useful as an end-user installation (both of which jbqueru at least appears to already be moving on).

As it is though, it appears that Google has just shat on it’s biggest enthusiasts, and has given a good cause for those who are supporting Android as an “open” alternative to actively consider how far that openness extends (and realize how ostensibly “open source” Android really is). And of course, it’s a shame that there won’t be any more CyanogenMod builds. Still, this has been pretty fascinating to watch unfold, and should be of interest to anyone managing developer communities or trying to create an “open” platform…

(If you’re interested in following the conversations moving forward directly, the Twitter streams of cyanogen and Android developer jbqueru seem worth following.)

UPDATE: To some degree, this will probably blow over, since over the weekend Cyanogen announced he will continue w/ his work (after developing a new backup procedure to allow backup and re-installation of Google apps and with the inclusion of an alternate marketplace). Still, these are the types of incidents that chip away at social capital and reputation (until suddenly one day, the public no longer gives you the benefit of the doubt and any action taken gets looked upon in the worst possible light) – not to mention the amount of ultimately, pointless (or at least, repeated) man-hours that will be spent engineering a technical workaround to a policy problem.

Palm Pre: Two Months In

I’ve been catching up recently on the Android switching (you can read the weeks where I tried out a Palm Pre, Google Ion, and iPhone 3G)… As for me, I ended up switching to a Palm Pre, and after taking it around the country for a two months as my primary device, I thought I’d give an update…

  • Reception – having carried the phone around in SF, LA, NY, Portland, and Boston, I’ve been extremely happy – it’s an amazingly huge improvement over my AT&T service- my only dropped calls happen with friends on AT&T, and the data connection is very good – I even get data underground on BART throughout SF.
  • Voice Mail – I’ve remembered how much I hate voice mail. I have Google Voice… my initial reading seemed to be that call-forwarding for Sprint was an all or nothing proposition, but there might be some options for that… I’ll be trying to get that setup (even at 20 cents per minute, it’d be worth it to not have to listen to VMs).
  • Maps – my original hope was that the GMaps app would be decent, but really it’s pretty pathetic. It’s worse than the Android version, and far inferior to Apple’s Map application. It’s been a bit surprising to me how much better Apple’s implementation is (they write their own app, they just use Google’s tiles). You’d think that Google would be able to do a better job. On the other hand, I’ve found myself using TeleNav’s Sprint Navigation app more and more – it’s not ideal, as it’s hard to get out of turn-by-turn mode (I often find myself wanting to see the next turn) and sometimes it loses (or just won’t acquire) a GPS fix, but I’ve been a lot happier with its behavior in general (no problems w/ map tiles, or forgetting what it’s doing – it also has a history and interacts with my contacts) – it is however pretty battery intensive and takes a while to load up
  • Battery Life – this was my biggest complain when I first got my Pre. And for the first month it remained a huge problem – it just couldn’t last a day, which since I’m not office bound, means lasting at least from say 10am until 3am – even when I didn’t make any calls or even wake it, it’d run itself down just from its syncing. This was improved somewhat by the 1.1 update, but the main reason that it’s no longer a complaint is that I bought an extended battery – this thing adds an extra 5mm (it looks and feels like a lot more) of depth, and makes my Pre creak like no tomorrow, but it also comfortably gives me over a day no matter how much I use it (it seems to last just under 2 days in regular usage). If you’re getting a Pre, I’d say you pretty much are going to want to get either a spare battery or an extended battery.
  • Performance – My new top annoyance is now the intermittent lag/lack of responsiveness with the phone. When it’s working well, it’s really quite nice, but I find the Pre lagging out quite a bit. The dialer and autocomplete are particularly bad (not to mention that the autocomplete doesn’t have any sort of learning algorithm – no matter how many times you send to an address, you’ll never have to type less letters and it’ll never move up). Apps that have listings are also quite slow – i.e., while the 1.1 update sped up photo rendering, when you jump into the photos from the camera, it takes you to the folder list, which renders incredibly slowly. The same thing holds true for listing MP3s when jumping into the music app. But it’s not just limited to that – sometimes the launcher lags out, or app launching, or any number of things. I can’t explain why these things aren’t cached or why responsiveness isn’t made a higher priority. My biggest gripe is that when the phone lags out, it isn’t just a rendering issue, all response just grinds to a halt. I haven’t tested whether reboots do much w/ performance, but since despite using Upstart, the Pre still takes almost 2 minutes to boot (what’s up w/ that? when Ubuntu boots in 10s, I’m not sure what excuse the Pre, running on a fixed hardware platform, really has)
  • Copy and Paste – oh the irony. The iPhone now has superb copy and paste support, and it turns out that the Pre’s copy and paste is completely useless – time and time again I need to copy something from an email, web page, or text message. And I can’t! Also, the few times I can, only serves to show how awkward Palms copy and paste command/gestures are.
  • Other UI – It’s not all bad though – I remain impressed w/ the cards implementation, and the notifications just plain rock. Every time an alarm goes off, or something else pops up and I can keep typing through what I was working on, I get a nice warm fuzzy feeling. This is how it’s supposed to work people!
  • Apps – The official app store remains pretty anemic – I find myself missing some apps, like a decent Yelp app (Where is pretty substandard) or a Midori/Shazam equivalent, but the homebrew scene has been just plain making me happy. There are hundreds of homebrew apps that have been filling in the gaps (include a homebrew app “store”, scientific calculator, timers/stopwatches, a terminal, and yes, a great tethering app).
  • Headset/Microphone – one thing that is maybe a bit esoteric for some, but is actually up there with my biggest niggles, as I use this all the time is that there are some strange things with how the Pre interacts with my wired headsets. I use Ultimate Buds as my primary headset. They’re great for music and they conveniently have a remote and microphone – which the Palm Pre actually supports, with both the single click play/pause, and the double-click next track. That’s great! Unfortunately, after pausing for 5 seconds, the Pre “goes to sleep” and stops responding to the TRRS signal – to unpause, you’ll need to hit the power button or otherwise wake it before it’ll respond again. This is took a while to figure out, and is somewhat maddening – it also makes pausing somewhat useless and makes me wonder if anyone bothered to test this feature. The second big annoyance is that unlike the iPhone, which gives no microphone feedback, the Palm Pre gives you lots of microphone feedback – in fact, much more feedback than the other side of the line receives – so much so that it becomes impossible to hear the other side when there’s even moderate wind or traffic noise. This doesn’t happen without the headset and is downright retarded.

Now, while the list looks a bit weighted towards complaints, and while there are definitely some issues that well… verge on total brokenness (I’ve submitted the worst problems to Palm), most of these issues seem like they can be fixed via software updates, and on a day-to-day level, I’ve been mostly satisfied with my Pre.

The experience is absolutely not as good as the iPhone, but I guess at the end of the day, it’s still much more usable than the Android, and for me, it’s worth supporting an alternative because well, despite Schiller’s outreach, the the App Store really is abominable, not just in its practice/actuality, but also, after having given it some thought, and reflecting on its implications, as a general model.

Mobile devices are the next generation general computing/network access platform and having a device manufacturer as a post-facto gatekeeper is just not right. Getting rid of end-to-end not only reverses the freedoms that spawned the innovation on the Internet, but also creates a bottleneck on software development/distribution that I’ve never seen in modern general computing…

Oh, also: AT&T can suck it.