[google-appengine] Negated One-To-One Join
I'm trying to implement a simple mailing list unsubscribe feature. For the model, I currently have an Unsubscribe class with a ReferenceProperty to the default User class, and a DateProperty to record the unsubscribe time. A record in this table/instance of this class would indicate that a specific User has unsubscribed. The problem I've run into is that I don't see any way to take advantage of this model. How would you query all Users who *aren't* referenced by Unsubscribe? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Can't upload my project anymore ?
Opps didn't verified my domain _ From: google-appengine@googlegroups.com [mailto:[EMAIL PROTECTED] On Behalf Of David Price Sent: 09 December 2008 09:37 To: google-appengine@googlegroups.com Subject: [google-appengine] Can't upload my project anymore ? C:\Program Files\Google\google_appengine\Devappcfg.py update django2 Email: Password for : Saving authentication cookies to C:\Documents and Settings\Administrator/.appcfg_cookies Scanning files on local disk. Initiating update. 2008-12-09 09:36:02,515 ERROR appcfg.py:1336 An unexpected error occurred. Aborting. Error 403: --- begin server output --- You do not have permission to modify this app (app_id=u''). --- end server output --- The app Id is correct ? The information in this email is private confidential. It is intended only for the use of the person(s) named. If you are not the intended recipient, you are notified that any dissemination or copying of this communication is prohibited and kindly requested to notify the sender and to then delete this message. BestAtTravel gives no representation or guarantee with respect to the integrity of any emails or attached file and the recipient should check the integrity of and scan this email and any attached files for viruses prior to opening. This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk The information in this email is private confidential. It is intended only for the use of the person(s) named. If you are not the intended recipient, you are notified that any dissemination or copying of this communication is prohibited and kindly requested to notify the sender and to then delete this message. BestAtTravel gives no representation or guarantee with respect to the integrity of any emails or attached file and the recipient should check the integrity of and scan this email and any attached files for viruses prior to opening. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Negated One-To-One Join
On Tue, Dec 9, 2008 at 8:24 PM, Chris [EMAIL PROTECTED] wrote: I'm trying to implement a simple mailing list unsubscribe feature. For the model, I currently have an Unsubscribe class with a ReferenceProperty to the default User class, and a DateProperty to record the unsubscribe time. A record in this table/instance of this class would indicate that a specific User has unsubscribed. The problem I've run into is that I don't see any way to take advantage of this model. How would you query all Users who *aren't* referenced by Unsubscribe? You should model your data based on how you want to use your data. If you want to find users who aren't unsubscribed, add a boolean subscribed (or unsubscribed) property to the User model. Dave. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Can't upload my project anymore ?
C:\Program Files\Google\google_appengine\Devappcfg.py update django2 Email: Password for : Saving authentication cookies to C:\Documents and Settings\Administrator/.appcfg_cookies Scanning files on local disk. Initiating update. 2008-12-09 09:36:02,515 ERROR appcfg.py:1336 An unexpected error occurred. Aborting. Error 403: --- begin server output --- You do not have permission to modify this app (app_id=u''). --- end server output --- The app Id is correct ? The information in this email is private confidential. It is intended only for the use of the person(s) named. If you are not the intended recipient, you are notified that any dissemination or copying of this communication is prohibited and kindly requested to notify the sender and to then delete this message. BestAtTravel gives no representation or guarantee with respect to the integrity of any emails or attached file and the recipient should check the integrity of and scan this email and any attached files for viruses prior to opening. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] AE for a bussiness app
I have a road map to deploy a datasstore featured application in AE. The main design is to store a huge amount of static data and getting the part of the data as per the requirements. There will not be any major data includes in production.The only issue in this is maintaining the huge amount of data (around 1000k entities) in the datastore , b4 that adding it to the datastore. I have completed the full application bt I couldn't upload it b'coz of the above limitations. Let any clarify me, Is GAE team having a clear roadmap regarding the datastore, timeout,pricing issues? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: AE for a bussiness app
http://code.google.com/appengine/docs/roadmap.html On Dec 9, 6:44 am, Selva [EMAIL PROTECTED] wrote: I have a road map to deploy a datasstore featured application in AE. The main design is to store a huge amount of static data and getting the part of the data as per the requirements. There will not be any major data includes in production.The only issue in this is maintaining the huge amount of data (around 1000k entities) in the datastore , b4 that adding it to the datastore. I have completed the full application bt I couldn't upload it b'coz of the above limitations. Let any clarify me, Is GAE team having a clear roadmap regarding the datastore, timeout,pricing issues? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
I'm not quite sure what is that you are looking for, but appengine is not intended to be used as storage, it is intended for full on applications. With that said, you can freely set any headers you please by writing your own URL handler in Python. On Dec 9, 11:10 am, jago [EMAIL PROTECTED] wrote: Well partially. Obviously I would prefer compressing the file by a factor 10 and then send less data, without setting the right content- encoding this is impossible though. Bigger files would at least not totally invalidate appengine for my use. Still it is no replacement for the content-encoding feature. On Dec 9, 9:59 am, Thomas Johansson [EMAIL PROTECTED] wrote: Hi jago, As per the roadmap (http://code.google.com/appengine/docs/ roadmap.html); Service for storing and serving large files will be coming in the October '08 - March '09 timeline. That should solve your problem, if I'm not mistaken? Personally, I hope that applies to regular old static content and code as well, ideally including lifting the 1.000 file limit, but probably not. On Dec 9, 8:43 am, jago [EMAIL PROTECTED] wrote: I would like to host an applet on appengine. Still either I compress the jars with pack200 which brings the size of each jar well below 1MB but then I have no content-encoding. Or, I don't compess the jars and hit the 1MB filesize limitation. AppEngine really has become frustrating. There are just too many limitations. Will this ever change? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Memcache, get_stats() does not work anymore
Hi, I've many objects memcached. I can add or get them from memcache. But if I try : memcache.get_stats(), it always returns None. I've tried with the shell.appspot.com, and it works but with my app (app_id : hordes), it doesn't work (always None) Few days ago, it was working. Any idea ? Thank you Regards --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
On Dec 9, 5:10 am, jago [EMAIL PROTECTED] wrote: Well partially. Obviously I would prefer compressing the file by a factor 10 and then send less data, without setting the right content- encoding this is impossible though. GAE front end server always gzip files whenever possible. In the meanwhile, you can always send static big files by other services such as amazon S3 or simplecdn. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: binding of parameters to GQL query: varargs + dictionary
So I am not a Python programmer, though I am currently trying to pick it up. Look at the parameter passing stuff. .bind(**dictionary) does what you want. On Nov 24, 5:16 pm, GAERiddler [EMAIL PROTECTED] wrote: Yes. But that accepts the same varargs as the .gql() method. What I think would be nice to have would be a bind(dictionary), and the dictionary object contains all the keyword-parameter bindings. On Nov 24, 9:50 am, Mahmoud [EMAIL PROTECTED] wrote: Have you seen GqlQuery.bind() ? http://code.google.com/appengine/docs/datastore/gqlqueryclass.html#Gq... -Mahmoud- Hide quoted text - - Show quoted text - --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Getting started without SMS
I only use e-mail and do not use SMS. How can I get started with Google App Engine by verifying my account via e-mail instead of archaic and clumsy SMS? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] UnboundLocalError: local variable 'before_path' referenced before assignment
My app got an error: ERROR2008-12-09 09:03:56,780 dev_appserver.py] Exception encountered handling request Traceback (most recent call last): File C:\Program Files\Google\google_appengine\google\appengine\tools \dev_appserver.py, line 2443, in _HandleRequest base_env_dict=env_dict) File C:\Program Files\Google\google_appengine\google\appengine\tools \dev_appserver.py, line 353, in Dispatch base_env_dict=base_env_dict) File C:\Program Files\Google\google_appengine\google\appengine\tools \dev_appserver.py, line 1869, in Dispatch self._module_dict) File C:\Program Files\Google\google_appengine\google\appengine\tools \dev_appserver.py, line 1809, in ExecuteCGI sys.path[:] = before_path UnboundLocalError: local variable 'before_path' referenced before assignment It occurs several times, but I can not reproduce it every time. I think that it is caused by unicode url. Can anyone help me? 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Can't verify my account... while actually received the SMS??
Hi everyone, I see some people can't receive the verification code via SMS so they can't confirm their account, but I'm currently facing an opposite issue: I received the SMS but don't know where I can do this. For unknown reason, the Google form @ http://appengine.google.com/permissions/smssend just told me that there was a problem either with the username, or the phone number, which is actually wrong, because I RECEIVED the SMS. The problem to me is that my phone carrier in France, Virgin Mobile is a MVNO on the well known Orange's network, so it's not identified within the list of French carriers, but it's actually working. Can someone please explain me what to do?? e.g. link to the verification form? I tried to fill in the SMS issues form @ , but it's not working either, as I get a quite vague error message There was errors: Comments. Greets, Maxx --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: How to open .html in .py file?
For that I just wrote: - url: / static_dir: static/ But current problem that index.html does not load automatically and you need to write full domain path : www.yourdomain.com/index.html On 27 нояб, 14:27, Jonathan B [EMAIL PROTECTED] wrote: Hi Wen Long, On Nov 26, 12:27 pm, wenlong [EMAIL PROTECTED] wrote: and I must create a new folder named static and put all these htm files in this folder? No, you don't have to do this, but you *can* do this. The code I gave you is one example of how to do it. The point is that app.yaml allows you to decide how your application will work. You decide which of your files are static, and which files are dynamic. Here's another way of doing it that should let you display yourindex.htmlfile in your browser (caveat: I did not check to see if this code runs): - url: /(.*\.(html|htm)) static_files: \1 upload: (.*\.(html|htm)) I hope that helps, --Jonathan --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Creating unique key names
A two-stage insertion would work fine, then. Insert the first object with a not-ready flag set, insert the second object, then go back and flip the not-ready flag. If the application has a datastore or quota timeout between the store to get a key and the store for the actual data, the store to get a key results in an incomplete group. Note that the not ready flag adds a third store and another opportunity for an incomplete group (namely a complete group that is marked not-ready). These are precisely the sorts of problems that transactions solve. Generating an application-globally-unique name is hard. No, it's not hard at all. The MAC address, time, and process id suffice (for single threaded applications like GAE, otherwise the thread id is also needed) and there are other info combos that can be used to generate such names. Moreover, there are plenty of methods that can be used to generate a unique name from such information that don't expose the underlying data. (Google may well want to make it impossible to determine MAC addresses or process ids, for example.) It's only hard within the current GAE API because that API doesn't expose enough information or provide a method that generates a unique name without exposing the information used to generate said name. Who said the datastore would be on the same machine as the running application, anyway? Huh? Nothing that I've written said anything about the machines where the datastore is running. That information isn't necessary for an application to generate a unique name. Asking that question suggests that you don't understand what I've been talking about. On Nov 22, 9:16 pm, David Symonds [EMAIL PROTECTED] wrote: On Sun, Nov 23, 2008 at 1:38 PM, Andy Freeman [EMAIL PROTECTED] wrote: Yes, I understand transactions and entity groups. Why do you need to create an entity group *atomically*? For the same reason that transactions are useful - incomplete groups are wrong (in my application) and I'd rather not deal with them. If you create a new entity, it will automatically be assigned a unique key at the datastore level. What's wrong with just using that? Each db.put has significant overhead. If I can generate a unique name without a db.put, I can reduce the number of db.puts that my application does by a factor of 2. Generating an application-globally-unique name is hard, and App Engine is mainly focused on applications where the writes are few and the reads are many. Until you've benchmarked it, it sounds like you are prematurely optimising for an operation that should be relatively rare, while seriously increasing the complexity of your system. Who said the datastore would be on the same machine as the running application, anyway? Dave. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Creating unique key names
The later solution only requires one put during any given processes lifetime so it shouldn't be a perf problem. It introduces a clean-up problem. I can't delete such an object until after I delete all entity groups named using said object's key. (GAE is free to reused generated keys.) I shouldn't have mentioned the overhead of puts. The real problem is cleanup and consistency, a problem that transactions are designed to solve. On Nov 24, 7:18 pm, Josh Heitzman [EMAIL PROTECTED] wrote: Like Jon McAlister said either use a random number or create a new entity when one of your modules is loaded and treat that entity's key as the globally unique process ID (i.e. MAC address + pid). The later solution only requires one put during any given processes lifetime so it shouldn't be a perf problem. On Nov 22, 6:38 pm, Andy Freeman [EMAIL PROTECTED] wrote: Yes, I understand transactions and entity groups. Why do you need to create an entity group *atomically*? For the same reason that transactions are useful - incomplete groups are wrong (in my application) and I'd rather not deal with them. If you create a new entity, it will automatically be assigned a unique key at the datastore level. What's wrong with just using that? Each db.put has significant overhead. If I can generate a unique name without a db.put, I can reduce the number of db.puts that my application does by a factor of 2. On Nov 22, 5:07 pm, David Symonds [EMAIL PROTECTED] wrote: On Sun, Nov 23, 2008 at 8:50 AM, Andy Freeman [EMAIL PROTECTED] wrote: Suppose that I want to atomically create an entity group with two nodes, one the parent of the other. But *why* exactly do you want to do this? Because I want a set of one or more entities that can be manipulated in a single transaction. Entity group relationships tell App Engine to store several entities in the same part of the distributed network. A transaction sets up datastore operations for an entity group, and all of the operations are applied as a group, or not at all if the transaction fails. Yes, I understand transactions and entity groups. Why do you need to create an entity group *atomically*? The fact that GAE uses many machines and concurrently is why the full hostname, IP, or MAC address or some other machine identifier is useful in creating a unique identifier on GAE. (If my application always ran on the same machine, the process id and time would be sufficient.) If you create a new entity, it will automatically be assigned a unique key at the datastore level. What's wrong with just using that? Dave.- Hide quoted text - - Show quoted text - --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: UnboundLocalError: local variable 'before_path' referenced before assignment
Hi, Can you please provide the code that is running when you see this error? And some more information as to what kinds of requests are causing it? Thanks, Marzia On Tue, Dec 9, 2008 at 1:14 AM, giginim [EMAIL PROTECTED] wrote: My app got an error: ERROR2008-12-09 09:03:56,780 dev_appserver.py] Exception encountered handling request Traceback (most recent call last): File C:\Program Files\Google\google_appengine\google\appengine\tools \dev_appserver.py, line 2443, in _HandleRequest base_env_dict=env_dict) File C:\Program Files\Google\google_appengine\google\appengine\tools \dev_appserver.py, line 353, in Dispatch base_env_dict=base_env_dict) File C:\Program Files\Google\google_appengine\google\appengine\tools \dev_appserver.py, line 1869, in Dispatch self._module_dict) File C:\Program Files\Google\google_appengine\google\appengine\tools \dev_appserver.py, line 1809, in ExecuteCGI sys.path[:] = before_path UnboundLocalError: local variable 'before_path' referenced before assignment It occurs several times, but I can not reproduce it every time. I think that it is caused by unicode url. Can anyone help me? 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: 3 questions (about paging again)
Hi, By index I mean whatever index you are using for pagination, an integer property as described in the building scalable web applications talk: http://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine This should work to page searchable entities as well. Simply search for a specific term, and then filter on the paging index. -Marzia On Mon, Dec 8, 2008 at 5:01 PM, kang [EMAIL PROTECTED] wrote: I haven't got it...what is the 'index' for in your code? For different tags, they have different index for an object. 3rd question is about search the model. On Tue, Dec 9, 2008 at 4:03 AM, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, If you store the tags in a list, you should be able filter on that list using a simple equals filter, something like: MyProperty.all().filter('my tags =', tag).filter('index =', starting_index).fetch(10) Assuming you don't have a large number of tags (a couple per entry), this shouldn't result in an exploding index. The third question, if I interpret it correctly, is about using the Google Search AJAX API? If you want to use the search API for your site, and page through the results on your site, it seems you can do pagination with their API, the docs are available here: http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GSearch -Marzia On Sun, Dec 7, 2008 at 6:51 PM, lookon [EMAIL PROTECTED] wrote: I've got how to page to some extent..But I still have some problems 1.What's the best way to implement tag to a model 2.in this way, how to page the tag page? for example, http://a.appspot.com/tag/google, I need to show all model whose tag is google, and I need to page it... 3.How to page the search result? If I search Google, I will get all the result, and I don't know how to page them. Thanks. -- Stay hungry,Stay foolish. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Getting started without SMS
http://knol.google.com/k/marce/app-engine-community-faqs/vkzeph4si12v/1# On Dec 9, 12:54 am, Astralis [EMAIL PROTECTED] wrote: I only use e-mail and do not use SMS. How can I get started with Google App Engine by verifying my account via e-mail instead of archaic and clumsy SMS? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
No you can't. You cannot set the content-encoding in the header in appengine. Even if you write your own code. Opening sockets is not allowed just to remind 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Average CPU Warnings
I've experienced this as well. My modest app doesn't use the datastore at all. I have several pages that run just fine and with no warnings most of the time, but later, and with no intervening changes, the same pages raise CPU warnings. In my mind this simply must be GAE blips of some kind. Doc On Dec 8, 11:34 pm, Greg [EMAIL PROTECTED] wrote: I uploaded my first real app yesterday, and have had seventy people hit it. Everything seems to be working like a charm, but those nasty little average CPU warnings got me worried. My app uses memcache aggressively, does very few datastore writes, and no page does extensive processing, so I was surprised to see any warnings. According to a post I found, I can have two requests of over 1000Mc a minute, before Appengine starts raising quota exceptions. It also said that the dashboard figure included datastore megacycles which aren't included in the quota calculations, and that theloggives accurate calculations. So I did some analysis of the logs. Out of more than 700 non-static requests, there were 9 high CPU warnings. The URLs that triggered warnings were pretty diverse, including some that do very little work, and other hard working pages haven't figured yet. Four were for the same URL, which logged four events, and in each case there was a long (0.5 to 1sec)delaybetween two of the events - but two different events each time. In one case it was after the request has started but before the first event, and in another it was between the second and third events, etc. I.e. thedelaywas not always at the same part of the code - it wasn't datastore or memcache calls that caused it. I don't have enough data to be completely certain, but it seems that there are fairly random 0.5 to 1 second blips that occasionally hit my application, and cause CPU warnings. I could imagine these are caused by the OS or other applications, and my concern is that my application could get quota exceptions that are not caused by external factors. And when billing arrives, I'll get charged for them instead. Questions: 1. Has anyone else seen this behaviour? Is everyone getting occasional CPU warnings, and is anyone getting actual quota exceptions because of them? 2. Has Google any idea what is causing the blips? Apart from this, I've enjoyed app engine - once little niggles like this are ironed out, it is going to be a great platform. Can't wait for it to come out of preview. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Creating unique key names
You don't have to use global data entity. For example use a datastore backed global count as base number. Your unique id can be generated by that count multiply by a big number + a local count. On Dec 9, 11:57 am, Andy Freeman [EMAIL PROTECTED] wrote: The later solution only requires one put during any given processes lifetime so it shouldn't be a perf problem. It introduces a clean-up problem. I can't delete such an object until after I delete all entity groups named using said object's key. (GAE is free to reused generated keys.) I shouldn't have mentioned the overhead of puts. The real problem is cleanup and consistency, a problem that transactions are designed to solve. On Nov 24, 7:18 pm, Josh Heitzman [EMAIL PROTECTED] wrote: Like Jon McAlister said either use a random number or create a new entity when one of your modules is loaded and treat that entity's key as the globally unique process ID (i.e. MAC address + pid). The later solution only requires one put during any given processes lifetime so it shouldn't be a perf problem. On Nov 22, 6:38 pm, Andy Freeman [EMAIL PROTECTED] wrote: Yes, I understand transactions and entity groups. Why do you need to create an entity group *atomically*? For the same reason that transactions are useful - incomplete groups are wrong (in my application) and I'd rather not deal with them. If you create a new entity, it will automatically be assigned a unique key at the datastore level. What's wrong with just using that? Each db.put has significant overhead. If I can generate a unique name without a db.put, I can reduce the number of db.puts that my application does by a factor of 2. On Nov 22, 5:07 pm, David Symonds [EMAIL PROTECTED] wrote: On Sun, Nov 23, 2008 at 8:50 AM, Andy Freeman [EMAIL PROTECTED] wrote: Suppose that I want to atomically create an entity group with two nodes, one the parent of the other. But *why* exactly do you want to do this? Because I want a set of one or more entities that can be manipulated in a single transaction. Entity group relationships tell App Engine to store several entities in the same part of the distributed network. A transaction sets up datastore operations for an entity group, and all of the operations are applied as a group, or not at all if the transaction fails. Yes, I understand transactions and entity groups. Why do you need to create an entity group *atomically*? The fact that GAE uses many machines and concurrently is why the full hostname, IP, or MAC address or some other machine identifier is useful in creating a unique identifier on GAE. (If my application always ran on the same machine, the process id and time would be sufficient.) If you create a new entity, it will automatically be assigned a unique key at the datastore level. What's wrong with just using that? Dave.- Hide quoted text - - Show quoted text - --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
Unsinged java applet support crossdomain.xml since this May. On Dec 9, 1:05 pm, jago [EMAIL PROTECTED] wrote: GAE front end server always gzip files whenever possible. You probably don't know how applets work. You can compress the Applet- jar file extremely by using pack200+gzip. For that you need the client (the Java plugin in your browser) know what you did (send content- encoding for pack200-gzip). Obviously I have other webspace from where I could serve the jars with whatever content-encoding I want. The problem is sandboxed Applets only allow loading files from the 'path' (Domain) their jar-file was loaded from. So if I want to read data from the appengine I have to load it from the appengine :) In the meanwhile, you can always send static big files by other services such as amazon S3 or simplecdn. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Error Building Index
Hi, On to the 6th day :( Thanks, Arun Shanker Prasad. On Dec 8, 6:26 pm, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, More than 72 hours now.. Thanks, Arun Shanker Prasad. On Dec 7, 3:12 pm, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, My indexes are still in the Building status in the Dashboard.. Its been more than 48 hours.. I don't think I have that much data for it to take so long.. My development has gone to a stand still since this problem. Also there is an error message in my dashboard, An error has occurred. Your application is exceeding a quota. (Error Code: 40) I had a look at the number of indexes defined in my Indexes page, as far as I can tell there are only ~80 indexes.. I thought 100 was the limit. Thanks, Arun Shanker Prasad. On Dec 5, 8:44 am, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, Sorry to bump this thread again and again, but my indexes are still in the Building status in the Dashboard.. Its been quite sometime, I have had similar indexes in my app and they didn't take this long to build : ( Can't upload any new releases due to this.. Thanks, Arun Shanker Prasad. On Dec 5, 1:19 am, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, If you reply to me with the App Id I can look in to it. -Marzia On Thu, Dec 4, 2008 at 12:16 PM, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, Sorry to bump this thread again, but my indexes are still in the Building status in the Dashboard.. Its been quite sometime, I have had similar indexes in my app and they didn't take this long to build : ( Thanks, Arun Shanker Prasad. On Dec 4, 3:04 pm, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi Marzia, Thanks for the quick reply. I just had a look, the indexes I vacuumed are in the Building state. I have never had them take so long to build.. Thanks, Arun Shanker Prasad. On Dec 4, 3:00 pm, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, Currently, you can not upload a new app version while there are any indexes in the building/deleting state. I suspect this is the problem. -Marzia On Thu, Dec 4, 2008 at 8:53 AM, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi all, I uploaded a new release for my application, I saw that the Indexes were in the Error state in the Dashboard.. So i did a vacuum and tried to update the indexes again but I keep getting this error, Error 400: --- begin server output --- Building a composite index failed: ApplicationError: 3 --- end server output --- Anyone have any similar experiences??? Any help will be greatly appreciated. Thanks, Arun Shanker Prasad. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
On Dec 9, 6:32 pm, jago [EMAIL PROTECTED] wrote: No you can't. You cannot set the content-encoding in the header in appengine. Even if you write your own code. Opening sockets is not allowed just to remind you. I'm not exactly sure what you are talking about here. You are serving the jars for the applet using HTTP, correct? AppEngine does not in *any* way restrict what output you send, other than the size. Content- Encoding is just another header, and you certainly don't need sockets for that. Simply write a python handler that sets the content encoding, opens the file and writes it to the stream (stdout). If you need to serve something that isn't HTTP, you're barking up the wrong tree. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] YAPT - Yet Another Paging Topic
I tried a sledgehammer approach to a paging issue I'm having (fetch (1000) page within it) and as expected, it's too heavy of an approach and I'm getting datastore timeouts. So, before I dive too deeply into approaching the situation I have, I thought I'd see if anyone else has run into this and came up with a solution they'd like to share. The requirements I have are: - Must be able to page through entities based on a numerical score field that is not consecutive, though can be made unique if I convert it to a float. - Previous, Next, and ?page=# (ie: ?page=5) must all be handled. The situation is that I'm working on a site that's similar to Digg in functionality. Stories are given a score by which they are ordered for presentation. This score can change through user interaction. Now, I have already ready and figured out a solution for next/previous results = fetch(11) ?nextstart=results[10].scoreprevstart=results[0].score This doesn't give me the ability to link to specific pages. As scores are changing and new entities can be created a rapid rate (bursts once an hour of 50+ entities) trying to index and keep track on submission/ score change would also lead to datastore timeouts. Anyone have any ideas? I'm beginning to think I just can not meet the page number requirement using BigTable. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Memcache, get_stats() does not work anymore
I'm using that on the gaeutilities session demo, and it is working there http://gaeutilities.appspot.com/session On Dec 9, 8:18 am, Sylvain [EMAIL PROTECTED] wrote: Hi, I've many objects memcached. I can add or get them from memcache. But if I try : memcache.get_stats(), it always returns None. I've tried with the shell.appspot.com, and it works but with my app (app_id : hordes), it doesn't work (always None) Few days ago, it was working. Any idea ? Thank you Regards --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
2008/12/9 Thomas Johansson [EMAIL PROTECTED]: On Dec 9, 6:32 pm, jago [EMAIL PROTECTED] wrote: No you can't. You cannot set the content-encoding in the header in appengine. Even if you write your own code. Opening sockets is not allowed just to remind you. I'm not exactly sure what you are talking about here. You are serving the jars for the applet using HTTP, correct? AppEngine does not in *any* way restrict what output you send, other than the size. Umm, the documentation tends to contradict that! http://code.google.com/appengine/docs/webapp/responseclass.html#Disallowed_HTTP_Response_Headers Content- Encoding is just another header, and you certainly don't need sockets for that. Simply write a python handler that sets the content encoding, opens the file and writes it to the stream (stdout). If you need to serve something that isn't HTTP, you're barking up the wrong tree. -- Barry - www.nearby.org.uk - www.geograph.org.uk - --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
Huh. Never seen this before, I do apologise for the confusion. That really should be documented clearly somewhere that isn't specific to one of their libraries, as that seems to be a core limitation. Again, sorry for the confusion. On Dec 9, 8:44 pm, Barry Hunter [EMAIL PROTECTED] wrote: 2008/12/9 Thomas Johansson [EMAIL PROTECTED]: On Dec 9, 6:32 pm, jago [EMAIL PROTECTED] wrote: No you can't. You cannot set the content-encoding in the header in appengine. Even if you write your own code. Opening sockets is not allowed just to remind you. I'm not exactly sure what you are talking about here. You are serving the jars for the applet using HTTP, correct? AppEngine does not in *any* way restrict what output you send, other than the size. Umm, the documentation tends to contradict that! http://code.google.com/appengine/docs/webapp/responseclass.html#Disal... Content- Encoding is just another header, and you certainly don't need sockets for that. Simply write a python handler that sets the content encoding, opens the file and writes it to the stream (stdout). If you need to serve something that isn't HTTP, you're barking up the wrong tree. -- Barry -www.nearby.org.uk-www.geograph.org.uk- --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: GData Feed Fetcher
Hi Warren, 1. I can't recall why I commented this out. It should work just fine :) 2. If you want to check a specific contact to see if your changes went though, you could query the self link (entry.GetSelfLink().href) to refetch from the server. I find I often want to use a different set of contacts than the default first page returned by the server, so I tend to use query parameters to look at the most recently edited contacts first or look for entries modified since a certain date. Documentation on the query parameters in the contacts API can be found here: http://code.google.com/apis/contacts/developers_guide_python.html#retrieving_with_query Happy coding, Jeff On Dec 8, 10:19 pm, warreninaustintexas [EMAIL PROTECTED] wrote: I'm working with Jeff Scudder's article and sample code for GData feeds in GAE. I'm interested in the GMail Contacts feed, which is commented out in his source file [feedfetcher.py, lines #165, 166]. Two questions: 1. Is the GMail Contacts feed is still in alpha? Is that why these lines were commented out while the code for other feeds is active? 2. I was able to get the GMail Contacts feed working, but it is giving me a list of contacts that seems to be about 6 months old. I've tried adding a new contact and changing e-mail address for a contact. None of these seems to change the list of contacts that I get from the GMail Contacts feed. Is it pulling from a cache rather than real-time data? Thanks for your 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Average CPU Warnings
I see the same picture described by me here: http://groups.google.com/group/google-appengine/browse_thread/thread/730542d0fe73f754/7271f4aa4657666e Marzia says it could be becouse of python modules load by new instance of interpreter. -- Alex http://sharp-developer.net/ On Dec 9, 4:34 am, Greg [EMAIL PROTECTED] wrote: I uploaded my first real app yesterday, and have had seventy people hit it. Everything seems to be working like a charm, but those nasty little average CPU warnings got me worried. My app uses memcache aggressively, does very few datastore writes, and no page does extensive processing, so I was surprised to see any warnings. According to a post I found, I can have two requests of over 1000Mc a minute, before Appengine starts raising quota exceptions. It also said that the dashboard figure included datastore megacycles which aren't included in the quota calculations, and that the log gives accurate calculations. So I did some analysis of the logs. Out of more than 700 non-static requests, there were 9 high CPU warnings. The URLs that triggered warnings were pretty diverse, including some that do very little work, and other hard working pages haven't figured yet. Four were for the same URL, which logged four events, and in each case there was a long (0.5 to 1sec) delay between two of the events - but two different events each time. In one case it was after the request has started but before the first event, and in another it was between the second and third events, etc. I.e. the delay was not always at the same part of the code - it wasn't datastore or memcache calls that caused it. I don't have enough data to be completely certain, but it seems that there are fairly random 0.5 to 1 second blips that occasionally hit my application, and cause CPU warnings. I could imagine these are caused by the OS or other applications, and my concern is that my application could get quota exceptions that are not caused by external factors. And when billing arrives, I'll get charged for them instead. Questions: 1. Has anyone else seen this behaviour? Is everyone getting occasional CPU warnings, and is anyone getting actual quota exceptions because of them? 2. Has Google any idea what is causing the blips? Apart from this, I've enjoyed app engine - once little niggles like this are ironed out, it is going to be a great platform. Can't wait for it to come out of preview. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Error Building Index
Hi, Another index I was uploading along with the stuck indexes was causing this problem. Thanks to the Google App Engine team for taking the time to find the issue and let me know how this issue can be fixed. For any future reference, may be others may already know about this, if any application is uploaded with an exploding index and we vacuum and try to upload the exploding index along with the new indexes, the new index (which might be perfectly fine) may not build. Thanks, Arun Shanker Prasad. On Dec 9, 4:52 pm, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, On to the 6th day :( Thanks, Arun Shanker Prasad. On Dec 8, 6:26 pm, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, More than 72 hours now.. Thanks, Arun Shanker Prasad. On Dec 7, 3:12 pm, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, My indexes are still in the Building status in the Dashboard.. Its been more than 48 hours.. I don't think I have that much data for it to take so long.. My development has gone to a stand still since this problem. Also there is an error message in my dashboard, An error has occurred. Your application is exceeding a quota. (Error Code: 40) I had a look at the number of indexes defined in my Indexes page, as far as I can tell there are only ~80 indexes.. I thought 100 was the limit. Thanks, Arun Shanker Prasad. On Dec 5, 8:44 am, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, Sorry to bump this thread again and again, but my indexes are still in the Building status in the Dashboard.. Its been quite sometime, I have had similar indexes in my app and they didn't take this long to build : ( Can't upload any new releases due to this.. Thanks, Arun Shanker Prasad. On Dec 5, 1:19 am, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, If you reply to me with the App Id I can look in to it. -Marzia On Thu, Dec 4, 2008 at 12:16 PM, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi, Sorry to bump this thread again, but my indexes are still in the Building status in the Dashboard.. Its been quite sometime, I have had similar indexes in my app and they didn't take this long to build : ( Thanks, Arun Shanker Prasad. On Dec 4, 3:04 pm, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi Marzia, Thanks for the quick reply. I just had a look, the indexes I vacuumed are in the Building state. I have never had them take so long to build.. Thanks, Arun Shanker Prasad. On Dec 4, 3:00 pm, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, Currently, you can not upload a new app version while there are any indexes in the building/deleting state. I suspect this is the problem. -Marzia On Thu, Dec 4, 2008 at 8:53 AM, Arun Shanker Prasad [EMAIL PROTECTED] wrote: Hi all, I uploaded a new release for my application, I saw that the Indexes were in the Error state in the Dashboard.. So i did a vacuum and tried to update the indexes again but I keep getting this error, Error 400: --- begin server output --- Building a composite index failed: ApplicationError: 3 --- end server output --- Anyone have any similar experiences??? Any help will be greatly appreciated. Thanks, Arun Shanker Prasad. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] App Gallery Error --- MemoryError, line 189, in CheckSuccess
Hi All, I see this error on: http://appgallery.appspot.com/results?category=Toolsstart=325num=5 Traceback (most recent call last): File /base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py, line 499, in __call__ handler.get(*groups) File /base/data/home/apps/appgallery/3.11/appgallery.py, line 398, in get apps = query.Get(start + num)[start:] File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 938, in Get return self._Run(limit, offset)._Next(limit) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 1234, in _Next apiproxy_stub_map.MakeSyncCall('datastore_v3', 'Next', req, result) File /base/python_lib/versions/1/google/appengine/api/ apiproxy_stub_map.py, line 46, in MakeSyncCall stub.MakeSyncCall(service, call, request, response) File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 246, in MakeSyncCall rpc.CheckSuccess() File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 189, in CheckSuccess raise self.exception MemoryError --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: App Gallery Error --- MemoryError, line 189, in CheckSuccess
Hi, Thanks for the report! -Marzia On Tue, Dec 9, 2008 at 1:35 PM, KillIEbrowser [EMAIL PROTECTED]wrote: Hi All, I see this error on: http://appgallery.appspot.com/results?category=Toolsstart=325num=5 Traceback (most recent call last): File /base/python_lib/versions/1/google/appengine/ext/webapp/ __init__.py, line 499, in __call__ handler.get(*groups) File /base/data/home/apps/appgallery/3.11/appgallery.py, line 398, in get apps = query.Get(start + num)[start:] File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 938, in Get return self._Run(limit, offset)._Next(limit) File /base/python_lib/versions/1/google/appengine/api/ datastore.py, line 1234, in _Next apiproxy_stub_map.MakeSyncCall('datastore_v3', 'Next', req, result) File /base/python_lib/versions/1/google/appengine/api/ apiproxy_stub_map.py, line 46, in MakeSyncCall stub.MakeSyncCall(service, call, request, response) File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 246, in MakeSyncCall rpc.CheckSuccess() File /base/python_lib/versions/1/google/appengine/runtime/ apiproxy.py, line 189, in CheckSuccess raise self.exception MemoryError --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
Yes I know yejun. But I have to respect that a lot of people still run Java 5 (OSX) and Java6 without crossdomain support. Only a few updated to Java6u10. On Dec 9, 7:10 pm, yejun [EMAIL PROTECTED] wrote: Unsinged java applet support crossdomain.xml since this May. On Dec 9, 1:05 pm, jago [EMAIL PROTECTED] wrote: GAE front end server always gzip files whenever possible. You probably don't know how applets work. You can compress the Applet- jar file extremely by using pack200+gzip. For that you need the client (the Java plugin in your browser) know what you did (send content- encoding for pack200-gzip). Obviously I have other webspace from where I could serve the jars with whatever content-encoding I want. The problem is sandboxed Applets only allow loading files from the 'path' (Domain) their jar-file was loaded from. So if I want to read data from the appengine I have to load it from the appengine :) In the meanwhile, you can always send static big files by other services such as amazon S3 or simplecdn. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Is there hope that content-encoding will ever be allowed?
No problem. I also took it for granted that this works - at first at least. On Dec 9, 9:07 pm, Thomas Johansson [EMAIL PROTECTED] wrote: Huh. Never seen this before, I do apologise for the confusion. That really should be documented clearly somewhere that isn't specific to one of their libraries, as that seems to be a core limitation. Again, sorry for the confusion. On Dec 9, 8:44 pm, Barry Hunter [EMAIL PROTECTED] wrote: 2008/12/9 Thomas Johansson [EMAIL PROTECTED]: On Dec 9, 6:32 pm, jago [EMAIL PROTECTED] wrote: No you can't. You cannot set the content-encoding in the header in appengine. Even if you write your own code. Opening sockets is not allowed just to remind you. I'm not exactly sure what you are talking about here. You are serving the jars for the applet using HTTP, correct? AppEngine does not in *any* way restrict what output you send, other than the size. Umm, the documentation tends to contradict that! http://code.google.com/appengine/docs/webapp/responseclass.html#Disal... Content- Encoding is just another header, and you certainly don't need sockets for that. Simply write a python handler that sets the content encoding, opens the file and writes it to the stream (stdout). If you need to serve something that isn't HTTP, you're barking up the wrong tree. -- Barry -www.nearby.org.uk-www.geograph.org.uk- --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: Average CPU Warnings
Thanks to those who responded. My observation that the blips occur at apparently random times during the handler run lead me to be a little suspicious of the new interpreter theory - I only do fairly minor from xxx import yyy imports in some of the sections that have included blips. I'll add log points around my imports, and that will show if they really are the culprit. I'll post back here when I get more data. If it does turn out to be this, then I'd suggest it would be fairer for app engine to take the cpu cost of loading new interpreters out of the calculation, as they do with datastore and other API calls. Cheers! Greg. On Dec 10, 9:47 am, Sharp-Developer.Net [EMAIL PROTECTED] wrote: I see the same picture described by me here: http://groups.google.com/group/google-appengine/browse_thread/thread/... Marzia says it could be becouse of python modules load by new instance of interpreter. -- Alexhttp://sharp-developer.net/ On Dec 9, 4:34 am, Greg [EMAIL PROTECTED] wrote: I uploaded my first real app yesterday, and have had seventy people hit it. Everything seems to be working like a charm, but those nasty little average CPU warnings got me worried. My app uses memcache aggressively, does very few datastore writes, and no page does extensive processing, so I was surprised to see any warnings. According to a post I found, I can have two requests of over 1000Mc a minute, before Appengine starts raising quota exceptions. It also said that the dashboard figure included datastore megacycles which aren't included in the quota calculations, and that the log gives accurate calculations. So I did some analysis of the logs. Out of more than 700 non-static requests, there were 9 high CPU warnings. The URLs that triggered warnings were pretty diverse, including some that do very little work, and other hard working pages haven't figured yet. Four were for the same URL, which logged four events, and in each case there was a long (0.5 to 1sec) delay between two of the events - but two different events each time. In one case it was after the request has started but before the first event, and in another it was between the second and third events, etc. I.e. the delay was not always at the same part of the code - it wasn't datastore or memcache calls that caused it. I don't have enough data to be completely certain, but it seems that there are fairly random 0.5 to 1 second blips that occasionally hit my application, and cause CPU warnings. I could imagine these are caused by the OS or other applications, and my concern is that my application could get quota exceptions that are not caused by external factors. And when billing arrives, I'll get charged for them instead. Questions: 1. Has anyone else seen this behaviour? Is everyone getting occasional CPU warnings, and is anyone getting actual quota exceptions because of them? 2. Has Google any idea what is causing the blips? Apart from this, I've enjoyed app engine - once little niggles like this are ironed out, it is going to be a great platform. Can't wait for it to come out of preview. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Deploying to multiple Google Apps domains
I've been exploring Google App Engine and working on an app, but I envision the app being something that would be used by different companies on their own Apps domains. That is, I'll want to use it on my Google Apps domain, but other companies might like to deploy it on their Apps domain as well. I created my app with the default setting where any Google user can log in. Unsurprisingly I cannot log in when I use my Google Apps account. I tried adding the app to my Google Apps account (since the Dashboard has an Add more services link that allows the adding of AE apps), but that didn't help at all. Now, I can easily create a new AE app and set it to be used on my Apps domain instead of being universal. But that means I'm the only one who can ever use the app, right? Is there any way to allow multiple Apps domains to access the same AE app? I assumed that was Google's purpose in including the Add more services option in Google Apps, but maybe I'm missing something. Thanks for any insight. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: 3 questions (about paging again)
I've watched the video...my question is how to make paging index for tag and term for search? On Wed, Dec 10, 2008 at 1:25 AM, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, By index I mean whatever index you are using for pagination, an integer property as described in the building scalable web applications talk: http://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine This should work to page searchable entities as well. Simply search for a specific term, and then filter on the paging index. -Marzia On Mon, Dec 8, 2008 at 5:01 PM, kang [EMAIL PROTECTED] wrote: I haven't got it...what is the 'index' for in your code? For different tags, they have different index for an object. 3rd question is about search the model. On Tue, Dec 9, 2008 at 4:03 AM, Marzia Niccolai [EMAIL PROTECTED] wrote: Hi, If you store the tags in a list, you should be able filter on that list using a simple equals filter, something like: MyProperty.all().filter('my tags =', tag).filter('index =', starting_index).fetch(10) Assuming you don't have a large number of tags (a couple per entry), this shouldn't result in an exploding index. The third question, if I interpret it correctly, is about using the Google Search AJAX API? If you want to use the search API for your site, and page through the results on your site, it seems you can do pagination with their API, the docs are available here: http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GSearch -Marzia On Sun, Dec 7, 2008 at 6:51 PM, lookon [EMAIL PROTECTED] wrote: I've got how to page to some extent..But I still have some problems 1.What's the best way to implement tag to a model 2.in this way, how to page the tag page? for example, http://a.appspot.com/tag/google, I need to show all model whose tag is google, and I need to page it... 3.How to page the search result? If I search Google, I will get all the result, and I don't know how to page them. Thanks. -- Stay hungry,Stay foolish. -- Stay hungry,Stay foolish. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Task Queues and Asynchronous Processing TODAY
I'm architecting my system to workaround the limited write ability in each gae request. I'd like to use task queues (as in issue 109 http://code.google.com/p/googleappengine/issues/detail?id=109 ), but that feature is not implemented yet. I'm thinking about using the following: -the initial GAE request accepts the user's request and queues the task into Amazon Simple Queue Service (Amazon SQS) using a call to an external url. -a hosted system (external to GAE) polls the SQS queues. -when the hosted system finds a task, it makes API calls into GAE to do the actual asynchronous work inside GAE and it's datastore. Just wondering if anyone else has used this type of architecture (or thought about it) and what their experience / opinion is. The only post I could find about using Amazon's queues is: http://groups.google.com/group/google-appengine/msg/86368530077bc548 --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: ClientLogin error
Hi Jeff, you are right . thanks. i have anothe question for you i couldnt figure out how the below line of code works auth_token = gdata.auth.extract_auth_sub_token_from_url (self.request.uri) i suppose only GenerateAuthSubURL() function can generate the url with tokens but i have seen the above line of code before calling GenerateAuthSubURL() in the example: http://code.google.com/appengine/articles/gdata.html how come we receive the auth_token from the requirest uri? (its just the application uri without any token right?) please share links to essential tutorials if you think i am missing some vital information, i am new to html (and for that matter, to python also :-) ) here is my assumption: based on the app.yaml file client request will be routed to the script and it will call the get function of the class assigned for handling that particular uri parameter .. correct me if i am wrong. Thank you, Tom. On Dec 8, 8:28 pm, Jeff S [EMAIL PROTECTED] 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---
[google-appengine] Re: YAPT - Yet Another Paging Topic
Out of interest, why is it a requirement that you can page to any arbitrary page? How would a user know that they want to go to page 5 specifically? How about just letting them go to a page in the next/prev n pages, where n is, say, 3 - as well as the last and first pages. More on this here (although you've probably seen it): http://groups.google.com/group/google-appengine/browse_thread/thread/15665d731e1acd68#51784b642790339e On 10/12/2008, at 6:26 AM, [EMAIL PROTECTED] wrote: I tried a sledgehammer approach to a paging issue I'm having (fetch (1000) page within it) and as expected, it's too heavy of an approach and I'm getting datastore timeouts. So, before I dive too deeply into approaching the situation I have, I thought I'd see if anyone else has run into this and came up with a solution they'd like to share. The requirements I have are: - Must be able to page through entities based on a numerical score field that is not consecutive, though can be made unique if I convert it to a float. - Previous, Next, and ?page=# (ie: ?page=5) must all be handled. The situation is that I'm working on a site that's similar to Digg in functionality. Stories are given a score by which they are ordered for presentation. This score can change through user interaction. Now, I have already ready and figured out a solution for next/previous results = fetch(11) ?nextstart=results[10].scoreprevstart=results[0].score This doesn't give me the ability to link to specific pages. As scores are changing and new entities can be created a rapid rate (bursts once an hour of 50+ entities) trying to index and keep track on submission/ score change would also lead to datastore timeouts. Anyone have any ideas? I'm beginning to think I just can not meet the page number requirement using BigTable. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~--~~~~--~~--~--~---