KOKOGIAK

GEDANKENGANG

Flickr Toy

I just finished making a little Flickr toy: flickReplacr. It's a bookmarklet that seems to work fairly well in IE and Firefox/Mozilla (Safari - not so much). What does it do? You can highlight any word on any web page, click the flickReplacr bookmarklet, and the word gets swapped out with a random image from flickr that was tagged with that word. So "apple" becomes a 75x75 image of an apple.

It's a little unpredictable with tiny words, and only seems to work well with 3 or fewer words, but can be kinda fun to play with.

(Read on only if you're interested in the geekery of it) - I first tried to do this all inline with javascript swapping out the contents of the page, got it all working, packed a full xmlhttprequest and swap into the 488-character limit for bookmarklets in IE6, only to smack my forehead later because of 'permission denied' issues. I'd forgot that xmlhttprequest only works happily in the same domain as the parent page (except when the page is local, using the "file://" protocol).

So I tried to think of a way around that and realized I could just swap out the highlighted text with a little tunnel (an iframe) and bypass the cross-domain issues. Unfortunately, it then became a two-part piece (bookmarklet calls my server, image returned to newly created iframe), not as elegant as an all-in-one bookmarklet, but it works.

Also, it stinks (as per usual) to have to branch code so much to accomplish the same thing in IE and Firefox. Document.selection vs. window.selection, pasteHTML vs. deleteContents and insertNode, blah blah blah. It's fun to have so much control over the DOM, not so fun to still be playing the same damn ugly cross-compatibility games I've been playing since... God, since image rollovers were introduced - so that's approaching ten years of cross-platform headaches as a part of my daily job.

2 Comments +

I like it. Reminds me of the lift-the-flap books I sometimes read with my kids, where there's a picture flap representing a word hidden underneath. It would be fun if there were a way to "uncover" the word represented by the picture. It could be turned into a little guessing game.
by Carrick at 11:59 AM 
Yeah - I was actually thinking it might be fun if there were a simple way to say "swap every third noun with an image", create a sort of visual Madlib. Not so easy to do though.
by alan at 12:29 PM 
iTunes? Netflix? Nixed.

I just got an email from Amazon.com's Legal Department (via Amazon's Webservices Team) - which while not an actual "Cease and Desist" message, is just one step short of that. I have been asked politely to remove all external links from Amazon Light 4.0 to both Netflix and iTunes, and I have just finished doing so.

For those who may not familiar with this, Amazon Light 4 has a number of tools (essentially bridges) to external sites, including GMail, Blogger, Libraries and del.icio.us. Up until today, Amazon Light 4's DVD listings had an external link to Netflix, and Music listings had an external link to the artist on iTunes. While these were cited frequently as some of the more useful tools (and were ones that I myself actually used regularly), it seems they run afoul of their Licensing Agreement.

The specific violation occurs in section C "Linking and Diversion... 2) You may not link any of the Amazon Properties presented on or within your Application (a) to any commercial page of a website other than the Amazon Website, or (b) in conjunction with any Amazon Property, direct traffic to any commercial page of a website other than the Amazon Website"

So, yes, my links do seem to clearly violate that rule, so I took 'em down. The strange thing is, I don't recall seeing any such restrictions while working on many previous applications. I will admit to not being a close reader of the licensing agreement, so I may have missed it all along, but I definitely recall an encouraged spirit of "as long as amazon gets top or equal billing", that everything else was kosher.

It is their data and they have every right to choose to do with it what they wish, but in my opinion, it's an unnecessary restriction, removing some useful features and possibly chilling interest in creating new applications built on AWS.

(I always figured my first legal challenge to AL4 would come from one of the linked sites, not Amazon itself. C'est la vie.)

9 Comments +

Me thinks you got off Lightly, mwahahahaha :)
by Anonymous at 7:42 PM 
I am in the design phase of an app that, I had hoped, would rely pretty heavily on AWS, but that section of the licensing agreement stopped me cold. My plan had been to give Amazon top billing, but still link to other places as well, as so many amazon-based apps do.

I've been spinning my wheels for a couple of days, trying to figure out what you, bookswelike.net, allconsuming.net, isbn.nu, and others were doing... ignoring that part of the license? Screenscraping instead of using AWS?

Anyway, consider me chilled from developing new work based on AWS. :( I'll be interested to see if the others on my list get similar letters.

-jack
by Anonymous at 10:31 AM 
I can imagine a solution, roundabout though it is. If Alice creates a sort of API bridge to AWS, and Bob uses that to aggregate Amazon listings with Netflix, etc, then no violation is taking place, technically, unless the AWS license has language forbidding any kind of programmatic "rebroadcasting" (or requring that any such enforce their terms).

Silly, I know.
by adamrice at 12:38 PM 
I think you're possibly confused about the meaning of "Amazon properties". Since you use node browsing, I presume you don't have your own database of product info, am I right?

The solution isn't to rebroadcast Amazon's data, which is clearly forbidden by the TOS:

"You may not sell, redistribute, sublicense or transfer all or any portion of the Amazon Properties [...] You may not store any Amazon Properties in any database, or network of servers, or other repository, either with or without a central location, which enables others to share the Amazon Properties."

The solution is to rely on your own database of ASINs and/or product names, because "You may however have links from content other than the Amazon Properties on or within your Application which link to competitor, informational or other websites."

Based on your own database of product names you can build query strings/API calls to whomever you want. It's simple: if you build your whole site on top of Amazon's API and data, you don't get to use it to send business to their competitors. If you own the data (at least the key properties necessary to interface with various online merchants), you get to link to whomever you want. Makes perfect sense. Affiliate sites built on top of their own database such as comparison shopping sites can keep doing what they're doing.
by Olivier Travers at 6:14 PM 
Responding

To adamrice: Yes, I was thinking of just such loopholes as well, like bookmarklets or aggregators, etc. It's a tough thing to define exactly.

To Olivier: Thanks, and yes, my site is entirely created out of Amazon's AWS data. But even if I did have my own database of product info, isn't it a little facetious to say using that is okay vs. getting the info directly from amazon? I mean Amazon's main quibble was that I was using product names and/or artist names to generate links to "commercial websites". What could be more generic than "the Beatles". If I get that data from Amazon or from my own database, the display is identical, the link to commercial site is identical. You say that it makes perfect sense, but it honestly does not to me. I'm going to post a longer blog entry about this later tonight or tomorrow.

Thanks again to posters and those who have mailed me about this.
by alan at 7:53 PM 
Hello,

I am not a intellectual properties lawyer, so it is possible that I am way off base. I doubt very seriously that Amazon themselves cares about the way in which this info is acquired. However, they do care intensely about maintaining their own legal rights to their intellectual properties. Courts have forced corporations to aggressively enforce their exclusivity to their own intellectual property or else lose almost all legal recourse in defending their intellectual property in court. This means that corporations have been forced to insist on a stricter compliance in order to preserve their ability in the future to fend off more egregious violations. Whether or not this has anything to do with Amazon's recent letter to you ar not, I could not say.
by James Shewmaker at 11:32 AM 
So I guess that takes care of Amazon's oh-so-forward thinking approach to "web services"...

I for one welcome our GreatWallofMart.com overlords!
by Anonymous at 12:16 AM 
Adam,

in response to your observation about using the same data but from different sources, I think Amazon's position would be that there is an investment represented in their store, and the fact that your repeated access of it uses their (network) resources. In return for giving it to you for free, the price they extract is that you agree not to be a channel to a competitor.

The interesting question is, what if you do a one-time build of your own database using AWS, and then subsequently create your own website with links to who you choose. They could decide that the possible lack of currency on your website (because they have more powerful crawlers and databases) doesn't warrant incurring the cost of challenging you --- or they might not, and challenge your use of the AWS to that end.
by Sameer Siruguri at 8:04 PM 
johnbeck001@hotmail.com

Easy to follow step-by-step guide to financial freedom by buying real estate for Pennies On The Dollar
by Tax Foreclosures at 1:55 PM 
43Things in Salon (article about tagging)

The "Tagging" meme is slowly hitting the mainstream. Interesting article (feature article no less) at Salon today, with prominent mentions of Erik Benson and the Robot Co-Op Crew. I only go to Salon if it's pointed out to me these days, so thought it worthwhile to point this out to others.

0 Comments +

Sxsw Baby (Maybe)

I just found out a couple days ago that two of my projects are now finalists in the SXSW Interactive Web Awards. In the Classic (pre-2004) category, there's the MegaPenny Project, and in the Technical Achievement category is Amazon Light 4. I think I'm the only finalist in the Technical Achievement category that doesn't use any Flash.

How do I feel? Great - about being in such good company as the rest of the finalists. About my chances? Not so much. This is one of those times where the nomination really is the best part. Regardless, because of prior commitments, I will not be able to attend the Web Awards Ceremony on Sunday March 13th, so I'll be on the lookout for a proxy attendee to stand-in for me and look duly dejected when I lose twice. (Or, on the off chance I win something, stand up and make a fool out of me).

1 Comments +

We got ya covered ;). I doubt we will win either, but like you said it's good to be in such pleasant company.
by Matthew Oliphant at 2:28 PM 
Want to be an A9.com Local Driver?

Here you go - a Craigslist ad in SF for "A9.com Block View Drivers". It's a contract job with extensions possible. If you want to travel, know GPS, digital photography, and have a spare 6 months or so, could be an interesting job.

1 Comments +

johnbeck001@hotmail.com

Easy to follow step-by-step guide to financial freedom by buying real estate
by John Beck at 1:54 PM 
Archives: