[google-appengine] Re: Memcache pattern

2009-09-08 Thread Sylvain

I think it should help :
http://appengine-cookbook.appspot.com/recipe/decorator-to-getset-from-the-memcache-automatically/?id=ahJhcHBlbmdpbmUtY29va2Jvb2tyngELEgtSZWNpcGVJbmRleCJAYWhKaGNIQmxibWRwYm1VdFkyOXZhMkp2YjJ0eUdnc1NDRU5oZEdWbmIzSjVJZ3hOWlcxallXTm9aU0JCVUVrTQwLEgZSZWNpcGUiQWFoSmhjSEJsYm1kcGJtVXRZMjl2YTJKdmIydHlHZ3NTQ0VOaGRHVm5iM0o1SWd4TlpXMWpZV05vWlNCQlVFa00xDA

On Sep 9, 2:16 am, Robert Kluin  wrote:
> You do not ever pass the arguments to "get_data_callback."  You need to do
> something more like:
>
> class MC():
>   �...@staticmethod
>    def get( key, get_data_callback, **kwargs):
>        data_set = memcache.get( key )
>        if data_set == None:
>            data_set = get_data_callback(**kwargs)
>            memcache.set( key, data_set )
>        return data_set
>
> and:
>
> def get_user( id ):
>    return MC.get( key, lambda id: DB.get_user( id ),id=id )
>
> Good luck.
>
> Robert
>
> On Mon, Sep 7, 2009 at 4:25 PM, (jpgerek)  wrote:
>
> > Hi, I'm new with python and I having problems to implement the typical
> > memcache pattern.
>
> > I wan't to make a decorator of the most common memcache pattern so I
> > don't have to implement the logic everytime. My intention is having a
> > function that receives the key to get and a callback with the
> > datastore gets, in case the memcache key expires, it's evicted or
> > whatever.
>
> > This is what I have now:
>
> > class MC():
> >   �...@staticmethod
> >    def get( key, get_data_callback ):
> >        data_set = memcache.get( key )
> >        if data_set == None:
> >            data_set = get_data_callback()
> >            memcache.set( key, data_set )
> >        return data_set
>
> > I'm having problems with the callback when some params are required.
> > For instance:
>
> > class DB():
> >   �...@staticmethod
> >    def get_user( id ):
> >          return User().all().filter('id =', id').fetch(1)
>
> > def get_user( id ):
> >    return MC.get( key, lambda id: DB.get_user( id ) )
>
> > The error I get when I call 'get_user(1)' is something like:
>
> > TypeError: () takes exactly 1 argument (0 given)
>
> > Though it works in this case:
>
> > def get_user_one():
> >     return User().all().filter('id = 1').fetch(1)
>
> > It seems to be something with the params, they are lost, could it be
> > solved with closures? other approach?
--~--~-~--~~~---~--~~
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: XMPP and flash

2009-09-08 Thread meaglith
The XIFF library maybe...
You would check the svn version, it's still not support TLS connection.

---
Blog: http://blog.douhua.im
Twitter: http://twitter.com/genedna
Website: http://douhua.im
---
关注RIA,关注OpenSource。


On Tue, Sep 8, 2009 at 5:51 AM, Backpack  wrote:

>
> Any ideas on how to connect to XMPP using a flash socket?
>
> In other words, just a command line where I can send messages to my
> app via HTML, no need for chat, rooms, buddies, flex, widgets, etc,
> just a textbox and a send button.
>
> I already did it using Google Talk, so my app connects ok.
>
> Something like:
>
> xmpp = XMPPSocketConnect("talk.google.com",5222)
> xmpp.send("hello server, or whatever goes here")
>
> then using ExternalInterface.call attach flash events to javascript
> events
>
> If you got the idea, I'd appreciate all the help you can provide. If
> not, ask and I'll try to make it clearer.
>
> >
>

--~--~-~--~~~---~--~~
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] Is there a way to set custom status message for app's XMPP address?

2009-09-08 Thread satish

I would like to display something like "Type ? for help using this
bot" as status message for my app's bot. Is it possible? This is
similar to how bot "en2hi.trans...@bot.talk.google.com" displays "Use
transliteration on any website..." as status.
--~--~-~--~~~---~--~~
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: Memcache pattern

2009-09-08 Thread Robert Kluin
You do not ever pass the arguments to "get_data_callback."  You need to do
something more like:

class MC():
   @staticmethod
   def get( key, get_data_callback, **kwargs):
   data_set = memcache.get( key )
   if data_set == None:
   data_set = get_data_callback(**kwargs)
   memcache.set( key, data_set )
   return data_set

and:

def get_user( id ):
   return MC.get( key, lambda id: DB.get_user( id ),id=id )


Good luck.

Robert


On Mon, Sep 7, 2009 at 4:25 PM, (jpgerek)  wrote:

>
> Hi, I'm new with python and I having problems to implement the typical
> memcache pattern.
>
> I wan't to make a decorator of the most common memcache pattern so I
> don't have to implement the logic everytime. My intention is having a
> function that receives the key to get and a callback with the
> datastore gets, in case the memcache key expires, it's evicted or
> whatever.
>
> This is what I have now:
>
> class MC():
>@staticmethod
>def get( key, get_data_callback ):
>data_set = memcache.get( key )
>if data_set == None:
>data_set = get_data_callback()
>memcache.set( key, data_set )
>return data_set
>
> I'm having problems with the callback when some params are required.
> For instance:
>
> class DB():
>@staticmethod
>def get_user( id ):
>  return User().all().filter('id =', id').fetch(1)
>
> def get_user( id ):
>return MC.get( key, lambda id: DB.get_user( id ) )
>
> The error I get when I call 'get_user(1)' is something like:
>
> TypeError: () takes exactly 1 argument (0 given)
>
> Though it works in this case:
>
> def get_user_one():
> return User().all().filter('id = 1').fetch(1)
>
> It seems to be something with the params, they are lost, could it be
> solved with closures? other approach?
>
> >
>

--~--~-~--~~~---~--~~
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: HELP! 500!! circle redirects!!! Can't use appengine account!!!

2009-09-08 Thread Wooble

Try logging in at http://appengine.google.com/a/live.ru

On Sep 7, 7:20 pm, "ai_...@live.ru"  wrote:
> Some one could help me? After i reinstall OS  I can't enter to google
> AppEngine! I can enter to my google account but could not enter to
> Google App Engine...
>
> I can't enter alredy 2 weeks! o__O
>
> IE downloadin and downloading and don't sop at all!!!
> FF tell me thet there is "circle redirects"
> Chrome tell me that theres an error in certificate...
>
> BTW i can't even upload apps from console.. it tels me that
> "u have no RIGHTS to edit app"!!!
>
> WTF is going one??? Some one PLZ HELP
>
> PS: my account is not deleted... my tested app is still 
> alwaliblehttp://www.almazdanceclub.appspot.com/
--~--~-~--~~~---~--~~
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: Error: Server Error

2009-09-08 Thread Wooble

Almost certainly there's a problem with your code.  Check your app's
logs.  The generic 500 response page isn't useful at all for
debugging.

On Sep 6, 7:19 am, hoang  wrote:
> Hi all,
> I got this message when accessing the homepage of my project from the
> appspot.com website. But it works fine locally, I wonder if there is
> any problem on the server?
>
> Error: Server Error
>
> The server encountered an error and could not complete your request.
> If the problem persists, please report your problem and mention this
> error message and the query that caused it.
--~--~-~--~~~---~--~~
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: Facebook Integration?

2009-09-08 Thread ramu

http://github.com/sciyoshi/pyfacebook/tree/master

On Sep 9, 2:09 am, Devel63  wrote:
> Can anyone point me in the direction of a good resource for Facebook
> Connect/GAE integration?
>
> Neither the ShelfTalkers article (http://code.google.com/appengine/
> articles/shelftalkers.html), nor PyFacebook (upon which ShelfTalkers
> relies) appear to work anymore.  For example, PyFacebook relies on an
> 'add' parameter in the session cookie which is not (any longer?)
> there.
>
> This post (http://forum.developers.facebook.com/viewtopic.php?
> id=23276) enabled me to move forward (just look for the 'user' param
> and set 'added' true if present), but it's scary to be relying on
> something that's possibly no longer maintained.
>
> Is PyFacebook still maintained and working?
>
> And how do people test this FB stuff on a local server (I'm having to
> upload to Google every time)?  The ShelfTalkers article implied I
> could just set the FB callback URL to 127.0.0.1:8080, but either that
> or something else is causing weird failures.
--~--~-~--~~~---~--~~
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: App Engine Launcher throws an error in Windows 7

2009-09-08 Thread ramu

http://github.com/sciyoshi/pyfacebook/tree/master

On Sep 8, 11:39 pm, "Lee, Duk (Genworth)" 
wrote:
> Hello,
>
> I know this issue already logged as a bug, but does anyone know how to
> resolve this issue? I do not want to download the missing dll off the
> Web and stick it in somewhere. 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] Re: Dramatic increase in api cpu usage.

2009-09-08 Thread Robert Kluin
I have some code that is now using more CPU as well.

Previously:
1530cpu_ms 616api_cpu_ms
1404cpu_ms 995api_cpu_ms
1104cpu_ms 695api_cpu_ms

Now:
4619cpu_ms 4133api_cpu_ms
4619cpu_ms 4133api_cpu_ms  (yes, it is exactly the same)


That is unchanged code.  Same exact data.

Robert



On Tue, Sep 8, 2009 at 3:23 PM, bFlood  wrote:

>
> I just ran a batch delete using the Task queue. It grabs the next 50
> keys for a Kind and then calls db.delete(keys), so fairly simple
> stuff. here's some example results in the log:
>
> 865ms 1032cpu_ms 952api_cpu_ms
> 1058ms 1040cpu_ms 952api_cpu_ms
> 947ms 49947cpu_ms 49869api_cpu_ms<--???
> 1425ms 1035cpu_ms 952api_cpu_ms
> 1674ms 41181cpu_ms 41094api_cpu_ms
>
> any thoughts? something seems wrong to me
>
> cheers
> brian
>
>
> On Sep 8, 8:56 am, bFlood  wrote:
> > ok, I was able to check over my code again and even with rolling back
> > small changes, the large CPU increases are still there. at this point,
> > I have to agree with herbie's findings as well. It would be nice if
> > Google could weigh in on this troubling issue
> >
> > cheers
> > brian
> >
> > On Sep 8, 4:51 am, herbie <4whi...@o2.co.uk> wrote:
> >
> >
> >
> > > On Sep 8, 12:07 am, Stephen  wrote:
> >
> > > > OK, but because api_cpu_ms is 96% of the total, then cpu_ms is also
> > > > almost 3x higher? The spike is showing up in the cpu_ms?
> >
> > > Yes in total the cpu_ms has gone up by nearly 3x too.
> >
> > > But as I understand it cpu_ms is the total cpu usage for the request
> > > and api_cpu_ms is the cpu usage by GAE api calls.   So the difference
> > > between the two is the cpu usage of my non api code. This difference
> > > hasn’t increased because the code hasn’t changed.
> >
> > > But yes, the new high value for api_cpu_ms directly affects my quota
> > > because it makes the vast majority of cpu_ms.  So we do pay for
> > > api_cpu_ms !   So for example if Google makes a change to db.put()
> > > (or any api call) so that it uses more cpu,   we will be billed for
> > > more cpu usage even if our code hasn’t changed.
> >
> > > As my code/ indexes hasn’t changed and the api_cpu_ms  has shot up the
> > > obvious conclusion is that an api/datastore  change has caused it?
> >
> > > But there may be another ‘good’ reason for it, which I can’t think
> > > of,  but as I’m going to have to pay for the increase in api_cpu_ms,
> > > I would really appreciate  it if someone at Google could help.
> >
> > > On Sep 8, 12:07 am, Stephen  wrote:
> >
> > > > On Sep 7, 8:57 pm, herbie <4whi...@o2.co.uk> wrote:
> >
> > > > > On Sep 7, 6:50 pm, Stephen  wrote:
> >
> > > > > > What about cpu_ms, is that also higher for requests which write
> to the
> > > > > > data store?
> >
> > > > > No, not in relation to api_cpu_ms.  For the request that does the
> most
> > > > > writing to the datastore api_cpu_ms accounts for 96% of the total
> > > > > cpu_ms value!.  The so request handler does not much more than
> create
> > > > > new entities in the datastore.
> >
> > > > OK, but because api_cpu_ms is 96% of the total, then cpu_ms is also
> > > > almost 3x higher? The spike is showing up in the cpu_ms?
> >
> > > > cpu_ms is billed for, so if you have billing enabled you are being
> > > > overcharged.
> >
> > > > You could try asking for a refund here:
> >
> > > >
> http://code.google.com/support/bin/request.py?contact_type=AppEngineB...
> >
>

--~--~-~--~~~---~--~~
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: 30 Max simultaneous requests (maxThreads)?

2009-09-08 Thread ted stockwell



On Sep 8, 2:58 pm, David Given  wrote:
> Adligo wrote:
> > I mentioned is stored as a Session Attribute.  I assume that the app
> > engine must be
> > keeping the Session in a location that can be accessed by all
> > threads.
>
> I'm afraid not!
>
> The *only* mechanism for communicating between requests is, AFAIK (and
> if I'm wrong someone please correct me), memcache or the datastore.
>

Actually, you can also use the URLFetch service to make callbacks to
your application, thereby providing a thread a way to talk to another
thread.
This is used to good effect to parallelize queries in the asynctools
project, http://code.google.com/p/asynctools/.


   Unfortunately, the Java API does not support async URLFetch like
the Python API.
   Please go vote for async URLFetch in Java here...

http://code.google.com/p/googleappengine/issues/detail?id=1899&q=emorning&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Component





--~--~-~--~~~---~--~~
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] Facebook Integration?

2009-09-08 Thread Devel63

Can anyone point me in the direction of a good resource for Facebook
Connect/GAE integration?

Neither the ShelfTalkers article (http://code.google.com/appengine/
articles/shelftalkers.html), nor PyFacebook (upon which ShelfTalkers
relies) appear to work anymore.  For example, PyFacebook relies on an
'add' parameter in the session cookie which is not (any longer?)
there.

This post (http://forum.developers.facebook.com/viewtopic.php?
id=23276) enabled me to move forward (just look for the 'user' param
and set 'added' true if present), but it's scary to be relying on
something that's possibly no longer maintained.

Is PyFacebook still maintained and working?

And how do people test this FB stuff on a local server (I'm having to
upload to Google every time)?  The ShelfTalkers article implied I
could just set the FB callback URL to 127.0.0.1:8080, but either that
or something else is causing weird failures.
--~--~-~--~~~---~--~~
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: DB design question: one-to-many and "NOT IN"

2009-09-08 Thread Peter

Here is one idea:

Let's say that you want 20 unvoted upon Entries on a page.
Let's assume you want to order the unvoted upon Entries by posted
datetime.
My solution will also require that you add the Entry posted datetime
to the Vote entities.

First get about 30 Entries, ordered by posted datetime.
Now get all the Votes for your user with Entry posted datetimes
between the first Entry you got above, and the 30th entry you got
above.
Now you can eliminate the Entries that have already been voted on in
your python code.
Hopefully you still have 20 unvoted Entries left.  If not, you can
repeat the above steps until you find 20 unvoted upon Entries.

For the next page, you would do the same thing, but starting at a
later datetime.

This should scale pretty well, since you will only be doing about 2
queries per page on average.  The worst case scenario is that a user
has voted upon the first several hundred Entries for a given day, in
which case you would need to repeat the "get 30 entries" step many
times before reaching entries that needed to be voted on.  If users
are voting upon that many entries, you might want to get more than 30
entries at a time.

-peter

On Sep 6, 10:44 am, Ilya Klyuchnikov 
wrote:
> Hello. I tried to find a solution for my problem in appengine
> articles, appengine groups, but found nothing - seems that this
> question was not yet asked.
>
> This is a short description of use case (in python):
>
> There are posts in blog:
>
> class Entry(db.Model):
>     uid = db.IntegerProperty(required=True)
>     name = db.StringProperty(required=True)
>     msg = db.TextProperty()
>     posted = db.DateTimeProperty(auto_now_add=True)
>     tags = db.StringListProperty()
>
> Each post can be rated by a reader (1-10 points).
>
> class Vote(db.Model):
>     uid = db.IntegerProperty(required=True)
>     entry = db.ReferenceProperty(Entry, collection_name='votes')
>     points = db.IntegerProperty(required=True)
>     posted = db.DateTimeProperty(auto_now_add=True)
>     posted_date = db.DateProperty(auto_now_add=True)
>
> entry.uid - id of post author, vote.uid - id of voter
>
> There is a search by post name, post tags ... , ordering by posted
> date, rating, etc ... Of course, rating is calculated  using counter
> shards, etc ... - These parts are already implemented in a scalable
> manner.
>
> Now there is a new requirement:
>
> User should be able to apply a filter: "unvoted today" to all possible
> searches. All existing searches (roughly speaking) are implemented via
> queries to one entity (table) - Entry. Now, when a filter "unvoted
> today" is on, I need to exclude some results consulting vote table.
>
> Suppose that some original query in "pseudo - sql" was:
>
> SELECT * FROM Entry WHERE [filters1]  LIMIT 16
>
> Now, when a filter "unvoted today" is on this query (in "pseudo sql-
> gql") will be:
>
> SELECT * FROM Entry
> WHERE [filters1]
> AND __key__ NOT IN (SELECT entry.__key__ from Vote where uid = {uid}
> and posted_date = {today})
> LIMIT 16
>
> This is extremely inefficient and naive solution for me. There are
> hundreds of thousands of posts and millions votes.
>
> So a reformulated question is: there are data1 queried (in a fast and
> scalable manner, with pagination) from one table (entity) - Entry,
> there are data2 queried (in a fast and scalable manner) from another
> table (entity) - Vote.
>
> How to query (in a fast and scalable manner, with pagination) the
> difference (or you can say exclusion) data1 - data2? -
>
> Also this difference is unique to a certain reader, and there are
> thousands and thousands of readers.
>
> What is the best practice for solving this problem? - I am ready to
> use memcached and to re-develop almost everything to make this
> filtering scalable and fast.
>
> Thanks in advance.
>
> Ilya.
--~--~-~--~~~---~--~~
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: Dramatic increase in api cpu usage.

2009-09-08 Thread bFlood

I just ran a batch delete using the Task queue. It grabs the next 50
keys for a Kind and then calls db.delete(keys), so fairly simple
stuff. here's some example results in the log:

865ms 1032cpu_ms 952api_cpu_ms
1058ms 1040cpu_ms 952api_cpu_ms
947ms 49947cpu_ms 49869api_cpu_ms<--???
1425ms 1035cpu_ms 952api_cpu_ms
1674ms 41181cpu_ms 41094api_cpu_ms

any thoughts? something seems wrong to me

cheers
brian


On Sep 8, 8:56 am, bFlood  wrote:
> ok, I was able to check over my code again and even with rolling back
> small changes, the large CPU increases are still there. at this point,
> I have to agree with herbie's findings as well. It would be nice if
> Google could weigh in on this troubling issue
>
> cheers
> brian
>
> On Sep 8, 4:51 am, herbie <4whi...@o2.co.uk> wrote:
>
>
>
> > On Sep 8, 12:07 am, Stephen  wrote:
>
> > > OK, but because api_cpu_ms is 96% of the total, then cpu_ms is also
> > > almost 3x higher? The spike is showing up in the cpu_ms?
>
> > Yes in total the cpu_ms has gone up by nearly 3x too.
>
> > But as I understand it cpu_ms is the total cpu usage for the request
> > and api_cpu_ms is the cpu usage by GAE api calls.   So the difference
> > between the two is the cpu usage of my non api code. This difference
> > hasn’t increased because the code hasn’t changed.
>
> > But yes, the new high value for api_cpu_ms directly affects my quota
> > because it makes the vast majority of cpu_ms.  So we do pay for
> > api_cpu_ms !   So for example if Google makes a change to db.put()
> > (or any api call) so that it uses more cpu,   we will be billed for
> > more cpu usage even if our code hasn’t changed.
>
> > As my code/ indexes hasn’t changed and the api_cpu_ms  has shot up the
> > obvious conclusion is that an api/datastore  change has caused it?
>
> > But there may be another ‘good’ reason for it, which I can’t think
> > of,  but as I’m going to have to pay for the increase in api_cpu_ms,
> > I would really appreciate  it if someone at Google could help.
>
> > On Sep 8, 12:07 am, Stephen  wrote:
>
> > > On Sep 7, 8:57 pm, herbie <4whi...@o2.co.uk> wrote:
>
> > > > On Sep 7, 6:50 pm, Stephen  wrote:
>
> > > > > What about cpu_ms, is that also higher for requests which write to the
> > > > > data store?
>
> > > > No, not in relation to api_cpu_ms.  For the request that does the most
> > > > writing to the datastore api_cpu_ms accounts for 96% of the total
> > > > cpu_ms value!.  The so request handler does not much more than create
> > > > new entities in the datastore.
>
> > > OK, but because api_cpu_ms is 96% of the total, then cpu_ms is also
> > > almost 3x higher? The spike is showing up in the cpu_ms?
>
> > > cpu_ms is billed for, so if you have billing enabled you are being
> > > overcharged.
>
> > > You could try asking for a refund here:
>
> > >  http://code.google.com/support/bin/request.py?contact_type=AppEngineB...
--~--~-~--~~~---~--~~
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] Deleting class instance that has changed?

2009-09-08 Thread Mark

Hi,

I have a class I'm persisting to the data store, like:

  public class Farm {
  int mNumHorses;
  String mFarmDescription;
  }

I had to change the farm description variable from String to Text,
because sometimes it will go over 500 characters. Now the old
instances of Farm in the datastore can't be deleted using the
following:

Query q = pm.newQuery("SELECT FROM Farm WHERE mName == str1
parameters String str1");
List farms = (List)q.execute("ye olde farm");
for (int i = 0; i < farms.size(); i++) {
pm.deletePersistent(farms.get(i)); // exception here!
}

java.lang.ClassCastException: java.lang.String cannot be cast to
com.google.appengine.api.datastore.Text

so I'm wondering how we delete these types of dead data? I haven't
published to app engine yet, this is just on my local machine. I know
I could probably wipe it locally, but what do we do when we go live?

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] Re: Using Google App Engine to store users data from Android App.

2009-09-08 Thread Joshua Smith

If *all* you want to do is save data, you should look at Amazon S3.   
It's really easy to set up an account, do HTTP post, etc.

If you want to provide some more functionality than just saving data,  
then GAE might be a good choice.  Especially since you are backing up  
a lot of little data items.  GAE's big drawback for saving data right  
now is that it will not let you work with really big blobs.

-Joshua

On Sep 8, 2009, at 12:35 PM, Moto wrote:

>
> Would Google App Engine be a wise choice when it comes to using it for
> user data storage? on Android phones?
>
> I have an application that allows users to add links to their favorite
> list.  I want to back-up this list so that if a user changes phones
> they can get their favorite list right back up...  Also, in the future
> support my app on facebook and allows users to modify this information
> and allow my app to sync...
>
> Thanks in advance,
> -Moto!
>
> >


--~--~-~--~~~---~--~~
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: Infinite redirects when logging in to the AppEngine Website?

2009-09-08 Thread Jörg Battermann

Nick,

Thanks for the quick reply! And it worked :)

-J

On Sep 7, 1:27 pm, "Nick Johnson (Google)" 
wrote:
> Hi Jorg,
> You need to log in athttp://appengine.google.com/a/joergbattermann.com/
>
> -Nick Johnson
>
> On Sun, Sep 6, 2009 at 2:02 PM, Jörg Battermann 
> wrote:
>
>
>
>
>
>
>
> > Good afternoon,
>
> > I've been trying for a couple days now, but it's always the same: when
> > I go tohttp://appengine.google.comit asks for my google pw, which I
> > enter, I submit the data and then I am lost in an infinite loop of
> > redirects and the browser(s) freak out after a couple secs and stop
> > all requests. I've made a quick recording to show what I mean:
> >http://www.vimeo.com/6454162(still being encoded the next 5-10 mins
> > on vimeo)
>
> > Anyone else seeing this and/or can tell me what to do?
>
> > Cheers and thanks,
> > -J
>
> --
> Nick Johnson, Developer Programs Engineer, App Engine
--~--~-~--~~~---~--~~
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: Local datastore speed

2009-09-08 Thread Wooble

There are no throttles; the datastore is just incredibly inefficient,
as it's designed to mimic BigTable's features for testing purposes,
not to be a good database.  BDBdatastore might improve things a bit,
although the dev_appserver in general isn't exactly speedy.

> Are there any tricks to speeding up reads/writes to the local
> datastore?
>
> Are there any throttles installed in the SDK that cap the access rate?
>
> I have a quad core Mac Pro, and this seems rather slow accessing
> locally.
>
> 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] Re: Is there any open source project/ticket management app that can be deployed on App Engine?

2009-09-08 Thread Wooble

No out of the box solution is likely to include support for database
connections over HTTP, though, so this seems unlikely to be a solution
to the problem.

On Sep 8, 11:11 am, David  wrote:
> GAE apps can use SQL relational databases, if the relational database
> is available through a web service.  The database would be accessed
> through  the GAE urlfetcher library, or httplib, or urllib2.
>
> One such SQL web service is Rdbhost, atwww.rdbhost.com.
>
> David Keeney
>
> On Thu, Sep 3, 2009 at 8:38 AM, arpit wrote:
>
> > I have just started with GAE and one of the things I'd like to do is
> > deploy something like Trac or RedMine to track the project we are
> > working on. Unfortunately Trac doesnt work on GAE since it needs MySQL
> > or similar relational database. Is there any app for tracking projects/
> > ticket management for GAE?
>
> > thanks
> > -arpit
>
> --
> dkee...@travelbyroad.net
> Rdbhost -> SQL databases as a webservice [www.rdbhost.com]
--~--~-~--~~~---~--~~
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: 30 Max simultaneous requests (maxThreads)?

2009-09-08 Thread David Given

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Adligo wrote:
[...]
> I mentioned is stored as a Session Attribute.  I assume that the app
> engine must be
> keeping the Session in a location that can be accessed by all
> threads.

I'm afraid not!

The *only* mechanism for communicating between requests is, AFAIK (and
if I'm wrong someone please correct me), memcache or the datastore. Any
request may be hosted in any servlet on any JVM on any machine in any
datacentre in any continent, and you can't rely on any two requests
running in the same place. (Or on the moon in the Google moonbase, but
given the latency that would be unlikely.) AppEngine is perfectly
entitled to run your code anywhere it feels like, although it's probably
going to run it close to the data.

> Otherwise how
> could anyone maintain any sort or security on the server side (most
> Jaas HttpFilters I have seen store the Subject[User] as a Session
> Attribute, including 2 that I wrote by hand for custom requirements
> and Spring security) ?

AppEngine does implement servlet sessions, but it's just a wrapper
around the datastore --- it will automatically save your session objects
and reload them for you. I don't believe it's defined when this happens,
though, so you probably can't change properties in one session and rely
on being able to see them change in another in real time.

Personally, I find it easiest if I just forget everything I ever knew
about servlets and start again from scratch when dealing with AppEngine.
It's sufficiently strange not to be able to take anything for granted.
(People here are most likely already tired of my rants about not being
able to synchronise between threads...)

- --
┌─── dg@cowlark.com ─ http://www.cowlark.com ─
│
│ "People who think they know everything really annoy those of us who
│ know we don't." --- Bjarne Stroustrup
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFKprdKf9E0noFvlzgRAu3bAJ9/hEJSHlsaluusBljVRZyz/QF4HQCguPKw
2kt1/NVlqrU/T84idi6h11I=
=3mR2
-END PGP SIGNATURE-

--~--~-~--~~~---~--~~
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] App Engine Launcher throws an error in Windows 7

2009-09-08 Thread Lee, Duk (Genworth)
Hello,

 

I know this issue already logged as a bug, but does anyone know how to
resolve this issue? I do not want to download the missing dll off the
Web and stick it in somewhere. 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] Appgallery crashes submitting application

2009-09-08 Thread Yegor

I tried to submit my application to appgallery.appspot.com, but got an
error:

Traceback (most recent call last):
  File "/base/python_lib/versions/1/google/appengine/ext/webapp/
__init__.py", line 509, in __call__
handler.post(*groups)
  File "/base/data/home/apps/appgallery/4.334739705818289199/
appgallery.py", line 236, in post
result = urlfetch.fetch(fetch_url)
  File "/base/python_lib/versions/1/google/appengine/api/urlfetch.py",
line 241, in fetch
return rpc.get_result()
  File "/base/python_lib/versions/1/google/appengine/api/
apiproxy_stub_map.py", line 458, in get_result
return self.__get_result_hook(self)
  File "/base/python_lib/versions/1/google/appengine/api/urlfetch.py",
line 325, in _get_fetch_result
raise DownloadError(str(err))
DownloadError: ApplicationError: 2

--~--~-~--~~~---~--~~
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] Error: Server Error

2009-09-08 Thread hoang

Hi all,
I got this message when accessing the homepage of my project from the
appspot.com website. But it works fine locally, I wonder if there is
any problem on the server?

Error: Server Error

The server encountered an error and could not complete your request.
If the problem persists, please report your problem and mention this
error message and the query that caused it.


--~--~-~--~~~---~--~~
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] What happened to Python-REST ?

2009-09-08 Thread another_sam

From
http://groups.google.com/group/google-appengine/web/google-app-engine-open-source-projects
seems that "Python-REST" project does not exist anymore.

Python-REST
Description:  RESTful Web Service Library for Google Appengine
URL: http://code.google.com/p/python-rest/
License: Apache License 2.0
Contact: http://groups.google.com/group/python-rest-users

Anybody knows something? Any clue?

(Maybe its features have been integrated into App Engine? I've been
several months "out".)

--~--~-~--~~~---~--~~
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: Upgrade from 1.2.4 to 1.2.5 fails on windows XP

2009-09-08 Thread Matthew Blain

Thanks for the report, we are investigating.
As a workaround, you can download the SDK as a Zip file (the "Linux/
Other Platforms" link on the http://code.google.com/appengine/downloads.html
page) and uncompress it yourself. The Windows installer contains the
same files, plus the new (as of 1.2.5) Launcher.

--Matthew

On Sep 6, 9:06 am, Dmitriy  wrote:
> Hi!
> try this 
> solution:http://www.add-in-express.com/creating-addins-blog/2007/11/12/windows...
> I had the same problem.
> Deleting that key helps to solve 2908 problem.
--~--~-~--~~~---~--~~
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: Server error without any log

2009-09-08 Thread bbayer

For last 3 hours server response was horrible. All requests are taking
too long and finally DeadlineExceedError occurs. Also I saw lots of
ViewDoesNotExist error related with importing modules. Is there any
chance to fix it. If Django has drawback I will port my app to webapp
or another lightweight framework. (I am using Django version that
already installed on GAE server.)

On 8 Eylül, 15:42, bbayer  wrote:
> Sometimes Google App Engine displays an error page. I think it is not
> related with my application.
>
> It says
> Error: Server Error
> The server encountered an error and could not complete your request.
>
> If the problem persists, please report your problem and mention this
> error message and the query that caused it.
>
> Even report link redirects to App Engine home which it doesnt have any
> support related things.
>
> Also sometimes django gives strange DeadlineExceeded error on random
> places like on import statements of core django modules. I could see
> ViewDoesntExist error which was caused by core modules for example
>
> : Could not import
> views. Error was: cannot import name signals
> Traceback (most recent call last):
>   File "/base/data/home/apps/trendybing/1.336175352323073178/
> django_bootstrap.py", line 68, in 
>     main()
>   File "/base/data/home/apps/trendybing/1.336175352323073178/
> django_bootstrap.py", line 65, in main
>     util.run_wsgi_app(application)
>   File "/base/python_lib/versions/1/google/appengine/ext/webapp/
> util.py", line 76, in run_wsgi_app
>     result = application(env, _start_response)
>   File "/base/python_lib/versions/third_party/django-1.0/django/core/
> handlers/wsgi.py", line 239, in __call__
>     response = self.get_response(request)
>   File "/base/python_lib/versions/third_party/django-1.0/django/core/
> handlers/base.py", line 128, in get_response
>     return self.handle_uncaught_exception(request, resolver, exc_info)
>   File "/base/python_lib/versions/third_party/django-1.0/django/core/
> handlers/base.py", line 160, in handle_uncaught_exception
>     return callback(request, **param_dict)
>   File "/base/python_lib/versions/third_party/django-1.0/django/views/
> defaults.py", line 24, in server_error
>     return http.HttpResponseServerError(t.render(Context({})))
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/__init__.py", line 176, in render
>     return self.nodelist.render(context)
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/__init__.py", line 768, in render
>     bits.append(self.render_node(node, context))
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/__init__.py", line 781, in render_node
>     return node.render(context)
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/loader_tags.py", line 97, in render
>     return compiled_parent.render(context)
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/__init__.py", line 176, in render
>     return self.nodelist.render(context)
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/__init__.py", line 768, in render
>     bits.append(self.render_node(node, context))
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/__init__.py", line 781, in render_node
>     return node.render(context)
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/loader_tags.py", line 24, in render
>     result = self.nodelist.render(context)
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/__init__.py", line 768, in render
>     bits.append(self.render_node(node, context))
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/__init__.py", line 781, in render_node
>     return node.render(context)
>   File "/base/python_lib/versions/third_party/django-1.0/django/
> template/defaulttags.py", line 373, in render
>     url = reverse(self.view_name, args=args, kwargs=kwargs)
>   File "/base/python_lib/versions/third_party/django-1.0/django/core/
> urlresolvers.py", line 254, in reverse
>     *args, **kwargs)))
>   File "/base/python_lib/versions/third_party/django-1.0/django/core/
> urlresolvers.py", line 227, in reverse
>     possibilities = self.reverse_dict.getlist(lookup_view)
>   File "/base/python_lib/versions/third_party/django-1.0/django/core/
> urlresolvers.py", line 169, in _get_reverse_dict
>     self._reverse_dict.appendlist(pattern.callback, (bits, p_pattern))
>   File "/base/python_lib/versions/third_party/django-1.0/django/core/
> urlresolvers.py", line 133, in _get_callback
>     raise ViewDoesNotExist, "Could not import %s. Error was: %s" %
> (mod_name, str(e))
>
> It seems it couldn't import signal module. I think this kind of things
> is result of module caching mechanism of python itself. I am sure
> Google engineers try to find efficient way to minimize startup time of
> application it self. But if you try to b

[google-appengine] Re: Performance of site seems much slower after maintenance - startup is measuarably slower.

2009-09-08 Thread Filipe Pinto

As the community grows, I think we need to start thinking about a
BENCHMARK AUTHORITY.

I was impacted also because, while doing a demo yesterday, my app was
taking considerable more time to respond.

Snags will happen.  What I suggest is that we as a whole (users and
provider - Google) work towards building a standard (benchmark), that
allows us to diagnose whether our perceptions (real or not) are valid.

Like stock indexes, we could form representative "index of
applications", that together establish an authoritative benchmark.
Call it "Google AppIndex".

We users of Google, by looking of how the "Google AppIndex" is
behaving could infer whether the problem was from Google or from our
application.

We are in this together :-)

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] Authentication

2009-09-08 Thread woola

Has anyone used Google App Engine to make a simple authentication for
Google Apps users?

My group uses google apps, and I just want their same logins to be
able to function for outside of google apps password checks. It seems
this would be simple in Google App Engine -- anyone have anything?

--~--~-~--~~~---~--~~
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] HELP! 500!! circle redirects!!! Can't use appengine account!!!

2009-09-08 Thread ai_...@live.ru

Some one could help me? After i reinstall OS  I can't enter to google
AppEngine! I can enter to my google account but could not enter to
Google App Engine...

I can't enter alredy 2 weeks! o__O

IE downloadin and downloading and don't sop at all!!!
FF tell me thet there is "circle redirects"
Chrome tell me that theres an error in certificate...

BTW i can't even upload apps from console.. it tels me that
"u have no RIGHTS to edit app"!!!

WTF is going one??? Some one PLZ HELP

PS: my account is not deleted... my tested app is still alwalible
http://www.almazdanceclub.appspot.com/

--~--~-~--~~~---~--~~
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] Regarding termination of processes in eclipse

2009-09-08 Thread anu

Hi  I just want to know the step by step approach of terminating  the
processes in Eclipse debug window in googleappenginesdk applications
with java .Actually iam having a previous instance of dev webserver is
still runnning,So i want to terminate it .Please tell me how can i do
it

--~--~-~--~~~---~--~~
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: Upgrade from 1.2.4 to 1.2.5 fails on windows XP

2009-09-08 Thread Dmitriy

Hi!
try this solution: 
http://www.add-in-express.com/creating-addins-blog/2007/11/12/windows-installer-error-2908/
I had the same problem.
Deleting that key helps to solve 2908 problem.

--~--~-~--~~~---~--~~
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] Memcache pattern

2009-09-08 Thread (jpgerek)

Hi, I'm new with python and I having problems to implement the typical
memcache pattern.

I wan't to make a decorator of the most common memcache pattern so I
don't have to implement the logic everytime. My intention is having a
function that receives the key to get and a callback with the
datastore gets, in case the memcache key expires, it's evicted or
whatever.

This is what I have now:

class MC():
@staticmethod
def get( key, get_data_callback ):
data_set = memcache.get( key )
if data_set == None:
data_set = get_data_callback()
memcache.set( key, data_set )
return data_set

I'm having problems with the callback when some params are required.
For instance:

class DB():
@staticmethod
def get_user( id ):
  return User().all().filter('id =', id').fetch(1)

def get_user( id ):
return MC.get( key, lambda id: DB.get_user( id ) )

The error I get when I call 'get_user(1)' is something like:

TypeError: () takes exactly 1 argument (0 given)

Though it works in this case:

def get_user_one():
 return User().all().filter('id = 1').fetch(1)

It seems to be something with the params, they are lost, could it be
solved with closures? other approach?

--~--~-~--~~~---~--~~
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] SMS Account Verification

2009-09-08 Thread MarkC

"The phone number has been sent too many messages or has already been
used to confirm an account"

Is there any way around this issue? I used my own mobile number for a
project on behalf of my prior employer, now I want to develop my own
app and I can't get past the above... Help please.

--~--~-~--~~~---~--~~
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] DB design question: one-to-many and "NOT IN"

2009-09-08 Thread Ilya Klyuchnikov

Hello. I tried to find a solution for my problem in appengine
articles, appengine groups, but found nothing - seems that this
question was not yet asked.

This is a short description of use case (in python):

There are posts in blog:

class Entry(db.Model):
uid = db.IntegerProperty(required=True)
name = db.StringProperty(required=True)
msg = db.TextProperty()
posted = db.DateTimeProperty(auto_now_add=True)
tags = db.StringListProperty()

Each post can be rated by a reader (1-10 points).

class Vote(db.Model):
uid = db.IntegerProperty(required=True)
entry = db.ReferenceProperty(Entry, collection_name='votes')
points = db.IntegerProperty(required=True)
posted = db.DateTimeProperty(auto_now_add=True)
posted_date = db.DateProperty(auto_now_add=True)

entry.uid - id of post author, vote.uid - id of voter

There is a search by post name, post tags ... , ordering by posted
date, rating, etc ... Of course, rating is calculated  using counter
shards, etc ... - These parts are already implemented in a scalable
manner.

Now there is a new requirement:

User should be able to apply a filter: "unvoted today" to all possible
searches. All existing searches (roughly speaking) are implemented via
queries to one entity (table) - Entry. Now, when a filter "unvoted
today" is on, I need to exclude some results consulting vote table.

Suppose that some original query in "pseudo - sql" was:

SELECT * FROM Entry WHERE [filters1]  LIMIT 16

Now, when a filter "unvoted today" is on this query (in "pseudo sql-
gql") will be:

SELECT * FROM Entry
WHERE [filters1]
AND __key__ NOT IN (SELECT entry.__key__ from Vote where uid = {uid}
and posted_date = {today})
LIMIT 16

This is extremely inefficient and naive solution for me. There are
hundreds of thousands of posts and millions votes.

So a reformulated question is: there are data1 queried (in a fast and
scalable manner, with pagination) from one table (entity) - Entry,
there are data2 queried (in a fast and scalable manner) from another
table (entity) - Vote.

How to query (in a fast and scalable manner, with pagination) the
difference (or you can say exclusion) data1 - data2? -

Also this difference is unique to a certain reader, and there are
thousands and thousands of readers.

What is the best practice for solving this problem? - I am ready to
use memcached and to re-develop almost everything to make this
filtering scalable and fast.

Thanks in advance.

Ilya.

--~--~-~--~~~---~--~~
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] Need to Upload a HUGE number of map tiles to App Engine!

2009-09-08 Thread MaryOne

Hi, over the years I have created about 950,000 custom map tiles,
mostly 256 x 256 jpg's or png's, which I would like to move from my
current MS 2008 IIS server to App Engine. It was a challenge to use
FTP in the past, used to make a ZIP then upload, then unZIP.

The size is about 7 GB. I have root access to my server.

I came across this article:

http://www.armangal.com/10-Easy-Steps-to-use-Google-App-Engine-as-your-own-CDN

Is this the best solution?

Any other ideas?

You can see the nice maps these tiles serve at http://cret.ca

With all the improvements to Google Maps/Earth. Most of this work is
out of date and redundant, but would still like to keep it around.

--~--~-~--~~~---~--~~
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] Regarding change of port number

2009-09-08 Thread anu

Hi
Actually  the default port that is used by the SDK bundled  webserver
(port 8080) is in use by another application
in my particular ecclipse ide environment,So how can i  use a
different port.Please provide me with solution by means of step by
step approach.

--~--~-~--~~~---~--~~
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] testing persistence with one to many relashionship

2009-09-08 Thread arussel

Hi all,

  I am trying to test a simple class:
Foo {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
}

When I make the call:
pm.makePersistent(foo);
as expected, the id is set by the datastore, and foo.getId() return a
key.
If I add a field:

@Persistent
private List children;
and do the same call, then the returned id is null. I can see in the
datastore manager that the value:
___entity_write_delayed___ is set, but it seems that the write never
happens.

I tried with and without transaction and different value for the
properties passed to JDOHelper.getPersistenceManagerFactory
(newProperties) but without success. Do I do anything wrong ? does
someone has an example of one to many relationship working in test ?

alex

--~--~-~--~~~---~--~~
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] Regarding developer guides

2009-09-08 Thread anu

HI I was new to google appengine application development ,so i want
some developer guides which guide me through

various sample applications developed using googleappengine with java
using  eclipse  IDE Environment.So provide me with developer guides.

--~--~-~--~~~---~--~~
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] regarding error in google appengine sdk with java using eclipse

2009-09-08 Thread anu

 hi i have created a basic application in google appengine sdk  with
java using eclipse,but when iam debugging the application iam getting
the following error

7 Sep, 2009 10:52:24 AM com.google.apphosting.utils.jetty.JettyLogger
warn
WARNING: failed selectchannelconnec...@127.0.0.1:8081
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind
(ServerSocketChannelImpl.java:119)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
at org.mortbay.jetty.nio.SelectChannelConnector.open
(SelectChannelConnector.java:211)
at org.mortbay.jetty.nio.SelectChannelConnector.doStart
(SelectChannelConnector.java:309)
at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:40)
at org.mortbay.jetty.Server.doStart(Server.java:228)
at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:40)
at
com.google.appengine.tools.development.JettyContainerService.startContainer
(JettyContainerService.java:152)
at
com.google.appengine.tools.development.AbstractContainerService.startup
(AbstractContainerService.java:116)
at com.google.appengine.tools.development.DevAppServerImpl.start
(DevAppServerImpl.java:218)
at com.google.appengine.tools.development.DevAppServerMain
$StartAction.apply(DevAppServerMain.java:162)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs
(Parser.java:48)
at com.google.appengine.tools.development.DevAppServerMain.
(DevAppServerMain.java:113)
at com.google.appengine.tools.development.DevAppServerMain.main
(DevAppServerMain.java:89)
7 Sep, 2009 10:52:24 AM com.google.apphosting.utils.jetty.JettyLogger
warn
WARNING: failed ser...@131de9b
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind
(ServerSocketChannelImpl.java:119)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
at org.mortbay.jetty.nio.SelectChannelConnector.open
(SelectChannelConnector.java:211)
at org.mortbay.jetty.nio.SelectChannelConnector.doStart
(SelectChannelConnector.java:309)
at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:40)
at org.mortbay.jetty.Server.doStart(Server.java:228)
at org.mortbay.component.AbstractLifeCycle.start
(AbstractLifeCycle.java:40)
at
com.google.appengine.tools.development.JettyContainerService.startContainer
(JettyContainerService.java:152)
at
com.google.appengine.tools.development.AbstractContainerService.startup
(AbstractContainerService.java:116)
at com.google.appengine.tools.development.DevAppServerImpl.start
(DevAppServerImpl.java:218)
at com.google.appengine.tools.development.DevAppServerMain
$StartAction.apply(DevAppServerMain.java:162)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs
(Parser.java:48)
at com.google.appengine.tools.development.DevAppServerMain.
(DevAppServerMain.java:113)
at com.google.appengine.tools.development.DevAppServerMain.main
(DevAppServerMain.java:89)


Could not open the requested socket: Address already in use: bind
Try overriding --address and/or --port.



So please provide me with solution to rectify this error and also iam
not able to see the code for index,.html in eclipse ide, So please
help me with solution

--~--~-~--~~~---~--~~
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] data viewer couldn't retrieve list of Kinds

2009-09-08 Thread kostmo

When I click on the Data Viewer in the "production" console, I keep
getting the message "Oops! We couldn't retrieve your list of Kinds."
This has happened often, for extended periods, over the past several
days while I'm trying to bulk upload/delete.  What specific conditions
would cause this error, and how can it be avoided?  It makes debugging
difficult when the datastore cannot be examined.

When I enter a GQL query in the box below the error message, I get no
results for Kinds that I would expect to be in the datastore.

--~--~-~--~~~---~--~~
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: Flatpages do not work in django app engine patch

2009-09-08 Thread tyoc

Thanks for the reference! I need to a group for talk (I can get the
sample app running :S in ubuntu 9.04, and want to know why).

On 6 sep, 09:31, Rodrigo Moraes  wrote:
> On Sun, Sep 6, 2009 at 10:37 AM, Andrius wrote:
> > I cannot get Django Flatpages on app-engine-patch to work on my site.
> > I am getting 404 page not exists error. I have done all the need
> > configuration:
>
> I don't want to sound rude, but isn't it better to post this kind of
> question in the specific group?
>
> http://groups.google.com/group/app-engine-patch
>
> -- rodrigo

--~--~-~--~~~---~--~~
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] Error on update. Ask for email 3 times and then... 401 authentication error

2009-09-08 Thread Lecter23

Hi.

This is the log of the update:

Initiating update.
Email: x...@gmail.com
Password for x...@gmail.com:
Saving authentication cookies to C:\Documents and Settings
\Administrador/.appcfg_cookies
Email: x...@gmail.com
Password for x...@gmail.com:
Saving authentication cookies to C:\Documents and Settings
\Administrador/.appcfg_cookies
Email: x...@gmail.com
Password for x...@gmail.com:
Saving authentication cookies to C:\Documents and Settings
\Administrador/.appcfg_cookies
2009-10-08 19:25:20,671 ERROR appcfg.py:1334 An unexpected error
occurred. Aborting.
Error 401: --- begin server output ---
Must authenticate first.
--- end server output ---


The login credentials are ok, and after the password and after saving
the cookies, it ask for email once again.

Any idea?

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] XMPP and flash

2009-09-08 Thread Backpack

Any ideas on how to connect to XMPP using a flash socket?

In other words, just a command line where I can send messages to my
app via HTML, no need for chat, rooms, buddies, flex, widgets, etc,
just a textbox and a send button.

I already did it using Google Talk, so my app connects ok.

Something like:

xmpp = XMPPSocketConnect("talk.google.com",5222)
xmpp.send("hello server, or whatever goes here")

then using ExternalInterface.call attach flash events to javascript
events

If you got the idea, I'd appreciate all the help you can provide. If
not, ask and I'll try to make it clearer.

--~--~-~--~~~---~--~~
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: Can't login with PSP browser.

2009-09-08 Thread OvermindDL1

On Sun, Sep 6, 2009 at 11:41 PM, Brandon N. Wirtz wrote:
>
> You should ask Sony it's a them problem not a Goog Problem.
>
> -Original Message-
> From: google-appengine@googlegroups.com
> [mailto:google-appeng...@googlegroups.com] On Behalf Of heroboy
> Sent: Sunday, September 06, 2009 9:18 PM
> To: Google App Engine
> Subject: [google-appengine] Can't login with PSP browser.
>
>
> I use my playstation portable browser.
> I clicked "login" in my page,and it went to google login page,I filled
> username and password,and clicked "Sign in".Then location became
> "http://www.google.com/accounts/'http://psp-music.appspot.com/_ah/
> login?continue=http://psp-music.appspot.com/
> &auth=X",and show "The page you requested is invalid."
> My appspot is http://psp-music.appspot.com/ , I tried another
> site:http://shell.appspot.com,and the problem is same.
> Can you fix it?

For note, my phone's web browser (Opera Mobile and IE Mobile) both
work fine on appspot programs.  If a phone's web browser works, and
the PSP's does not, sounds like the PSP needs an update, if the web
browser on your PSP up-to-date?

--~--~-~--~~~---~--~~
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] xmpp.parseMessage(request) has a problem with non-latin characters?

2009-09-08 Thread Artem Kuroptev

I have created a simple echo xmpp chat bot at gaechat...@appspot.com.
It works fine for latin characters and I get blank squareы for non-
latin. Ihave tried to use
request.setCharacterEncoding("utf-8");
as a first call at doPost, but that doesn't work.
I guess XMPPService.parseMessage method do not takes into account the
encoding of POST request. Probably it is possible to parse post
request by myself (without XMPPService) and to brute force the
character encoding used by requester in Google backed. But if there is
a better way?

--~--~-~--~~~---~--~~
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] Struct, Spring

2009-09-08 Thread Dasan77

Hello,

Is it possible to use Struct or Spring framework in GAE. Can I use
Oracle for datastore?

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] I cannot get SMS verification messages again.

2009-09-08 Thread Richie.Yan

[you have sent too many SMS verification messages.]

For some reason, I try it before. I used my friends mobile, but the
code is too late to send to me. I miss the time for register the
appengine. So now i allways get the message[you have sent too many SMS
verification messages].

Could you help me?

--~--~-~--~~~---~--~~
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: XMPP Quotas/Limits and Billing

2009-09-08 Thread OvermindDL1

On Sat, Sep 5, 2009 at 10:51 AM, medecau wrote:
>
>
>
> On Sep 5, 1:40 pm, David Symonds  wrote:
>> On Sat, Sep 5, 2009 at 7:12 PM, medecau wrote:
>> > Having said that I believe that 50ms per incoming message is too much.
>> > I would assume it takes Google less than 50ms to process an XMPP
>> > message and deliver it to an app.
>>
>> There's a lot of work required to bridge two protocols, and an XMPP
>> message has to traverse that bridge as well as be processed by both
>> sides. Wall time is not the same as CPU time.
>>
>> Dave.
>
> I understand there might be some work to bridge between XMPP and a GAE
> instance but splashing every request with a 50ms overhead seems too
> much for me.
> XMPP's 50ms are CPU time and my observation is made based only on CPU
> time (including APIs CPU use), never total time of request.
>
> Also I made this post because XMPP was just release and I felt the
> need to express my opinion on this matter, I never expected XMPP API
> to be made available without going through the lab.

For note, on an XMPP server I run at my work, we can serve well over
500 requests a second without it exceeding 3% cpu usage an old P4, so
yea, I really doubt it takes 50ms.  Using a customized xml decoder for
it gave the largest speed boost by far, it can parse over 560 thousand
a second for xmpp chat messages (that includes conversion to
int/float/string/etc..., this is in C++ though).

--~--~-~--~~~---~--~~
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] export/import

2009-09-08 Thread robinhook

hi this robinhook,
 i want to know to export mysql tables data to google bigtable
is this facility is availible to google java sdk ?


--~--~-~--~~~---~--~~
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] Probelm with PageQuery class from Cookbook

2009-09-08 Thread Mohamed

Hello all,

I posted this as comment, but wanted to share it here, in case no one
reads the comments there... hoping for some help.
The class is at: 
http://appengine-cookbook.appspot.com/recipe/efficient-paging-for-any-query-and-any-model

Thanks a lot.
Mohamed.


Did some testing about paging through more than the fetch limit of
1000, and found that it works fine if the query had no "order" set.
When I add an order, it yields weird results... it just keeps
returning more and more pages, way beyond the actual total number of
records I have created, with is 2000. Please see bellow. could anyone
help me fix this? is it fixable?
Thanks a lot.

>>>Model.count_all()

2000

>>>q=PagerQuery(Model);next=None

>>>prev, results, next = q.fetch(900, 
>>>next);(len(results),results[0].name,results[-1].name,next,prev)

(900, u'name_1', u'name_900', 'Xz0xNiZf...', None)

>>>prev, results, next = q.fetch(900, 
>>>next);(len(results),results[0].name,results[-1].name,next,prev)

(900, u'name_901', u'name_1800', 'Xz0xNiZfX2...', '-Xz0xNiZf...')

>>>prev, results, next = q.fetch(900, 
>>>next);(len(results),results[0].name,results[-1].name,next,prev)

(200, u'name_1801', u'name_2000', None, '-Xz0xNi...')

>>>q=PagerQuery(Model).order('name');next=None

>>>prev, results, next = q.fetch(900, 
>>>next);(len(results),results[0].name,results[-1].name,next,prev)

(900, u'name_1', u'name_1808', 'Xz0xNi...', None)

>>>prev, results, next = q.fetch(900, 
>>>next);(len(results),results[0].name,results[-1].name,next,prev)

(900, u'name_1809', u'name_818', 'Xz0xNiZuY...', '-Xz0xNiZu...')

>>>prev, results, next = q.fetch(900, 
>>>next);(len(results),results[0].name,results[-1].name,next,prev)

(900, u'name_819', u'name_1718', 'Xz0xN...', '-Xz0xN...')

>>>prev, results, next = q.fetch(900, 
>>>next);(len(results),results[0].name,results[-1].name,next,prev)

(900, u'name_1719', u'name_728', 'Xz0x...', '-Xz0xN...')

--~--~-~--~~~---~--~~
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] Using Google App Engine to store users data from Android App.

2009-09-08 Thread Moto

Would Google App Engine be a wise choice when it comes to using it for
user data storage? on Android phones?

I have an application that allows users to add links to their favorite
list.  I want to back-up this list so that if a user changes phones
they can get their favorite list right back up...  Also, in the future
support my app on facebook and allows users to modify this information
and allow my app to sync...

Thanks in advance,
-Moto!

--~--~-~--~~~---~--~~
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: Security settings of XMPP

2009-09-08 Thread Backpack

I am working on something similar, using a flash socket to connect to
XMPP using the XIFF library.

Haven't tested it yet, if anybody has more luck let us know.

I wish WebSockets were already available with an XMPP implementation
for easier web client updates.

Until then, hack after hack...

On Sep 8, 10:22 am, Peter Svensson  wrote:
> I'm not making a chat, but it works similar.The functionality I want is for
> x number of web/JS based clients to get a server push update without
> continuous polling. But this is really hard on App Engine, since it more or
> less depends on having sockets which are not closed after 30s :)
> So I'll redesign around another platform for now.
>
> Thanks!
>
> Cheers,
> PS
>
> On Tue, Sep 8, 2009 at 3:28 PM, David Symonds  wrote:
>
> > On Tue, Sep 8, 2009 at 8:35 PM, Peter Svensson wrote:
>
> > > My use case is similar to a web-based chat, where x clients written in
> > > JavaScript receive updates from the App Engine server using XMPP over
> > BOSH
> > > or similar Comet mechanism.  And yes, I can of course use existing Comet
> > > implementations, but I saw it as a nice way to use XMPP.
>
> > Why would you want to use XMPP for a web-based chat with JavaScript?
> > HTTP works fine, doesn't it?
>
> > Dave.

--~--~-~--~~~---~--~~
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] is it right to write a web app and dig out user's deleted information ?

2009-09-08 Thread ty

is it right to write a web app and dig out user's deleted
information ?

http://toomorechiang.appspot.com/

you can type in someone's username , and his/her picture from past
will all come out , even those pictures user thought they already
deleted!

this guy use plurk's bug(?) to dig out user's deleted pictures from
server database , i have no idea why plurk keeps these old pictures
which user already decided to delete ?

i just want to ask your opinion , is it right to use skill advantage
to repost deleted pictures , many people already told the developer to
shut down the website "temporary" until plurk's offical reply
regarding about this case . but this guy say " i don't know how to
delete google web app "

people who know how to read chinese can read this discussion for more
detail.
http://www.plurk.com/p/1tyvec


--~--~-~--~~~---~--~~
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] Chat Time transcript for September 2, 2009

2009-09-08 Thread Jason (Google)

Last Wednesday, the App Engine team hosted the latest session of its
bimonthly IRC office hours. A transcript of the session and a summary
of the topics covered is provided below. The next session will take
place on Wednesday, September 16th from 9:00-10:00 a.m. PDT in the
#appengine channel on irc.freenode.net.

--SUMMARY---
- Q: Where can I find information on per-minute and daily quotas,
maximum number of simultaneous requests, etc.? A: The Quotas doc at
http://code.google.com/appengine/docs/quotas.html lists most per-
minute and daily quotas. Task queue quotas and limits are listed in
http://code.google.com/appengine/docs/python/taskqueue/overview.html#Quotas_and_Limits.
You can also check the Quota Details page in the Admin Console to see
quota information for a particular application.  [7:01, 7:03]

- JSF 2.0, ICEFaces 1.8.1 compatibility with App Engine -- several
developers have written posts on using JSF 2.0 with App Engine (see
http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine),
but it appears that ICEFaces is not currently compatible.  [7:04-7:07,
7:11, 7:14-7:15, 7:42, 7:56]

- Tip: one way to optimize your application, especially when you're
working with large entities (i.e. entities with large BLOB properties)
is to create separate entities, placing the BLOB data in its own
entity and referencing this from the original entity. This way,
retrieving the entity doesn't necessarily pull down the large BLOBs,
although they're available should you need them later -- think of a
listing of file metadata (i.e. name, size, hash) where the actual file
is only loaded when the user clicks on a particular filename. [7:19,
7:21]

- http://code.google.com/p/googleappengine/issues/detail?id=1444
strikes again -- (Java) deployment fails because of a vague "more than
100 URLMap entries in application configuration" error. We'll work on
trying to reproduce this internally, but if you're seeing this, please
create a new thread in the group with the contents of your web.xml and
appengine-web.xml file and the number of JSPs and static files your
application includes. [7:22, 7:26, 7:28, 7:36-7:38, 7:41]

- Q: Is there support for HTTPS on custom domains? A: We're waiting on
broader support for SNI before we implement this. [7:26, 7:28, 7:30]

- If your application experiences a denial of service attack, your
application may stop serving if requests come in at 500 qps or above,
the request limit for applications with billing enabled. Currently,
you can filter requests by IP address if an attacker is primarily
using one or several machines. The team is planning a better API for
dealing with potential attacks, but unfortunately it wasn't
prioritized highly enough to make it on the latest roadmap. [7:35,
7:40, 7:49]


--FULL TRANSCRIPT---
[7:00pm] Jason_Google: Welcome Everyone! I'll be here for the next
hour or so to answer any App Engine questions, so don't hold back.
[7:00pm] joakime:
[7:01pm] kaminoo: First time for me here, do we just fire off our
questions?
[7:01pm] Jason_Google: Yep, fire away.
[7:01pm] kaminoo: Wanted to ask about Task Queues
[7:01pm] joakime: Java - where can I find information about
Simultaneous Request limits and quota details?  i've been hitting it
recently. even tho i have a $20 budget set and less than 1%
utilization on all other quota constrained stuff.
[7:03pm] maxoizo: Hi Jason! Can google team update offline docs with
actual documentation? (last update May 8, 2009).
[7:03pm] kaminoo: Python: Task Queues. Me and some other guys have
posted a lot of bugs we have found in the queue system. My bugs in
particular have been more than a month there, not even acknowledge. Do
we bother keep testing it? Are we doing a good job at it? Will we have
an answer?
[7:03pm] Jason_Google: joakime: It looks like
http://code.google.com/appengine/docs/python/taskqueue/overview.html#Quotas_and_Limits
is the only thing that's available for now.
[7:03pm] Jason_Google: maxoizo: Thanks for the suggestion. I'll try to
do this for you soon, hopefully before the end of the week. Adding it
to my to-dos right now.
[7:04pm] maxoizo: 2Jason_Google: tnx!
[7:04pm] guest07: i used the dev server for java
[7:04pm] Jason_Google: kaminoo: Yes, please keep filing your bugs.
We're not doing the best job acknowledging them on the public tracker,
but we are tracking them internally.
[7:04pm] guest07: and it seems that appengine doesn't support jsf 1.2
[7:05pm] gae-peon: ?
[7:05pm] Jason_Google: guest07: Have you seen
http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?
[7:05pm] kaminoo: Jason_Google: Great to know. The feature is GREAT.
But unusable with the current problems. Plus, we had a lot of
suggestions to make it even better. Hopefully we'll see some updates
soon enough. tnx!
[7:06pm] Jason_Google: guest07: Which links to
https://sites.google.com/a/wilds

[google-appengine] Re: DeadlineExceededError Errors for 5% of all Requests Since 9-2 4AM

2009-09-08 Thread johnP

Just wanted to add my 2c that this is problem started affecting me on
the evening of 9/04.  I have received 7 such errors - all limited to a
group of users located in Israel - occurring on various pages.

To Summarize:
  +1 on 'New error for me too'.
  It seems to be concentrated geographically.
  It occurs on various pages - and often while loading modules.

johnP




On Sep 8, 9:31 am, bvelasquez  wrote:
> I received my first DeadlineExceeded after many responses taking 25
> seconds or more athttp://www.jacobsix.com(jacob-6)  These responses
> normally take 200-300ms to complete.  I'm sure there is a reasonable
> explanation for this behavior given the complexity of the Google
> network.  I just wish someone could provide me some insight on the
> reasons so I understand.  Maybe there is something that can be done
> further on my end.  All seems ok again now, responses taking 200-300ms
> again across the site.
>
> On Sep 6, 8:02 am, Koen Bok  wrote:
>
> > I'm glad you guys can back me up on this :-)
>
> > > I know that google is looking into this, but at what level I don't
> > > know.
>
> > How do you know? I mean, I would assume it but they're mostly pretty
> > open about errors and I haven't read anything official on this.
>
>
--~--~-~--~~~---~--~~
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: ♀♂@@@@@Nike dunk hig h shoes wholesale\retail

2009-09-08 Thread Brandon N. Wirtz

You have to give the guy credit, putting a spam mail on a Google List Serve 
with a link to make it really easy for them to delist you is bawlsy.   I may 
have to pick up a Rolex from them, Under $100 :-)  
http://www.ccshoe.com/views.asp?hw_id=38228


-Original Message-
From: google-appengine@googlegroups.com 
[mailto:google-appeng...@googlegroups.com] On Behalf Of 13 3
Sent: Tuesday, September 08, 2009 8:15 AM
To: Google App Engine
Subject: [google-appengine] ♀♂@Nike dunk high shoes wholesale\retail


♀♂@Nike dunk high shoes wholesale\retail

Our company mainly deal with the import and export of the brand sports
shoes, clothes, jewelry, bags , glasses, etc . Products such as Nike
Jordan sell well in America , Canada , as well as Europe and other
countries. Our objective is to supply products of first-class quality
and advanced technology. Customers satisfaction is our greatest
pursuit. We thank you for your attention and wish having a long time
business relationship with all buyers from all over the .
world
we take PAYPAL as the method of payment!
please kindly visite our website: http://www.ccshoe.com
msn: ccshoe2...@hotmail.com
email: wcl020...@gmail.com




--~--~-~--~~~---~--~~
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: Local datastore speed

2009-09-08 Thread GAEfan

Thanks, 63.  I have already been using 127.0.0.1, as I read it was
faster.  Hadn't really noticed any difference over localhost, though.
Have tested in Firefox, Safari, and all browsers in Windows.  No
difference in speed, as the processing time is done in Python, not in
the browser.  I need to find a way to speed up Python, or the
accessing of the datastore locally.

I'm installing Snow Leopard today.  Let's see if that helps.
--~--~-~--~~~---~--~~
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: 30 Max simultaneous requests (maxThreads)?

2009-09-08 Thread Adligo

Hi Nick,

   Please see below;

On Sep 4, 10:04 am, "Nick Johnson (Google)" 
wrote:
> Hi Adligo,
> App Engine is not really designed for 'long polling' setups like you
> describe. Since the number of simultaneous runtimes your app has at a given
> traffic level is limited, waiting like this will consume them all very
> quickly.
I understand this, which is why I was asking if you could pay for
more.
So can you?

> Also, because your app may be distributed over many computers, a
> synchronization primitive like the one you're using will not work - the
> process doing the notifying may not be on the same machine as the
> process(es) that need notifying!
Well this depends a little on Session management, the
ArrayBlockingQueue
I mentioned is stored as a Session Attribute.  I assume that the app
engine must be
keeping the Session in a location that can be accessed by all
threads.  Otherwise how
could anyone maintain any sort or security on the server side (most
Jaas HttpFilters I have seen store the Subject[User] as a Session
Attribute, including 2 that I wrote by hand for custom requirements
and Spring security) ?
Or in other words how does the app engine treat HttpSessions and their
attributes, in the normal J2EE way, or some other way?

Cheers,
Scott


> -Nick Johnson
>
>
>
>
>
> On Thu, Sep 3, 2009 at 9:06 PM, Adligo  wrote:
>
> > Hi Nick,
>
> >   I am not calling sleep but I am using a server side
> > ArrayBlockingQueue, with methods like
> > queue.poll(waitTime, TimeUnit.SECONDS);
> >  So I am not buffering but simply responding with current messages
> > and if there arn't any waiting until some show up and then
> > responding.  If no messages show up in 20 seconds or so I respond with
> > a empty message list and then the client sends a new request.
>
> > I am using GWT's rpc, here is my service api, which is open souce.
>
> >http://cvs.adligo.org/viewvc/gwt_util/src/org/adligo/gwt/util/client/...
>
> > So I am anticipateing that I will have a lot of threads that are
> > simply waiting on the ArrayBlockingQueue's poll method.  This allows
> > me to do things like;
> > 1) send log messages between two browser windows
> > 2) send system messages from a admin console to anyone viewing the app
> > like;
> >      (System is going off line in 10 minutes)
> >      (There is pizza in the lobby for anyone who wants it)
> >      exc
> > 3)  Implement a IM client in the browser
> > 4) Send 'event' data between browser windows so a user can click a
> > button in one window
> >     and have it do something to another window.   Currently the only
> > application of this is to
> >    reload the adligo_log.properties file, so you can change your log
> > levels at runtime.  However
> >    there are a lot of other applications for this, windows can now
> > communicate.
>
> > Also there shouldn't be much of a drain on the processor, since most
> > of the threads are simply waiting (not doing a lot of processing).  It
> > just requires a large number of threads (one per browser window).
>
> > Cheers,
> > Scott
>
> > PS I would really like to host on Google Apps, the server
> >http://zeuhl.adligo.com/gwt_util_demo_v3_1/GwtDemo.html?show_log=true
> > was down all morning, since I had my phone turned off to respect for a
> > concert last night I didn't get a 'your server is down' text from
> > hosttracker.com.
>
> > On Sep 3, 3:51 am, "Nick Johnson (Google)" 
> > wrote:
> > > Hi Adligo,
> > > The limit on concurrent instances of your app is not a hard one - it will
> > > increase as your app gets more traffic. The only situation you're likely
> > to
> > > run into it is if you have a lot of requests that take a long time to
> > > complete - eg, if you're calling time.sleep() in your request handler. As
> > > long as you're serving your requests reasonably efficiently, you can
> > expect
> > > the number of concurrent requests your app is allowed to scale up with
> > load.
>
> > > -Nick Johnson
>
> > > On Wed, Sep 2, 2009 at 1:33 AM, Adligo  wrote:
>
> > > > Hi,
>
> > > >   I am developing a app (or more than one) that I would like to host
> > > > on Google App Engine, however the architecture of the app involves
> > > > cranking up the maxThreads (I am using my home grown hosting which now
> > > > has Tomcat set to 2,000 maxThreads :) ).
>
> > > > For example (1 six+ year old machine in my basement)
> > > >http://zeuhl.adligo.com/gwt_util_demo_v3_1/GwtDemo.html?show_log=true
>
> > > > I was reading somewhere that my app will be limited to 30 Max
> > > > simultaneous requests (maxThreads), and I didn't see anything about
> > > > being able to change this (EVEN IF YOU PAY FOR IT).
>
> > > > So is it possible to change this?
> > > > If not why, it should be billable like everything else...
> > > > How much would it cost?
>
> > > > Also I think that it seems like a silly limit (although probably a
> > > > good starting point for most apps).   Some apps need a lot of threads,
> > > > some have a lot of page requests.
> > > >    For

[google-appengine] Re: Slow response static javascript files on development server

2009-09-08 Thread Devel63

If you don't want to turn off IPv6, referencing your local server via
http://127.0.0.1:8080 accomplishes the same thing.

On Sep 8, 8:57 am, Nick Winter  wrote:
> For Firefox, go to about:config and set network.dns.disableIPv6 to
> true. For some reason, localhost requests are mega slow with the IPv6
> on (not an App Engine thing).
--~--~-~--~~~---~--~~
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: Local datastore speed

2009-09-08 Thread Devel63

My local app was extremely slow when accessing via Firefox, fast when
accessing via IE.  I have no idea what caused the difference.

I just recently discovered that accessing the app via http://127.0.0.1:8080
(rather than http://localhost:8080) made all the difference, and now
FF is fast, too.  Would be nice if someone could explain why, but I'm
just happy to have things fast now.

Of course, all this is on Vista, and may not apply to you.

On Sep 8, 10:19 am, GAEfan  wrote:
> Are there any tricks to speeding up reads/writes to the local
> datastore?
>
> Are there any throttles installed in the SDK that cap the access rate?
>
> I have a quad core Mac Pro, and this seems rather slow accessing
> locally.
>
> 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] Troubling behavior in taskqueue

2009-09-08 Thread GAEfan

In a test app, I set up  emailing to be done offline in the Task
Queue.  Since the task queue requires a url, I gave the url an
encrypted name, to try to hide from spammers.

The next day, our test account received an email from None, subject
None, body None.

I doubt any spammer found the address (testapp.appspot.com/*&G*GD*G#$
%^&DA&*D&DA&AD*D).  So, the only thing I can think of is that
google spidered the page.

Can someone at Google please confirm?  Obviously, it is critical to
hide email scripts from spammers.  This particular function cannot be
set up as "admin only", as it is to run in the background.

How to hide from spiders, and not disclose to the world in a
robots.txt file?

ideas?

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] Local datastore speed

2009-09-08 Thread GAEfan

Are there any tricks to speeding up reads/writes to the local
datastore?

Are there any throttles installed in the SDK that cap the access rate?

I have a quad core Mac Pro, and this seems rather slow accessing
locally.

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] Re: DeadlineExceededError Errors for 5% of all Requests Since 9-2 4AM

2009-09-08 Thread bvelasquez

I received my first DeadlineExceeded after many responses taking 25
seconds or more at http://www.jacobsix.com (jacob-6)  These responses
normally take 200-300ms to complete.  I'm sure there is a reasonable
explanation for this behavior given the complexity of the Google
network.  I just wish someone could provide me some insight on the
reasons so I understand.  Maybe there is something that can be done
further on my end.  All seems ok again now, responses taking 200-300ms
again across the site.

On Sep 6, 8:02 am, Koen Bok  wrote:
> I'm glad you guys can back me up on this :-)
>
> > I know that google is looking into this, but at what level I don't
> > know.
>
> How do you know? I mean, I would assume it but they're mostly pretty
> open about errors and I haven't read anything official on this.
--~--~-~--~~~---~--~~
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: Slow response static javascript files on development server

2009-09-08 Thread Nick Winter

For Firefox, go to about:config and set network.dns.disableIPv6 to
true. For some reason, localhost requests are mega slow with the IPv6
on (not an App Engine thing).
--~--~-~--~~~---~--~~
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] ♀♂@@@@@Nike dunk hi gh shoes wholesale\retail

2009-09-08 Thread 13 3

♀♂@Nike dunk high shoes wholesale\retail

Our company mainly deal with the import and export of the brand sports
shoes, clothes, jewelry, bags , glasses, etc . Products such as Nike
Jordan sell well in America , Canada , as well as Europe and other
countries. Our objective is to supply products of first-class quality
and advanced technology. Customers satisfaction is our greatest
pursuit. We thank you for your attention and wish having a long time
business relationship with all buyers from all over the .
world
we take PAYPAL as the method of payment!
please kindly visite our website: http://www.ccshoe.com
msn: ccshoe2...@hotmail.com
email: wcl020...@gmail.com

--~--~-~--~~~---~--~~
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: Is there any open source project/ticket management app that can be deployed on App Engine?

2009-09-08 Thread David

GAE apps can use SQL relational databases, if the relational database
is available through a web service.  The database would be accessed
through  the GAE urlfetcher library, or httplib, or urllib2.

One such SQL web service is Rdbhost, at www.rdbhost.com.

David Keeney


On Thu, Sep 3, 2009 at 8:38 AM, arpit wrote:
>
> I have just started with GAE and one of the things I'd like to do is
> deploy something like Trac or RedMine to track the project we are
> working on. Unfortunately Trac doesnt work on GAE since it needs MySQL
> or similar relational database. Is there any app for tracking projects/
> ticket management for GAE?
>
> thanks
> -arpit
>
> >
>



-- 
dkee...@travelbyroad.net
Rdbhost -> SQL databases as a webservice [www.rdbhost.com]

--~--~-~--~~~---~--~~
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: Serving static files problem

2009-09-08 Thread bbayer

I have sold it. It seems there is no need to prior "./" . Because on
production server static data could reside in different place.

On Sep 2, 1:24 pm, "Nick Johnson (Google)" 
wrote:
> Hi bbayer,
> Have you checked the capitalization of your files and the places where you
> reference them? Windows is not case-sensitive, but App Engine is.
>
> -Nick Johnson
>
>
>
> On Tue, Sep 1, 2009 at 12:02 AM, bbayer  wrote:
>
> > Hello,
> > I have an application and it is working like a charm on a win32
> > machine with development server. The problem occurs when I uploaded it
> > to app engine. It seems it couldnt find my static folder contents. It
> > responds 404 when I am trying to get css files. Here it is app.yml
>
> > handlers:
>
> > - url: /media
> >  static_dir: ./media
>
> > - url: /favicon\.ico
> >  static_files: ./media/favicon.ico
> >  upload: ./media/favicon.ico
>
> > - url: /robots\.txt
> >  static_files: ./templates/robots.txt
> >  upload: ./templates/robots.txt
>
> > - url: /update
> >  login: admin
> >  script: django_bootstrap.py
>
> > - url: .*
> >  script: django_bootstrap.py
>
> > templates directory is django directory and there is nothing about it.
> > All problem is related with media folder. Any idea?
>
> --
> Nick Johnson, Developer Programs Engineer, App Engine
--~--~-~--~~~---~--~~
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: Security settings of XMPP

2009-09-08 Thread Peter Svensson
I'm not making a chat, but it works similar.The functionality I want is for
x number of web/JS based clients to get a server push update without
continuous polling. But this is really hard on App Engine, since it more or
less depends on having sockets which are not closed after 30s :)
So I'll redesign around another platform for now.

Thanks!

Cheers,
PS

On Tue, Sep 8, 2009 at 3:28 PM, David Symonds  wrote:

>
> On Tue, Sep 8, 2009 at 8:35 PM, Peter Svensson wrote:
>
> > My use case is similar to a web-based chat, where x clients written in
> > JavaScript receive updates from the App Engine server using XMPP over
> BOSH
> > or similar Comet mechanism.  And yes, I can of course use existing Comet
> > implementations, but I saw it as a nice way to use XMPP.
>
> Why would you want to use XMPP for a web-based chat with JavaScript?
> HTTP works fine, doesn't it?
>
>
> Dave.
>
> >
>

--~--~-~--~~~---~--~~
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] Templates file structure

2009-09-08 Thread macgillivary

Can I have a templates folder setup like:

/base.html
/admin/base_admin.html (which extends ../base.html)
/admin/payroll/base_payroll.html (which extends ../base_admin)
/admin/payroll/payperiod/form.html  (which extends ../base_payroll)

I've attempted to set it up like this, but seem to be getting some
issues with relativity. I've been finding that if I use
in /admin/base_admin.html
extends "../base.html", that will be fine for viewing base_admin
directly and everything works as expected, but if I subsequently use
the base_payroll template, I get a runtime error that ../base.html
cannot be found. I suspect its looking in /admin for a base.html which
obviously it will not find.

Is it generally a bad idea to nest folders like this for storing the
templates and instead stick with a single level folder with
descriptive names instead of folders?

/base.html
/admin_base.html
/admin_payroll_base.html
/admin_payroll_payperiod.html

I'm not using GAE with django, just the webapp, so not sure if I'm
missing something with respect to specifically setting a template
directory.
--~--~-~--~~~---~--~~
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: Amazon Product Advertising API - HTTP 503 (Throttle) Responses

2009-09-08 Thread dalenewman

I have the signature.  I got that in before the deadline and it's all
working as best as I can tell.

I'll have to think about where I can setup some kind of amazon proxy
service.

Thanks for you insight Brandon.

Dale

On Sep 4, 2:17 pm, "Brandon N. Wirtz"  wrote:
> Also Check that your requests include the "signature" required as of August
> 15th.
>
>
>
> -Original Message-
> From: google-appengine@googlegroups.com
>
> [mailto:google-appeng...@googlegroups.com] On Behalf Of Brandon N. Wirtz
> Sent: Friday, September 04, 2009 9:36 AM
> To: google-appengine@googlegroups.com
> Subject: [google-appengine] Re: Amazon Product Advertising API - HTTP 503
> (Throttle) Responses
>
> Yes you are sharing a few hundred IP's with a few Thousand Apps,  You will
> need a simple re-Fetch/recurl off site to do your requests.    Amazon's
> limit is about 10k requests per 24 hours, and there are people snarfing
> those up pretty quick.
>
> -Original Message-
> From: google-appengine@googlegroups.com
> [mailto:google-appeng...@googlegroups.com] On Behalf Of dalenewman
> Sent: Friday, September 04, 2009 8:38 AM
> To: Google App Engine
> Subject: [google-appengine] Amazon Product Advertising API - HTTP 503
> (Throttle) Responses
>
> Hi,
>
> I'm runningwww.bookdope.comon GAE and I've started getting tons of
> HTTP 503 responses from Amazon's Product Advertising API.  The HTTP
> 503 is an error response you get when you've violated the 1 request
> per second per IP address rule.
>
> I'm wondering if my application might be sharing an IP address with
> another GAE application that's making requests to the Amazon Product
> Advertising API and therefore increasing the likelihood of our
> combined requests violating the 1 request per second rule.
>
> I cache all my amazon responses (if they return a HTTP status code of
> 200) for efficiency and also to keep my Amazon requests down.
>
> I was wondering if anyone else out there is experiencing this?  Or, if
> someone from Google could confirm my suspicions.  This influx of HTTP
> 503's is really cramping my style - I rely on it for searching,
> browsing, and book information.
>
> Thanks,
>
> Dale
>
> PS: I've also posted on the Amazon Developer's forum for Product
> Advertising API to see if I can get any help there.
--~--~-~--~~~---~--~~
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: Security settings of XMPP

2009-09-08 Thread David Symonds

On Tue, Sep 8, 2009 at 8:35 PM, Peter Svensson wrote:

> My use case is similar to a web-based chat, where x clients written in
> JavaScript receive updates from the App Engine server using XMPP over BOSH
> or similar Comet mechanism.  And yes, I can of course use existing Comet
> implementations, but I saw it as a nice way to use XMPP.

Why would you want to use XMPP for a web-based chat with JavaScript?
HTTP works fine, doesn't it?


Dave.

--~--~-~--~~~---~--~~
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: Dramatic increase in api cpu usage.

2009-09-08 Thread bFlood

ok, I was able to check over my code again and even with rolling back
small changes, the large CPU increases are still there. at this point,
I have to agree with herbie's findings as well. It would be nice if
Google could weigh in on this troubling issue

cheers
brian


On Sep 8, 4:51 am, herbie <4whi...@o2.co.uk> wrote:
> On Sep 8, 12:07 am, Stephen  wrote:
>
> > OK, but because api_cpu_ms is 96% of the total, then cpu_ms is also
> > almost 3x higher? The spike is showing up in the cpu_ms?
>
> Yes in total the cpu_ms has gone up by nearly 3x too.
>
> But as I understand it cpu_ms is the total cpu usage for the request
> and api_cpu_ms is the cpu usage by GAE api calls.   So the difference
> between the two is the cpu usage of my non api code. This difference
> hasn’t increased because the code hasn’t changed.
>
> But yes, the new high value for api_cpu_ms directly affects my quota
> because it makes the vast majority of cpu_ms.  So we do pay for
> api_cpu_ms !   So for example if Google makes a change to db.put()
> (or any api call) so that it uses more cpu,   we will be billed for
> more cpu usage even if our code hasn’t changed.
>
> As my code/ indexes hasn’t changed and the api_cpu_ms  has shot up the
> obvious conclusion is that an api/datastore  change has caused it?
>
> But there may be another ‘good’ reason for it, which I can’t think
> of,  but as I’m going to have to pay for the increase in api_cpu_ms,
> I would really appreciate  it if someone at Google could help.
>
> On Sep 8, 12:07 am, Stephen  wrote:
>
>
>
> > On Sep 7, 8:57 pm, herbie <4whi...@o2.co.uk> wrote:
>
> > > On Sep 7, 6:50 pm, Stephen  wrote:
>
> > > > What about cpu_ms, is that also higher for requests which write to the
> > > > data store?
>
> > > No, not in relation to api_cpu_ms.  For the request that does the most
> > > writing to the datastore api_cpu_ms accounts for 96% of the total
> > > cpu_ms value!.  The so request handler does not much more than create
> > > new entities in the datastore.
>
> > OK, but because api_cpu_ms is 96% of the total, then cpu_ms is also
> > almost 3x higher? The spike is showing up in the cpu_ms?
>
> > cpu_ms is billed for, so if you have billing enabled you are being
> > overcharged.
>
> > You could try asking for a refund here:
>
> >  http://code.google.com/support/bin/request.py?contact_type=AppEngineB...
--~--~-~--~~~---~--~~
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] Server error without any log

2009-09-08 Thread bbayer

Sometimes Google App Engine displays an error page. I think it is not
related with my application.

It says
Error: Server Error
The server encountered an error and could not complete your request.

If the problem persists, please report your problem and mention this
error message and the query that caused it.

Even report link redirects to App Engine home which it doesnt have any
support related things.

Also sometimes django gives strange DeadlineExceeded error on random
places like on import statements of core django modules. I could see
ViewDoesntExist error which was caused by core modules for example

: Could not import
views. Error was: cannot import name signals
Traceback (most recent call last):
  File "/base/data/home/apps/trendybing/1.336175352323073178/
django_bootstrap.py", line 68, in 
main()
  File "/base/data/home/apps/trendybing/1.336175352323073178/
django_bootstrap.py", line 65, in main
util.run_wsgi_app(application)
  File "/base/python_lib/versions/1/google/appengine/ext/webapp/
util.py", line 76, in run_wsgi_app
result = application(env, _start_response)
  File "/base/python_lib/versions/third_party/django-1.0/django/core/
handlers/wsgi.py", line 239, in __call__
response = self.get_response(request)
  File "/base/python_lib/versions/third_party/django-1.0/django/core/
handlers/base.py", line 128, in get_response
return self.handle_uncaught_exception(request, resolver, exc_info)
  File "/base/python_lib/versions/third_party/django-1.0/django/core/
handlers/base.py", line 160, in handle_uncaught_exception
return callback(request, **param_dict)
  File "/base/python_lib/versions/third_party/django-1.0/django/views/
defaults.py", line 24, in server_error
return http.HttpResponseServerError(t.render(Context({})))
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/__init__.py", line 176, in render
return self.nodelist.render(context)
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/__init__.py", line 768, in render
bits.append(self.render_node(node, context))
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/__init__.py", line 781, in render_node
return node.render(context)
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/loader_tags.py", line 97, in render
return compiled_parent.render(context)
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/__init__.py", line 176, in render
return self.nodelist.render(context)
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/__init__.py", line 768, in render
bits.append(self.render_node(node, context))
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/__init__.py", line 781, in render_node
return node.render(context)
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/loader_tags.py", line 24, in render
result = self.nodelist.render(context)
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/__init__.py", line 768, in render
bits.append(self.render_node(node, context))
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/__init__.py", line 781, in render_node
return node.render(context)
  File "/base/python_lib/versions/third_party/django-1.0/django/
template/defaulttags.py", line 373, in render
url = reverse(self.view_name, args=args, kwargs=kwargs)
  File "/base/python_lib/versions/third_party/django-1.0/django/core/
urlresolvers.py", line 254, in reverse
*args, **kwargs)))
  File "/base/python_lib/versions/third_party/django-1.0/django/core/
urlresolvers.py", line 227, in reverse
possibilities = self.reverse_dict.getlist(lookup_view)
  File "/base/python_lib/versions/third_party/django-1.0/django/core/
urlresolvers.py", line 169, in _get_reverse_dict
self._reverse_dict.appendlist(pattern.callback, (bits, p_pattern))
  File "/base/python_lib/versions/third_party/django-1.0/django/core/
urlresolvers.py", line 133, in _get_callback
raise ViewDoesNotExist, "Could not import %s. Error was: %s" %
(mod_name, str(e))

It seems it couldn't import signal module. I think this kind of things
is result of module caching mechanism of python itself. I am sure
Google engineers try to find efficient way to minimize startup time of
application it self. But if you try to build business over Google App
Engine , you should wait a little bit.
--~--~-~--~~~---~--~~
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: Security settings of XMPP

2009-09-08 Thread Peter Svensson
Hi Nick. Thanks for the reply. It does clear up the choice of architecture
:)
My use case is similar to a web-based chat, where x clients written in
JavaScript receive updates from the App Engine server using XMPP over BOSH
or similar Comet mechanism.  And yes, I can of course use existing Comet
implementations, but I saw it as a nice way to use XMPP.


Cheers;
PS


On Tue, Sep 8, 2009 at 12:28 PM, Nick Johnson (Google) <
nick.john...@google.com> wrote:

> Hi Peter,
>
> On Tue, Sep 8, 2009 at 11:20 AM, Peter Svensson wrote:
>
>> I've been toying around with using Ajax to send XMPP requests to an App
>> Engine instance of mine, and this works (in principle, the packets get
>> there, but I have other problems, for other mails) as long as I am logged in
>> as the administrator of the app engine instance. Seriously. What is the
>> reason for this?
>>
>> When I try to send an Ajax request from my page (which is loaded from
>> /static from the very same app engine project, I get a 302 back, trying to
>> redirect my JavaScript logic to a login page. OK, even if I were to act on
>> that and later on detect that the user is logged in, why must the user be an
>> administrator? According to the docs;
>>
>> ---
>>
>> To handle incoming messages, you simply create a request handler that
>> accepts POST requests at this URL path.
>>
>> This URL path is restricted to app administrators automatically. The XMPP
>> service connects to the app with "administrator" status for the purposes of
>> accessing this URL path. You can configure the path to have this restriction
>> explicitly if you like, but this is not necessary. Only the XMPP service and
>> clients authenticated as administrators using Google Accounts can access
>> this URL path.
>>
>> 
>>
>>
>> This effectively makes app engine completely useless if you're going to
>> (like me) build a hand-written client which will utilize XMPP for updates
>> (between clients), and not just writing a bot for gchat. I don't mean that
>> writing a bot for gchat is not interesting as such, but this login thing
>> really seems very restrictive.
>>
>
> I think you're misunderstanding the intent of the XMPP URLs. They're
> intended to be accessed by the App Engine XMPP subsystem, not by your users
> directly over HTTP. If you're simply posting to your app from a web-based
> client, why are you using the XMPP URLs at all? Why not just post to a URL
> you control, and handle those requests separately from incoming XMPP
> requests?
>
>
>>  I can understand that Google want control over its resources so that
>> someone doesn't write a completely open thing that lead to an
>> overutilization of the current XMPP infrastructure. But first of all I don't
>> see how that could not be solved by just charging more dollars of the
>> controlling app engine project (which will happen automatically anyway), and
>> secondly if authentication of XMPP clients really is needed, just let anyone
>> login in who has a Google account.
>>
>>
>> Thanks!
>>
>>
>> Cheers,
>> PS
>>
>>
>>
>
>
> --
> Nick Johnson, Developer Programs Engineer, App Engine
>
>
> >
>

--~--~-~--~~~---~--~~
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: Increasing Task Queue Quota Limit

2009-09-08 Thread Nick Johnson (Google)
Hi Kaz,
With the 1.2.5 release, the Task Queue quota has been increased to 100k per
day for billed apps. Is this likely to be enough for your short-term
requirements?

-Nick Johnson

On Sat, Sep 5, 2009 at 11:49 AM, kaz  wrote:

>
> Hello Nick,
>
> I'm writing a production code on GAE/J for a collabolation tool called
> Colabolo, which will be updated this month. We've been using Rails
> until now and are moving to GAE/J on the next update.
>
>
> http://www.techcrunch.com/2009/06/21/colabolo-takes-another-stab-at-team-task-management/
>
> Almost all the porting has been done and we got a last one challenge
> which can be a show stopper. I was very pleased when I hear the news
> about 1.2.5 release with TQ, since it can be a silver bullet to solve
> our problem.
>
> But I just found that there's a 10,000 tasks/day limitation which
> means it is impossible to use on production. While we understand that
> TQ is an experimental, we'd like to use it on our new update to
> demonstrate the power of the cloud to our users and executives (and we
> can rollback to the old implementation anytime when we find any
> gritches on TQ implementation).
>
> So can you consider changing quotas for TQ for our apps? The app ids
> are:
>
> colabolo-gae
> colabolo-gae-qa
> colabolo-gae-dev
> colabolo-gae-dev2
>
> If you can allow us to use somethinglike 1M/day tasks, we can make
> each task short and fine grained. We look forward to your reply.
>
> Thanks,
>
> Kaz
>
>
>
>
>
> On 8月28日, 午後9:16, "Nick Johnson (Google)" 
> wrote:
> > Hi Brian,
> > We'll be increasing the limit across the board in the near future. If you
> > think you have a compelling use case for getting your limit raised early,
> > please let me know in a private email what you need it for.
> >
> > -Nick Johnson
> >
> > On Fri, Aug 28, 2009 at 1:09 AM, Brian  wrote:
> >
> > > Hello,
> >
> > > I was wondering if we can get our Task Queue quota increased. We have
> > > seen a substantial increase in usage, and are getting close to the 10K
> > > limit (we use it to run small background tasks that increase
> > > proportionally with usage). Our app IDs are worldwidelexicon and
> > > wwlapi
> >
> > > Thanks.
> >
> > > Brian McConnell
> >
> > --
> > Nick Johnson, Developer Programs Engineer, App Engine
>
> >
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine

--~--~-~--~~~---~--~~
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: Security settings of XMPP

2009-09-08 Thread Nick Johnson (Google)
Hi Peter,

On Tue, Sep 8, 2009 at 11:20 AM, Peter Svensson  wrote:

> I've been toying around with using Ajax to send XMPP requests to an App
> Engine instance of mine, and this works (in principle, the packets get
> there, but I have other problems, for other mails) as long as I am logged in
> as the administrator of the app engine instance. Seriously. What is the
> reason for this?
>
> When I try to send an Ajax request from my page (which is loaded from
> /static from the very same app engine project, I get a 302 back, trying to
> redirect my JavaScript logic to a login page. OK, even if I were to act on
> that and later on detect that the user is logged in, why must the user be an
> administrator? According to the docs;
>
> ---
>
> To handle incoming messages, you simply create a request handler that
> accepts POST requests at this URL path.
>
> This URL path is restricted to app administrators automatically. The XMPP
> service connects to the app with "administrator" status for the purposes of
> accessing this URL path. You can configure the path to have this restriction
> explicitly if you like, but this is not necessary. Only the XMPP service and
> clients authenticated as administrators using Google Accounts can access
> this URL path.
>
> 
>
>
> This effectively makes app engine completely useless if you're going to
> (like me) build a hand-written client which will utilize XMPP for updates
> (between clients), and not just writing a bot for gchat. I don't mean that
> writing a bot for gchat is not interesting as such, but this login thing
> really seems very restrictive.
>

I think you're misunderstanding the intent of the XMPP URLs. They're
intended to be accessed by the App Engine XMPP subsystem, not by your users
directly over HTTP. If you're simply posting to your app from a web-based
client, why are you using the XMPP URLs at all? Why not just post to a URL
you control, and handle those requests separately from incoming XMPP
requests?


>  I can understand that Google want control over its resources so that
> someone doesn't write a completely open thing that lead to an
> overutilization of the current XMPP infrastructure. But first of all I don't
> see how that could not be solved by just charging more dollars of the
> controlling app engine project (which will happen automatically anyway), and
> secondly if authentication of XMPP clients really is needed, just let anyone
> login in who has a Google account.
>
>
> Thanks!
>
>
> Cheers,
> PS
>
> >
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine

--~--~-~--~~~---~--~~
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: Text based RPG

2009-09-08 Thread Nick Johnson (Google)
On Tue, Sep 8, 2009 at 11:21 AM, David Given  wrote:

>
> Nick Johnson (Google) wrote:
> [...]
> > Not true - Transactions can encompass entire entity groups. With the
> > correct entity group configuration, you could perform updates on local
> > areas of the map transactionally.
>
> Is it possible to directly access entities in a group other than the
> root one? I was under the impression not (but I could well be wrong).
>

Yes - child entities act in all respects like any other entity, except that
they have a parent entity (or entities).


>
> And I'm afraid it still wouldn't help --- I'd still need synchronisation
> between different groups when dealing with multiple areas on the map;
> and AppEngine's transactions are optimistic rather than blocking, which
> are no use to me.
>

Presumably transactions across local groups are rarer; there are a number of
proposals for distributed transactions on App Engine. You can also use your
locking strategy, but restrict that to when you need to do a cross-region
transaction, significantly reducing contention.


>
> In addition the overhead to performing a single database access appears
> to be so high that it's *much* faster to read and write the entire
> database in two accesses than it is to read parts of it using multiple
> queries! Although that may change as the database size grows.
>

Indeed - with a single entity you're limited to 1MB, and you're reading a
lot of superfluous data. If you size your regions right, you can read the
whole region with a single query, and write only the changed parts back.

-Nick Johnson


>
> --
> ┌─── dg@cowlark.com ─ http://www.cowlark.com ─
> │
> │ "They laughed at Newton. They laughed at Einstein. Of course, they
> │ also laughed at Bozo the Clown." --- Carl Sagan
>
> >
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine

--~--~-~--~~~---~--~~
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: Text based RPG

2009-09-08 Thread David Given

Nick Johnson (Google) wrote:
[...]
> Not true - Transactions can encompass entire entity groups. With the 
> correct entity group configuration, you could perform updates on local 
> areas of the map transactionally.

Is it possible to directly access entities in a group other than the 
root one? I was under the impression not (but I could well be wrong).

And I'm afraid it still wouldn't help --- I'd still need synchronisation 
between different groups when dealing with multiple areas on the map; 
and AppEngine's transactions are optimistic rather than blocking, which 
are no use to me.

In addition the overhead to performing a single database access appears 
to be so high that it's *much* faster to read and write the entire 
database in two accesses than it is to read parts of it using multiple 
queries! Although that may change as the database size grows.

-- 
┌─── dg@cowlark.com ─ http://www.cowlark.com ─
│
│ "They laughed at Newton. They laughed at Einstein. Of course, they
│ also laughed at Bozo the Clown." --- Carl Sagan

--~--~-~--~~~---~--~~
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] Security settings of XMPP

2009-09-08 Thread Peter Svensson
I've been toying around with using Ajax to send XMPP requests to an App
Engine instance of mine, and this works (in principle, the packets get
there, but I have other problems, for other mails) as long as I am logged in
as the administrator of the app engine instance.Seriously. What is the
reason for this?

When I try to send an Ajax request from my page (which is loaded from
/static from the very same app engine project, I get a 302 back, trying to
redirect my JavaScript logic to a login page. OK, even if I were to act on
that and later on detect that the user is logged in, why must the user be an
administrator? According to the docs;

---

To handle incoming messages, you simply create a request handler that
accepts POST requests at this URL path.

This URL path is restricted to app administrators automatically. The XMPP
service connects to the app with "administrator" status for the purposes of
accessing this URL path. You can configure the path to have this restriction
explicitly if you like, but this is not necessary. Only the XMPP service and
clients authenticated as administrators using Google Accounts can access
this URL path.




This effectively makes app engine completely useless if you're going to
(like me) build a hand-written client which will utilize XMPP for updates
(between clients), and not just writing a bot for gchat. I don't mean that
writing a bot for gchat is not interesting as such, but this login thing
really seems very restrictive.

I can understand that Google want control over its resources so that someone
doesn't write a completely open thing that lead to an overutilization of the
current XMPP infrastructure. But first of all I don't see how that could not
be solved by just charging more dollars of the controlling app engine
project (which will happen automatically anyway), and secondly if
authentication of XMPP clients really is needed, just let anyone login in
who has a Google account.


Thanks!


Cheers,
PS

--~--~-~--~~~---~--~~
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: Unable to Mail.send() - Timeout errors

2009-09-08 Thread Lacrima

I have the same errors.

Also I have a lot of mail marked as spam.

On Sep 8, 2:35 am, Koen Bok  wrote:
> Just for the record, I saw the exact same all day today.
>
> On Sep 5, 12:35 am, danb  wrote:
>
> > Hi,
>
> > At the moment I am experiencing Mail.send() Timeouts (after 5 second
> > delay while sending e-mail) on Python API. It never took so long for
> > my app and I never seen this before today. Perhaps it is a temporary
> > failure worth investigating:
>
> > #
> > 09-04 03:27PM 45.328
>
> > sending mail to @hotmail.com, subject: 
>
> > #
> > E 09-04 03:27PM 50.340
>
> > sys.path: ['/base/data/home/apps/vim-mailer/1.336046415183262255', '/
> > base/data/home/apps/vim-mailer/1.336046415183262255/common', '/base/
> > data/home/apps/vim-mailer/1.336046415183262255/common/appenginepatch/
> > appenginepatcher/lib', '/base/data/home/apps/vim-mailer/
> > 1.336046415183262255/common/zip-packages/django-1.0.2.zip', '/base/
> > data/home/apps/vim-mailer/1.336046415183262255/common/appenginepatch',
> > '/base/python_dist/lib/python25.zip', '/base/python_lib/versions/
> > third_party/django-0.96', '/base/python_dist/lib/python2.5/', '/base/
> > python_dist/lib/python2.5/plat-linux2', '/base/python_dist/lib/
> > python2.5/lib-tk', '/base/python_dist/lib/python2.5/lib-dynload', '/
> > base/python_lib/versions/1', '/base/data/home/apps/vim-mailer/
> > 1.336046415183262255/']
> > Exception in request:
> > Traceback (most recent call last):
> >   File "/base/data/home/apps/vim-mailer/1.336046415183262255/common/
> > zip-packages/django-1.0.2.zip/django/core/handlers/base.py", line 86,
> > in get_response
> >     response = callback(request, *callback_args, **callback_kwargs)
> >   File "/base/data/home/apps/vim-mailer/1.336046415183262255/common/
> > zip-packages/django-1.0.2.zip/django/views/decorators/http.py", line
> > 31, in inner
> >     return func(request, *args, **kwargs)
> >   File "/base/data/home/apps/vim-mailer/1.336046415183262255/core/
> > views.py", line 97, in mail_task
> >     mail_item(item)
> >   File "/base/data/home/apps/vim-mailer/1.336046415183262255/core/
> > views.py", line 127, in mail_item
> >     [item['to']])
> >   File "/base/data/home/apps/vim-mailer/1.336046415183262255/common/
> > zip-packages/django-1.0.2.zip/django/core/mail.py", line 322, in
> > send_mail
> >     connection=connection).send()
> >   File "/base/data/home/apps/vim-mailer/1.336046415183262255/common/
> > zip-packages/django-1.0.2.zip/django/core/mail.py", line 248, in send
> >     return self.get_connection(fail_silently).send_messages([self])
> >   File "/base/data/home/apps/vim-mailer/1.336046415183262255/common/
> > zip-packages/django-1.0.2.zip/django/core/mail.py", line 140, in
> > send_messages
> >     sent = self._send(message)
> >   File "/base/data/home/apps/vim-mailer/1.336046415183262255/common/
> > zip-packages/django-1.0.2.zip/django/core/mail.py", line 163, in _send
> >     e.send()
> >   File "/base/python_lib/versions/1/google/appengine/api/mail.py",
> > line 711, in send
> >     make_sync_call('mail', self._API_CALL, message, response)
> >   File "/base/python_lib/versions/1/google/appengine/api/
> > apiproxy_stub_map.py", line 72, in MakeSyncCall
> >     apiproxy.MakeSyncCall(service, call, request, response)
> >   File "/base/python_lib/versions/1/google/appengine/api/
> > apiproxy_stub_map.py", line 255, in MakeSyncCall
> >     rpc.CheckSuccess()
> >   File "/base/python_lib/versions/1/google/appengine/api/
> > apiproxy_rpc.py", line 111, in CheckSuccess
> >     raise self.exception
> > DeadlineExceededError: The API call mail.Send() took too long to
> > respond and was cancelled.
>
> > 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] Re: Text based RPG

2009-09-08 Thread Nick Johnson (Google)
Hi David,

On Tue, Sep 8, 2009 at 10:24 AM, David Given  wrote:

>
> Brandon N. Wirtz wrote:
> > You could build one of these... You'd go broke running it.  A MUD is
> always
> > running.. It handles multiple threads and not only accepts requests but
> > sends them to the user..
>
> I actually *am* building something like one of these (using Java).
>
> The biggest problem I've got is that GAE has no synchronisation
> mechanisms. None. There are transactions, but as they only work on
> single entities they're useless. This means that it's very hard to run
> game logic that needs to synchronously touch the global database.
>

Not true - Transactions can encompass entire entity groups. With the correct
entity group configuration, you could perform updates on local areas of the
map transactionally.


> To work round this I've implemented my own semaphore backed by the
> datastore; it's extremely nasty but does actually work. I then read the
> entire game database out of a blob in a single entity into RAM, run the
> game logic, write the database back again, and release the semaphore.
> That is also extremely nasty but it does all actually work. (My game's
> actually intended to be run on a standalone server, not GAE, but the
> persistence layers are all abstracted out to let me host on GAE for
> development purposes.) It'll congest rather badly but by the time
> congestion becomes an issue I should have a more suitable server.
>
> Performance isn't bad; I'm usually getting request times of about 500ms
> when the server's hot. That breaks down to:
>
> startup: anything from 10 to 5000ms
> db load: 50ms
> game logic:  <50ms
> build client update: 50ms (varies according to the size of the update)
> db save: 100ms
>
> Startup time is very strange. Sometimes it's practically nil, usually
> it's 100ms or so, and if the server's not hot it something takes many
> seconds (together with weird warnings about failing to start the
> finalisation thread). It's all out of my control --- it happens before
> the app starts.
>
> Note that the cheapest part of the whole process is actually running the
> game logic! Most of the time most requests take 0ms, as nothing will
> have actually happened since the last request...
>
> > GAE no process can run for more than a few seconds, so you'd have to use
> > some polling tricks on the client to ask what happened and have a chron
> job
> > run the main thread every few seconds...
>
> I'm running the game logic asynchronously on-demand. After all, you only
> need to change things when someone's looking! This works beautifully,
> but if it's been a couple of days since the last request it can take a
> while; I'm planning to use a cron job to update the server every half
> hour or so to avoid this.
>
> If you're writing a text-based game things will be both easier and
> harder. Easier, in that you don't have to do all the complex database
> synchronisation between the client and the server that I'm doing, and
> harder, because the game logic itself will be more complex and the
> client will need to poll much more frequently. (I can get away with a
> poll every ten minutes or so. A MUD can't.)
>
> --
> ┌─── dg@cowlark.com ─ http://www.cowlark.com ─
> │
> │ "They laughed at Newton. They laughed at Einstein. Of course, they
> │ also laughed at Bozo the Clown." --- Carl Sagan
>
> >
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine

--~--~-~--~~~---~--~~
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: Text based RPG

2009-09-08 Thread David Given

Brandon N. Wirtz wrote:
> You could build one of these... You'd go broke running it.  A MUD is always
> running.. It handles multiple threads and not only accepts requests but
> sends them to the user.. 

I actually *am* building something like one of these (using Java).

The biggest problem I've got is that GAE has no synchronisation 
mechanisms. None. There are transactions, but as they only work on 
single entities they're useless. This means that it's very hard to run 
game logic that needs to synchronously touch the global database.

To work round this I've implemented my own semaphore backed by the 
datastore; it's extremely nasty but does actually work. I then read the 
entire game database out of a blob in a single entity into RAM, run the 
game logic, write the database back again, and release the semaphore. 
That is also extremely nasty but it does all actually work. (My game's 
actually intended to be run on a standalone server, not GAE, but the 
persistence layers are all abstracted out to let me host on GAE for 
development purposes.) It'll congest rather badly but by the time 
congestion becomes an issue I should have a more suitable server.

Performance isn't bad; I'm usually getting request times of about 500ms 
when the server's hot. That breaks down to:

startup: anything from 10 to 5000ms
db load: 50ms
game logic:  <50ms
build client update: 50ms (varies according to the size of the update)
db save: 100ms

Startup time is very strange. Sometimes it's practically nil, usually 
it's 100ms or so, and if the server's not hot it something takes many 
seconds (together with weird warnings about failing to start the 
finalisation thread). It's all out of my control --- it happens before 
the app starts.

Note that the cheapest part of the whole process is actually running the 
game logic! Most of the time most requests take 0ms, as nothing will 
have actually happened since the last request...

> GAE no process can run for more than a few seconds, so you'd have to use
> some polling tricks on the client to ask what happened and have a chron job
> run the main thread every few seconds...

I'm running the game logic asynchronously on-demand. After all, you only 
need to change things when someone's looking! This works beautifully, 
but if it's been a couple of days since the last request it can take a 
while; I'm planning to use a cron job to update the server every half 
hour or so to avoid this.

If you're writing a text-based game things will be both easier and 
harder. Easier, in that you don't have to do all the complex database 
synchronisation between the client and the server that I'm doing, and 
harder, because the game logic itself will be more complex and the 
client will need to poll much more frequently. (I can get away with a 
poll every ten minutes or so. A MUD can't.)

-- 
┌─── dg@cowlark.com ─ http://www.cowlark.com ─
│
│ "They laughed at Newton. They laughed at Einstein. Of course, they
│ also laughed at Bozo the Clown." --- Carl Sagan

--~--~-~--~~~---~--~~
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: Dramatic increase in api cpu usage.

2009-09-08 Thread herbie

On Sep 8, 12:07 am, Stephen  wrote:
> OK, but because api_cpu_ms is 96% of the total, then cpu_ms is also
> almost 3x higher? The spike is showing up in the cpu_ms?
>

Yes in total the cpu_ms has gone up by nearly 3x too.

But as I understand it cpu_ms is the total cpu usage for the request
and api_cpu_ms is the cpu usage by GAE api calls.   So the difference
between the two is the cpu usage of my non api code. This difference
hasn’t increased because the code hasn’t changed.

But yes, the new high value for api_cpu_ms directly affects my quota
because it makes the vast majority of cpu_ms.  So we do pay for
api_cpu_ms !   So for example if Google makes a change to db.put()
(or any api call) so that it uses more cpu,   we will be billed for
more cpu usage even if our code hasn’t changed.

As my code/ indexes hasn’t changed and the api_cpu_ms  has shot up the
obvious conclusion is that an api/datastore  change has caused it?

But there may be another ‘good’ reason for it, which I can’t think
of,  but as I’m going to have to pay for the increase in api_cpu_ms,
I would really appreciate  it if someone at Google could help.


On Sep 8, 12:07 am, Stephen  wrote:
> On Sep 7, 8:57 pm, herbie <4whi...@o2.co.uk> wrote:
>
> > On Sep 7, 6:50 pm, Stephen  wrote:
>
> > > What about cpu_ms, is that also higher for requests which write to the
> > > data store?
>
> > No, not in relation to api_cpu_ms.  For the request that does the most
> > writing to the datastore api_cpu_ms accounts for 96% of the total
> > cpu_ms value!.  The so request handler does not much more than create
> > new entities in the datastore.
>
> OK, but because api_cpu_ms is 96% of the total, then cpu_ms is also
> almost 3x higher? The spike is showing up in the cpu_ms?
>
> cpu_ms is billed for, so if you have billing enabled you are being
> overcharged.
>
> You could try asking for a refund here:
>
>  http://code.google.com/support/bin/request.py?contact_type=AppEngineB...
--~--~-~--~~~---~--~~
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 to point domain name to an app (no subdomain)

2009-09-08 Thread Barry Hunter

http://code.google.com/appengine/articles/domains.html

On 05/09/2009, tyoc <007...@gmail.com> wrote:
>
>  I mean, in http://appgallery.appspot.com/ you can see some apps are
>  under a subdomain of appspot.com while others have a normal domain
>  name pointing to them.
>
>  For example the actual display of that page show this 2
>
>  http://www.cafesurvey.com/
>  http://food-prints.appspot.com/
>
>
>  I will like to know how to do the first case.
>
>  >
>


-- 
Barry

- www.nearby.org.uk - www.geograph.org.uk -

--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---