<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    >

<channel>
    <title>Webmonkey &#187; Yahoo</title>
    <atom:link href="http://www.webmonkey.com/tag/yahoo/feed/" rel="self" type="application/rss+xml" />
    <link>http://www.webmonkey.com</link>
    <description>The Web Developer&#039;s Resource</description>
    <lastBuildDate>Mon, 06 May 2013 17:29:19 +0000</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <generator>http://wordpress.org/?v=3.4.2</generator>
    
    <item>
        <title>Yahoo Looking to Sell, Not Shut Down Delicious</title>
        <link>http://www.webmonkey.com/2010/12/yahoo-looking-to-sell-not-shut-down-delicious/</link>
        <comments>http://www.webmonkey.com/2010/12/yahoo-looking-to-sell-not-shut-down-delicious/#comments</comments>
        <pubDate>Mon, 20 Dec 2010 18:19:05 +0000</pubDate>

                <dc:creator>Scott Gilbertson</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/?p=49377</guid>
        		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[Yahoo]]></category>
        <description><![CDATA[Good news Delicious fans &#8212; Yahoo has finally made something of an announcement, saying that the bookmarking service will not be shut down, but sold off. Despite a leaked, internal image that listed Delicious and other services in a &#8220;sunset&#8221; category, Yahoo denies it is planning to shut the bookmarking service down. The Delicious blog [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled -->
<p><img src="http://www.wired.com/images_blogs/epicenter/2010/12/z89.png" />Good news Delicious fans &#8212; Yahoo has finally made something of an announcement, saying that the bookmarking service will not be shut down, but sold off. </p>
<p>Despite a <a href="http://www.webmonkey.com/2010/12/yahoo-plans-to-kill-off-delicious-bookmarking-service/">leaked, internal image</a> that listed Delicious and other services in a &#8220;sunset&#8221; category, Yahoo <a href="http://blog.delicious.com/index.htm">denies</a> it is planning to shut the bookmarking service down.</p>
<p>The Delicious blog says the service is looking for &#8220;a home outside the company that would make more sense for the service and our users.&#8221;</p>
<p>According to the same announcement, the tech press is to blame for assuming that &#8220;sunset&#8221; meant shut down. More likely, Yahoo simply wasn&#8217;t ready for the level of backlash that rumors of Delicious&#8217; demise brought about, and now the company is backpedalling. </p>
<p>Yahoo also hasn&#8217;t made any announcement regarding MyBlogLog, Yahoo Buzz or any of the other services listed as &#8220;sunset&#8221; in the leaked graphic that circulated last week. </p>
<p>Presumably, in some cases, sunset does in fact mean &#8220;shut down.&#8221; </p>
<p>Still, the word that Delicious will live on in some form is good news for the millions of users and bookmarks the service currently hosts. Unfortunately, Yahoo has not denied that it has laid off the engineers and technical staff behind Delicious.</p>
<p><strong>See Also:</strong><br/></p>
<ul>
<li><a href="http://www.webmonkey.com/2010/12/yahoo-plans-to-kill-off-delicious-bookmarking-service/">Yahoo Plans to Kill Off Delicious Bookmarking Service</a></li>
<li><a href="http://www.webmonkey.com/2010/12/xmarks-lives-lastpass-buys-downtrodden-bookmark-syncing-service/">Xmarks Lives: LastPass Buys Downtrodden Bookmark Syncing Service</a></li>
<li><a href="http://www.webmonkey.com/2010/11/geocities-lives-on-as-massive-torrent-download/">Geocities Lives On as Massive Torrent Download</a></li>
<li><a href="http://www.webmonkey.com/2009/10/geocities_shutdown_highlights_the_problem_of/">Geocities, Identity and the Problem With Disappearing Web Services</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/12/yahoo-looking-to-sell-not-shut-down-delicious/feed/</wfw:commentRss>
        <slash:comments>8</slash:comments>

        
    </item>
    
    <item>
        <title>Flickr Adds Limited OpenID Support</title>
        <link>http://www.webmonkey.com/2010/10/flickr-adds-limited-openid-support/</link>
        <comments>http://www.webmonkey.com/2010/10/flickr-adds-limited-openid-support/#comments</comments>
        <pubDate>Fri, 29 Oct 2010 16:52:56 +0000</pubDate>

                <dc:creator>Scott Gilbertson</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/?p=49062</guid>
        		<category><![CDATA[Identity]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Yahoo]]></category>
            <enclosure url="http://www.webmonkey.com/wp-content/uploads/2010/10/flickrlogo.jpg" type="image/jpeg" length="48000" />
                    <description><![CDATA[<div class="rss_thumbnail"><img src="http://www.webmonkey.com/wp-content/uploads/2010/10/flickrlogo.jpg" alt="Flickr Adds Limited OpenID Support" /></div>Large web services from the likes of Google, Yahoo and others love to tout their OpenID support. But when these companies say &#8220;support,&#8221; sometimes what they mean is that you can use them as an OpenID provider &#8212; and store all of your precious personal information on their servers. What&#8217;s much less common from the [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled -->
<p><a href="http://www.webmonkey.com/wp-content/uploads/2010/10/flickrlogo.jpg"><img src="http://www.webmonkey.com/wp-content/uploads/2010/10/flickrlogo.jpg" alt="" title="flickrlogo" width="163" height="65" class="alignleft size-full wp-image-49063" /></a>Large web services from the likes of Google, Yahoo and others love to tout their OpenID support. But when these companies say &#8220;support,&#8221; sometimes what they mean is that you can use them as an OpenID provider &#8212; and store all of your precious personal information on their servers.</p>
<p>What&#8217;s much less common from the big companies are sites that let you sign <em>in</em> with OpenID. Today the popular photo sharing site Flickr has taken a <a href="http://blog.flickr.net/en/2010/10/28/sign-up-for-flickr-with-your-google-account/">small step in that direction</a>. </p>
<p>The site has stopped short of true OpenID support, though that appears to be the end goal. For now its offering a way to sign in with your Google OpenID. Yahoo, which owns Flickr, is using <a href="http://code.google.com/apis/accounts/docs/OpenID.html">Google&#8217;s authentication APIs</a> to power the sign-in experience. Sadly, the new feature is only available for those signing up for Flickr. If you&#8217;ve already got a Flickr account, you have to authenticate using your original login.</p>
<p>Given that most of you probably already have Flickr accounts, today&#8217;s news isn&#8217;t all that exciting. But hopefully, it means the wheels are turning at Flickr and one day you&#8217;ll be able to sign in with any OpenID account.</p>
<p><strong>See Also:</strong><br/></p>
<ul>
<li><a href="http://www.webmonkey.com/2010/06/flickr-hooks-up-with-facebook-for-photo-sharing-love/">Flickr Hooks Up With Facebook for Photo-Sharing Love</a></li>
<li><a href="http://www.webmonkey.com/2010/06/new-flickr-is-bigger-wider-and-uncut/">New Flickr Is Bigger, Wider and Uncut</a></li>
<li><a href="http://www.webmonkey.com/2009/10/flickr_adds_people_tagging_for_finding_friends_in_photos/">Flickr Adds People-Tagging for Finding Friends in Photos</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/10/flickr-adds-limited-openid-support/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Yahoo Users Can Now Open a Google Account With OpenID</title>
        <link>http://www.webmonkey.com/2010/09/yahoo-users-can-now-open-a-google-account-with-openid/</link>
        <comments>http://www.webmonkey.com/2010/09/yahoo-users-can-now-open-a-google-account-with-openid/#comments</comments>
        <pubDate>Tue, 07 Sep 2010 18:14:12 +0000</pubDate>

                <dc:creator>Michael Calore</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/?p=48596</guid>
        		<category><![CDATA[Identity]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[Yahoo]]></category>
        <description><![CDATA[Google is now letting any Yahoo users sign in to Google using OpenID, the company announced Tuesday. When you&#8217;re signing up for a Google account, there&#8217;s now a new button you can click on that says &#8220;Verify by signing in at Yahoo.com.&#8221; Click it, and you&#8217;re sent to Yahoo, where you&#8217;re asked to allow Google [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled -->
<p><a href="http://www.webmonkey.com/?attachment_id=23218" rel="attachment wp-att-23218"><img src="http://www.wired.com/images_blogs/epicenter/2010/09/OpenID_card.png" alt="" title="OpenID_card" width="260" height="168" /></a>Google is now letting any Yahoo users sign in to Google using OpenID, <a href="http://googleblog.blogspot.com/2010/09/simpler-sign-ups-for-yahoo-users-with.html">the company announced</a> Tuesday.</p>
<p>When you&#8217;re signing up for a Google account, there&#8217;s now a new button you can click on that says &#8220;Verify by signing in at Yahoo.com.&#8221; Click it, and you&#8217;re sent to Yahoo, where you&#8217;re asked to allow Google and Yahoo to link up your accounts.</p>
<p>Tuesday&#8217;s development marks Google&#8217;s first attempt to be an OpenID relying party &#8212; a website that accepts OpenID logins from third-party providers. Also, this only works for Yahoo users for now, but <a href="http://googlecode.blogspot.com/2010/09/sign-up-with-google-using-openid.html">Google says</a> it&#8217;s going to start offering support for other OpenID providers soon.</p>
<p>On the surface, this may look like an attempt by Google to poach users away from Yahoo by making it even easier for them to switch. In fact, it&#8217;s a real-world example of the type of interoperability that OpenID has been promising to bring to the open web for some time.</p>
<p><span id="more-48596"></span></p>
<p>The more services, web apps and social networks we sign up for, the more places we have to create an account, remember a password, find friends, and build up a user profile. <a href="http://openid.net/">OpenID</a> and the other twiddly bits in the &#8220;open stack&#8221; of social web technologies &#8212; like <a href="http://oauth.net/">OAuth</a> and <a href="http://portablecontacts.net/">Portable Contacts</a> &#8212; make it easier for us to securely re-use this data across numerous websites and applications while only having to maintain one user account and one password at the provider of our choosing. With OpenID and OAuth, your data can easily be forklifted into other social networks with just a few clicks. OpenID currently powers the <a href="http://www.janrain.com/blogs/measuring-popularity-social-media-platforms-across-web">majority of third-party logins</a> on the web.</p>
<p>This new Google/Yahoo system works because Yahoo is an OpenID provider. If you have a Yahoo account, you can use it to log in to any website that accepts OpenID. Google has simply started using the Yahoo OpenID API, the bit of code that makes it easier for third parties to create a simple, streamlined login experience for visitors who want to use their Yahoo ID to log in.</p>
<p>The same type of third-party login is possible using your Google account, since Google exposes the information necessary to make that happen in its own <a href="http://code.google.com/apis/accounts/docs/OpenID.html">OpenID APIs</a>.</p>
<p>So there&#8217;s no poaching happening here, just an open door policy on Yahoo&#8217;s end, and the implementation of one of Yahoo&#8217;s APIs on Google&#8217;s end.</p>
<p>Google is currently only offering OpenID logins for Yahoo users, the company says. The <a href="http://googlecode.blogspot.com/2010/09/sign-up-with-google-using-openid.html">Google Code blog</a> gives some more detail: &#8220;As [the new login feature] is based on an internet standard, we plan to use it in the future with other e-mail providers that add support for this usage of OpenID and related standards like OAuth, such as in the Microsoft Live identity APIs.&#8221;</p>
<p>Google is also experimenting with an OpenID/OAuth hybrid called <a href="http://code.google.com/p/step2/">Step2</a>, which builds on <a href="http://wiki.openid.net/Connect-Work-Group">similar community efforts</a> to build a new system based on those two technologies. Among other things, these new hybrid systems aim to make the process less confusing for users, and to make OAuth sign-ins easier for applications that run on a phone or on the desktop rather than in a web browser. </p>
<p><b>See also:</b></p>
<ul>
<li><a href="http://www.webmonkey.com/2010/05/new-openid-connect-proposal-could-solve-many-of-the-social-webs-woes/">New &#8216;OpenID Connect&#8217; Proposal Could Solve Many of the Social Web&#8217;s Woes</a></li>
<li><a href="http://www.webmonkey.com/2010/06/video-the-open-and-social-web-explained/">Video: The Open and Social Web Explained</a></li>
<li><a href="http://www.webmonkey.com/2010/04/facebook-adopts-open-standard-for-user-logins/">Facebook Adopts Open Standard for User Logins</a></li>
<li><a href="http://www.webmonkey.com/2010/08/twitter-moves-to-oauth-the-oauthcalypse-is-nigh/">Twitter Moves to OAuth: The OAuthcalypse Is Nigh</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/09/yahoo-users-can-now-open-a-google-account-with-openid/feed/</wfw:commentRss>
        <slash:comments>1</slash:comments>

        
    </item>
    
    <item>
        <title>Yahoo Mail Switches to HTML5 on the iPad</title>
        <link>http://www.webmonkey.com/2010/08/yahoo-mail-switches-to-html5-on-the-ipad/</link>
        <comments>http://www.webmonkey.com/2010/08/yahoo-mail-switches-to-html5-on-the-ipad/#comments</comments>
        <pubDate>Wed, 18 Aug 2010 00:22:27 +0000</pubDate>

                <dc:creator>Michael Calore</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/?p=48345</guid>
        		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Webmail]]></category>
		<category><![CDATA[Yahoo]]></category>
            <enclosure url="http://www.webmonkey.com/wp-content/uploads/2010/08/iPad-Inbox-Full3-300x234.png" type="image/png" length="48000" />
                    <description><![CDATA[<div class="rss_thumbnail"><img src="http://www.webmonkey.com/wp-content/uploads/2010/08/iPad-Inbox-Full3-300x234.png" alt="Yahoo Mail Switches to HTML5 on the iPad" /></div>Yahoo recently revamped its webmail site to deliver a richer, HTML5-powered experience to iPhone users, and now the company has done the same for iPad users. Go to the Yahoo Mail website on your iPad and you&#8217;ll see the new, fully juiced-up HTML5 version instead of the older mobile version. Yahoo mail the world&#8217;s largest [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><a href="http://www.webmonkey.com/wp-content/uploads/2010/08/iPad-Inbox-Full3-300x234.png"><img src="http://www.webmonkey.com/wp-content/uploads/2010/08/iPad-Inbox-Full3-300x234.png" alt="" title="iPad-Inbox-Full3-300x234" width="300" height="234" /></a>
<p>Yahoo recently revamped its webmail site to deliver a richer, HTML5-powered experience to <a href="http://ymobileblog.com/blog/2010/06/30/yahoo-brings-its-world-class-communications-experiences-to-your-android-phone-plus-introduces-the-all-new-html5-mobile-web-mail/">iPhone users</a>, and now the company has <a href="http://ymobileblog.com/blog/2010/08/17/yahoo-%E2%80%98delivers%E2%80%99-mail-optimized-for-ipad/">done the same for iPad users</a>.</p>
<p>Go to the <a href="http://mail.yahoo.com">Yahoo Mail website</a> on your iPad and you&#8217;ll see the new, fully juiced-up HTML5 version instead of the older mobile version.</p>
<p>Yahoo mail the world&#8217;s largest webmail site &#8212; it has over <a href="http://www.email-marketing-reports.com/metrics/email-statistics.htm">275 million users</a> &#8212; but the site lags behind second-runner-up Gmail when it comes to <a href="http://www.webmonkey.com/2010/06/gmail-mobile-is-always-on-the-move/">innovation with HTML5</a> on the iPad and other touchy-swipey browsing devices.</p>
<p>Still, the new Yahoo Mail looks pretty slick. Scrollable photo previews now appear inside e-mail messages, and it supports offline local cache so you can keep working even when you&#8217;re out of range. </p>
<div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/08/yahoo-mail-switches-to-html5-on-the-ipad/feed/</wfw:commentRss>
        <slash:comments>2</slash:comments>

        
    </item>
    
    <item>
        <title>New Flickr Is Bigger, Wider and Uncut</title>
        <link>http://www.webmonkey.com/2010/06/new-flickr-is-bigger-wider-and-uncut/</link>
        <comments>http://www.webmonkey.com/2010/06/new-flickr-is-bigger-wider-and-uncut/#comments</comments>
        <pubDate>Wed, 23 Jun 2010 20:38:41 +0000</pubDate>

                <dc:creator>Scott Gilbertson</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/?p=47789</guid>
        		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[Yahoo]]></category>
            <enclosure url="http://www.webmonkey.com/wp-content/uploads/2010/06/flickr-sidebar.jpg" type="image/jpeg" length="48000" />
                    <description><![CDATA[<div class="rss_thumbnail"><img src="http://www.webmonkey.com/wp-content/uploads/2010/06/flickr-sidebar.jpg" alt="New Flickr Is Bigger, Wider and Uncut" /></div>The grandfather of online photo-sharing sites is rolling out a revamped design. Photo pages on Flickr have been redone to feature larger images, maps, and a much cleaner, more intuitive interface. For now, the new look is opt-in, but Flickr plans to make the new page design the default some time next month. To see [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><div id="attachment_47791" class="wp-caption aligncenter" style="width: 590px"><a href="http://www.webmonkey.com/wp-content/uploads/2010/06/flickr-new.jpg"><img src="http://www.webmonkey.com/wp-content/uploads/2010/06/flickr-new.jpg" alt="" title="flickr-new" width="580" height="422" class="size-full wp-image-47791" /></a><p class="wp-caption-text">The new Flickr photo page</p></div></p>
<p>The grandfather of online photo-sharing sites is rolling out a revamped design. Photo pages on Flickr have been redone to feature larger images, maps, and a much cleaner, more intuitive interface.</p>
<p>For now, the new look is opt-in, but Flickr plans to make the new page design the default some time next month. To see the new photo page in action, log in to your Flickr account and visit any photo page. You&#8217;ll see an option to test the new look. You can also use <a href="http://www.flickr.com/help/general/#1539493">links provided by Flickr</a> to switch between the two experiences.</p>
<p><div id="attachment_47790" class="wp-caption alignright" style="width: 310px"><a href="http://www.webmonkey.com/wp-content/uploads/2010/06/flickr-old.jpg"><img src="http://www.webmonkey.com/wp-content/uploads/2010/06/flickr-old-300x208.jpg" alt="" title="flickr-old" width="300" height="208" class="size-medium wp-image-47790" /></a><p class="wp-caption-text">Flickr's old look: Click for larger.</p></div>
<p>It&#8217;s been a long time since Flickr did anything major to its main photo pages. Flickr started with a limited set of features and has been bolting new features onto the old design ever since. The result has been a slightly cluttered collection of buttons, tools and bits of data that can distract from the main point of the site &#8212; your photos.</p>
<p>The new look changes that, streamlining the navigation and tools while &#8220;embiggening&#8221; your photos (as Flickr refers to it).</p>
<p>The first thing you&#8217;ll notice is that the primary image is much larger. The long edge of your image is now 640 pixels across, a 30 percent increase. If that&#8217;s not big enough for you, just hover your mouse over any image and you&#8217;ll notice the icon changes to a magnifying glass. Click the image (or the new button between the Newer and Older buttons) and you&#8217;ll enter what Flickr calls the Lightbox view.</p>
<p>Similar to popular JavaScript slideshow tools, Flickr&#8217;s Lightbox view enlarges the image and overlays your screen with a slightly transparent black background. The nice thing about the new Lightbox view is that you can browse through photos without closing it, as well as leave comments and favorite photos.</p>
<p>Perhaps the single most-useful enhancement to casual viewing found in Flickr&#8217;s redesign is the addition of new keyboard shortcuts &#8212; yes, left and right arrow will now flip through photos just the way you&#8217;d expect. The keyboard navigation works in Lightbox mode as well.</p>
<p>The new look consolidates all the tools previously scattered around the page &#8212; adding notes, viewing EXIF data, editing images and a dozen more &#8212; into a single Actions dropdown menu. The result is a far less-cluttered page that still offers easy access to anything you&#8217;d like to do with your photos.</p>
<p><span id="more-47789"></span></p>
<p><div id="attachment_47792" class="wp-caption alignright" style="width: 310px"><a href="http://www.webmonkey.com/wp-content/uploads/2010/06/flickr-sidebar.jpg"><img src="http://www.webmonkey.com/wp-content/uploads/2010/06/flickr-sidebar.jpg" alt="" title="flickr-sidebar" width="300" height="374" class="size-full wp-image-47792" /></a><p class="wp-caption-text">The new Flickr sidebar shows a map and EXIF data.</p></div>The sidebar has been similarly cleaned up and widened. The thumbnail filmstrip preview is now five images wide, allowing for faster browsing through photostreams, groups or pools.</p>
<p>The filmstrip has dropped in priority though, moving down below the new top billing &#8212; the who, what, where and when of your images. </p>
<p>Assuming you uploaded your images with EXIF tags and geodata, the top portion of the sidebar will now tell viewers where the image was taken, the camera and lens used, and the date the photo was taken.</p>
<p>Just below that is a very slick map that shows a country-level view of where the photo was taken. Hover your mouse over the map, and it will automatically zoom in to a city-level view. Hover the mouse over the actual map pin, and the map will zoom in again.</p>
<p>If you want an even more detailed look, just click the map, and it will bring up a larger map that overlays the current page and allows you to zoom and pan around the area. It would be nice if the overlay showed nearby photos as well, but it doesn&#8217;t, though there is a link that will take you to the Nearby map page.</p>
<p>Beneath the map you&#8217;ll find a quick overview of your image &#8212; how many times it has been viewed, the number of comments and how many people call it a favorite.</p>
<p>The reorganized thumbnail preview area is now context-sensitive. For example, if you land on a photo page while browsing a user&#8217;s photostream, then the photostream thumbnails are shown. If the photo is part of any sets, groups or pools, clicking on those will bring up a filmstrip of the next photo in the group. However, if you land on a photo page while browsing through a group, the group&#8217;s thumbnail filmstrip will be shown by default. It&#8217;s a subtle change, but it makes browsing images much more intuitive.</p>
<p>Flickr &#8220;favorites&#8221; have always been a sort of quick-comment feature, and Flickr is embracing that use even more by moving Favorites inline with comments. Comments have also been revamped, so that posting a comment no longer requires a page refresh. (That it previously did gives you some idea of just how long Flickr has been around.)</p>
<p>While Flickr&#8217;s redesigned photo page is a vast improvement, it&#8217;s not without a few quirks. For example, some of the links on the photo page bring up inline overlays &#8212; like Lightbox view and the map &#8212; while the rest do not. In testing the site yesterday I found myself sometimes hesitating, trying to decide if I was about the leave the photo page or if an overlay would appear. The varying behavior might make the new page a tad confusing for those not familiar with Flickr, because you never know exactly what&#8217;s going to happen when you click a link. </p>
<p>For those using Flickr every day, such quirks will quickly fade and there&#8217;s no doubt that the redesign is a vast improvement. Flickr also claims that page load times are faster, though we didn&#8217;t notice a huge difference while previewing the test site. Still, loading a larger photo without slowing down the page will likely be good enough for most users.</p>
<p><a href="http://blog.flickr.net/en/2010/06/23/a-new-photo-experience-your-photos-happier/">Flickr&#8217;s official blog post</a> has more details if you&#8217;re curious.</p>
<p><strong>See Also:</strong><br/></p>
<ul>
<li><a href="http://www.webmonkey.com/2010/06/flickr-hooks-up-with-facebook-for-photo-sharing-love/">Flickr Hooks Up With Facebook for Photo-Sharing Love</a></li>
<li><a href="http://www.webmonkey.com/2009/10/flickr_adds_people_tagging_for_finding_friends_in_photos/">Flickr Adds People-Tagging for Finding Friends in Photos</a></li>
<li><a href="http://www.webmonkey.com/2009/06/flickr_makes_it_simple_to_post_photos_on_twitter/">Flickr Makes it Simple to Post Photos on Twitter</a></li>
<li><a href="http://www.webmonkey.com/2010/02/get_started_with_the_flickr_api/">Using the Flickr API</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/06/new-flickr-is-bigger-wider-and-uncut/feed/</wfw:commentRss>
        <slash:comments>11</slash:comments>

        
    </item>
    
    <item>
        <title>Yahoo Maps API</title>
        <link>http://www.webmonkey.com/2010/02/yahoo_maps_api/</link>
        <comments>http://www.webmonkey.com/2010/02/yahoo_maps_api/#comments</comments>
        <pubDate>Tue, 16 Feb 2010 01:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=445</guid>
        		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Location]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[Yahoo]]></category>
        <description><![CDATA[This is the basic structure of a data call to Yahoo Maps&#8217; API. This will draw a 500px by 300px map centered on Wired&#8217;s San Francisco offices, complete with zoom and pan controls. When the user clicks on the location marker, a pop-up box will appear with some text inside. All of these attributes can [...]]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --><p>This is the basic structure of a data call to Yahoo Maps&#8217; API. This will draw a 500px by 300px map centered on Wired&#8217;s San Francisco offices, complete with zoom and pan controls. When the user clicks on the location marker, a pop-up box will appear with some text inside.

</p><p>All of these attributes can be changed by modifying the code below. You&#8217;ll need to use your own API key.

</p><p><br />
<span id="more-445"></span>
</p>

<pre class="brush: js">

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;

	&lt;head&gt;



		&lt;title&gt;My Yahoo Map&lt;/title&gt;

		&lt;script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.8&amp;appid=YOUR_API_KEY"&gt;&lt;/script&gt;

		&lt;style&gt;

		div#ymap {

			width: 500px;

			height: 300px;

		}

		&lt;/style&gt;



		&lt;script type="text/javascript"&gt;

		function initialize_ymap()

		{

			// Create a map object

			var map = new YMap(document.getElementById('ymap'));

			// Create latitude/longitude point

			var yPoint = new YGeoPoint(37.780764,-122.395592);



			// Add map type control

			map.addTypeControl();

			// Default map to satellite (YAHOO_MAP_SAT) -- other opts: YAHOO_MAP_HYB, YAHOO_MAP_REG

			map.setMapType(YAHOO_MAP_SAT);



			// Add zoom control

			map.addZoomLong();

			// Add the pan control

			map.addPanControl();



			// Display the map centered on a geocoded location

			map.drawZoomAndCenter(yPoint, 6);



			// Create a new marker for an address

			var myMarker = new YMarker(yPoint);

			// Create some content to go inside the SmartWindow

			var myMarkerContent = "&lt;h2&gt;&lt;strong&gt;Wired HQ!&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;Home of Monkeys&lt;/p&gt;";

			// When the marker is clicked, show the SmartWindow

			YEvent.Capture(myMarker, EventsList.MouseClick,

				function() {

					myMarker.openSmartWindow(myMarkerContent);

				});



			// Add a label to the marker

			myMarker.addAutoExpand("Click for more!");



			// Put the marker on the map

			map.addOverlay(myMarker);



		}

		&lt;/script&gt;

	&lt;/head&gt;



	&lt;body onload="initialize_ymap()"&gt;

		&lt;h1&gt;My Yahoo! Map&lt;/h1&gt;

		&lt;div id="ymap"&gt;&lt;/div&gt;

	&lt;/body&gt;

&lt;/html&gt;





</pre><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/yahoo_maps_api/feed/</wfw:commentRss>
        <slash:comments>2</slash:comments>

        
    </item>
    
    <item>
        <title>Using the Yahoo Maps API</title>
        <link>http://www.webmonkey.com/2010/02/get_started_with_the_yahoo_maps_api/</link>
        <comments>http://www.webmonkey.com/2010/02/get_started_with_the_yahoo_maps_api/#comments</comments>
        <pubDate>Tue, 16 Feb 2010 01:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=821</guid>
        		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Location]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[Yahoo]]></category>
        <description><![CDATA[Yahoo&#8217;s Maps API may not be as popular as Google&#8217;s mashup mainstay, but it has many of the same features. In some ways, it&#8217;s even easier to use than Google&#8217;s Maps API, so beginners getting started with API interaction might prefer Yahoo&#8217;s implementation. To get started working with Yahoo maps, we&#8217;ll simply create a map [...]]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --><p>Yahoo&#8217;s Maps API may not be as popular as Google&#8217;s mashup mainstay, but it has many of the same features. In some ways, it&#8217;s even easier to use than Google&#8217;s Maps API, so beginners getting started with API interaction might prefer Yahoo&#8217;s implementation.

</p><p>To get started working with Yahoo maps, we&#8217;ll simply create a map we can display on a web page, and then add a marker to denote a particular location.
</p><br />
<span id="more-821"></span>

<table id="toc" class="toc" summary="Contents"><tbody><tr><td><div id="toctitle"><h2>Contents</h2> </div>

<ol>

<li><a href="#What_you.27ll_need">What you&#8217;ll need</a></li>



<li><a href="#How_to_Proceed">How to Proceed</a>

<ol>

<li><a href="#Step_1:_Get_started">Step 1: Get started</a></li>

<li><a href="#Step_2:_Adding_in_the_Map">Step 2: Adding in the Map</a></li>

<li><a href="#Step_3:_Adding_Markers">Step 3: Adding Markers</a></li>



<li><a href="#Where_to_Go_From_Here">Where to Go From Here</a></li>

</ol>

</li>

<li><a href="#Further_Reading">Further Reading</a></li>

</ol>





</td></tr></tbody></table>

<!--more-->

<a name="What_you.27ll_need"></a><h2> <span class="mw-headline"> What you&#8217;ll need </span></h2>



<ul><li> Knowledge of JavaScript, CSS and HTML

</li><li> A Yahoo account

</li><li> <a href="http://developer.yahoo.com/wsregapp/" class="external text" title="http://developer.yahoo.com/wsregapp/" rel="nofollow">A Yahoo Application ID</a>. Yahoo will ask for some information from you, but the good news is you get an ID right away.

</li></ul>

<p><br />

</p>

<a name="How_to_Proceed"></a><h2> <span class="mw-headline">How to Proceed</span></h2>

<a name="Step_1:_Get_started"></a><h3> <span class="mw-headline">Step 1: Get started</span></h3>

<p>Before using the API, you&#8217;ll need a Yahoo account and an <a href="http://developer.yahoo.com/wsregapp/" class="external text" title="http://developer.yahoo.com/wsregapp/" rel="nofollow">Application ID</a>. Once you have your ID, create a file containing the following HTML:



</p>

<pre class="brush: js">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;

	&lt;head&gt;

		&lt;title&gt;My Yahoo Map&lt;/title&gt;

		&lt;script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.8&amp;appid=appidhere"&gt;&lt;/script&gt;

	&lt;/head&gt;

	&lt;body&gt;

		&lt;h1&gt;My Yahoo Map&lt;/h1&gt;

		&lt;div id="ymap"&gt;&lt;/div&gt;

	&lt;/body&gt;

&lt;/html&gt;

</pre>

<p>This code is enough to load the API, but we don&#8217;t have a map quite yet.

</p><p><br />

</p>

<a name="Step_2:_Adding_in_the_Map"></a><h3> <span class="mw-headline">Step 2: Adding in the Map</span></h3>

<p>To tell Yahoo how and where to add a map, we need to add some JavaScript between the head tags near the top of our HTML file. Try this function, <tt>initialize_ymap</tt>:

</p>

<pre class="brush: js">		&lt;script type="text/javascript"&gt;

		function initialize_ymap()

		{

			// Create a map object

			var map = new YMap(document.getElementById('ymap'));

			// Display the map centered on a geocoded location

			map.drawZoomAndCenter("San Francisco", 6);

		}

		&lt;/script&gt;
</pre>

<p><br />

Here, we tell Yahoo to use the element with the id &#8220;ymap&#8221; as our map. In the HTML code we created in step one, we included an empty div with the &#8220;ymap&#8221; id. In the second part of the script, we tell the map to center on San Francisco and zoom in.

</p><p>Finally, we need to call the initialize_ymap function. To do this, add an onload attribute to the body tag of your HTML document, like so:

</p>

<pre class="brush: js">	&lt;body onload="initialize_ymap()"&gt;

</pre>

<p>Reload the HTML file and you should see San Francisco. Yeah?

</p><p>Now would also be a fine time to change the shape of your map if you&#8217;d like. To do this, you just need to add a few style declarations for div#ymap in your CSS file, or add this code between your head tags:

</p>

<pre class="brush: js">		&lt;style&gt;

		div#ymap {

			width: 500px;

			height: 300px;

		}

		&lt;/style&gt;
</pre>

<p>Reload and now you should see San Francisco in widescreen. Fancy!

</p><p><br />

</p>

<a name="Step_3:_Adding_Markers"></a><h3> <span class="mw-headline">Step 3: Adding Markers</span></h3>

<p>The thing that makes using these maps better than using a plain old static image is the added spark you get from interactivity. To that end, let&#8217;s take this map up a notch by adding a clickable marker &#8212; one of those little flags that denotes a specific point on the map. Yahoo also lets you include information about the location inside an element called the SmartWindow. Your visitors will see the Ajax-powered SmartWindow pop up when they click on your marker.

</p><p>Placing a marker on your map will require adding some more JavaScript code to the <tt>initialize_ymap</tt> function. Add this bit after the drawZoomAndCenter line:

</p>

<pre class="brush: js">		// Create a new marker for an address

		var myMarker = new YMarker("520 3rd St, San Francisco, CA");

		// Create some content to go inside the SmartWindow

		var myMarkerContent = "&lt;h2&gt;&lt;strong&gt;Wired.com&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;Home of Monkeys&lt;/p&gt;";

		// When the marker is clicked, show the SmartWindow

		YEvent.Capture(myMarker, EventsList.MouseClick,

			function() {

				myMarker.openSmartWindow(myMarkerContent);

			});

		// Put the marker on the map

		map.addOverlay(myMarker);
</pre>

<p><br />

Reload your HTML file and now a little speech bubble icon should now be hovering above I-80 on the east side of San Francisco. Click it, and you&#8217;ll see the message inside a SmartWindow. You can even include HTML markup inside your SmartWindow.

</p><p>Now you&#8217;ve made huge strides toward being a Yahoo Maps API expert!

</p><p><br />

</p>

<a name="Where_to_Go_From_Here"></a><h3> <span class="mw-headline">Where to Go From Here</span></h3>

<p>There are many ways to improve your Yahoo Map. So far we have a very basic map, but here are a few more things you can do to make it a little sexier, complete with code.

</p><p>Add a short message to your marker when users hover their mouse over the icon. Add this code after the new YMarker line:

</p>

<pre class="brush: js">		// Add a label to the marker

		myMarker.addAutoExpand("Click for more!");

</pre>

<p><br />

Make your map zoomable and navigatable by adding some pre-made controls from Yahoo&#8217;s API. Add this after the new YMap line:



</p>

<pre class="brush: js">		// Add zoom control

		map.addZoomLong();

		// Add the pan control

		map.addPanControl();

</pre>

<p>Set your map to show satellite images, and provide a way for users to change the map type. Add this after the new YMap line:

</p>

<pre class="brush: js">		// Add map type control

		map.addTypeControl();

		// Default map to satellite (YAHOO_MAP_SAT) -- other opts: YAHOO_MAP_HYB, YAHOO_MAP_REG

		map.setMapType(YAHOO_MAP_SAT);

</pre>

<p>Yahoo&#8217;s API is pretty neat in that it lets you add maps and markers with only the name or address of the place. Without extra effort, Google uses latitude and longitude points, two numbers that refer to a geocode location for a spot on a map.

</p><p>Yahoo can use these numbers, too. The upside of using points is that, especially with many markers, your maps will load faster.

</p><p>To change our map to use points, add this line after the new YMap line:

</p>

<pre class="brush: js">		// Create latitude/longitude point

		var yPoint = new YGeoPoint(37.780764,-122.395592);

</pre>

<p>Then change the new YMarker and <tt>drawZoomAndCenter</tt> lines to reference the yPoint variable instead of the city or address:



</p>

<pre class="brush: js">		// Display the map centered on a geocoded location

		map.drawZoomAndCenter(yPoint, 6);

		// Create a new marker for an address

		var myMarker = new YMarker(yPoint);

</pre>

<p>Create custom image markers, draw lines on a map, or overlay local search results &#8212; it&#8217;s all outlined in <a href="http://developer.yahoo.com/maps/ajax/index.html" class="external text" title="http://developer.yahoo.com/maps/ajax/index.html" rel="nofollow">Yahoo&#8217;s documentation</a>.

</p>

<a name="Further_Reading"></a><h2> <span class="mw-headline">Further Reading</span></h2>

<p>You can grab all of the code used in this article from Webmonkey&#8217;s Code Library: <a href="/2010/02/Yahoo_Maps_API" title="CodeLibrary:Yahoo Maps API">Yahoo Maps API</a>

</p><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/get_started_with_the_yahoo_maps_api/feed/</wfw:commentRss>
        <slash:comments>2</slash:comments>

        
    </item>
    
    <item>
        <title>Get Started With the Yahoo HTTP Geocoder API</title>
        <link>http://www.webmonkey.com/2010/02/get_started_with_the_yahoo_http_geocoder_api/</link>
        <comments>http://www.webmonkey.com/2010/02/get_started_with_the_yahoo_http_geocoder_api/#comments</comments>
        <pubDate>Tue, 16 Feb 2010 01:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=826</guid>
        		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Location]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[Yahoo]]></category>
        <description><![CDATA[Since the major search engines have opened up their mapping tools to programmers, geocoding has become an essential step in the process of building many a mashup. Geocoding is the process of converting human-readable place data &#8212; a city name, ZIP code, or address &#8212; to latitude and longitude points that can be easily plotted [...]]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --><p>Since the major search engines have opened up their mapping tools to programmers, geocoding has become an essential step in the process of building many a mashup.

</p><p>Geocoding is the process of converting human-readable place data &#8212; a city name, ZIP code, or address &#8212; to latitude and longitude points that can be easily plotted on a map.

</p><p>Yahoo&#8217;s HTTP Geocoder API is easy to use, and its output is easy to incorporate into your applications. This article will describe its features and show some examples of how to access the results.
</p><p><br />
<span id="more-826"></span>

</p>

<table id="toc" class="toc" summary="Contents"><tbody><tr><td><div id="toctitle"><h2>Contents</h2> </div>



<ol>

<li><a href="#What_You.27ll_Need">What You&#8217;ll Need</a></li>

<li><a href="#How_to_Proceed">How to Proceed</a>

<ol>

<li><a href="#Step_1:_Start_a_Search">Step 1: Start a Search</a></li>

<li><a href="#Step_2:_View_the_Results">Step 2: View the Results</a></li>



<li><a href="#Step_3:_Interpret_the_Results">Step 3: Interpret the Results</a></li>
</ol>
</li>
<li><a href="#Where_to_Go_From_Here">Where to Go From Here</a></li>
</ol>
</td></tr></tbody></table>


<a name="What_You.27ll_Need"></a><h2> <span class="mw-headline">What You&#8217;ll Need</span></h2>

<ul><li> Basic knowledge of XML

</li><li> A Yahoo account

</li><li> <a href="http://developer.yahoo.com/wsregapp/" class="external text" title="http://developer.yahoo.com/wsregapp/" rel="nofollow">A Yahoo Application ID</a>. Yahoo will ask for some information from you, but the good news is you get an ID right away.

</li><li> To incorporate results with an application, you&#8217;ll need some programming skills. I&#8217;ll be showing code examples in PHP.

</li></ul>

<p><br />

</p>

<a name="How_to_Proceed"></a><h2> <span class="mw-headline">How to Proceed</span></h2>

<a name="Step_1:_Start_a_Search"></a><h3> <span class="mw-headline">Step 1: Start a Search</span></h3>



<p>Yahoo provides several options to search for a location, such as specifying an address and city separately.

</p><p>For example, here&#8217;s the address for Wired.com, the home of Webmonkey:

</p><p>520 3rd Street

San Francisco, CA

</p><p>Breaking this into pieces for the geocoder, we get:

</p><p>street: 520 3rd Street

city: San Francisco

state: CA

</p><p>The HTTP geocoder uses a simple URL. All we have to do is pass these pieces to the geocoder with the correct parameter. Here&#8217;s the URL we can use for the Webmonkey address (remember to include your Application ID):

</p>

<pre class="brush: js">http://local.yahooapis.com/MapsService/V1/geocode?appid=appidhere&amp;street=520+3rd+Street&amp;city=San+Francisco&amp;state=CA

</pre>

<p><b>Tip</b>: Sometimes we may be geocoding an address that comes from a user. In that case, we don&#8217;t always know where the street name ends and the city name begins. The Yahoo API provides a useful option of passing along everything as one parameter and letting the geocoder figure out which part is which. We&#8217;ll do that here, using the location parameter:

</p>

<pre class="brush: js">http://local.yahooapis.com/MapsService/V1/geocode?appid=appidhere&amp;location=520+3rd+Street+San+Francisco+CA



</pre>

<p>Both of these URLs return the exact same results. That geocoder is smart!

</p><p><br />

</p>

<a name="Step_2:_View_the_Results"></a><h3> <span class="mw-headline">Step 2: View the Results</span></h3>

<p>When we searched for the Webmonkey offices, we received a whole bunch of XML that looks like this:

</p>

<pre class="brush: js">&lt;ResultSet xsi:schemaLocation="urn:yahoo:maps http://api.local.yahoo.com/MapsService/V1/GeocodeResponse.xsd"&gt;

  &lt;Result precision="address"&gt;

    &lt;Latitude&gt;37.780995&lt;/Latitude&gt;



    &lt;Longitude&gt;-122.395528&lt;/Longitude&gt;

     &lt;Address&gt;520 3rd St&lt;/Address&gt;

    &lt;City&gt;San Francisco&lt;/City&gt;

    &lt;State&gt;CA&lt;/State&gt;



    &lt;Zip&gt;94107-1805&lt;/Zip&gt;

    &lt;Country&gt;US&lt;/Country&gt;

  &lt;/Result&gt;

&lt;/ResultSet&gt;

</pre>

<p><br />



In XML, pieces of data are wrapped in tags that look a lot like HTML. The first thing you may notice is that the geocoder separated the pieces of the address for us. Now we have the address, city, and state, with each piece clearly marked.

</p><p>The geocoder also told us some things we didn&#8217;t know. For one, it changed the street name. We sent 520 3rd Street and it returned 520 3rd St. Rewritten street names could help our applications remain consistent. It&#8217;s not a big deal, but it&#8217;s nice. We also now know the postal code of the address, and in the ZIP+4 format, no less.

</p><p>Even more useful than that are the latitude and longitude points. It is those long decimal numbers that we can use to plot on a map or calculate the distance from another location.

</p><p>To use this data, we need to have a way to load it into an application. Time to break out some PHP.

</p><p><br />

</p>

<a name="Step_3:_Interpret_the_Results"></a><h3> <span class="mw-headline">Step 3: Interpret the Results</span></h3>

<p>We&#8217;ll be using PHP for these examples. Most web languages will have some method of interpreting XML, which is all that is necessary to use results from Yahoo&#8217;s geocoder.

</p><p>Since we&#8217;re using PHP, we&#8217;ll be relying on cUrl and SimpleXML. Each of these libraries is usually installed along with PHP 5. <a href="http://us3.php.net/curl" class="external text" title="http://us3.php.net/curl" rel="nofollow">cUrl</a> makes HTTP calls to retrieve content from web pages or services, such as the Yahoo HTTP geocoder. <a href="http://us.php.net/simplexml" class="external text" title="http://us.php.net/simplexml" rel="nofollow">SimpleXML</a> takes XML content and converts it to an object, so that individual elements can easily be picked out from XML.



</p><p>Create a new PHP file in a web directory with this content to test out the geocoder. I&#8217;m calling mine test_geocoder.php:

</p>

<pre class="brush: js">&lt;?

/*** REMEMBER to use your own Application ID ***/

$appid = "appidhere";

$geourl = "http://local.yahooapis.com/MapsService/V1/geocode?appid=$appid&amp;location=520+3rd+Street+San+Francisco+CA";



// Create cUrl object to grab XML content using $geourl

$c = curl_init();

curl_setopt($c, CURLOPT_URL, $geourl);

curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

$xmlContent = trim(curl_exec($c));

curl_close($c);



// Create SimpleXML object from XML Content

$xmlObject = simplexml_load_string($xmlContent);



// Print out all of the XML Object

print header("Content-type: text/plain");

print_r($xmlObject);

?&gt;



Now go to your browser and load your test_geocoder.php file. The output should look like this:



SimpleXMLElement Object

(

    [Result] =&gt; SimpleXMLElement Object

        (

            [@attributes] =&gt; Array

                (

                    [precision] =&gt; address

                )

            [Latitude] =&gt; 37.780995

            [Longitude] =&gt; -122.395528

            [Address] =&gt; 520 3rd St

            [City] =&gt; San Francisco

            [State] =&gt; CA

            [Zip] =&gt; 94107-1805

            [Country] =&gt; US

        )

)



</pre>

<p>To access individual elements, such as Latitude, provide the path to the element like this:

</p>

<pre class="brush: js">print ($xmlObject-&gt;Result-&gt;Latitude);

</pre>

<p><br />

</p>

<a name="Where_to_Go_From_Here"></a><h2> <span class="mw-headline">Where to Go From Here</span></h2>

<p>Geocoding is the basis for mapping. The Yahoo HTTP geocoder gives you the data you need to plot the points on your map so you can focus on the cooler aspects of your applications. Here are some ideas to help you take the next steps:

</p>

<ul><li> When asking users for their address, you can force them to provide it in a correct format (including the ZIP code) to ensure a good address.

</li></ul>



<ul><li> Pre-process common locations and store the latitude and longitude in a database for easy, quick access.

</li></ul>

<ul><li> If you&#8217;re sticking with PHP, Yahoo provides a non-XML method to read in the results. If you add <tt>&amp;output=php</tt> to the end of the URL to get serialized PHP format, which makes it available as a PHP array. If you run the unserialize function on the content, there&#8217;s no need to use SimpleXML. You&#8217;ll simply be able to call elements like arrays:

</li></ul>

<pre class="brush: js">$yarray = ["ResultSet"]["Result"]["Latitude"]

</pre>

<p><br />

</p>

<ul><li> Visit the <a href="http://developer.yahoo.com/maps/" class="external text" title="http://developer.yahoo.com/maps/" rel="nofollow">Yahoo Maps developer site</a> for more documentation and examples.



</li></ul><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/get_started_with_the_yahoo_http_geocoder_api/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Get Local Search Results From Yahoo</title>
        <link>http://www.webmonkey.com/2010/02/get_local_search_results_with_yahoo_maps_api/</link>
        <comments>http://www.webmonkey.com/2010/02/get_local_search_results_with_yahoo_maps_api/#comments</comments>
        <pubDate>Tue, 16 Feb 2010 01:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=907</guid>
        		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Location]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[Yahoo]]></category>
        <description><![CDATA[Online maps are a popular way to spice up a site. To get the most use out of them, you need data to plot: addresses from a database, location clicks from the user or at least coordinates for the map&#8217;s center. With any map, you have to start somewhere. If you&#8217;re low on data, you [...]]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --><p>Online maps are a popular way to spice up a site. To get the most use out of them, you need data to plot: addresses from a database, location clicks from the user or at least coordinates for the map&#8217;s center. With any map, you have to start somewhere.

</p><p>If you&#8217;re low on data, you can fill in the map with local listings, such as those you&#8217;d find in the Yellow Pages. You can show coffee shops or pizza joints right along your other data, or even on its own.

</p><p>In this tutorial I&#8217;ll show how to use Yahoo Local to search for nearby businesses and landmarks, then plot those locations on a Yahoo Map using the Ajax API.

</p><span id="more-907"></span>

<table id="toc" class="toc" summary="Contents"><tbody><tr><td><div id="toctitle"><h2>Contents</h2> </div>

<ol>



<li><a href="#What_You_Need">What You Need</a></li>

<li><a href="#Start_With_a_Basic_Map">Start With a Basic Map</a>

<ol>

<li><a href="#Add_Your_App_ID">Add Your App ID</a></li>

</ol>

</li>

<li><a href="#Find_Nearby_Burritos">Find Nearby Burritos</a>



<ol>

<li><a href="#Performing_the_Search">Performing the Search</a></li>

<li><a href="#Placing_the_Markers">Placing the Markers</a></li>

</ol>

</li>

<li><a href="#Accept_User_Input">Accept User Input</a>

<ol>

<li><a href="#Calling_Out_The_Callbacks">Calling Out The Callbacks</a></li>



</ol>

</li>

<li><a href="#Where_to_go_From_Here">Where to go From Here</a>

<ol>

<li><a href="#Mashup_Direction">Mashup Direction</a></li>

<li><a href="#Academic_Direction">Academic Direction</a></li>

<li><a href="#Location_Direction">Location Direction</a></li>



</ol>

</li>

</ol>

</td></tr></tbody></table>

<a name="What_You_Need"></a><h2> <span class="mw-headline">What You Need</span></h2>

<ul><li> Knowledge of JavaScript, CSS and HTML

</li><li> A Yahoo account and <a href="http://developer.yahoo.com/wsregapp/" class="external text" title="http://developer.yahoo.com/wsregapp/" rel="nofollow">Yahoo Application ID</a>. Yahoo will ask for some information from you, but the good news is you get an ID right away.

</li><li> A little familiarity with Yahoo Maps

</li></ul>



<a name="Start_With_a_Basic_Map"></a><h2> <span class="mw-headline">Start With a Basic Map</span></h2>

<p>As a starting place for getting Yahoo Local data into your map, we&#8217;ll use a basic map from Webmonkey&#8217;s <a href="/2010/02/Get_Started_With_the_Yahoo_Maps_API/" class="external text" title="/2010/02/Get_Started_With_the_Yahoo_Maps_API/" rel="nofollow">introduction to Yahoo Maps</a>. Add this code to a new HTML file:

</p>

<pre class="brush: js">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;

	&lt;head&gt;

		&lt;title&gt;My Yahoo Map&lt;/title&gt;



		&lt;script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.8&amp;appid=appidhere"&gt;&lt;/script&gt;

		&lt;script type="text/javascript"&gt;

		function initialize_ymap()

		{

			// Create a map object

			var map = new YMap(document.getElementById('ymap'));

			// Display the map centered on a geocoded location

			map.drawZoomAndCenter("San Francisco", 6);

		}

		&lt;/script&gt;

		&lt;style&gt;

		div#ymap {

			width: 500px;

			height: 300px;

		}

		&lt;/style&gt;



	&lt;/head&gt;

	&lt;body onload="initialize_ymap()"&gt;

		&lt;h1&gt;My Yahoo Map&lt;/h1&gt;

		&lt;div id="ymap"&gt;&lt;/div&gt;

	&lt;/body&gt;



&lt;/html&gt;

</pre>

<p><br />

</p>

<a name="Add_Your_App_ID"></a><h3> <span class="mw-headline">Add Your App ID</span></h3>

<p>Before you continue to the next section, you need to add your Yahoo Application ID. Find this call to api.maps.yahoo.com and replace <code>appidhere</code> with your own Application ID:

</p>

<pre class="brush: js">&lt;script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.8&amp;appid=appidhere"&gt;&lt;/script&gt;



</pre>

<p><br />

Once you make the change, save the file. Load it in your browser and you should see a map of San Francisco, like this:

</p><p><iframe src="http://www.wired.com/wired/archive/webmonkey/Yahoolocal/basic.html" name="Page1" align="middle" frameborder="0" height="400" scrolling="no" width="600"></iframe>

</p><p><br />

</p>

<a name="Find_Nearby_Burritos"></a><h2> <span class="mw-headline">Find Nearby Burritos</span></h2>

<p>Now that your map is loading, it&#8217;s time to fill it with local goodness. Do you know something else filled with goodness? Burritos. Because I believe in beating bad analogies to death, in this section I&#8217;ll show how you can take your blank map tortilla, add some data cheese, then finish off with rice and beans in the form of markers on the map.

</p><p>Okay, in plain English: I&#8217;ll be showing you how to search Yahoo Local, in this case for &#8220;burritos,&#8221; and plotting the results on our Yahoo Map. Here&#8217;s the finished product I&#8217;ll show you how to create:

</p><p><iframe src="http://www.wired.com/wired/archive/webmonkey/Yahoolocal/staticsearch.html" name="Page1" align="middle" frameborder="0" height="400" scrolling="no" width="600"></iframe>

</p><p><br />

We&#8217;ll start with the blank map of San Francisco from the previous section. The first thing we need to do is add a button, which will be used to activate the local search. Place this HTML below the &#8220;ymap&#8221; div:

</p>



<pre class="brush: js">	&lt;form&gt;

		&lt;input type="submit" value="Search for burritos" onclick="javascript:doLocalSearch('burritos'); return false;" /&gt;

	&lt;/form&gt;

</pre>

<p>Notice that we have a form with a single submit button. When the button is clicked, it calls a JavaScript function <b>doLocalSearch</b> and passes the string &#8216;burritos&#8217; to it. We&#8217;ll need to make that function next.

</p><p>First a note about the <code>return false</code> line that comes at the end of the bit of JavaScript inside the submit button. That tells the browser not to actually submit the form to the server. JavaScript works in the browser without submitting a form.



</p>

<a name="Performing_the_Search"></a><h3> <span class="mw-headline">Performing the Search</span></h3>

<p>Now that we can call the search with the form button, we need to write the code for the search. Add this function just above the &lt;/script&gt; tag near the top of your document:

</p>

<pre class="brush: js">		function doLocalSearch(keyword)

		{

			map.searchLocal(map.getCenterLatLon(), keyword, 1, 5);

			YEvent.Capture(map, EventsList.onEndLocalSearch, addMarkers);

		}

</pre>

<p>There are two parts to this new function. The first passes four things off to Yahoo&#8217;s searchLocal function:

</p>

<ol><li> The center of our map (a YGeoPoint object)

</li><li> The keyword we&#8217;re searching for, burritos



</li><li> The radius of search results, in miles

</li><li> The number of search results, 1-20.

</li></ol>

<p>Since the search uses Ajax, the results are asynchronous. Unlike many functions that return results immediately, there is a delay for local search. It&#8217;s sort of like placing an order at a restaurant. Say you want a burrito, so you let the cashier know. Unless you&#8217;re at the airport, you don&#8217;t get your burrito right away. Instead, you have to wait for your order to come up. Sometimes you&#8217;re even given a number, so you&#8217;ll know immediately that your food is ready.

</p><p>The second line of our new function is where we tell the browser that we care about doing something with the results as soon as they come back. This is often referred to as a callback function. In Yahoo Maps, we enlist the callback function by &#8220;capturing&#8221; an event with the <b>YEvent.Capture</b> function. In this case, we told the browser to send the results of the search to the addMarkers function.

</p>

<a name="Placing_the_Markers"></a><h3> <span class="mw-headline">Placing the Markers</span></h3>

<p>The results of our local search are being sent to the <b>addMarkers</b> function, so we need to create that function. Add this just above the &lt;/script&gt; tag near the top of your document (just below the closing curly brace from the previous function):



</p>

<pre class="brush: js">		function addMarkers(result)

		{

			if (result.Data)

			{

				var places = result.Data.ITEMS;

				for (i=0; i &lt; places.length; i++)

				{

					var thisplace = places[i];

					var marker = new YMarker(new YGeoPoint(thisplace.LATITUDE, thisplace.LONGITUDE));

					marker.addAutoExpand(thisplace.TITLE + '&lt;br /&gt;' + thisplace.ADDRESS);

					map.addOverlay(marker);

				}

			}

		}

</pre>

<p>There are just a few lines in here that do the actual work of adding the marker to the page. The rest ensures that there was data that returned from the search, and iterates through those results.

</p><p>The <code>places</code> variable is one I created to take the array of results objects from the search. Each object contains the data about the results, such as latitude, longitude, place name (title), and address.

</p><p>Now that we have received results from a search we hard-coded, let&#8217;s look at how we can accept input and let users search our map.

</p>

<a name="Accept_User_Input"></a><h2> <span class="mw-headline">Accept User Input</span></h2>



<p>With the map we created in the previous section, we can search for burritos in San Francisco. What if someone wanted to search for something else somewhere else? Let&#8217;s add some ways to accept user input and use it in a local search.

</p><p>Here&#8217;s the example we&#8217;ll be working towards:

</p><p><iframe src="http://www.wired.com/wired/archive/webmonkey/Yahoolocal/usersearch.html" name="Page1" align="middle" frameborder="0" height="400" scrolling="no" width="600"></iframe>

</p><p>We can start with the version in the previous section, the static search for burritos. Instead of the single button to start the search, we need a couple input boxes and a new button. In fact, you can scrap the form in the previous section and replace it with this new one:

</p>

<pre class="brush: js">	&lt;form&gt;

		Search for: &lt;input type="text" name="kw" /&gt;

		in &lt;input type="text" name="loc" value="San Francisco, CA" /&gt;



		&lt;input type="submit" value="Search Map" onclick="javascript:searchLocation(document.forms[0].loc.value, document.forms[0].kw.value); return false;" /&gt;

	&lt;/form&gt;

</pre>

<p>Instead of calling the doLocalSearch function directly, our new button calls <b>searchLocation</b>, a new function we&#8217;ll need to create. It passes the two values inside the input boxes to the function, so our new function needs to accept the name of a place and the keyword we&#8217;re searching.

</p><p>Add the searchLocation function to the file, just above the &lt;/script&gt; line:

</p>

<pre class="brush: js">		function searchLocation(placename, keyword)

		{

			map.drawZoomAndCenter(placename, 6);

			YEvent.Capture(map, EventsList.onEndGeoCode, function()

			{

				doLocalSearch(keyword);

			});

		}



</pre>

<p><br />

</p><p>Much of the code in this function will look similar to what we wrote in previous sections. We&#8217;ve used the drawZoomAndCenter call since the first empty map. Before, we set the map on San Francisco. Now we&#8217;re zooming and centering into whatever place the user types in.

</p><p>YEvent.Capture may also look familiar, from our doLocalSearch function. There we were capturing the onEndLocalSearch event. Here, we need to capture onEndGeoCode event. Why? Because whenever we look up a city (such as with drawZoomAndCenter), Yahoo needs to make an Ajax call to its geocoder. Since the result isn&#8217;t available immediately, we need to &#8220;place an order&#8221; so that something can happen as soon the geocoding is done.

</p><p>When the geocoding is done, we want to perform the local search. In order to get the keyword passed correctly, we need to wrap the call in an anonymous function. It&#8217;s a little confusing if you haven&#8217;t seen it before, but that&#8217;s a common programming pattern with JavaScript callbacks.

</p><p><br />

</p>

<a name="Calling_Out_The_Callbacks"></a><h3> <span class="mw-headline">Calling Out The Callbacks</span></h3>

<p>Speaking of callbacks, there are two that go on every time the user searches the map in this example.

</p><p><b>Callback one</b>: After calling drawZoomAndCenter, which needs to geocode the location. When this is complete, the first callback initiates the search function.

</p><p><b>Callback two</b>: After calling searchLocal, which needs to perform the local search. When this is complete, the second callback plots the markers on the page.

</p>

<a name="Where_to_go_From_Here"></a><h2> <span class="mw-headline">Where to go From Here</span></h2>



<p>You now have the basics down for plotting local data on a Yahoo Map. There are more directions to go than there are results for sushi in San Francisco.

</p>

<a name="Mashup_Direction"></a><h3> <span class="mw-headline">Mashup Direction</span></h3>

<p>What data do you have about your city? In addition to city locations, Yahoo Maps can look up specific addresses and landmarks. Armed with just park names, for example, you could show pet stores near parks.

</p><p>To see this in action, just return to the search example in the previous section and search for &#8220;pet stores&#8221; and use &#8220;Buena Vista Park San Francisco, CA&#8221; as the location.

</p>

<a name="Academic_Direction"></a><h3> <span class="mw-headline">Academic Direction</span></h3>

<p>Though I was mainly showing you how to use Yahoo Maps local search, you also received an introduction into more advanced JavaScript with callbacks. Now is the time to keep moving forward with your education by testing yourself. Can you edit the static search example to load automatically, eliminating the need for the search button?

</p><p>Hint: you&#8217;ll need to capture an event inside the initialize_maps function.

</p>

<a name="Location_Direction"></a><h3> <span class="mw-headline">Location Direction</span></h3>



<p>Use some JavaScript to grab the user&#8217;s location as a starting point. Luckily, we have a <a href="/2010/02/Track_User_Geolocation_With_JavaScript" class="external text" title="/2010/02/Track_User_Geolocation_With_JavaScript" rel="nofollow">JavaScript geolocation tutorial</a>. Go for it!

</p><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/get_local_search_results_with_yahoo_maps_api/feed/</wfw:commentRss>
        <slash:comments>6</slash:comments>

        
    </item>
    
    <item>
        <title>Craigslist Reverses Yahoo Pipes Ban, But Developers Have Already Moved On</title>
        <link>http://www.webmonkey.com/2009/12/craigslist_reverse_yahoo_pipes_ban__but_developers_have_already_moved_on/</link>
        <comments>http://www.webmonkey.com/2009/12/craigslist_reverse_yahoo_pipes_ban__but_developers_have_already_moved_on/#comments</comments>
        <pubDate>Thu, 17 Dec 2009 12:34:30 +0000</pubDate>

                <dc:creator>Scott Gilbertson</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/blog/craigslistreversesyahoopipesbanbutdevelopershavealreadymovedon</guid>
        		<category><![CDATA[APIs]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[craigslist]]></category>
		<category><![CDATA[pipes]]></category>
		<category><![CDATA[politics]]></category>
		<category><![CDATA[Yahoo]]></category>
        <description><![CDATA[Earlier this month, Craigslist blocked Yahoo Pipes from accessing any Craigslist page. As a result, mashups all over the web were suddenly without data. After not responding to inquires, Craigslist CEO Jim Buckmaster eventually posted a terse message on the company&#8217;s blog saying that Yahoo Pipes mashups were using &#8220;a disproportionate amount of server/bandwidth resources.&#8221;Now [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img class="blogimg" src="http://www.wired.com/images_blogs/epicenter/2009/12/craigslist_home.jpg" />Earlier this month, Craigslist <a href="http://www.webmonkey.com/blog/Craigslist_to_Developers:_Look_Elsewhere_For_Mashup_Data">blocked Yahoo Pipes from accessing any Craigslist page</a>. As a result, mashups all over the web were suddenly without data.</p>
<p>After not responding to inquires, Craigslist CEO Jim Buckmaster eventually posted <a href="http://blog.craigslist.org/2009/12/pipes-faucets/">a terse message on the company&#8217;s blog</a> saying that Yahoo Pipes mashups were using &#8220;a disproportionate amount of server/bandwidth resources.&#8221;Now it would seem that Craigslist has <a href="http://twitter.com/jzawodn">ended its ban of Yahoo Pipes</a>, but for developers we imagine the damage has been done. For its part, the startup <a href="http://www.flippity.com/alpha/">Flippity</a>, which was the first to notice its Yahoo Pipe had been blocked, <a href="http://www.webmonkey.com/blog/Craigslist_to_Developers:_Look_Elsewhere_For_Mashup_Data">says it has moved on to friendlier sources</a>, rewriting Flippity to use the eBay API.</p>
<p>It wasn&#8217;t the first time Craigslist has shutdown outsiders trying to improve on the site&#8217;s famously antiquated tools &#8212; the site previous <a href="http://www.webmonkey.com/blog/Craigslist_Blocks_ListPic__Considers_Adding_Visual_Browsing">blocked ListPic</a>, a tool designed to help Craigslist users browse by images, and a tool to <a href="http://www.codinghorror.com/craigslist/">search all the Craigslist sites at once</a>.</p>
<p>As we said in our <a href="http://www.webmonkey.com/blog/Craigslist_to_Developers:_Look_Elsewhere_For_Mashup_Data">initial report</a> on this debacle, if you&#8217;re a developer looking for data to use in a mashup, think twice about Craigslist. The site has a wealth of data, but it guards it jealously and has no qualms about blocking even major players like Yahoo.</p>
<p><strong>See Also:</strong></p>
<ul>
<li><a href="http://www.webmonkey.com/blog/Craigslist_to_Developers:_Look_Elsewhere_For_Mashup_Data">Craigslist to Developers: Look Elsewhere For Mashup Data</a></li>
<li><a href="http://www.webmonkey.com/blog/Craigslist_Blocks_ListPic__Considers_Adding_Visual_Browsing">Craigslist Blocks ListPic, Considers Adding Visual Browsing</a></li>
<li><a href="http://www.webmonkey.com/blog/Craigslist_Users_Crack_Down_on_IPhone_Unlockers">Craigslist Users Crack Down on IPhone Unlockers</a></li>
<li><a href="http://www.wired.com/entertainment/theweb/magazine/17-09/ff_craigslist?currentPage=all">Why Craigslist Is Such a Mess</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>
]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2009/12/craigslist_reverse_yahoo_pipes_ban__but_developers_have_already_moved_on/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    </channel>
</rss>
