[google-appengine] Why would .get() return something different when called twice in a row?
for t in things: if not t.images.get(): things.remove(t) for t in things: print t.images.get() Strangely enough, this is what gets printed: model.image.Image object at 0x9d2daec model.image.Image object at 0x9d2da0c None model.image.Image object at 0x9d2d1ec model.image.Image object at 0x9d2da8c model.image.Image object at 0x9d2d54c None model.image.Image object at 0x9d2decc None model.image.Image object at 0xa00282c Images, in this case, is a collection name for an inverted index. But this kind of error has never happened before. Am i overlooking something blatant, or is the call returning something different when called twice? And yeah, I could define the variable once in a separate list and then use a zip() procedure, but this still worries 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: Why would .get() return something different when called twice in a row?
for t in things: t.images.get() if not t.images.get(): things.remove(t) The indent broke for the initial post... On Dec 18, 12:33 am, James thelevybre...@gmail.com wrote: for t in things: if not t.images.get(): things.remove(t) for t in things: print t.images.get() Strangely enough, this is what gets printed: model.image.Image object at 0x9d2daec model.image.Image object at 0x9d2da0c None model.image.Image object at 0x9d2d1ec model.image.Image object at 0x9d2da8c model.image.Image object at 0x9d2d54c None model.image.Image object at 0x9d2decc None model.image.Image object at 0xa00282c Images, in this case, is a collection name for an inverted index. But this kind of error has never happened before. Am i overlooking something blatant, or is the call returning something different when called twice? And yeah, I could define the variable once in a separate list and then use a zip() procedure, but this still worries 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: Why would .get() return something different when called twice in a row?
Of course, it was easy to bypass this issue with a GQL query, but I'd like to learn about why my intuition was wrong about this. On Dec 18, 12:34 am, James thelevybre...@gmail.com wrote: for t in things: t.images.get() if not t.images.get(): things.remove(t) The indent broke for the initial post... On Dec 18, 12:33 am, James thelevybre...@gmail.com wrote: for t in things: if not t.images.get(): things.remove(t) for t in things: print t.images.get() Strangely enough, this is what gets printed: model.image.Image object at 0x9d2daec model.image.Image object at 0x9d2da0c None model.image.Image object at 0x9d2d1ec model.image.Image object at 0x9d2da8c model.image.Image object at 0x9d2d54c None model.image.Image object at 0x9d2decc None model.image.Image object at 0xa00282c Images, in this case, is a collection name for an inverted index. But this kind of error has never happened before. Am i overlooking something blatant, or is the call returning something different when called twice? And yeah, I could define the variable once in a separate list and then use a zip() procedure, but this still worries 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] urlfetch, ApplicationError: 5
Hi, My app is online since 5 months, but since fews days, I've got more and more ApplicationError: 5 with the urlfetch API. ApplicationError 5 is raised with this error : DEADLINE_EXCEEDED, but the website my app fetches is fast and sometimes when I test this API on http://shell.appspot.com/ : from google.appengine.api import urlfetch data = urlfetch.fetch(web_site) this error is raised at once (no wait). Is DEADLINE_EXCEEDED a kind of timeout ? How long does it wait before raising this error ? Regards Sylvain --~--~-~--~~~---~--~~ 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] Was I scared too much with high cpu quota ?
This morning I did some final testing and because app engine team introduced 'quota details' page with some more explanation in http://code.google.com/appengine/docs/quotas.html link now I am thinking that I created a little bit more complicated code than I needed. Just because they introduced suggestion warnings in admin console log with yellow and red colors plus some warning sign from the beginning. I am using app engine last half year and I have read almost every article, watched every interesting video and constantly read app engine group discussions. In the last half year every now and then they explained more and more about high cpu quota, difference between api cpu and our code cpu usage and difference in its presentation over the admin console. My final test was simple: class Test(webapp.RequestHandler): def get(self): for i in range(200): t = Testna(podatak = str(i)) t.put() self.response.out.write('radi') Results were like some religious revelation for me: http://picasaweb.google.com/matija.jerkovic/GoogleAppEngine?authkey=9MVoK12s0SA#5281097404943213970 http://picasaweb.google.com/matija.jerkovic/GoogleAppEngine?authkey=9MVoK12s0SA#5281097405750931410 Although they stated over and over (not at the beginning but lately) these results, I needed proof. And now I have it. I will not be punished (in quota sense) for more than one datastore write operation. During my test I had no high cpu quota usage. There was some warning but I think that they are there when we are near 8s limit per request, and when we break this limit, but even then this was not counted as high cpu quota. I understand contention problem and even user experience with too slow response, but I will not be punished, temporary baned or something like that. This is so important for me because I mostly need more write operation only for administrative purpose. Not 200 writes but let's say 10 or 20. With bigtable system we are creating super redundant datastore, but when I need to correct (for some reason) that data, now I know that I don't have to do this in thousand 'one write' operation step, than in a 50 (or less) '20 write' operation request. If I do this when there is low usage (night for example) I could even bypass some contention problem. Second reason was lack of model count ability. So when I needed to use additional counter model with shard principle for avoiding contention problem. But I needed two write operation. In my fear of 'punishment' i did this in two connected ajax requests. If first request (write operation) succeeded I will send second request to increment count. With this approach I was under 1000 mcycles cpu usage (with datastore api), but this also introduced new problems. What if second request has not succeeded. What now. Now I have wrong count data. With this more complicated approach I had problem and even I have thought that app engine could not be used for serious purpose where this discrepancy in data is not an option. Last five years I was lead developer for hospital information system so you can understand my fear for error data. Counting comments on web page, poll data or something like data can have 99% precision but something else can't. Of course I am not developing now something serious like hospital information system but it takes time to switch from 100% desktop application data to 99% web application data. And now I have found out that this was not necessary and that I can have 100% data precision in connection with user perception of succeeded or not succeeded operation. I can have two, four, six or more write operation in one request only if I stay under 8(or 9?) seconds time request limit because contention can impact only on request time limit. All these high cpu fuss (in connection with write operations, of course) were just design warnings and not some forcing statement. Or am I wrong again ? --~--~-~--~~~---~--~~ 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: Mysterious change to ModelForms module?
Not sure, the only things I can think of is that I am doing other puts to another model before that one? And also, I'm using db.Model not db.Expando. On Dec 18, 12:37 am, ryan ryanb+appeng...@google.com wrote: sorry for the trouble, and thanks for the detailed info! we definitely do want to figure out what's going on here. it doesn't seem quite as reproducible as get_or_insert() not working. for example, i just ran this inhttp://shell.appspot.com/: class NewKind(db.Expando): pass list(NewKind.all()) [] NewKind.get_or_insert('x') list(NewKind.all()) [__main__.NewKind object at 0xf42e8100f27606b0] NewKind.all().get().key().name() u'x' --~--~-~--~~~---~--~~ 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] Google Accounts down?
Is anyone else getting: Sorry, there seems to be a problem. The service you're looking for is temporarily unavailable. We're working hard to restore your access as soon as possible. Please try again in a few hours. Thanks for your patience. While trying to sign in to their App Engine app? Thanks, Aral --~--~-~--~~~---~--~~ 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] Phone problems
I am trying to activate my phone, but cant. I am using Google Apps Standard with the New Zealand, Telecom Mobile, 0275444990 or internationally +64275444990 Using the url: http://www.appspot.com/a/codynz.com, I then click start, and then get sent to: http://appengine.google.com/permissions/smssend, where I enter my international phone number, and get the error message: The phone number has been sent too many messages or has already been used to confirm an account. I have used it with my GMail account as well, could this be the 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] SMS Issues + Form Broken
I just tried to submit an issue regarding SMS verification, however it appears that form is also broken, so I'll reproduce it here: Telstra is listed as one of your supported carriers, however if I input my phone number (after selecting Other (Not Listed)), I get a message saying: There were errors: * Mobile Number or Username My phone number I'm trying to enter is +61 044760. I have tried +61 044760, 61044760 and various other combinations, however none work. Thanks, Ryan McCue. --~--~-~--~~~---~--~~ 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] Quota hit while using Bulk Upload to upload a small 40,000 record table
I hit the CPU quota after only uploading a few records. Is there a better way then using the Bulk Upload? --~--~-~--~~~---~--~~ 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] 18 hours of Over Quota, Dashboard and Quota Details indicate everything's fine
For the past 18 hours my app has been disabled with an Over Quota 403 error. The Dashboard indicates everything's fine, CPU Time is barely registering. The new Quota Details shows requests under 4%, everything else around 0%, and no High CPU credits have been used. Two and a half hours ago I redeployed to a new app slot to monitor what's going on. It took 15 mins until the Over Quota error. Again, Dashboard, Quota Details and Logs are not showing anything wrong. This app has been running with traffic up until this point for nine days without issue, and since the last deployment four days ago. Anyone have any troubleshooting tips? --~--~-~--~~~---~--~~ 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] Dashboard - Logs, not all errors are logged?
I'm trying to use the logs in the dashboard to debug my script. It's a callback script so I can not debug it locally. I can output some information by using logging.info(msg). But sometimes the script just crashed, maybe syntax error or others, I found that GAE logs only log the exceptions, if there's other error, for example: ImportError, it just display nothing. It bring me a lot of trouble to guess what the error is. Anyway to get through this? 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: 18 hours of Over Quota, Dashboard and Quota Details indicate everything's fine
Marcia is going to ask for your app id to look into it, so either mail Marcia directly or post it here to speed things up. Having a site offline is never fun. Just out of curiosity, what kind of app is it? On Dec 18, 3:57 pm, Ben Bishop leo...@gmail.com wrote: For the past 18 hours my app has been disabled with an Over Quota 403 error. The Dashboard indicates everything's fine, CPU Time is barely registering. The new Quota Details shows requests under 4%, everything else around 0%, and no High CPU credits have been used. Two and a half hours ago I redeployed to a new app slot to monitor what's going on. It took 15 mins until the Over Quota error. Again, Dashboard, Quota Details and Logs are not showing anything wrong. This app has been running with traffic up until this point for nine days without issue, and since the last deployment four days ago. Anyone have any troubleshooting tips? --~--~-~--~~~---~--~~ 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: 18 hours of Over Quota, Dashboard and Quota Details indicate everything's fine
Hi, Thomas is correct, with the app id I can investigate this issue further. In general, in the off chance that the Quota details page is not helpful, the logs may give some indication of what quota you might be bumping in to. The regex search is pretty useful, searching for quota or Quota. -Marzia On Thu, Dec 18, 2008 at 8:06 AM, Thomas Johansson prenc...@gmail.comwrote: Marcia is going to ask for your app id to look into it, so either mail Marcia directly or post it here to speed things up. Having a site offline is never fun. Just out of curiosity, what kind of app is it? On Dec 18, 3:57 pm, Ben Bishop leo...@gmail.com wrote: For the past 18 hours my app has been disabled with an Over Quota 403 error. The Dashboard indicates everything's fine, CPU Time is barely registering. The new Quota Details shows requests under 4%, everything else around 0%, and no High CPU credits have been used. Two and a half hours ago I redeployed to a new app slot to monitor what's going on. It took 15 mins until the Over Quota error. Again, Dashboard, Quota Details and Logs are not showing anything wrong. This app has been running with traffic up until this point for nine days without issue, and since the last deployment four days ago. Anyone have any troubleshooting tips? --~--~-~--~~~---~--~~ 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: Announcing: System Status Dashboard, Quota Details Page, and a Preview of Billing
Hi, Support for end-user uploading of large files (1MB) is definitely something we are working on supporting. -Marzia On Wed, Dec 17, 2008 at 6:39 PM, James Ashley james.ash...@gmail.comwrote: Just for clarification: There seems, to me, to be a big distinction between support for large files (to me, that sounds like serving bigger files that I upload via appcfg) and supporting large files uploaded by end-users (which, to me, implies letting the web app store data in bigger BLOBs). It seems perfectly workable (if a nasty bit of coding) to treat the database BLOBs as a virtual file system, breaking a file into multiple chunks and streaming them back one at a time. But actually uploading such a thing means getting over the 1 MB request limit. Is that part of the plan? Thanks yet again, James On Dec 17, 11:47 am, Marzia Niccolai ma...@google.com wrote: Hi Brian, These two features (billing and large file uploads) are being worked on concurrently but their release dates are not tied together. They both are on the roadmap for Q1, and are still on track for that time. We haven't yet determined the maximum size for large files. -Marzia On Wed, Dec 17, 2008 at 4:40 AM, BrianJinwright br...@ifeets.com wrote: I agree it is possible in s3 just set the ACL of that bucket or object. I think yu Ping's question is a good one. When billing is opened up will can we store files larger than 1MB. If so, how large. Thanks, Brian Jinwright --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: urlfetch, ApplicationError: 5
Hi Sylvain, The deadline for URLFetch requests is ~5 seconds. Latency for the URLFetch service as a whole seems to have been within normal ranges for the past couple of days: http://code.google.com/status/appengine So I don't know any reason off hand why your site would not be returning within the request deadline. I think that shell.appspot.com may just appear to be returning immediately because the call is fetching between the time that you press return and the time that the call appears in the main terminal window. The AJAX doesn't display it in the main window until the call is complete, deadline exceeded or not (at least this is the behavior I've observed when using shell for URLFetches). -Marzia On Thu, Dec 18, 2008 at 1:33 AM, Sylvain sylvain.viv...@gmail.com wrote: Hi, My app is online since 5 months, but since fews days, I've got more and more ApplicationError: 5 with the urlfetch API. ApplicationError 5 is raised with this error : DEADLINE_EXCEEDED, but the website my app fetches is fast and sometimes when I test this API on http://shell.appspot.com/ : from google.appengine.api import urlfetch data = urlfetch.fetch(web_site) this error is raised at once (no wait). Is DEADLINE_EXCEEDED a kind of timeout ? How long does it wait before raising this error ? Regards Sylvain --~--~-~--~~~---~--~~ 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: Mysterious change to ModelForms module?
true. i was cheating because i know the datastore internals, so i know what's relevant to problems like these and what isn't. Model vs. Expando, for example, generally isn't relevant. still, following your code much more closely, http://shell.appspot.com/ still doesn't reproduce this. odd. class TestModelA(db.Model): testval = db.StringProperty() class TestModelB(db.Model): testval = db.StringProperty() list(TestModelA.all()) [] list(TestModelB.all()) [] test1 = TestModelA(testval = Test put 1) test1.put() datastore_types.Key.from_path('TestModelA', 72663L, _app=u'shell') test2 = TestModelB(testval = Test put 2) test2.put() datastore_types.Key.from_path('TestModelB', 73462L, _app=u'shell') TestModelA().get_or_insert(goi_test, testval=get_or_insert test) __main__.TestModelA object at 0x4a9988195796e710 TestModelB().get_or_insert(goi_test2, testval=get_or_insert test 2) __main__.TestModelB object at 0x386035de932ed718 list(TestModelA.all()) [__main__.TestModelA object at 0xbad1185da0f83490, __main__.TestModelA object at 0xbad1185da0f83550] list(TestModelB.all()) [__main__.TestModelB object at 0x4a9988195796e3d0, __main__.TestModelB object at 0x4a9988195796e290] --~--~-~--~~~---~--~~ 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] DEADLINE Exceeded Messages ?!
I am consistently getting Deadline exceeded messages. The problem is that my individual requests are trivial: do a query or two to BigTable, serialize the results, and return them. So, what could be causing these messages. How are deadlines actually measured on app engine? In my case, I am sending a number (10-50) of requests in parallel. Each individual request retrieves a single row in a table plus one or two rows in related tables. I would guess that that CPU time usage is measured by interrupting the thread serving a request at regular intervals. The question is, how does this interrupt ascertain whether a CPU deadline has been exceeded. I hypothesize that when the poller wakes up, it checks to see which application has the cpu, and adds a tick to the count for that user. If the same application is using the CPU as the previous time the poller awoke, then the poller checks to see if the tick count exceeds the deadline. If so, it initiates a deadline exceeded message and terminates the request. If this is the algorithm, then it is very problematic for me. Will someone from the Google App Engine team explain to us the workings of the Deadline measuring algorithm so that we can adjust our application for work on the platform. Also, could the problem have anything to do with indexing? Our queries are dirt simple: a single query parameter, so we do not generate indices for them manually. --~--~-~--~~~---~--~~ 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: Dashboard - Logs, not all errors are logged?
Hi, The logs should display all logging messages up to the point where the script is crashing. So any logging messages that would take place after the crash point will not be logged. If there is a syntax error, or something like that, there won't be any logging messages, since the script never executes at all. -Marzia On Thu, Dec 18, 2008 at 8:02 AM, Charles Yan springri...@gmail.com wrote: I'm trying to use the logs in the dashboard to debug my script. It's a callback script so I can not debug it locally. I can output some information by using logging.info(msg). But sometimes the script just crashed, maybe syntax error or others, I found that GAE logs only log the exceptions, if there's other error, for example: ImportError, it just display nothing. It bring me a lot of trouble to guess what the error is. Anyway to get through this? 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] maximum number of versions
I keep getting this error when publishing: Too Many Versions (403) The application already has the maximum number of versions when I checked the forum, the best advise was to up major version number which I did (from 1 to 2). This worked for about an hour and now I'm getting the same error again (and I can confirm that url's sent via appcfg.py have the proper 2 in the version). I doubt my version 2 has gone over the limit already so I'm thinking something else is wrong any suggestions? (besides going to V3) appID: dev-arc2earth cheers brian --~--~-~--~~~---~--~~ 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: maximum number of versions
Hi, Thanks for the info, I'm looking in to this now. If anyone else is experiencing this, please let me know. -Marzia On Thu, Dec 18, 2008 at 11:14 AM, bFlood bflood...@gmail.com wrote: I keep getting this error when publishing: Too Many Versions (403) The application already has the maximum number of versions when I checked the forum, the best advise was to up major version number which I did (from 1 to 2). This worked for about an hour and now I'm getting the same error again (and I can confirm that url's sent via appcfg.py have the proper 2 in the version). I doubt my version 2 has gone over the limit already so I'm thinking something else is wrong any suggestions? (besides going to V3) appID: dev-arc2earth cheers brian --~--~-~--~~~---~--~~ 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: Mysterious change to ModelForms module?
I'd try taking my example on as a demo application. Some differences are 1. You example below you to a put in TestModelB before the get_or_insert. I believe in my example I found that this would work. 2. Everything in my example is happening in one request, whereas the shell I believe you're ending up with each put/get_or_insert happening per request. Not sure why that would matter, but I'm not fluent in the internals, and any testing and research I can do is on the SDK, where everything works correctly anyhow. I did do my own test using the appshell, and my results were that it worked correctly in that instance as well. class JoeTest1(db.Model): testval = db.StringProperty() class JoeTest2(db.Model): testval = db.StringProperty() list(JoeTest1.all()) [] list(JoeTest2.all()) [] test1 = JoeTest1(testval = test1) test1.put() datastore_types.Key.from_path('JoeTest1', 72664L, _app=u'shell') test2 = JoeTest2.get_or_insert(x, testval = get_or_insert test) list(JoeTest1.all()) [__main__.JoeTest1 object at 0xdee1f6793dad2940] list(JoeTest2.all()) [__main__.JoeTest2 object at 0xb82607baa49b66c0] JoeTest1.all().get().key().name() JoeTest2.all().get().key().name() u'x' On Dec 18, 1:30 pm, ryan ryanb+appeng...@google.com wrote: true. i was cheating because i know the datastore internals, so i know what's relevant to problems like these and what isn't. Model vs. Expando, for example, generally isn't relevant. still, following your code much more closely,http://shell.appspot.com/ still doesn't reproduce this. odd. class TestModelA(db.Model): testval = db.StringProperty() class TestModelB(db.Model): testval = db.StringProperty() list(TestModelA.all()) [] list(TestModelB.all()) [] test1 = TestModelA(testval = Test put 1) test1.put() datastore_types.Key.from_path('TestModelA', 72663L, _app=u'shell') test2 = TestModelB(testval = Test put 2) test2.put() datastore_types.Key.from_path('TestModelB', 73462L, _app=u'shell') TestModelA().get_or_insert(goi_test, testval=get_or_insert test) __main__.TestModelA object at 0x4a9988195796e710 TestModelB().get_or_insert(goi_test2, testval=get_or_insert test 2) __main__.TestModelB object at 0x386035de932ed718 list(TestModelA.all()) [__main__.TestModelA object at 0xbad1185da0f83490, __main__.TestModelA object at 0xbad1185da0f83550] list(TestModelB.all()) [__main__.TestModelB object at 0x4a9988195796e3d0, __main__.TestModelB object at 0x4a9988195796e290] --~--~-~--~~~---~--~~ 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: Mysterious change to ModelForms module?
Ah ha, Ryan, try this (unless I made a typo somewhere, for some reason Chrome and that textbox don't like each other and I was too lazy to change browsers). Note how I do the testa.put() and then the JoeTestB.get_or_insert all in the same box, then I when I go to check JoeTestB I can't. It looks like it really is the puts and get_or_inserts all in the same execution string. class JoeTestA(db.Model): testval = db.StringProperty() class JoeTestB(db.Model): testval = db.StringProperty() testa = JoeTestA(testval = test A) testa.put() testb = JoeTestB.get_or_insert(x, test B) JoeTestB.all().get().key().name() Traceback (most recent call last): File /base/data/home/apps/shell/1.30/shell.py, line 266, in get exec compiled in statement_module.__dict__ File string, line 1, in module AttributeError: 'NoneType' object has no attribute 'key' On Dec 18, 1:30 pm, ryan ryanb+appeng...@google.com wrote: true. i was cheating because i know the datastore internals, so i know what's relevant to problems like these and what isn't. Model vs. Expando, for example, generally isn't relevant. still, following your code much more closely,http://shell.appspot.com/ still doesn't reproduce this. odd. class TestModelA(db.Model): testval = db.StringProperty() class TestModelB(db.Model): testval = db.StringProperty() list(TestModelA.all()) [] list(TestModelB.all()) [] test1 = TestModelA(testval = Test put 1) test1.put() datastore_types.Key.from_path('TestModelA', 72663L, _app=u'shell') test2 = TestModelB(testval = Test put 2) test2.put() datastore_types.Key.from_path('TestModelB', 73462L, _app=u'shell') TestModelA().get_or_insert(goi_test, testval=get_or_insert test) __main__.TestModelA object at 0x4a9988195796e710 TestModelB().get_or_insert(goi_test2, testval=get_or_insert test 2) __main__.TestModelB object at 0x386035de932ed718 list(TestModelA.all()) [__main__.TestModelA object at 0xbad1185da0f83490, __main__.TestModelA object at 0xbad1185da0f83550] list(TestModelB.all()) [__main__.TestModelB object at 0x4a9988195796e3d0, __main__.TestModelB object at 0x4a9988195796e290] --~--~-~--~~~---~--~~ 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: Mysterious change to ModelForms module?
Hi Joseph, I uploaded your example to an application that I own (yo.appspot.com), and it worked as expected. So there must be something else going on here. Have you tried to query for the model using GQL in the Admin console, or are you just relying on the kind drop down? I'm curious to know if this might be where the difference is. -Marzia On Thu, Dec 18, 2008 at 11:26 AM, bowman.jos...@gmail.com bowman.jos...@gmail.com wrote: I'd try taking my example on as a demo application. Some differences are 1. You example below you to a put in TestModelB before the get_or_insert. I believe in my example I found that this would work. 2. Everything in my example is happening in one request, whereas the shell I believe you're ending up with each put/get_or_insert happening per request. Not sure why that would matter, but I'm not fluent in the internals, and any testing and research I can do is on the SDK, where everything works correctly anyhow. I did do my own test using the appshell, and my results were that it worked correctly in that instance as well. class JoeTest1(db.Model): testval = db.StringProperty() class JoeTest2(db.Model): testval = db.StringProperty() list(JoeTest1.all()) [] list(JoeTest2.all()) [] test1 = JoeTest1(testval = test1) test1.put() datastore_types.Key.from_path('JoeTest1', 72664L, _app=u'shell') test2 = JoeTest2.get_or_insert(x, testval = get_or_insert test) list(JoeTest1.all()) [__main__.JoeTest1 object at 0xdee1f6793dad2940] list(JoeTest2.all()) [__main__.JoeTest2 object at 0xb82607baa49b66c0] JoeTest1.all().get().key().name() JoeTest2.all().get().key().name() u'x' On Dec 18, 1:30 pm, ryan ryanb+appeng...@google.comryanb%2bappeng...@google.com wrote: true. i was cheating because i know the datastore internals, so i know what's relevant to problems like these and what isn't. Model vs. Expando, for example, generally isn't relevant. still, following your code much more closely,http://shell.appspot.com/ still doesn't reproduce this. odd. class TestModelA(db.Model): testval = db.StringProperty() class TestModelB(db.Model): testval = db.StringProperty() list(TestModelA.all()) [] list(TestModelB.all()) [] test1 = TestModelA(testval = Test put 1) test1.put() datastore_types.Key.from_path('TestModelA', 72663L, _app=u'shell') test2 = TestModelB(testval = Test put 2) test2.put() datastore_types.Key.from_path('TestModelB', 73462L, _app=u'shell') TestModelA().get_or_insert(goi_test, testval=get_or_insert test) __main__.TestModelA object at 0x4a9988195796e710 TestModelB().get_or_insert(goi_test2, testval=get_or_insert test 2) __main__.TestModelB object at 0x386035de932ed718 list(TestModelA.all()) [__main__.TestModelA object at 0xbad1185da0f83490, __main__.TestModelA object at 0xbad1185da0f83550] list(TestModelB.all()) [__main__.TestModelB object at 0x4a9988195796e3d0, __main__.TestModelB object at 0x4a9988195796e290] --~--~-~--~~~---~--~~ 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: Mysterious change to ModelForms module?
I've been relying on the Kind drop down. The only other difference is that I'm also working within a Django structure. I did just do the test using a GQL query, and was able to pull up the original FavoriteTeamsRanking that way. Though it's still not showing up in the Kind dropdown. On Dec 18, 2:30 pm, Marzia Niccolai ma...@google.com wrote: Hi Joseph, I uploaded your example to an application that I own (yo.appspot.com), and it worked as expected. So there must be something else going on here. Have you tried to query for the model using GQL in the Admin console, or are you just relying on the kind drop down? I'm curious to know if this might be where the difference is. -Marzia On Thu, Dec 18, 2008 at 11:26 AM, bowman.jos...@gmail.com bowman.jos...@gmail.com wrote: I'd try taking my example on as a demo application. Some differences are 1. You example below you to a put in TestModelB before the get_or_insert. I believe in my example I found that this would work. 2. Everything in my example is happening in one request, whereas the shell I believe you're ending up with each put/get_or_insert happening per request. Not sure why that would matter, but I'm not fluent in the internals, and any testing and research I can do is on the SDK, where everything works correctly anyhow. I did do my own test using the appshell, and my results were that it worked correctly in that instance as well. class JoeTest1(db.Model): testval = db.StringProperty() class JoeTest2(db.Model): testval = db.StringProperty() list(JoeTest1.all()) [] list(JoeTest2.all()) [] test1 = JoeTest1(testval = test1) test1.put() datastore_types.Key.from_path('JoeTest1', 72664L, _app=u'shell') test2 = JoeTest2.get_or_insert(x, testval = get_or_insert test) list(JoeTest1.all()) [__main__.JoeTest1 object at 0xdee1f6793dad2940] list(JoeTest2.all()) [__main__.JoeTest2 object at 0xb82607baa49b66c0] JoeTest1.all().get().key().name() JoeTest2.all().get().key().name() u'x' On Dec 18, 1:30 pm, ryan ryanb+appeng...@google.comryanb%2bappeng...@google.com wrote: true. i was cheating because i know the datastore internals, so i know what's relevant to problems like these and what isn't. Model vs. Expando, for example, generally isn't relevant. still, following your code much more closely,http://shell.appspot.com/ still doesn't reproduce this. odd. class TestModelA(db.Model): testval = db.StringProperty() class TestModelB(db.Model): testval = db.StringProperty() list(TestModelA.all()) [] list(TestModelB.all()) [] test1 = TestModelA(testval = Test put 1) test1.put() datastore_types.Key.from_path('TestModelA', 72663L, _app=u'shell') test2 = TestModelB(testval = Test put 2) test2.put() datastore_types.Key.from_path('TestModelB', 73462L, _app=u'shell') TestModelA().get_or_insert(goi_test, testval=get_or_insert test) __main__.TestModelA object at 0x4a9988195796e710 TestModelB().get_or_insert(goi_test2, testval=get_or_insert test 2) __main__.TestModelB object at 0x386035de932ed718 list(TestModelA.all()) [__main__.TestModelA object at 0xbad1185da0f83490, __main__.TestModelA object at 0xbad1185da0f83550] list(TestModelB.all()) [__main__.TestModelB object at 0x4a9988195796e3d0, __main__.TestModelB object at 0x4a9988195796e290] --~--~-~--~~~---~--~~ 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 name error ...
When I try to create my app name with my company name (AccuWeaver), it tells me An App or Google Account already exists with that name. Now how is that possible, when that is my company name, and I'm the only one with rights to that name ? How do I find out who is using my company name where it impacts Google 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: Send and receive mail with embedded images
Hi Daniel, It seems inline attachments with Content ID and MIME Multipart/Related Content is not supported in the current mail API, but I think it would be a good idea to file this as a feature request. Happy coding, Jeff On Dec 17, 1:55 pm, Jeff S j...@google.com wrote: Ah I see. I'm not sure how to do this using the App Engine mail API either, I'll ask around. Thank you, Jeff On Dec 17, 11:41 am, Daniel Levin danile...@gmail.com wrote: Alexander, Yes, I do refer to the that method (inline attachment using CID). I did it before with PHP without any problem, very easy. Now I want to migrate to Google App Engine, and I don't see how to implement that. Any idea? Regards, Daniel Levin --~--~-~--~~~---~--~~ 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 name error ...
Hi! This is due to the fact that App Engine apps share the gmail namespace. That means that if you already have a gmail-account registered, you cannot register an app with the same name. For example, I couldn't register jeverling. Best Regards, Jesaja Everling On Thu, Dec 18, 2008 at 8:52 PM, Webweave webwe...@gmail.com wrote: When I try to create my app name with my company name (AccuWeaver), it tells me An App or Google Account already exists with that name. Now how is that possible, when that is my company name, and I'm the only one with rights to that name ? How do I find out who is using my company name where it impacts Google 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] Google Team: Please Make Django 1.0 A Higher Priority
Let me start out by saying that I think the App Engine is an incredible product and has amazing potential. I think the choice of Python and Django as the initial release of the product were brilliant and really got the job done. I would like to hear from Google as to where they are REALLY at with this product -- where they are going -- and how serious they are about putting the necessary resources in place to make this product a production reality. As a person who watches the industry very closely, I don't really see the effort in place that could be there to make this happen, and NOT porting to Django 1.0 by this time is just ONE example of kind of dropping the ball so to speak... Again, I am on Google's side and want to see this product be incredibly successful -- I am just extremely disappointed with the execution so far... For months, I have been anxiously awaiting Google to put in the hard work to make the switch to Django 1.0 a reality. Months ago, I had conversations with Paul McDonald regarding this issue, and still nothing... This is extremely disappointing. In my mind, it shows Google's lack of serious commitment to the App Engine. Actions really do speak louder than words. Another interesting note that people at Google should seriously take a look at is the amount of traffic on this mail list. It has dropped off dramatically from the glory days and initial months of this product release. I am really baffled as to why Google didn't keep the momentum going, you had such hype around this product -- and all you had to do was follow through with execution... The drop off in participation in this mail list is a direct sign and correlation of the momentum slowing down... Google, take the bull by the horns and re-ignite the user community by delivering to us -- YOUR CUSTOMER -- what we want. Django 1.0 is just one example of something the user community has been anxiously asking for -- there are many other things... Thank you for your continued support, Sincerely, Michael I Angerman Albuquerque, New Mexico - Below are Marzia Niccolai's comments Dec 12 regarding this issue... Marzia -- couple of comments - this an incredibly weak public response - this response COMPLETELY shows the lack of professionalism and commitment on Google's part to deliver what it takes to make the App Engine a TRUE reality that we as customers can count on to run a robust, professional business on your platform. - brake should be break - seems likely -- this is a technical issue that HAS TO be worked out by Google I would say more here -- but if you read the words of this response closely, its a reflection of many things that could be better... Again, in summary -- I am not trying to be overly critical -- I am just trying to some how get some results -- and again Django 1.0 would be it... -- Hi Alex, We are definitely interested in offering Django 1.0 with App Engine in the future. However, it seems likely that including Django 1.0 as the default Django version with App Engine would need to be part of an api version change, since such a change would likely brake existing apps. In terms of the high CPU warnings, we are generally working on a solution that will lesson the affect of such warnings on applications, so we hope we can address this soon not just for this case, but in general. As for the time concern, there isn't much right now that can be done. But as your application increases in popularity, it's more likely people will see an already warm interpreter and thus not have to wait for a new initialization. -Marzia --~--~-~--~~~---~--~~ 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: DEADLINE Exceeded Messages ?!
Hi Derrick, What DeadlineExceedError message are you getting, there are a few different deadlines you can run in to with App Engine. The most common would be the request deadline. Any given request with App Engine must be completed within 10 seconds. This is the runtime DeadlineExceededError Various APIs, like the datastore and URLFetch also have deadlines to ensure that those calls return within the overall request deadline. If you are running in to this deadline, you will get the apiproxy_errors.DeadlineExceededError. The problem shouldn't have anything to do with indexing, since simple queries indexes are automatically generated, there is no need specify them in the index.yaml (see this article: http://code.google.com/appengine/articles/index_building.html) From your description I can imagine the problem is either you are requesting too much information from the datastore (running in to apiproxy_errors.DeadlineExceededError) in one request. The amount of data you can return in a query will depend on the size and shape of your data, but you can test this by reducing the amount of data you query for in one call. The other issue I can see is that you are just taking too long to return the entire request. This probably happens because it takes too long to process all of your results before the request deadline. Generally in such a case we'd suggest profiling your application which will indicate on which calls, and for how long, your app spends it's time. Some good information on profiling can be found in our FAQ: http://code.google.com/appengine/kb/commontasks.html#profiling Screencast: Optimizing Your App: Profiling and Memcache http://www.youtube.com/watch?v=Zip1G6-NiMM And the Google I/O talk 'Building a Production Quality Application on Google App Engine: http://sites.google.com/site/io/best-practices---building-a-production-quality-application-on-google-app-engine -Marzia On Thu, Dec 18, 2008 at 10:39 AM, Derrick derrickrbu...@gmail.com wrote: I am consistently getting Deadline exceeded messages. The problem is that my individual requests are trivial: do a query or two to BigTable, serialize the results, and return them. So, what could be causing these messages. How are deadlines actually measured on app engine? In my case, I am sending a number (10-50) of requests in parallel. Each individual request retrieves a single row in a table plus one or two rows in related tables. I would guess that that CPU time usage is measured by interrupting the thread serving a request at regular intervals. The question is, how does this interrupt ascertain whether a CPU deadline has been exceeded. I hypothesize that when the poller wakes up, it checks to see which application has the cpu, and adds a tick to the count for that user. If the same application is using the CPU as the previous time the poller awoke, then the poller checks to see if the tick count exceeds the deadline. If so, it initiates a deadline exceeded message and terminates the request. If this is the algorithm, then it is very problematic for me. Will someone from the Google App Engine team explain to us the workings of the Deadline measuring algorithm so that we can adjust our application for work on the platform. Also, could the problem have anything to do with indexing? Our queries are dirt simple: a single query parameter, so we do not generate indices for them manually. --~--~-~--~~~---~--~~ 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: Google Team: Please Make Django 1.0 A Higher Priority
I see nothing wrong with Marzia's response. The move from 0.96 to 1.0 does in fact break things. Having the change made underneath you without time to prepare and make migration changes will break lots of peoples applications. Check out appengine patch. I'm using it and Django 1.0 because of it with 0 problems. Django runs well from a zip package with it. They are doing the responsible thing here, and your accusations about lack of professionalism are completely outlandish. On Dec 18, 3:06 pm, Michael Angerman zrol...@gmail.com wrote: Let me start out by saying that I think the App Engine is an incredible product and has amazing potential. I think the choice of Python and Django as the initial release of the product were brilliant and really got the job done. I would like to hear from Google as to where they are REALLY at with this product -- where they are going -- and how serious they are about putting the necessary resources in place to make this product a production reality. As a person who watches the industry very closely, I don't really see the effort in place that could be there to make this happen, and NOT porting to Django 1.0 by this time is just ONE example of kind of dropping the ball so to speak... Again, I am on Google's side and want to see this product be incredibly successful -- I am just extremely disappointed with the execution so far... For months, I have been anxiously awaiting Google to put in the hard work to make the switch to Django 1.0 a reality. Months ago, I had conversations with Paul McDonald regarding this issue, and still nothing... This is extremely disappointing. In my mind, it shows Google's lack of serious commitment to the App Engine. Actions really do speak louder than words. Another interesting note that people at Google should seriously take a look at is the amount of traffic on this mail list. It has dropped off dramatically from the glory days and initial months of this product release. I am really baffled as to why Google didn't keep the momentum going, you had such hype around this product -- and all you had to do was follow through with execution... The drop off in participation in this mail list is a direct sign and correlation of the momentum slowing down... Google, take the bull by the horns and re-ignite the user community by delivering to us -- YOUR CUSTOMER -- what we want. Django 1.0 is just one example of something the user community has been anxiously asking for -- there are many other things... Thank you for your continued support, Sincerely, Michael I Angerman Albuquerque, New Mexico - Below are Marzia Niccolai's comments Dec 12 regarding this issue... Marzia -- couple of comments - this an incredibly weak public response - this response COMPLETELY shows the lack of professionalism and commitment on Google's part to deliver what it takes to make the App Engine a TRUE reality that we as customers can count on to run a robust, professional business on your platform. - brake should be break - seems likely -- this is a technical issue that HAS TO be worked out by Google I would say more here -- but if you read the words of this response closely, its a reflection of many things that could be better... Again, in summary -- I am not trying to be overly critical -- I am just trying to some how get some results -- and again Django 1.0 would be it... -- Hi Alex, We are definitely interested in offering Django 1.0 with App Engine in the future. However, it seems likely that including Django 1.0 as the default Django version with App Engine would need to be part of an api version change, since such a change would likely brake existing apps. In terms of the high CPU warnings, we are generally working on a solution that will lesson the affect of such warnings on applications, so we hope we can address this soon not just for this case, but in general. As for the time concern, there isn't much right now that can be done. But as your application increases in popularity, it's more likely people will see an already warm interpreter and thus not have to wait for a new initialization. -Marzia --~--~-~--~~~---~--~~ 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] djangoforms unicode error
Using djangoforms with unicode strings like that: class Entidade(db.Model): nome=db.StringProperty(multiline=False) tipo=db.StringProperty(multiline=False,choices=set([Pessoa Física,Pessoa Jurídica])) class FormEntidade(djangoforms.ModelForm): class Meta: model=Entidade Gives me an error like that below. Is this a bug or a limitation of Django version in GAE? Thank you. type 'exceptions.UnicodeDecodeError' . . . e:\google_appengine\google\appengine\ext\db\djangoforms.py in get_form_field(self=google.appengine.ext.db.StringProperty object at 0x0176F070, form_class=class 'django.newforms.fields.CharField', **kwargs={}) 163 choices.append(('', '-')) 164 for choice in self.choices: 165 choices.append((str(choice), unicode(choice))) 166 defaults['widget'] = forms.Select(choices=choices) 167 if self.default is not None: choices = [('', '-')], choices.append = built-in method append of list object at 0x0182D198, builtin str = type 'str', choice = 'Pessoa F\xc3\xadsica', builtin unicode = type 'unicode' type 'exceptions.UnicodeDecodeError': 'ascii' codec can't decode byte 0xc3 in position 8: ordinal not in range(128) args = ('ascii', 'Pessoa F\xc3\xadsica', 8, 9, 'ordinal not in range(128)') encoding = 'ascii' end = 9 message = '' object = 'Pessoa F\xc3\xadsica' reason = 'ordinal not in range(128)' start = 8 --~--~-~--~~~---~--~~ 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: Google Team: Please Make Django 1.0 A Higher Priority
Agreed, my comments were over the top and Marzia I apologize for being overly critical. You are helping us (the developer) and the App Engine, its not your fault that more resources from Google are not being deployed just incredibly frustrating that Django 1.0 was released on Sep 3, 2008, and here we are December 18, 2008. Django 1.0 needs to be rolled out in GAE and a solution of how to deal with this upgrade is technically feasible and should be addressed quickly... On Thu, Dec 18, 2008 at 12:15 PM, bowman.jos...@gmail.com bowman.jos...@gmail.com wrote: I see nothing wrong with Marzia's response. The move from 0.96 to 1.0 does in fact break things. Having the change made underneath you without time to prepare and make migration changes will break lots of peoples applications. Check out appengine patch. I'm using it and Django 1.0 because of it with 0 problems. Django runs well from a zip package with it. They are doing the responsible thing here, and your accusations about lack of professionalism are completely outlandish. On Dec 18, 3:06 pm, Michael Angerman zrol...@gmail.com wrote: Let me start out by saying that I think the App Engine is an incredible product and has amazing potential. I think the choice of Python and Django as the initial release of the product were brilliant and really got the job done. I would like to hear from Google as to where they are REALLY at with this product -- where they are going -- and how serious they are about putting the necessary resources in place to make this product a production reality. As a person who watches the industry very closely, I don't really see the effort in place that could be there to make this happen, and NOT porting to Django 1.0 by this time is just ONE example of kind of dropping the ball so to speak... Again, I am on Google's side and want to see this product be incredibly successful -- I am just extremely disappointed with the execution so far... For months, I have been anxiously awaiting Google to put in the hard work to make the switch to Django 1.0 a reality. Months ago, I had conversations with Paul McDonald regarding this issue, and still nothing... This is extremely disappointing. In my mind, it shows Google's lack of serious commitment to the App Engine. Actions really do speak louder than words. Another interesting note that people at Google should seriously take a look at is the amount of traffic on this mail list. It has dropped off dramatically from the glory days and initial months of this product release. I am really baffled as to why Google didn't keep the momentum going, you had such hype around this product -- and all you had to do was follow through with execution... The drop off in participation in this mail list is a direct sign and correlation of the momentum slowing down... Google, take the bull by the horns and re-ignite the user community by delivering to us -- YOUR CUSTOMER -- what we want. Django 1.0 is just one example of something the user community has been anxiously asking for -- there are many other things... Thank you for your continued support, Sincerely, Michael I Angerman Albuquerque, New Mexico - Below are Marzia Niccolai's comments Dec 12 regarding this issue... Marzia -- couple of comments - this an incredibly weak public response - this response COMPLETELY shows the lack of professionalism and commitment on Google's part to deliver what it takes to make the App Engine a TRUE reality that we as customers can count on to run a robust, professional business on your platform. - brake should be break - seems likely -- this is a technical issue that HAS TO be worked out by Google I would say more here -- but if you read the words of this response closely, its a reflection of many things that could be better... Again, in summary -- I am not trying to be overly critical -- I am just trying to some how get some results -- and again Django 1.0 would be it... -- Hi Alex, We are definitely interested in offering Django 1.0 with App Engine in the future. However, it seems likely that including Django 1.0 as the default Django version with App Engine would need to be part of an api version change, since such a change would likely brake existing apps. In terms of the high CPU warnings, we are generally working on a solution that will lesson the affect of such warnings on applications, so we hope we can address this soon not just for this case, but in general. As for the time concern, there isn't much right now that can be done. But as your application increases in popularity, it's more likely people will see an already warm interpreter and thus not have to wait for a new initialization.
[google-appengine] Re: DEADLINE Exceeded Messages ?!
I am getting class 'google.appengine.runtime.DeadlineExceededError' On Dec 18, 12:12 pm, Marzia Niccolai ma...@google.com wrote: Hi Derrick, What DeadlineExceedError message are you getting, there are a few different deadlines you can run in to with App Engine. The most common would be the request deadline. Any given request with App Engine must be completed within 10 seconds. This is the runtime DeadlineExceededError Various APIs, like the datastore and URLFetch also have deadlines to ensure that those calls return within the overall request deadline. If you are running in to this deadline, you will get the apiproxy_errors.DeadlineExceededError. The problem shouldn't have anything to do with indexing, since simple queries indexes are automatically generated, there is no need specify them in the index.yaml (see this article:http://code.google.com/appengine/articles/index_building.html) From your description I can imagine the problem is either you are requesting too much information from the datastore (running in to apiproxy_errors.DeadlineExceededError) in one request. The amount of data you can return in a query will depend on the size and shape of your data, but you can test this by reducing the amount of data you query for in one call. The other issue I can see is that you are just taking too long to return the entire request. This probably happens because it takes too long to process all of your results before the request deadline. Generally in such a case we'd suggest profiling your application which will indicate on which calls, and for how long, your app spends it's time. Some good information on profiling can be found in our FAQ:http://code.google.com/appengine/kb/commontasks.html#profiling Screencast: Optimizing Your App: Profiling and Memcachehttp://www.youtube.com/watch?v=Zip1G6-NiMM And the Google I/O talk 'Building a Production Quality Application on Google App Engine:http://sites.google.com/site/io/best-practices---building-a-productio... -Marzia On Thu, Dec 18, 2008 at 10:39 AM, Derrick derrickrbu...@gmail.com wrote: I am consistently getting Deadline exceeded messages. The problem is that my individual requests are trivial: do a query or two to BigTable, serialize the results, and return them. So, what could be causing these messages. How are deadlines actually measured on app engine? In my case, I am sending a number (10-50) of requests in parallel. Each individual request retrieves a single row in a table plus one or two rows in related tables. I would guess that that CPU time usage is measured by interrupting the thread serving a request at regular intervals. The question is, how does this interrupt ascertain whether a CPU deadline has been exceeded. I hypothesize that when the poller wakes up, it checks to see which application has the cpu, and adds a tick to the count for that user. If the same application is using the CPU as the previous time the poller awoke, then the poller checks to see if the tick count exceeds the deadline. If so, it initiates a deadline exceeded message and terminates the request. If this is the algorithm, then it is very problematic for me. Will someone from the Google App Engine team explain to us the workings of the Deadline measuring algorithm so that we can adjust our application for work on the platform. Also, could the problem have anything to do with indexing? Our queries are dirt simple: a single query parameter, so we do not generate indices for them manually. --~--~-~--~~~---~--~~ 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: Google Team: Please Make Django 1.0 A Higher Priority
Michael, you are making some noise about silly thing like release dates, but you missed to bring in good arguments why the latest django is so important and what is wrong with the current practice of using zipped custom django. regards Roberto On Dec 18, 5:38 pm, Michael Angerman zrol...@gmail.com wrote: Agreed, my comments were over the top and Marzia I apologize for being overly critical. You are helping us (the developer) and the App Engine, its not your fault that more resources from Google are not being deployed just incredibly frustrating that Django 1.0 was released on Sep 3, 2008, and here we are December 18, 2008. Django 1.0 needs to be rolled out in GAE and a solution of how to deal with this upgrade is technically feasible and should be addressed quickly... On Thu, Dec 18, 2008 at 12:15 PM, bowman.jos...@gmail.com bowman.jos...@gmail.com wrote: I see nothing wrong with Marzia's response. The move from 0.96 to 1.0 does in fact break things. Having the change made underneath you without time to prepare and make migration changes will break lots of peoples applications. Check out appengine patch. I'm using it and Django 1.0 because of it with 0 problems. Django runs well from a zip package with it. They are doing the responsible thing here, and your accusations about lack of professionalism are completely outlandish. On Dec 18, 3:06 pm, Michael Angerman zrol...@gmail.com wrote: Let me start out by saying that I think the App Engine is an incredible product and has amazing potential. I think the choice of Python and Django as the initial release of the product were brilliant and really got the job done. I would like to hear from Google as to where they are REALLY at with this product -- where they are going -- and how serious they are about putting the necessary resources in place to make this product a production reality. As a person who watches the industry very closely, I don't really see the effort in place that could be there to make this happen, and NOT porting to Django 1.0 by this time is just ONE example of kind of dropping the ball so to speak... Again, I am on Google's side and want to see this product be incredibly successful -- I am just extremely disappointed with the execution so far... For months, I have been anxiously awaiting Google to put in the hard work to make the switch to Django 1.0 a reality. Months ago, I had conversations with Paul McDonald regarding this issue, and still nothing... This is extremely disappointing. In my mind, it shows Google's lack of serious commitment to the App Engine. Actions really do speak louder than words. Another interesting note that people at Google should seriously take a look at is the amount of traffic on this mail list. It has dropped off dramatically from the glory days and initial months of this product release. I am really baffled as to why Google didn't keep the momentum going, you had such hype around this product -- and all you had to do was follow through with execution... The drop off in participation in this mail list is a direct sign and correlation of the momentum slowing down... Google, take the bull by the horns and re-ignite the user community by delivering to us -- YOUR CUSTOMER -- what we want. Django 1.0 is just one example of something the user community has been anxiously asking for -- there are many other things... Thank you for your continued support, Sincerely, Michael I Angerman Albuquerque, New Mexico - Below are Marzia Niccolai's comments Dec 12 regarding this issue... Marzia -- couple of comments - this an incredibly weak public response - this response COMPLETELY shows the lack of professionalism and commitment on Google's part to deliver what it takes to make the App Engine a TRUE reality that we as customers can count on to run a robust, professional business on your platform. - brake should be break - seems likely -- this is a technical issue that HAS TO be worked out by Google I would say more here -- but if you read the words of this response closely, its a reflection of many things that could be better... Again, in summary -- I am not trying to be overly critical -- I am just trying to some how get some results -- and again Django 1.0 would be it... -- Hi Alex, We are definitely interested in offering Django 1.0 with App Engine in the future. However, it seems likely that including Django 1.0 as the default Django version with App Engine would need to be part of an api version change, since such a change would likely brake existing apps. In terms of the high CPU warnings, we are generally working on a solution that will lesson
[google-appengine] Re: Google Team: Please Make Django 1.0 A Higher Priority
I can understand the frustration when there seems to be little movement on something that is important to you (Django 1.0 in your case). You'll have noticed that the app engine team (and Google generally) are very careful not to provide deadlines, which is a sign of a development process managed by developers. Deadlines are usually arbitrary dates set by sales managers who don't understand that software development is lumpy. Google's other problem is that everyone wants something different. Many people seem to want a simple LAMP replacement, java, SSL, bare domains, billing (an end to quotas)... oh yes, and Django 1.0! Given they have limited resources, I think their solution (the star driven issue list) is a fair solution, and again smacks of a developer-driven process. So if what you want is firm deadlines (resulting in buggy compromised solutions) and development priorities set by a suit (who absolutely won't understand the difference between Django versions), I think you might want to try the cloud service from the other crowd (the one that makes buggy compromised operating systems too ;). Your point about chatter on this list is true - it also occurred to me the other day. My guess is that Google are waiting to see how Appengine is received before pumping lots of cash into promoting and developing it. If you like the model (I do *a lot*) then develop successful apps on it and publicise them - show the world that Appengine is an excellent platform. That'll give Google the confidence to invest in it's continued existence. --~--~-~--~~~---~--~~ 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] Sending same email to about 200 different TO adresses fails
I am sending 1 email to about 200 persons using a loop De email text is evrytame teh same, the TO address is derived from a Bigtable entity. I store each email separately. Strange enough sometimes i have 10 or 20 adresses receiving the email, but not all. I do have a try: except around it so failures should be skipped. The program is not over the CPU limiets and nothing in the logs. It looks to me that everything is fine, but the emails are in cyberspace I tried to use BCC but that does not work. I am not spamming. We are a foundation with about 250 registered members who have been victum to fraude. We organised ourselves through Google App Engine! regards Any help our a working example for a loop of emails so taht i can verify my code would be helpful. I am sitting now behind another PC so i cannot post code yet Stelg --~--~-~--~~~---~--~~ 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: dynamic kind and problem when restarting the server
The NewKind class must be defined before accessing entities of that kind. Thanks. That make sense. I have another question. What I want to do is this: I'm building a generic 'High Score Server'. So probably there will be 10 or 20 games hosted in this server. But each game has different things to save. eg: Pacman: Score (integer), Level(integer), Name(string) Outrun:Score (float), Name(string), used card (integer) Olympics - Hurdles: Score (float), character used (integer), hurdles_jumped_correctly (integer) etc... My initial approach was: 'I need to create a table for each game, and these table can be customized by the create of the game with CREATE TABLE, ALTER TABLE'. So, my question is, what's the best approach to implement that with the Google App Engine framework ? Thanks, riq. --~--~-~--~~~---~--~~ 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: DEADLINE Exceeded Messages ?!
Here is what I get from the profile of a query that does not exceed the deadline, but comes close: ncalls tottime percall cumtime percall filename:lineno(function) 15/130.2990.0201.0180.078 {__import__} 160.2170.0140.2350.015 {google3.apphosting.runtime._apphosting_runtime___python__apiproxy.Wait} Does this mean that I am making 16 datastore requests and that I need to cut down on the number of such requests? On Dec 18, 1:13 pm, Marzia Niccolai ma...@google.com wrote: This means your app is taking more than 10 seconds to respond to a request. Try processing less data per request, or work on streamlining the way that you process the data during a request. -Marzia On Thu, Dec 18, 2008 at 12:48 PM, Derrick derrickrbu...@gmail.com wrote: I am getting class 'google.appengine.runtime.DeadlineExceededError' On Dec 18, 12:12 pm, Marzia Niccolai ma...@google.com wrote: Hi Derrick, What DeadlineExceedError message are you getting, there are a few different deadlines you can run in to with App Engine. The most common would be the request deadline. Any given request with App Engine must be completed within 10 seconds. This is the runtime DeadlineExceededError Various APIs, like the datastore and URLFetch also have deadlines to ensure that those calls return within the overall request deadline. If you are running in to this deadline, you will get the apiproxy_errors.DeadlineExceededError. The problem shouldn't have anything to do with indexing, since simple queries indexes are automatically generated, there is no need specify them in the index.yaml (see this article: http://code.google.com/appengine/articles/index_building.html) From your description I can imagine the problem is either you are requesting too much information from the datastore (running in to apiproxy_errors.DeadlineExceededError) in one request. The amount of data you can return in a query will depend on the size and shape of your data, but you can test this by reducing the amount of data you query for in one call. The other issue I can see is that you are just taking too long to return the entire request. This probably happens because it takes too long to process all of your results before the request deadline. Generally in such a case we'd suggest profiling your application which will indicate on which calls, and for how long, your app spends it's time. Some good information on profiling can be found in our FAQ: http://code.google.com/appengine/kb/commontasks.html#profiling Screencast: Optimizing Your App: Profiling and Memcachehttp:// www.youtube.com/watch?v=Zip1G6-NiMM And the Google I/O talk 'Building a Production Quality Application on Google App Engine: http://sites.google.com/site/io/best-practices---building-a-productio... -Marzia On Thu, Dec 18, 2008 at 10:39 AM, Derrick derrickrbu...@gmail.com wrote: I am consistently getting Deadline exceeded messages. The problem is that my individual requests are trivial: do a query or two to BigTable, serialize the results, and return them. So, what could be causing these messages. How are deadlines actually measured on app engine? In my case, I am sending a number (10-50) of requests in parallel. Each individual request retrieves a single row in a table plus one or two rows in related tables. I would guess that that CPU time usage is measured by interrupting the thread serving a request at regular intervals. The question is, how does this interrupt ascertain whether a CPU deadline has been exceeded. I hypothesize that when the poller wakes up, it checks to see which application has the cpu, and adds a tick to the count for that user. If the same application is using the CPU as the previous time the poller awoke, then the poller checks to see if the tick count exceeds the deadline. If so, it initiates a deadline exceeded message and terminates the request. If this is the algorithm, then it is very problematic for me. Will someone from the Google App Engine team explain to us the workings of the Deadline measuring algorithm so that we can adjust our application for work on the platform. Also, could the problem have anything to do with indexing? Our queries are dirt simple: a single query parameter, so we do not generate indices for them manually. --~--~-~--~~~---~--~~ 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] Over Quota - seems like for no reason
My app is showsing as Over Quota and has been for hours. The dashboard shows basically no activity all day (maybe 50 requests) I suspected a possible problem with high cpu but I don't even have a single high cpu warning in the logs today. Please help! -dk --~--~-~--~~~---~--~~ 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: Over Quota - seems like for no reason
Hi, For which app id are you experiencing this? -Marzia On Thu, Dec 18, 2008 at 2:41 PM, dk davemk...@gmail.com wrote: My app is showsing as Over Quota and has been for hours. The dashboard shows basically no activity all day (maybe 50 requests) I suspected a possible problem with high cpu but I don't even have a single high cpu warning in the logs today. Please help! -dk --~--~-~--~~~---~--~~ 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 name error ...
So there's somebody out there using my company name as a gmail account On Dec 18, 11:59 am, Jesaja Everling jeverl...@gmail.com wrote: Hi! This is due to the fact that App Engine apps share the gmail namespace. That means that if you already have a gmail-account registered, you cannot register an app with the same name. For example, I couldn't register jeverling. Best Regards, Jesaja Everling On Thu, Dec 18, 2008 at 8:52 PM, Webweave webwe...@gmail.com wrote: When I try to create my app name with my company name (AccuWeaver), it tells me An App or Google Account already exists with that name. Now how is that possible, when that is my company name, and I'm the only one with rights to that name ? How do I find out who is using my company name where it impacts Google 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] Having problems starting up the app server itself, please help me!
I am having trouble trying to start the app server, I am using Python 2.5 on Windows XP SP3, and am trying to start it with the command: dev_appserver.py helloworld.every time the error seems to be different, but the command window just closes and doesnt bind to localhost:8080. Any help would be appreciated. Thanks, --Cody --~--~-~--~~~---~--~~ 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: SMS Issues + Form Broken
I just tried to submit an issue regarding SMS verification, however it appears that form is also broken, so I'll reproduce it here: Telstra is listed as one of your supported carriers, however if I input my phone number (after selecting Other (Not Listed)), I get a message saying: There were errors: * Mobile Number or Username My phone number I'm trying to enter is +61 044760. I have tried +61 044760, 61044760 and various other combinations, however none work. Try +61 44760, that is without '0' after the country code. --~--~-~--~~~---~--~~ 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: djangoforms unicode error
Is this a bug or a limitation of Django version in GAE? You should prefix Unicode strings with 'u': tipo=db.StringProperty(multiline=False,choices=set([uPessoa Física,uPessoa Jurídica])) -- www.muspy.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] Using a validator with a ListProperty is error-prone
Let's say you define a Model with a ListProperty with a validator: def ValidateTagNames(names): for name in names: if not IsValidTagName(name): raise db.BadValueError(Invalid tag name '%s' % name) class Item(db.Model): tags = db.StringListProperty(validator=ValidateTagNames) Now, validator is only called from Property.validate, which is only called by the descriptor method Property.__set__. This means that if you mutate a string list property's value with something like my_item.tags.append(new_tag) the custom validator is *not* invoked. Nor is it invoked at Model.put() time. It is, on the other hand, invoked when reading from the datastore. Thus, if you make the mistake of using a statement like the one above, it will happily succeed, as will an ensuing item.put() call... but any attempt to then read the saved object from the datastore will raise an exception. Admittedly, this is a bit of a doctor, it hurts when I do that case... but it seems really error-prone to completely disallow mutation of ListProperty values. I've been working around it in my app by overriding Item.put() with a method that does self.tags = self.tags, but this is an ugly hack (and also fails to work if you use db.put). One simple possibility would be to make the following change to ListProperty.get_value_for_datastore: --- a/__init__.py +++ b/__init__.py @@ -2295,8 +2295,11 @@ class ListProperty(Property): Returns: validated list appropriate to save in the datastore. -return self.validate_list_contents( +value = self.validate_list_contents( super(ListProperty, self).get_value_for_datastore (model_instance)) +if self.validator: + self.validator(value) +return value class StringListProperty(ListProperty): Does that seem reasonable? --dave -- glas...@davidglasser.net | langtonlabs.org | flickr.com/photos/glasser/ --~--~-~--~~~---~--~~ 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: Sending same email to about 200 different TO adresses fails
send_mail() takes good amount of time to execute. Call it repeatedly in a loop and your request will soon time out: http://code.google.com/status/appengine/detail/mail/2008/12/18#ae-trust-detail-mail-send-mail-latency In my app I send one e-mail per request (triggered from an external box) and also have a delay between requests to avoid over-quota errors. -- www.muspy.com On Dec 19, 7:35 am, stelg stelg.best...@gmail.com wrote: I am sending 1 email to about 200 persons using a loop De email text is evrytame teh same, the TO address is derived from a Bigtable entity. I store each email separately. Strange enough sometimes i have 10 or 20 adresses receiving the email, but not all. I do have a try: except around it so failures should be skipped. The program is not over the CPU limiets and nothing in the logs. It looks to me that everything is fine, but the emails are in cyberspace I tried to use BCC but that does not work. I am not spamming. We are a foundation with about 250 registered members who have been victum to fraude. We organised ourselves through Google App Engine! regards Any help our a working example for a loop of emails so taht i can verify my code would be helpful. I am sitting now behind another PC so i cannot post code yet Stelg --~--~-~--~~~---~--~~ 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 name error ...
Sorry, it seems that I misunderstood the way appspot shares the gmail namespace. I just tried, and was able to register an app jeverling. So it seems there is another problem. Either someone has already registered the application, or something else. Can't help you with this. On Thu, Dec 18, 2008 at 11:48 PM, Webweave webwe...@gmail.com wrote: So there's somebody out there using my company name as a gmail account On Dec 18, 11:59 am, Jesaja Everling jeverl...@gmail.com wrote: Hi! This is due to the fact that App Engine apps share the gmail namespace. That means that if you already have a gmail-account registered, you cannot register an app with the same name. For example, I couldn't register jeverling. Best Regards, Jesaja Everling On Thu, Dec 18, 2008 at 8:52 PM, Webweave webwe...@gmail.com wrote: When I try to create my app name with my company name (AccuWeaver), it tells me An App or Google Account already exists with that name. Now how is that possible, when that is my company name, and I'm the only one with rights to that name ? How do I find out who is using my company name where it impacts Google 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: App name error ...
Probably. However, on a side note, you can create a application with the name AccuWeaver2 (or the like), and then when you have it run on your domain, your users wouldn't notice a thing... On Dec 18, 5:48 pm, Webweave webwe...@gmail.com wrote: So there's somebody out there using my company name as a gmail account On Dec 18, 11:59 am, Jesaja Everling jeverl...@gmail.com wrote: Hi! This is due to the fact that App Engine apps share the gmail namespace. That means that if you already have a gmail-account registered, you cannot register an app with the same name. For example, I couldn't register jeverling. Best Regards, Jesaja Everling On Thu, Dec 18, 2008 at 8:52 PM, Webweave webwe...@gmail.com wrote: When I try to create my app name with my company name (AccuWeaver), it tells me An App or Google Account already exists with that name. Now how is that possible, when that is my company name, and I'm the only one with rights to that name ? How do I find out who is using my company name where it impacts Google 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: App name error ...
Hi, You didn't mis-understand. In fact, we recently released a change so that you can now claim your own gmail name as an app id. You were correct originally, someone most likely has that string as a gmail address. -Marzia On Thu, Dec 18, 2008 at 3:36 PM, Jesaja Everling jeverl...@gmail.comwrote: Sorry, it seems that I misunderstood the way appspot shares the gmail namespace. I just tried, and was able to register an app jeverling. So it seems there is another problem. Either someone has already registered the application, or something else. Can't help you with this. On Thu, Dec 18, 2008 at 11:48 PM, Webweave webwe...@gmail.com wrote: So there's somebody out there using my company name as a gmail account On Dec 18, 11:59 am, Jesaja Everling jeverl...@gmail.com wrote: Hi! This is due to the fact that App Engine apps share the gmail namespace. That means that if you already have a gmail-account registered, you cannot register an app with the same name. For example, I couldn't register jeverling. Best Regards, Jesaja Everling On Thu, Dec 18, 2008 at 8:52 PM, Webweave webwe...@gmail.com wrote: When I try to create my app name with my company name (AccuWeaver), it tells me An App or Google Account already exists with that name. Now how is that possible, when that is my company name, and I'm the only one with rights to that name ? How do I find out who is using my company name where it impacts Google 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] Best way to mass mail
Suppose one of the features I have on the App I'm creating, is the ability for users to subscribe for certain alerts. 1. What would be the best way to implement this considering the current features available on google app engine (and possibly other free services)? 2. [this one should probably be answered by a google employee:] Is this type of functionality ever going to be fully supported by 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: Data is skipped
Hi, Marzia. Thank you for your advice. I've done it. Thanks. On 12月18日, 午前2:29, Marzia Niccolai ma...@google.com wrote: Hi, I believe that all you will need to do is get() the entity, and then call put() on it again. You shouldn't need to actually create a new entity. -Marzia On Tue, Dec 16, 2008 at 8:10 PM, paptimus papti...@gmail.com wrote: Hi, Marizia. I'm sorry to cross the post. I understand this issue is fixed. But I think that the data that put while the issue is remaining are under the influence of this issue. So the way to reccover the data is to register as new entity and to delete old one. Is it correct? Thanks. On 12月17日, 午前4:04, paptimus papti...@gmail.com wrote: Hi, Marzia. Also, have you tried adding this index to your index.yaml and uploading it with your application: - kind: Ownership properties: - name: user - name: deleted - name: created_on direction: desc I added and uploaded this index according as your advice. But this problem is not remaining. So I vacuumed the below index which is generated by sdk and previously created. - kind: Ownership properties: - name: deleted - name: user - name: created_on direction: desc But the situation is the same as before. Thanks. On 12月16日, 午前11:52, paptimus papti...@gmail.com wrote: Hi, Marzia. Thank you for your reply. It is missing. For example, I run this query: query = models.Ownership.all().filter('user =', papti...@gmail.com),filter('deleted =',False).order('- created_on').fetch(0, 20) These lists are my expecting/getting result. The getting result contains no 'NG' data but folowing 3 data. expecting: 2008-12-12 10:25:23.397434 2008-12-09 18:04:23.439058 2008-12-03 15:22:46.754546 2008-12-03 15:22:45.251281 2008-12-03 15:22:42.594933 2008-12-03 15:22:41.149333 2008-12-03 15:22:39.559995 2008-12-03 15:22:38.116000 2008-12-03 15:22:36.511006 2008-12-03 15:22:35.117080 2008-12-03 15:22:33.679363 2008-12-03 15:22:32.119234 2008-12-03 15:22:30.461840 2008-12-03 15:22:28.936849 2008-12-03 15:22:27.518304 2008-12-03 15:22:26.039718 2008-12-03 15:22:24.665877NG 2008-12-03 15:22:23.188243 2008-12-03 15:22:21.681791NG 2008-12-03 15:22:20.245579NG getting: 2008-12-12 10:25:23.397434 2008-12-09 18:04:23.439058 2008-12-03 15:22:46.754546 2008-12-03 15:22:45.251281 2008-12-03 15:22:42.594933 2008-12-03 15:22:41.149333 2008-12-03 15:22:39.559995 2008-12-03 15:22:38.116000 2008-12-03 15:22:36.511006 2008-12-03 15:22:35.117080 2008-12-03 15:22:33.679363 2008-12-03 15:22:32.119234 2008-12-03 15:22:30.461840 2008-12-03 15:22:28.936849 2008-12-03 15:22:27.518304 2008-12-03 15:22:26.039718 2008-12-03 15:22:23.188243 2008-12-03 15:22:18.783426 2008-12-03 15:22:17.303290 2008-12-03 15:22:13.102364 Thanks. On 12月16日, 午前5:18, Marzia Niccolai ma...@google.com wrote: Hi, Thanks for the report, but I'm not sure I understand how exactly your query is having an issue. Can you elaborate on this statement: The result set is ordered by '-created_on', but it is not sequential. What data are you getting? What data are you expecting? Is it misordered or missing? Also, have you tried adding this index to your index.yaml and uploading it with your application: - kind: Ownership properties: - name: user - name: deleted - name: created_on direction: desc Thanks, Marzia On Mon, Dec 15, 2008 at 11:05 AM, paptimus papti...@gmail.com wrote: I get an additional information. I vacuumed the problem index and rebuilt the same index. The number of result set before vacuum_index is not same as one of after that. Obviously, query is same. So I think my app get into this situation while rebuilding index. I hope gae team checks my app's index. My app id is 'book-case-2' and kind is 'Ownership'. Thanks. On 12月16日, 午前1:23, koji matsui papti...@gmail.com wrote: Hi, djidjadji, thanks for your comment. I tried both query as below: query = models.Ownership.all().filter('user', user),filter('deleted', False).order('-created_on').fetch(offset, amount) query = models.Ownership.all().filter('user =', user),filter('deleted =', False).order('-created_on').fetch(offset, amount) But the definition of index sdk generates is exactly the same. And lack of data in result set is the same. So, I think this problem happens when server creates the index. Thanks. 2008/12/15 djidjadji djidja...@gmail.com: A snippet from the manual == filter(property_operator, value)
[google-appengine] Re: Data is skipped
Sorry, it is my mistype. query = models.Ownership.all().filter('user =', user),filter('deleted =',False).order('-created_on').fetch(20, 0) Thanks. On 12月18日, 午前3:29, djidjadji djidja...@gmail.com wrote: From the manual: fetch(limit, offset=0) Your query query = models.Ownership.all().filter('user =', user),filter('deleted =',False).order('-created_on').fetch(0, 20) You tell fetch you want 0 elements, and then skip the first 20. 2008/12/17 Marzia Niccolai ma...@google.com: Hi, I believe that all you will need to do is get() the entity, and then call put() on it again. You shouldn't need to actually create a new entity. -Marzia On Tue, Dec 16, 2008 at 8:10 PM, paptimus papti...@gmail.com wrote: Hi, Marizia. I'm sorry to cross the post. I understand this issue is fixed. But I think that the data that put while the issue is remaining are under the influence of this issue. So the way to reccover the data is to register as new entity and to delete old one. Is it correct? Thanks. On 12月17日, 午前4:04, paptimus papti...@gmail.com wrote: Hi, Marzia. Also, have you tried adding this index to your index.yaml and uploading it with your application: - kind: Ownership properties: - name: user - name: deleted - name: created_on direction: desc I added and uploaded this index according as your advice. But this problem is not remaining. So I vacuumed the below index which is generated by sdk and previously created. - kind: Ownership properties: - name: deleted - name: user - name: created_on direction: desc But the situation is the same as before. Thanks. On 12月16日, 午前11:52, paptimus papti...@gmail.com wrote: Hi, Marzia. Thank you for your reply. It is missing. For example, I run this query: query = models.Ownership.all().filter('user =', papti...@gmail.com),filter('deleted =',False).order('- created_on').fetch(0, 20) These lists are my expecting/getting result. The getting result contains no 'NG' data but folowing 3 data. expecting: 2008-12-12 10:25:23.397434 2008-12-09 18:04:23.439058 2008-12-03 15:22:46.754546 2008-12-03 15:22:45.251281 2008-12-03 15:22:42.594933 2008-12-03 15:22:41.149333 2008-12-03 15:22:39.559995 2008-12-03 15:22:38.116000 2008-12-03 15:22:36.511006 2008-12-03 15:22:35.117080 2008-12-03 15:22:33.679363 2008-12-03 15:22:32.119234 2008-12-03 15:22:30.461840 2008-12-03 15:22:28.936849 2008-12-03 15:22:27.518304 2008-12-03 15:22:26.039718 2008-12-03 15:22:24.665877NG 2008-12-03 15:22:23.188243 2008-12-03 15:22:21.681791NG 2008-12-03 15:22:20.245579NG getting: 2008-12-12 10:25:23.397434 2008-12-09 18:04:23.439058 2008-12-03 15:22:46.754546 2008-12-03 15:22:45.251281 2008-12-03 15:22:42.594933 2008-12-03 15:22:41.149333 2008-12-03 15:22:39.559995 2008-12-03 15:22:38.116000 2008-12-03 15:22:36.511006 2008-12-03 15:22:35.117080 2008-12-03 15:22:33.679363 2008-12-03 15:22:32.119234 2008-12-03 15:22:30.461840 2008-12-03 15:22:28.936849 2008-12-03 15:22:27.518304 2008-12-03 15:22:26.039718 2008-12-03 15:22:23.188243 2008-12-03 15:22:18.783426 2008-12-03 15:22:17.303290 2008-12-03 15:22:13.102364 Thanks. On 12月16日, 午前5:18, Marzia Niccolai ma...@google.com wrote: Hi, Thanks for the report, but I'm not sure I understand how exactly your query is having an issue. Can you elaborate on this statement: The result set is ordered by '-created_on', but it is not sequential. What data are you getting? What data are you expecting? Is it misordered or missing? Also, have you tried adding this index to your index.yaml and uploading it with your application: - kind: Ownership properties: - name: user - name: deleted - name: created_on direction: desc Thanks, Marzia On Mon, Dec 15, 2008 at 11:05 AM, paptimus papti...@gmail.com wrote: I get an additional information. I vacuumed the problem index and rebuilt the same index. The number of result set before vacuum_index is not same as one of after that. Obviously, query is same. So I think my app get into this situation while rebuilding index. I hope gae team checks my app's index. My app id is 'book-case-2' and kind is 'Ownership'. Thanks. On 12月16日, 午前1:23, koji matsui papti...@gmail.com wrote: Hi, djidjadji, thanks for your comment. I tried both query as below: query = models.Ownership.all().filter('user', user),filter('deleted', False).order('-created_on').fetch(offset, amount) query = models.Ownership.all().filter('user =', user),filter('deleted =',
[google-appengine] Re: Best way to mass mail
Suppose one of the features I have on the App I'm creating, is the ability for users to subscribe for certain alerts. 1. What would be the best way to implement this considering the current features available on google app engine (and possibly other free services)? There are two issues to consider: * Calling send_mail() takes time, don't send too many emails in one request. * If you send too many emails within a short period of time you will get a quota exceeded error, even if you don't reach your daily email quota. What I do in my app is the following: * I ping a certain URL from an external box. * The handler of that URL sends one pending email. * Wait, rinse, repeat. Time to wait (in seconds) = 24 * 60 * 60 / daily_quota. -- www.muspy.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: Over Quota - seems like for no reason
Hi, This ended up being an issue that code in the Universal Feed Parser open source module was throwing an illegal system call since the production update last night. If anyone else is experiencing quota denials and using this module, please comment out these lines (start at 2686): try: return open(url_file_stream_or_string) except: pass Thanks, Marzia On Thu, Dec 18, 2008 at 2:43 PM, Marzia Niccolai ma...@google.com wrote: Hi, For which app id are you experiencing this? -Marzia On Thu, Dec 18, 2008 at 2:41 PM, dk davemk...@gmail.com wrote: My app is showsing as Over Quota and has been for hours. The dashboard shows basically no activity all day (maybe 50 requests) I suspected a possible problem with high cpu but I don't even have a single high cpu warning in the logs today. Please help! -dk --~--~-~--~~~---~--~~ 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: Google Team: Please Make Django 1.0 A Higher Priority
So far, for me App Engine has worked pretty well. The issue regarding Django 1.0 is a little more complicated than just use zipimport and django helper which is the standard response. While this works and is in fact what I use, there are some issues. One is that if your app doesn't have a lot of traffic Django is zipimported on almost every page request and the all monkey patching at init time doesn't seem super fast. This can blow out your CPU quota. The other thing is that the App Engine designers obviously had Django in mind when they designed App Engine and integrated (maybe included is a better word) it in the API. It's not just another feature request from the clamoring masses. I'm skeptical that upgrading to 1.0 would cause as much anguish as Google implies. Most serious users of Django use a zipped up 1.0 and the upgrade would be seamless. For the others, they've had a fair amount of time already to think about the changes and should be ready to make the changes if they haven't already. Also, App Engine is still beta which implies that every app running on it is in beta as well. Current users of those apps should expect some hiccups. I know there are a million other feature requests but this one is a little more of a basic API fix than a feature like adding Java or whatever (why don't the Java people just use one of the many hosted servlet environments anyway?). All in all, I'm pretty excited with App Engine. It was a great excuse to learn Python after programming in Java for many years, and I like the simplicity and basic level of constraints of the environment. Sure I would love a whole bunch more features but I figure they'll arrive eventually. It is a bit disconcerting that developer interest seems to have waned (based on forum traffic). And I wish Google would give us a little more open about what they are working on. I get the feeling that there are maybe three developers working on App Engine in their spare time and Google as a company isn't quite 100% sure they will fully support it. Please tell me I'm wrong. happy programming, - Claude On Dec 18, 1:12 pm, Greg g.fawc...@gmail.com wrote: I can understand the frustration when there seems to be little movement on something that is important to you... --~--~-~--~~~---~--~~ 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] The next step in Google Apps
I've just had an invite from Google Apps to participate. But I think I am at the next step along. My current site is well above the terms of use bandwidth (approx 1 Terabyte pm) split amongst servers across ISPs to balance cost. It does not use video (unless Flash swf counts) but it has upwards of 5 million page views pm (mostly school kids following a syllabus). I read a bit about 'burst activity' but lost interest - just tell me what it would cost as trying to fine tune a site along 'burst' lines is just too much hassle - assumption - busy in day - quiet at night is hard enough. I don't expect the service to be free (it's a shed-load of money per month to my current providers) Question: Is there a roll-out to a professional SLA style service? e.g. flexible bandwidth limits, simultaneous user guarantees, uptime definition, backups, malware detection, full database support, email and the rest of what ISP offer as USPs? --~--~-~--~~~---~--~~ 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: Google Team: Please Make Django 1.0 A Higher Priority
I just want to address one thing here: There is nothing in AppEngine that is tied in any way to django or any framework. They just expose a pure CGI model and service APIs (memcache, datastore and so forth). It is designed with the standard python model in mind; CGI and WSGI. It is included because it is the most popular framework out there, and easy to get started with. Any python framework that talks CGI or WSGI works great on appengine, including their own webapp mini-framework based on webob and django templates. That said, getting django 1.0 in appengine would be nice. I personally don't use it but I can appreciate the complexities of getting it working on your own with the current 1000 file and 1mb size limitations. Even better would be lifting those limitations so you wouldn't have to rely on them keeping it up to date. On Dec 19, 1:54 am, cz czer...@gmail.com wrote: So far, for me App Engine has worked pretty well. The issue regarding Django 1.0 is a little more complicated than just use zipimport and django helper which is the standard response. While this works and is in fact what I use, there are some issues. One is that if your app doesn't have a lot of traffic Django is zipimported on almost every page request and the all monkey patching at init time doesn't seem super fast. This can blow out your CPU quota. The other thing is that the App Engine designers obviously had Django in mind when they designed App Engine and integrated (maybe included is a better word) it in the API. It's not just another feature request from the clamoring masses. I'm skeptical that upgrading to 1.0 would cause as much anguish as Google implies. Most serious users of Django use a zipped up 1.0 and the upgrade would be seamless. For the others, they've had a fair amount of time already to think about the changes and should be ready to make the changes if they haven't already. Also, App Engine is still beta which implies that every app running on it is in beta as well. Current users of those apps should expect some hiccups. I know there are a million other feature requests but this one is a little more of a basic API fix than a feature like adding Java or whatever (why don't the Java people just use one of the many hosted servlet environments anyway?). All in all, I'm pretty excited with App Engine. It was a great excuse to learn Python after programming in Java for many years, and I like the simplicity and basic level of constraints of the environment. Sure I would love a whole bunch more features but I figure they'll arrive eventually. It is a bit disconcerting that developer interest seems to have waned (based on forum traffic). And I wish Google would give us a little more open about what they are working on. I get the feeling that there are maybe three developers working on App Engine in their spare time and Google as a company isn't quite 100% sure they will fully support it. Please tell me I'm wrong. happy programming, - Claude On Dec 18, 1:12 pm, Greg g.fawc...@gmail.com wrote: I can understand the frustration when there seems to be little movement on something that is important to you... --~--~-~--~~~---~--~~ 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] Do I have to login at 11:59pm to check my quota?
I'm trying to find out how much exactly I'm using (requests, bandwidth, ..etc.) per day. However, once the clock hits 12:00am, all the numbers reset and I can't find a way to see yesterday's numbers. Am I missing something? How do you guys get the exact number of requests you're doing per day? I'm considering setting my alarm clock to 11:50pm to remember to login and get a good glance at my traffic numbers. Suggestions? --~--~-~--~~~---~--~~ 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: DEADLINE Exceeded Messages ?!
Hi, Seems like you are also doing some heavy module importing. You could be able to trim that down as well. -Marzia On Thu, Dec 18, 2008 at 1:57 PM, Derrick derrickrbu...@gmail.com wrote: Here is what I get from the profile of a query that does not exceed the deadline, but comes close: ncalls tottime percall cumtime percall filename:lineno(function) 15/130.2990.0201.0180.078 {__import__} 160.2170.0140.2350.015 {google3.apphosting.runtime._apphosting_runtime___python__apiproxy.Wait} Does this mean that I am making 16 datastore requests and that I need to cut down on the number of such requests? On Dec 18, 1:13 pm, Marzia Niccolai ma...@google.com wrote: This means your app is taking more than 10 seconds to respond to a request. Try processing less data per request, or work on streamlining the way that you process the data during a request. -Marzia On Thu, Dec 18, 2008 at 12:48 PM, Derrick derrickrbu...@gmail.com wrote: I am getting class 'google.appengine.runtime.DeadlineExceededError' On Dec 18, 12:12 pm, Marzia Niccolai ma...@google.com wrote: Hi Derrick, What DeadlineExceedError message are you getting, there are a few different deadlines you can run in to with App Engine. The most common would be the request deadline. Any given request with App Engine must be completed within 10 seconds. This is the runtime DeadlineExceededError Various APIs, like the datastore and URLFetch also have deadlines to ensure that those calls return within the overall request deadline. If you are running in to this deadline, you will get the apiproxy_errors.DeadlineExceededError. The problem shouldn't have anything to do with indexing, since simple queries indexes are automatically generated, there is no need specify them in the index.yaml (see this article: http://code.google.com/appengine/articles/index_building.html) From your description I can imagine the problem is either you are requesting too much information from the datastore (running in to apiproxy_errors.DeadlineExceededError) in one request. The amount of data you can return in a query will depend on the size and shape of your data, but you can test this by reducing the amount of data you query for in one call. The other issue I can see is that you are just taking too long to return the entire request. This probably happens because it takes too long to process all of your results before the request deadline. Generally in such a case we'd suggest profiling your application which will indicate on which calls, and for how long, your app spends it's time. Some good information on profiling can be found in our FAQ: http://code.google.com/appengine/kb/commontasks.html#profiling Screencast: Optimizing Your App: Profiling and Memcachehttp:// www.youtube.com/watch?v=Zip1G6-NiMM And the Google I/O talk 'Building a Production Quality Application on Google App Engine: http://sites.google.com/site/io/best-practices---building-a-productio. .. -Marzia On Thu, Dec 18, 2008 at 10:39 AM, Derrick derrickrbu...@gmail.com wrote: I am consistently getting Deadline exceeded messages. The problem is that my individual requests are trivial: do a query or two to BigTable, serialize the results, and return them. So, what could be causing these messages. How are deadlines actually measured on app engine? In my case, I am sending a number (10-50) of requests in parallel. Each individual request retrieves a single row in a table plus one or two rows in related tables. I would guess that that CPU time usage is measured by interrupting the thread serving a request at regular intervals. The question is, how does this interrupt ascertain whether a CPU deadline has been exceeded. I hypothesize that when the poller wakes up, it checks to see which application has the cpu, and adds a tick to the count for that user. If the same application is using the CPU as the previous time the poller awoke, then the poller checks to see if the tick count exceeds the deadline. If so, it initiates a deadline exceeded message and terminates the request. If this is the algorithm, then it is very problematic for me. Will someone from the Google App Engine team explain to us the workings of the Deadline measuring algorithm so that we can adjust our application for work on the platform. Also, could the problem have anything to do with indexing? Our queries are dirt simple: a single query parameter, so we do not generate indices for them manually. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google
[google-appengine] Announcing Sluggable-mixin
I've just released a new AppEngine open source project on Google Code: http://code.google.com/p/sluggable-mixin/ It adds the ability to associate a user-friendly, search-friendly, URL- friendly slug with any datastore entity. The code was extracted from my AppEngine blogging software that you can see in action at blog.adamcrossland.net. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] how to create animated gif on GAE server?
Is there any package installable on GAE that I can use to create animated gifs on the serverside? Another post seems to suggest that i can connect to external web services to do this, but i want to have tighter control without external url requests... Any comment is appreciated thanks jason --~--~-~--~~~---~--~~ 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: DEADLINE Exceeded Messages ?!
Thanks. On Dec 18, 5:17 pm, Marzia Niccolai ma...@google.com wrote: Hi, Seems like you are also doing some heavy module importing. You could be able to trim that down as well. -Marzia On Thu, Dec 18, 2008 at 1:57 PM, Derrick derrickrbu...@gmail.com wrote: Here is what I get from the profile of a query that does not exceed the deadline, but comes close: ncalls tottime percall cumtime percall filename:lineno(function) 15/13 0.299 0.020 1.018 0.078 {__import__} 16 0.217 0.014 0.235 0.015 {google3.apphosting.runtime._apphosting_runtime___python__apiproxy.Wait} Does this mean that I am making 16 datastore requests and that I need to cut down on the number of such requests? On Dec 18, 1:13 pm, Marzia Niccolai ma...@google.com wrote: This means your app is taking more than 10 seconds to respond to a request. Try processing less data per request, or work on streamlining the way that you process the data during a request. -Marzia On Thu, Dec 18, 2008 at 12:48 PM, Derrick derrickrbu...@gmail.com wrote: I am getting class 'google.appengine.runtime.DeadlineExceededError' On Dec 18, 12:12 pm, Marzia Niccolai ma...@google.com wrote: Hi Derrick, What DeadlineExceedError message are you getting, there are a few different deadlines you can run in to with App Engine. The most common would be the request deadline. Any given request with App Engine must be completed within 10 seconds. This is the runtime DeadlineExceededError Various APIs, like the datastore and URLFetch also have deadlines to ensure that those calls return within the overall request deadline. If you are running in to this deadline, you will get the apiproxy_errors.DeadlineExceededError. The problem shouldn't have anything to do with indexing, since simple queries indexes are automatically generated, there is no need specify them in the index.yaml (see this article: http://code.google.com/appengine/articles/index_building.html) From your description I can imagine the problem is either you are requesting too much information from the datastore (running in to apiproxy_errors.DeadlineExceededError) in one request. The amount of data you can return in a query will depend on the size and shape of your data, but you can test this by reducing the amount of data you query for in one call. The other issue I can see is that you are just taking too long to return the entire request. This probably happens because it takes too long to process all of your results before the request deadline. Generally in such a case we'd suggest profiling your application which will indicate on which calls, and for how long, your app spends it's time. Some good information on profiling can be found in our FAQ: http://code.google.com/appengine/kb/commontasks.html#profiling Screencast: Optimizing Your App: Profiling and Memcachehttp:// www.youtube.com/watch?v=Zip1G6-NiMM And the Google I/O talk 'Building a Production Quality Application on Google App Engine: http://sites.google.com/site/io/best-practices---building-a-productio. .. -Marzia On Thu, Dec 18, 2008 at 10:39 AM, Derrick derrickrbu...@gmail.com wrote: I am consistently getting Deadline exceeded messages. The problem is that my individual requests are trivial: do a query or two to BigTable, serialize the results, and return them. So, what could be causing these messages. How are deadlines actually measured on app engine? In my case, I am sending a number (10-50) of requests in parallel. Each individual request retrieves a single row in a table plus one or two rows in related tables. I would guess that that CPU time usage is measured by interrupting the thread serving a request at regular intervals. The question is, how does this interrupt ascertain whether a CPU deadline has been exceeded. I hypothesize that when the poller wakes up, it checks to see which application has the cpu, and adds a tick to the count for that user. If the same application is using the CPU as the previous time the poller awoke, then the poller checks to see if the tick count exceeds the deadline. If so, it initiates a deadline exceeded message and terminates the request. If this is the algorithm, then it is very problematic for me. Will someone from the Google App Engine team explain to us the workings of the Deadline measuring algorithm so that we can adjust our application for work on the platform. Also, could the problem have anything to do with indexing? Our queries are dirt simple: a single query parameter, so we do not generate indices
[google-appengine] Re: Own domain suddenly stops working!
It is Chinese 'great firewall' in action. The whole ghs.google.com is blocked. If your GAE project uses custom domain (which I suspect most do), then your domain will not be visible within mainland China, at least for now. Access to appspot.com is OK. This is a risk you may want to consider if your audience includes China. Does Google plan to do something about it? Best, Will On Thu, Dec 18, 2008 at 9:38 AM, Vocalster App Admin vocalster@gmail.com wrote: Hi Marzia, Alright, here is something interesting. I am in China, I can visit bianshengbaobao.appspot.com with no problem, but not www.vocalster.com. I can visit www.vocalster.com via a proxy though. Perhaps the Chinese 'Great wall' is doing something weired. My ping to www.vocalster.com also failed. This happened only two days ago, before both domains are fine. Thanks, Will On Thu, Dec 18, 2008 at 1:16 AM, Marzia Niccolai ma...@google.com wrote: Hi, This seems to be working for me today. Were you able to find a solution? Or did it just start to work again? -Marzia On Tue, Dec 16, 2008 at 9:33 PM, vocalster vocalster@gmail.comwrote: Hi there, I've pointed my own domain www.vocalster.com to bianshengbaobao.appspot.com. It had worked fine until last night. Now only I can visit bianshengbaobao.appspot.com but not the other, it says 'time out', as if the domain had no DNS record. Any insights? TIA, Will --~--~-~--~~~---~--~~ 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: 18 hours of Over Quota, Dashboard and Quota Details indicate everything's fine
Thanks Thomas, Marzia and Jeff had it sorted out in no time. From the Over Quota - seems like for no reason thread: On Dec 19, 11:48 am, Marzia Niccolai ma...@google.com wrote: This ended up being an issue that code in the Universal Feed Parser open source module was throwing an illegal system call since the production update last night. If anyone else is experiencing quota denials and using this module, please comment out these lines (start at 2686): try: return open(url_file_stream_or_string) except: pass The offending lines are 1825-1828 in my version of feedparser.py (v4.1 Rev: 1.92 ). No errors were being logged in the Dashboard logs. Just out of curiosity, what kind of app is it? Currently the app just sucks in a bunch of Blogger feeds for display, so Universal Feed Parser was a key part of the site! --~--~-~--~~~---~--~~ 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: Django+Appengine vs Appengine
Personally: I haven't used Python in a few years, and I've never used Django, though it looks good. Most of my recent web work has been LAMPish (including large structured OO projects in PHP 5). I've found the learning curve with GAE to be pretty immense but presumably worthwhile. I'm very impressed with what Google has done so far. Now considering the facts that a) lots of the good bits from Django are either included in GAE (templates) or don't work with GAE (some of the admin stuff), b) the version of Django that works out of the box is old (.96), and c) the workarounds for getting new Django to run seem like I'll be chasing my tail a lot since I'm not even sure how it's supposed to work in the first place... I decided to build my first projects using just webapp - no Django. This way I can familiarize myself with Django's template language and all the gotchas inherent in GAE itself. And hopefully by the time I'm ready to jump into Django, they'll have a newer version installed by default. This is MY current reasoning after dwelling on this for a few weeks given MY situation, which seems similar to the OP's. Your mileage may vary. This is an interesting discussion, though, and it would be helpful if anybody else with more experience would like to weigh in. These decisions may live with us for a long time :) --~--~-~--~~~---~--~~ 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: Best way to mass mail
That would work well for a small amount of users. But what if my app grows to like 5,000 emails? Your solution would definitely work well at that point! Do you maybe know of an external service that would allow me to set up s/t to broadcast to many url's or is there another way that i'm missing? On Dec 18, 7:43 pm, Alexander Kojevnikov alexan...@kojevnikov.com wrote: Suppose one of the features I have on the App I'm creating, is the ability for users to subscribe for certain alerts. 1. What would be the best way to implement this considering the current features available on google app engine (and possibly other free services)? There are two issues to consider: * Calling send_mail() takes time, don't send too many emails in one request. * If you send too many emails within a short period of time you will get a quota exceeded error, even if you don't reach your daily email quota. What I do in my app is the following: * I ping a certain URL from an external box. * The handler of that URL sends one pending email. * Wait, rinse, repeat. Time to wait (in seconds) = 24 * 60 * 60 / daily_quota. --www.muspy.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: Best way to mass mail
Whoops, typo: I meant: Your solution would definitely _not_ work well at that point! On Dec 18, 9:31 pm, MajorProgamming sefira...@gmail.com wrote: That would work well for a small amount of users. But what if my app grows to like 5,000 emails? Your solution would definitely work well at that point! Do you maybe know of an external service that would allow me to set up s/t to broadcast to many url's or is there another way that i'm missing? On Dec 18, 7:43 pm, Alexander Kojevnikov alexan...@kojevnikov.com wrote: Suppose one of the features I have on the App I'm creating, is the ability for users to subscribe for certain alerts. 1. What would be the best way to implement this considering the current features available on google app engine (and possibly other free services)? There are two issues to consider: * Calling send_mail() takes time, don't send too many emails in one request. * If you send too many emails within a short period of time you will get a quota exceeded error, even if you don't reach your daily email quota. What I do in my app is the following: * I ping a certain URL from an external box. * The handler of that URL sends one pending email. * Wait, rinse, repeat. Time to wait (in seconds) = 24 * 60 * 60 / daily_quota. --www.muspy.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: Best way to mass mail
That would work well for a small amount of users. But what if my app grows to like 5,000 emails? Your solution would definitely not work well at that point! I agree that it's far from being perfect, but I don't see why it wouldn't scale. I currently send about 100 emails a day, if this number grows, I would just need to buy more quota and ping the mail sender URL more frequently (every 17 seconds for 5,000 emails a day). Do you maybe know of an external service that would allow me to set up s/t to broadcast to many url's or is there another way that i'm missing? Google will eventually roll out a solution for background processing, you can switch to it when it's available. Also, a few workarounds have been discussed in this group, just search it for background. -- www.muspy.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: Best way to mass mail
Well another point is that if I want to send time-sensitive info, it would be impossible (i.e. with your method, you are running the sending throughout the entire day, but in some cases almost-instant sending is required). Another problem worth mentioning is that mass-fetching from the datastore (all the emails) would not work in the current appengine... On Dec 18, 9:50 pm, Alexander Kojevnikov alexan...@kojevnikov.com wrote: That would work well for a small amount of users. But what if my app grows to like 5,000 emails? Your solution would definitely not work well at that point! I agree that it's far from being perfect, but I don't see why it wouldn't scale. I currently send about 100 emails a day, if this number grows, I would just need to buy more quota and ping the mail sender URL more frequently (every 17 seconds for 5,000 emails a day). Do you maybe know of an external service that would allow me to set up s/t to broadcast to many url's or is there another way that i'm missing? Google will eventually roll out a solution for background processing, you can switch to it when it's available. Also, a few workarounds have been discussed in this group, just search it for background. --www.muspy.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: Search multiple tables
ok, but I like paging the table of person if I go back 10 rows of the table to return contact 15 records of 5 people where only 2 are not at the hearing held at first? If the logic would become very complex, it is possible but is too complex! There is a viable way to resolve this problem without harming the current system in the future? Create a single table is the only solution, but as in their own google io cites an example but not identical examples such details, is a doubt. 2008/12/17 ryan ryanb+appeng...@google.com ryanb%2bappeng...@google.com you're right that we don't support queries across kinds right now. that's true of SearchableModel and SearchableQuery as well as normal Model and queries. you can work around this by running a separate query for each kind and merging the results in memory. -- Desde já agradeço; Webysther Nunes Desenvolvedor Sênior --~--~-~--~~~---~--~~ 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: Announcing: System Status Dashboard, Quota Details Page, and a Preview of Billing
I will have this problem with Google Checkout, too. I'm in Brazil and it is not available here. Bad news... On Dec 16, 11:47 pm, lws68825 lws68...@gmail.com wrote: Hi Marzia, I am in China, Google Checkout is not available in China. I suggest you provide more payment methods. On 12月17日, 上午7时59分, Marzia Niccolai ma...@google.com wrote: Hi, When billing launches, it will be available in US Dollars to any country where its possible to use Google Checkout. -Marzia On Tue, Dec 16, 2008 at 3:48 PM, Greg g.fawc...@gmail.com wrote: Cool! I have a commercial app launching in January, and can't wait for billing to arrive so I can stop worrying about quota exceptions. The screenshot shows a country selection field, for working out tax. Is this likely to delay billing for developers from non-US countries? New Zealand in particular? --~--~-~--~~~---~--~~ 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] Sudden jump in CPU time
I've had a very steady increase in the number of users and number of requests to all my URL, everything looks the same as it did a few days ago, but now i've jumped from using 0% of my cpu quota to 48%? What's going on? I don't see any spikes in any of the data in the dashboard. --~--~-~--~~~---~--~~ 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] filesystem virtualization on top of datastore
i was hoping to seamlessly virtualize a filesystem on top of datastore. it seems there is no pure-python approach to filesystem virtualization, making this impossible. should i give up on this or have a i overlooked something? --~--~-~--~~~---~--~~ 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: Google Team: Please Make Django 1.0 A Higher Priority
On Dec 18, 5:10 pm, Thomas Johansson prenc...@gmail.com wrote: I just want to address one thing here: There is nothing in AppEngine that is tied in any way to django or any framework. They just expose a ... Sure, of course. By API I loosely included the supplied default appengine frameworks. I suspect there aren't many AppEngine users that are building apps without using webapp or django right now. If I'm wrong then carry on, I retract everything. ... complexities of getting it working on your own with the current 1000 file and 1mb size limitations... That's the easiest part, and most appengine django users are doing just that (simply by omitting seldom used parts of django). The cost of repeated zipimports on requests is the problem. It eats into your quota. Unless I'm not understanding how appengine works, I would assume that if django 1.0 was included with the default frameworks there would be a high likelihood that it is always in memory. I'm using Django 1.0 now on appengine without any other issues besides that. CPU quotas are really tight right now, so it makes sense to minimize expensive events. That's all I'm sayin' On Dec 19, 1:54 am, cz czer...@gmail.com wrote: ... --~--~-~--~~~---~--~~ 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: Best way to mass mail
Well another point is that if I want to send time-sensitive info, it would be impossible (i.e. with your method, you are running the sending throughout the entire day, but in some cases almost-instant sending is required). If you need to notify a lot of users on the same event instantly, then yes - that's a bit of a problem. If however the events are personal, that is if you need to notify only a handful of users on each event, then your maximum delay is the interval between your pings multiplied by the number of users to notify. Another problem worth mentioning is that mass-fetching from the datastore (all the emails) would not work in the current appengine... I probably miss something but why do you need mass-fetching? What I do in the mailer handler is fetching one pending entity, send the email, and reset the pending flag from the entity. If there are no pending entities, I just quit and wait for the next ping. --~--~-~--~~~---~--~~ 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: Full Text Search Issues
ryan is absolutely right. and if you can't already see it, the problem is that it's very unscalable to implement even the simplest of search on gogole app engine. Imagine if someone tries to search with 3 or 4 keywords. You need a separate index for each of those. Depending on the entity indexed, this can quickly become an exploding index and soon you'll find that your indexes would be stucked building for days and eventually erroring out (when rebuilding). We've found this out the hard way, see my post http://zhuocorporation.spaces.live.com/blog/cns!D76A58A7350B0D0B!1824.entry On Nov 24, 5:43 am, ryan ryanb+appeng...@google.com wrote: hi anurag! a couple things are going on here. first, you actually do need another index. appengine.ext.searchconvertssearchqueries into normal queries, with one filter for eachsearchkeyword. so, this: User.all().search('hug bos').order('-date_joined') is equivalent to this: User.gql(WHERE __searchable_text_index = 'hug' AND __searchable_text_index = 'bos' ORDER BY date_joined DESC) so, you need a different index for each different number ofsearch keywords that you want to support. specifically, for thissearch query, you'd need: - kind: User properties: - name: __searchable_text_index - name: __searchable_text_index - name: date_joined direction: desc if you drop the sort order, you no longer need an index because the query then has only equals filters. see: http://code.google.com/appengine/docs/datastore/queriesandindexes.htm... the second thing, which is causing your confusion, is that the bo keyword is being ignored due to this constant in appengine/ext/search/ __init__.py: # words shorter than this will not be indexed.searchkeywords shorter than # this will be ignored. _FULL_TEXT_MIN_LENGTH = 3 if you want to index andsearchon keywords under 3 characters, you can change this constant by adding this code to your main(), or somewhere similar: google.appengine.ext.search._FULL_TEXT_MIN_LENGTH = 1 --~--~-~--~~~---~--~~ 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] Datastore performance by Shape of Data
I understand generally that putting lots of small entities to the datastore is faster than putting lots of large entities. Can anybody say to what extent the difference is minimized if the large entities are barely changing? I.e. numerous indexes wouldn't need to update because only a single property changed... So is this as fast as a smaller entity, close to it, or barely different from the case where all properties changed? --~--~-~--~~~---~--~~ 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: SMS Issues + Form Broken
Yeah, that worked, thanks. In my opinion, it should do this automatically, as all Australian phone numbers begin with a 0 before the area code. Thanks, Ryan McCue. On Dec 19, 8:54 am, Alexander Kojevnikov alexan...@kojevnikov.com wrote: Try +61 44760, that is without '0' after the country code. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---