<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	>
<channel>
	<title>Comments on: Updated The GAE SWF Project (v1.20)</title>
	<atom:link href="http://aralbalkan.com/1319/feed" rel="self" type="application/rss+xml" />
	<link>http://aralbalkan.com/1319</link>
	<description>Passionate geekisms.</description>
	<lastBuildDate>Sun, 21 Mar 2010 10:01:24 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Thijs Triemstra</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-162896</link>
		<dc:creator>Thijs Triemstra</dc:creator>
		<pubDate>Thu, 03 Jul 2008 21:23:19 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-162896</guid>
		<description>@Herm: see http://pyamf.org/ticket/307 for workarounds and progress for that issue with the PyAMF GAE adapter.</description>
		<content:encoded><![CDATA[<p>@Herm: see <a href="http://pyamf.org/ticket/307" rel="nofollow">http://pyamf.org/ticket/307</a> for workarounds and progress for that issue with the PyAMF GAE adapter.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Joyce</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-138672</link>
		<dc:creator>Nick Joyce</dc:creator>
		<pubDate>Tue, 22 Apr 2008 10:26:47 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-138672</guid>
		<description>@Javier, @Herm: PyAMF does support serialising Google&#039;s Model and Expando classes out of the box in version 0.3 and up. We&#039;ll put up a complex model example as soon as time permits ..

We are in the middle or prepping 0.3.1 which will add more compatibility for frameworks like Google App Engine etc.</description>
		<content:encoded><![CDATA[<p>@Javier, @Herm: PyAMF does support serialising Google&#8217;s Model and Expando classes out of the box in version 0.3 and up. We&#8217;ll put up a complex model example as soon as time permits ..</p>
<p>We are in the middle or prepping 0.3.1 which will add more compatibility for frameworks like Google App Engine etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javier</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-138388</link>
		<dc:creator>Javier</dc:creator>
		<pubDate>Mon, 21 Apr 2008 17:58:49 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-138388</guid>
		<description>Hey Herm,

I still think pyamf is a better solution that json for this work. Specially considering that in json there is almost no support for circular references, and this is quite handy!

So that pyamf does not support right now google&#039;s objects for serialization I think is a matter of time. I am sure these guys will be working on that. Then probably there will be no need for most VO and only for some specific classes where you really need a transfer object instead of the raw model objects.

In any case I have the impression we will have to change our mind a little bit from the java world and their relational persistence frameworks, as this is not the same as Big Table in Google.</description>
		<content:encoded><![CDATA[<p>Hey Herm,</p>
<p>I still think pyamf is a better solution that json for this work. Specially considering that in json there is almost no support for circular references, and this is quite handy!</p>
<p>So that pyamf does not support right now google&#8217;s objects for serialization I think is a matter of time. I am sure these guys will be working on that. Then probably there will be no need for most VO and only for some specific classes where you really need a transfer object instead of the raw model objects.</p>
<p>In any case I have the impression we will have to change our mind a little bit from the java world and their relational persistence frameworks, as this is not the same as Big Table in Google.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Herm Greider</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-138077</link>
		<dc:creator>Herm Greider</dc:creator>
		<pubDate>Sun, 20 Apr 2008 23:59:27 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-138077</guid>
		<description>Aral, that makes sense. Perhaps I expect too much, but I want the more complex Model objects to deserialize correctly without additional work. Like Java ;-)

Javier, you have the same idea. I want automatic deserialization on the raw object.

So, I&#039;m not convinced on pyAMF yet. I&#039;m currently working with JSON off a plain HttpService. That seems to be close. With the example Pet Model, I can do this Flex-side:


// result is a set of JSON serialized pets
var rawData:String = String(event.result);
var pets:Array = (JSON.decode(rawData) as Array);
for (var i:int=0; i&lt;pets.length; i++) {
  var pet:Object = pets[i];

  // you gotta use object.fields, but at least it&#039;s a real object
  status_txt.text += &quot;Name: &quot; + pet.fields.name + &quot;\n&quot;;
  status_txt.text += &quot;Type: &quot; + pet.fields.type + &quot;\n&quot;;
}


I&#039;ll document that more fully if I get it all working. 

Thanks for the discussion anyway. All cool work.</description>
		<content:encoded><![CDATA[<p>Aral, that makes sense. Perhaps I expect too much, but I want the more complex Model objects to deserialize correctly without additional work. Like Java ;-)</p>
<p>Javier, you have the same idea. I want automatic deserialization on the raw object.</p>
<p>So, I&#8217;m not convinced on pyAMF yet. I&#8217;m currently working with JSON off a plain HttpService. That seems to be close. With the example Pet Model, I can do this Flex-side:</p>
<p>// result is a set of JSON serialized pets<br />
var rawData:String = String(event.result);<br />
var pets:Array = (JSON.decode(rawData) as Array);<br />
for (var i:int=0; i&lt;pets.length; i++) {<br />
  var pet:Object = pets[i];</p>
<p>  // you gotta use object.fields, but at least it&#8217;s a real object<br />
  status_txt.text += &#8220;Name: &#8221; + pet.fields.name + &#8220;\n&#8221;;<br />
  status_txt.text += &#8220;Type: &#8221; + pet.fields.type + &#8220;\n&#8221;;<br />
}</p>
<p>I&#8217;ll document that more fully if I get it all working. </p>
<p>Thanks for the discussion anyway. All cool work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Javier</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-138065</link>
		<dc:creator>Javier</dc:creator>
		<pubDate>Sun, 20 Apr 2008 23:12:39 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-138065</guid>
		<description>Yeah, I had to replicate my domain classes with simple VOs in order to make it work with pyamf. If you try to send an object (db.Model) with References on it pyamf crashes. It has issues serializing these objects :( So in my model package I have normally a VO per model class to do the transfer...

I would like to be able to do like with JPA in Java that I can just send objects to the client, modify them there, send them back and automatically reattached them to the persistence layer. In this case you have to make the work on the services, or DAOS if you have them, of reconstructing objects in order to persist them.

I am very interested on what other people are doing architecting their applications on the Python side.

By the way I have the AMFPHP Browser working with PyAMF and your GAESWF project. It is quite handy for testing the services.

Thanks Aral!</description>
		<content:encoded><![CDATA[<p>Yeah, I had to replicate my domain classes with simple VOs in order to make it work with pyamf. If you try to send an object (db.Model) with References on it pyamf crashes. It has issues serializing these objects :( So in my model package I have normally a VO per model class to do the transfer&#8230;</p>
<p>I would like to be able to do like with JPA in Java that I can just send objects to the client, modify them there, send them back and automatically reattached them to the persistence layer. In this case you have to make the work on the services, or DAOS if you have them, of reconstructing objects in order to persist them.</p>
<p>I am very interested on what other people are doing architecting their applications on the Python side.</p>
<p>By the way I have the AMFPHP Browser working with PyAMF and your GAESWF project. It is quite handy for testing the services.</p>
<p>Thanks Aral!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aral</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-137995</link>
		<dc:creator>Aral</dc:creator>
		<pubDate>Sun, 20 Apr 2008 19:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-137995</guid>
		<description>Hi Imrahil,

It&#039;s coming :)</description>
		<content:encoded><![CDATA[<p>Hi Imrahil,</p>
<p>It&#8217;s coming :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aral</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-137994</link>
		<dc:creator>Aral</dc:creator>
		<pubDate>Sun, 20 Apr 2008 19:45:39 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-137994</guid>
		<description>Hi Herm,

It&#039;s just because I&#039;m passing the raw user object from Python back and that&#039;s how the properties are in it (you&#039;re getting the response from the users.get_current_user() method in webapp.)

You can easily create a simpler object and return that (I&#039;m doing that in several of the calls.) That a look at the login() method in /services/user.py (and also checkout the ProfileVO object in the updateProfile() method of the same module.</description>
		<content:encoded><![CDATA[<p>Hi Herm,</p>
<p>It&#8217;s just because I&#8217;m passing the raw user object from Python back and that&#8217;s how the properties are in it (you&#8217;re getting the response from the users.get_current_user() method in webapp.)</p>
<p>You can easily create a simpler object and return that (I&#8217;m doing that in several of the calls.) That a look at the login() method in /services/user.py (and also checkout the ProfileVO object in the updateProfile() method of the same module.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Imrahil</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-137981</link>
		<dc:creator>Imrahil</dc:creator>
		<pubDate>Sun, 20 Apr 2008 18:50:42 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-137981</guid>
		<description>Great work! I&#039;m waiting for more Flex examples! :)</description>
		<content:encoded><![CDATA[<p>Great work! I&#8217;m waiting for more Flex examples! :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Herm Greider</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-137911</link>
		<dc:creator>Herm Greider</dc:creator>
		<pubDate>Sun, 20 Apr 2008 14:26:50 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-137911</guid>
		<description>Wow, incredible work! I&#039;m not AMF-literate, so likely my lack of knowledge, but is there a way to unserialize the GAE Model objects on the Flash side? You display:

_User__email = myemail@xyz.com

Can that be used with something like &quot;user.email&quot;?</description>
		<content:encoded><![CDATA[<p>Wow, incredible work! I&#8217;m not AMF-literate, so likely my lack of knowledge, but is there a way to unserialize the GAE Model objects on the Flash side? You display:</p>
<p>_User__email = <a href="mailto:myemail@xyz.com">myemail@xyz.com</a></p>
<p>Can that be used with something like &#8220;user.email&#8221;?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ]a[</title>
		<link>http://aralbalkan.com/1319/comment-page-1#comment-137673</link>
		<dc:creator>]a[</dc:creator>
		<pubDate>Sun, 20 Apr 2008 00:50:27 +0000</pubDate>
		<guid isPermaLink="false">http://aralbalkan.com/1319#comment-137673</guid>
		<description>Abstraction, abstraction, necessary but, nicely done. I&#039;m with you for this ride</description>
		<content:encoded><![CDATA[<p>Abstraction, abstraction, necessary but, nicely done. I&#8217;m with you for this ride</p>
]]></content:encoded>
	</item>
</channel>
</rss>
