<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="yrss.xsl" type="text/xsl" media="screen" ?>
<rss version="2.0">
<channel>
<title>Yahoo! Developer Network blog</title>
<link>http://developer.yahoo.net/blog/</link>
<description></description>
<copyright>Copyright 2008</copyright>
<lastBuildDate>Thu, 15 May 2008 09:04:39 -0800</lastBuildDate>
<generator>http://www.movabletype.org/?v=3.31</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 

<item>
<title>The Monkey is Out and the Challenge is On</title>
<description><![CDATA[<p><em>Original post featured on <a href="http://www.ysearchblog.com/archives/000583.html ">Yahoo! Search Blog</a></em></p>

<p>It's been three weeks since we began the limited <a href="http://www.ysearchblog.com/archives/000534.html">preview</a> of <a href="http://search.yahoo.com/">Yahoo! Search's</a> new open developer platform, SearchMonkey. Today, we're officially <a href="http://developer.yahoo.com/searchmonkey/">opening up the doors</a> to <b>all</b> developers -- professionals and hobbyists -- to begin building applications that enhance the usefulness and relevance of search results.</p>

<p>There are three components to this open ecosystem: <br />
<ul><li>Site owners share structured data with Yahoo!, using semantic markup (microformats, RDF), standardized XML feeds, APIs (OpenSearch or other web services), and page extraction.</li><br />
<li>Third party developers build SearchMonkey applications.</li><br />
<li>Consumers customize their search experience.</li></ul></p>

<p><b>So, what's in it for developers?</b></p>

<p>With SearchMonkey, developers have a hand in shaping the next generation of search by building customized search results and mash-ups that users can add to their Yahoo! Search experience. By leveraging structured data from sites like <a href="http://www.citysearch.com/">CitySearch</a>, <a href="http://www.stumbleupon.com/">StumbleUpon</a>, <a href="http://www.ebay.com/">eBay</a>, or <a href="http://www.epicurious.com/">Epicurious.com</a>, developers can add navigational links, reviews, contact information, and even locations to provide enhanced search listings.  </p>

<p>Developers can build two types of applications using SearchMonkey: Enhanced Results and Infobars. Enhanced Results replace the current standard results with a richer display. All the links in the Enhanced Results must point to the site to which the result refers. Infobars are appended below search results and can include metadata about the result, related links or content, or links for user actions (such as adding a movie to a Netflix queue). </p>

<p><br />
<a href="http://www.flickr.com/photos/15205274@N08/2492000953/" title="infobar-netflix by y.searchblog, on Flickr"><img src="http://farm3.static.flickr.com/2051/2492000953_09519faef6.jpg" width="500" height="350" alt="infobar-netflix" /></a></p>

<p><br />
The process for building SearchMonkey applications is very straightforward:<br />
<ul>1) <b>Application Type</b> -- Decide what type of app you want to build (Enhanced Result or Infobar) and enter basic info such as application name, description and icon.<br />
2) <b>Trigger URLs</b> -- Decide the URL patterns that will trigger your app. For example, for the Enhanced Result above, the pattern would be "acmemovies.com/*"<br />
3) <b>Data Services</b> -- Data Services are the structured data on which SearchMonkey apps are based. They can be created using data available in the Yahoo! Search index (via data feeds or page markup such as microformats or RDF) or by using APIs or page extraction.<br />
4) <b>Appearance</b> -- Use PHP to configure how structured data should appear in the application.</ul></p>

<p><a href="http://www.flickr.com/photos/15205274@N08/2493238007/" title="DevTool Screenshot by y.searchblog, on Flickr"><img src="http://farm3.static.flickr.com/2293/2493238007_4194907969.jpg" width="500" height="498" alt="DevTool Screenshot" /></a></p>

<p><br />
<b>Announcing the SearchMonkey Developer Challenge</b></p>

<p>To foster innovation and creativity on the SearchMonkey platform, we're hosting a good old-fashioned competition. The <a href="http://developer.yahoo.com/searchmonkey/challenge">SearchMonkey Developer Challenge</a> will recognize innovative applications within four categories: Best Enhanced Result, Best Infobar, Most Innovative Use of Structured Data, Best Data Service, and Grand Prize (best over all categories). You have until <b>June 14th</b> to submit your applications for a chance to win up to $10,000. </p>

<p>And don't forget to come kick things off with us <b>this evening</b> at the <a href="http://developer.yahoo.com/searchmonkey/event.html">SearchMonkey Developer Launch Party</a>. Catch live demos, meet the product team and enjoy free food, beer and, of course, schwag at Yahoo!'s headquarters in Sunnyvale, CA.  </p>

<p>Whether you can join us for the party or not, keep in touch -- visit our <a href="http://suggestions.yahoo.com/?prop=searchmonkey">suggestion forum</a> or leave us a comment below. We want to know how the tool is working out for you.  </p>

<p>We look forward to evolving web search with you.</p>

<p><br />
Amit Kumar<br />
Director, Product Management<br />
Yahoo! Search</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/the_monkey_is_o.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/the_monkey_is_o.html</guid>
<category>SearchMonkey</category>
<pubDate>Thu, 15 May 2008 09:04:39 -0800</pubDate>
</item>
<item>
<title>Are Microformats Right for Your Site?</title>
<description><![CDATA[<p>Adding structured data to your site doesn't need to be complicated or difficult. It can be as simple as adding a handful of attributes to your page -- "'class"and "rel" are the most common. Many sites use semantic markup, and already have these attributes, in which case you can insert additional values into existing attributes, since these actually hold space-separated lists. Microformats is the name of one common method for using this kind of simple markup.</p>

<p>Microformats are community-driven standards, put together and maintained by volunteers outside of a formal organization like <a href="http://www.ietf.org/">IETF</a>. Typically, they cover well-worn use cases, a concept called "paving the cowpaths." A number of microformat specifications in various stages of development are available at <a href="http://microformats.org/">microformats headquarters</a>.</p>

<p>Initially, the Yahoo! Search indexer supports the following microformats:</p>

<p>* <strong>hCard</strong> for personal or organization contact info<br />
* <strong>hCalendar</strong> for event descriptions and timelines<br />
* <strong>hAtom</strong> for syndicated content as might appear in an RSS feed<br />
* <strong>hReview</strong> to record review ratings such as "8.5 out of 10"<br />
* <strong>XFN</strong> to track relationships on the social graph in a lightweight fashion </p>

<p>The Web has a huge number of helpful articles and tutorials on using microformats. If the structured data your site exposes falls into any of categories above, then microformats are probably a good choice for you.</p>

<p>Here's a simple example. If your personal site already has markup like this, pointing to one of your other sites:<br />
<code>&lt;a href="http://myothersite.com/blog"&gt;My site&lt;/a&gt;</code></p>

<p>Add XFN with a single attribute, like this:<br />
<code>&lt;a rel="me" href="http://myothersite.com/blog"&gt;My site&lt;/a&gt;</code></p>

<p>The value of rel="me" indicates that the other site is also representative of you.</p>

<p>A more involved example requires changes across more than one element. Let's say a page mentions a review of an iPod, like this:<br />
<code>&lt;div&gt;Overall, I give the iPod a rating of 8 (out of 10)&lt;/div&gt;</code></p>

<p>To add hReview markup to this, a few additional wrapper elements are needed, like this:<br />
<code><br />
&lt;div class="hreview"&gt;<br />
&nbsp;&nbsp;&nbsp;Overall, I give the <br />
&nbsp;&nbsp;&nbsp;&lt;span class="item"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class="fn"&gt;iPod&lt;/span&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/span&gt;<br />
&nbsp;&nbsp;&nbsp;a rating of <br />
&nbsp;&nbsp;&nbsp;&lt;span class="rating"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8<br />
&nbsp;&nbsp;&nbsp;&lt;/span&gt;<br />
&nbsp;&nbsp;&nbsp;(out of <br />
&nbsp;&nbsp;&nbsp;&lt;span class="best"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10<br />
&nbsp;&nbsp;&nbsp;&lt;/span&gt;<br />
&nbsp;&nbsp;&nbsp;)<br />
&lt;/div&gt;</code></p>

<p>This is simplified markup. Consult the <a href="http://microformats.org/">microformats.org</a> site for specific details. In general, these changes indicate that the overall structure is a review ("hReview"), that the item being reviewed is an iPod (additional details such as a URL are helpful), and the rating  is 8 out of a possible 10.</p>

<p>What if your structured markup needs go beyond the list of supported microformats? Please provide us with <a href="http://suggestions.yahoo.com/?prop=searchmonkey">feedback</a>, as we are continuously evaluating and adding support for additional microformats. On the other hand, you might want to consider using more expressive RDF markup. If you want to expose structured data but aren't ready (or able) to make site changes yet, then you might consider writing a custom data service. Stay tuned, we'll cover these topics in future blog posts.</p>

<p>By the way, we'll be talking about microformats among other things later today (Thursday, May 15) at the SearchMonkey Launch Party at Yahoo!'s Sunnyvale headquarters.  Here are the <a href="http://developer.yahoo.com/searchmonkey/event.html">details</a> – join us for a bit of SearchMonkey talk and a plenty of beer, food, and schwag.</p>

<p><a href="http://dubinko.info/blog/">Micah Dubinko</a><br />
SearchMonkey Team Alumnus</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/are_microformat.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/are_microformat.html</guid>
<category>SearchMonkey</category>
<pubDate>Thu, 15 May 2008 07:11:30 -0800</pubDate>
</item>
<item>
<title>Abstracting Spatial Relationships with the Yahoo! Internet Location Platform</title>
<description><![CDATA[<p><em>Note: This blog post was originally published on the <a href="http://ylocalblog.com/">Yahoo! Local & Maps Blog</a>. </em></p>

<p>Like the <a target="_blank" href="http://www.tfl.gov.uk/assets/downloads/Standard-Tube-map.gif">London Tube Map</a>, recording and retrieval of locations and their relationships doesn’t always have to do with their Lat/Lon. There is a more elegant way to abstract the relationships of location, and unambiguously describe places in a permanent, language-neutral manner. Since Where on Earth joined Yahoo! in 2005, Yahoo! has geo-enabled the network, including geo-tagging advertising, Flickr photos, Yahoo! Maps, and so many of the location-based services that Yahoo! has offered.</p>
<p>Yahoo! is now offering a developer preview of this <a target="_blank" href="http://developer.yahoo.com/geo/">Yahoo! Internet Location Platform</a>.</p>

<p>Here’s an example of the new platform in action. Check out this <a target="_blank" href="http://www.flickr.com/photos/bcnbits/363695635/">photo</a> on Flickr. This photo was geo-tagged by the user, and since it was placed on a map, we were able to give it a set of these location tags. If you browse in to the <a target="_blank" href="http://api.flickr.com/services/rest/?method=flickr.photos.getInfo&amp;api_key=1952d1591ee82d6d2c800754e7b265da&amp;photo_id=363695635">tagged metadata</a> using the Flickr API, you’ll notice a set of geo-tags called WOEID (Where On Earth IDs) which are permanent, unambiguous, language neutral tags that represent that location.</p>
<p>Since we have content with a tag, we can find out some interesting things, tag <strong>727232</strong> for example, is Amsterdam, and we can use the new APIs that we’re releasing to find out all sorts of relevant relationship information, including:</p>
<ul>
<li><a target="_blank" href="http://where.yahooapis.com/v1/place/727232/parent">The parent</a>, the administrative region of Amsterdam</li>

<p><li><a href="http://where.yahooapis.com/v1/place/727232/neighbors">Neighbors</a>, such as Landsmeer, Zaandam, and Watergang.</li><br />
<li><a href="http://where.yahooapis.com/v1/place/727232/belongtos">Belong Tos</a>, such as North Holland, Western Europe, and the Europe/Amsterdam Time Zone</li><br />
<li>and more!</li><br />
<p>(Note: The links above are in XML, and may not be viewable in all browsers.)</p><br />
</ul><br />
<p>This service allows you to discover location relationships from free-text place names, tag your content with location IDs for easy indexing, disambiguate numerous objects tagged with the same location, and so on.</p><br />
<p>Go ahead and check out the documentation on the Yahoo! Developer Network at <a target="_blank" href="http://developer.yahoo.com/geo/">http://developer.yahoo.com/geo/</a>.</p></p>

<p>Congrats to the Yahoo! Geo team on this preview.</p>
<p>Michael Lawless<br />
Sr. Product Manager, Yahoo! Maps</p>
<p>P.S.  For more on subject, check out the post by Dan Catt on <a target="_blank" href="http://www.geobloggers.com/archives/2008/05/12/yahoo-woe-where-on-earth-that-is-ids/">geobloggers.com</a>.</p>
]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/abstracting_spa.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/abstracting_spa.html</guid>
<category>geo</category>
<pubDate>Mon, 12 May 2008 18:58:48 -0800</pubDate>
</item>
<item>
<title>Grasping Social Patterns</title>
<description><![CDATA[<p>Back in April, I gave a five-minute talk to a barful of Web 2.0 conference attendees in San Francisco. An audience member recorded me, and posted it to YouTube:</p>

<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/JI2y6YuFJTM&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/JI2y6YuFJTM&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>

<p>The event was <a href="http://ignite.oreilly.com/2008/04/sf-expo-ignite-ii.html">Ignite</a> at O’Reilly’s Web 2.0 Expo last month. This was the most recent in a series of slideshow “slams” that Brady Forrest has been putting on all around the country, and the second one held at Jamie Zawinski’s DNA Lounge in San Francisco (the first was last fall). </p>

<p>The format is inspired by <a href="http://www.pecha-kucha.org/">pecha kucha</a>. Each speaker is limited to 20 slides and five minutes. The slides advance automatically each 15 seconds. Each speaker is encouraged to tell a roomful of geeks how to do something.</p>

<p>The tight strictures of the format force the speaker to get to the point right away and pack as much information as possible into the allotted time. I’ll be honest: it was a bit intimidating. </p>

<p>The format itself turned out to be exhilarating, bringing out great performances from a number of the speakers, notably <a href="http://headrush.typepad.com/">Kathy Sierra</a> (how to make your users kick ass), <a href="http://techsploitation.com/">Annalee Newitz</a> (why giant monsters rule), and <a href="http://monstro.com/">Lane Becker</a>  (the gruesome physical consequences of running a marathon).</p>

<p>I discussed some of the social design patterns (and antipatterns) that I’ve been gathering  as curator of the Yahoo! Design Pattern Library. You can hear the whole talk, including facetious arena-rock shout-out at the beginning, synched up with the slides (which are harder to read in the video), by watching this slidecast:</p>

<div style="width:425px;text-align:left" id="__ss_366336"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=xiansocialpatternsxian-1208851573860045-9"/><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=xiansocialpatternsxian-1208851573860045-9" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/></a> | <a href="http://www.slideshare.net/xian/grasping-social-patterns?src=embed" title="View 'Grasping Social Patterns' on SlideShare">View</a> | <a href="http://www.slideshare.net/upload?src=embed">Upload your own</a></div></div> 

<p>Christian Crumlish<br />
Pattern Detective</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/the_other_night.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/the_other_night.html</guid>
<category>Design Patterns</category>
<pubDate>Sun, 11 May 2008 20:11:48 -0800</pubDate>
</item>
<item>
<title>oEmbed - Embedding third party media made easy</title>
<description><![CDATA[<p>Web 2.0 is all about collaboration, distribution and personal configuration and probably one of the biggest traffic drivers of social networks like Facebook or MySpace are videos and photos being sent to and from your contacts.</p>

<p>The problem for developers of networks is that you don't want people to leave your application to see a photo or a video, which means that you need a way to only get the media and embed that. Normally this happens using the media provider's API or - if they don't offer one - screen scraping (loading the whole document and programatically finding and extracting the media).<br />
 <br />
<a href="http://oembed.com">oEmbed</a> is a great idea to work around that issue:</p>

<blockquote>
oEmbed is a format for allowing an embedded representation of a URL on third party sites. The simple API allows a website to display embedded content (such as photos or videos) when a user posts a link to that resource, without having to parse the resource directly.
</blockquote>

<p>Flickr, Viddler, Qik, Pownce and Revision3 are the first services to support oEmbed which means you can easily access photos and videos with a simple URL.</p>

<p>Say for example find a nice photo on flickr:</p>

<p>Original URL:  </p>

<div style="width:400px;padding:5px;margin:10px;overflow:auto;"><a href="http://flickr.com/photos/codepo8/2475016321/">http://flickr.com/photos/codepo8/2475016321/</a></div>

<p>oEmbed URL: </p>

<div style="width:400px;padding:5px;margin:10px;overflow:auto;"><a href="http://flickr.com/services/oembed?url=http://flickr.com/photos/codepo8/2475016321/"><strong>http://flickr.com/services/oembed?</strong>url=http://flickr.com/photos/codepo8/2475016321/</a></div>

<p>Result:</p>

<pre style="width:400px;padding:5px;margin:10px;overflow:auto;"><code>&lt;oembed&gt;
  &lt;version&gt;1.0&lt;/version&gt;
  &lt;type&gt;photo&lt;/type&gt;
  &lt;title&gt;? too much myspace error&lt;/title&gt;
  &lt;author_name&gt;codepo8&lt;/author_name&gt;
  &lt;author_url&gt;http://www.flickr.com/photos/codepo8/&lt;/author_url&gt;
  &lt;cache_age&gt;3600&lt;/cache_age&gt;
  &lt;provider_name&gt;Flickr&lt;/provider_name&gt;
  &lt;provider_url&gt;http://www.flickr.com/&lt;/provider_url&gt;
  &lt;width&gt;500&lt;/width&gt;
  &lt;height&gt;375&lt;/height&gt;
  &lt;url&gt;
    http://farm4.static.flickr.com/3128/2475016321_982666ec95.jpg
  &lt;/url&gt;
&lt;/oembed&gt;
</code></pre>

<p>You can define the output format and the maximum width and height with URL parameters:</p>

<p>oEmbed URL: </p>

<div style="width:400px;padding:5px;margin:10px;overflow:auto;">
<a href="http://flickr.com/services/oembed?url=http://flickr.com/photos/codepo8/2475016321/&format=json&maxwidth=200">http://flickr.com/services/oembed?url=http://flickr.com/photos/codepo8/2475016321/&format=json&maxwidth=200
</a></div>

<p>Result: </p>

<pre style="width:400px;padding:5px;margin:10px;overflow:auto;"><code>{
  version: '1.0',
  type: 'photo',
  title: '? too much myspace error',
  author_name: 'codepo8',
  author_url: 'http://www.flickr.com/photos/codepo8/',
  cache_age: '3600',
  provider_name: 'Flickr',
  provider_url: 'http://www.flickr.com/',
  width: '100',
  height: '75',
  url: 'http://farm4.static.flickr.com/3128/2475016321_982666ec95_t.jpg'
}
</code></pre>

<p>Supported formats for responses so far are photo, video, link and rich. </p>

<p>Christian Heilmann<br>Yahoo Developer Network</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/oembed_embeddin.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/oembed_embeddin.html</guid>
<category>technology</category>
<pubDate>Fri, 09 May 2008 04:51:20 -0800</pubDate>
</item>
<item>
<title>Party Like a SearchMonkey</title>
<description><![CDATA[<p>A few weeks ago, we <a href="http://www.ysearchblog.com/archives/000534.html">announced SearchMonkey</a>, an new open platform that lets developers and site owners use semantic markup and structured data to enhance Yahoo! Search results and make them more useful, relevant, and visually appealing.</p>

<p>We wanted to remind you that we're kicking off this launch in true SearchMonkey style with a Developer Launch Party next Thursday, May 15. Come get the inside scoop on SearchMonkey, meet with our product managers and engineers over tasty (read: free!) food and beer, see live demos, and take a closer look at the Developer Tool.</p>

<p><strong>When:</strong> May 15, 2008, 5:30 -- 8:30 p.m.</p>

<p><strong>Where:</strong> Yahoo! Headquarters @ URL's Cafe<br><br />
701 First Ave.<br><br />
Sunnyvale, CA 94089</a></p>

<p><strong>RSVP:</strong> Email your full name and company name directly<br />
to searchmonkeyevent@yahoo-inc.com. Space is limited.</p>

<p>For more information on the agenda and logistics, check out the <a href="http://developer.yahoo.com/searchmonkey/event.html">event page</a>. </p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/party_like_a_se.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/party_like_a_se.html</guid>
<category>SearchMonkey</category>
<pubDate>Thu, 08 May 2008 11:58:00 -0800</pubDate>
</item>
<item>
<title>Yahoo! sponsors the kick-off party for London&apos;s Web Week</title>
<description><![CDATA[<p>For a whole week in between 26th of May and 1st of June London, England will be a centre for all things web development. The <a href="http://www.londonwebweek.co.uk/">London Web Week</a> is a not-for-profit scheme to boost the development world in the UK and beyond and promote best practice ideas like accessibility and progressive enhancement.  </p>

<p>Events include the by now famous <a href="http://www.vivabit.com/atmedia2008/london/">@media conference</a>, the <a href="http://barcamp.org/BarCampLondon4">fourth London BarCamp</a>, a <a href="http://microformats.eventwax.com/vevent">Microformats vEvent</a> and <a href="http://www.webroots.co.uk/">Web Roots</a>. To learn about all the events, check the <a href="http://www.londonwebweek.co.uk/schedule">schedule on the web week site</a>.</p>

<p>To kick things off in the right fashion, we will sponsor the London Web Week Opening Party on Monday, May 26, located at the Ruby Blue Bar in London's West End. </p>

<p>If you are in the area, or you are coming to @media anyways, make sure to check out the <a href="http://ydninternational.eventwax.com/yahoo-developer-network-party-for-the-london-web-week">sign-up page on event wax</a> to secure a ticket, as the space is limited to 200 people. </p>

<p>Hope to see you there and have a blast before making this week even more special than it already is.</p>

<ul><li><a href="http://ydninternational.eventwax.com/yahoo-developer-network-party-for-the-london-web-week">Sign up for a party ticket</a></li><li><a href="http://upcoming.yahoo.com/event/608536/">Learn more about the event at upcoming</a></li></ul>

<p>Christian Heilmann<br>Yahoo Developer Network</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/yahoo_sponsors.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/yahoo_sponsors.html</guid>
<category>conferences</category>
<pubDate>Thu, 08 May 2008 09:12:13 -0800</pubDate>
</item>
<item>
<title>The seven rules of pragmatic progressive enhancement - a brown bag presentation</title>
<description><![CDATA[<p>Last week I went to <a href="http://akqa.com">AKQA</a> in London to give a brown-bag presentation on progressive enhancement. </p>

<p>I took this chance to vent some of my ideas on the subject and counteract some of the criticisms I heard about the need for enhancing web solutions progressively.</p>

<p>I've come up with the following "Seven rules of progressive enhancement":</p>

<ol><li>Separate as much as possible</li><li>Build on things that work</li><li>Generate dependent markup</li><li>Test for everything before you apply it</li><li>Explore the environment</li><li>Load on demand</li><li>Modularize code</li></ol>

<p>I've explained them in further detail in the slides available on slideshare:</p>

<p><br />
<div class="slideshare"><a href="http://www.slideshare.net/cheilmann/pragmatic-progressive-enhancement?src=embed#progressiveenhancement-1210189562112719-9">View 'Pragmatic Progressive Enhancement' on SlideShare</a><script src="http://chrisslidesharehacks.googlecode.com/files/previewer2.js"></script></div></p>

<p><br />
Furthermore I put some more information in an article on the subject: <a href="http://icant.co.uk/articles/pragmatic-progressive-enhancement/">Pragmatic Progressive Enhancement</a>.</p>

<p>The article is licensed with creative commons, so you are very much invited to use and remix it to your needs.</p>

<p>Chris Heilmann<br>Yahoo Developer Network</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/the_seven_rules.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/the_seven_rules.html</guid>
<category>Books and Articles</category>
<pubDate>Wed, 07 May 2008 13:19:24 -0800</pubDate>
</item>
<item>
<title>Building a Better Website With Yahoo!</title>
<description><![CDATA[<p><em>Editor's note: This post by Yahoo! front-end developer Tyler Hall originally appeared on his personal blog, <a href="http://clickontyler.com/">Click on Tyler</a>.</em> </p>

<p><br />
<p>It's been a long time coming, but last month I finally pushed out a new design for my personal website, <a href="http://clickontyler.com/">Click on Tyler</a>. I rebuilt it from the ground up using two key tools from the <a href="http://developer.yahoo.com/">Yahoo! Developer Network</a>:</p></p>

<ul>
<li><a href="http://developer.yahoo.com/yui/grids/">YUI Grids</a> and</li>
<li><a href="http://developer.yahoo.com/yslow/">YSlow</a></li>
</ul>

<p>The new design is really a refresh of the previous look with a focus on readability and speed. I want to take a few minutes and touch on what I learned during this go-round so (hopefully) others might benefit.</p>

<h4>Color Scheme</h4>

<p>Although I really liked the darker color scheme from before, it was too hard to read. There simply wasn't enough contrast between the body text and the black background. I tried my best to make it work. I searched around for various articles about <a href="http://www.456bereastreet.com/archive/200608/light_text_on_dark_background_vs_readability/">text legibility on dark backgrounds</a>. I increased the letter spacing, the leading, narrowed the body columns, and everything else I learned in the intro graphic design class I took in college. The results were better, but my gut agreed with all the articles I read online which basically said "don't do it." So I compromised and switched to a white body background, while leaving the header mostly untouched. I find the new look <em>much</em> more readable -- hopefully this will encourage me to begin writing longer posts.</p>

<h4>CSS and Semantic Structure</h4>

<p>The old site was built piecemeal over a couple months and, quite frankly, turned into a mess font-wise. I had inconsistent headers, font-weights, and anchor styles depending on which section you were viewing. With the new design, I sat down (as I should have before) and decided explicitly on which font family, size, and color to use for each header. I spec'ed out the font sizes using <a href="http://developer.yahoo.com/yui/fonts/">YUI's percent-based scheme</a> which helps ensure a consistent look when users adjust the size. (Go ahead, scale the font size up and down.) An added bonus was that it forced me to think more about the semantic structure of my markup. (If you have Firefox's <a href="https://addons.mozilla.org/en-US/firefox/addon/60">Web Developer toolbar</a> installed, try viewing the site with stylesheets turned <em>off</em>.) If there's one thing I learned working for <a href="http://sitening.com">Sitening</a>, it's that semantic structure plays a <em>huge</em> part in your <a href="http://raven-seo-tools.com/features/serp-tracker/">SERPs</a>.</p>

<h4>Optimizing With YSlow</h4>

<p>At OSCON last summer, I attended one of the first talks <a href="http://stevesouders.com/">Steve Souders</a> gave on <a href="http://developer.yahoo.com/yslow/">YSlow</a> -- a Firefox plugin that measures website performance. That, plus working for Yahoo!, has kept the techniques suggested by YSlow in the back of my head with every site I build. But this redesign was the first time I committed to scoring as high as I could.</p>

<p>As usual, I coded everything by hand, paying attention to all the typical SEO rules that I learned at Sitening. Once the initial design was complete and I had a working home page, I ran YSlow.</p>

<p><a href="http://amz.clickontyler.com/blog/yslow-before.png""><img src="http://amz.clickontyler.com/blog/yslow-before-sm.png" alt="YSlow Before"/></a></p>

<p>Ouch. A failing 56 out of 100. What did YSlow suggest I improve? And how did I fix it?</p>

<ul>
<li><strong>Make fewer HTTP requests</strong> - My site was including too many files. Three CSS stylesheets, four JavaScript files, plus any images on the page. I can't cut down on the amount of images (without resorting to using sprites - which are usually more trouble than they're worth), so I concatenated my CSS and JS into single files. That removed five requests and brought me up to an "A" ranking for that category. (I'm further toying with adding the <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> into the mix.)</li>
<li><strong>Use a content delivery network</strong> - At Yahoo! we put all static files on Akamai. Other large websites like Facebook, Google, and MySpace push to their own CDNs, too. But what's a single developer to do? Use <a href="http://clickontyler.com/amazon-php-aws/">Amazon S3</a> of course! I put together a quick PHP script which syncs all of my static content (images, css, js) and stores them on S3. Throughout the site, I prepend each link with a PHP variable that lets me switch the CDN on or off depending on if I'm running locally or on my production server. (And, in the event S3 ever goes down or away, I can quick switch back to serving files off my own domain.)</li>

<p><li><strong>Add expiry headers</strong> - Expiry headers tell the browser to cache static content and not attempt to reload it on each page view. I didn't want to put a far future header on my PHP files (since they change often), but I did add them to all of the content stored on S3. This is fine for images that should never change, but for my JavaScript and CSS files it means I need to change their filename whenever I push out a new update so the browser knows to re-download the content. It's extra work on my part, but it pays off later on.</li><br />
<li><strong>Gzip files</strong> - This fix comes in two parts. First, I modified Apache to serve gzipped content if the browser supports it (most do) &mdash; not only does this cut down on transfer time, but it also decreases the amount of bandwidth I'm serving. But what about content coming from S3? Amazon doesn't support gzipping content natively. Instead, in addition to the static files stored there, I also uploaded their gzipped counterparts. Then, using PHP, I change the HTML links to reference the gzip versions if I detect the user's browser can handle it.</li><br />
<li><strong>Configure ETags</strong> - ETags are a hash provided by the webserver that the browser can use to determine if a file has been modified before downloading it. Amazon S3 automatically generates ETags for every file -- it's just a free benefit of using S3 as my CDN.</li><br />
</ul></p>

<p>So, all of the changes above took about three hours to implement. Most of that time was spent writing my S3 deploy script and figuring out how to make Amazon serve gzipped content. Was it worth it? See for yourself.</p>

<p><a href="http://amz.clickontyler.com/blog/yslow-after.png""><img src="http://amz.clickontyler.com/blog/yslow-after-sm.png" alt="YSlow Before"/></a></p>

<p>Wow. Three short hours of work and I jumped to a near perfect 96 out of 100. The only remaining penalty is from not serving an expires header on my <a href="http://haveamint.com">Mint</a> JavaScript.</p>

<p>Do these optimization techniques make a difference? I think so. Visually, I can tell there's a huge decrease in page rendering time on both Firefox and Safari. (IE accounts for 6% of my traffic, so I don't bother testing there any longer.) More amazing, perhaps, is the site's performance on iPhone. The page doesn't just load -- it <em>appears</em>.</p>

<p>I've made a bunch of vague references to the S3 deploy script I'm using and how to setup gzip on Amazon. In the interest of space, I've left out the specifics. If you're interested, <a href="http://clickontyler.com/contact/">contact me</a> with any questions and I'll be happy to help.</p>

<p>Tyler Hall<br />
Front-end Engineer</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/building_a_bett.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/building_a_bett.html</guid>
<category></category>
<pubDate>Tue, 06 May 2008 17:57:46 -0800</pubDate>
</item>
<item>
<title>Yahoo! Live empowers deaf users to chat online</title>
<description><![CDATA[<p>Sometimes you stumble across use cases of your products that you just did not expect. During my talk at the <a href="http://developer.yahoo.net/blog/archives/2008/04/accessibility_2.html<br />
">Accessibility 2.0 conference</a> last week I pointed out that technology that seemingly is a stumbling block for accessibility can actually be a benefit for disabled users. </p>

<p>The example was the ease of being able to annotate and caption photos in <a href="http://flickr.com">Flickr</a> enticing a lot more users to enter sensible captions and text which in return makes it easier to find the photos and describe them to non-sighted users. </p>

<p>Now we found out via <a href="http://blog.deafread.com/abcohende/">Amy Cohen Efron's blog "Deaf World as Eye see it"</a> that <a href="http://blog.deafread.com/abcohende/2008/02/15/yahoos-live-deaf-chat-room/">deaf users have discovered Yahoo Live as an opportunity to chat online</a>.</p>

<p><img src="http://developer.yahoo.net/blog/deafchat.jpg" alt="deaf users chatting using sign language on Yahoo Live"></p>

<p>This is wonderful news, and proof that products that are on the bleeding edge and use technologies with a reputation for inaccessibility can actually benefit users overcome boundaries and make them communicate using "web 2.0" products despite their disability.</p>

<p>It is also a great example that accessibility is about all kind of disabilities, and that technology can be the solution rather than a hindrance.</p>

<p>More reading:</p>

<ul><li><a href="http://www.earofmyheart.com/wordpress/2008/02/16/is-chat-room-addiction-real-youd-better-believe-it/">LaRonda Zupp on the addictiveness of Yahoo! Live for the deaf community</a></li><li><a href="http://www.scottgatz.com/blog/2008/02/26/what-happens-when-you-design-a-product-for-everyone/">Scott Gatz on decisions being made to make Yahoo! Live inclusive for all users</a></li></ul>
Christian Heilmann<br>Yahoo Developer Network]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/yahoo_live_empo.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/yahoo_live_empo.html</guid>
<category>accessibility</category>
<pubDate>Fri, 02 May 2008 10:18:29 -0800</pubDate>
</item>
<item>
<title>Neal Sample on Yahoo&apos;s Open Platform at Web 2.0 Expo</title>
<description><![CDATA[<p>Many of you probably saw the video of our CTO, Ari Balogh, give <a href="http://developer.yahoo.net/blogs/theater/archives/2008/04/ari_balogh_web_20_expo_keynote.html">a 15 minute keynote talk</a> at the Web 2.0 Expo about our forthcoming platform for developers.  While Ari did a very good job of presenting a high-level overview of Yahoo's Open Strategy  (YOS), there's only so much one can say in 15 minutes.</p>

<p>As a follow-up, Neal Sample (YOS Chief Architect) gave a 40 minute deeper dive presentation last Friday.  In <a href="http://developer.yahoo.net/blogs/theater/archives/2008/05/yos_a_deep_dive_with_neal_sample.html">this video</a> he begins with a recap of the information presented in Ari's keynote and then spends time providing more in-depth explanations and examples of the various YOS platform components: update notifications, social connections, the activator, and more.</p>

<p><embed src=http://cosmos.bcst.yahoo.com/up/fop/embedflv/swf/fop_wrapper.swf?sv=0&id=7626177&autoStart=0&infoEnable=1&shareEnable=0&prepanelEnable=1&carouselEnable=0&postpanelEnable=1 width=400 height=300 type=application/x-shockwave-flash></embed></p>

<p>Expect to see more and more in-depth videos with various YOS engineers in the coming weeks and months.</p>

<p><a href="mailto:jzawodn@yahoo-inc.com">Jeremy Zawodny</a><br />
Yahoo! Developer Network</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/neal_sample_on.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/neal_sample_on.html</guid>
<category>conferences</category>
<pubDate>Fri, 02 May 2008 07:49:49 -0800</pubDate>
</item>
<item>
<title>Location, Security and easy API walkthroughs - the Fire Eagle Developer Evening in London, UK</title>
<description><![CDATA[<p><a href="http://www.flickr.com/photos/codepo8/2456785022/" title="Seth and Steve by codepo8, on Flickr"><img src="http://farm3.static.flickr.com/2157/2456785022_6530c49cb8.jpg" width="500" height="401" style="border:none;margin:10px;" alt="Seth and Steve explaining the one-two-three of building applications for Fire Eagle" /></a></p>

<p>Around 50 developers met yesterday in London, England to hear all about Yahoo's new location based service <a href="http://fireeagle.yahoo.com">Fire Eagle</a>. In two short presentations and a long Q&A session Tom Coates and Seth Fitzsimmons from the Fire Eagle team helped developers get their head around the concept and technicalities of Fire Eagle. They were aided by Steve Marshall, developer of the <a href="http://code.google.com/p/django-fireeagle/">Django Fire Eagle Authentication wrapper</a> and co-developer of <a href="http://fireballapp.com/">Fireball</a>. <br />
</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/05/location_securi.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/05/location_securi.html</guid>
<category>conferences</category>
<pubDate>Thu, 01 May 2008 06:42:59 -0800</pubDate>
</item>
<item>
<title>Accessibility 2.0 conference in London, England</title>
<description><![CDATA[<p>Last Friday, <a href="http://www.abilitynet.org.uk/">AbilityNet</a> organized an accessibility conference entitled <a href="http://www.abilitynet.org.uk/accessibility2/">Accessibility 2.0 - A million flowers bloom</a> in the City University in London, England. </p>

<p><a href="http://www.flickr.com/photos/codepo8/2445439604/" title="The Panel by codepo8, on Flickr"><img src="http://farm3.static.flickr.com/2313/2445439604_e72d4ea9fd.jpg" width="500" height="375" alt="The Panel" /></a></p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/04/accessibility_2.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/04/accessibility_2.html</guid>
<category>conferences</category>
<pubDate>Tue, 29 Apr 2008 04:54:12 -0800</pubDate>
</item>
<item>
<title>NetSquared Mashup Challenge needs developers!</title>
<description><![CDATA[<p>I wanted to draw your attention to an organization that I and Yahoo! have been supporting  that you might want to support, too -- <a href="http://www.netsquared.org/">NetSquared</a>. The goal of NetSquared is simple: to help hundreds of thousands of non-profit organizations (NPOs) and non-governmental organizations (NGOs) successfully utilize the empowering capabilities of the Internet to increase their impact and achieve social change.</p>

<p><strong>The NetSquared Mashup Challenge: Hacking for Social Change</strong></p>

<p><a href="http://www.netsquared.org/mashup"><img alt="N2Y3 Mashup Challenge" src="http://developer.yahoo.net/blog/mashup_challenge.gif" width="289" height="182" border='0' align='right' /></a>For the first time, NetSquared is running a really cool program called the <a href="http://www.netsquared.org/mashup">Mashup Challenge</a> in which they are matching up ideas from non-profits and NGOs involved in all sorts of social change to people like you (i.e. developers, product managers, and designers) who have the skills to implement them.  I have been helping NetSquared promote the Mashup Challenge (see their <a href="http://developer.yahoo.net/blogs/theater/archives/2008/03/netsquaredorg.html">recent YDN Theater video</a>) because I think it's a very practical roll-up-your-sleeves way of getting people to work together across many boundaries (company, international, etc) to produce something exciting and useful that benefits the world at large.  It's very much in the spirit of our own <a href="http://www.hackday.org/">Yahoo! Hack Day</a>.</p>

<p><strong>The Projects</strong></p>

<p>The community around NetSquared has already submitted dozens of ideas for theMashup Challenge and the NetSquared community voted for the top 20, which are <a href="http://www.netsquared.org/2008/conference/projects/n2y3_featured_projects">listed here</a> (there are 21 since there was a tie!).  You can see ALL of the ideas <a href="http://www.netsquared.org/2008/conference/projects">here</a>.   </p>

<p><strong>How to Participate</strong></p>

<p>I'm working with Billy Bicket, NetSquared's organizer, to recruit Project Leads interested in participating in a 4-week sprint leading up to <a href="http://www.netsquared.org/conference">NetSquared's conference</a>, happening on May 27-28 at Cisco in San Jose, CA.</p>

<p>By contributing to NetSquared in the capacity of Project Lead, participants will be working with a leading social innovator working on a range of challenges including: </p>

<p>1. refining some of their ideas about how the data they are using could be rendered in mashups; and </p>

<p>2. in some cases, building mashups using a variety of APIs, products, or coming up with creative technical solutions to particular problems they are facing.</p>

<p>Project Leads will receive access to all NetSquared Hack Days.  The next invite-only event is happening on May 4 at Moscone Center in San Francisco and is hosted by Sun and NetSquared.  Project leads will also receive two free tickets to this year's NetSquared Conference.</p>

<p>Here is a <a href="http://n2y3.pbwiki.com/Project-Lead-FAQ-">quick run-down of the role and expectations for Project Leads</a> and here are the simple next steps if you would like to participate:</p>

<p>1. Scroll through the list of <a href="http://www.netsquared.org/2008/conference/projects/n2y3_featured_projects">21 Featured Projects</a> </p>

<p>2. Send Billy Bicket (billybicket -at- yahoo.com) an email with your favorite three (3) featured projects, and confirm your interest in participating <strong>by Wednesday, April 30 at noon</strong>.</p>

<p>4. Once you send Billy an email, he'll send easy next steps (including link to conference registration) and details about engaging with featured projects for expedient approach and execution.</p>

<p><strong>Bringing It Together: The NetSquared Conference</strong></p>

<p>The Mashup Challenge will culminate in the annual <a href="http://www.netsquared.org/conference">NetSquared Conference</a> on May 27-28 in San Jose. At the conference, project teams will have an opportunity to display and discuss their mashups and attendees will vote to select the top three (this is only several weeks away and some of the ideas are complex, so the projects don't have to be 100% done, just underway). All 20 projects at the conference will receive a share of $100,000 in prize money. The share will be determined by voting at the conference.</p>

<p>It's a good cause, a great opportunity to meet new people, and an even better opportunity to use your various web superpowers.  Join a project today!</p>

<p>Chad Dickerson</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/04/netsquared_mash.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/04/netsquared_mash.html</guid>
<category>other</category>
<pubDate>Mon, 28 Apr 2008 07:48:27 -0800</pubDate>
</item>
<item>
<title>Introducing the Yahoo! Open Strategy</title>
<description><![CDATA[<p>We’re blowin’ the doors wide open!  </p>

<p>Today we’re introducing the Yahoo! Open Strategy (or Y!OS for short), the details behind <a href="http://ycorpblog.com/2007/10/16/where-does-yahoo-head-next/">Yahoo!’s big bet</a>  to "deliver open, industry-leading platforms that attract the most publishers and developers."</p>

<p>Y!OS platforms will harness Yahoo!'s unique strengths – our rich and relevant user experiences (we’re #1 in 7 verticals), our massive audience (half a billion users/month), and our deep data repositories (content, content, content) – and open them to the innovations of the developer  community. Our aim: to fundamentally transform how people experience Yahoo!.</p>

<p>With Y!OS, we’re moving from a model in which each Yahoo! property develops much of its own technology to one where we share common data and frameworks that can be easily surfaced across multiple Yahoo! properties and off the Yahoo.com network.  </p>

<p>It’s a major rewiring of Yahoo!.  </p>

<p>And the good news for developers is that Y!OS will allow you to access to these assets, build applications around them, and then get distribution on Yahoo!’s monumentally popular properties (and/or use them in your own websites).</p>

<p>Specifically, Y!OS includes:</p>

<p><strong>A Single Social Platform for Yahoo!</strong></p>

<p>The Social Platform will enable a single social "connective tissue" across all Yahoo! experiences letting users view Yahoo! through a relevant social lens. The Social Platform isn’t yet another social networking vertical from Yahoo!.  It's a common social infrastructure that will span all of Yahoo! and the web beyond.  We’ll start by collapsing the Y! 360 and Mash connection lists into one social repository (and add a new user interface to it), then we'll take a proactive approach to tapping into the TEN BILLION aggregate relationships in Mail, Messenger, Address Book, and other social areas of Yahoo! to recommend connections to our users.  Plus, we’ll begin surfacing users’ profile and connection information throughout Yahoo! as the whole Yahoo! network becomes more social, which will motivate users to activate connections. Developers will gain access to this Social Platform via RESTful APIs, giving you ways to query for a user's profile data and connections data (our Social API), ways to update a user’s presence across the network (Presence API), and an activity stream with an API for reading/writing a user’s activity (we call this “Updates”).</p>

<p><strong>Lotsa Standardized Web Services</strong></p>

<p>You want data?  Have we got data for you! And we’ll be delivering a lot more of it in the coming months. We’re working to get it to you in ways that won’t require "<a href="http://en.wikipedia.org/wiki/Rtfm">RTFM</a>" every time we release new APIs.  We’ve created a RESTful API standard to which most new Yahoo! API releases will adhere, including all of the Social Platform APIs mentioned above.  And some more news: we’ll be supporting <a href="http://oauth.net/">OAuth</a>  – look for the OAuth Consumer Key to replace the YDN App ID for new API signups here on the developer website very soon. </p>

<p><strong>The Yahoo! Application Platform (YAP)</strong></p>

<p>So now you have an out-of-the-box social graph, and wicked cool data to mashup.  How about some traffic?  How about some traffic from Yahoo! Mail, the Yahoo! Front Page, Yahoo! Search, My Yahoo! and the revamped Y! Profile?  The Yahoo! Application Platform will allow developers to build applications that plug directly into these Yahoo! pages and properties, starting today with an exciting developer's preview release into Yahoo! Search called <a href="http://developer.yahoo.com/searchmonkey">Search Monkey</a>. </p>

<p>As Yahoo! is a member of the <a href="http://ycorpblog.com/2008/03/25/announcing-the-opensocial-foundation/">OpenSocial Foundation</a>, YAP supports OpenSocial. Apps you’ve written for other OpenSocial-compliant application platforms should function on Yahoo! with minimal tweaking (and vice versa) -- or you can write apps that go directly to the Social Platform REST APIs; it’s up to you.  And YAP offers you the choice of hosting your app with Yahoo! or using your own server to proxy your app back to us. </p>

<p>Today’s announcement is just a hint of things to come. Get started today with <a href="http://developer.yahoo.com/searchmonkey">Search Monkey</a> and stay tuned for a cascade of more announcements as pieces continue to come online.  </p>

<p>We couldn’t be more excited to work with you to change Yahoo! and change the web.</p>

<p>Say it with me now: “Developers! Developers! Developers!” ;)</p>

<p><a href="http://kidsallright.com">Cody Simms</a><br />
Y!OS Product Management<br />
</p>]]></description>
<link>http://developer.yahoo.net/blog/archives/2008/04/introducing_the_1.html</link>
<guid>http://developer.yahoo.net/blog/archives/2008/04/introducing_the_1.html</guid>
<category>announcements</category>
<pubDate>Thu, 24 Apr 2008 07:26:32 -0800</pubDate>
</item>


</channel>
</rss>