<?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>Wayne Pan &#187; appengine</title>
	<atom:link href="http://waynepan.com/tag/appengine/feed/" rel="self" type="application/rss+xml" />
	<link>http://waynepan.com</link>
	<description>tech &#124; js &#124; ui &#124; ajax &#124; mobile</description>
	<lastBuildDate>Mon, 17 Oct 2011 20:52:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Yuil/Cuil/Google Irony</title>
		<link>http://waynepan.com/2008/07/30/yuilcuilgoogle-irony/</link>
		<comments>http://waynepan.com/2008/07/30/yuilcuilgoogle-irony/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 01:02:57 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[cuil]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=148</guid>
		<description><![CDATA[Does anybody else find it funny that Yuil, a demo made by a VP of Yahoo! to show off the Y!&#8217;s BOSS Search APIs, is supposed to be a parody of Cuil which in turn is supposed to be a &#8230; <a href="http://waynepan.com/2008/07/30/yuilcuilgoogle-irony/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://waynepan.com/wp-content/uploads/2008/07/yuillogo.png" alt="" title="yuillogo" width="200" height="80" class="aright size-full wp-image-149" />Does anybody else find it funny that <a href="http://www.javarants.com/2008/07/30/yahoo-boss-is-easy-meet-yuil/">Yuil</a>, a demo made by a VP of Yahoo! to show off the Y!&#8217;s BOSS Search APIs, is supposed to be a parody of <a href="http://cuil.com">Cuil</a> which in turn is supposed to be a Google-killer, is actually hosted on Google&#8217;s App Engine?</p>
<p>English majors, feel free to lambast me on my grammar in that last sentence.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/07/30/yuilcuilgoogle-irony/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppEngine: First Impressions</title>
		<link>http://waynepan.com/2008/04/14/appengine-first-impressions/</link>
		<comments>http://waynepan.com/2008/04/14/appengine-first-impressions/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 05:35:47 +0000</pubDate>
		<dc:creator>Wayne</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://waynepan.com/?p=118</guid>
		<description><![CDATA[I&#8217;ve been developing a small app using Google&#8217;s AppEngine. My first impression is that developing in the sandboxed python environment forces you to KISS. The SDK makes things dead simple in terms of templating, data access, and controlling which scripts &#8230; <a href="http://waynepan.com/2008/04/14/appengine-first-impressions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class='aright' src='http://waynepan.com/wp-content/uploads/2008/04/google_appengine1.png'/>I&#8217;ve been developing a small app using <a href="http://code.google.com/appengine/">Google&#8217;s AppEngine</a>. My first impression is that developing in the sandboxed python environment forces you to <a href="http://en.wikipedia.org/wiki/KISS_principle">KISS</a>. The SDK makes things dead simple in terms of templating, data access, and controlling which scripts map to which urls. </p>
<p>The side affect of abstracting the data access layer is that I no longer have to spend much time with database schema. That&#8217;s because AppEngine doesn&#8217;t run a traditional relational database and doesn&#8217;t allow you to run traditional SQL against the data store. I end up writing horribly un-optimized &#8216;queries&#8217; because I&#8217;m not able to write highly optimized SQL queries. The SDK is obviously geared to take full advantage of the instant look up and high throughput that BigTable excels at.</p>
<p>For example, for these 2 objects:</p>
<pre>
class Attribute(db.Model):
  author = db.UserProperty()
  content = db.StringProperty(multiline=True)
  date = db.DateTimeProperty(auto_now_add=True)

class UserAttribute(db.Model):
  attribute_key = db.ReferenceProperty(Attribute)
  user = db.UserProperty()
  date = db.DateTimeProperty(auto_now_add=True)
</pre>
<p>I can access all the Attributes that belong to the User with the following code:</p>
<pre>
    query = db.Query(UserAttribute)
    user_attributes = query.filter('user =', \
      users.get_current_user())
    attributes = [ua.attribute_key for ua in user_attributes]
</pre>
<p>I&#8217;ll keep updating as I dig into the SDK.</p>
]]></content:encoded>
			<wfw:commentRss>http://waynepan.com/2008/04/14/appengine-first-impressions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

