<?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>drawcloud - cloud tracking, service and product development &#187; python</title>
	<atom:link href="http://cloud.drawcode.com/index.php/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://cloud.drawcode.com</link>
	<description></description>
	<lastBuildDate>Fri, 12 Feb 2010 04:13:19 +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>Google AppEngine now Supports Django 1.0</title>
		<link>http://cloud.drawcode.com/2009/06/19/google-appengine-now-supports-django-10/</link>
		<comments>http://cloud.drawcode.com/2009/06/19/google-appengine-now-supports-django-10/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 21:14:34 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[1.0]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=88</guid>
		<description><![CDATA[No more zip hacks to get all the many files up for Django 1.0 to run on Google AppEngine.  GAE now support Django 1.0.  You still have to use Google Bigtable models as there is no translation that converts from Django models to Google Bigtable models but 1.0 is so much better to [...]]]></description>
			<content:encoded><![CDATA[<p>No more zip hacks to get all the many files up for Django 1.0 to run on Google AppEngine.  <a href="http://groups.google.com/group/google-appengine/browse_thread/thread/fab4e52646994dff/93bdf272719b724c?pli=1" target="_blank">GAE now support Django 1.0</a>.  You still have to use Google Bigtable models as there is no translation that converts from Django models to Google Bigtable models but 1.0 is so much better to have than .96.</p>
<p>I hope this is a start of supporting and keeping up to date many versions of Django, the Python runtime and common libs so that the 1000 file limits can be used solely for applications running not all the libraries needed.</p>
<p><strong>UPDATE</strong>: on the issue for adding Django 1.0 <a href="http://code.google.com/p/googleappengine/issues/detail?id=872#c14 " target="_blank">Guido chimed in</a> on 1.1 support when it is out of beta and a nice switch that allows you to choose the django version, hooray! Maybe a python version selector and other libraries soon&#8230;</p>
<pre>use_library('django', '1.0')</pre>
<blockquote>
<pre>It's indeed fixed, though not yet documented.

To use:

1. Install Django 1.0 into the Python version you're using with the SDK (usually the
system Python).

2. In your app:
from google.appengine.dist import use_library
use_library('django', '1.0')

You no longer need to copy Django 1.0 into your app, nor do you need to mess with
sys.modules, sys.path and zipfiles.  (Though those instructions still apply if you
want to use Django 1.1 -- we'll start supporting that once it's out of beta.)

Note, Django 0.96 is still the default, and can also explicitly be requested by using
use_library('django', '0.96') -- in API v2, we'll probably change things so you
*have* to specify a Django version before you can use it.

We're contemplating the support of other open source packages as well (as long as
they don't contain C code).</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2009/06/19/google-appengine-now-supports-django-10/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google AppEngine Now Runs Java in Addition to Python</title>
		<link>http://cloud.drawcode.com/2009/04/07/google-appengine-now-runs-java-in-addition-to-python/</link>
		<comments>http://cloud.drawcode.com/2009/04/07/google-appengine-now-runs-java-in-addition-to-python/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 05:43:52 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[appscale]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=72</guid>
		<description><![CDATA[Google AppEngine now runs Python AND Java
It is still in beta but select developers are being added and developers allowed in will be expanded, I got in as I made the request so it looks like it is still filling up.
Both Java and C# were top requests on AppEngine desired languages/platforms.  They have low level [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="AppEngine" src="http://cloud.drawcode.com/wp-content/uploads/2008/04/app_engine.png" alt="" width="189" height="189" />Google AppEngine now runs Python<strong> AND </strong><a href="http://code.google.com/appengine/docs/java/overview.html" target="_blank"><strong>Java</strong></a></p>
<p><strong>It is still in beta but select developers are being added and developers allowed in will be expanded, I got in as I made the request so it looks like it is still filling up.</strong></p>
<p>Both Java and C# were top requests on AppEngine desired languages/platforms.  They have low level support for specific Google features and infrastructure and wrappers around these features to mimic common java libraries like <a href="http://code.google.com/appengine/docs/java/datastore/usingjpa.html" target="_blank">JPA</a>, <a href="http://code.google.com/appengine/docs/java/memcache/usingjcache.html" target="_blank">JCache </a>and java.net around <a href="http://code.google.com/appengine/docs/java/urlfetch/usingjavanet.html" target="_blank">google urlfetch</a>.  So it is still a bit locked to the platform or changes will need to be made to run on Google AppEngine and other environments.  </p>
<p>Many of the changes made to apps really are due to the scalable nature of the cloud architecture without such things as joins and limits on bulk processing, but in the end these points are really better for scalability from the start.  As for being locked to a platform we are already seeing copies such as <a href="http://code.google.com/p/appscale/" target="_blank">AppScale that is an open source implementation of Google AppEngine</a>.  So software architecture, data architecture and how we prepare for the terabytes upon terabytes of shared data in the future might be changing. </p>
<p><strong>Some unsupported features of major Java libraries&#8230;</strong></p>
<h3>java.net Features Not Supported</h3>
<ul>
<li>The URL Fetch service does not support persistent HTTP connections. When the app accesses response data using the URLConnection object, App Engine calls the URL Fetch service to complete the request. After the response data has been accessed, the request data cannot be modified.</li>
<li>The app cannot set explicit connection timeouts for the request.</li>
</ul>
<h3>Unsupported Features of JPA</h3>
<p>The following features of the JPA interface are not supported by the App Engine implementation:</p>
<ul class="doublespace">
<li>Owned many-to-many relationships, and unowned relationships. You can implement unowned relationships using explicit Key values, though type checking is not enforced in the API.</li>
<li>&#8220;Join&#8221; queries. You cannot use a field of a child entity in a filter when performing a query on the parent kind. Note that you can test the parent&#8217;s relationship field directly in query using a key.</li>
<li>Aggregation queries (group by, having, sum, avg, max, min)</li>
<li>Polymorphic queries. You cannot perform a query of a class to get instances of a subclass. Each class is represented by a separate entity kind in the datastore.</li>
</ul>
<h3>JCache Features Not Supported</h3>
<ul>
<li>The JCache listener API is partially supported for listeners that can execute during the processing of a app&#8217;s API call, such as for onPut and onRemove listeners. Listeners that require background processing, like onEvict, are not supported.</li>
<li>An app can test whether the cache contains a given key, but it cannot test whether the cache contains a given value (<code>containsValue()</code> is not supported).</li>
<li>An app cannot dump the contents of the cache&#8217;s keys or values.</li>
<li>An app cannot manually reset cache statistics.</li>
<li>Asynchronous cache loading is not supported.</li>
<li>The <code>put()</code> method does not return the previous known value for a key. It always returns <code>null</code>.</li>
</ul>
<p><strong>High Level Cloud Provider or Low Level Cloud Provider?</strong></p>
<p>With other cloud providers like Amazon EC2, Mosso, SliceHost and others you can choose your platform.  But Google has an amaxing infrasturcture and taking advantage of BigTable and automatic scaling is nice expecially with a 300MB transfer free quota per app.  There are probably times when each type of provider might be beneficial, lower level like Amazon or higher level like Google AppEngine.</p>
<p><a href="http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language-on-app.html" target="_blank"><strong>View the announcement here at Google AppEngine Blog</strong></a><strong> which has other great news with the launch:</strong></p>
<ul>
<li><a href="http://code.google.com/securedataconnector/">Access to firewalled data</a>: grant policy-controlled access to your data behind the firewall.</li>
<li><a href="http://code.google.com/appengine/docs/python/config/cron.html">Cron support</a>: schedule tasks like report generation or DB clean-up at an interval of your choosing.</li>
<li><a href="http://code.google.com/appengine/docs/python/tools/uploadingdata.html">Database import</a>: move GBs of data easily into your App Engine app. Matching export capabilities are coming soon, hopefully within a month.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2009/04/07/google-appengine-now-runs-java-in-addition-to-python/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Building Scalable Applications with Google AppEngine</title>
		<link>http://cloud.drawcode.com/2009/02/18/building-scalable-applications-with-google-appengine/</link>
		<comments>http://cloud.drawcode.com/2009/02/18/building-scalable-applications-with-google-appengine/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 22:55:35 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[scalable]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=59</guid>
		<description><![CDATA[Great video from Google on building for scale in Google AppEngine.  The cloud by nature gives you upwards scaling easily but the data structures and techniques to get data efficiently is much different than RDBMS type optimization.  Therefore the more experience and information you can gain on this topic will help you in [...]]]></description>
			<content:encoded><![CDATA[<p>Great video from Google on building for scale in Google AppEngine.  The cloud by nature gives you upwards scaling easily but the data structures and techniques to get data efficiently is much different than RDBMS type optimization.  Therefore the more experience and information you can gain on this topic will help you in the future when terabytes of data is the norm.</p>
<p>

<object width="640" height="480"><param name="movie" value="http://www.youtube.com/v/Oh9_t5W6MTE&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Oh9_t5W6MTE&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480"></embed></object>
<p>The slides from the video</p>
<iframe src='http://docs.google.com/EmbedSlideshow?docid=ddfdgz6g_1671hhdnddc4&amp;size=m' frameborder='0' width='555' height='451'></iframe>
</p>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2009/02/18/building-scalable-applications-with-google-appengine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google AppEngine 1.1.9 Update &#8211; Includes Resolved Issue Support Using Python urllib and urllib2</title>
		<link>http://cloud.drawcode.com/2009/02/09/google-appengine-119-update-includes-resolved-issue-support-using-python-urllib-and-urllib2/</link>
		<comments>http://cloud.drawcode.com/2009/02/09/google-appengine-119-update-includes-resolved-issue-support-using-python-urllib-and-urllib2/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 02:48:34 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[urllib]]></category>
		<category><![CDATA[urllib2]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=48</guid>
		<description><![CDATA[Google AppEngine SDK has been updated to 1.1.9 and a feature bug has been closed out by Guido that now has support for urllib and urllib2 libraries which nearly every library made with python uses as some point.  This is great that they are working to support (safely with scalability) the common libraries that Pythonistas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/googleappengine/downloads/list" target="_blank"><img class="alignright" title="GAE" src="http://cloud.drawcode.com/wp-content/uploads/2008/04/app_engine.png" alt="" width="189" height="189" />Google AppEngine SDK has been updated</a> to 1.1.9 and a <a href="http://code.google.com/p/googleappengine/issues/detail?id=61" target="_blank">feature bug has been closed out by Guido that now has support for urllib and urllib2 libraries</a> which nearly every library made with python uses as some point.  This is great that they are working to support (safely with scalability) the common libraries that Pythonistas expect.</p>
<p>I really hope Google AppEngine can go 1.0 soon.  After the official launch of Amazon EC2 and other services out of beta, mosso, joyent etc it is getting hard to convince people to build on it until it goes out of beta.</p>
<p>Hoping for two things, 1.0 of Google AppEngine and support of <a href="http://code.google.com/p/googleappengine/issues/detail?id=872&amp;q=django%201.0&amp;colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Component" target="_blank">Django 1.0 on that release officially</a>. It is possible to run <a href="http://code.google.com/appengine/articles/django10_zipimport.html" target="_blank">Django 1.0.x on the engine</a> but it is painful using all that disk space (django has lots of files and google has a 1,000 file limit).</p>
<p>http://code.google.com/p/googleappengine/issues/detail?id=61</p>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2009/02/09/google-appengine-119-update-includes-resolved-issue-support-using-python-urllib-and-urllib2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppEngine to Support Java, Microsoft Strata to Support .NET in the Cloud</title>
		<link>http://cloud.drawcode.com/2008/10/20/appengine-to-support-java-microsoft-strata-to-support-net-in-the-cloud/</link>
		<comments>http://cloud.drawcode.com/2008/10/20/appengine-to-support-java-microsoft-strata-to-support-net-in-the-cloud/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 15:32:41 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[elastic]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[systems]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mosso]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=37</guid>
		<description><![CDATA[AppEngine is getting an update to it&#8217;s next available language besides Python (my particular favorite) in Java.  Apparently the top candidates were C++, Java and C# support for AppEngine but Java has been added due to the overwhelming library and developer support.
Microsoft also has been playing with entering the cloud with Mesh and now with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.controlenter.in/2008/10/java-support-to-appengine-to-counter-microsofts-cloud-initiatives-microsoft-strata/" target="_blank">AppEngine is getting an update to it&#8217;s next available language</a> besides Python (my particular favorite) in <a href="http://www.controlenter.in/2008/10/java-support-to-appengine-to-counter-microsofts-cloud-initiatives-microsoft-strata/" target="_blank">Java</a>.  Apparently the top candidates were C++, Java and C# support for AppEngine but Java has been added due to the overwhelming library and developer support.</p>
<p>Microsoft also has been playing with entering the cloud with Mesh and now with &#8220;Strata&#8221;.  This would be a cloud for .NET developers.</p>
<p>There are already cloud providers for .NET mainly in Mosso&#8217;s offerings of any language being cloud enabled. But one from Microsoft will probably draw all the .NET developers to it like most Microsoft offerings.</p>
<p>Also, <a href="http://aws.amazon.com/windows/" target="_blank">Amazon EC2 recently announced support for MS SQL Server and Windows servers</a>.  So really any platform can also be used in Amazon EC2 in Amazon Machine Images. This took longer to happen due to the licensing per processor and server that most Microsoft software has.</p>
<p>This won&#8217;t be changing things much for me in the near term but having more platforms available in the cloud and on cloud systems is the natural progression.  At some point a platform might have advantages in cheaper processing but for now Python with AppEngine is still the best bet.</p>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2008/10/20/appengine-to-support-java-microsoft-strata-to-support-net-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google AppEngine Now Lets You Have 10 Apps</title>
		<link>http://cloud.drawcode.com/2008/07/25/google-appengine-now-lets-you-have-10-apps/</link>
		<comments>http://cloud.drawcode.com/2008/07/25/google-appengine-now-lets-you-have-10-apps/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 06:03:40 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[systems]]></category>
		<category><![CDATA[appcfg.py]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[gapps]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=36</guid>
		<description><![CDATA[Google AppEngine is alot of fun, not only is it a good excuse to use Python but it is a touch of the future and lots of possibilities for programmers and engineers from all sized businesses to use. When they opened the gates I was one of the lucky 10,000 to get in. So what [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://googleappengine.blogspot.com/2008/07/some-small-updates.html" target="_blank"><img class="alignright" style="float: right;" src="http://cloud.drawcode.com/wp-content/uploads/2008/04/app_engine.png" alt="" width="189" height="189" /></a>Google AppEngine is alot of fun, not only is it a good excuse to use Python but it is a touch of the future and lots of possibilities for programmers and engineers from all sized businesses to use. When they opened the gates I was one of the lucky 10,000 to get in. So what did I do, I setup three apps before I even knew that was the limit.  Then I was stuck.  <a href="http://googleappengine.blogspot.com/2008/07/some-small-updates.html" target="_blank">Well today you now have up to 10 apps that you can run</a> on appspot or your own domain. Make sure to <a href="http://code.google.com/p/googleappengine/downloads/list">update your SDK.</a></p>
<p>Next question is, when are they going to launch this out of beta?  I want to start using it for business.</p>
<blockquote><p>We&#8217;re happy to announce we&#8217;ve released some small updates to Google App Engine.  Among the more significant changes:</p>
<ul>
<li> <strong>More apps: Want to create more than 3 applications with your App Engine account?  Now you can now create up to 10!</strong></li>
<li>Time windows for Dashboard graphs: Zoom in on the data in your dashboard to get a more accurate picture of whats going on. You can zoom in to see graphs for the last 24, 12, and 6 hour periods.</li>
<li> Logs export: You can now use appcfg.py to download your application&#8217;s logs in plaintext format.  Use <span style="font-family: courier new;">appcfg.py &#8211;help</span> for more information on how to download your logs.</li>
<li> Send email as logged in user: If you&#8217;re using the users API, you can now send email from the email address of the currently-logged-in user.</li>
</ul>
<p>Be sure to <a href="http://code.google.com/p/googleappengine/downloads/list">update your SDK</a> and check the release notes for a full list of changes. Have more changes you&#8217;d like to see with App Engine? Let us know in our <a href="http://groups.google.com/group/google-appengine">Google Group</a>!</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2008/07/25/google-appengine-now-lets-you-have-10-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon EC2 Adding Persistent Storage</title>
		<link>http://cloud.drawcode.com/2008/04/14/amazon-ec2-adding-persistent-storage/</link>
		<comments>http://cloud.drawcode.com/2008/04/14/amazon-ec2-adding-persistent-storage/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 15:53:10 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[elastic]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[persistent storage]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=32</guid>
		<description><![CDATA[Amazon EC2 lapped up again and added EC2 persistent storage.  Previously you had to store data in SimpleDB or S3 because your EC2 instances could go away at any time due to scale down and up.  This is much like how on Google App Engine you need to store everything in the BigTable [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://amazon.com/ec2" target="_blank">Amazon EC2</a> lapped up again and added <a href="http://aws.typepad.com/aws/2008/04/block-to-the-fu.html" target="_blank">EC2 persistent storage</a>.  Previously you had to store data in SimpleDB or S3 because your EC2 instances could go away at any time due to scale down and up.  This is much like how on Google App Engine you need to store everything in the BigTable Datastore, because there is really no such thing as a physical location in a cloud that is elastic.  But Amazon has one upped by <a href="http://aws.typepad.com/aws/2008/04/block-to-the-fu.html" target="_blank">adding persistant storage in EC2.</a></p>
<p><strong>If you are a developer and not excited about the ability to make applications with no worry of scale or support in infrastructure, I am just not  sure if you are a developer or more worried about change. </strong>I always have these ideas that end up being based on the fast that I would need at least 3-5 servers to pull off.  Unfortunately when you are smaller or just trying out an idea you dont&#8217; want to buy infrastructure for the most extreme case (large traffic spike) and then have servers sitting at 1% utilization the rest of the time.  With cloud computing and service storage, this whole problem is abstracted away. Many times this is at a much reduced cost, you are only paying for minimal usage, not what your maximum usage would be.</p>
<p>One big element to the cloud computing rage is also that <strong>dynamic languages will win out</strong>.  If you will note in all the new cloud technologies there is a recurring theme of BigTable/MapReduce datastores (eliminiating much of relational database ways), dynamic languages (removing static typing and adding flexibility for rapid deployment and development) and the developer has alot of freedom and power to innovate.</p>
<p>Consider cloud computing the point at which dynamic languages such as Python (maybe Jython, IronPython, etc), Ruby, and higher order parallel languages like Erlang won out. Google App Engine uses Python, SimpleDB from Amazon is built with Erlang, etc. These languages like Python and Ruby which are slower (Ruby is much much slower than Python, Python can hang with static compiled languages) but the scalability, ActiveRecord like BigTable architecture, and rapid prototyping ORMs which were previously seen as too performance intensive or slow could become moot with the power of Amazon or Google&#8217;s infrastructure.</p>
<p><strong>It is just a real interesting time in technology, it a major leap, it should be recognized. If you are a developer or infrastructure specialist, you should be diving in.<br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2008/04/14/amazon-ec2-adding-persistent-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine Models Entities and Expandos</title>
		<link>http://cloud.drawcode.com/2008/04/13/google-app-engine-models/</link>
		<comments>http://cloud.drawcode.com/2008/04/13/google-app-engine-models/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 00:46:55 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[systems]]></category>
		<category><![CDATA[app engine]]></category>
		<category><![CDATA[db.expando]]></category>
		<category><![CDATA[entities]]></category>
		<category><![CDATA[entity]]></category>
		<category><![CDATA[expando]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=30</guid>
		<description><![CDATA[The models and entities framework for Google Apps is pretty fun. It is very similar to django models and ruby on rails but it is even more simplified. I have been playing with Google App Engine since it came out (was in first 10,000 yay!) and it is really fun. Prototypes have never been so [...]]]></description>
			<content:encoded><![CDATA[<p>The models and entities framework for Google Apps is pretty fun. It is very similar to django models and ruby on rails but it is even more simplified. I have been playing with Google App Engine since it came out (was in first 10,000 yay!) and it is really fun. Prototypes have never been so rapid.  I wish we got more than three apps to create, I have had to repurpose a few.  I have lots of ideas I will be posting here and howtos.  </p>
<p><strong>To create a model:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">class</span> Person<span style="color: black;">&#40;</span>db.<span style="color: black;">Model</span><span style="color: black;">&#41;</span>:
  first_name = db.<span style="color: black;">StringProperty</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
  last_name = db.<span style="color: black;">StringProperty</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
  hobbies = db.<span style="color: black;">StringListProperty</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
p = Person<span style="color: black;">&#40;</span>first_name=<span style="color: #483d8b;">&quot;Albert&quot;</span>, last_name=<span style="color: #483d8b;">&quot;Johnson&quot;</span><span style="color: black;">&#41;</span>
p.<span style="color: black;">hobbies</span> = <span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;chess&quot;</span>, <span style="color: #483d8b;">&quot;travel&quot;</span><span style="color: black;">&#93;</span>
&nbsp;
p.<span style="color: black;">put</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #808080; font-style: italic;"># creates/updates model and inserts data</span></pre></div></div>

<p><strong>To create an Expando model</strong><br />
Expando models are fun because they are dynamic.  <strong>You can add properties to the classes on the fly and it expands automatically.</strong></p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">class</span> Person<span style="color: black;">&#40;</span>db.<span style="color: black;">Expando</span><span style="color: black;">&#41;</span>:
  first_name = db.<span style="color: black;">StringProperty</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
  last_name = db.<span style="color: black;">StringProperty</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
  hobbies = db.<span style="color: black;">StringListProperty</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
p = Person<span style="color: black;">&#40;</span>first_name=<span style="color: #483d8b;">&quot;Albert&quot;</span>, last_name=<span style="color: #483d8b;">&quot;Johnson&quot;</span><span style="color: black;">&#41;</span>
p.<span style="color: black;">hobbies</span> = <span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;chess&quot;</span>, <span style="color: #483d8b;">&quot;travel&quot;</span><span style="color: black;">&#93;</span>
&nbsp;
p.<span style="color: black;">chess_elo_rating</span> = <span style="color: #ff4500;">1350</span>
&nbsp;
p.<span style="color: black;">travel_countries_visited</span> = <span style="color: black;">&#91;</span><span style="color: #483d8b;">&quot;Spain&quot;</span>, <span style="color: #483d8b;">&quot;Italy&quot;</span>, <span style="color: #483d8b;">&quot;USA&quot;</span>, <span style="color: #483d8b;">&quot;Brazil&quot;</span><span style="color: black;">&#93;</span>
p.<span style="color: black;">travel_trip_count</span> = <span style="color: #ff4500;">13</span>
&nbsp;
p.<span style="color: black;">put</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: #808080; font-style: italic;"># creates/updates model and inserts data</span></pre></div></div>

<p><span class="lit">Prototyping is extremely fast with Google App Engine.  Python of course is always extremely fun to do.  The winds are a changin&#8217;.</span></p>
<p>[ <a href="http://code.google.com/appengine/docs/datastore/entitiesandmodels.html" target="_blank">google app engine entities docs for the DatastoreAPI</a> ]</p>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2008/04/13/google-app-engine-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google App Engine is in Beta &#8211; Cloud Competition Is Arriving for Amazon</title>
		<link>http://cloud.drawcode.com/2008/04/08/google-app-engine-is-in-beta/</link>
		<comments>http://cloud.drawcode.com/2008/04/08/google-app-engine-is-in-beta/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 07:18:25 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[cloud]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[systems]]></category>
		<category><![CDATA[app engine]]></category>
		<category><![CDATA[bigtable]]></category>
		<category><![CDATA[campfire]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google app engine]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://cloud.drawcode.com/?p=25</guid>
		<description><![CDATA[Google App Engine is in beta and was announced today.  They were supposed to release this week and they did.
What is the Google App Engine?
It is actually a bit different than I expected.  I expected these services to directly compete with S3, EC2, SimpleDB and they do but as of right now you [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/appengine/" target="_blank"><img class="alignnone size-medium wp-image-26 alignright" style="float: right;" title="app_engine" src="http://cloud.drawcode.com/wp-content/uploads/2008/04/app_engine.png" alt="" width="189" height="189" /></a><a href="http://code.google.com/appengine/" target="_blank">Google App Engine</a> is in beta and <a href="http://googleappengine.blogspot.com/2008/04/introducing-google-app-engine-our-new.html" target="_blank">was announced today</a>.  They were supposed to release this week and they did.</p>
<p><strong><a href="http://code.google.com/appengine/docs/whatisgoogleappengine.html" target="_blank">What is the Google App Engine?</a></strong></p>
<p>It is actually a bit different than I expected.  I expected these services to directly compete with <a href="http://www.amazon.com/s3" target="_blank">S3</a>, <a href="http://www.amazon.com/ec2">EC2</a>, <a href="http://www.amazon.com/simpledb">SimpleDB</a> and they do but as of <a href="http://code.google.com/appengine/docs/appcfgpy.html" target="_blank">right now you can only run Google App Engine apps on their servers</a>.  Amazon Web Services you can run on any server which makes for a much more flexible usage into existing apps.  Not everything yet can be hosted in the cloud and having the access to store locally or in the <strong>cloud is key, right now Amazon has that right model </strong>for it. Amazon isn&#8217;t trying to be your authentication service or push you into other services, it is simply an extension of your domain. However Google&#8217;s offerings are very compelling here and threaten lots more markets than just amazon and salesforce but also hosting companies.</p>
<p>Google is looking like they are trying to take over the domain which might work but I am more for the parallel development. For instance, if you wanted to run storage on Google but computing on EC2 could you do that with Google&#8217;s setup, no.  With Amazon you can swap out S3, EC2, SimpleDB for other things if you want.<strong> I like the componentized model much much better. </strong> Hopefully Google moves in the component model as well as their hosted solutions, this is very nice for upstart and getting things moving quickly though. Google does want to become the base.</p>
<p>On the other side, SalesForce is probably freaking out because if you use Google Apps for your business, this just adds in the element of business apps that can be run for entire small business infrastructure with Google Apps and any custom apps needed with Google App Engine. But they probably will adapt to use this within their systems, if it was more componentized and available outside Google App Engine.</p>
<p>I will post more on this when it has been through the wringer.  <strong>As of right now Google&#8217;s service is extremely beta, limited on their servers and only available for small traffic. </strong> When they release pricing and more information we will see where the market falls for cloud based storage and computing.</p>
<p><strong>A few things I really like about the new Google offerings is simplicity.</strong> They are using <strong>Python which arguably has some of the best toolkits out there for cloud development right now</strong> (<a href="http://code.google.com/p/boto/" target="_blank">boto being one of them for Amazon</a>). They are pretty much using <a href="http://code.google.com/appengine/docs/python/purepython.html" target="_blank">Pure Python</a> and you can push up whatever libraries you want.  They have <a href="http://code.google.com/appengine/docs/python/purepython.html" target="_blank">Django</a> and I will see if other templating engines like <a href="http://www.kuwata-lab.com/tenjin/pytenjin-users-guide.html" target="_blank">pyTenjin </a>work up there.  But also their configuration is in a simple format.  Simple user formats I am fond of are <a href="http://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown</a> and <a href="http://www.yaml.org/" target="_blank">YAML</a>.  This is how you configure an app for Google App Engine, in YAML (Yet Another Markup Language):</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">application: myapp
version: <span style="color: #ff4500;">1</span>
runtime: python
api_version: <span style="color: #ff4500;">1</span>
&nbsp;
handlers:
- url: /
script: home.<span style="color: black;">py</span>
&nbsp;
- url: /index.<span style="color: black;">html</span>
script: home.<span style="color: black;">py</span>
&nbsp;
- url: /stylesheets
static_dir: stylesheets
&nbsp;
- url: /<span style="color: black;">&#40;</span>.<span style="color: #66cc66;">*</span>\.<span style="color: black;">&#40;</span>gif|png|jpg<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
static_files: static/\<span style="color: #ff4500;">1</span>
upload: static/<span style="color: black;">&#40;</span>.<span style="color: #66cc66;">*</span>\.<span style="color: black;">&#40;</span>gif|png|jpg<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
- url: /admin/.<span style="color: #66cc66;">*</span>
script: admin.<span style="color: black;">py</span>
login: admin
&nbsp;
- url: /.<span style="color: #66cc66;">*</span>
script: not_found.<span style="color: black;">py</span></pre></div></div>

<p>However I see Amazon still being the champ here when comparing the current publicly known offerings.  Hopefully Google is just testing their engines and infrastructure in a limited capacity and will open it up to componentization to run from anywhere, much like <a href="http://code.google.com/apis/opensocial/" target="_blank">OpenSocial </a>or other services like RESTful, <a href="http://baseplane.com/standards/metaweblogapi/" target="_blank">XML-RPC</a>, <a href="http://baseplane.com/2008/03/20/json-rpc-implementations/" target="_blank">JSON-RPC</a> etc. As of right now Google App Engine is too closely coupled for integration into many systems residing on servers not on Google&#8217;s environment.</p>
<p>I think Google&#8217;s App Engine service more closely matches the SalesForce.com type hosted SaaS rather than true cloud technologies just yet.  It is a bit of a mix of both.</p>
<p><strong>It sure is an interesting time seeing and participating in another game changing announcement</strong> and new pardigm and bend in the <strong>software market from local to cloud computing and storage</strong>.</p>
<ul>
<li><a href="http://appgallery.appengine.com/">App Gallery</a></li>
<li><a href="http://code.google.com/appengine">Google App Engine Docs</a></li>
<li><a href="http://www.google.com/appengine">Google App Engine</a></li>
</ul>
<p>Google has some nice setup though with these great Python libraries running for your disposal:</p>
<p>In addition to the Python standard library and the App Engine libraries, the runtime environment includes the following third-party libraries:</p>
<ul class="doublespace">
<li><a href="http://www.google.com/url?sa=D&amp;q=http://www.djangoproject.com/">Django 0.96.1</a></li>
<li><a href="http://www.google.com/url?sa=D&amp;q=http://pythonpaste.org/webob/">WebOb 0.9</a></li>
<li><a href="http://www.google.com/url?sa=D&amp;q=http://pyyaml.org/">PyYAML 3.05</a></li>
</ul>
<p>They are using django templates, these are pretty nice I have taken a liking to <a href="http://www.makotemplates.org/" target="_blank">Mako </a>and pyTenjin but django framework is quite nice.</p>
<p><strong>Here is a video walk through of the application run through.  Basic Python templating app essentially in django.</strong></p>
<p><a href="http://www.youtube.com/watch?v=tcbpTQXNwac&amp;fmt=18">Google App Engine Walkthrough</a></p>
<p><a href="http://cloud.drawcode.com/2008/04/08/google-app-engine-is-in-beta/"><em>Click here to view the embedded video.</em></a></p>
<p>Guido Speaks</p>
<p><a href="http://cloud.drawcode.com/2008/04/08/google-app-engine-is-in-beta/"><em>Click here to view the embedded video.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://cloud.drawcode.com/2008/04/08/google-app-engine-is-in-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
