Inert Detritus The Internet’s dust bunnies

Flickr View All » Also, coffee.Pancakes in actionSunny hillsideDuboce Park - Muni trainA PianoSend halpAnother night build…

Posted
2 March 2009 @ 9pm

No Comments Yet

Ripping Bits and Licensing Fees

Eminem’s former production company, FBT, argues that a download is not, in fact, a purchase of music, but rather a license issued through a retailer. As such, the percentage that the artist takes home at the end of the day should be higher, in accordance with licensing terms.

Universal, meanwhile, appears to be arguing that purchasing digital music for download is no different from buying a CD or LP.

from “Eminem’s former publisher wants more money for digital downloads

This is Situation Normal for the record labels: when they’re losing money, they’ll define a music sale as a purchase to try and keep more dollars.

But when trying to fight P2P, they argue that any copying of music is illegal. They later said they didn’t mean it, but I would be surprised if the “CD ripping as an illegal duplication” argument didn’t surface again in a court of law sometime this year.


Posted
27 February 2009 @ 1pm

2 Comments

Asynchronous Requests

On Facebook: why do I have to get confirmation from a friend when I add details about how I know them?

Why not just give me a choice: add private details, or add public details. Public details can act like the current friend details: they show on my friends page when people see I’m friends with them.

If I just want to make notes to myself, and not show them to anyone else, why can’t I? It lets me attach more context to someone I’ve added: I know them through friend X, we discussed topic Y, et cetera.

Synchronous request/approval cycles are the surest to social network death. More on that later.


Posted
25 February 2009 @ 9am

1 Comment

Third-Party Mods

It does seem, however, that if you have a third-party hack, such as Boxee, installed on your Apple TV, it will be summarily disabled by the update, so proceed with caution.

via Apple TV Software Update 2.3.1 is out in the wild

This is not news. You’ve installed a custom, hacked, patched OS on your device; when you update to a newer (or older!) version, it’s going to revert back to how it shipped from Apple. Why are people so reluctant to accept this as part of the game they’re playing?


Posted
19 February 2009 @ 5pm

No Comments Yet

Hitmen and Smash Hits

My Tumblr post earlier today reminded me of something John Gruber discussed a couple of years ago:

The iPod Mini was a smash hit product.

And when Apple debuted the Nano, they killed it.

There was no hesitation, no reluctance. The Nano came out, and the Mini was dead. The manufacturing lines were stopped, it was pulled from the shelves, and it was purged from the website.

Apple stood up and said, “Yes, the Mini was wonderful. But now, it’s not even worth discussing its existence: here is something better. Trust us, you’ll like it.”


Posted
11 February 2009 @ 1pm

No Comments Yet

Google Gears and Webkit Nightlies

I’ve been using Google Gears with Safari the past few weeks, primarily for WordPress 2.7’s “Turbo Mode” (useful on low-bandwidth or high-latency links), and secondarily for Gmail’s offline mode.

The currently released build (0.5.12.0) of Google Gears isn’t compatible with the latest Webkit nightlies, however. Good news, though: it’s a piece of cake to build it yourself.

Check out the source, and build it locally on your machine. I had no hiccups with OS X 10.5.6 and Xcode 3.1.2, everything Just Worked The First Time.


Posted
10 February 2009 @ 9pm

No Comments Yet

G1 vs. iPhone: All in the Design

I’ve posted a couple of times to Tumblr about the G1.

I used a friend’s G1 for about a half hour a few weeks back: it was my first non-iPhone cell phone use since I got my 3G in June. Over Christmas, I also used my brother’s LG Dare, and I suddenly realized how spoiled the iPhone interface has made me:

The iPhone is all touch, all the time. If you’re in an application, any application, you will only use the touch screen. Every single action you’ll perform involves the screen: taps, drags, pinches, swipes. You’ll go to a hardware button if you want to quit the app, or if you want to change the volume. That’s it. Not for text entry, not for answering or making a call, not for anything else.

This changed the way I use my phone. I’m now lost on new phones, because I suddenly remember I have to input things via software (touch) and hardware.



There’s a fundamental mismatch with Android on the G1:

The problem with generalizing the software to such an extent is that while it works with many devices, it doesn’t work perfectly with any device.

This quickly leads down the path mentioned above. To support all the user interaction methods that Android sets forth, some Android units will have to introduce dedicated hardware inputs to handle them.



Aside: how does no one get angry at HTC for these hardware shortcomings:

  1. No charging/sync and music or calls at the same time. What? That’s insane.
  2. No A2DP. I think Apple has been excoriated on every message board and review of the iPhone ever for this. This is the first review of the G1 that I’ve seen mention it.

Posted
3 February 2009 @ 5pm

No Comments Yet

Cheep Cheep!

Chyrp: a lightweight blogging engine..

Chyrp: my personal blog.

I’ll be leaving the longer, more thought out, well-written content for this Wordpress-backed blog. Personal writing of public interest will appear on chyrp. Update your feeds, bookmark the page, your new TV Guide will appear in next Sunday’s paper, etc…


Posted
10 January 2009 @ 11am

5 Comments

Hacking iScrobbler for Multiple iPods

I’ve been on Last.fm since 2004. I love music, and I love statistics and data analysis, so when the site launched and I saw what they had planned, I immediately set up an account.

I’ve long used iScrobbler for a Mac client to submit plays to Last.fm: it’s lightweight, supports running in a menu bar-only mode, and has given me zero grief over the years. iScrobbler watches iTunes to detect and scrobble1 songs played as they happen. This obviously isn’t possible with iPod plays, so iScrobbler asks you to use a Recently Played playlist that it watches: after you sync an iPod, iTunes updates that playlist with all the tracks played while you were out, and iScrobbler diffs the playlists to know what to submit.

Until this summer, I used both my 2nd gen nano and my iPod photo to play music: the photo fit nearly everything I had, while the nano was great for the gym. I now use the nano, my iPhone 3G, and an iPod classic for playing music on the go, so my #FirstWorldProblem of making sure all iPod2 song plays get scrobbled to Last.fm hit a bit of a speed bump. I started interleaving plays on the devices: I’d listen to my iPhone on the bus ride in, use the nano at the gym, then listen some more on the iPhone before syncing them back to iTunes.

To support the iPod, iScrobbler takes snapshots of the iTunes Library, and compares the Last Played and Play Counts in a playlist you configure3 to figure out what songs you listened to.

After an iPod update, iScrobbler will take the last played time of the last played song, sets this as the new “iTunes Last Played Time”, and scrobble everything played since the previous iTunes Last Played Time.4 With interleaved plays, this quickly becomes a problem: when you sync iPod A, iScrobbler bumps the iTunes LPT; any plays on iPod B that happened before that time are now “lost”, since that iPod hasn’t been synced, and they fall before that timestamp. Those plays are very difficult to get back later, so this is a problem worth avoiding5

Playlist snapshots let iScrobbler work around an iTunes/Last.fm problem: iTunes only stores the Last Played time, but Last.fm wants a timestamp for every song play. If iScrobbler sees a song which incremented Play Count by more than 1, it has to “synthesize” the play. The song must have a timestamp for Last.fm submission, so iScrobbler finds gaps in the play times where no songs were playing, and invents reasonable timestamps for any songs needing a time.

So, for the past few months, I’ve been closing iScrobbler before syncing my iPods. This let me sync both iPods with iTunes, which updated all the songs’ metadata, then launch iScrobbler and tell it to manually update from the iPod playlist.



A few weeks ago, instead of just closing iScrobbler before an iPod sync, I started running iTunes with iScrobbler completely closed. All my plays on the desktop go into the same playlist6 as any tracks my iPods play, so they would get picked up like the rest of my iPod plays.

iPods don’t cross-fade playback, so the Start Time of one song7 perfectly adjoins the Last Played time of the track before it. Last.fm is very particular about track lengths and timestamps, and won’t let you submit plays that overlap, so if that happens, iScrobbler drops the second track to avoid API issues.

The writing on the wall is clear: if you have cross-fade playback enabled in iTunes and play songs with iScrobbler closed, 50% of your desktop plays will be dropped by iScrobbler as overlapping. I haven’t filed a bug against the API on this yet8. You can work around it by turning off cross-fade playback in iTunes; that makes iTunes behave identically to iPods with playback, and you can keep iScrobbler closed for days at a time with no adverse effects.



Postscript: the iPhone 2.0 bug where Play Counts and Last Played times weren’t updated just about killed me. I had to exhibit extraordinary self-control to only play music on the nano, since it was the only device that properly updated the song metadata.

Yes, I think a play count will fall through the cracks if you play it once on both devices; iTunes will crush of the device’s play count with the other’s. I haven’t tested this to confirm or deny it, however.

  1. Submit, in iScrobber/AudioScrobbler/Last.fm speak []
  2. For the sake of brevity, “iPod” includes iPhones. []
  3. This is best set to a “Recently Played” smart playlist []
  4. It does this so takes less time and work to avoid duplicating submissions. Duplicate submissions are bounced by the Last.fm API with great prejudice. []
  5. I typically resort to leaving a playlist running overnight to fake them. []
  6. Recently Played” captures anything played in the last few weeks []
  7. iScrobbler always has it, so iTunes must be bookkeeping it somewhere. As far as I can tell, this is stored behind-the-scenes and not exposed in the iTunes UI []
  8. There needs to be a few second “grace period” for device clock skew and cross-fading playback []

Posted
26 December 2008 @ 6pm

Comments Off

Property Rights

As I read The Economist’s articles on developing nations, whether it be in Asia, Africa, or Europe, a common thread jumps out at me:

Property rights are the key to economic development. People want to own their property, and not have to worry about how to keep it or who’s going to take it.

Property rights, in the form of land ownership, banking, and lack of corruption, all lead to domestic and foreign investment in the country: people know that their property is secure and not subject to random and unjust repossession by officials or armed forces.


Posted
22 December 2008 @ 9pm

No Comments Yet

Addendum: Logitech Control Center Software

So, I tried the Logitech software. I really gave it a shot, I swear. It did well for the most part: it didn’t brick my machine at boot, or break any apps that I could tell in the few hours it was installed.

But there were some glaring bugs.

First, what’s the most typical thing to do to a mouse with two scroll wheels and five buttons? You customize the buttons and scrolling to do certain things by default, across the system. You’re allowed to do that, but as soon as you make some custom setting set for, say, Firefox (using that side, snap-back wheel for switching tabs is amazing), you have to re-do your other button settings.

SteerMouse gets this one right. You set your system defaults, and then on a per-app basis, it has an extra option for each button: “Same as Default”, or whatever action you want. Bravo, I say.

Second, scrolling speed was busted in Firefox. There was some weird conflict between the software, the OS X default scrolling speed, and Firefox’s idea of scrolling. When I slid the scrolling speed slider toward “Slow”, it moved more lines per single click of the wheel. Yet, counterintuitively, when you spun the wheel fast, you got less movement than a single click. Busted like a cheap piñata, I say.

Third, and maybe this was just me, I couldn’t get the tracking speed and acceleration to behave. It just felt “off”, even after multiple minor tweaks.

So, after an uninstall of LCC and a reboot, I installed SteerMouse (after another reboot, jeez). I love it. It does a fantastic job of customizing the buttons, nailed the tracking speed (different acceleration curve, perhaps?) and even lets me control the free-wheel vs. click-wheel engagement speed of the main scroll wheel (albeit, after running a defaults write command, followed by a logout). I’m going to give it one more day of testing to make sure there’s no deal-breaking bugs, and I’ll be happily paying for a copy of the app.


 ← Before  After →