Created
April 14, 2010 21:22
-
-
Save superfeedr/366358 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:t="http://purl.org/syndication/thread/1.0" xmlns:s="http://activitystrea.ms/service-provider" xmlns:a="http://activitystrea.ms/spec/1.0/" xmlns:media="http//purl.org/syndication/atommedia"> | |
<title>Martin Atkins's Activity</title> | |
<link rel="self" type="application/atom+xml" href="http://profile.typepad.com/apparentlymart/activity/atom.xml" /> | |
<link rel="alternate" type="text/html" title="Martin Atkins's Profile" href="http://profile.typepad.com/apparentlymart"/> | |
<link rel="hub" href="http://hubbub.api.typepad.com/" /> | |
<generator uri="http://www.typepad.com/">TypePad</generator> | |
<s:provider> | |
<name>TypePad</name> | |
<icon>http://www.typepad.com/favicon.ico</icon> | |
<uri>http://www.typepad.com/</uri> | |
</s:provider> | |
<id>tag:typepad.com,2003:profile.typepad.com/services/activity/atom/6p010535617444970b</id> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</author> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ecaa9e6a970b</id> | |
<title type="text"> Martin Atkins added 'Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-13T21:58:10Z</published> | |
<updated>2010-04-13T21:58:10Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00e54f7ac65c883301347fda6816970c</id> | |
<title type="text">Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-04-13T21:26:23Z</published> | |
<updated>2010-04-13T21:26:23Z</updated> | |
<link rel="alternate" type="text/html" src="http://tiffchow.typepad.com/tweettiff/2010/04/wasabit-kit-kat-sakuragreen-tea-kit-kat-thank-you-kimmi8.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00e54f7ac65c8833</id> | |
<name>.tiff</name> | |
<uri>http://profile.typepad.com/tiffchow</uri> | |
</author> | |
<content type="html"><p style="text-align: center;"><a href="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-pi"><img alt="Photo 247" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7797970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-500wi" style="display: block; margin-left: auto; margin-right: auto;" /></a> <span style="font-size: 11px;">(that&#39;s my fancy hands way of holding multiple Kit Kat&#39;s, btw)</span></p><p>Kimmie got these special Japanese Kit Kats in Wasabi and Sakura/Green Tea flavor from the Japanese Six Apart team, and I&#39;m happy to report that they&#39;re <strong>MINE</strong> to <strong>EAT!</strong> Unfortunately, both <a href="http://www.winterwebb.com/2010/04/wasabi-kitkat.html">Garth &amp; Kimmie</a> report that the Wasabi variety is kind of underwhelming, but that&#39;s okay.</p><p><img alt="kitkat" border="0" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7677970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7677970b-800wi" style="display: block; margin-left: auto; margin-right: auto;" title="kitkat" /> </p><p><strong>DID YOU KNOW</strong> that there are a TON of Kit Kat flavors out there? The awesome ones are all available in Japan, like Kit Kat Yakimorokoshi (grilled corn), Kit Kat Ginger Ale, and Kit Kat Pickled Plum (to name a few). Sadly, the closest the US comes to Kit Kat varieties is the Kit Kat Carb Alternatives, a low-carb Kit Kat alternative with 50% less sugar. <strong>SIGH.</strong></p><p>Check out all the <a href="http://en.wikipedia.org/wiki/Kit_Kat#Kit_Kat_varieties">Kit Kat flavors here</a>. Neat!</p></content> | |
</a:object> | |
<content type="html"> <p style="text-align: center;"><a href="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-pi"><img alt="Photo 247" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7797970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-500wi" style="display: block; margin-left: auto; margin-right: auto;" /></a> <span style="font-size: 11px;">(that&#39;s my fancy hands way of holding multiple Kit Kat&#39;s, btw)</span></p><p>Kimmie got these special Japanese Kit Kats in Wasabi and Sakura/Green Tea flavor from the Japanese Six Apart team, and I&#39;m happy to report that they&#39;re <strong>MINE</strong> to <strong>EAT!</strong> Unfortunately, both <a href="http://www.winterwebb.com/2010/04/wasabi-kitkat.html">Garth &amp; Kimmie</a> report that the Wasabi variety is kind of underwhelming, but that&#39;s okay.</p><p><img alt="kitkat" border="0" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7677970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7677970b-800wi" style="display: block; margin-left: auto; margin-right: auto;" title="kitkat" /> </p><p><strong>DID YOU KNOW</strong> that there are a TON of Kit Kat flavors out there? The awesome ones are all available in Japan, like Kit Kat Yakimorokoshi (grilled corn), Kit Kat Ginger Ale, and Kit Kat Pickled Plum (to name a few). Sadly, the closest the US comes to Kit Kat varieties is the Kit Kat Carb Alternatives, a low-carb Kit Kat alternative with 50% less sugar. <strong>SIGH.</strong></p><p>Check out all the <a href="http://en.wikipedia.org/wiki/Kit_Kat#Kit_Kat_varieties">Kit Kat flavors here</a>. Neat!</p></content> | |
<link rel="alternate" type="text/html" href="http://tiffchow.typepad.com/tweettiff/2010/04/wasabit-kit-kat-sakuragreen-tea-kit-kat-thank-you-kimmi8.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc93d25970c</id> | |
<title type="text"> Martin Atkins posted 'Only in SF' </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/post</a:verb> | |
<published>2010-04-10T23:52:17Z</published> | |
<updated>2010-04-10T23:52:17Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a010535617444970b01347fc93d1e970c</id> | |
<title type="text">Only in SF</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-04-10T23:52:16Z</published> | |
<updated>2010-04-10T23:52:19Z</updated> | |
<link rel="alternate" type="text/html" src="http://notes.apparently.me.uk/2010/04/only-in-sf.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
</author> | |
<content type="html"><blockquote><div><img class=" at-xid-6a01127947363b28a40133ec97b4db970b" height="299" src="http://chromehorse.typepad.com/.a/6a01127947363b28a40133ec97b4db970b-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/2/">missionmission.wordpress.com</a></small></p> </div></blockquote> <p><small>via <a href="http://www.badnima.com/2010/04/only-in-sf.html">www.badnima.com</a></small></p> </content> | |
</a:object> | |
<content type="html"> <blockquote><div><img class=" at-xid-6a01127947363b28a40133ec97b4db970b" height="299" src="http://chromehorse.typepad.com/.a/6a01127947363b28a40133ec97b4db970b-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/2/">missionmission.wordpress.com</a></small></p> </div></blockquote> <p><small>via <a href="http://www.badnima.com/2010/04/only-in-sf.html">www.badnima.com</a></small></p> </content> | |
<link rel="alternate" type="text/html" href="http://notes.apparently.me.uk/2010/04/only-in-sf.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec992df3970b</id> | |
<title type="text"> Martin Atkins added 'Hipster overload - sidewalk sunbathing' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-10T23:49:22Z</published> | |
<updated>2010-04-10T23:49:22Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a01127947363b28a401347fc7c7c9970c</id> | |
<title type="text">Hipster overload - sidewalk sunbathing</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-04-10T16:32:45Z</published> | |
<updated>2010-04-10T16:32:47Z</updated> | |
<link rel="alternate" type="text/html" src="http://www.badnima.com/2010/04/hipster-overload---sidewalk-sunbathing.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p01127947363b28a4</id> | |
<name>Nima Badiey</name> | |
<uri>http://profile.typepad.com/badnima</uri> | |
</author> | |
<content type="html"><img class=" at-xid-6a01127947363b28a401347fc7c7c2970c" height="517" src="http://chromehorse.typepad.com/.a/6a01127947363b28a401347fc7c7c2970c-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/5/">missionmission.wordpress.com</a></small></p> </content> | |
</a:object> | |
<content type="html"> <img class=" at-xid-6a01127947363b28a401347fc7c7c2970c" height="517" src="http://chromehorse.typepad.com/.a/6a01127947363b28a401347fc7c7c2970c-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/5/">missionmission.wordpress.com</a></small></p> </content> | |
<link rel="alternate" type="text/html" href="http://www.badnima.com/2010/04/hipster-overload---sidewalk-sunbathing.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc8b99e970c</id> | |
<title type="text"> Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-10T21:12:18Z</published> | |
<updated>2010-04-10T21:12:18Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title type="text">Cross-Origin Resource Sharing</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<link rel="alternate" type="text/html" src="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
</author> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
</a:object> | |
<content type="html"> <p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link rel="alternate" type="text/html" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc8b998970c</id> | |
<title type="text"> Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-10T21:12:15Z</published> | |
<updated>2010-04-10T21:12:15Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title type="text">Cross-Origin Resource Sharing</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<link rel="alternate" type="text/html" src="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
</author> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
</a:object> | |
<content type="html"> <p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link rel="alternate" type="text/html" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec98aff6970b</id> | |
<title type="text"> Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-10T21:12:13Z</published> | |
<updated>2010-04-10T21:12:13Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title type="text">Cross-Origin Resource Sharing</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<link rel="alternate" type="text/html" src="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
</author> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
</a:object> | |
<content type="html"> <p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link rel="alternate" type="text/html" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec98afec970b</id> | |
<title type="text"> Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-10T21:12:09Z</published> | |
<updated>2010-04-10T21:12:09Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title type="text">Cross-Origin Resource Sharing</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<link rel="alternate" type="text/html" src="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
</author> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
</a:object> | |
<content type="html"> <p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link rel="alternate" type="text/html" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc8b25a970c</id> | |
<title type="text"> Martin Atkins added 'Chris Heisel's short introduction to Django and Gearman' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-10T21:04:45Z</published> | |
<updated>2010-04-10T21:04:45Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00d83451ce6b69e201347fc8abf0970c</id> | |
<title type="text">Chris Heisel's short introduction to Django and Gearman</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-04-10T20:57:36Z</published> | |
<updated>2010-04-10T21:00:05Z</updated> | |
<link rel="alternate" type="text/html" src="http://markpasc.typepad.com/blog/2010/04/chris-heisels-short-introduction-to-django-and-gearman.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00d83451ce6b69e2</id> | |
<name>markpasc</name> | |
<uri>http://profile.typepad.com/markpasc</uri> | |
</author> | |
<content type="html"><a href="http://heisel.org/blog/2009/09/11/gearman/"><img class="at-xid-6a00d83451ce6b69e201347fc8abea970c " height="200" src="http://markpasc.typepad.com/.a/6a00d83451ce6b69e201347fc8abea970c-pi" width="300" /></a> <p><small>via <a href="http://heisel.org/blog/2009/09/11/gearman/">heisel.org</a></small></p></content> | |
</a:object> | |
<content type="html"> <a href="http://heisel.org/blog/2009/09/11/gearman/"><img class="at-xid-6a00d83451ce6b69e201347fc8abea970c " height="200" src="http://markpasc.typepad.com/.a/6a00d83451ce6b69e201347fc8abea970c-pi" width="300" /></a> <p><small>via <a href="http://heisel.org/blog/2009/09/11/gearman/">heisel.org</a></small></p></content> | |
<link rel="alternate" type="text/html" href="http://markpasc.typepad.com/blog/2010/04/chris-heisels-short-introduction-to-django-and-gearman.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec98a7e3970b</id> | |
<title type="text"> Martin Atkins commented on 'Cable binding' </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/post</a:verb> | |
<published>2010-04-10T21:03:06Z</published> | |
<updated>2010-04-10T21:03:06Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00d83451ce6b69e20133ec98a7da970b</id> | |
<title type="text"></title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/comment</a:object-type> | |
<published>2010-04-10T21:03:03Z</published> | |
<updated>2010-04-10T21:10:14Z</updated> | |
<link rel="alternate" type="text/html" src="http://markpasc.typepad.com/blog/2010/03/cable-binding.html?cid=6a00d83451ce6b69e20133ec98a7da970b#comment-6a00d83451ce6b69e20133ec98a7da970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
</author> | |
<t:in-reply-to ref="tag:api.typepad.com:2009:6a00d83451ce6b69e20133ec4ee712970b" type="text/html" href="http://markpasc.typepad.com/blog/2010/03/cable-binding.html"> | |
<title>Cable binding</title> | |
</t:in-reply-to> | |
<content type="html"><p>This solution is a bit hi-tech for my liking.</p> <p>My solution was just to plug in all of the cables to find their &quot;natural&quot; positions and then tape them to the desk. That way they stay in close proximity to the socket they&#39;ll be plugged into every day.</p></content> | |
</a:object> | |
<content type="html"> <p>This solution is a bit hi-tech for my liking.</p> <p>My solution was just to plug in all of the cables to find their &quot;natural&quot; positions and then tape them to the desk. That way they stay in close proximity to the socket they&#39;ll be plugged into every day.</p></content> | |
<link rel="alternate" type="text/html" href="http://markpasc.typepad.com/blog/2010/03/cable-binding.html?cid=6a00d83451ce6b69e20133ec98a7da970b#comment-6a00d83451ce6b69e20133ec98a7da970b" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc54210970c</id> | |
<title type="text"> Martin Atkins is now following hachi </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/follow</a:verb> | |
<published>2010-04-10T03:12:00Z</published> | |
<updated>2010-04-10T03:12:00Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6p00d83424729053ef</id> | |
<title type="text">hachi</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/hachi" /> | |
<link rel="photo" type="image/jpeg" src="http://up0.typepad.com/6a00d83424729053ef01287649e041970c-75si" media:width="75" media:height="75" /> | |
</a:object> | |
<content type="html"> | |
</content> | |
<link rel="alternate" type="text/html" href="http://profile.typepad.com/hachi" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc38949970c</id> | |
<title type="text"> Martin Atkins added a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-09T20:02:37Z</published> | |
<updated>2010-04-09T20:02:37Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00d8341c4f5f53ef0133ec930ed4970b</id> | |
<title type="text"></title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/note</a:object-type> | |
<published>2010-04-09T18:09:12Z</published> | |
<updated>2010-04-09T18:09:13Z</updated> | |
<link rel="alternate" type="text/html" src="http://mini.sippey.com/2010/04/how-much-does-eloise-know-about-the-nature-of-the-timeline-where-did-she-get-her-knowledge--i-think-eloise-knows-enough-abo.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00d8341c4f5f53ef</id> | |
<name>Michael Sippey</name> | |
<uri>http://profile.typepad.com/sippey</uri> | |
</author> | |
<content type="html"><blockquote><p>How much does Eloise know about the nature of the timeline? Where did she get her knowledge?</p></blockquote> I think Eloise knows enough about the nature of the timeline that she knows that in the alternate timeline she murders her own son. And she desperately needs to avoid having that timeline come "true," which is why she's adamant about Desmond not getting involved in anything related to Penny, lest it cause him to jump back and forth between the two. I have no idea how she learned that, though...</content> | |
</a:object> | |
<content type="html"> <blockquote><p>How much does Eloise know about the nature of the timeline? Where did she get her knowledge?</p></blockquote> I think Eloise knows enough about the nature of the timeline that she knows that in the alternate timeline she murders her own son. And she desperately needs to avoid having that timeline come "true," which is why she's adamant about Desmond not getting involved in anything related to Penny, lest it cause him to jump back and forth between the two. I have no idea how she learned that, though...</content> | |
<link rel="alternate" type="text/html" href="http://mini.sippey.com/2010/04/how-much-does-eloise-know-about-the-nature-of-the-timeline-where-did-she-get-her-knowledge--i-think-eloise-knows-enough-abo.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc2b598970c</id> | |
<title type="text"> Martin Atkins added a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-09T16:49:59Z</published> | |
<updated>2010-04-09T16:49:59Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00d83455847069e20133ec9275fb970b</id> | |
<title type="text"></title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/note</a:object-type> | |
<published>2010-04-09T16:08:02Z</published> | |
<updated>2010-04-09T16:08:04Z</updated> | |
<link rel="alternate" type="text/html" src="http://capndesign.typepad.com/micro/2010/04/how-can-desmond-survive-such-extreme-exposure-to-electromagnetism--he-was-born-under-the-bad-sign-no-i-think-its-probably.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00d83455847069e2</id> | |
<name>Matt Jacobs</name> | |
<uri>http://profile.typepad.com/capndesign</uri> | |
</author> | |
<content type="html"><blockquote><p>How can Desmond survive such extreme exposure to electromagnetism?</p></blockquote> He was born under the bad sign? No, I think it's probably because he was given special powers from Jacob so we could survive if for some reason he couldn't enter the code at the station.</content> | |
</a:object> | |
<content type="html"> <blockquote><p>How can Desmond survive such extreme exposure to electromagnetism?</p></blockquote> He was born under the bad sign? No, I think it's probably because he was given special powers from Jacob so we could survive if for some reason he couldn't enter the code at the station.</content> | |
<link rel="alternate" type="text/html" href="http://capndesign.typepad.com/micro/2010/04/how-can-desmond-survive-such-extreme-exposure-to-electromagnetism--he-was-born-under-the-bad-sign-no-i-think-its-probably.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8eb353970b</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-09T00:37:36Z</published> | |
<updated>2010-04-09T00:37:36Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00d83451ce6b69e20133ec68ef97970b</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-04-02T17:18:03Z</published> | |
<updated>2010-04-02T20:01:09Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a00d83451ce6b69e20133ec68ef97970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00d83451ce6b69e2</id> | |
<name>markpasc</name> | |
<uri>http://profile.typepad.com/markpasc</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a7.typepad.com/6a00d83451ce6b69e20133ec68ef97970b-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a7.typepad.com/6a00d83451ce6b69e20133ec68ef97970b-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a7.typepad.com/6a00d83451ce6b69e20133ec68ef97970b-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a7.typepad.com/6a00d83451ce6b69e20133ec68ef97970b-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a00d83451ce6b69e20133ec68ef97970b" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fbe6fec970c</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-08T23:46:14Z</published> | |
<updated>2010-04-08T23:46:14Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00d8341e3ac753ef0133ec8e0c09970b</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-04-08T22:07:36Z</published> | |
<updated>2010-04-08T23:14:37Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a00d8341e3ac753ef0133ec8e0c09970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00d8341e3ac753ef</id> | |
<name>David Jacobs</name> | |
<uri>http://profile.typepad.com/david</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a1.typepad.com/6a00d8341e3ac753ef0133ec8e0c09970b-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a1.typepad.com/6a00d8341e3ac753ef0133ec8e0c09970b-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a1.typepad.com/6a00d8341e3ac753ef0133ec8e0c09970b-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a1.typepad.com/6a00d8341e3ac753ef0133ec8e0c09970b-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a00d8341e3ac753ef0133ec8e0c09970b" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8e719f970b</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-08T23:46:09Z</published> | |
<updated>2010-04-08T23:46:09Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00d8341c4f5f53ef01347fb7a53a970c</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-04-07T21:23:22Z</published> | |
<updated>2010-04-07T22:17:55Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a00d8341c4f5f53ef01347fb7a53a970c" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00d8341c4f5f53ef</id> | |
<name>Michael Sippey</name> | |
<uri>http://profile.typepad.com/sippey</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a2.typepad.com/6a00d8341c4f5f53ef01347fb7a53a970c-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a2.typepad.com/6a00d8341c4f5f53ef01347fb7a53a970c-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a2.typepad.com/6a00d8341c4f5f53ef01347fb7a53a970c-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a2.typepad.com/6a00d8341c4f5f53ef01347fb7a53a970c-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a00d8341c4f5f53ef01347fb7a53a970c" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fbe6fca970c</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-08T23:46:05Z</published> | |
<updated>2010-04-08T23:46:05Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a010534988cd3970b01347f99f87e970c</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-04-02T22:04:43Z</published> | |
<updated>2010-04-03T00:30:57Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a010534988cd3970b01347f99f87e970c" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010534988cd3970b</id> | |
<name>Steve Ivy</name> | |
<uri>http://profile.typepad.com/monkinetic</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a6.typepad.com/6a010534988cd3970b01347f99f87e970c-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a6.typepad.com/6a010534988cd3970b01347f99f87e970c-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a6.typepad.com/6a010534988cd3970b01347f99f87e970c-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a6.typepad.com/6a010534988cd3970b01347f99f87e970c-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a010534988cd3970b01347f99f87e970c" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8e7138970b</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-08T23:45:36Z</published> | |
<updated>2010-04-08T23:45:36Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00e5539faa3b88330133ec741e12970b</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-04-04T17:40:00Z</published> | |
<updated>2010-04-04T17:53:27Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a00e5539faa3b88330133ec741e12970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00e5539faa3b8833</id> | |
<name>nataliepo</name> | |
<uri>http://profile.typepad.com/nataliepo</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a2.typepad.com/6a00e5539faa3b88330133ec741e12970b-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a2.typepad.com/6a00e5539faa3b88330133ec741e12970b-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a2.typepad.com/6a00e5539faa3b88330133ec741e12970b-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a2.typepad.com/6a00e5539faa3b88330133ec741e12970b-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a00e5539faa3b88330133ec741e12970b" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8e70fa970b</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-04-08T23:45:25Z</published> | |
<updated>2010-04-08T23:45:25Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00e54f7ac65c88330133ec8dc4c1970b</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-04-08T21:08:10Z</published> | |
<updated>2010-04-08T23:14:37Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a00e54f7ac65c88330133ec8dc4c1970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00e54f7ac65c8833</id> | |
<name>.tiff</name> | |
<uri>http://profile.typepad.com/tiffchow</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a1.typepad.com/6a00e54f7ac65c88330133ec8dc4c1970b-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a1.typepad.com/6a00e54f7ac65c88330133ec8dc4c1970b-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a1.typepad.com/6a00e54f7ac65c88330133ec8dc4c1970b-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a1.typepad.com/6a00e54f7ac65c88330133ec8dc4c1970b-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a00e54f7ac65c88330133ec8dc4c1970b" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8cc796970b</id> | |
<title type="text"> Martin Atkins posted 'New York Gets Destroyed, 8-bit Style' </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/post</a:verb> | |
<published>2010-04-08T17:44:21Z</published> | |
<updated>2010-04-08T17:44:21Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a010535617444970b0133ec8cc790970b</id> | |
<title type="text">New York Gets Destroyed, 8-bit Style</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-04-08T17:44:21Z</published> | |
<updated>2010-04-08T17:44:23Z</updated> | |
<link rel="alternate" type="text/html" src="http://notes.apparently.me.uk/2010/04/new-york-gets-destroyed-8-bit-style.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
</author> | |
<content type="html"><embed allowfullscreen="true" allowscriptaccess="always" height="460" src="http://www.dailymotion.com/swf/video/xcv6dv" style="visibility: visible; " type="application/x-shockwave-flash" width="640" wmode="opaque" /> <p><small>via <a href="http://mashable.com/2010/04/08/new-york-destroyed-8-bit/">mashable.com</a></small></p> </content> | |
</a:object> | |
<content type="html"> <embed allowfullscreen="true" allowscriptaccess="always" height="460" src="http://www.dailymotion.com/swf/video/xcv6dv" style="visibility: visible; " type="application/x-shockwave-flash" width="640" wmode="opaque" /> <p><small>via <a href="http://mashable.com/2010/04/08/new-york-destroyed-8-bit/">mashable.com</a></small></p> </content> | |
<link rel="alternate" type="text/html" href="http://notes.apparently.me.uk/2010/04/new-york-gets-destroyed-8-bit-style.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01310ffddefa970c</id> | |
<title type="text"> Martin Atkins posted 'Cross-Origin Resource Sharing' </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/post</a:verb> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:51Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title type="text">Cross-Origin Resource Sharing</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<link rel="alternate" type="text/html" src="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
</author> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
</a:object> | |
<content type="html"> <p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link rel="alternate" type="text/html" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" /> | |
<a:target> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b0120a9560791970b</id> | |
<title type="text">TypePad Dev Blog</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog</a:object-type> | |
<published>2010-03-19T18:09:46Z</published> | |
<updated>2010-03-31T06:01:01Z</updated> | |
<link rel="alternate" type="text/html" src="http://devblog.typepad.com/typepad-dev-blog/" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p0120a956067b970b</id> | |
<name>TypePad Development Team</name> | |
<uri>http://profile.typepad.com/6p0120a956067b970b</uri> | |
</author> | |
<content type="html"></content> | |
</a:target> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01310fd7305e970c</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-03-24T15:46:57Z</published> | |
<updated>2010-03-24T15:46:57Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00e5539faa3b88330120a9693c80970b</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-03-23T14:13:57Z</published> | |
<updated>2010-03-23T17:17:39Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a00e5539faa3b88330120a9693c80970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00e5539faa3b8833</id> | |
<name>nataliepo</name> | |
<uri>http://profile.typepad.com/nataliepo</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a0.typepad.com/6a00e5539faa3b88330120a9693c80970b-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a0.typepad.com/6a00e5539faa3b88330120a9693c80970b-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a0.typepad.com/6a00e5539faa3b88330120a9693c80970b-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a0.typepad.com/6a00e5539faa3b88330120a9693c80970b-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a00e5539faa3b88330120a9693c80970b" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0120a9703783970b</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-03-24T15:46:24Z</published> | |
<updated>2010-03-24T15:46:24Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a0120a965509e970b0120a9676626970b</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-03-23T05:29:28Z</published> | |
<updated>2010-03-23T05:29:29Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a0120a965509e970b0120a9676626970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p0120a965509e970b</id> | |
<name>Michael Summers</name> | |
<uri>http://profile.typepad.com/michaelsummers</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a6.typepad.com/6a0120a965509e970b0120a9676626970b-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a6.typepad.com/6a0120a965509e970b0120a9676626970b-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a6.typepad.com/6a0120a965509e970b0120a9676626970b-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a6.typepad.com/6a0120a965509e970b0120a9676626970b-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a0120a965509e970b0120a9676626970b" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0120a970372c970b</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-03-24T15:46:10Z</published> | |
<updated>2010-03-24T15:46:10Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a0120a964c8c4970b0120a9676a39970b</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-03-23T05:32:33Z</published> | |
<updated>2010-03-23T05:32:34Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a0120a964c8c4970b0120a9676a39970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p0120a964c8c4970b</id> | |
<name>Sarah Allen</name> | |
<uri>http://profile.typepad.com/sarahallen</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a1.typepad.com/6a0120a964c8c4970b0120a9676a39970b-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a1.typepad.com/6a0120a964c8c4970b0120a9676a39970b-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a1.typepad.com/6a0120a964c8c4970b0120a9676a39970b-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a1.typepad.com/6a0120a964c8c4970b0120a9676a39970b-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a0120a964c8c4970b0120a9676a39970b" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0120a96b95f4970b</id> | |
<title type="text"> Martin Atkins added 'Blogs at play' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-03-23T21:51:10Z</published> | |
<updated>2010-03-23T21:51:10Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b0120a96a1301970b</id> | |
<title type="text">Blogs at play</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/blog-entry</a:object-type> | |
<published>2010-03-23T16:54:07Z</published> | |
<updated>2010-03-30T21:03:59Z</updated> | |
<link rel="alternate" type="text/html" src="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00d83451ce6b69e2</id> | |
<name>markpasc</name> | |
<uri>http://profile.typepad.com/markpasc</uri> | |
</author> | |
<content type="html"><p>We have great blogs of all sorts on TypePad, and we're building our API so you can remix and experiment with your blog (and other public blogs). Here's an example: our friend Simon Wistow has <a href="http://thegestalt.typepad.com/choon/">a music blog</a> where a few folks post music videos from YouTube and Vimeo. It's a TypePad Micro blog, so it has all the features like favorites and reblog, but there's a particular other feature it doesn't have.</p> <p style="text-align:center"><a href="http://mbvmusic.com/"><img class="asset asset-image at-xid-6a0120a956067b970b0120a96a0028970b" alt="Mbv-play-page" title="Mbv-play-page" src="http://devblog.typepad.com/.a/6a0120a956067b970b0120a96a0028970b-800wi" border="0" width="430" height="217" /></a></p> <p>One feature I love from <a href="http://www.mbvmusic.com/">Ryan Catbird's MBV team music blog</a> is the player that pops up on the first page. Clicking "Play This Page" will then play each mp3 linked on the page in turn. That's great for "reading" the blog in the background while I'm reading or working. How could I adapt this to Simon's blog?</p> <p>Because most of the posts are YouTube and Vimeo videos, I can use TypePad's API with the <a href="http://code.google.com/apis/youtube/js_api_reference.html">YouTube player</a> and <a href="http://vimeo.com/api/docs/moogaloop">Vimeo Moogaloop</a> APIs to play posts from the blog, starting the next one when the previous one ends. Since it's Simon's blog, I made it play in another page, which <a href="http://neologasm.org/choon/">you can see here</a>. (Warning: it starts playing music when you open it!)</p> <p style="text-align:center"><a href="http://neologasm.org/choon/"><img class="asset asset-image at-xid-6a0120a956067b970b01310fd0fcde970c" alt="Choonplayer" title="Choonplayer" src="http://devblog.typepad.com/.a/6a0120a956067b970b01310fd0fcde970c-800wi" width="474" height="323" border="0" /></a></p> <p>This implementation was easy enough to do just in JavaScript. You can <a href="http://github.com/markpasc/choonplayer">see it here on GitHub</a>. In jQuery (or the framework of your choice), the call to get the blog data is:</p> <div class="highlight"><pre><span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">({</span> <span class="nx">dataType</span><span class="o">:</span> <span class="s1">&#39;jsonp&#39;</span><span class="p">,</span> <span class="nx">url</span><span class="o">:</span> <span class="s1">&#39;http://api.typepad.com/blogs/&#39;</span> <span class="o">+</span> <span class="nx">blog_xid</span> <span class="o">+</span> <span class="s1">&#39;/post-assets.js&#39;</span><span class="p">,</span> <span class="nx">data</span><span class="o">:</span> <span class="p">{</span> <span class="s1">&#39;start-index&#39;</span><span class="o">:</span> <span class="nx">skip</span> <span class="p">},</span> <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span> <span class="nx">entries</span> <span class="o">=</span> <span class="nx">data</span><span class="p">[</span><span class="s1">&#39;entries&#39;</span><span class="p">];</span> <span class="nx">playentry</span><span class="p">();</span> <span class="p">}</span> <span class="p">});</span> </pre></div> <p>You can see that it's using JSONP to pull <a href="http://www.typepad.com/services/apidocs/endpoints/blogs/%253Cid%253E/post-assets">the list of blog posts</a> directly from api.typepad.com, so it uses the <code>.js</code> extension on the URL (not <code>.json</code>). The <code class="highlight"><span class="nx">success</span></code> callback gets the whole JSON object, so it pulls out the list of blog posts with <code class="highlight"><span class="nx">data</span><span class="p">[</span><span class="s1">&#39;entries&#39;</span><span class="p">]</span></code>. If you look in the code on GitHub, you'll see it then looks in for the identifiers in the YouTube and Vimeo embed codes that it needs to use the appropriate player API.</p> <p>Even from JavaScript, the API is a powerful tool you can use to remix blog data. As a blog author, I could see adding this player directly to the blog as a sidebar widget (though it might be hard to show the whole videos there). I hope this gives you an idea of the kinds of fun things you can do with our API. In the future we hope to show you more—and to see what you come up with too!</p> </content> | |
</a:object> | |
<content type="html"> <p>We have great blogs of all sorts on TypePad, and we're building our API so you can remix and experiment with your blog (and other public blogs). Here's an example: our friend Simon Wistow has <a href="http://thegestalt.typepad.com/choon/">a music blog</a> where a few folks post music videos from YouTube and Vimeo. It's a TypePad Micro blog, so it has all the features like favorites and reblog, but there's a particular other feature it doesn't have.</p> <p style="text-align:center"><a href="http://mbvmusic.com/"><img class="asset asset-image at-xid-6a0120a956067b970b0120a96a0028970b" alt="Mbv-play-page" title="Mbv-play-page" src="http://devblog.typepad.com/.a/6a0120a956067b970b0120a96a0028970b-800wi" border="0" width="430" height="217" /></a></p> <p>One feature I love from <a href="http://www.mbvmusic.com/">Ryan Catbird's MBV team music blog</a> is the player that pops up on the first page. Clicking "Play This Page" will then play each mp3 linked on the page in turn. That's great for "reading" the blog in the background while I'm reading or working. How could I adapt this to Simon's blog?</p> <p>Because most of the posts are YouTube and Vimeo videos, I can use TypePad's API with the <a href="http://code.google.com/apis/youtube/js_api_reference.html">YouTube player</a> and <a href="http://vimeo.com/api/docs/moogaloop">Vimeo Moogaloop</a> APIs to play posts from the blog, starting the next one when the previous one ends. Since it's Simon's blog, I made it play in another page, which <a href="http://neologasm.org/choon/">you can see here</a>. (Warning: it starts playing music when you open it!)</p> <p style="text-align:center"><a href="http://neologasm.org/choon/"><img class="asset asset-image at-xid-6a0120a956067b970b01310fd0fcde970c" alt="Choonplayer" title="Choonplayer" src="http://devblog.typepad.com/.a/6a0120a956067b970b01310fd0fcde970c-800wi" width="474" height="323" border="0" /></a></p> <p>This implementation was easy enough to do just in JavaScript. You can <a href="http://github.com/markpasc/choonplayer">see it here on GitHub</a>. In jQuery (or the framework of your choice), the call to get the blog data is:</p> <div class="highlight"><pre><span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">({</span> <span class="nx">dataType</span><span class="o">:</span> <span class="s1">&#39;jsonp&#39;</span><span class="p">,</span> <span class="nx">url</span><span class="o">:</span> <span class="s1">&#39;http://api.typepad.com/blogs/&#39;</span> <span class="o">+</span> <span class="nx">blog_xid</span> <span class="o">+</span> <span class="s1">&#39;/post-assets.js&#39;</span><span class="p">,</span> <span class="nx">data</span><span class="o">:</span> <span class="p">{</span> <span class="s1">&#39;start-index&#39;</span><span class="o">:</span> <span class="nx">skip</span> <span class="p">},</span> <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span> <span class="nx">entries</span> <span class="o">=</span> <span class="nx">data</span><span class="p">[</span><span class="s1">&#39;entries&#39;</span><span class="p">];</span> <span class="nx">playentry</span><span class="p">();</span> <span class="p">}</span> <span class="p">});</span> </pre></div> <p>You can see that it's using JSONP to pull <a href="http://www.typepad.com/services/apidocs/endpoints/blogs/%253Cid%253E/post-assets">the list of blog posts</a> directly from api.typepad.com, so it uses the <code>.js</code> extension on the URL (not <code>.json</code>). The <code class="highlight"><span class="nx">success</span></code> callback gets the whole JSON object, so it pulls out the list of blog posts with <code class="highlight"><span class="nx">data</span><span class="p">[</span><span class="s1">&#39;entries&#39;</span><span class="p">]</span></code>. If you look in the code on GitHub, you'll see it then looks in for the identifiers in the YouTube and Vimeo embed codes that it needs to use the appropriate player API.</p> <p>Even from JavaScript, the API is a powerful tool you can use to remix blog data. As a blog author, I could see adding this player directly to the blog as a sidebar widget (though it might be hard to show the whole videos there). I hope this gives you an idea of the kinds of fun things you can do with our API. In the future we hope to show you more—and to see what you come up with too!</p> </content> | |
<link rel="alternate" type="text/html" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html" /> | |
</entry> | |
<entry> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01310fcb2b50970c</id> | |
<title type="text"> Martin Atkins added 'a face' as a favorite </title> | |
<a:verb>http://activitystrea.ms/schema/1.0/favorite</a:verb> | |
<published>2010-03-22T17:11:31Z</published> | |
<updated>2010-03-22T17:11:31Z</updated> | |
<a:actor> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title type="text">Martin Atkins</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/person</a:object-type> | |
<link rel="alternate" type="text/html" src="http://profile.typepad.com/apparentlymart" /> | |
<link rel="photo" type="image/jpeg" src="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" media:width="75" media:height="75" /> | |
</a:actor> | |
<a:object> | |
<id>tag:api.typepad.com,2009:6a00d83451ce6b69e20120a9564635970b</id> | |
<title type="text">a face</title> | |
<a:object-type>http://activitystrea.ms/schema/1.0/photo</a:object-type> | |
<published>2010-03-19T19:05:46Z</published> | |
<updated>2010-03-20T01:09:18Z</updated> | |
<link rel="alternate" type="text/html" src="http://make-a-face.org/entry/6a00d83451ce6b69e20120a9564635970b" /> | |
<author> | |
<id>tag:api.typepad.com,2009:6p00d83451ce6b69e2</id> | |
<name>markpasc</name> | |
<uri>http://profile.typepad.com/markpasc</uri> | |
</author> | |
<link rel="preview" type="image/jpeg" src="http://a5.typepad.com/6a00d83451ce6b69e20120a9564635970b-120si" width="120" height="120" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a5.typepad.com/6a00d83451ce6b69e20120a9564635970b-640wi" width="400" height="400" /> | |
<link rel="enclosure" type="image/jpeg" src="http://a5.typepad.com/6a00d83451ce6b69e20120a9564635970b-pi" width="400" height="400" /> | |
<content type="html"></content> | |
</a:object> | |
<content type="html"> <p><img src="http://a5.typepad.com/6a00d83451ce6b69e20120a9564635970b-500wi" width="400" height="400"></p> </content> | |
<link rel="alternate" type="text/html" href="http://make-a-face.org/entry/6a00d83451ce6b69e20120a9564635970b" /> | |
</entry> | |
</feed> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<feed xmlns="http://www.w3.org/2005/Atom"> | |
<link rel="self" type="application/atom+xml" href="http://profile.typepad.com/apparentlymart/activity/atom.xml" /> | |
<link rel="hub" href="http://hubbub.api.typepad.com/" /> | |
<id>tag:typepad.com,2003:profile.typepad.com/services/activity/atom/6p010535617444970b</id> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ecaa9e6a970b</id> | |
<published>2010-04-13T21:58:10Z</published> | |
<title>Martin Atkins added 'Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!' as a favorite</title> | |
<content type="html"><p style="text-align: center;"><a href="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-pi"><img alt="Photo 247" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7797970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-500wi" style="display: block; margin-left: auto; margin-right: auto;" /></a> <span style="font-size: 11px;">(that&#39;s my fancy hands way of holding multiple Kit Kat&#39;s, btw)</span></p><p>Kimmie got these special Japanese Kit Kats in Wasabi and Sakura/Green Tea flavor from the Japanese Six Apart team, and I&#39;m happy to report that they&#39;re <strong>MINE</strong> to <strong>EAT!</strong> Unfortunately, both <a href="http://www.winterwebb.com/2010/04/wasabi-kitkat.html">Garth &amp; Kimmie</a> report that the Wasabi variety is kind of underwhelming, but that&#39;s okay.</p><p><img alt="kitkat" border="0" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7677970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7677970b-800wi" style="display: block; margin-left: auto; margin-right: auto;" title="kitkat" /> </p><p><strong>DID YOU KNOW</strong> that there are a TON of Kit Kat flavors out there? The awesome ones are all available in Japan, like Kit Kat Yakimorokoshi (grilled corn), Kit Kat Ginger Ale, and Kit Kat Pickled Plum (to name a few). Sadly, the closest the US comes to Kit Kat varieties is the Kit Kat Carb Alternatives, a low-carb Kit Kat alternative with 50% less sugar. <strong>SIGH.</strong></p><p>Check out all the <a href="http://en.wikipedia.org/wiki/Kit_Kat#Kit_Kat_varieties">Kit Kat flavors here</a>. Neat!</p></content> | |
<link type="text/html" title="Martin Atkins added 'Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!' as a favorite" href="http://tiffchow.typepad.com/tweettiff/2010/04/wasabit-kit-kat-sakuragreen-tea-kit-kat-thank-you-kimmi8.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00e54f7ac65c883301347fda6816970c</id> | |
<title>Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!</title> | |
<published>2010-04-13T21:26:23Z</published> | |
<updated>2010-04-13T21:26:23Z</updated> | |
<content><p style="text-align: center;"><a href="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-pi"><img alt="Photo 247" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7797970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-500wi" style="display: block; margin-left: auto; margin-right: auto;" /></a> <span style="font-size: 11px;">(that&#39;s my fancy hands way of holding multiple Kit Kat&#39;s, btw)</span></p><p>Kimmie got these special Japanese Kit Kats in Wasabi and Sakura/Green Tea flavor from the Japanese Six Apart team, and I&#39;m happy to report that they&#39;re <strong>MINE</strong> to <strong>EAT!</strong> Unfortunately, both <a href="http://www.winterwebb.com/2010/04/wasabi-kitkat.html">Garth &amp; Kimmie</a> report that the Wasabi variety is kind of underwhelming, but that&#39;s okay.</p><p><img alt="kitkat" border="0" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7677970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7677970b-800wi" style="display: block; margin-left: auto; margin-right: auto;" title="kitkat" /> </p><p><strong>DID YOU KNOW</strong> that there are a TON of Kit Kat flavors out there? The awesome ones are all available in Japan, like Kit Kat Yakimorokoshi (grilled corn), Kit Kat Ginger Ale, and Kit Kat Pickled Plum (to name a few). Sadly, the closest the US comes to Kit Kat varieties is the Kit Kat Carb Alternatives, a low-carb Kit Kat alternative with 50% less sugar. <strong>SIGH.</strong></p><p>Check out all the <a href="http://en.wikipedia.org/wiki/Kit_Kat#Kit_Kat_varieties">Kit Kat flavors here</a>. Neat!</p></content> | |
<author> | |
<name>.tiff</name> | |
<uri>http://profile.typepad.com/tiffchow</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00e54f7ac65c8833</id> | |
</author> | |
<link type="text/html" title="Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!" href="http://tiffchow.typepad.com/tweettiff/2010/04/wasabit-kit-kat-sakuragreen-tea-kit-kat-thank-you-kimmi8.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc93d25970c</id> | |
<published>2010-04-10T23:52:17Z</published> | |
<title>Martin Atkins posted 'Only in SF'</title> | |
<content type="html"><blockquote><div><img class=" at-xid-6a01127947363b28a40133ec97b4db970b" height="299" src="http://chromehorse.typepad.com/.a/6a01127947363b28a40133ec97b4db970b-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/2/">missionmission.wordpress.com</a></small></p> </div></blockquote> <p><small>via <a href="http://www.badnima.com/2010/04/only-in-sf.html">www.badnima.com</a></small></p></content> | |
<link type="text/html" title="Martin Atkins posted 'Only in SF'" href="http://notes.apparently.me.uk/2010/04/only-in-sf.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/post</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a010535617444970b01347fc93d1e970c</id> | |
<title>Only in SF</title> | |
<published>2010-04-10T23:52:16Z</published> | |
<updated>2010-04-10T23:52:19Z</updated> | |
<content><blockquote><div><img class=" at-xid-6a01127947363b28a40133ec97b4db970b" height="299" src="http://chromehorse.typepad.com/.a/6a01127947363b28a40133ec97b4db970b-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/2/">missionmission.wordpress.com</a></small></p> </div></blockquote> <p><small>via <a href="http://www.badnima.com/2010/04/only-in-sf.html">www.badnima.com</a></small></p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="Only in SF" href="http://notes.apparently.me.uk/2010/04/only-in-sf.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec992df3970b</id> | |
<published>2010-04-10T23:49:22Z</published> | |
<title>Martin Atkins added 'Hipster overload - sidewalk sunbathing' as a favorite</title> | |
<content type="html"><img class=" at-xid-6a01127947363b28a401347fc7c7c2970c" height="517" src="http://chromehorse.typepad.com/.a/6a01127947363b28a401347fc7c7c2970c-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/5/">missionmission.wordpress.com</a></small></p></content> | |
<link type="text/html" title="Martin Atkins added 'Hipster overload - sidewalk sunbathing' as a favorite" href="http://www.badnima.com/2010/04/hipster-overload---sidewalk-sunbathing.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a01127947363b28a401347fc7c7c9970c</id> | |
<title>Hipster overload - sidewalk sunbathing</title> | |
<published>2010-04-10T16:32:45Z</published> | |
<updated>2010-04-10T16:32:47Z</updated> | |
<content><img class=" at-xid-6a01127947363b28a401347fc7c7c2970c" height="517" src="http://chromehorse.typepad.com/.a/6a01127947363b28a401347fc7c7c2970c-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/5/">missionmission.wordpress.com</a></small></p></content> | |
<author> | |
<name>Nima Badiey</name> | |
<uri>http://profile.typepad.com/badnima</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p01127947363b28a4</id> | |
</author> | |
<link type="text/html" title="Hipster overload - sidewalk sunbathing" href="http://www.badnima.com/2010/04/hipster-overload---sidewalk-sunbathing.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
</feed> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<feed xmlns="http://www.w3.org/2005/Atom"> | |
<link rel="self" type="application/atom+xml" href="http://profile.typepad.com/apparentlymart/activity/atom.xml" /> | |
<link rel="hub" href="http://hubbub.api.typepad.com/" /> | |
<id>tag:typepad.com,2003:profile.typepad.com/services/activity/atom/6p010535617444970b</id> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ecaa9e6a970b</id> | |
<published>2010-04-13T21:58:10Z</published> | |
<title>Martin Atkins added 'Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!' as a favorite</title> | |
<content type="html"><p style="text-align: center;"><a href="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-pi"><img alt="Photo 247" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7797970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-500wi" style="display: block; margin-left: auto; margin-right: auto;" /></a> <span style="font-size: 11px;">(that&#39;s my fancy hands way of holding multiple Kit Kat&#39;s, btw)</span></p><p>Kimmie got these special Japanese Kit Kats in Wasabi and Sakura/Green Tea flavor from the Japanese Six Apart team, and I&#39;m happy to report that they&#39;re <strong>MINE</strong> to <strong>EAT!</strong> Unfortunately, both <a href="http://www.winterwebb.com/2010/04/wasabi-kitkat.html">Garth &amp; Kimmie</a> report that the Wasabi variety is kind of underwhelming, but that&#39;s okay.</p><p><img alt="kitkat" border="0" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7677970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7677970b-800wi" style="display: block; margin-left: auto; margin-right: auto;" title="kitkat" /> </p><p><strong>DID YOU KNOW</strong> that there are a TON of Kit Kat flavors out there? The awesome ones are all available in Japan, like Kit Kat Yakimorokoshi (grilled corn), Kit Kat Ginger Ale, and Kit Kat Pickled Plum (to name a few). Sadly, the closest the US comes to Kit Kat varieties is the Kit Kat Carb Alternatives, a low-carb Kit Kat alternative with 50% less sugar. <strong>SIGH.</strong></p><p>Check out all the <a href="http://en.wikipedia.org/wiki/Kit_Kat#Kit_Kat_varieties">Kit Kat flavors here</a>. Neat!</p></content> | |
<link type="text/html" title="Martin Atkins added 'Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!' as a favorite" href="http://tiffchow.typepad.com/tweettiff/2010/04/wasabit-kit-kat-sakuragreen-tea-kit-kat-thank-you-kimmi8.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00e54f7ac65c883301347fda6816970c</id> | |
<title>Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!</title> | |
<published>2010-04-13T21:26:23Z</published> | |
<updated>2010-04-13T21:26:23Z</updated> | |
<content><p style="text-align: center;"><a href="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-pi"><img alt="Photo 247" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7797970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7797970b-500wi" style="display: block; margin-left: auto; margin-right: auto;" /></a> <span style="font-size: 11px;">(that&#39;s my fancy hands way of holding multiple Kit Kat&#39;s, btw)</span></p><p>Kimmie got these special Japanese Kit Kats in Wasabi and Sakura/Green Tea flavor from the Japanese Six Apart team, and I&#39;m happy to report that they&#39;re <strong>MINE</strong> to <strong>EAT!</strong> Unfortunately, both <a href="http://www.winterwebb.com/2010/04/wasabi-kitkat.html">Garth &amp; Kimmie</a> report that the Wasabi variety is kind of underwhelming, but that&#39;s okay.</p><p><img alt="kitkat" border="0" class="asset asset-image at-xid-6a00e54f7ac65c88330133ecaa7677970b " src="http://tiffchow.typepad.com/.a/6a00e54f7ac65c88330133ecaa7677970b-800wi" style="display: block; margin-left: auto; margin-right: auto;" title="kitkat" /> </p><p><strong>DID YOU KNOW</strong> that there are a TON of Kit Kat flavors out there? The awesome ones are all available in Japan, like Kit Kat Yakimorokoshi (grilled corn), Kit Kat Ginger Ale, and Kit Kat Pickled Plum (to name a few). Sadly, the closest the US comes to Kit Kat varieties is the Kit Kat Carb Alternatives, a low-carb Kit Kat alternative with 50% less sugar. <strong>SIGH.</strong></p><p>Check out all the <a href="http://en.wikipedia.org/wiki/Kit_Kat#Kit_Kat_varieties">Kit Kat flavors here</a>. Neat!</p></content> | |
<author> | |
<name>.tiff</name> | |
<uri>http://profile.typepad.com/tiffchow</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00e54f7ac65c8833</id> | |
</author> | |
<link type="text/html" title="Wasabit Kit Kat! Sakura/Green Tea Kit Kat! Thank you @kimmi8!" href="http://tiffchow.typepad.com/tweettiff/2010/04/wasabit-kit-kat-sakuragreen-tea-kit-kat-thank-you-kimmi8.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc93d25970c</id> | |
<published>2010-04-10T23:52:17Z</published> | |
<title>Martin Atkins posted 'Only in SF'</title> | |
<content type="html"><blockquote><div><img class=" at-xid-6a01127947363b28a40133ec97b4db970b" height="299" src="http://chromehorse.typepad.com/.a/6a01127947363b28a40133ec97b4db970b-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/2/">missionmission.wordpress.com</a></small></p> </div></blockquote> <p><small>via <a href="http://www.badnima.com/2010/04/only-in-sf.html">www.badnima.com</a></small></p></content> | |
<link type="text/html" title="Martin Atkins posted 'Only in SF'" href="http://notes.apparently.me.uk/2010/04/only-in-sf.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/post</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a010535617444970b01347fc93d1e970c</id> | |
<title>Only in SF</title> | |
<published>2010-04-10T23:52:16Z</published> | |
<updated>2010-04-10T23:52:19Z</updated> | |
<content><blockquote><div><img class=" at-xid-6a01127947363b28a40133ec97b4db970b" height="299" src="http://chromehorse.typepad.com/.a/6a01127947363b28a40133ec97b4db970b-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/2/">missionmission.wordpress.com</a></small></p> </div></blockquote> <p><small>via <a href="http://www.badnima.com/2010/04/only-in-sf.html">www.badnima.com</a></small></p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="Only in SF" href="http://notes.apparently.me.uk/2010/04/only-in-sf.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec992df3970b</id> | |
<published>2010-04-10T23:49:22Z</published> | |
<title>Martin Atkins added 'Hipster overload - sidewalk sunbathing' as a favorite</title> | |
<content type="html"><img class=" at-xid-6a01127947363b28a401347fc7c7c2970c" height="517" src="http://chromehorse.typepad.com/.a/6a01127947363b28a401347fc7c7c2970c-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/5/">missionmission.wordpress.com</a></small></p></content> | |
<link type="text/html" title="Martin Atkins added 'Hipster overload - sidewalk sunbathing' as a favorite" href="http://www.badnima.com/2010/04/hipster-overload---sidewalk-sunbathing.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a01127947363b28a401347fc7c7c9970c</id> | |
<title>Hipster overload - sidewalk sunbathing</title> | |
<published>2010-04-10T16:32:45Z</published> | |
<updated>2010-04-10T16:32:47Z</updated> | |
<content><img class=" at-xid-6a01127947363b28a401347fc7c7c2970c" height="517" src="http://chromehorse.typepad.com/.a/6a01127947363b28a401347fc7c7c2970c-pi" width="450" /> <p><small>via <a href="http://missionmission.wordpress.com/page/5/">missionmission.wordpress.com</a></small></p></content> | |
<author> | |
<name>Nima Badiey</name> | |
<uri>http://profile.typepad.com/badnima</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p01127947363b28a4</id> | |
</author> | |
<link type="text/html" title="Hipster overload - sidewalk sunbathing" href="http://www.badnima.com/2010/04/hipster-overload---sidewalk-sunbathing.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc8b99e970c</id> | |
<published>2010-04-10T21:12:18Z</published> | |
<title>Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite</title> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link type="text/html" title="Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title>Cross-Origin Resource Sharing</title> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<content><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="Cross-Origin Resource Sharing" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc8b998970c</id> | |
<published>2010-04-10T21:12:15Z</published> | |
<title>Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite</title> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link type="text/html" title="Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title>Cross-Origin Resource Sharing</title> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<content><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="Cross-Origin Resource Sharing" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec98aff6970b</id> | |
<published>2010-04-10T21:12:13Z</published> | |
<title>Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite</title> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link type="text/html" title="Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title>Cross-Origin Resource Sharing</title> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<content><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="Cross-Origin Resource Sharing" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec98afec970b</id> | |
<published>2010-04-10T21:12:09Z</published> | |
<title>Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite</title> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link type="text/html" title="Martin Atkins added 'Cross-Origin Resource Sharing' as a favorite" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title>Cross-Origin Resource Sharing</title> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<content><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="Cross-Origin Resource Sharing" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc8b25a970c</id> | |
<published>2010-04-10T21:04:45Z</published> | |
<title>Martin Atkins added 'Chris Heisel's short introduction to Django and Gearman' as a favorite</title> | |
<content type="html"><a href="http://heisel.org/blog/2009/09/11/gearman/"><img class="at-xid-6a00d83451ce6b69e201347fc8abea970c " height="200" src="http://markpasc.typepad.com/.a/6a00d83451ce6b69e201347fc8abea970c-pi" width="300" /></a> <p><small>via <a href="http://heisel.org/blog/2009/09/11/gearman/">heisel.org</a></small></p></content> | |
<link type="text/html" title="Martin Atkins added 'Chris Heisel's short introduction to Django and Gearman' as a favorite" href="http://markpasc.typepad.com/blog/2010/04/chris-heisels-short-introduction-to-django-and-gearman.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00d83451ce6b69e201347fc8abf0970c</id> | |
<title>Chris Heisel's short introduction to Django and Gearman</title> | |
<published>2010-04-10T20:57:36Z</published> | |
<updated>2010-04-10T21:00:05Z</updated> | |
<content><a href="http://heisel.org/blog/2009/09/11/gearman/"><img class="at-xid-6a00d83451ce6b69e201347fc8abea970c " height="200" src="http://markpasc.typepad.com/.a/6a00d83451ce6b69e201347fc8abea970c-pi" width="300" /></a> <p><small>via <a href="http://heisel.org/blog/2009/09/11/gearman/">heisel.org</a></small></p></content> | |
<author> | |
<name>markpasc</name> | |
<uri>http://profile.typepad.com/markpasc</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00d83451ce6b69e2</id> | |
</author> | |
<link type="text/html" title="Chris Heisel's short introduction to Django and Gearman" href="http://markpasc.typepad.com/blog/2010/04/chris-heisels-short-introduction-to-django-and-gearman.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec98a7e3970b</id> | |
<published>2010-04-10T21:03:06Z</published> | |
<title>Martin Atkins commented on 'Cable binding'</title> | |
<content type="html"><p>This solution is a bit hi-tech for my liking.</p> <p>My solution was just to plug in all of the cables to find their &quot;natural&quot; positions and then tape them to the desk. That way they stay in close proximity to the socket they&#39;ll be plugged into every day.</p></content> | |
<link type="text/html" title="Martin Atkins commented on 'Cable binding'" href="http://markpasc.typepad.com/blog/2010/03/cable-binding.html?cid=6a00d83451ce6b69e20133ec98a7da970b#comment-6a00d83451ce6b69e20133ec98a7da970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/post</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/comment</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00d83451ce6b69e20133ec98a7da970b</id> | |
<title/> | |
<published>2010-04-10T21:03:03Z</published> | |
<updated>2010-04-10T21:10:14Z</updated> | |
<content><p>This solution is a bit hi-tech for my liking.</p> <p>My solution was just to plug in all of the cables to find their &quot;natural&quot; positions and then tape them to the desk. That way they stay in close proximity to the socket they&#39;ll be plugged into every day.</p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="" href="http://markpasc.typepad.com/blog/2010/03/cable-binding.html?cid=6a00d83451ce6b69e20133ec98a7da970b#comment-6a00d83451ce6b69e20133ec98a7da970b" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc54210970c</id> | |
<published>2010-04-10T03:12:00Z</published> | |
<title>Martin Atkins is now following hachi</title> | |
<summary type="text"/> | |
<link type="text/html" title="Martin Atkins is now following hachi" href="http://profile.typepad.com/hachi" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/follow</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<id>tag:api.typepad.com,2009:6p00d83424729053ef</id> | |
<title>hachi</title> | |
<published>2010-04-10T03:12:00Z</published> | |
<content/> | |
<link type="text/html" title="hachi" href="http://profile.typepad.com/hachi" rel="alternate"/> | |
<link type="image/jpeg" title="hachi" href="http://up0.typepad.com/6a00d83424729053ef01287649e041970c-75si" rel="photo"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc38949970c</id> | |
<published>2010-04-09T20:02:37Z</published> | |
<title>Martin Atkins added a favorite</title> | |
<content type="html"><blockquote><p>How much does Eloise know about the nature of the timeline? Where did she get her knowledge?</p></blockquote> I think Eloise knows enough about the nature of the timeline that she knows that in the alternate timeline she murders her own son. And she desperately needs to avoid having that timeline come "true," which is why she's adamant about Desmond not getting involved in anything related to Penny, lest it cause him to jump back and forth between the two. I have no idea how she learned that, though...</content> | |
<link type="text/html" title="Martin Atkins added a favorite" href="http://mini.sippey.com/2010/04/how-much-does-eloise-know-about-the-nature-of-the-timeline-where-did-she-get-her-knowledge--i-think-eloise-knows-enough-abo.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/note</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00d8341c4f5f53ef0133ec930ed4970b</id> | |
<title/> | |
<published>2010-04-09T18:09:12Z</published> | |
<updated>2010-04-09T18:09:13Z</updated> | |
<content><blockquote><p>How much does Eloise know about the nature of the timeline? Where did she get her knowledge?</p></blockquote> I think Eloise knows enough about the nature of the timeline that she knows that in the alternate timeline she murders her own son. And she desperately needs to avoid having that timeline come "true," which is why she's adamant about Desmond not getting involved in anything related to Penny, lest it cause him to jump back and forth between the two. I have no idea how she learned that, though...</content> | |
<author> | |
<name>Michael Sippey</name> | |
<uri>http://profile.typepad.com/sippey</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00d8341c4f5f53ef</id> | |
</author> | |
<link type="text/html" title="" href="http://mini.sippey.com/2010/04/how-much-does-eloise-know-about-the-nature-of-the-timeline-where-did-she-get-her-knowledge--i-think-eloise-knows-enough-abo.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fc2b598970c</id> | |
<published>2010-04-09T16:49:59Z</published> | |
<title>Martin Atkins added a favorite</title> | |
<content type="html"><blockquote><p>How can Desmond survive such extreme exposure to electromagnetism?</p></blockquote> He was born under the bad sign? No, I think it's probably because he was given special powers from Jacob so we could survive if for some reason he couldn't enter the code at the station.</content> | |
<link type="text/html" title="Martin Atkins added a favorite" href="http://capndesign.typepad.com/micro/2010/04/how-can-desmond-survive-such-extreme-exposure-to-electromagnetism--he-was-born-under-the-bad-sign-no-i-think-its-probably.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/note</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00d83455847069e20133ec9275fb970b</id> | |
<title/> | |
<published>2010-04-09T16:08:02Z</published> | |
<updated>2010-04-09T16:08:04Z</updated> | |
<content><blockquote><p>How can Desmond survive such extreme exposure to electromagnetism?</p></blockquote> He was born under the bad sign? No, I think it's probably because he was given special powers from Jacob so we could survive if for some reason he couldn't enter the code at the station.</content> | |
<author> | |
<name>Matt Jacobs</name> | |
<uri>http://profile.typepad.com/capndesign</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00d83455847069e2</id> | |
</author> | |
<link type="text/html" title="" href="http://capndesign.typepad.com/micro/2010/04/how-can-desmond-survive-such-extreme-exposure-to-electromagnetism--he-was-born-under-the-bad-sign-no-i-think-its-probably.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8eb353970b</id> | |
<published>2010-04-09T00:37:36Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a7.typepad.com/6a00d83451ce6b69e20133ec68ef97970b-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a00d83451ce6b69e20133ec68ef97970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00d83451ce6b69e20133ec68ef97970b</id> | |
<title>a face</title> | |
<published>2010-04-02T17:18:03Z</published> | |
<updated>2010-04-02T20:01:09Z</updated> | |
<content/> | |
<author> | |
<name>markpasc</name> | |
<uri>http://profile.typepad.com/markpasc</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00d83451ce6b69e2</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a00d83451ce6b69e20133ec68ef97970b" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a7.typepad.com/6a00d83451ce6b69e20133ec68ef97970b-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a7.typepad.com/6a00d83451ce6b69e20133ec68ef97970b-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a7.typepad.com/6a00d83451ce6b69e20133ec68ef97970b-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fbe6fec970c</id> | |
<published>2010-04-08T23:46:14Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a1.typepad.com/6a00d8341e3ac753ef0133ec8e0c09970b-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a00d8341e3ac753ef0133ec8e0c09970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00d8341e3ac753ef0133ec8e0c09970b</id> | |
<title>a face</title> | |
<published>2010-04-08T22:07:36Z</published> | |
<updated>2010-04-08T23:14:37Z</updated> | |
<content/> | |
<author> | |
<name>David Jacobs</name> | |
<uri>http://profile.typepad.com/david</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00d8341e3ac753ef</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a00d8341e3ac753ef0133ec8e0c09970b" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a00d8341e3ac753ef0133ec8e0c09970b-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a00d8341e3ac753ef0133ec8e0c09970b-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a00d8341e3ac753ef0133ec8e0c09970b-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8e719f970b</id> | |
<published>2010-04-08T23:46:09Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a2.typepad.com/6a00d8341c4f5f53ef01347fb7a53a970c-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a00d8341c4f5f53ef01347fb7a53a970c" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00d8341c4f5f53ef01347fb7a53a970c</id> | |
<title>a face</title> | |
<published>2010-04-07T21:23:22Z</published> | |
<updated>2010-04-07T22:17:55Z</updated> | |
<content/> | |
<author> | |
<name>Michael Sippey</name> | |
<uri>http://profile.typepad.com/sippey</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00d8341c4f5f53ef</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a00d8341c4f5f53ef01347fb7a53a970c" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a2.typepad.com/6a00d8341c4f5f53ef01347fb7a53a970c-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a2.typepad.com/6a00d8341c4f5f53ef01347fb7a53a970c-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a2.typepad.com/6a00d8341c4f5f53ef01347fb7a53a970c-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01347fbe6fca970c</id> | |
<published>2010-04-08T23:46:05Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a6.typepad.com/6a010534988cd3970b01347f99f87e970c-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a010534988cd3970b01347f99f87e970c" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a010534988cd3970b01347f99f87e970c</id> | |
<title>a face</title> | |
<published>2010-04-02T22:04:43Z</published> | |
<updated>2010-04-03T00:30:57Z</updated> | |
<content/> | |
<author> | |
<name>Steve Ivy</name> | |
<uri>http://profile.typepad.com/monkinetic</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010534988cd3970b</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a010534988cd3970b01347f99f87e970c" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a6.typepad.com/6a010534988cd3970b01347f99f87e970c-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a6.typepad.com/6a010534988cd3970b01347f99f87e970c-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a6.typepad.com/6a010534988cd3970b01347f99f87e970c-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8e7138970b</id> | |
<published>2010-04-08T23:45:36Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a2.typepad.com/6a00e5539faa3b88330133ec741e12970b-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a00e5539faa3b88330133ec741e12970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00e5539faa3b88330133ec741e12970b</id> | |
<title>a face</title> | |
<published>2010-04-04T17:40:00Z</published> | |
<updated>2010-04-04T17:53:27Z</updated> | |
<content/> | |
<author> | |
<name>nataliepo</name> | |
<uri>http://profile.typepad.com/nataliepo</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00e5539faa3b8833</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a00e5539faa3b88330133ec741e12970b" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a2.typepad.com/6a00e5539faa3b88330133ec741e12970b-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a2.typepad.com/6a00e5539faa3b88330133ec741e12970b-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a2.typepad.com/6a00e5539faa3b88330133ec741e12970b-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8e70fa970b</id> | |
<published>2010-04-08T23:45:25Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a1.typepad.com/6a00e54f7ac65c88330133ec8dc4c1970b-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a00e54f7ac65c88330133ec8dc4c1970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00e54f7ac65c88330133ec8dc4c1970b</id> | |
<title>a face</title> | |
<published>2010-04-08T21:08:10Z</published> | |
<updated>2010-04-08T23:14:37Z</updated> | |
<content/> | |
<author> | |
<name>.tiff</name> | |
<uri>http://profile.typepad.com/tiffchow</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00e54f7ac65c8833</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a00e54f7ac65c88330133ec8dc4c1970b" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a00e54f7ac65c88330133ec8dc4c1970b-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a00e54f7ac65c88330133ec8dc4c1970b-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a00e54f7ac65c88330133ec8dc4c1970b-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0133ec8cc796970b</id> | |
<published>2010-04-08T17:44:21Z</published> | |
<title>Martin Atkins posted 'New York Gets Destroyed, 8-bit Style'</title> | |
<content type="html"><embed allowfullscreen="true" allowscriptaccess="always" height="460" src="http://www.dailymotion.com/swf/video/xcv6dv" style="visibility: visible; " type="application/x-shockwave-flash" width="640" wmode="opaque" /> <p><small>via <a href="http://mashable.com/2010/04/08/new-york-destroyed-8-bit/">mashable.com</a></small></p></content> | |
<link type="text/html" title="Martin Atkins posted 'New York Gets Destroyed, 8-bit Style'" href="http://notes.apparently.me.uk/2010/04/new-york-gets-destroyed-8-bit-style.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/post</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a010535617444970b0133ec8cc790970b</id> | |
<title>New York Gets Destroyed, 8-bit Style</title> | |
<published>2010-04-08T17:44:21Z</published> | |
<updated>2010-04-08T17:44:23Z</updated> | |
<content><embed allowfullscreen="true" allowscriptaccess="always" height="460" src="http://www.dailymotion.com/swf/video/xcv6dv" style="visibility: visible; " type="application/x-shockwave-flash" width="640" wmode="opaque" /> <p><small>via <a href="http://mashable.com/2010/04/08/new-york-destroyed-8-bit/">mashable.com</a></small></p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="New York Gets Destroyed, 8-bit Style" href="http://notes.apparently.me.uk/2010/04/new-york-gets-destroyed-8-bit-style.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01310ffddefa970c</id> | |
<published>2010-03-30T23:31:51Z</published> | |
<title>Martin Atkins posted 'Cross-Origin Resource Sharing'</title> | |
<content type="html"><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<link type="text/html" title="Martin Atkins posted 'Cross-Origin Resource Sharing'" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/post</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b01310ffd76b2970c</id> | |
<title>Cross-Origin Resource Sharing</title> | |
<published>2010-03-30T23:31:51Z</published> | |
<updated>2010-03-30T23:31:56Z</updated> | |
<content><p>JSON-P is a popular trick for doing cross-domain data requests and producing client-side mashups. It works by having the consuming site include a normal HTML script element which references an endpoint on the providing site. The providing site endpoint then generates a JavaScript source file which does a function call to some function in the consuming page.</p> <p>This trick has enabled a lot of interesting mashups, including <a href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html">Mark's ChoonPlayer app</a> which combines TypePad blog data with the YouTube and Vimeo player APIs and the SoundManager audio player to produce an alternative UI which is tailored for this particular blog, or my own <a href="http://martin.atkins.me.uk/peoplesearch/">People Search</a> app which combines Google Search with <a href="http://code.google.com/apis/socialgraph/">the Social Graph API</a>. (Try searching for your own name and see what it finds!)</p> <p>However, like all clever tricks JSON-P does have its drawbacks. From a provider's perspective it's annoying to have to provide a separate endpoint which provides the same data in a marginally different way, and from the consuming site's perspective it requires some hoop-jumping to implement robustly and the loading of script content from another domain can interfere with scripts already running on the page.</p> <p>Over in the W3C web apps working group they're working on a more robust alternative to JSON-P, called Cross-origin Resource Sharing or "CORS". This mechanism extends the existing XMLHttpRequest API to support cross-domain requests to sites that explicitly opt-in to accepting cross-domain requests. It's easy to enable functionality equivalent to JSON-P by just adding one additional HTTP header to the response on your existing JSON GET endpoint:</p> <blockquote> <pre>Access-Control-Allow-Origin: *</pre> </blockquote> <p>We thought this was pretty neat, so we've now made the TypePad API return this header in all situations where JSON-P was already possible. Right now browser support is limited to the latest Gecko- and Webkit-based browsers (including Firefox, Safari and Chrome) so it's really only appropriate for toy apps, but in these browsers you can now seamlessly use XMLHttpRequest &mdash; or the wrapper around it in your favorite JavaScript framework &mdash; to make requests to the TypePad API.</p> <p>Anyone who is currently offering a JSON-P interface to data should be able to easily add CORS-based access to the raw, JSON-only equivalent endpoint with only a few seconds work, just as we did&hellip; and once browser support catches up, it should enable client-side mashups to be implemented more easily and more robustly.</p> <p>CORS also includes support for allowing cross-domain POST, PUT and DELETE requests and several other capabilities not afforded by JSON-P. Enabling this requires a little more effort and consideration than enabling a cross-domain GET, and we've not yet figured out in what form we'd enable this for the TypePad API, but it's exciting that this specification could create even more opportunities for innovation and experimentation via cross-service mashups.</p> <p>You can read more about CORS in <a href="http://www.w3.org/TR/cors/">the W3C Working Draft</a> and <a href="https://developer.mozilla.org/En/HTTP_access_control">Mozilla's article about CORS support in Firefox</a>. Implementing it for unauthenticated GET requests is so easy it's hard to resist!</p></content> | |
<author> | |
<name>Martin Atkins</name> | |
<uri>http://profile.typepad.com/apparentlymart</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
</author> | |
<link type="text/html" title="Cross-Origin Resource Sharing" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/readonly-cors-support-in-typepad-api.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01310fd7305e970c</id> | |
<published>2010-03-24T15:46:57Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a0.typepad.com/6a00e5539faa3b88330120a9693c80970b-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a00e5539faa3b88330120a9693c80970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00e5539faa3b88330120a9693c80970b</id> | |
<title>a face</title> | |
<published>2010-03-23T14:13:57Z</published> | |
<updated>2010-03-23T17:17:39Z</updated> | |
<content/> | |
<author> | |
<name>nataliepo</name> | |
<uri>http://profile.typepad.com/nataliepo</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00e5539faa3b8833</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a00e5539faa3b88330120a9693c80970b" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a0.typepad.com/6a00e5539faa3b88330120a9693c80970b-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a0.typepad.com/6a00e5539faa3b88330120a9693c80970b-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a0.typepad.com/6a00e5539faa3b88330120a9693c80970b-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0120a9703783970b</id> | |
<published>2010-03-24T15:46:24Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a6.typepad.com/6a0120a965509e970b0120a9676626970b-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a0120a965509e970b0120a9676626970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a0120a965509e970b0120a9676626970b</id> | |
<title>a face</title> | |
<published>2010-03-23T05:29:28Z</published> | |
<updated>2010-03-23T05:29:29Z</updated> | |
<content/> | |
<author> | |
<name>Michael Summers</name> | |
<uri>http://profile.typepad.com/michaelsummers</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p0120a965509e970b</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a0120a965509e970b0120a9676626970b" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a6.typepad.com/6a0120a965509e970b0120a9676626970b-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a6.typepad.com/6a0120a965509e970b0120a9676626970b-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a6.typepad.com/6a0120a965509e970b0120a9676626970b-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0120a970372c970b</id> | |
<published>2010-03-24T15:46:10Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a1.typepad.com/6a0120a964c8c4970b0120a9676a39970b-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a0120a964c8c4970b0120a9676a39970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a0120a964c8c4970b0120a9676a39970b</id> | |
<title>a face</title> | |
<published>2010-03-23T05:32:33Z</published> | |
<updated>2010-03-23T05:32:34Z</updated> | |
<content/> | |
<author> | |
<name>Sarah Allen</name> | |
<uri>http://profile.typepad.com/sarahallen</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p0120a964c8c4970b</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a0120a964c8c4970b0120a9676a39970b" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a0120a964c8c4970b0120a9676a39970b-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a0120a964c8c4970b0120a9676a39970b-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a1.typepad.com/6a0120a964c8c4970b0120a9676a39970b-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b0120a96b95f4970b</id> | |
<published>2010-03-23T21:51:10Z</published> | |
<title>Martin Atkins added 'Blogs at play' as a favorite</title> | |
<content type="html"><p>We have great blogs of all sorts on TypePad, and we're building our API so you can remix and experiment with your blog (and other public blogs). Here's an example: our friend Simon Wistow has <a href="http://thegestalt.typepad.com/choon/">a music blog</a> where a few folks post music videos from YouTube and Vimeo. It's a TypePad Micro blog, so it has all the features like favorites and reblog, but there's a particular other feature it doesn't have.</p> <p style="text-align:center"><a href="http://mbvmusic.com/"><img class="asset asset-image at-xid-6a0120a956067b970b0120a96a0028970b" alt="Mbv-play-page" title="Mbv-play-page" src="http://devblog.typepad.com/.a/6a0120a956067b970b0120a96a0028970b-800wi" border="0" width="430" height="217" /></a></p> <p>One feature I love from <a href="http://www.mbvmusic.com/">Ryan Catbird's MBV team music blog</a> is the player that pops up on the first page. Clicking "Play This Page" will then play each mp3 linked on the page in turn. That's great for "reading" the blog in the background while I'm reading or working. How could I adapt this to Simon's blog?</p> <p>Because most of the posts are YouTube and Vimeo videos, I can use TypePad's API with the <a href="http://code.google.com/apis/youtube/js_api_reference.html">YouTube player</a> and <a href="http://vimeo.com/api/docs/moogaloop">Vimeo Moogaloop</a> APIs to play posts from the blog, starting the next one when the previous one ends. Since it's Simon's blog, I made it play in another page, which <a href="http://neologasm.org/choon/">you can see here</a>. (Warning: it starts playing music when you open it!)</p> <p style="text-align:center"><a href="http://neologasm.org/choon/"><img class="asset asset-image at-xid-6a0120a956067b970b01310fd0fcde970c" alt="Choonplayer" title="Choonplayer" src="http://devblog.typepad.com/.a/6a0120a956067b970b01310fd0fcde970c-800wi" width="474" height="323" border="0" /></a></p> <p>This implementation was easy enough to do just in JavaScript. You can <a href="http://github.com/markpasc/choonplayer">see it here on GitHub</a>. In jQuery (or the framework of your choice), the call to get the blog data is:</p> <div class="highlight"><pre><span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">({</span> <span class="nx">dataType</span><span class="o">:</span> <span class="s1">&#39;jsonp&#39;</span><span class="p">,</span> <span class="nx">url</span><span class="o">:</span> <span class="s1">&#39;http://api.typepad.com/blogs/&#39;</span> <span class="o">+</span> <span class="nx">blog_xid</span> <span class="o">+</span> <span class="s1">&#39;/post-assets.js&#39;</span><span class="p">,</span> <span class="nx">data</span><span class="o">:</span> <span class="p">{</span> <span class="s1">&#39;start-index&#39;</span><span class="o">:</span> <span class="nx">skip</span> <span class="p">},</span> <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span> <span class="nx">entries</span> <span class="o">=</span> <span class="nx">data</span><span class="p">[</span><span class="s1">&#39;entries&#39;</span><span class="p">];</span> <span class="nx">playentry</span><span class="p">();</span> <span class="p">}</span> <span class="p">});</span> </pre></div> <p>You can see that it's using JSONP to pull <a href="http://www.typepad.com/services/apidocs/endpoints/blogs/%253Cid%253E/post-assets">the list of blog posts</a> directly from api.typepad.com, so it uses the <code>.js</code> extension on the URL (not <code>.json</code>). The <code class="highlight"><span class="nx">success</span></code> callback gets the whole JSON object, so it pulls out the list of blog posts with <code class="highlight"><span class="nx">data</span><span class="p">[</span><span class="s1">&#39;entries&#39;</span><span class="p">]</span></code>. If you look in the code on GitHub, you'll see it then looks in for the identifiers in the YouTube and Vimeo embed codes that it needs to use the appropriate player API.</p> <p>Even from JavaScript, the API is a powerful tool you can use to remix blog data. As a blog author, I could see adding this player directly to the blog as a sidebar widget (though it might be hard to show the whole videos there). I hope this gives you an idea of the kinds of fun things you can do with our API. In the future we hope to show you more—and to see what you come up with too!</p></content> | |
<link type="text/html" title="Martin Atkins added 'Blogs at play' as a favorite" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/blog-entry</as:object-type> | |
<id>tag:api.typepad.com,2009:6a0120a956067b970b0120a96a1301970b</id> | |
<title>Blogs at play</title> | |
<published>2010-03-23T16:54:07Z</published> | |
<updated>2010-03-30T21:03:59Z</updated> | |
<content><p>We have great blogs of all sorts on TypePad, and we're building our API so you can remix and experiment with your blog (and other public blogs). Here's an example: our friend Simon Wistow has <a href="http://thegestalt.typepad.com/choon/">a music blog</a> where a few folks post music videos from YouTube and Vimeo. It's a TypePad Micro blog, so it has all the features like favorites and reblog, but there's a particular other feature it doesn't have.</p> <p style="text-align:center"><a href="http://mbvmusic.com/"><img class="asset asset-image at-xid-6a0120a956067b970b0120a96a0028970b" alt="Mbv-play-page" title="Mbv-play-page" src="http://devblog.typepad.com/.a/6a0120a956067b970b0120a96a0028970b-800wi" border="0" width="430" height="217" /></a></p> <p>One feature I love from <a href="http://www.mbvmusic.com/">Ryan Catbird's MBV team music blog</a> is the player that pops up on the first page. Clicking "Play This Page" will then play each mp3 linked on the page in turn. That's great for "reading" the blog in the background while I'm reading or working. How could I adapt this to Simon's blog?</p> <p>Because most of the posts are YouTube and Vimeo videos, I can use TypePad's API with the <a href="http://code.google.com/apis/youtube/js_api_reference.html">YouTube player</a> and <a href="http://vimeo.com/api/docs/moogaloop">Vimeo Moogaloop</a> APIs to play posts from the blog, starting the next one when the previous one ends. Since it's Simon's blog, I made it play in another page, which <a href="http://neologasm.org/choon/">you can see here</a>. (Warning: it starts playing music when you open it!)</p> <p style="text-align:center"><a href="http://neologasm.org/choon/"><img class="asset asset-image at-xid-6a0120a956067b970b01310fd0fcde970c" alt="Choonplayer" title="Choonplayer" src="http://devblog.typepad.com/.a/6a0120a956067b970b01310fd0fcde970c-800wi" width="474" height="323" border="0" /></a></p> <p>This implementation was easy enough to do just in JavaScript. You can <a href="http://github.com/markpasc/choonplayer">see it here on GitHub</a>. In jQuery (or the framework of your choice), the call to get the blog data is:</p> <div class="highlight"><pre><span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">({</span> <span class="nx">dataType</span><span class="o">:</span> <span class="s1">&#39;jsonp&#39;</span><span class="p">,</span> <span class="nx">url</span><span class="o">:</span> <span class="s1">&#39;http://api.typepad.com/blogs/&#39;</span> <span class="o">+</span> <span class="nx">blog_xid</span> <span class="o">+</span> <span class="s1">&#39;/post-assets.js&#39;</span><span class="p">,</span> <span class="nx">data</span><span class="o">:</span> <span class="p">{</span> <span class="s1">&#39;start-index&#39;</span><span class="o">:</span> <span class="nx">skip</span> <span class="p">},</span> <span class="nx">success</span><span class="o">:</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span> <span class="nx">entries</span> <span class="o">=</span> <span class="nx">data</span><span class="p">[</span><span class="s1">&#39;entries&#39;</span><span class="p">];</span> <span class="nx">playentry</span><span class="p">();</span> <span class="p">}</span> <span class="p">});</span> </pre></div> <p>You can see that it's using JSONP to pull <a href="http://www.typepad.com/services/apidocs/endpoints/blogs/%253Cid%253E/post-assets">the list of blog posts</a> directly from api.typepad.com, so it uses the <code>.js</code> extension on the URL (not <code>.json</code>). The <code class="highlight"><span class="nx">success</span></code> callback gets the whole JSON object, so it pulls out the list of blog posts with <code class="highlight"><span class="nx">data</span><span class="p">[</span><span class="s1">&#39;entries&#39;</span><span class="p">]</span></code>. If you look in the code on GitHub, you'll see it then looks in for the identifiers in the YouTube and Vimeo embed codes that it needs to use the appropriate player API.</p> <p>Even from JavaScript, the API is a powerful tool you can use to remix blog data. As a blog author, I could see adding this player directly to the blog as a sidebar widget (though it might be hard to show the whole videos there). I hope this gives you an idea of the kinds of fun things you can do with our API. In the future we hope to show you more—and to see what you come up with too!</p></content> | |
<author> | |
<name>markpasc</name> | |
<uri>http://profile.typepad.com/markpasc</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00d83451ce6b69e2</id> | |
</author> | |
<link type="text/html" title="Blogs at play" href="http://devblog.typepad.com/typepad-dev-blog/2010/03/blogs-at-play.html" rel="alternate"/> | |
</as:object> | |
</entry> | |
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss" xmlns:as="http://activitystrea.ms/spec/1.0/"> | |
<id>tag:api.typepad.com,2009:6e010535617444970b01310fcb2b50970c</id> | |
<published>2010-03-22T17:11:31Z</published> | |
<title>Martin Atkins added 'a face' as a favorite</title> | |
<content type="html"><p><img src="http://a5.typepad.com/6a00d83451ce6b69e20120a9564635970b-500wi" width="400" height="400"></p></content> | |
<link type="text/html" title="Martin Atkins added 'a face' as a favorite" href="http://make-a-face.org/entry/6a00d83451ce6b69e20120a9564635970b" rel="alternate"/> | |
<author> | |
<name>Martin Atkins</name> | |
<uri/> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p010535617444970b</id> | |
<title>Martin Atkins</title> | |
<as:object-type>http://activitystrea.ms/schema/1.0/person</as:object-type> | |
<link type="text/html" title="Martin Atkins" href="http://profile.typepad.com/apparentlymart" rel="alternate"/> | |
<link type="image/jpeg" title="Martin Atkins" href="http://up4.typepad.com/6a010535617444970b0120a5aa75ce970c-75si" rel="photo"/> | |
</author> | |
<as:verb>http://activitystrea.ms/schema/1.0/favorite</as:verb> | |
<as:object> | |
<as:object-type>http://activitystrea.ms/schema/1.0/photo</as:object-type> | |
<id>tag:api.typepad.com,2009:6a00d83451ce6b69e20120a9564635970b</id> | |
<title>a face</title> | |
<published>2010-03-19T19:05:46Z</published> | |
<updated>2010-03-20T01:09:18Z</updated> | |
<content/> | |
<author> | |
<name>markpasc</name> | |
<uri>http://profile.typepad.com/markpasc</uri> | |
<email/> | |
<id>tag:api.typepad.com,2009:6p00d83451ce6b69e2</id> | |
</author> | |
<link type="text/html" title="a face" href="http://make-a-face.org/entry/6a00d83451ce6b69e20120a9564635970b" rel="alternate"/> | |
<link type="image/jpeg" title="a face" href="http://a5.typepad.com/6a00d83451ce6b69e20120a9564635970b-120si" rel="preview"/> | |
<link type="image/jpeg" title="a face" href="http://a5.typepad.com/6a00d83451ce6b69e20120a9564635970b-640wi" rel="enclosure"/> | |
<link type="image/jpeg" title="a face" href="http://a5.typepad.com/6a00d83451ce6b69e20120a9564635970b-pi" rel="enclosure"/> | |
</as:object> | |
</entry> | |
</feed> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment