<?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>[Dot] Code Dump &#187; google</title>
	<atom:link href="http://www.dotcodedump.com/category/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dotcodedump.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Wed, 06 Jan 2010 12:27:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Intro to Google App Engine: Displaying Twitter Trends</title>
		<link>http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/</link>
		<comments>http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 17:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[App Engine]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=49</guid>
		<description><![CDATA[My adventure into to Twitter land let me to a point. JavaScript alone wasn&#8217;t going to cut it. I was going to have to go back to the land of the server. I started investigating different options that were preferably free. I settled upon Google App Engine.
The Google App Engine does lock you down to [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://code.google.com/appengine/images/appengine_lowres.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 142px; height: 109px;" src="http://code.google.com/appengine/images/appengine_lowres.jpg" alt="" border="0" /></a>My adventure into to Twitter land let me to a point. JavaScript alone wasn&#8217;t going to cut it. I was going to have to go back to the land of the server. I started investigating different options that were preferably free. I settled upon <a href="http://code.google.com/appengine/">Google App Engine.</a></p>
<p>The Google App Engine does lock you down to using Python. I took this as a challenge to delve into Python. The App Engine does not use a traditional relational database, instead it uses <a href="http://en.wikipedia.org/wiki/BigTable">BigTable</a> built on <a href="http://en.wikipedia.org/wiki/Google_File_System">Google File System</a>.  The App Engine is also scalable, and completely hosted by Google.</p>
<p>This is checklist to get an application running on Google App Engine:
<ul>
<li>Sign up for an Application (Requires a Google Account)</li>
<li>Download the SDK (Requires Python 2.5)</li>
<li>Create an application using the template provided in SDK</li>
<li>Upload your application to the AppEngine</li>
</ul>
<p>Some notes on the App Engine programming, you must use python.  You are limited to standard Python 2.5.  They provide some extensions, and a limited version of Django.  You can upload other &#8220;pure Python&#8221; extensions.</p>
<p>View my <a href="http://dcodedump.appspot.com/">simple Python CGI application</a> for displaying the Twitter trends API call.</p>
<p>My view of the App Engine is it is a service that has potential.  The service requires you to download the SDK and work for the command line, so if you are not comfortable with this then it probably is not the service for you.  I will probably continue to play with the App Engine, becuase it has some real potential, and I want to learn more about working BigTable.</p>
<p>Once the service is more refined it could be a really smooth way to develop highly scalable web service.  Look out for this one as a major player in the cloud market if they decide to take it mainstream with other languages beyond Python.</p>
<p>Here is the source code, also this was my first real dive into Python, beyond just toying with the interpreter (I love it!!!1!)</p>
<pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"><code>#!/usr/bin/env python

import wsgiref.handlers

from google.appengine.ext import webapp#url fetchingfrom google.appengine.api import urlfetchfrom datetime import datetime#use the simplejson library, lucky it was in djangofrom django.utils import simplejsonimport time

#Output the html ick, but it's just a exampleoutput = '&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;'output += '&lt;h1&gt;Twitter Trends&lt;/h1&gt;'output += '&lt;ul&gt;'

# Make the API call to twitterurl = "http://search.twitter.com/trends.json"result = urlfetch.fetch(url)

#Status code ok?if result.status_code == 200:json = simplejson.loads(result.content)#Loop through the trends listfor i in json['trends']:output += '&lt;li&gt;'output += '&lt;a href="' + i['url'] + '"&gt;'output += i['name']output += '&lt;/a&gt;&lt;/li&gt;'

#Finish out the requestoutput += '&lt;/ul&gt;'output += '&lt;/body&gt;&lt;/html&gt;'

#The primary handler, just outputs outputclass MainHandler(webapp.RequestHandler):def get(self):self.response.out.write(output)

#Defines the calls through the applicationdef main():application = webapp.WSGIApplication([('/', MainHandler)],                                  debug=True)wsgiref.handlers.CGIHandler().run(application)

if __name__ == '__main__':main()

</code></pre>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/&amp;title=Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/&amp;title=Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/&amp;title=Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends&amp;url=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/&amp;title=Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/&amp;title=Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/&amp;title=Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/&amp;title=Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Intro+to+Google+App+Engine%3A+Displaying+Twitter+Trends+@+http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/02/intro-to-google-app-engine-displaying-twitter-trends/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating a simple Twitter AJAX widget using Google Feeds API</title>
		<link>http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/</link>
		<comments>http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 05:32:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=47</guid>
		<description><![CDATA[I was doing some research into making API calls to Twitter using JavaScript.  The one problem I ran into was calling remote domains.  One quick solution I found was to use the Google Feed API. Google provides a really easy and simple interface for accessing feeds via JavaScript.
A quick how to:
To start out [...]]]></description>
			<content:encoded><![CDATA[<p>I was doing some research into making API calls to <a href="http://twitter.com/ianlintner">Twitter</a> using JavaScript.  The one problem I ran into was calling remote domains.  One quick solution I found was to use the Google Feed API. Google provides a really easy and simple interface for accessing feeds via JavaScript.</p>
<p><span style="font-weight: bold;">A quick how to</span>:</p>
<p>To start out you must import the api using your <a href="http://code.google.com/apis/maps/signup.html">Google API key</a>.
<pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"><code>&lt;script src="http://www.google.com/jsapi?key=[Your Google API Key]"&gt;&lt;/script&gt;</code></pre>
<p>This is script was taking from the <a href="http://code.google.com/apis/ajax/playground/#load_feed">Google AJAX API Playground</a>, I just added in the call for Twitter, the full script is below.</p>
<p>First the Google feed object is instantiated with the call to the <a href="http://apiwiki.twitter.com/REST+API+Documentation">Twitter API</a> via RSS.
<pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"><code>var feed = new google.feeds.Feed("http://twitter.com/statuses/user_timeline/ianlintner.rss");</code></pre>
<p>The Google feed API is great way to access and work with remote feeds, and APIs using just JavaScript.  This also an asynchronous call, so it should play well with other AJAX solutions.</p>
<p>The full listing, with my changes.
<pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"><code>&lt;!--Copyright (c) 2008 Google Inc.

You are free to copy and use this sample.License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license--&gt;

&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"&gt;&lt;head&gt;&lt;meta http-equiv="content-type" content="text/html; charset=utf-8"/&gt;&lt;title&gt;Google AJAX Search API Sample&lt;/title&gt;&lt;script src="http://www.google.com/jsapi?key=[Google Key]"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;/**  How to load a feed via the Feeds API.*/

google.load("feeds", "1");

// Our callback function, for when a feed is loaded.function feedLoaded(result) {  if (!result.error) {    // Grab the container we will put the results into    var container = document.getElementById("content");    container.innerHTML = '';

    // Loop through the feeds, putting the titles onto the page.    // Check out the result object for a list of properties returned in each entry.    // http://code.google.com/apis/ajaxfeeds/documentation/reference.html#JSON    for (var i = 0; i &lt; result.feed.entries.length; i++) {      var entry = result.feed.entries[i];      var div = document.createElement("div");      div.appendChild(document.createTextNode(entry.title));      container.appendChild(div);    }  }}

function OnLoad() {  // Create a feed instance that will grab twitter  var feed = new google.feeds.Feed("http://twitter.com/statuses/user_timeline/ianlintner.rss");

  // Calling load sends the request off.  It requires a callback function.  feed.load(feedLoaded);}

google.setOnLoadCallback(OnLoad);&lt;/script&gt;&lt;/head&gt;&lt;body style="font-family: Arial;border: 0 none;"&gt;&lt;div id="content"&gt;Loading...&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</code></pre>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API&amp;url=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/&amp;title=Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Creating+a+simple+Twitter+AJAX+widget+using+Google+Feeds+API+@+http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2009/02/creating-a-simple-twitter-ajax-widget-using-google-feeds-api/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google XML Sitemap library in ASP.NET</title>
		<link>http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/</link>
		<comments>http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 19:53:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[sitemap]]></category>
		<category><![CDATA[vb]]></category>

		<guid isPermaLink="false">http://blog.lintnernet.com/?p=21</guid>
		<description><![CDATA[XML site maps that are submitted to google or yahoo is fast becoming a standard.  Producing these in .NET can be straightforward.  Here is my example site map generator class.  The full generator must be passed a list of SitemapUrl objects, which is included in the project.
Download This Project
The project is in [...]]]></description>
			<content:encoded><![CDATA[<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imgs.xkcd.com/store/imgs/online_communities_300.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://imgs.xkcd.com/store/imgs/online_communities_300.png" alt="" border="0" /></a>XML site maps that are submitted to google or yahoo is fast becoming a standard.  Producing these in .NET can be straightforward.  Here is my example site map generator class.  The full generator must be passed a list of SitemapUrl objects, which is included in the project.</p>
<p><a href="http://xmlsitemap.googlecode.com/files/XMLSitemapLibrary.Beta.zip">Download This Project</a></p>
<p>The project is in VB, and is independent of ASP.NET, so it could also be used for scripting, and is available via <a href="http://code.google.com/p/xmlsitemap/">google code</a>.</p>
<p><a id="Why?">The main goal for the library is to do one thing well: generate XML site maps. This is a very simple library designed to avoid using any unnecessary .NET libraries, such as any of the XML routines, aka lightweight. It is also made to be very hackable, and easy to implement. </a>
<pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"><code>Public Class XMLSitemap

 'This is a sitemap library of static functions to generate an xml sitemap for submission to google, yahoo, msn, etc 'Ian Lintner 'License: GPLv3 http://www.gnu.org/licenses/gpl-3.0.html '7/15/2008

 Public Const XMLTag As String = "&lt;?xml version=""1.0"" encoding=""utf-8"" standalone=""yes""?&gt;" Public Const HeaderTag As String = "&lt;urlset xmlns=""http://www.sitemaps.org/schemas/sitemap/0.9""&gt;" Public Const ClosingHeaderTag As String = "&lt;/urlset&gt;" Public Const GroupingTag As String = "url" Public Const LocationTag As String = "loc" Public Const FrequencyTag As String = "freq" Public Const ModifiedTag As String = "lastmod" Public Const PriorityTag As String = "priority"

 'Example of sitemap ' '&lt;?xml version="1.0" encoding="utf-8" standalone="yes"?&gt; '&lt;urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&gt; '   &lt;url&gt; '       &lt;loc&gt;http://www.mysite.com/home.html&lt;/loc&gt; '       &lt;lastmod&gt;2008-07-01&lt;/lastmod&gt; '       &lt;changefreq&gt;Weekly&lt;/changefreq&gt; '       &lt;priority&gt;1&lt;/priority&gt; '   &lt;/url&gt; '&lt;/urlset&gt;

 'This is accepts mistakes in the object, if it doesn't find what it needs it just doesn't include it Public Shared Function AddSitemapUrl(ByVal SitemapUrl As SitemapUrl) As String     Dim myStringBuilder As New StringBuilder()

     If SitemapUrl.Location IsNot Nothing AndAlso SitemapUrl.Location &lt;&gt; String.Empty Then         myStringBuilder.AppendLine(AddIndentedNode(LocationTag, SitemapUrl.Location, 2))

         If Not SitemapUrl.LastUpdated = DateTime.MinValue Then             'Date Format in sitemaps must be in 2008-01-01 format!             myStringBuilder.AppendLine(AddIndentedNode(ModifiedTag, Format(SitemapUrl.LastUpdated, "yyyy-MM-dd"), 2))         End If

         If SitemapUrl.UpdateFrequency IsNot Nothing AndAlso SitemapUrl.UpdateFrequency &lt;&gt; String.Empty Then             myStringBuilder.AppendLine(AddIndentedNode(FrequencyTag, SitemapUrl.UpdateFrequency, 2))         End If

         If SitemapUrl.Priority &gt; 0 AndAlso SitemapUrl.Priority &lt;= 1 Then             myStringBuilder.AppendLine(AddIndentedNode(PriorityTag, SitemapUrl.Priority.ToString, 2))         End If

         myStringBuilder.AppendLine(String.Empty)

         Return AddIndentedNode(GroupingTag, myStringBuilder.ToString, 1)     Else         Return ""     End If

 End Function

 Public Shared Function AddIndentedNode(ByVal Name As String, ByVal Value As String, ByVal Indent As Integer) As String     Dim myIndent As String = ""

     For i As Integer = 1 To Indent         myIndent &amp;= vbTab     Next

     Return AddNode(Name, Value, myIndent) End Function

 Public Shared Function AddNode(ByVal Name As String, ByVal Value As String, Optional ByVal Indent As String = "") As String     Dim myFormattedValue As String = Value.Replace("&amp;", "&amp;amp;")     Return Indent &amp; "&lt;" &amp; Name &amp; "&gt;" &amp; myFormattedValue &amp; "&lt;/" &amp; Name &amp; "&gt;" End Function

 Public Shared Function GenerateSitemap(ByVal SitemapUrlCollection As IEnumerable(Of SitemapUrl)) As String     Dim mySitemapEnumerator As IEnumerator(Of SitemapUrl)     Dim mySitemapStringBuilder As New StringBuilder()

     mySitemapStringBuilder.AppendLine(XMLTag)     mySitemapStringBuilder.AppendLine(HeaderTag)

     mySitemapEnumerator = SitemapUrlCollection.GetEnumerator()

     If mySitemapEnumerator IsNot Nothing Then         While mySitemapEnumerator.MoveNext             mySitemapStringBuilder.AppendLine(AddSitemapUrl(mySitemapEnumerator.Current))         End While     End If

     mySitemapStringBuilder.AppendLine(ClosingHeaderTag)

     Return mySitemapStringBuilder.ToString End Function

End Class</code></pre>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/&amp;title=Google+XML+Sitemap+library+in+ASP.NET" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/&amp;title=Google+XML+Sitemap+library+in+ASP.NET" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/&amp;title=Google+XML+Sitemap+library+in+ASP.NET" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dzone.com/links/add.html?description=Google+XML+Sitemap+library+in+ASP.NET&amp;url=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/&amp;title=Google+XML+Sitemap+library+in+ASP.NET" rel="nofollow" title="Add to&nbsp;DZone"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/dzone.png" title="Add to&nbsp;DZone" alt="Add to&nbsp;DZone" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/&amp;title=Google+XML+Sitemap+library+in+ASP.NET" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/&amp;title=Google+XML+Sitemap+library+in+ASP.NET" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/&amp;title=Google+XML+Sitemap+library+in+ASP.NET" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Google+XML+Sitemap+library+in+ASP.NET+@+http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://www.dotcodedump.com/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.dotcodedump.com/2008/07/google-xml-sitemap-library-in-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
