[appengine-java] Re: Transactions on entities in different entity groups ?

2011-09-29 Thread Cyrille Vincey
SERIOUSLY???
(why don't you give any visibility on this key feature, like you did
with FTS?)

On Sep 28, 10:52 pm, Ikai Lan (Google) ika...@google.com wrote:
 You currently can't, but we plan on rolling out a feature that will do this
 in the next few releases. It's currently in trusted tester at the moment.

 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 plus.ikailan.com | twitter.com/ikai







 On Mon, Sep 26, 2011 at 10:59 PM, Santosh kumar kopp@gmail.com wrote:
  Hi,

  I want to know how to create/update the entities which are in different
  entity groups ?

  for ex: I want to update the *apple* and *carrot* entities in a
  transaction but those parents are not same. (Here i am in such a situation)

  Thanks in advance :)

  *S*antosh *K*umar *K* http://www.accountingguru.in/**

  --
  You received this message because you are subscribed to the Google Groups
  Google App Engine for Java group.
  To post to this group, send email to
  google-appengine-java@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine-java+unsubscr...@googlegroups.com.
  For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Storing query results in memcache

2011-09-29 Thread nicanor.babula
Hi Ian,

Thanks for sharing your strategy.. I am not sure if I understand exactly how 
could I use your system to solve my problem. Actually, the memcache concept 
is working nice solving similar, but simpler situations. I think I explained 
poorly my situation. Here it is:

An application manages contacts. It actually has thousands of them. On the 
GUI side we have a listview, an editview and a createview. The list view has 
4 columns, and is paged (30 records per page) and by default is sorted 
ascending by the first column. I can search the listview by issuing queries 
serverside (I want the results always ordered and paged accordingly). 
Now, a user clicks on new contact. The application goes into createView. 
Data input then save. Application goes to list view. The contact should have 
been in the first page, but it isn't. After a few seconds, it appears. 

The previous example with phone numbers is kind of the same issue, but with 
simpler queries:
User modifies a contact by adding some phone numbers. Hits save and goes to 
list view, then he remembers that one number was wrong and goes back to 
editing the same contact. The phone numbers inserted seconds ago aren't 
there. In this case, (since for other reasons I the phone numbers entities 
cannot be children of the contact entity) every phone number entity has a 
property called contactId that points to the father contact. The solution 
employed in this simple case is storing in the memcache the phone numbers by 
using contact-based keys so that for example
[code]
memcache.get(MEMCACHE_phones_contactId_1234)
[/code]
would give me an all the phone numbers for contact having id=1234. Somehow 
(too long and boring to explain how) I manage to keep this array always up 
to date so when the user returns lightning-fast to the editview the newly 
inserted phone number are there, only that they are read from the memcache. 
Analogically, how could this be done for the fore-mentioned listview 
situation, where the query is much more complex?

Hope I didn't confused you more..

Thanks,
Cristian

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine-java/-/3kOA7GAMTQUJ.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] allow App Engine apps to act as OAuth service providers

2011-09-29 Thread brand´s mill
Would love to add a custom email password ...  against my appengine 
service.
To add this i would love to add my own oauth provider.

I found this 
http://ikaisays.com/2011/05/26/setting-up-an-oauth-provider-on-google-app-engine/
 .

Question: is there an example using java?



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine-java/-/-i5DxjOXfFEJ.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: GAE - Vote counting system

2011-09-29 Thread Peter Dev
Price:
- with backends lets say 3 B2 machines = 350USD/Month
- UrlFetch Data Sent/Received 0,15USD/GB

Limit:
- URL Fetch Daily Limit 46,000,000 calls
  this can be a problem...but I see it is possible to request an
increase

Write data parallel in DB: Task Queue with rate every 30second could
be a solution
(check timestamps in cache and write in DB)

RESET counters = empty cache in Backends  reset counter of object in
DB

Backends cache = HashMap with shared counter values
or
counter values without sharding
(just increment value in java hashmap is fast enough)

With backends we don’t need sharding I thinkwhat do you think? Thx.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: GAE - Vote counting system

2011-09-29 Thread Jeff Schnitzer
It's hard to say here if we're talking about the same thing, but
here's how I would do it:

 * Updates go through to the backend, which stores write deltas in ram
(not the total).
 * Reads read-through memcache into the datastore.
 * The backend writes deltas to the datastore in batch, updating
memcache, then purging the delta from memory.
 * The backends can write once every 5 mins or 30s or however long
you're comfortable having read data be stale.  More freshness == more
datastore expense.  It's a simple dial.

This system is not limited by backend RAM since each backend stores
only deltas - you can probably run the smallest size.  It won't be
limited by read volume, which will come almost entirely from memcache.
 It will be limited by max request throughput on the backend.  Given
the update is practically a no-op, how many QPS can a single backend
serve?  That's your limit (times the number of backends running).

I think you'd be hard-pressed to find a better solution to this
problem on GAE.  It does require that reads be stale to with a
controlled bound, though.

Jeff

On Thu, Sep 29, 2011 at 5:47 AM, Peter Dev dev133...@gmail.com wrote:
 Price:
 - with backends lets say 3 B2 machines = 350USD/Month
 - UrlFetch Data Sent/Received                         0,15USD/GB

 Limit:
 - URL Fetch Daily Limit 46,000,000 calls
  this can be a problem...but I see it is possible to request an
 increase

 Write data parallel in DB: Task Queue with rate every 30second could
 be a solution
 (check timestamps in cache and write in DB)

 RESET counters = empty cache in Backends  reset counter of object in
 DB

 Backends cache = HashMap with shared counter values
 or
 counter values without sharding
 (just increment value in java hashmap is fast enough)

 With backends we don’t need sharding I thinkwhat do you think? Thx.

 --
 You received this message because you are subscribed to the Google Groups 
 Google App Engine for Java group.
 To post to this group, send email to google-appengine-java@googlegroups.com.
 To unsubscribe from this group, send email to 
 google-appengine-java+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/google-appengine-java?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] allow App Engine apps to act as OAuth service providers

2011-09-29 Thread David Chandler
There are several Java OAuth client samples referenced here:

http://turbomanage.wordpress.com/2011/08/25/using-the-gae-app-identity-api-and-oauth2/

HTH,
/dmc

On Thu, Sep 29, 2011 at 7:20 AM, brand´s mill brandsm...@googlemail.comwrote:

 Would love to add a custom email password ...  against my appengine
 service.
 To add this i would love to add my own oauth provider.

 I found this
 http://ikaisays.com/2011/05/26/setting-up-an-oauth-provider-on-google-app-engine/
  .

 Question: is there an example using java?



  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine-java/-/-i5DxjOXfFEJ.
 To post to this group, send email to
 google-appengine-java@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
David Chandler
Developer Programs Engineer, GWT+GAE
w: http://code.google.com/
b: http://turbomanage.wordpress.com/
b: http://googlewebtoolkit.blogspot.com/
t: @googledevtools

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: Transactions on entities in different entity groups ?

2011-09-29 Thread Jeff Schnitzer
A month or so ago Google posted a request for trusted testers for this
feature.  It helps to read the mailing lists :-)

Jeff

On Thu, Sep 29, 2011 at 2:05 AM, Cyrille Vincey cvin...@qunb.com wrote:
 SERIOUSLY???
 (why don't you give any visibility on this key feature, like you did
 with FTS?)

 On Sep 28, 10:52 pm, Ikai Lan (Google) ika...@google.com wrote:
 You currently can't, but we plan on rolling out a feature that will do this
 in the next few releases. It's currently in trusted tester at the moment.

 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 plus.ikailan.com | twitter.com/ikai







 On Mon, Sep 26, 2011 at 10:59 PM, Santosh kumar kopp@gmail.com wrote:
  Hi,

  I want to know how to create/update the entities which are in different
  entity groups ?

  for ex: I want to update the *apple* and *carrot* entities in a
  transaction but those parents are not same. (Here i am in such a situation)

  Thanks in advance :)

  *S*antosh *K*umar *K* http://www.accountingguru.in/**

  --
  You received this message because you are subscribed to the Google Groups
  Google App Engine for Java group.
  To post to this group, send email to
  google-appengine-java@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine-java+unsubscr...@googlegroups.com.
  For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.

 --
 You received this message because you are subscribed to the Google Groups 
 Google App Engine for Java group.
 To post to this group, send email to google-appengine-java@googlegroups.com.
 To unsubscribe from this group, send email to 
 google-appengine-java+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/google-appengine-java?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Quiz

2011-09-29 Thread gk
What is the output of the following method?

public boolean whatDoesItDo()
{
try
{
if(true)
{
throw new IllegalStateException();
}
return true;
}
finally
{
if(true)
{
return false;
}
}
}

Have a nice time figuring it out ;-)

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Quiz

2011-09-29 Thread Stephen Johnson
That's easy. You are not supposed to return a value in the finally block
since it overwrites any previous return values and also any exceptions that
are thrown. Return statements in a finally block are a big NO-NO.

Stephen
CortexConnect.com

On Thu, Sep 29, 2011 at 3:36 PM, gk goran.kar...@googlemail.com wrote:

 What is the output of the following method?

 public boolean whatDoesItDo()
 {
try
{
if(true)
{
throw new IllegalStateException();
}
return true;
}
finally
{
if(true)
{
return false;
}
}
 }

 Have a nice time figuring it out ;-)

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-java@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Quiz

2011-09-29 Thread Stephen Johnson
So the answer is false. Forgot to actually state that.

On Thu, Sep 29, 2011 at 3:44 PM, Stephen Johnson onepagewo...@gmail.comwrote:

 That's easy. You are not supposed to return a value in the finally block
 since it overwrites any previous return values and also any exceptions that
 are thrown. Return statements in a finally block are a big NO-NO.

 Stephen
 CortexConnect.com


 On Thu, Sep 29, 2011 at 3:36 PM, gk goran.kar...@googlemail.com wrote:

 What is the output of the following method?

 public boolean whatDoesItDo()
 {
try
{
if(true)
{
throw new IllegalStateException();
}
return true;
}
finally
{
if(true)
{
return false;
}
}
 }

 Have a nice time figuring it out ;-)

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-java@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] .A research: how long will your java app instance start up fully?

2011-09-29 Thread Tapir
?

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Google App Engine Internet Crawler

2011-09-29 Thread Rodel Ocampo

 Thank you very much for the lead

. Being a newbie in appengine makes it harder for me.  :D


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: .A research: how long will your java app instance start up fully?

2011-09-29 Thread gk
~10s

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Quiz

2011-09-29 Thread Prabakaran R
Hi
return false ,finally must be excute.

On Fri, Sep 30, 2011 at 4:06 AM, gk goran.kar...@googlemail.com wrote:

 What is the output of the following method?

 public boolean whatDoesItDo()
 {
try
{
if(true)
{
throw new IllegalStateException();
}
return true;
}
finally
{
if(true)
{
return false;
}
}
 }

 Have a nice time figuring it out ;-)

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-java@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Thanks  Regards
R.Prabakaran

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: .A research: how long will your java app instance start up fully?

2011-09-29 Thread Tapir
15s

On Sep 30, 9:29 am, Tapir tapir@gmail.com wrote:
 ?

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [google-appengine] xmpp custom JID does not working?

2011-09-29 Thread Xi Shen
yes, i saw the overview section mentioned the 'xmpp.send_invite' function. 
but i cannot find any reference about it. actually the link to the function 
does not contain anything regarding this topic. i wonder if this function is 
still available.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/-D-b2tkUl2IJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: The Max Idle Instances setting is really lame.

2011-09-29 Thread Emlyn
On 29 September 2011 09:20, Tapir tapir@gmail.com wrote:
 ok, then it is really not very helpful for performance,
 it is just a way to limit the cost. right?

Yup


 On Sep 29, 7:14 am, Barry Hunter barrybhun...@gmail.com wrote:
 Sounds like you have misunderstood Max Idle Instances. Its the
 maximum number you will be charged for. It is not a guarantee. If you
 have spiky traffic, it might mean you will have spare capacity ready
 to handle more requests. Wont help with the first spike.

 Think you looking for Min Idle Instances. That is only available
 right now if you have purchased Always On I bleive. Once the new
 pricing goes live, it will be open to all.







 On Thu, Sep 29, 2011 at 12:07 AM, Tapir tapir@gmail.com wrote:
  It is not very useful.
  When I set it 3, gae will still only keep one idle instances, so my
  app will still encounter slow startup when 2 visits coming at the same
  time. Setting it higher is helpless to avoid the java app slow startup
  problem.

  I just found the only difference between set Max Idle Instances as 1
  and 3 is the total used CPU hours, about 25:29, which means except the
  free 24 hours, the total used CPU hours is 1:5.

  --
  You received this message because you are subscribed to the Google Groups 
  Google App Engine group.
  To post to this group, send email to google-appengine@googlegroups.com.
  To unsubscribe from this group, send email to 
  google-appengine+unsubscr...@googlegroups.com.
  For more options, visit this group 
  athttp://groups.google.com/group/google-appengine?hl=en.

 --
 You received this message because you are subscribed to the Google Groups 
 Google App Engine group.
 To post to this group, send email to google-appengine@googlegroups.com.
 To unsubscribe from this group, send email to 
 google-appengine+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/google-appengine?hl=en.





-- 
Emlyn

http://my.syyn.cc - Synchonise Google+, Facebook, WordPress and Google
Buzz posts,
comments and all.
http://point7.wordpress.com - My blog
Find me on Facebook and Buzz

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] urlfetch maximum interactive timeout why 10 seconds and not 20?

2011-09-29 Thread PK
I have integrated my site with a cool online payments service. They provide 
an API for online payments that I access from the server side using the 
urlfetch() API. Unfortunately, once in a while their service takes a little 
bit more than 10 seconds to respond on the pay API, so the payment goes 
through but my code gets a timeout and reports an error to the user which is 
very frustrating.

I am trying to get the online payments vendor to improve their response 
times but I was wondering why did you pick 10 instead of 20 seconds for the 
urlfetch maximum timeout. In 30 seconds there is enough time to get in, do a 
20 second urlfetch and return in worst case.

Thanks,
PK

PS Yes I have thought of doing the urlfetch from a task but the code gets 
pretty complicated pretty fast.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/_XOIkkQnAzUJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: urlfetch maximum interactive timeout why 10 seconds and not 20?

2011-09-29 Thread Gwyn Howell
it's annoying isn't it. could you catch the error and query the api again to 
check payment status?

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/3I5OnWzDAvIJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Problem with blobstoreService.getUploadedBlobs(request)

2011-09-29 Thread Bat
I think that in all cases, if I send a form without file inside,
google blobstore create an empty blob...
I can see it in Blobstore vievwer.

This strange behavior is only on the google server, not on
localhost...

On 28 sep, 17:25, Bat batistutagabrielf...@gmail.com wrote:
 Hi,

 I've a problem with the methode blobstoreService.getUploadedBlobs().
 I've a JSP page in wich one I set an uploader like this :

 formname='form'  action='%= blobstoreService.createUploadUrl(/
 Edit_Engine) %' method='POST' enctype='multipart/form-data' 
 input label='...' multiple='false' name='myFile' /
 //...and multiple input for text
 /form

 and I retrieve this code with my servlet :

 java.util.MapString,BlobKey blobs =
 blobstoreService.getUploadedBlobs(req);
 BlobKey blobK  = blobs.get(myFiles[]); //I don't know why I need to
 add the characters 's[]' at the end...

 But the behavior is strange. The first time I upload an image,
 everything works. However, the second time, I send my form without
 uploading somehting (only text data), and then my java code finds a
 BlobKey. But this BlobKey seems to be the previous sended data, or a
 corrupted data.
 I mean that not normal, because when I deploy this version on my
 localhost, if the form uploads no file the method getUploadedBlobs
 returns an empty HashMap. However, when I deploy on google servers, if
 the form uploads no file, the method getUploadedBlobs seems  to return
 a HashMap with wrong data.

 Could you help me? Or tell me if this behaviro is normal...

 Many thanks,

 bat

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] retrieve Blob key after upload without HttpServletRequest (Java api)

2011-09-29 Thread Pascal Voitot Dev
Hi,
I'm using Play Framework to build apps on GAE and as you may know, Play is
not Servlet based. So no HttpServletRequest...
In the blobstore case, we have a problem to retrieve the blobkey after
uploading the file.
So upload works perfectly from the url returned by :
blobstoreService.createUploadUrl(/upload)

Google stores the blob and then calls back the /upload handler of my app
but I can't find the blobkey in the header and I can't use the :

MapString, BlobKey blobs = blobstoreService.getUploadedBlobs(req);

which requires the HttpServletRequest I don't have in Play!

Any other solution to retrieve the blob key of the uploaded file? (I
read the experimental paragraph at the end of the doc but I wonder if
there is a simpler way to do it)

Thanks
Pascal

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: API call datastore_v3.Put() required more quota ?

2011-09-29 Thread djidjadji
If you delete many entities it's faster to use a cursor. An entity is
marked as deleted and will physically be removed in the datastore at a
later time. It takes time to skip the marked entities when executing a
query.
The loop can be modified as such, no need to use count() as it uses
CPU and time also, if the result set is empty there are no entities.

try:
cursor = None
while True:
q = Documents.all(keys_only=True)
if cursor:
   q.with_cursor(cursor)
result = q.fetch(200)
if not result:
   break
cursor = q.cursor()
db.delete(result)
except Exception, e:
self.response.out.write(repr(e)+'\n')
pass

Op 16 september 2011 18:24 heeft sofia sofiacard...@gmail.com het
volgende geschreven:
 I have the same problem.. Datastore quota at 100% and unable to delete an
 entity either through admin or using map/reduce. What I did is set up a
 script to delete x records at a time. I've managed to decrease data by 45%
 in 2 days but I then hit cpu quota so I'm guessing it's gonna take a few
 more days until I'm able to delete all the data. What i did was set up this
 script, bulkdelete.py:
 #!/usr/bin/env python
 # -*- coding: UTF-8 -*-
 #
 #
 import time
 from google.appengine.ext import webapp
 from google.appengine.ext.webapp.util import run_wsgi_app
 from google.appengine.ext import db
 from lib.model import Documents
 class BulkDelete(webapp.RequestHandler):
     def get(self):
         self.response.headers['Content-Type'] = 'text/plain'
         mod = self.request.get('m')
         if not mod:
             exit
         try:
             while True:
                 q = db.GqlQuery(SELECT __key__ FROM Documents ORDER BY date
 ASC)
                 assert q.count()
                 db.delete(q.fetch(200))
                 time.sleep(0.5)
         except Exception, e:
             self.response.out.write(repr(e)+'\n')
             pass
 # init
 application = webapp.WSGIApplication([('/bulkdelete',
 BulkDelete)],debug=True)
 def main():
         run_wsgi_app(application)
 if __name__ == '__main__':
         main()
 and then call it each 5 min through cron.yaml.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Problem with blobstoreService.getUploadedBlobs(request)

2011-09-29 Thread Stuart Langley
Probably you are 
seeing http://code.google.com/p/googleappengine/issues/detail?id=4548

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/83XvpUE1LikJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: urlfetch maximum interactive timeout why 10 seconds and not 20?

2011-09-29 Thread Ronoaldo José de Lana Pereira
Hi PK,

We build a 500 qps website that do handle the payments from two payment 
gateways: PayPal and PagSeguro (from Brazil). Both suffer for those 
problems, and we only was able to solve this by using Task Queues. What we 
do is to proccess using this workflow:

   1. User is redirected to payment gateway
   2. Gateway charges the user
   3. User goes back to our site, and we show a message like Thanks 
   for buying, your order is processing. Click here to see the order details.
   4. Asynchronously, the gateway notifies the payment status (sometimes it 
   takes a few minutes or even ours to the order be approved entirely from 
   PagSeguro).
  1. We receive the notification, and schedule a task queue with all the 
  parameters to be processed in background. This idea that just *forward
  * the post from the gateway to be a task queue, and avoid deadlines.
   
Usually, the overall process (except when the payment isn't approved 
instantaneously) is very fast, and we don't have the user-facing problem.

Hope this help,

- Ronoaldo

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/_82EtpAUcKYJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: hosting a c compiler on gae

2011-09-29 Thread Kaan Soral
I have worked on this topic before

and let me tell you your requests are childish

what where you thinking while you were writing your coding website on
gae?

other than these, you can easily create a compiling and running
service, which will work asynchronously and notify gae when the
process is finished. you can build it on Amazon for example.

and again, let me tell you,  all the coding websites out there works
like this.

so improve yourself a bit, don't expect everything from gae

On Sep 28, 7:56 pm, madmax mahendra0...@gmail.com wrote:
 Hi,
   It looks like I have to move away from app engine if I want to host
 a compiler. I did a thorough search and seems no way I can host a
 compiler on gae  efficiently.
 Sad that I will have to rebuild the website again from scratch to the
 specifications of another infrastructure. Last hope.. Any alternatives
 possible?? Even remote possibilities . Does google provide any
 instances??

    App engine should provide more features to developers to make
 itself as a serious platform for web development.

 Thanks and Regards,
 Mahendra Naik

 On Aug 2, 8:28 am, Robert Kluin robert.kl...@gmail.com wrote:







  Or compilers implemented in Java.  Might be more likely to find those.

  On Mon, Aug 1, 2011 at 21:54, Greg g.fawc...@gmail.com wrote:
   You could have another server provide a compile service, and have your
   Appengine app communicate with it via URLfetch, as you suggest. There
   will be inefficiencies here obviously, and you'll have to contend with
   the URLfetch size and time limits.

   You could also look for pure python compilers, which could run on
   Appengine.

   Cheers
   Greg.

   On Jul 31, 10:45 pm, madmax mahendra0...@gmail.com wrote:
   Hi,

      I am writing a coding website. I want to provide an option to the
   users to compile their c,c++ or java code. Basically I want to host a
  compilerin my app. Some google links said that it is not possible to
   host an external program on gae. Is there any alternative? Like
   connecting to a Linode or linking to amazon ec2 ??  Any pointers would
   be great.

   Thanks and Regards,
   Mahendra Naik

   --
   You received this message because you are subscribed to the Google Groups 
   Google App Engine group.
   To post to this group, send email to google-appengine@googlegroups.com.
   To unsubscribe from this group, send email to 
   google-appengine+unsubscr...@googlegroups.com.
   For more options, visit this group 
   athttp://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Managing Dev and Live versions

2011-09-29 Thread Murph
You should also take a look at multitenancy / namespaces (same feature, 2 
different names for it).

http://code.google.com/appengine/docs/python/multitenancy/

I'd guess it can also be done in Java, my GAE experience is all Python.  In 
Python, you setup the default namespace for a request in your 
appengine_config.py based on more or less whatever logic you want, so easy 
to do it based on the URL hostname prefix.  The namespace effectively gives 
a soft partitioning of the datastore  memcache (I say soft, as it's 
possible for a request handler to access all namespaces, if it wants to).

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/Pk1TxNpIgz8J.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Ajax

2011-09-29 Thread Max
Now I have this error:

File 
/base/python_runtime/python_lib/versions/third_party/django-0.96/django/template/__init__.py,
 line 344, in find_filter
raise TemplateSyntaxError, Invalid filter: '%s' % filter_name
TemplateSyntaxError: Invalid filter: 'safe'

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/cF0btCvUZvcJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Ajax

2011-09-29 Thread Matt Jibson
You are using the old version of django, 0.96. You need to switch to django 1.2.

On Thu, Sep 29, 2011 at 9:14 AM, Max massimiliano.pietr...@gmail.com wrote:
 Now I have this error:

 File
 /base/python_runtime/python_lib/versions/third_party/django-0.96/django/template/__init__.py,
 line 344, in find_filter
 raise TemplateSyntaxError, Invalid filter: '%s' % filter_name
 TemplateSyntaxError: Invalid filter: 'safe'

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine/-/cF0btCvUZvcJ.
 To post to this group, send email to google-appengine@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Ajax

2011-09-29 Thread Max
I don't know how can I do it.
I'm not an It. I have my code  and I have deploy it in the cloud. This is 
the error I see in the online app.
Have I to import something specific?

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/-nF75G5s44YJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: hosting a c compiler on gae

2011-09-29 Thread madmax
@Jeff Schnitzer : My app provide programming tests to users. Users can
code the solutions in c or c++. I am planning to provide a feature
where the users can compile their code and test for correctness.
Obviously they wont be running the code. Have tried many ways to
implement this feature. The obvious solution would be to have a Linode
or EC2 backend and let the compilation be done there. But it would be
more efficient to have something supported on gae. Now i kno there is
no way to do it than  source the code to EC2 or Linode.

@Ikai Lan : Thanks for the suggestion and will try the solution .

@Kaan Soral: I know how the coding websites work and have written one
myself. And I don't want to write something which already exists.
Don't you call me childish,  I know what I am doing and I assume you
understand that requirements for an app come out of nowhere when you
run a customer centric application. If you are not clear with what I
have written please ask me to clarify  , I would be happy to do that.
If you don't have patience for that or  don't feel like doing it, well
its ur choice. But don't call me childish.


On Sep 29, 5:17 pm, Kaan Soral kaanso...@gmail.com wrote:
 I have worked on this topic before

 and let me tell you your requests are childish

 what where you thinking while you were writing your coding website on
 gae?

 other than these, you can easily create a compiling and running
 service, which will work asynchronously and notify gae when the
 process is finished. you can build it on Amazon for example.

 and again, let me tell you,  all the coding websites out there works
 like this.

 so improve yourself a bit, don't expect everything from gae

 On Sep 28, 7:56 pm, madmax mahendra0...@gmail.com wrote:







  Hi,
    It looks like I have to move away from app engine if I want to host
  a compiler. I did a thorough search and seems no way I can host a
  compiler on gae  efficiently.
  Sad that I will have to rebuild the website again from scratch to the
  specifications of another infrastructure. Last hope.. Any alternatives
  possible?? Even remote possibilities . Does google provide any
  instances??

     App engine should provide more features to developers to make
  itself as a serious platform for web development.

  Thanks and Regards,
  Mahendra Naik

  On Aug 2, 8:28 am, Robert Kluin robert.kl...@gmail.com wrote:

   Or compilers implemented in Java.  Might be more likely to find those.

   On Mon, Aug 1, 2011 at 21:54, Greg g.fawc...@gmail.com wrote:
You could have another server provide a compile service, and have your
Appengine app communicate with it via URLfetch, as you suggest. There
will be inefficiencies here obviously, and you'll have to contend with
the URLfetch size and time limits.

You could also look for pure python compilers, which could run on
Appengine.

Cheers
Greg.

On Jul 31, 10:45 pm, madmax mahendra0...@gmail.com wrote:
Hi,

   I am writing a coding website. I want to provide an option to the
users to compile their c,c++ or java code. Basically I want to host a
   compilerin my app. Some google links said that it is not possible to
host an external program on gae. Is there any alternative? Like
connecting to a Linode or linking to amazon ec2 ??  Any pointers would
be great.

Thanks and Regards,
Mahendra Naik

--
You received this message because you are subscribed to the Google 
Groups Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group 
athttp://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Ajax

2011-09-29 Thread Matt Jibson
Use the process below, and specify '1.2' is the version:
http://code.google.com/appengine/docs/python/tools/libraries.html#Django

On Thu, Sep 29, 2011 at 9:38 AM, Max massimiliano.pietr...@gmail.com wrote:
 I don't know how can I do it.
 I'm not an It. I have my code  and I have deploy it in the cloud. This is
 the error I see in the online app.
 Have I to import something specific?

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine/-/-nF75G5s44YJ.
 To post to this group, send email to google-appengine@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Null version

2011-09-29 Thread Pavel Byles
I'm not sure if this is a GWT issue or a GAE issue.
However, I have used the remote api to initialize my database. When I query
via the remote api I get back all the data including the version just fine.
 The problem is when I am trying to get data from my entity all the fields
are ok except the version field.  I am using an entity proxy with request
factory for GWT.

@Version
@Column(name = version)
private Integer version;

public Integer getVersion() {
  return this.version;
}

public void setVersion(Integer version) {
  this.version = version;
}

I also have this in my locator:

@Override
public Object getVersion(Country domainObject) {
  return domainObject.getVersion();
}


Regards,
Pavel

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: hosting a c compiler on gae

2011-09-29 Thread Jeff Schnitzer
On Thu, Sep 29, 2011 at 8:58 AM, madmax mahendra0...@gmail.com wrote:
 @Jeff Schnitzer : My app provide programming tests to users. Users can
 code the solutions in c or c++. I am planning to provide a feature
 where the users can compile their code and test for correctness.
 Obviously they wont be running the code. Have tried many ways to
 implement this feature. The obvious solution would be to have a Linode
 or EC2 backend and let the compilation be done there. But it would be
 more efficient to have something supported on gae. Now i kno there is
 no way to do it than  source the code to EC2 or Linode.

If all you want is a compiler frontend (parser, typechecker), you
might be able to get away with porting it to something you can run in
a GAE app.  That this code is almost 100% algorithmic and you should
be able to compile it something else, either java (to run on GAE) or
javascript (to run in the browser itself).

I would seriously consider going the javascript route and doing it all
in the browser.  Compared to running DOOM in the browser (see
http://www.readwriteweb.com/hack/2011/05/doom-ported-to-javascript-and.php),
running a compiler frontend should be easy.  Looks like they used this
tool:

https://github.com/kripken/emscripten/wiki

This actually looks easier (and more fun) than setting up a compile
farm somewhere, plus it would give you a slick user experience.  You
could even blog about it and probably get the story picked up by
hacker news.

Jeff

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Request: Memcache Issue

2011-09-29 Thread Jeff Schnitzer
Thanks Tom - one thing I'll mention is that this cache works outside
of Objectify, so if you want a DatastoreService that will
transactionally and transparently utilize memcache to reduce your
datastore reads, please star the issue:

http://code.google.com/p/googleappengine/issues/detail?id=4874

It works now, just performs poorly for large batch get()s.  You can
find install documentation here (although you'll need to checkout and
build Objectify from trunk for now):

http://code.google.com/p/objectify-appengine/wiki/MemcacheStandalone

Jeff

On Thu, Sep 29, 2011 at 6:49 AM, Tom Carchrae carch...@gmail.com wrote:

 One of the tools I use a lot with App Engine is Objectify - which makes for
 a simple and hassle free way of using the Datastore.  The developer of this
 tool, gives awesome support, quick bug fixes, and a tool that takes the pain
 away.  This is an unabashed request for your help to make that tool, and App
 Engine's Memcache service even better by having better support for batch
 gets.
 For a rundown on the issue, read this thread:
  http://groups.google.com/group/objectify-appengine/browse_frm/thread/e564deeeccedc036
 If you're lazy/busy and that is tldr; it would be great if you can star this
 issue to help make App Engine better:
 http://code.google.com/p/googleappengine/issues/detail?id=4874 - Likewise,
 if you're not lazy and have time - or even better, work at Google and could
 fix it, then please considering helping out to find a solution.
 If you don't know anything about Objectify, there is a great overview of it
 here from this years GoogleIO:
 http://www.google.com/events/io/2011/sessions/highly-productive-gwt-rapid-development-with-app-engine-objectify-requestfactory-and-gwt-platform.html
 Tom

 --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-tool...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Per thread requests

2011-09-29 Thread Bruno Sandivilli
Hi all, i'm struggling to understand how the perTrheadRequest works in
AppEngine, in terms of performance. Can anyone give me some clue?
I can't get thinks like this :
RemoteServiceServlet rss = (RemoteServiceServlet)service;
rss.init(this.getServletConfig());
 rss.perThreadRequest = this.perThreadRequest;
 rss.perThreadResponse = this.perThreadResponse;
Or the ThreadLocalHttpServletRequest.
Any code snippets, java if you can, are welcome. Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Can't deploy. I'm stuck at precompilation.

2011-09-29 Thread Francois Masurel
Does anybody have the same problem ?

Francois

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/CtQ1ZM4qUK8J.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tapir

On Sep 30, 7:25 am, Tapir tapir@gmail.com wrote:
 and with Max Idle Instances set as 3.

 There MUST be a bug in gae instance scheduler.
 If it is not a bug, it MUST be a bad implementation.

 After some researches, I find If there is only one instance is
 running,
 the scheduler always avoids using it to handle a new coming request,
 even if the idle instance is idling.
 Instead, the scheduler always tries to open a new instance to handle
 the new coming request.
 As a result, the visitor must wait 15s to load the page.

 This problem is intolerable specially for websites with very small
 traffic. Almost very visit will wait for 15 seconds.
A spelling error here. It should be Almost every visit

 How a good scheduler should do?
 1. always use the current idle instance if it is available.
 2. at the same time, create a new instance for potential new
 concurrent requests.
 It is just that simple.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] how long will the new Max Idle Instances setting is applied when it is changed?

2011-09-29 Thread Tapir
I haven't changed it for half a hour. But it is still not applied.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: how long will the new Max Idle Instances setting is applied when it is changed?

2011-09-29 Thread Tapir
A question: if I set the Max Idle Instances as 1,
then the Min Pending Latency must be unlimited?

On Sep 30, 7:50 am, Tapir tapir@gmail.com wrote:
 I haven't changed it for half a hour. But it is still not applied.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: how long will the new Max Idle Instances setting is applied when it is changed?

2011-09-29 Thread Tapir
about 1 hour past, the new setting is still not applied.

On Sep 30, 7:50 am, Tapir tapir@gmail.com wrote:
 I haven't changed it for half a hour. But it is still not applied.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: how long will the new Max Idle Instances setting is applied when it is changed?

2011-09-29 Thread Tapir
applied now. So the time to apply new settings is 1 hour.

On Sep 30, 7:50 am, Tapir tapir@gmail.com wrote:
 I haven't changed it for half a hour. But it is still not applied.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: how long will the new Max Idle Instances setting is applied when it is changed?

2011-09-29 Thread Tapir
no, it is not applied.
It created 2 instances again.
But I have set the Max Idle Instances as one 1 hour ago.

On Sep 30, 8:11 am, Tapir tapir@gmail.com wrote:
 applied now. So the time to apply new settings is 1 hour.

 On Sep 30, 7:50 am, Tapir tapir@gmail.com wrote:







  I haven't changed it for half a hour. But it is still not applied.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Datastore Read and Writes Statstics

2011-09-29 Thread djidjadji
It would be really nice if the WriteOps and ReadOps are logged for
each request. Like the loading_request and ms time that is added to a
line in the log.
That way you can download the logs and find out which request is
making the most Ops and perhaps needs a look at if it can be
optimized.

Op 22 september 2011 14:29 heeft Vivek Puri v...@vivekpuri.com het
volgende geschreven:
 For Estimated Charges Under New Pricing, my app is showing $40/per
 day for Writes and $13/day for Reads. $40 worth of writes is 40
 million write operations. Right now i have not idea which table is
 being written to most and contributing to that number. Can AppEngine
 team provide statistics on these write and read operations. I would
 hope this is something similar to existing Datastore Statistics
 tool.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tim Hoffman
I have a site, with max idle set to 1, and Min Pending Latency set to 500ms, 
and I find performance is great.

It takes 3-4 secs normally to start the full app up, but through smart 
caching (I can start a cold instance and serve many pages directly from 
memcache without starting the full stack in less than 200ms.)

I suggest you spend some time having a look at your app startup performance, 
and profiling your app, 
rather than spending your time posting the multitude of odd complaints all 
over the place.

Tim

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/akZjr0DRILYJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tapir
with with Max Idle Instances set as 1 instead 3.
The user experience is better now. ^_^

On Sep 30, 7:25 am, Tapir tapir@gmail.com wrote:
 and with Max Idle Instances set as 3.

 There MUST be a bug in gae instance scheduler.
 If it is not a bug, it MUST be a bad implementation.

 After some researches, I find If there is only one instance is
 running,
 the scheduler always avoids using it to handle a new coming request,
 even if the idle instance is idling.
 Instead, the scheduler always tries to open a new instance to handle
 the new coming request.
 As a result, the visitor must wait 15s to load the page.

 This problem is intolerable specially for websites with very small
 traffic. Almost very visit will wait for 15 seconds.

 How a good scheduler should do?
 1. always use the current idle instance if it is available.
 2. at the same time, create a new instance for potential new
 concurrent requests.
 It is just that simple.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tim Hoffman
Unfortunately in all your posts, you provide little background.

So we have contextless complaints, its difficult to work out what you
have done, and I won't assume you have done things like optimisation.

Also are you handling warmup requests ?

T

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/DpQQFvngoKMJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tapir
On Sep 29, 9:00 pm, Tim Hoffman zutes...@gmail.com wrote:
 Unfortunately in all your posts, you provide little background.

 So we have contextless complaints, its difficult to work out what you
 have done, and I won't assume you have done things like optimisation.

 Also are you handling warmup requests ?
This is really not an app optimization problem.

And about the app optimization,
I use struts2 framework, which makes reducing the startup time less
than 10 seconds is almost impossible.
And yes I haven't use memcache heavily, but which is almost helpless
for reducing the startup time.


 T

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tapir
Yes I use the warmup requests feature,
but I think it will make the problem worse.

On Sep 30, 9:00 am, Tim Hoffman zutes...@gmail.com wrote:
 Unfortunately in all your posts, you provide little background.

 So we have contextless complaints, its difficult to work out what you
 have done, and I won't assume you have done things like optimisation.

 Also are you handling warmup requests ?

 T

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: public, dynamic backends are magical (in a good way!!)

2011-09-29 Thread Adam Sah
private backends are wonderful too-- but making them public makes it easier 
to debug actions because you can connect directly to the backend.

for example, you can use the App Engine hosted console (
http://con.appspot.com/) to read the memory of the backend directly.
   (I will post on gae console soon-- it's amazing...)

adam

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/JQc8GyzxG58J.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread JH
Tim,

Can you elaborate on what you mean by smart caching ?  You start
serving pages before your full stack has started?

On Sep 29, 7:23 pm, Tim Hoffman zutes...@gmail.com wrote:
 I have a site, with max idle set to 1, and Min Pending Latency set to 500ms,
 and I find performance is great.

 It takes 3-4 secs normally to start the full app up, but through smart
 caching (I can start a cold instance and serve many pages directly from
 memcache without starting the full stack in less than 200ms.)

 I suggest you spend some time having a look at your app startup performance,
 and profiling your app,
 rather than spending your time posting the multitude of odd complaints all
 over the place.

 Tim

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tim Hoffman
Maybe you shouldn't use struts, this is a serious suggestion, and should be 
considered seriously.
If you have a lightly used small app using a heavy framework then you have 
probably made a bad design choice.

If you have long startup times then warmup requests do help enormously, and 
in fact are about the only way you are
going to improve the use experience.

Also if you have such large startup times, then you should probably have 
more than one idle instance.

I would also examine you software stack and see if you can at least serve 
the home page/landing page 
directly from memcache without starting struts up.
The have on that same page some images that will be loaded after the html is 
loaded, and serve these from the 
full struts stack. This will mean the front page is loaded fast, and the 
images may well trigger additional instances 
to be loaded, if they don't load immediately it may not be the end of the 
world.

T

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/Vve2VmeQfR8J.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tim Hoffman
Think ?

Actually run tests and measure.  Too much thinking and not enough actual 
testing
won't solve your problems.

I can imperically say warmup requests help on all of my applications.

T

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/g2GYszRWdWAJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: public, dynamic backends are magical (in a good way!!)

2011-09-29 Thread Tapir
I see.
The backends looks great!
I will try it soon.

On Sep 30, 9:34 am, Adam Sah adam@gmail.com wrote:
 private backends are wonderful too-- but making them public makes it easier
 to debug actions because you can connect directly to the backend.

 for example, you can use the App Engine hosted console 
 (http://con.appspot.com/) to read the memory of the backend directly.
    (I will post on gae console soon-- it's amazing...)

 adam

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tapir


On Sep 30, 9:41 am, Tim Hoffman zutes...@gmail.com wrote:
 Maybe you shouldn't use struts, this is a serious suggestion, and should be
 considered seriously.
 If you have a lightly used small app using a heavy framework then you have
 probably made a bad design choice.
Could you recommend one?
My website traffic is small, but my app is not small.


 If you have long startup times then warmup requests do help enormously, and
 in fact are about the only way you are
 going to improve the use experience.
In fact, as the gae docs says, warmup requests is not always
positive.
warmup requests will make the problem I mentioned in the first
comment worse.


 Also if you have such large startup times, then you should probably have
 more than one idle instance.
As I mentioned above, set Max Idle Instances with 1 instead 3 will
make page loading faster.
(Surely, I think this is a bug of gae)


 I would also examine you software stack and see if you can at least serve
 the home page/landing page
 directly from memcache without starting struts up.
 The have on that same page some images that will be loaded after the html is
 loaded, and serve these from the
 full struts stack. This will mean the front page is loaded fast, and the
 images may well trigger additional instances
 to be loaded, if they don't load immediately it may not be the end of the
 world.
I don't think loading images needs instances.


 T

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tapir


On Sep 30, 9:41 am, Tim Hoffman zutes...@gmail.com wrote:
 Maybe you shouldn't use struts, this is a serious suggestion, and should be
 considered seriously.
 If you have a lightly used small app using a heavy framework then you have
 probably made a bad design choice.

I am really some regretting on using java instead of python.
I feels google doesn't put enough energy to solve some common problems
in java apps,
such as slow startup and high memory using.


 If you have long startup times then warmup requests do help enormously, and
 in fact are about the only way you are
 going to improve the use experience.

 Also if you have such large startup times, then you should probably have
 more than one idle instance.

 I would also examine you software stack and see if you can at least serve
 the home page/landing page
 directly from memcache without starting struts up.
 The have on that same page some images that will be loaded after the html is
 loaded, and serve these from the
 full struts stack. This will mean the front page is loaded fast, and the
 images may well trigger additional instances
 to be loaded, if they don't load immediately it may not be the end of the
 world.

 T

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Jeff Schnitzer
On Thu, Sep 29, 2011 at 6:59 PM, Tapir tapir@gmail.com wrote:

 I am really some regretting on using java instead of python.
 I feels google doesn't put enough energy to solve some common problems
 in java apps,
 such as slow startup and high memory using.

Honestly it's really hard to tell what you're asking from this thread.
 If your app takes a long time to start up and spends most of its time
idle (thus gets shut down), consider paying for the always on
option.

Also, if you haven't yet, put threadsafetrue/threadsafe in your
appengine-web.xml.  A single instance should be able to serve many
concurrent requests.

Jeff

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] DeadlineExceededError in the mail API

2011-09-29 Thread Ian Lewis
Hi,

I'm seeing a lot of errors in one of my applications when making
requests to the email RPC.

I am getting DeadlineExceededErrors being throw about half of the time
the api is called. The full error
is as follows.

...
File /base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py,
line 390, in send_mail
message.send(make_sync_call)
  File 
/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py,
line 891, in send
make_sync_call('mail', self._API_CALL, message, response)
  File 
/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py,
line 94, in MakeSyncCall
return stubmap.MakeSyncCall(service, call, request, response)
  File 
/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py,
line 308, in MakeSyncCall
rpc.CheckSuccess()
  File 
/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_rpc.py,
line 133, in CheckSuccess
raise self.exception
DeadlineExceededError: The API call mail.Send() took too long to
respond and was cancelled.

Is anyone else seeing this?

-- 
Ian

http://www.ianlewis.org/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: urlfetch maximum interactive timeout why 10 seconds and not 20?

2011-09-29 Thread GAEfan
Not sure what your are using for the urlfetch method, but it does have
a deadline parameter.  Some syntax examples:

urlfetch.create_rpc(deadline=20)

urlfetch.fetch('http://'% domain, method=urlfetch.GET, deadline=20)

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tapir
I think I have described it clearly.
There is an idle instance running, but gae scheduler will still create
a new instance and use the new instance to handle a new coming
request.
This is not a right implementation. The right implementation is use
the idle instance to handle the new coming request and create a new
instance for potential other coming requests.

On Sep 29, 11:54 pm, Jeff Schnitzer j...@infohazard.org wrote:
 On Thu, Sep 29, 2011 at 6:59 PM, Tapir tapir@gmail.com wrote:

  I am really some regretting on using java instead of python.
  I feels google doesn't put enough energy to solve some common problems
  in java apps,
  such as slow startup and high memory using.

 Honestly it's really hard to tell what you're asking from this thread.
  If your app takes a long time to start up and spends most of its time
 idle (thus gets shut down), consider paying for the always on
 option.
My app don't need 3 always-on paid instances.
As I have mentioned above, I have set the Max Idle Instances to 1
instead of the old 3. Now the user experience is very happy.
Ironic? one Max Idle Instances is better than 3 Max Idle
Instances. ^_^


 Also, if you haven't yet, put threadsafetrue/threadsafe in your
 appengine-web.xml.  A single instance should be able to serve many
 concurrent requests.
yes, I set it true, but this problem still exists.


 Jeff

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: DeadlineExceededError in the mail API

2011-09-29 Thread Dennis
yes, i have been getting this error consistently for over 24 hours on my 
app.

i assumed it would be fixed by google quickly, but i guess not.
my app has not changed for weeks so it's something in the appengine 
infrastructure.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/1dTvL0LDZkUJ.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: It is almost intolerable for user experience with 1 idle instances running

2011-09-29 Thread Tapir
I admit the title is misleading.
It should be The user experience is intolerable for with Max Idle
Instances set as 3.
For when I started this thread, I hadn't found the real reason for my
app slow page loading problem.

On Sep 30, 11:54 am, Jeff Schnitzer j...@infohazard.org wrote:
 On Thu, Sep 29, 2011 at 6:59 PM, Tapir tapir@gmail.com wrote:

  I am really some regretting on using java instead of python.
  I feels google doesn't put enough energy to solve some common problems
  in java apps,
  such as slow startup and high memory using.

 Honestly it's really hard to tell what you're asking from this thread.
  If your app takes a long time to start up and spends most of its time
 idle (thus gets shut down), consider paying for the always on
 option.

 Also, if you haven't yet, put threadsafetrue/threadsafe in your
 appengine-web.xml.  A single instance should be able to serve many
 concurrent requests.

 Jeff

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: DeadlineExceededError in the mail API

2011-09-29 Thread Rishi Arora
Ditto.  I'm noticing nearly 30% of all my mail send operations are failing.
 Fortunately, the last time this happened (a few weeks ago), I tucked in my
mail send() calls in a taskqueue task.  So, if it fails, the task queue
automatically retries, in accordance with the back off algorithm parameters
defined in queues.yaml.  This has worked just fine, except that it
introduces a little delay in the emails reaching their recipient.  For my
app, that is tolerable.

On Fri, Sep 30, 2011 at 12:02 AM, Dennis dennisf...@gmail.com wrote:

 yes, i have been getting this error consistently for over 24 hours on my
 app.

 i assumed it would be fixed by google quickly, but i guess not.
 my app has not changed for weeks so it's something in the appengine
 infrastructure.

  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine/-/1dTvL0LDZkUJ.

 To post to this group, send email to google-appengine@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.