[google-appengine] Re: Upcoming maintenance notification
I can confirm that the email from the downtime-notify group was indeed routed to my Gmail spam folder. It includes a red-overlay message: Warning: This message may not be from whom it claims to be. Beware of following any links in it or of providing the sender with any personal information. There is also a link to Learn more which points to http://mail.google.com/support/bin/answer.py?hl=enctx=mailanswer=8253. Thanks for posting here, as I would have completely missed it On Jun 30, 2:51 pm, Ikai L (Google) ika...@google.com wrote: Hey guys, I just wanted to point out there are upcoming maintenance periods scheduled for July 7th and July 14th at 5pm Pacific. More details here: http://groups.google.com/group/google-appengine-downtime-notify/brows... Normally, I wouldn't post these notifications to this group, as they belong in the downtime notify group, however, users are reporting that this message went into their spam folder. Can anyone verify this, or let me know in this thread if this message was correctly delivered? If you want to be notified of upcoming maintenance periods, make sure to join this group: http://groups.google.com/group/google-appengine-downtime-notify We're doing our best to minimize these periods in the future, but there are times when these periods will be absolutely necessary. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email 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: Sitewide 500 errors
My site (http://gmailnotes.appspot.com) is down too, returning the same error. System status page indicates no issues. What's going on? On Feb 2, 8:00 am, Jesse Grosjean je...@hogbaysoftware.com wrote: I'm seeing the following error on all of my app engine sites including: https://appengine.google.com/http://www.hogbaysoftware.com/http://www.simpletext.ws/ ... - Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email 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: Sitewide 500 errors
Me too -- clearing cookies fixed the problem. Kinda strange, but whatever On Feb 2, 9:44 am, Natalie Gordon natalie.gor...@gmail.com wrote: Good one. I couldn't view my sitehttp://www.lenguajero.com. I cleared cookies and I can now get to the site. I can also log in fine and view it. On 2 feb, 09:32, Chris L clun...@gmail.com wrote: On Feb 2, 8:32 am, Matthew Trinneer matt.trinn...@gmail.com wrote: I'm seeing the same thing this morning too. Nothing in my logs, but site is inaccessible using Safari 4.0.4 (www.bijout.com) Actually your site (www.bijout.com) loads for me in Safari, and I found that my own site loads if I switch to a different user on my computer. Is something in cookies / cache triggering this? — Chris L -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email 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: Datastore timeouts - retry or just let fail?
If you are referring to http://appengine-cookbook.appspot.com/recipe/autoretry-datastore-timeouts/, yes it really works. A second try at reading from the datastore *is* nearly always successful. (I think once it took a 3rd try.) I would recommend this code for almost any app. On Jan 23, 6:25 am, Danny Tuppeny da...@tuppeny.com wrote: Hi all, I've got a query that fetches an entity by key_name, and now and then (maybe once or twice a day) it times out. Reading the docs, it seems like this is fairly common. Most of times I see it it's from a search bot or something, so I haven't really bothered doing anything, but since it is affecting visitors to, I wonder if I should. I saw some code that retries failed data access, but I don't know how long whatever causes these timeouts takes. Is it likely to just time out again if it's re-issued immediately? Should I just let the 500 be served, and hope the user/bot retries, or is it recommended to wait a few seconds and try again? I'd be interesting in hearing peoples experiences with retrying. Do retries just fail too, or does it generally clear up 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-appeng...@googlegroups.com. To unsubscribe from this group, send email 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: Has anyone done a source code control system hosted on App Engine?
I recommend http://www.projectlocker.com/ On Dec 3, 5:23 pm, samwyse samw...@gmail.com wrote: That's exactly what I want. (How did I miss it?) Thanks! On Dec 3, 5:11 am, Stephen sdea...@gmail.com wrote: On Dec 2, 11:51 pm, samwyse samw...@gmail.com wrote: I'd like to host Hg or something someplace with better uptime than my home server. http://hg-repos.appspot.com/mercurial_appengine/ See also: http://code.google.com/events/io/2009/sessions/MercurialBigTable.html -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: using a variable to buffer cache data...
Can I ask a follow up question about using task queues for datastore writes that don't have to be immediate? From the system status site, I can see that 2K writes take less than 100 ms on average (although the peaks are much larger). In contrast, is there any info on how long calls to the Task Queue API take, that is taskqueue.add()and deferred.defer()? john On Sep 16, 9:05 am, Nick Johnson (Google) nick.john...@google.com wrote: Hi Prashant, In addition to what Barry says below, a couple of comments: - You can safely ignore the 'high cpu' warnings if you've already done what you can to optimize the page. You're not going to hit any invisible limits based on them, just the usual CPU quota etc. - If 'eventual' writes are good enough, you may want to look into using the task queue. You can enqueue the write in the task queue, which will do it offline and avoid making the user wait. -Nick Johnson On Wed, Sep 16, 2009 at 2:11 PM, Prashant antsh...@gmail.com wrote: hi, my app needs to store some data to datastore for each every request, say 1 object per request which causes high cpu usage per request. to minimize the cpu usage per request, instead of adding the object directly to datastore i add the object to a LinkedList (every request) and use a cron which moves objects form the LinkedList to datastrore periodically, say every min. I feel it is not a good practice. I don't want to use memcache (instead of server ram) to store my LinkedList because delay in fetching and storing the list form/to memcache may cause loss of data from upcomming requests (or previous request). I don't want to use task queue either for some reasons. Experts please comment on this kind of implementation. Losses Benefits, any alternative good practice. Thanks. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: Documenation for datastore wrong?
In http://code.google.com/appengine/docs/python/datastore/creatinggettinganddeletingdata.html#Getting_Entities_Using_a_Query, there is a note stating that query objects have an interator interface, and that If the query object is used as an iterator, the query is executed with no limit or offset, the results are loaded into memory, and the value returned is an iterator over the results. So no, the documentation isn't wrong, just hard to follow in some places. On Oct 28, 11:45 am, Michał Klich klich.mic...@gmail.com wrote: Hi, While looking on docs for datastore at this websitehttp://code.google.com/appengine/docs/python/datastore/creatinggettin... I found code: if users.get_current_user(): user_pets = db.GqlQuery(SELECT * FROM Pet WHERE owner = :1, users.get_current_user()) for pet in user_pets: pet.spayed_or_neutered = True db.put(user_pets) Correct me if i am wrong but should not be it like: if users.get_current_user(): user_pets = db.GqlQuery(SELECT * FROM Pet WHERE owner = :1, users.get_current_user()) results = user_pets.fetch(10) for pet in results: pet.spayed_or_neutered = True db.put(results) I could not make it to work in original version but mnaybe i am wrong, i spent way too much time on this trying to figure it out. -- Michał Klich klich.mic...@gmail.com mic...@michalklich.comhttp://www.michalklich.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: Tragedy of the Commons, and Cold Starts
Is the current thinking that the biggest startup delay is due to module imports for Django? My app has 3 distinct parts, only 1 of which uses Django or any templating. Right now I use a single main() function for all 3 parts, but would the other 2 parts have better cold- start times if I partitioned them into a separate handler script that didn't import any Django stuff? On Oct 23, 4:02 pm, bugaco ice...@gmail.com wrote: I had a bit weird experience with this... So I wrote app (http://analytics.bugaco.com) that runs on App Engine. Than I looked at the request logs to see how it is running. Request logs suggested that I'm using a lot of CPU time on hitting the home page, but after that CPU time significantly decreases. It also had annoying red flag suggesting that servlet is using excessive resources and that I need to optimize it. Testing a bit, I noticed that pinging lets app be warm, and I had cron doing the pings for a few days; while also noticing that it does not do anything useful Conclusion: 1. If log files don't suggest that you are better off pinging people would not ping 2. It is stupid that google counts warming up your app toward CPU time (leading to profiling, that leads to pinging) 3. It is very stupid that applications can not denote 'keep this code path warm/cache it/or something' that will allow new users not to give up on the up until they get first response. So, as a conclusion, I think AppEngine is AWESOME. And I also think it SUCKS. I love SDK, ability to deploy and test and use all the cool things. I don't like the idea that it can not serve a (entry)page in 3-5 seconds as I think that it leaves bad taste in users mouth, and consequently bad taste in developers mouth. Finally, I am not sure I'll use AppEngine for developing other applications as I'd rather go with paid hosting that provides some level of performance on serving pages. I think Google would win a lot of good will if they at least provide quick serving of static resources. One may wonder how to do that, and given that they have all those yaml files there may be yaml file that specifies a warm static resource. This would decrease a need for pinging your app as it would allow user to hit entry page, and google to pre-cache app much easier. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: Clean way to code around timeouts?
Great -- we'll definitely include the update in our next production server push (this weekend) and I'll report back next week. Thanks, john On Oct 21, 2:50 pm, Robin B robi...@gmail.com wrote: You are absolutely correct that the code is not handling db.Timeout exceptions correctly. When I wrote the recipe, I could not simulate Timeouts on the production datastore, so I wrote some code to randomly raise db.Timeouts and tested that the exponential backoff worked well. Today, after load testing with 'ab' to hammer a test app in production, I could still not simulate a db.Timeout, but I could produce some TransactionFailedErrors and instead attempted to catch and retry those. It turns out apiproxy_stub_map.MakeSyncCall does not raise db.Timeout or db.TransactionFailedError, it raises a lower level Exception. The recipe is now updated in the cookbook to catch the correct low level exception. http://appengine-cookbook.appspot.com/recipe/autoretry-datastore-time... Under load, I can see the retries in my log output. If you are able to consistently produce db.Timeouts in production, please let me know that it is working for you too. Thanks for the helpful feedback, Robin On Oct 20, 5:09 pm, johntray john.tur...@gmail.com wrote: Has anyone reported problems using the autoretry cookbook method? I added a log message to check that the wrapper is getting installed, and I also added a log message in the retry loop. I see the log message that the wrapper is installed, however, I do *not* see any retry-log messages despite getting datastore timeouts. For what it is worth, I also used the development server to verify that the wrapper is indeed getting called, but of course, I don't experience datastore timeouts there. Has anyone else had problems with this code? john On Sep 30, 10:25 pm, Mike Wesner m...@konsole.net wrote: I saw this lower level way to handle Timeouts. Seems like the best way to handle it. No need to decorate or litter your code with retry stuff. http://appengine-cookbook.appspot.com/recipe/autoretry-datastore-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: Clean way to code around timeouts?
Has anyone reported problems using the autoretry cookbook method? I added a log message to check that the wrapper is getting installed, and I also added a log message in the retry loop. I see the log message that the wrapper is installed, however, I do *not* see any retry-log messages despite getting datastore timeouts. For what it is worth, I also used the development server to verify that the wrapper is indeed getting called, but of course, I don't experience datastore timeouts there. Has anyone else had problems with this code? john On Sep 30, 10:25 pm, Mike Wesner m...@konsole.net wrote: I saw this lower level way to handle Timeouts. Seems like the best way to handle it. No need to decorate or litter your code with retry stuff. http://appengine-cookbook.appspot.com/recipe/autoretry-datastore-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: About the latest release (1.2.4)
I'm with you. 1.2.4 is a big disappointment. On Aug 6, 9:38 pm, Emilien Klein emilien.kl...@gmail.com wrote: Is it just me or does it seem that this new release adds functionalities that don't seem to be on the list of that many people? The 3 issues that are linked to fromhttp://code.google.com/p/googleappengine/wiki/SdkReleaseNotes for release 1.2.4 were starred by respectively 2,1, and a whopping 5 persons! Making the assumption that these are all different people, that means that 8 persons have directly asked for these improvements... I'm not criticizing the release, just questioning the priorities... It's nice to somewhat improve the queries and the Remote API, but aren't there other features that seem to be much more urgent? What happened to the important points of the Roadmap to be done around June 2009, if I remember well?http://code.google.com/intl/fr/appengine/docs/roadmap.html Quite a lot of the things on this page seem to be much more urgent than what's just been released... Or maybe am I just asking too much??? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] cPickle speed
The GAE docs say that cPickle is aliased to pickle. Does that mean it isn't compiled and therefore doesn't run up to 1000 times faster than pickle on GAE? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: TinyMCE: Minimizing File Count
Whatever you end up doing, be sure to use an expiration date so that each client only retrieves the editor every week or so. (If I remember correctly, Google Page Speed recommends a one month expiration.) On Jun 29, 12:22 am, Stephen Mayer stephen.ma...@gmail.com wrote: I'm uncomfortable using zipserve because of its performance characteristics. Niceedit looks like a good option as well ... perhaps a bit smaller than TinyMCE minimal in bytes ... since it offers customized js packages. On Jun 28, 8:20 pm, johntray john.tur...@gmail.com wrote: To anyone using TinyMCE, I would recommend using zipserve to serve the editor from the distribution .zip file (so that it only counts as 1 file). zipserve is not well documented, but see the source file in the GAE distribution (google\appengine\ext\zipserve\__init__.py), also athttp://code.google.com/p/googleappengine/source/browse/trunk/python/g There is also a zipserve example athttp://code.google.com/p/google-app-engine-samples/. On Jun 28, 12:14 pm, Tim Hoffman zutes...@gmail.com wrote: I am using nicedit http://nicedit.com/itjustdecorates textareas so very little is required to make it work unless you want custom image uploading within in it. It also externally hosted so it doesn't have to add to your static file count. T On Jun 28, 11:26 pm, Stephen Mayer stephen.ma...@gmail.com wrote: So I was looking for a good way to impliment a rich text editor on a site I'm building. There are two obvious possible options: FckEdit and TinyMCE. TinyMCE is smaller and has a simpler design so I decided to work with it instead. Starting Point: 241 files, 101 folders, 1.41mb But since I only need the simple version of tinyMCE listed here:http://tinymce.moxiecode.com/examples/simple.php So I used firebug's net tab to watch which files tinyMCE actually loaded after adding it to my page. I created a list of these files, and then moved them into a tiny_mce_min folder. Then I switched to using my minimal installation directory ... eliminating most of the unnecessary code quickly and easily: Ending Point: 6 files, 7 folders, 182kb The process 1) Add the full TinyMCE to your dev enviornment, update app.yaml 2) Add TinyMCE to your script ... set any options you need to get the version you want 3) View TinyMCE in FireFox with Firebug powered up and the Net tab open 4) Create a version of your TinyMCE install that includes only the files from TinyMCE that are listed in the net tab 5) Use the minimal install in your deployment rather than the full install Now I think we could go one step further and eliminate a few file loads (like the lang files) if we hacked tinyMCE js code ... and get it down to one file (or three if you count the css + images). But right now I don't have time to do that. I realize that the file limit is now bigger than it used to be (now 3000 files) ... but think that it's very constructive to go through this process. Ultimately I don't want to use 241 of my file count limit towards something that could be loaded in one js file. Much of the time we have grown used to slapping in a library but using only a very small percentage of it. I'm hoping that library developers soon begin offering custom versions of their code that are highly optimized for a specific task. Hope this post might be helpful for someone else who confronts the same problem/issue. Another suggestion to Google: perhaps they could host some of these commonly requested libraries by default. I don't think that any of the rich text editors (fckedit or tinymce) are available on a CDN anywhere right now. - Stephen --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: TinyMCE: Minimizing File Count
To anyone using TinyMCE, I would recommend using zipserve to serve the editor from the distribution .zip file (so that it only counts as 1 file). zipserve is not well documented, but see the source file in the GAE distribution (google\appengine\ext\zipserve\__init__.py), also at http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/zipserve/__init__.py. There is also a zipserve example at http://code.google.com/p/google-app-engine-samples/. On Jun 28, 12:14 pm, Tim Hoffman zutes...@gmail.com wrote: I am using nicedit http://nicedit.com/it just decorates textareas so very little is required to make it work unless you want custom image uploading within in it. It also externally hosted so it doesn't have to add to your static file count. T On Jun 28, 11:26 pm, Stephen Mayer stephen.ma...@gmail.com wrote: So I was looking for a good way to impliment a rich text editor on a site I'm building. There are two obvious possible options: FckEdit and TinyMCE. TinyMCE is smaller and has a simpler design so I decided to work with it instead. Starting Point: 241 files, 101 folders, 1.41mb But since I only need the simple version of tinyMCE listed here:http://tinymce.moxiecode.com/examples/simple.php So I used firebug's net tab to watch which files tinyMCE actually loaded after adding it to my page. I created a list of these files, and then moved them into a tiny_mce_min folder. Then I switched to using my minimal installation directory ... eliminating most of the unnecessary code quickly and easily: Ending Point: 6 files, 7 folders, 182kb The process 1) Add the full TinyMCE to your dev enviornment, update app.yaml 2) Add TinyMCE to your script ... set any options you need to get the version you want 3) View TinyMCE in FireFox with Firebug powered up and the Net tab open 4) Create a version of your TinyMCE install that includes only the files from TinyMCE that are listed in the net tab 5) Use the minimal install in your deployment rather than the full install Now I think we could go one step further and eliminate a few file loads (like the lang files) if we hacked tinyMCE js code ... and get it down to one file (or three if you count the css + images). But right now I don't have time to do that. I realize that the file limit is now bigger than it used to be (now 3000 files) ... but think that it's very constructive to go through this process. Ultimately I don't want to use 241 of my file count limit towards something that could be loaded in one js file. Much of the time we have grown used to slapping in a library but using only a very small percentage of it. I'm hoping that library developers soon begin offering custom versions of their code that are highly optimized for a specific task. Hope this post might be helpful for someone else who confronts the same problem/issue. Another suggestion to Google: perhaps they could host some of these commonly requested libraries by default. I don't think that any of the rich text editors (fckedit or tinymce) are available on a CDN anywhere right now. - Stephen --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Retrieving size of collection set
If I have two datastore object types, I'll call A and B, and A includes a ReferenceProperty to B, then objects of type B will have a back-reference property with default name a_set. Now if I just want the size of some B object's a_set, I could call len(a_set). To execute this, my understanding is that GAE will do a datastore query to retrieve the relevant A objects and pass them to the len() function. Since I don't need the A object contents, would it be more efficient to set up my own Query object and call Query.count() instead? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: Retrieving size of collection set
Well yes I could add a count property to the B objects, but I'm really trying to understand more about how ReferenceProperty works. Nonetheless, there are a couple reasons I don't want to add a count property to the B objects: -- Every time I create or delete an A object, I would also have to make two additional datastore calls to read, modify, and write object B. -- And to make sure the counter stays in sync, I would need to use a datastore transaction for these operations. But right now, my A and B objects are not in the same entity group, which means (if I understand correctly) transactions are not supported. So I would have to do a full update to the existing datastore in order to add a reliable counter to object B. On Jun 21, 12:31 pm, Sylvain sylvain.viv...@gmail.com wrote: Could you add an int property that is updated with the len ? So you only check this property ? On 21 juin, 17:51, johntray john.tur...@gmail.com wrote: If I have two datastore object types, I'll call A and B, and A includes a ReferenceProperty to B, then objects of type B will have a back-reference property with default name a_set. Now if I just want the size of some B object's a_set, I could call len(a_set). To execute this, my understanding is that GAE will do a datastore query to retrieve the relevant A objects and pass them to the len() function. Since I don't need the A object contents, would it be more efficient to set up my own Query object and call Query.count() instead? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: Gmail API?
No API, just the standard pop and imap interfaces. (I don't know where those are documented, but I presume they can be readily found online.) On Jun 4, 8:47 pm, GenghisOne mdkach...@gmail.com wrote: Is there an API for Gmail and if so is there some documentation that explains how to use it? Thx much. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Cannot figure out remote_api
I have updated my app for remote_api, copied the appengine_console.py file from the documentation, updated the sys.path lines, and put that in my app's root directory. When I run appengine_console.py with my app id, I get the python prompt OK. BUT... When I try to import my main.py file, I get a python error, I get an error for the line where it imports webapp. from google.appengine.ext import webapp File C:\Program Files\Google\google_appengine\google\appengine\ext \webapp\__init__.py, line 68, in module import webob ImportError: No module named webob The app runs on the development server, of course, so I know that this missing webob module *does* exist. Can anyone help me figure out what I am doing wrong here? john --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: Datastore timeout: operation took too long.
Has anyone suggested modifying db.get(), db.put(), and db.delete() to include an optional argument specifying a number-of-retries-on- timeout? I can wrap these functions in my own logic, but I would think nearly every application could use this. On May 22, 5:31 am, Nick Johnson (Google) nick.john...@google.com wrote: Hi Amir, Occasional datastore timeouts are expected to occur even in normal operation. It's up to you to handle them and react appropriately - for example, by retrying the operation. How often are you seeing this? -Nick Johnson 2009/5/22 Amir Michail amich...@gmail.com: Hello, Anyone else getting this exception? Amir --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: using a WYSIWYG Editor on appengine
Yes, GAE has a class called zipserve for this. I use to serve TinyMCE with no problems. The only documentation is the source file itself, at http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/zipserve/__init__.py. There's also a memcached example at http://code.google.com/p/google-app-engine-samples/source/browse/trunk/indexed-cached-zipserve/memcache_zipserve.py On Apr 22, 3:54 pm, danfreak freakclimb...@gmail.com wrote: Does anyone has a cool solution to use a WYSIWYG Editor on app engine? I'm wondering about the upload file limit, and therefore I would like to know if somebody managed to use a gzipped version for example of TinyMce (http://tinymce.moxiecode.com/) , FCK etc Cheers Daniel --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: Templating Logic
The reason for using the os.path.join() method is that it is platform- independent. I think, however, that python on windows is now smart enough to understand the forward slash delimiter, so your version will work ok on a windows machine. Also, for what it's worth, it is customary to specify each path component separately, that is: path = os.path.join(os.path.dirname (__file__),'Templates','mytemplate2.html') where 'Templates' and mytemplate2.html' are separate function arguments. The reason for using the os.path.dirname(__file__) is to specify the path relative to the current file, instead of the current working directory (which is the case in your code). It is customary programming practice not to rely on the current working directory being set, but again in your example, it should work fine. On Apr 6, 10:38 pm, GenghisOne mdkach...@gmail.com wrote: A stupid question about templating... Do I really need to use the whole os.path.join monstrosity to tell Python where my template lives? I commented it out and replaced it with a simple path...it seems to work fine. What am I missing here? Why are others using this os.path.join pattern? #path = os.path.join(os.path.dirname(__file__), 'Templates/ mytemplate2.html' ) path = 'Templates/mytemplate2.html' self.response.out.write(template.render(path, template_values)) Thx. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] 500 error online (cannot find module) but no problem with dev_appserver
Well I am completely stumped. Since upgrading to the 1.1.9 SDK, my app runs OK with dev_appserver, but when I upload and try to run online, I get an import module error: type 'exceptions.ImportError': No module named siterequesthandler Traceback (most recent call last): File /base/data/home/apps/jatnotes/1.331705598365864096/main.py, line 7, in module from site.siterequesthandler import SiteRequestHandler Can anyone help me figure out what is wrong here? Since every other post seems to blame 500 errors on the app.yaml file, I will paste mine below. (I don't see the connection, but I've got nothing to lose...) john application: jatnotes version: 1 runtime: python api_version: 1 handlers: - url: /site/images static_dir: site/images - url: /site/stylesheets static_dir: site/stylesheets - url: /javascript static_dir: html/javascript login: required - url: /stylesheets static_dir: html/stylesheets login: required - url: /test static_dir: test - url: /.* script: main.py skip_files: - ^(.*/)?app\.yaml - ^(.*/)?app\.yml - ^(.*/)?index\.yaml - ^(.*/)?index\.yml - ^(.*/)?#.*# - ^(.*/)?.*~ - ^(.*/)?.*\.py[co] - ^(.*/)?.*/RCS/.* - ^(.*/)?\..* - ^(.*/)?test/.* # don't upload test directory (localhost only) - ^(.*/)?html/images/.* # html/images directory not used --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Problem with python module in directory named site
I have this unusual problem where the online server cannot find a python module if it is in a directory named site. When my main.py tries to import site.module, the online server says it is not found and kicks out a 500 error. This problem does not occur with the development server. I think it is related to the fact that I am also using some subdirectories of the site directory for static files. But since I cannot repeat this behavior with the dev_appserver, I am not going to spend any more time debugging it. It seems strange, but simply renaming the directory makes the problem go away. I know that you cannot use certain URLs with GAE (/form and / _ah/). Is it possible there are some restricted directory names too? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email 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: 500 error online (cannot find module) but no problem with dev_appserver
OK thanks for the info. Can I ask you to feed a suggestion back to the GAE documentation folks? A sentence or two about not commingling handlers and static dirs in http://code.google.com/appengine/docs/python/tools/configuration.html#Static_File_Handlers would have saved me some grief. My app has 3 major parts, so I organized it in 3 directories, each containing a request handler (python) in the top-level directory, and their respective images, javascript, and stylesheets in subdirectories. Seems like the most natural layout, however it sounds like I *should* have used 2 directories at the root level, one for handlers and the other for static files. Thanks again, john On Feb 27, 12:21 pm, Marzia Niccolai ma...@google.com wrote: Hi, My guess is that you are having issues because you have site/images, etc as a static_dir, but it seems you also have program files in the site/ directory? It's treating the entire site/ directory as a static directory, and thus it is not accessible in your application. This is a known issue with the dev_appserver, where static_dir are programmatically accessible through the dev_appserver, but this is not the case in production. The solution would be to separate out your static files and program files in to completely different directories. -Marzia On Thu, Feb 26, 2009 at 6:14 PM, johntray john.tur...@gmail.com wrote: Well I am completely stumped. Since upgrading to the 1.1.9 SDK, my app runs OK with dev_appserver, but when I upload and try to run online, I get an import module error: type 'exceptions.ImportError': No module named siterequesthandler Traceback (most recent call last): File /base/data/home/apps/jatnotes/1.331705598365864096/main.py, line 7, in module from site.siterequesthandler import SiteRequestHandler Can anyone help me figure out what is wrong here? Since every other post seems to blame 500 errors on the app.yaml file, I will paste mine below. (I don't see the connection, but I've got nothing to lose...) john application: jatnotes version: 1 runtime: python api_version: 1 handlers: - url: /site/images static_dir: site/images - url: /site/stylesheets static_dir: site/stylesheets - url: /javascript static_dir: html/javascript login: required - url: /stylesheets static_dir: html/stylesheets login: required - url: /test static_dir: test - url: /.* script: main.py skip_files: - ^(.*/)?app\.yaml - ^(.*/)?app\.yml - ^(.*/)?index\.yaml - ^(.*/)?index\.yml - ^(.*/)?#.*# - ^(.*/)?.*~ - ^(.*/)?.*\.py[co] - ^(.*/)?.*/RCS/.* - ^(.*/)?\..* - ^(.*/)?test/.* # don't upload test directory (localhost only) - ^(.*/)?html/images/.* # html/images directory not used --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---