[appengine-java] Deployment failing 500 Internal Server Error
Unable to update: java.io.IOException: Error posting to URL: https://appengine.google.com/api/appversion/clonefiles? 500 Internal Server Error htmlhead meta http-equiv=content-type content=text/html;charset=utf-8 title500 Server Error/title /head body text=#00 bgcolor=#ff h1Error: Server Error/h1 h2The server encountered an error and could not complete your request.pIf the problem persists, please A HREF= http://code.google.com/appengine/community.html;report/A your problem and mention this error message and the query that caused it./h2 h2/h2 /body/html at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java:149) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java:82) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java:582) at com.google.appengine.tools.admin.AppVersionUpload.cloneFiles(AppVersionUpload.java:452) at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java:415) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java:112) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:56) at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:271) at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:146) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: BookingVisual - BookingTool runs on google app engine
Hey Ikai, we are every time open to improvements. Temporally we still working on the web site layout and documentation. We will consider your proposal and adapt our web site to some design concepts in the future. Thanx a lot Ronny On Jan 31, 11:47 pm, Ikai Lan (Google) ikai.l+gro...@google.com wrote: Hey, This looks pretty useful! Can I offer some constructive criticism? The site design could use a huge upgrade. You don't have to go for the bubbly, Web 2.0 look, but I bet your usage would increase if you borrowed some concepts from some great looking Wordpress themes: http://www.readwriteweb.com/biz/2011/01/why-you-should-pay-for-premiu... Users have an expectations for what a site looks like, and with a few tweaks, you could make BookingVisual look pretty amazing. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger:http://googleappengine.blogspot.com Reddit:http://www.reddit.com/r/appengine Twitter:http://twitter.com/app_engine On Mon, Jan 31, 2011 at 12:01 PM, Ronny Bubke ronny.bu...@gmail.com wrote: We are proud to announce our new graphical booking tool BookingVisual. BookingVisual runs on GAE and it's very cool. We worked hard for the last year and we think we had a cool project which will help a lot of people in their booking process. Try it out, it's fun http://bookingvisual.appspot.com Thx Ronny -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] How to prevent google bot
robot.txt ? On Tue, Feb 1, 2011 at 2:16 PM, midi chum...@gmail.com wrote: How can I prevent google bot from accessing a java based appspot app ?. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Reoccurring DeadlineExceededExceptions at request.getSession()
I have seen, for some time, DeadlineExceededExceptions in our apps log where it appears to be hanging on a request.getSession(). In our app we have an authentication filter that sets and removes an attribute on the session and this error happens at least twice a day. Has anyone else seen this behavior? Does anyone know what going on here? George Holler -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: Just getting started with Datastore
Hi Matt I agree with all that has been said here - the ultimate choice has to be yours to suit your needs, but if I had one single recommendation it would be to read the Objectify documentation to start with - even if you never use Objectify you will have gained a very quick and clear understanding of the datastore, which is likely to be different to anything you have used before. Have fun ... http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify David On Jan 31, 5:07 am, Matt Reeves mattr...@gmail.com wrote: Thanks for the feedback. I am willing to try the low-level API first and that's what I thought I was doing but could not figure out (and am still confused about) how to initially define data. For example I want to have a persistent entity with two properties of type string and one numerical property. When I use this bulkloader tool it is storing all the data as string, so maybe my problem is just learning how to use this tool to load data (which I definitely want to do). Thanks. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[google-appengine] Task Queue Rate vs. Bucket Size
So I've read through a couple of things about the Task Queue's Token- Bucket system, and I've taken a look at the wikipedia article to no avail, so forgive me if this question has been answered elsewhere: What is the resolution of the clock that deposits tokens into the bucket for each queue? Is its minimum resolution per second? i.e. If I say, I want my rate to be 10/s, are 10 tokens deposited into the bucket every second, or is one token added every 10th of a second? It seems like if the resolution is only per second, the rate is limited not only by the user's specification, but also by the bucket size... For example: If I have a specified rate of 50/s but a bucket size of 5 and the system deposits 50 tokens into the bucket every second, are the additional 45 just thrown away? Does my rate actually become 5/s? I'm specifically using the Java app engine, if there's a difference between the Task Queues in Python/Java. -- You received this message because you are subscribed to the Google Groups 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] SSLKeyException: RSA premaster secret error
I'm trying to deploy my app but am getting an ssl based error Creating staging directory Scanning for jsp files. Scanning files on local disk. Initiating update. javax.net.ssl.SSLKeyException: RSA premaster secret error Unable to update: javax.net.ssl.SSLKeyException: RSA premaster secret error at com.sun.net.ssl.internal.ssl.RSAClientKeyExchange.init(Unknown Source) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(Unknown Source) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source) at com.google.appengine.tools.admin.ServerConnection.connect(ServerConnection.java: 337) at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.java: 133) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.java: 82) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.java: 582) at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersionUpload.java: 400) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload.java: 112) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 56) at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java: 271) at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java: 146) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java: 38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not available at javax.crypto.KeyGenerator.init(DashoA13*..) at javax.crypto.KeyGenerator.getInstance(DashoA13*..) at com.sun.net.ssl.internal.ssl.JsseJce.getKeyGenerator(Unknown Source) ... 24 more I've downloaded JCE but this has not fixed the issue. (i'm using win xp) Any help would be greatly appreciated. thanks :) -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Any advice on recommended DataStore equivalent to these type(s) of table?
Hello, I'm transitioning an existing PHP + MySql web application over to python GAE. It's essentially an inventory management application for a plant nursery. The relevant mysql tables are basically: Plant: plant_idint(8) PRIMARY KEY autoincrement unsigned sci_namevarchar(60) variety varchar(60) common_name varchar(60) description text last_modified timestamp ON_UPDATE_CURRENT_TIMESTAMP PlantItems: item_id int(8) PRIMARY KEY autoincrement UNSINGED plant_idint(8) FOREIGN KEY sizevarchar(10) // something like 1_gallon, 2_gallon, etc retail_pricedecimal(5,2) wholesale_price decimal(5,2) quantityint(5) last_modified timestamp ON_UPDATE_CURRENT_TIMESTAMP So the main issue is that each plant, which has lots of info, has multiple sizes. There's flats, quart-sized containers, gallon containers, etc etc. All the plant-related details are the same between them, but they each have a unique quantity and price. In a RDMS, I can JOIN on these tables and match up plant_id. I'm trying to think of something for the DataStore model that will minimized duplicated code. I know you can store Lists in a db.Model derived class, but not a list of tuples. I also though about doing dynamic properties ala db.Expando, but that didn't seem to gain much.. Thoughts? -- You received this message because you are subscribed to the Google Groups 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: Bulkloading CSV data to app engine datastore
Hello Philippe, I am running under ubuntu. GAE supports python 2.5 not 2.7. I don't know if this is the best or easiest way, but its the way I do it. To up/down load data I followed: http://code.google.com/appengine/docs/python/tools/uploadingdata.html To configure the bulkloader.yaml I run: $ ppcfg.py create_bulkloader_config your-app-name -- filename=bulkloader.yaml It does most the magic but you have to make a few changes, like what kind of output. Edit the file bulkloader.yaml, adding at least: - kind: YourKindName connector: csv Also add to the app.yaml file builtins: - remote_api: on Now upload or download the command is long, I use python2.5, so... $ python2.5 ../google_appengine/appcfg.py upload_data --config_file=bulkloader.yaml --application=app-name --filename=YourKindName.csv --kind=YourKindName --url=http://app-name.appspot.com/_ah/remote_api --batch_size=100 good luck! -rob On Jan 30, 2:04 am, Philippe REGALL philippe.reg...@gmail.com wrote: Hello, I am trying to upload a simple CSV file (2 column: tag, value, 7000 lines) into my datastore google app engine using the bulkloader. I read the topic at:http://code.google.com/intl/fr-FR/appengine/docs/python/tools/uploadi... My questions are : - how and where to use the python command create_bulkloader_config -- filename=bulkloader.yaml ? = In python command line ? = In my main.py and then deploy ? - where do I get the file bulkloader.yaml generated ? = on my local disc ? on the api remote path ? how to catch it ? This is certainly basic questions but I am not a python programmer, I need a step by step explanation. I am a Google App inventor user who set up a customtinywebdb serivce using the code provided athttp://appinventor.googlelabs.com/learn/reference/other/tinywebdb.html. I use Google app engine launcher, Python 2.7 on Windows. Thanks in advance ! (I am blocked at this point of my development). Philippe REGALL -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: Powered by Google Technologies
Hello, Michael, is your team available to take on a GWT project that makes use of virtually all Google tools? Kindly let me know. Thanks On Tue, Feb 1, 2011 at 2:32 AM, Doug dafin...@gmail.com wrote: Nice Site! Smooth and well done. On Jan 30, 3:09 pm, Michael Weinberg weinbe...@gmail.com wrote: Wanted to share our project called CitySale.ca which is built entirely on the Google stack: Google APIs - App Engine, GWT, Maps, Fusion Tables, Geocoding, Places, Search, ... Google Tools - Analytics, DoubleClick, Webmaster The GWT Client and the App Engine based server are also deeply integrated with Facebook APIs. It is a bit scary to completely rely on a single company (Google) for all your technology/infrastructure needs, but for us the benefits outweigh this concern! Would be great to get some feedback and if I would be happy to answer any questions about how this service was built. p.s. if you are from Canada, we hope you would actually sign up and use the service too :) the url is http://www.citysale.ca Thanks, Michael Weinberg -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Odeyemi 'Kayode O. B.Sc(Hons) Econs, Application Developer Systems Engineer (Sun Certified Professional), Oracle Certified Associate, Solaris Systems Administrator, Drupal Developer Tel: +2348053063373 P.O.Box 682, Ita-elewa, Ikorodu, Lagos, Nigeria, West-Africa. Website: http://sinati.com http://www.sinati.com Socialize with me: http://profile.to/charyorde, http://twitter.com/charyorde, http://www.google.com/profiles/dreyemi Skype:drecute -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Powered by Google Technologies
Great site. I think i'll work on an imitation :) On Mon, Jan 31, 2011 at 6:03 PM, Ethan mobil...@gmail.com wrote: How long does it take to create the website? Just curious. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Odeyemi 'Kayode O. B.Sc(Hons) Econs, Application Developer Systems Engineer (Sun Certified Professional), Oracle Certified Associate, Solaris Systems Administrator, Drupal Developer Tel: +2348053063373 P.O.Box 682, Ita-elewa, Ikorodu, Lagos, Nigeria, West-Africa. Website: http://sinati.com http://www.sinati.com Socialize with me: http://profile.to/charyorde, http://twitter.com/charyorde, http://www.google.com/profiles/dreyemi Skype:drecute -- You received this message because you are subscribed to the Google Groups 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] Duplicate Property Error - Can't Fix
Hi, I'm trying to run a mapreduce job and i'm getitng Error -- DuplicatePropertyError: Class Users already has campaigns_set. Ive tried changing the collection name to something unique and reputtinga ll my entities, but i'm still getting the error. The only solution i've found is to comment out the property entirely, but i can't do that becuase then my app breaks Does anyone have any idaes on how i can get rid of that nasty error? -- You received this message because you are subscribed to the Google Groups 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: Duplicate Property Error - Can't Fix
Hi Reputting won't help. The won't be in your data. You probably more than one ReferenceProperty in different models with the property called campaigns that point to the same Kind. You will need to go over your models with a fine toothed comb. Rgds T -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: X-Sendfile, sending files securely
On Mon, Jan 31, 2011 at 5:10 PM, barryhunter barrybhun...@gmail.com wrote: Why another thread? What was wrong with the last one? On Jan 31, 9:24 pm, Lee lee.a.conn...@gmail.com wrote: What is the equivalent of using x-sendfile on GAE? How do I serve files from the web server and not my application container? -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. I apologize, this is the first time i posted to this group and it said it had to go through moderators first, and I never seen it come up in the group, I thought there was a problem, so I sent another one. -- You received this message because you are subscribed to the Google Groups 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: Your experience with the High Replication Datastore
1. Would the recommendations stand for a write-intensive application? An example is, for example, a SalesForce.com type system, where there is a balance between entering data and reading it. 2. Can we hope that in the future, tools will be available to help with the migration? If, for example, you have lots of data already; and potentially other entanglements to an existing appspot domain - are these customers relegated to slowly dissolve into obsolescence? Or might there be a function available, in the future, to help with the migration? Thanks! johnP On Jan 31, 2:51 pm, Ikai Lan (Google) ikai.l+gro...@google.com wrote: I'm going to let someone else answer this question, but we are recommending that all new applications use High Replication datastore. Datastore latency spikes are virtually non-existent if your application uses HR instead of master-slave. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger:http://googleappengine.blogspot.com Reddit:http://www.reddit.com/r/appengine Twitter:http://twitter.com/app_engine On Sat, Jan 29, 2011 at 10:25 PM, Natalie nataliegladstone...@gmail.comwrote: Hello, We are at the planning phase on a new App Engine project, and we are unsure about the choice of Master/Slave and High Replication. About our site: The site is expected to get a lot of hit (Around 50-200 QPS.). Around 20% write and 80% read. Minimal outrage a must. Will lose a lot of clients if outrages are too frequent. We would love to hear from fellow App Engine developers of their experiences with HR. In particular we want to know: 1) Recently the M/S datastore has very high latency for query. How’s your experience in HR? 2) What’s your approximate of the HR datastore availability? Is it close to 99.9%? 3) How is the read/write performance of HR datastore? Would love it if you could share some statistics. 4) How much does the cross datacenter synchronization issue affect the performance of your site? Please see this link about the issue: http://groups.google.com/group/google-appengine/browse_thread/thread/... It would be great if you could share your experience with us and other App Engine developers. Thank you very 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.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Your experience with the High Replication Datastore
Hi Ikai, Considering your recommendation is there any progress in providing an easier migration path for existing applications? On Mon, Jan 31, 2011 at 5:51 PM, Ikai Lan (Google) ikai.l+gro...@google.comikai.l%2bgro...@google.com wrote: I'm going to let someone else answer this question, but we are recommending that all new applications use High Replication datastore. Datastore latency spikes are virtually non-existent if your application uses HR instead of master-slave. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Sat, Jan 29, 2011 at 10:25 PM, Natalie nataliegladstone...@gmail.comwrote: Hello, We are at the planning phase on a new App Engine project, and we are unsure about the choice of Master/Slave and High Replication. About our site: The site is expected to get a lot of hit (Around 50-200 QPS.). Around 20% write and 80% read. Minimal outrage a must. Will lose a lot of clients if outrages are too frequent. We would love to hear from fellow App Engine developers of their experiences with HR. In particular we want to know: 1) Recently the M/S datastore has very high latency for query. How’s your experience in HR? 2) What’s your approximate of the HR datastore availability? Is it close to 99.9%? 3) How is the read/write performance of HR datastore? Would love it if you could share some statistics. 4) How much does the cross datacenter synchronization issue affect the performance of your site? Please see this link about the issue: http://groups.google.com/group/google-appengine/browse_thread/thread/5fc3b6a4366de62f/4b4d23e924b7b136 It would be great if you could share your experience with us and other App Engine developers. Thank you very 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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: Duplicate Property Error - Can't Fix
Your model, 'Campaigns' has multiple reference properties that can potentially reference User (either explicitly, or via a non-specific reference property). Add a collection_name to such reference properties (only one can remain without a collection_name). On Feb 1, 5:00 am, Tim Hoffman zutes...@gmail.com wrote: Hi Reputting won't help. The won't be in your data. You probably more than one ReferenceProperty in different models with the property called campaigns that point to the same Kind. You will need to go over your models with a fine toothed comb. Rgds T -- You received this message because you are subscribed to the Google Groups 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] Considering using Google Accounts for authentication. Good idea?
Hi all, I hope you don't mind me cross posting this to both the gwt and app engine groups since I'd really like to get the opinions of users on both platforms. I'm in the middle of developing a gwt application on app engine. The application's security requirements are that non members, meaning those that haven't registered, are restricted to viewing only the application's public 'page'. What I developed for authentication is home grown using my own login form, client side cookies and a User entity with password and email address stored in the application's data store. While my home grown implementation works perfectly I am not comfortable with the security implications of cookies and passing raw passwords to the server to authenticate my users. I also can not use SSL at this time as financial constraints unfortunately prohibit any expenditures on this project. As I place my users' privacy and security above all else I am therefore looking to implement a better solution; one that would if possible eliminate my responsibility altogether of having to store cookies and passwords and transport them via HTTP when authenticating. One alternative that I am currently considering is using Google Accounts to authenticate my users along with my own User entity that would store the additional information users must provide when registering to use the services of my application. My User entity (not to be confused with the User object provided by the User API) would store the user's Google Account ID and would provide the ability to determine if a user is registered simply by querying for their Google Accounts ID in my datastore. It would eliminate having to store client side cookies and sending raw passwords to the server. So far it seems like a win-win proposition as it appears to satisfy all my use cases. For those who already use Google Accounts for user authentication are you happy with the service? How about the services' availability track record and does it provide the security you had hoped it would? For those using Google Accounts along with GWT have you found any specific issues related to using it with GWT (I am using RPC BTW) that you can relate? I am looking forward to reading your feedback and responses and thanks in advance. Jeff -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Considering using Google Accounts for authentication. Good idea?
google accounts and the user api just works for me, allways there. wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: Hi all, I hope you don't mind me cross posting this to both the gwt and app engine groups since I'd really like to get the opinions of users on both platforms. I'm in the middle of developing a gwt application on app engine. The application's security requirements are that non members, meaning those that haven't registered, are restricted to viewing only the application's public 'page'. What I developed for authentication is home grown using my own login form, client side cookies and a User entity with password and email address stored in the application's data store. While my home grown implementation works perfectly I am not comfortable with the security implications of cookies and passing raw passwords to the server to authenticate my users. I also can not use SSL at this time as financial constraints unfortunately prohibit any expenditures on this project. As I place my users' privacy and security above all else I am therefore looking to implement a better solution; one that would if possible eliminate my responsibility altogether of having to store cookies and passwords and transport them via HTTP when authenticating. One alternative that I am currently considering is using Google Accounts to authenticate my users along with my own User entity that would store the additional information users must provide when registering to use the services of my application. My User entity (not to be confused with the User object provided by the User API) would store the user's Google Account ID and would provide the ability to determine if a user is registered simply by querying for their Google Accounts ID in my datastore. It would eliminate having to store client side cookies and sending raw passwords to the server. So far it seems like a win-win proposition as it appears to satisfy all my use cases. For those who already use Google Accounts for user authentication are you happy with the service? How about the services' availability track record and does it provide the security you had hoped it would? For those using Google Accounts along with GWT have you found any specific issues related to using it with GWT (I am using RPC BTW) that you can relate? I am looking forward to reading your feedback and responses and thanks in advance. Jeff -- Jeff Schwartz -- You received this message because you are subscribed to the Google Groups 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. -- gr Wim den Ouden Custom applications, https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps, http://code.google.com/p/relat/ Gae developer tips, http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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: Drools and Jess Expert system Develpoment with Google App Engine
Thanks Colin, you are right, no one at this time can run these libraries using Google App Engine. On 11 ene, 21:39, Colin Hawkett hawk...@gmail.com wrote: Perhaps this post will help -http://drools-java-rules-engine.46999.n3.nabble.com/drools-and-google..., I seem to remember something about those libraries requiring some unexpected stuff that interfered with Java security policies, but the memory is pretty faint - a quick proof of concept is probably your best bet. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Considering using Google Accounts for authentication. Good idea?
Are you also using GWT by chance? On Tue, Feb 1, 2011 at 9:15 AM, Wim den Ouden wdenou...@gmail.com wrote: google accounts and the user api just works for me, allways there. wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: Hi all, I hope you don't mind me cross posting this to both the gwt and app engine groups since I'd really like to get the opinions of users on both platforms. I'm in the middle of developing a gwt application on app engine. The application's security requirements are that non members, meaning those that haven't registered, are restricted to viewing only the application's public 'page'. What I developed for authentication is home grown using my own login form, client side cookies and a User entity with password and email address stored in the application's data store. While my home grown implementation works perfectly I am not comfortable with the security implications of cookies and passing raw passwords to the server to authenticate my users. I also can not use SSL at this time as financial constraints unfortunately prohibit any expenditures on this project. As I place my users' privacy and security above all else I am therefore looking to implement a better solution; one that would if possible eliminate my responsibility altogether of having to store cookies and passwords and transport them via HTTP when authenticating. One alternative that I am currently considering is using Google Accounts to authenticate my users along with my own User entity that would store the additional information users must provide when registering to use the services of my application. My User entity (not to be confused with the User object provided by the User API) would store the user's Google Account ID and would provide the ability to determine if a user is registered simply by querying for their Google Accounts ID in my datastore. It would eliminate having to store client side cookies and sending raw passwords to the server. So far it seems like a win-win proposition as it appears to satisfy all my use cases. For those who already use Google Accounts for user authentication are you happy with the service? How about the services' availability track record and does it provide the security you had hoped it would? For those using Google Accounts along with GWT have you found any specific issues related to using it with GWT (I am using RPC BTW) that you can relate? I am looking forward to reading your feedback and responses and thanks in advance. Jeff -- Jeff Schwartz -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- gr Wim den Ouden Custom applications, https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps, http://code.google.com/p/relat/ Gae developer tips, http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Considering using Google Accounts for authentication. Good idea?
python + jquery 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: Are you also using GWT by chance? On Tue, Feb 1, 2011 at 9:15 AM, Wim den Ouden wdenou...@gmail.com wrote: google accounts and the user api just works for me, allways there. wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: Hi all, I hope you don't mind me cross posting this to both the gwt and app engine groups since I'd really like to get the opinions of users on both platforms. I'm in the middle of developing a gwt application on app engine. The application's security requirements are that non members, meaning those that haven't registered, are restricted to viewing only the application's public 'page'. What I developed for authentication is home grown using my own login form, client side cookies and a User entity with password and email address stored in the application's data store. While my home grown implementation works perfectly I am not comfortable with the security implications of cookies and passing raw passwords to the server to authenticate my users. I also can not use SSL at this time as financial constraints unfortunately prohibit any expenditures on this project. As I place my users' privacy and security above all else I am therefore looking to implement a better solution; one that would if possible eliminate my responsibility altogether of having to store cookies and passwords and transport them via HTTP when authenticating. One alternative that I am currently considering is using Google Accounts to authenticate my users along with my own User entity that would store the additional information users must provide when registering to use the services of my application. My User entity (not to be confused with the User object provided by the User API) would store the user's Google Account ID and would provide the ability to determine if a user is registered simply by querying for their Google Accounts ID in my datastore. It would eliminate having to store client side cookies and sending raw passwords to the server. So far it seems like a win-win proposition as it appears to satisfy all my use cases. For those who already use Google Accounts for user authentication are you happy with the service? How about the services' availability track record and does it provide the security you had hoped it would? For those using Google Accounts along with GWT have you found any specific issues related to using it with GWT (I am using RPC BTW) that you can relate? I am looking forward to reading your feedback and responses and thanks in advance. Jeff -- Jeff Schwartz -- You received this message because you are subscribed to the Google Groups 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. -- gr Wim den Ouden Custom applications, https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps, http://code.google.com/p/relat/ Gae developer tips, http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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. -- Jeff Schwartz -- You received this message because you are subscribed to the Google Groups 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. -- gr Wim den Ouden Custom applications, https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps, http://code.google.com/p/relat/ Gae developer tips, http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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] Cache headers not working w/ billing enabled
I have billing enabled on my app and I'm trying to get the Cache- control headers to edge cache a page. I'm setting the header to Cache- Control: public; max-age=300; and I see it coming back. I'm using wget to test it out. I've also included a now date in the generated document so I can see if it's caching it or not. It is generating that now date with every request and I see logs coming in on the dashboard as 200. Am I doing something wrong? How do I get server side caching working? Thanks, David Here is the output from my wget call: ---request begin--- GET /v2/config HTTP/1.0 User-Agent: Wget/1.12 (cygwin) Accept: */* Host: 11.latest.word-play.appspot.com Connection: Keep-Alive ---request end--- HTTP request sent, awaiting response... ---response begin--- HTTP/1.0 200 OK Content-Type: application/json; charset=ISO-8859-1 Cache-Control: public; max-age=300; Date: Tue, 01 Feb 2011 15:52:10 GMT Server: Google Frontend ---response end--- 200 OK URI content encoding = `ISO-8859-1' Length: unspecified [application/json] Saving to: `STDOUT' -- You received this message because you are subscribed to the Google Groups 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] remote api and deferred handler mapping in yaml file
hi, do i still need these entries in my app.yaml? - url: /remote_api script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py login: admin - url: /_ah/queue/deferred script: $PYTHON_LIB/google/appengine/ext/deferred/handler.py login: admin im uring the remote_api: on in the builtins definition. so i guess i dont need the first entry any more. but what about the deferred handler? -- You received this message because you are subscribed to the Google Groups 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] Design Question
Hi, I have 2-3 properties(Unowned Relationship keys) in my class which i will be using in where clause to filter records. Class PropertyAd{ Key locationKey; //This will point for which location this ad has been created Key categoryKey;//This will point for which category this ad has been created. ListKey featuresKey;//It will tell what fatures this property have e.g. Fully Furnished,With Parking etc, as i dont know what kind of feature it can have in future so i am creating all the features in seprate table/class and refernecing from here. Say i could have max 50 features. } Now i can query like this 1) Select PropertyAd where locationKey=SomeKey 2) Select PropertyAd where locationKey=SomeKey and categoryKey=SomeOtherkey 3) Select PropertyAd where locationKey=SomeKey and categoryKey=SomeOtherkey and featureKey = someFeatureKey1 and featureKey = someFeatureKey2 Now for query 1 i don't need to create explicit index for query 2 , 1 index will be created e.g. if LocationKey is Location(2) and CategoryKey is Category(3) then 1 index entry will be created Location(2) +Category(3) (or may be Category(3) + Location(2) too but not sure) for query 3 i am not sure how index will be created if for one propertyAd i have LocationKey is Location(2) and CategoryKey is Category(3) featureKey Feature(10) and featureKey(12) then will it indexes as all combination of all four keys which will be 4*3*2*1=24 indexes(is it true?) Now i am thinking keys take care of most of the things then why not i put my all unowned foreign reference in one List as Class PropertyAd{ ListKey allKey;//It will have Location key, CategoryKey, feature key or any other key in future as per new requirment } and my queries will be like this 1) Select PropertyAd where allKey=SomeKey 2) Select PropertyAd where allKey=SomeKey and allKey=SomeOtherkey 3) Select PropertyAd where allKey=SomeKey andallKey =SomeOtherkey and allKey= someFeatureKey1 and allKey= someFeatureKey2 So if for one property ad i have four keys in this list will it create 4*3*2*1 indexes or it will just create 4 indexes. I am not sure how the indexes will be created and how much for it looks like second solution will be much better. All comments/suggestions are welcome Thanks in advance Ravi. -- You received this message because you are subscribed to the Google Groups 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] Inequality Filters on a date and a number
Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#Restrictions_on_Queries I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Inequality Filters on a date and a number
with the help of the cursor (all items, while loop) select on more than x_items, within the loop check if after some_input_date, append for example to python list or javascript array, when the loop is ready show the list. gr wim 2011/2/1 Prashanth prashanth.b...@gmail.com: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#Restrictions_on_Queries I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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. -- gr Wim den Ouden Custom applications, https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps, http://code.google.com/p/relat/ Gae developer tips, http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Inequality Filters on a date and a number
This would require 2 inequality filters so no luck. On Tue, Feb 1, 2011 at 7:17 AM, Prashanth prashanth.b...@gmail.com wrote: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#Restrictions_on_Queries I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17shttp://www.youtube.com/%0Awatch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Inequality Filters on a date and a number
If the amount of data is merely trivial then this would work but anything more than merely trivial and the solution would have to include the use of tasks. On Tue, Feb 1, 2011 at 12:18 PM, Wim den Ouden wdenou...@gmail.com wrote: with the help of the cursor (all items, while loop) select on more than x_items, within the loop check if after some_input_date, append for example to python list or javascript array, when the loop is ready show the list. gr wim 2011/2/1 Prashanth prashanth.b...@gmail.com: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#Restrictions_on_Queries I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- gr Wim den Ouden Custom applications, https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps, http://code.google.com/p/relat/ Gae developer tips, http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Inequality Filters on a date and a number
no, no, first the query on is item_names and more than x_items, then a loop on the result from this query (for items in resultquery:) if some_input_date date: append to list when ready show list you can play with fetch(..) to get optimum speed and cpu usage. ofcourse not a top solution, but it works till?? gr wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: This would require 2 inequality filters so no luck. On Tue, Feb 1, 2011 at 7:17 AM, Prashanth prashanth.b...@gmail.com wrote: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#Restrictions_on_Queries I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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. -- Jeff Schwartz -- You received this message because you are subscribed to the Google Groups 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. -- gr Wim den Ouden Custom applications, https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps, http://code.google.com/p/relat/ Gae developer tips, http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Inequality Filters on a date and a number
If you intend to make multiple calls passing the cursor back and forth between client and server then that would work but if you intend to do it all in one request then I think the poster of the original question would need to define how much data they were talking about which brings me back to what I suggested earlier which is: if you are talking about merely trivial amounts of data then it would work but if he is talking about anything more than merely trivial amounts of data then it wont work and another approach would be needed. Jeff I'd prefer a neater package: begin a task that kicks of multiple queries to retrieve all the results - the tasks can use a cursor. When the tasks have completed their work On Tue, Feb 1, 2011 at 12:28 PM, Wim den Ouden wdenou...@gmail.com wrote: no, no, first the query on is item_names and more than x_items, then a loop on the result from this query (for items in resultquery:) if some_input_date date: append to list when ready show list you can play with fetch(..) to get optimum speed and cpu usage. ofcourse not a top solution, but it works till?? gr wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: This would require 2 inequality filters so no luck. On Tue, Feb 1, 2011 at 7:17 AM, Prashanth prashanth.b...@gmail.com wrote: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#Restrictions_on_Queries I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Jeff Schwartz -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- gr Wim den Ouden Custom applications, https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps, http://code.google.com/p/relat/ Gae developer tips, http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Task Queue Rate vs. Bucket Size
Hi, The rate is like an average upper bound; in other words, the token-adding resolution is the unit of the rate you set. And, it is 'bursty,' so if you set a rate of 50/M you might very well have 50 tasks execute in the first second then the queue will not execute any tasks for about 59 seconds. Setting a higher bucket_size will let the queue 'burst' at a higher rate, I usually see that after a queue has emptied. At least that's how I've seen the task-queue behave. Robert On Mon, Jan 31, 2011 at 14:57, HalcyonDays jbpap...@gmail.com wrote: So I've read through a couple of things about the Task Queue's Token- Bucket system, and I've taken a look at the wikipedia article to no avail, so forgive me if this question has been answered elsewhere: What is the resolution of the clock that deposits tokens into the bucket for each queue? Is its minimum resolution per second? i.e. If I say, I want my rate to be 10/s, are 10 tokens deposited into the bucket every second, or is one token added every 10th of a second? It seems like if the resolution is only per second, the rate is limited not only by the user's specification, but also by the bucket size... For example: If I have a specified rate of 50/s but a bucket size of 5 and the system deposits 50 tokens into the bucket every second, are the additional 45 just thrown away? Does my rate actually become 5/s? I'm specifically using the Java app engine, if there's a difference between the Task Queues in Python/Java. -- You received this message because you are subscribed to the Google Groups 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. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: Inequality Filters on a date and a number
Tasks are now allowed up to 10 minutes to complete their work. You still have to deal with the 30 seconds max per datastore api call but that shouldn't be a problem. Use tasks to handle the heavy lifting and like Wim suggested use a cursor to maintain your position in the result set between task invocations. Between the 2 as well as using parallel batch gets you should easily be able to handle million + records in your result set. Once the tasks have completed it should write some marker entity out to the datastore which can be used by a forward facing request to determine if the result set is available or not. Jeff On Tue, Feb 1, 2011 at 1:24 PM, Prashanth prashanth.b...@gmail.com wrote: Thanks Jeff and Wim for the responses. I missed out giving the number of records in the datastore. The datastore has ~1 million records and ever increasing. The solution which we have now is, get all the records greater than the input date [most restrictive] in a query and then loop thru the records for records greater than x_items. This solution hit performance badly. Hence looking for an alternative solution. Any suggestions please. Thanks for reading this. On Feb 1, 11:05 pm, Jeff Schwartz jefftschwa...@gmail.com wrote: If you intend to make multiple calls passing the cursor back and forth between client and server then that would work but if you intend to do it all in one request then I think the poster of the original question would need to define how much data they were talking about which brings me back to what I suggested earlier which is: if you are talking about merely trivial amounts of data then it would work but if he is talking about anything more than merely trivial amounts of data then it wont work and another approach would be needed. Jeff I'd prefer a neater package: begin a task that kicks of multiple queries to retrieve all the results - the tasks can use a cursor. When the tasks have completed their work On Tue, Feb 1, 2011 at 12:28 PM, Wim den Ouden wdenou...@gmail.com wrote: no, no, first the query on is item_names and more than x_items, then a loop on the result from this query (for items in resultquery:) if some_input_date date: append to list when ready show list you can play with fetch(..) to get optimum speed and cpu usage. ofcourse not a top solution, but it works till?? gr wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: This would require 2 inequality filters so no luck. On Tue, Feb 1, 2011 at 7:17 AM, Prashanth prashanth.b...@gmail.com wrote: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#R. .. I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [ http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Jeff Schwartz -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- gr Wim den Ouden Custom applications,https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps,http://code.google.com/p/relat/ Gae developer
Re: [google-appengine] Considering using Google Accounts for authentication. Good idea?
I use the UsersService and GWT (RPC) and it works great for me. The only thing that you have to take care is that if the user logout from other Google application in the same browser (for example gmail) will be loged out from your application too and catch this situation. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Considering using Google Accounts for authentication. Good idea?
Actually why would that matter if I have already authenticated them? What difference does it make if they then log out from their Google Account? On Tue, Feb 1, 2011 at 2:38 PM, nacho vela.igna...@gmail.com wrote: I use the UsersService and GWT (RPC) and it works great for me. The only thing that you have to take care is that if the user logout from other Google application in the same browser (for example gmail) will be loged out from your application too and catch this situation. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: Inequality Filters on a date and a number
This won't entirely get rid of your need to loop, but you can add an indexed list property on your entity (let's call it shipped_increments) and put certain markers in it to indicate that the entity is greater than a certain amount of items shipped in certain increments (the increments would depend on your particular case), for example, let's suppose we use an increment of 100 and let's say we have an entity where the number of items shipped was 237 then you would have a list like: 0, 100, 200. If the number of items shipped where 983, then we would have 0, 100, 200, 300, 400, 500, 600, 700, 800, 900. And if the number of items shipped where 493, we would have 0, 100, 200, 300, 400. The choice of increment would be important. Then, let's say we want to know all the item names shipped after a date with at least 433 items, we would do a query with: manufactured_date date and shipped_increments = 400 Then, you would need to loop through the results and remove the ones that are from 400 to 432 because we want the ones = 433. Your choice of increments would be important so you don't get to big of indexing, but there's always a choice between indexing space and speed. Hope this helps and possibly leads you to a reasonable solution, Stephen On Tue, Feb 1, 2011 at 11:24 AM, Prashanth prashanth.b...@gmail.com wrote: Thanks Jeff and Wim for the responses. I missed out giving the number of records in the datastore. The datastore has ~1 million records and ever increasing. The solution which we have now is, get all the records greater than the input date [most restrictive] in a query and then loop thru the records for records greater than x_items. This solution hit performance badly. Hence looking for an alternative solution. Any suggestions please. Thanks for reading this. On Feb 1, 11:05 pm, Jeff Schwartz jefftschwa...@gmail.com wrote: If you intend to make multiple calls passing the cursor back and forth between client and server then that would work but if you intend to do it all in one request then I think the poster of the original question would need to define how much data they were talking about which brings me back to what I suggested earlier which is: if you are talking about merely trivial amounts of data then it would work but if he is talking about anything more than merely trivial amounts of data then it wont work and another approach would be needed. Jeff I'd prefer a neater package: begin a task that kicks of multiple queries to retrieve all the results - the tasks can use a cursor. When the tasks have completed their work On Tue, Feb 1, 2011 at 12:28 PM, Wim den Ouden wdenou...@gmail.com wrote: no, no, first the query on is item_names and more than x_items, then a loop on the result from this query (for items in resultquery:) if some_input_date date: append to list when ready show list you can play with fetch(..) to get optimum speed and cpu usage. ofcourse not a top solution, but it works till?? gr wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: This would require 2 inequality filters so no luck. On Tue, Feb 1, 2011 at 7:17 AM, Prashanth prashanth.b...@gmail.com wrote: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#R. .. I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [ http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Jeff Schwartz -- You received this message because you are subscribed to the Google
[google-appengine] Re: Task Queue Rate vs. Bucket Size
Thanks for replying... So in my example of rate=50/s and bucket-size=5: When no tasks are in the queue, clearly the bucket fills up and has 5 tokens. If I add 100 tasks, the first 5 will execute immediately and take all 5 tokens... but now the bucket is empty. I have specified a rate of 50 tokens to be added to the bucket every second... but there are two ways that could happen: 1) 50 tokens are deposited every 1 second. 2) 1 token is deposited every 1/50th of a second. If the first is true, then by using a bucket of size 5, no more than 5 tasks will ever be able to execute in a second because tokens are only being added 50 at a time to a bucket that can only hold 5 tokens. If the second is true, 5 will burst initially, but then there will be a steady stream of 1 task every 50th of a second. From what you said in your post: the token-adding resolution is the unit of the rate you set... it sounds like the first is true... which would mean that the task queue is essentially ALWAYS bursting. I guess that's not a huge deal, but means that to truly execute 50 tasks a second, I have to bump my bucket-size to 50 as well, in which case the task queue essentially starts 50 simultaneous tasks instead of staging them across the entire second... the behavior I would prefer is the second... On Feb 1, 1:44 pm, Robert Kluin robert.kl...@gmail.com wrote: Hi, The rate is like an average upper bound; in other words, the token-adding resolution is the unit of the rate you set. And, it is 'bursty,' so if you set a rate of 50/M you might very well have 50 tasks execute in the first second then the queue will not execute any tasks for about 59 seconds. Setting a higher bucket_size will let the queue 'burst' at a higher rate, I usually see that after a queue has emptied. At least that's how I've seen the task-queue behave. Robert On Mon, Jan 31, 2011 at 14:57, HalcyonDays jbpap...@gmail.com wrote: So I've read through a couple of things about the Task Queue's Token- Bucket system, and I've taken a look at the wikipedia article to no avail, so forgive me if this question has been answered elsewhere: What is the resolution of the clock that deposits tokens into the bucket for each queue? Is its minimum resolution per second? i.e. If I say, I want my rate to be 10/s, are 10 tokens deposited into the bucket every second, or is one token added every 10th of a second? It seems like if the resolution is only per second, the rate is limited not only by the user's specification, but also by the bucket size... For example: If I have a specified rate of 50/s but a bucket size of 5 and the system deposits 50 tokens into the bucket every second, are the additional 45 just thrown away? Does my rate actually become 5/s? I'm specifically using the Java app engine, if there's a difference between the Task Queues in Python/Java. -- You received this message because you are subscribed to the Google Groups 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 athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: Inequality Filters on a date and a number
Oh and you can leave out zero. I assume you don't ship zero items, so everything has to be greater than zero. On Tue, Feb 1, 2011 at 1:32 PM, Stephen Johnson onepagewo...@gmail.comwrote: This won't entirely get rid of your need to loop, but you can add an indexed list property on your entity (let's call it shipped_increments) and put certain markers in it to indicate that the entity is greater than a certain amount of items shipped in certain increments (the increments would depend on your particular case), for example, let's suppose we use an increment of 100 and let's say we have an entity where the number of items shipped was 237 then you would have a list like: 0, 100, 200. If the number of items shipped where 983, then we would have 0, 100, 200, 300, 400, 500, 600, 700, 800, 900. And if the number of items shipped where 493, we would have 0, 100, 200, 300, 400. The choice of increment would be important. Then, let's say we want to know all the item names shipped after a date with at least 433 items, we would do a query with: manufactured_date date and shipped_increments = 400 Then, you would need to loop through the results and remove the ones that are from 400 to 432 because we want the ones = 433. Your choice of increments would be important so you don't get to big of indexing, but there's always a choice between indexing space and speed. Hope this helps and possibly leads you to a reasonable solution, Stephen On Tue, Feb 1, 2011 at 11:24 AM, Prashanth prashanth.b...@gmail.comwrote: Thanks Jeff and Wim for the responses. I missed out giving the number of records in the datastore. The datastore has ~1 million records and ever increasing. The solution which we have now is, get all the records greater than the input date [most restrictive] in a query and then loop thru the records for records greater than x_items. This solution hit performance badly. Hence looking for an alternative solution. Any suggestions please. Thanks for reading this. On Feb 1, 11:05 pm, Jeff Schwartz jefftschwa...@gmail.com wrote: If you intend to make multiple calls passing the cursor back and forth between client and server then that would work but if you intend to do it all in one request then I think the poster of the original question would need to define how much data they were talking about which brings me back to what I suggested earlier which is: if you are talking about merely trivial amounts of data then it would work but if he is talking about anything more than merely trivial amounts of data then it wont work and another approach would be needed. Jeff I'd prefer a neater package: begin a task that kicks of multiple queries to retrieve all the results - the tasks can use a cursor. When the tasks have completed their work On Tue, Feb 1, 2011 at 12:28 PM, Wim den Ouden wdenou...@gmail.com wrote: no, no, first the query on is item_names and more than x_items, then a loop on the result from this query (for items in resultquery:) if some_input_date date: append to list when ready show list you can play with fetch(..) to get optimum speed and cpu usage. ofcourse not a top solution, but it works till?? gr wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: This would require 2 inequality filters so no luck. On Tue, Feb 1, 2011 at 7:17 AM, Prashanth prashanth.b...@gmail.com wrote: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#R. .. I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [ http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com .
[google-appengine] How to configure a entity field to be unique?
I have configured: @Column(unique = true, nullable= false , name=email) private String email; But the error occurred: java.lang.UnsupportedOperationException: No support for uniqueness constraints What I need to do in AppEngine to this field be unique? I need a way that I can use the exported jar in any JPA implementation. Is it possible? -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: Inequality Filters on a date and a number
Hi Prashanth, Add an additional property you can do an equality filter on, such as 'has_at_least_10_items.' If 'x' is a known amount that will solve your issue by itself, if 'x' is a variable amount you might want to use several 'bins' so that you can easily eliminate chucks of data in the query then do the remaining processing in your app code. Robert On Tue, Feb 1, 2011 at 13:24, Prashanth prashanth.b...@gmail.com wrote: Thanks Jeff and Wim for the responses. I missed out giving the number of records in the datastore. The datastore has ~1 million records and ever increasing. The solution which we have now is, get all the records greater than the input date [most restrictive] in a query and then loop thru the records for records greater than x_items. This solution hit performance badly. Hence looking for an alternative solution. Any suggestions please. Thanks for reading this. On Feb 1, 11:05 pm, Jeff Schwartz jefftschwa...@gmail.com wrote: If you intend to make multiple calls passing the cursor back and forth between client and server then that would work but if you intend to do it all in one request then I think the poster of the original question would need to define how much data they were talking about which brings me back to what I suggested earlier which is: if you are talking about merely trivial amounts of data then it would work but if he is talking about anything more than merely trivial amounts of data then it wont work and another approach would be needed. Jeff I'd prefer a neater package: begin a task that kicks of multiple queries to retrieve all the results - the tasks can use a cursor. When the tasks have completed their work On Tue, Feb 1, 2011 at 12:28 PM, Wim den Ouden wdenou...@gmail.com wrote: no, no, first the query on is item_names and more than x_items, then a loop on the result from this query (for items in resultquery:) if some_input_date date: append to list when ready show list you can play with fetch(..) to get optimum speed and cpu usage. ofcourse not a top solution, but it works till?? gr wim 2011/2/1 Jeff Schwartz jefftschwa...@gmail.com: This would require 2 inequality filters so no luck. On Tue, Feb 1, 2011 at 7:17 AM, Prashanth prashanth.b...@gmail.com wrote: Hi, Am trying to query my Google App Engine datastore [Python], which has a item_name, manufacturing_date and number_of_items_shipped. The scenario: Get all the item_names which has been shipped more than x_items [user input] and manufactured after some_input_date [user input]. Basically, kind of inventory check. But due to restrictions on queries in GAE, am not able to do this. http://code.google.com/appengine/docs/python/datastore/queries.html#R... I tried searching on the internet for this issue. But, no luck till now. Did you come across this issue, if so, were you able to resolve this? Please let me know. Also in Google I/O 2010, Next Gen Queries [http://www.youtube.com/ watch?v=ofhEyDBpngM#t=3m17s], Alfred Fuller mentioned that they are going to remove this restriction soon. Its been more than 8 months, but this restriction is in place even now. Makes life very difficult. Appreciate if anyone can post an answer if they were able to circumvent this restriciton. Thanks a lot. Regards, Prashanth. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Jeff Schwartz -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- gr Wim den Ouden Custom applications,https://e-comm.appspot.com/ Free open source E-commerce/E-bookkeeping/E-business framework (web) apps,http://code.google.com/p/relat/ Gae developer tips,http://code.google.com/p/relat/wiki/gaetips -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Task Queue Rate vs. Bucket Size
Hi HalcyonDays, In this case the system will add another token every 1/50th of a second. Note that the taskqueue system may batch up requests so that even though you will receive a new token every 1/50th of a second it may burst 2-3 (well, actually up to 5) tasks at a time. On 2 February 2011 07:35, HalcyonDays jbpap...@gmail.com wrote: Thanks for replying... So in my example of rate=50/s and bucket-size=5: When no tasks are in the queue, clearly the bucket fills up and has 5 tokens. If I add 100 tasks, the first 5 will execute immediately and take all 5 tokens... but now the bucket is empty. I have specified a rate of 50 tokens to be added to the bucket every second... but there are two ways that could happen: 1) 50 tokens are deposited every 1 second. 2) 1 token is deposited every 1/50th of a second. If the first is true, then by using a bucket of size 5, no more than 5 tasks will ever be able to execute in a second because tokens are only being added 50 at a time to a bucket that can only hold 5 tokens. If the second is true, 5 will burst initially, but then there will be a steady stream of 1 task every 50th of a second. From what you said in your post: the token-adding resolution is the unit of the rate you set... it sounds like the first is true... which would mean that the task queue is essentially ALWAYS bursting. I guess that's not a huge deal, but means that to truly execute 50 tasks a second, I have to bump my bucket-size to 50 as well, in which case the task queue essentially starts 50 simultaneous tasks instead of staging them across the entire second... the behavior I would prefer is the second... On Feb 1, 1:44 pm, Robert Kluin robert.kl...@gmail.com wrote: Hi, The rate is like an average upper bound; in other words, the token-adding resolution is the unit of the rate you set. And, it is 'bursty,' so if you set a rate of 50/M you might very well have 50 tasks execute in the first second then the queue will not execute any tasks for about 59 seconds. Setting a higher bucket_size will let the queue 'burst' at a higher rate, I usually see that after a queue has emptied. At least that's how I've seen the task-queue behave. Robert On Mon, Jan 31, 2011 at 14:57, HalcyonDays jbpap...@gmail.com wrote: So I've read through a couple of things about the Task Queue's Token- Bucket system, and I've taken a look at the wikipedia article to no avail, so forgive me if this question has been answered elsewhere: What is the resolution of the clock that deposits tokens into the bucket for each queue? Is its minimum resolution per second? i.e. If I say, I want my rate to be 10/s, are 10 tokens deposited into the bucket every second, or is one token added every 10th of a second? It seems like if the resolution is only per second, the rate is limited not only by the user's specification, but also by the bucket size... For example: If I have a specified rate of 50/s but a bucket size of 5 and the system deposits 50 tokens into the bucket every second, are the additional 45 just thrown away? Does my rate actually become 5/s? I'm specifically using the Java app engine, if there's a difference between the Task Queues in Python/Java. -- You received this message because you are subscribed to the Google Groups 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 athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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. -- Greg Darke -- You received this message because you are subscribed to the Google Groups 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: Considering using Google Accounts for authentication. Good idea?
I am in favor of google auth for all the reasons you mentioned. It makes things easier, more reliable and cheaper for me. My only concern is that most of my new users feel skeptical at first glance when providing their google credentials during the sign up process. During my demos 90% of my users have said I hope u won't steal my google password. Now both you and I know that google doesn't share the users private data let alone the password. The log in page even tells that to all users but this is not apparent and is not the users first impression. Google analytics shows me that this is huring my sign ups. I am considering removing google auth but would like everyones input before I do so. Thanks Sandeep On Feb 1, 9:08 am, Jeff Schwartz jefftschwa...@gmail.com wrote: Hi all, I hope you don't mind me cross posting this to both the gwt and app engine groups since I'd really like to get the opinions of users on both platforms. I'm in the middle of developing a gwt application on app engine. The application's security requirements are that non members, meaning those that haven't registered, are restricted to viewing only the application's public 'page'. What I developed for authentication is home grown using my own login form, client side cookies and a User entity with password and email address stored in the application's data store. While my home grown implementation works perfectly I am not comfortable with the security implications of cookies and passing raw passwords to the server to authenticate my users. I also can not use SSL at this time as financial constraints unfortunately prohibit any expenditures on this project. As I place my users' privacy and security above all else I am therefore looking to implement a better solution; one that would if possible eliminate my responsibility altogether of having to store cookies and passwords and transport them via HTTP when authenticating. One alternative that I am currently considering is using Google Accounts to authenticate my users along with my own User entity that would store the additional information users must provide when registering to use the services of my application. My User entity (not to be confused with the User object provided by the User API) would store the user's Google Account ID and would provide the ability to determine if a user is registered simply by querying for their Google Accounts ID in my datastore. It would eliminate having to store client side cookies and sending raw passwords to the server. So far it seems like a win-win proposition as it appears to satisfy all my use cases. For those who already use Google Accounts for user authentication are you happy with the service? How about the services' availability track record and does it provide the security you had hoped it would? For those using Google Accounts along with GWT have you found any specific issues related to using it with GWT (I am using RPC BTW) that you can relate? I am looking forward to reading your feedback and responses and thanks in advance. Jeff -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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: Powered by Google Technologies
@Doug - thanks for the positive feedback @Kayode - sounds like an ultimatum - I either make my team available for you or you are going to imitate it? Sounds like a nice approach to doing business :) If you are really interested in the project, email me privately. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: Considering using Google Accounts for authentication. Good idea?
Hi Sandeep, I would have thought that by using Google Accounts to authenticate users it would eliminate the need for having a login page altogether. If the user isn't logged in then just let the User api forward them to Google's login page and redirect them back to your site once they've logged in. Am I right or am I missing something here? Jeff On Tue, Feb 1, 2011 at 4:51 PM, Sandeep Arneja sandee...@gmail.com wrote: I am in favor of google auth for all the reasons you mentioned. It makes things easier, more reliable and cheaper for me. My only concern is that most of my new users feel skeptical at first glance when providing their google credentials during the sign up process. During my demos 90% of my users have said I hope u won't steal my google password. Now both you and I know that google doesn't share the users private data let alone the password. The log in page even tells that to all users but this is not apparent and is not the users first impression. Google analytics shows me that this is huring my sign ups. I am considering removing google auth but would like everyones input before I do so. Thanks Sandeep On Feb 1, 9:08 am, Jeff Schwartz jefftschwa...@gmail.com wrote: Hi all, I hope you don't mind me cross posting this to both the gwt and app engine groups since I'd really like to get the opinions of users on both platforms. I'm in the middle of developing a gwt application on app engine. The application's security requirements are that non members, meaning those that haven't registered, are restricted to viewing only the application's public 'page'. What I developed for authentication is home grown using my own login form, client side cookies and a User entity with password and email address stored in the application's data store. While my home grown implementation works perfectly I am not comfortable with the security implications of cookies and passing raw passwords to the server to authenticate my users. I also can not use SSL at this time as financial constraints unfortunately prohibit any expenditures on this project. As I place my users' privacy and security above all else I am therefore looking to implement a better solution; one that would if possible eliminate my responsibility altogether of having to store cookies and passwords and transport them via HTTP when authenticating. One alternative that I am currently considering is using Google Accounts to authenticate my users along with my own User entity that would store the additional information users must provide when registering to use the services of my application. My User entity (not to be confused with the User object provided by the User API) would store the user's Google Account ID and would provide the ability to determine if a user is registered simply by querying for their Google Accounts ID in my datastore. It would eliminate having to store client side cookies and sending raw passwords to the server. So far it seems like a win-win proposition as it appears to satisfy all my use cases. For those who already use Google Accounts for user authentication are you happy with the service? How about the services' availability track record and does it provide the security you had hoped it would? For those using Google Accounts along with GWT have you found any specific issues related to using it with GWT (I am using RPC BTW) that you can relate? I am looking forward to reading your feedback and responses and thanks in advance. Jeff -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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: Task Queue Rate vs. Bucket Size
Thank you, Greg! This is excellent news. On Feb 1, 4:29 pm, Greg Darke da...@google.com wrote: Hi HalcyonDays, In this case the system will add another token every 1/50th of a second. Note that the taskqueue system may batch up requests so that even though you will receive a new token every 1/50th of a second it may burst 2-3 (well, actually up to 5) tasks at a time. On 2 February 2011 07:35, HalcyonDays jbpap...@gmail.com wrote: Thanks for replying... So in my example of rate=50/s and bucket-size=5: When no tasks are in the queue, clearly the bucket fills up and has 5 tokens. If I add 100 tasks, the first 5 will execute immediately and take all 5 tokens... but now the bucket is empty. I have specified a rate of 50 tokens to be added to the bucket every second... but there are two ways that could happen: 1) 50 tokens are deposited every 1 second. 2) 1 token is deposited every 1/50th of a second. If the first is true, then by using a bucket of size 5, no more than 5 tasks will ever be able to execute in a second because tokens are only being added 50 at a time to a bucket that can only hold 5 tokens. If the second is true, 5 will burst initially, but then there will be a steady stream of 1 task every 50th of a second. From what you said in your post: the token-adding resolution is the unit of the rate you set... it sounds like the first is true... which would mean that the task queue is essentially ALWAYS bursting. I guess that's not a huge deal, but means that to truly execute 50 tasks a second, I have to bump my bucket-size to 50 as well, in which case the task queue essentially starts 50 simultaneous tasks instead of staging them across the entire second... the behavior I would prefer is the second... On Feb 1, 1:44 pm, Robert Kluin robert.kl...@gmail.com wrote: Hi, The rate is like an average upper bound; in other words, the token-adding resolution is the unit of the rate you set. And, it is 'bursty,' so if you set a rate of 50/M you might very well have 50 tasks execute in the first second then the queue will not execute any tasks for about 59 seconds. Setting a higher bucket_size will let the queue 'burst' at a higher rate, I usually see that after a queue has emptied. At least that's how I've seen the task-queue behave. Robert On Mon, Jan 31, 2011 at 14:57, HalcyonDays jbpap...@gmail.com wrote: So I've read through a couple of things about the Task Queue's Token- Bucket system, and I've taken a look at the wikipedia article to no avail, so forgive me if this question has been answered elsewhere: What is the resolution of the clock that deposits tokens into the bucket for each queue? Is its minimum resolution per second? i.e. If I say, I want my rate to be 10/s, are 10 tokens deposited into the bucket every second, or is one token added every 10th of a second? It seems like if the resolution is only per second, the rate is limited not only by the user's specification, but also by the bucket size... For example: If I have a specified rate of 50/s but a bucket size of 5 and the system deposits 50 tokens into the bucket every second, are the additional 45 just thrown away? Does my rate actually become 5/s? I'm specifically using the Java app engine, if there's a difference between the Task Queues in Python/Java. -- You received this message because you are subscribed to the Google Groups 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 athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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 athttp://groups.google.com/group/google-appengine?hl=en. -- Greg Darke -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Your experience with the High Replication Datastore
Yes, we are looking at different ways of providing even more powerful migration tools. How much data are you looking to migrate? -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Tue, Feb 1, 2011 at 5:22 AM, Jeff Schwartz jefftschwa...@gmail.comwrote: Hi Ikai, Considering your recommendation is there any progress in providing an easier migration path for existing applications? On Mon, Jan 31, 2011 at 5:51 PM, Ikai Lan (Google) ikai.l+gro...@google.com ikai.l%2bgro...@google.com wrote: I'm going to let someone else answer this question, but we are recommending that all new applications use High Replication datastore. Datastore latency spikes are virtually non-existent if your application uses HR instead of master-slave. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Sat, Jan 29, 2011 at 10:25 PM, Natalie nataliegladstone...@gmail.comwrote: Hello, We are at the planning phase on a new App Engine project, and we are unsure about the choice of Master/Slave and High Replication. About our site: The site is expected to get a lot of hit (Around 50-200 QPS.). Around 20% write and 80% read. Minimal outrage a must. Will lose a lot of clients if outrages are too frequent. We would love to hear from fellow App Engine developers of their experiences with HR. In particular we want to know: 1) Recently the M/S datastore has very high latency for query. How’s your experience in HR? 2) What’s your approximate of the HR datastore availability? Is it close to 99.9%? 3) How is the read/write performance of HR datastore? Would love it if you could share some statistics. 4) How much does the cross datacenter synchronization issue affect the performance of your site? Please see this link about the issue: http://groups.google.com/group/google-appengine/browse_thread/thread/5fc3b6a4366de62f/4b4d23e924b7b136 It would be great if you could share your experience with us and other App Engine developers. Thank you very 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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: Where can I find commercial successfully websites created using GAE?
I have built a set of websites on GAE. ePaymentExpress.net is the home site, with links to eTicketExpress.com , eRegisterExpress.com and eFundraiserExpress.com . They all use Python/Django and Google Checkout for online payments. We are currently running two school plays with assigned seating (choose your seats from the seating chart), a swim challenge (record your distance every day this month) and an online auction (make bids on products, like eBay). We are ready to scale up and run hundreds of events simultaneously. On Jan 22, 3:35 pm, Ricardo1980 ricardo_ruiz_lo...@yahoo.es wrote: Hello all! Where can I find commercial successfully websites created using GAE? Is there any list available? Here I can see open source projects:http://groups.google.com/group/google-appengine/web/google-app-engine... But where commercial projects? Thanks a lot for your help. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] how to contact help? can't get to dashboard
Thanks that gets me in. -- You received this message because you are subscribed to the Google Groups 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: remote api and deferred handler mapping in yaml file
Hi You may need it. I have my own handler for deferred's as I need sys.path manipulated and a number of imports performed for deferred. If you need this sort of thing then you will. Rgds T -- You received this message because you are subscribed to the Google Groups 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] --clear_datastore
Hey Guys, This morning I'm trying to clear my local datastore and receiving the following error. Could not read datastore data from c:\users\jay\appdata\local\temp \dev_appserver.datastore There is indeed no datastore at that location. Can anybody let me know where the datastore might be so I can delete it. Jay. -- You received this message because you are subscribed to the Google Groups 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] Migration to High Replication, lost access to keys.
Hi! I just migrated to the High Replication datastore. Some of my entities contain stringified keys of other entities. For example: Entity(db.Model): owner = db.StringProperty() # the str(Key) of the owner. Owner(db.Model): name = db.StringProperty() Now that I've migrated to the high-replication datastore, all the stringified keys in the Entity Model contain bad keys because the Owner Entities have new keys now. 2 questions: 1. Would this have been prevented by using db.ReferenceProperty() instead? 2. How can I resolve this issue? I need to update all entities to contain the new keys instead. Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: --clear_datastore
Wouldn't have a clue where yours ended up, but you can always define a specific datastore path --datastore_path=PATH , then you will always know where it is. I believe you can specify it in the launcher somewhere if you use that. Rgds T -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: Task Queue Rate vs. Bucket Size
Hi Greg, When I set a rate of say 30/M, I basically always see all of my tasks run in the first second or two then the queue sits empty for a minute, then 30 run, etc So are you saying if I adjusted the bucket size down to, say, 1, then they would at least trickle out over 30 seconds? Robert On Tue, Feb 1, 2011 at 16:29, Greg Darke da...@google.com wrote: Hi HalcyonDays, In this case the system will add another token every 1/50th of a second. Note that the taskqueue system may batch up requests so that even though you will receive a new token every 1/50th of a second it may burst 2-3 (well, actually up to 5) tasks at a time. On 2 February 2011 07:35, HalcyonDays jbpap...@gmail.com wrote: Thanks for replying... So in my example of rate=50/s and bucket-size=5: When no tasks are in the queue, clearly the bucket fills up and has 5 tokens. If I add 100 tasks, the first 5 will execute immediately and take all 5 tokens... but now the bucket is empty. I have specified a rate of 50 tokens to be added to the bucket every second... but there are two ways that could happen: 1) 50 tokens are deposited every 1 second. 2) 1 token is deposited every 1/50th of a second. If the first is true, then by using a bucket of size 5, no more than 5 tasks will ever be able to execute in a second because tokens are only being added 50 at a time to a bucket that can only hold 5 tokens. If the second is true, 5 will burst initially, but then there will be a steady stream of 1 task every 50th of a second. From what you said in your post: the token-adding resolution is the unit of the rate you set... it sounds like the first is true... which would mean that the task queue is essentially ALWAYS bursting. I guess that's not a huge deal, but means that to truly execute 50 tasks a second, I have to bump my bucket-size to 50 as well, in which case the task queue essentially starts 50 simultaneous tasks instead of staging them across the entire second... the behavior I would prefer is the second... On Feb 1, 1:44 pm, Robert Kluin robert.kl...@gmail.com wrote: Hi, The rate is like an average upper bound; in other words, the token-adding resolution is the unit of the rate you set. And, it is 'bursty,' so if you set a rate of 50/M you might very well have 50 tasks execute in the first second then the queue will not execute any tasks for about 59 seconds. Setting a higher bucket_size will let the queue 'burst' at a higher rate, I usually see that after a queue has emptied. At least that's how I've seen the task-queue behave. Robert On Mon, Jan 31, 2011 at 14:57, HalcyonDays jbpap...@gmail.com wrote: So I've read through a couple of things about the Task Queue's Token- Bucket system, and I've taken a look at the wikipedia article to no avail, so forgive me if this question has been answered elsewhere: What is the resolution of the clock that deposits tokens into the bucket for each queue? Is its minimum resolution per second? i.e. If I say, I want my rate to be 10/s, are 10 tokens deposited into the bucket every second, or is one token added every 10th of a second? It seems like if the resolution is only per second, the rate is limited not only by the user's specification, but also by the bucket size... For example: If I have a specified rate of 50/s but a bucket size of 5 and the system deposits 50 tokens into the bucket every second, are the additional 45 just thrown away? Does my rate actually become 5/s? I'm specifically using the Java app engine, if there's a difference between the Task Queues in Python/Java. -- You received this message because you are subscribed to the Google Groups 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 athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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. -- Greg Darke -- You received this message because you are subscribed to the Google Groups 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from
[google-appengine] Signing jar files from the app
Is it possible to sign a .jar file within GAEJ? If not, such future will be very useful and welcomed. Thanks. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] High Replication - How to download data via remote_api
Hi! I'm performing this command. (I replaced my real app id with app-id) appcfg.py download_data --filename=download.dat --url=http://app- id.appspot.com/remote_api I'm getting this error. google.appengine.api.datastore_errors.BadRequestError: app s~app-id cannot access app app-id's data What's with the s~ in s~app-id? How do I download data? I just want to perform a backup. Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Migration to High Replication, lost access to keys.
Hi Albert, On Wed, Feb 2, 2011 at 12:44 PM, Albert albertpa...@gmail.com wrote: Hi! I just migrated to the High Replication datastore. Some of my entities contain stringified keys of other entities. For example: Entity(db.Model): owner = db.StringProperty() # the str(Key) of the owner. Owner(db.Model): name = db.StringProperty() Now that I've migrated to the high-replication datastore, all the stringified keys in the Entity Model contain bad keys because the Owner Entities have new keys now. The migration tool rewrites the App ID of keys, but only if they're stored as keys (or reference properties). This is one reason why you shouldn't store stringified keys in the datastore! 2 questions: 1. Would this have been prevented by using db.ReferenceProperty() instead? Yes. 2. How can I resolve this issue? I need to update all entities to contain the new keys instead. You should probably use the mapreduce library. For your mapper function, deserialize the key, and construct a new one with the correct App ID (you can simply use db.Key.from_path to do this, as it will fill in the App ID for you) then store it again. You might want to move to using ReferenceProperties when you do this. -Nick Johnson Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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: Problems when downloading data from the app
I have similar problem, but slight different error message. [ERROR2011-02-02 14:40:50,286 adaptive_thread_pool.py] Error in Thread-1: urlopen error (10014, 'Bad address') [DEBUG2011-02-02 14:40:50,301 adaptive_thread_pool.py] Traceback (most recent call last): File C:\Documents and Settings\Administrator\My Documents \pointmarket\google_appengine\google\appengine\tools\bulkloader.py, line 693, in PerformWork transfer_time = self._TransferItem(thread_pool) File C:\Documents and Settings\Administrator\My Documents \pointmarket\google_appengine\google\appengine\tools\bulkloader.py, line 1081, in _TransferItem self, retry_parallel=self.first) File C:\Documents and Settings\Administrator\My Documents \pointmarket\google_appengine\google\appengine\tools\bulkloader.py, line 1358, in GetEntities results = self._QueryForPbs(query) File C:\Documents and Settings\Administrator\My Documents \pointmarket\google_appengine\google\appengine\tools\bulkloader.py, line 1308, in _QueryForPbs result_pb) File D:\Program Files\Google\google_appengine\google\appengine\api \apiproxy_stub_map.py, line 78, in MakeSyncCall return apiproxy.MakeSyncCall(service, call, request, response) File D:\Program Files\Google\google_appengine\google\appengine\api \apiproxy_stub_map.py, line 278, in MakeSyncCall rpc.CheckSuccess() File D:\Program Files\Google\google_appengine\google\appengine\api \apiproxy_rpc.py, line 149, in _WaitImpl self.request, self.response) File D:\Program Files\Google\google_appengine\google\appengine\ext \remote_api\remote_api_stub.py, line 223, in MakeSyncCall handler(request, response) File D:\Program Files\Google\google_appengine\google\appengine\ext \remote_api\remote_api_stub.py, line 232, in _Dynamic_RunQuery 'datastore_v3', 'RunQuery', query, query_result) File D:\Program Files\Google\google_appengine\google\appengine\ext \remote_api\remote_api_stub.py, line 155, in MakeSyncCall self._MakeRealSyncCall(service, call, request, response) File D:\Program Files\Google\google_appengine\google\appengine\ext \remote_api\remote_api_stub.py, line 167, in _MakeRealSyncCall encoded_response = self._server.Send(self._path, encoded_request) File D:\Program Files\Google\google_appengine\google\appengine\tools \appengine_rpc.py, line 346, in Send f = self.opener.open(req) File D:\Python25\lib\urllib2.py, line 381, in open response = self._open(req, data) File D:\Python25\lib\urllib2.py, line 399, in _open '_open', req) File D:\Python25\lib\urllib2.py, line 360, in _call_chain result = func(*args) File D:\Python25\lib\urllib2.py, line 1107, in http_open return self.do_open(httplib.HTTPConnection, req) File D:\Python25\lib\urllib2.py, line 1082, in do_open raise URLError(err) URLError: urlopen error (10014, 'Bad address') [DEBUG2011-02-02 14:40:50,301 bulkloader.py] Waiting for progress_thread to terminate... [DEBUG2011-02-02 14:40:50,316 bulkloader.py] [Thread-11] ExportProgressThread: exiting [DEBUG2011-02-02 14:40:50,316 bulkloader.py] ... done. [INFO 2011-02-02 14:40:50,332 bulkloader.py] Have 892 entities, 0 previously transferred [INFO 2011-02-02 14:40:50,332 bulkloader.py] 892 entities (5134783 bytes) transferred in 63.6 seconds --- This URLError: urlopen error (10014, 'Bad address') error occur every time I try to download data after some time. Has anyone know about this problem? On 1월24일, 오후5시23분, Ricardo Bánffy rban...@gmail.com wrote: in case it affects anyone else, one line fixes it: Index: google/appengine/tools/bulkloader.py === --- google/appengine/tools/bulkloader.py (revision 142) +++ google/appengine/tools/bulkloader.py (working copy) @@ -698,6 +698,8 @@ transfer_time) sys.stdout.write('.') sys.stdout.flush() + # Since we had at least one successful transfer, we could assume DNS errors are transient + non_fatal_error_codes.add(-2) status = adaptive_thread_pool.WorkItem.SUCCESS if transfer_time = MAXIMUM_INCREASE_DURATION: instruction = adaptive_thread_pool.ThreadGate.INCREASE BTW, is there a nice constant for this kind of error? Adding a -2 to the set seems dirty, to say the least. 2011/1/22 Ricardo Bánffy rban...@gmail.com: Hi. I have been, for the past couple days, to download data from the live app to my local development copy. Every time, sometimes a couple hours and gigabytes into the download, I get a .[INFO ] An error occurred. Shutting down... ..[ERROR ] Error in Thread-8: urlopen error (-2, 'Name or service not known') [INFO ] Have 210 entities, 0 previously transferred [INFO ] 210 entities (2145028 bytes) transferred in 54.4 seconds message. I assume a try/except with a couple
[google-appengine] Re: Migration to High Replication, lost access to keys.
Thank you! On Feb 2, 1:30 pm, Nick Johnson (Google) nick.john...@google.com wrote: Hi Albert, On Wed, Feb 2, 2011 at 12:44 PM, Albert albertpa...@gmail.com wrote: Hi! I just migrated to the High Replication datastore. Some of my entities contain stringified keys of other entities. For example: Entity(db.Model): owner = db.StringProperty() # the str(Key) of the owner. Owner(db.Model): name = db.StringProperty() Now that I've migrated to the high-replication datastore, all the stringified keys in the Entity Model contain bad keys because the Owner Entities have new keys now. The migration tool rewrites the App ID of keys, but only if they're stored as keys (or reference properties). This is one reason why you shouldn't store stringified keys in the datastore! 2 questions: 1. Would this have been prevented by using db.ReferenceProperty() instead? Yes. 2. How can I resolve this issue? I need to update all entities to contain the new keys instead. You should probably use the mapreduce library. For your mapper function, deserialize the key, and construct a new one with the correct App ID (you can simply use db.Key.from_path to do this, as it will fill in the App ID for you) then store it again. You might want to move to using ReferenceProperties when you do this. -Nick Johnson Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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: --clear_datastore
I tried that but it said my new datastore could not be found, and somehow used my old one anyhow. On Feb 2, 11:58 am, Tim Hoffman zutes...@gmail.com wrote: Wouldn't have a clue where yours ended up, but you can always define a specific datastore path --datastore_path=PATH , then you will always know where it is. I believe you can specify it in the launcher somewhere if you use that. Rgds T -- You received this message because you are subscribed to the Google Groups 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: High Replication - How to download data via remote_api
I think you need --application=app-id in your command. Also you should verify that /remote_api is responding on your server. -- You received this message because you are subscribed to the Google Groups 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.
Re: [google-appengine] Re: High Replication - How to download data via remote_api
The s~ also plays havoc when trying to add a HR app to a Google Apps domain. Try leaving out the s~ and see if that works. It fixes the Google Apps problem. Nick On 2 February 2011 18:30, Calvin calvin.r...@gmail.com wrote: I think you need --application=app-id in your command. Also you should verify that /remote_api is responding on your server. -- You received this message because you are subscribed to the Google Groups 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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.