[google-appengine] Re: Memcache pattern
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
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?
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
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!!!
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
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?
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
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.
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)?
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?
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"
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.
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?
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.
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?
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
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?
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)?
-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
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
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
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 ?
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
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
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.
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
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!!!
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
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
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
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
"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"
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!
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
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
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
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
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
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
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
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
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.
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?
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
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.
[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
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
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
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.
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
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 ?
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
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
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
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
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)?
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
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
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
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
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
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
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
♀♂@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?
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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.
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)
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 -~--~~~~--~~--~--~---