Forum:Suggestion to Woot
From Woot Wiki
[edit] A suggestion to woot
LukeDuff,
If I were designing an interface that could be used by third parties here's how I would do it:
1) Do *not* add the percentage complete to your RSS (it doesn't match the RSS concept anyway). Instead add a link to a URL that is unique to a given product that *only* returns the percentage. Here is the concept (look for <currentSaleState> below):
<?xml version="1.0" encoding="utf-8"?>
http: //www.woot.com
Woot! - One Day, One Deal
BOA Portable Remote Security System
http: //www.woot.com
Sat, 03 Feb 2007 06:00:00 GMT
http: //www.woot.com/Default.aspx?WootSaleId=3028
BOA Portable Remote Security System
Antisocial Security
http: //www.woot.com/currentState/3028_state.txt
$29.99
New
False
False
http: //www.woot.com/WantOne.aspx?WootSaleId=3028
http: //www.woot.com/Forums/ViewPost.aspx?PostID=1012193
http: //www.woot.com/Images/Sale/Boa_Remote_Security_System5IO-thumbnail.jpg
http: //www.woot.com/Images/Sale/Boa_Remote_Security_System5IO-standard.jpg
http: //www.woot.com/Images/Sale/Boa_Remote_Security_System5IO-detail.jpg
Directed Electronics BOA 500B Portable Remote Security System!2) Update the *static* sale state file once every 10-20 seconds or so with the current percentage. This is all that changes for a given product during a WootOff anyway. Then distribute that static file among all of your web servers (since that one URL will get all of the WootOff checker traffic).
Here is an example:
---File starts here--- 25% ---That's it, just one line, 3 bytes---
We would likely call the URL by adding a date on the end (to prevent caching) like so:
http://www.woot.com/currentState/3028_state.txt?dateTime=56789345678
3) Now to write a WootOff Checker all I would do is download the RSS file, update my UI with all of the pertinent information, then start polling the <currentSaleState> URL on a regular basis to keep the UI up-to-date and drive the audio cues, etc.
When the percentage in the state file reads zero, I would start polling the RSS feed until it changes to a new product and once I had a new product downloaded I would go back to only polling the <currentSaleState> URL. I can still value-add by doing statistical analysis on the percentage change, looking up the current product on other web sites, notification audio, etc.
There would have to be some discussion of the best way to resolve the JavaScript AJAX sandbox issues, but there are a number of ways to do this. Here are some ideas:
a. Woot hosts a JavaScript library to access the sale state file so that the JavaScript and URL are on the same server.
b. Put the sale state file into a iframe and pull the information from there.
c. Use a server-side cache (which is how most WootOff checkers work today).
4) Actively send users to a WootOff checker page from the Woot home page (a tracking page either at woot.com or here at woot.wikia.com, whatever) that would list WootOff checkers on the web (basically, officially support us).
If you have any questions about this proposal, feel free to reply here or contact me directly at sgartner [at] pingbot.com -- S. Gartner talk 22:46, 3 February 2007 (UTC)