Re: [appengine-java] HTTP Pipelining support in AppEngine
I see your point: since App engine does not support long-lived HTTP connections, we can not use HTTP pipelining. For the backends, is the support for HTTP pipelining automatic? Thanks Inder On Saturday, June 25, 2011 1:25:20 PM UTC-7, Nischal wrote: From what I can understand you need a long lived http connection? You can have a look at backends which do not have the 30s limit. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/SqcFg_hnqYQJ. 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: Building Session affinity manually
Anyone? On Wednesday, June 22, 2011 12:03:47 AM UTC-7, Inderjeet Singh wrote: I am using HttpURLConnection to connect to my JSON services deployed on the AppEngine. I would like to build session affinity: i.e., all requests from a client should go the same app-engine instance (best effort, not a hard requirement). Is there a way to build this? For example, is there a cookie or a response header that I can save on the client and send back in each request to achieve this? Thanks Inder -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/XREmFOvIgnoJ. 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] java variables and jbutton
somebody help me to know how to run another java class when java jbutton clicked. and how to equal variables in two java classes. pleace post the sample code... thank you. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/CdoiKMMGnksJ. 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] java variables and jbutton
somebody help me to know how to run another java class when java jbutton clicked. and how to equal variables in two java classes. pleace post the sample code... thank you. -- 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: Building Session affinity manually
There's nothing you can do to affect which request goes to which instance. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/XKpUIjxHBW8J. 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] Problem with using OpenSSL-generated RSA key on App Engine Java
On 25 June 2011 14:51, Stephen Johnson onepagewo...@gmail.com wrote: I'm no expert on this sort of thing, but I think you need to base-64 decode your string. I don't think base64-decoding is necessary, because private.der is in binary DER format. The key I posted was base64-encoded PEM key, the format OpenSSL handles by default. The key works in SDK, but the production system rejects it. Why? -- 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: JDO: 1-N relationships
Just to add to objectuser, you definitely need to use entity groups to retrieve all entity types within a transaction if you use the model you're both describing. You might want to consider a change in your model though to move the most updated fields in User to a new and different entity, freeing you from needing to retrieve Track and User for those updates. From your description that new entity is found with name fields that are the same fields as in the User and Track entities. This is 2nd normal form in terms of a database model... On Jun 25, 9:33 am, objectuser kevin.k.le...@gmail.com wrote: As long as both the user and tracks are in the same entity group, you can do just that. Whether that's a good idea or not depends on how those users and tracks will be used. If only one user is going to be messing with the tracks, then you should be fine. If many users need to update those tracks, then you will have a lot of contention on that entity group. This is all because only one transaction can update an entity group at a time. On Jun 24, 2:47 am, Martin Newstead skankmar...@hotmail.com wrote: I would like some help and advice on how to model my entities using JDO on GAE. My problem is this, I have a bunch of Users and each User may create zero or more Tracks. Users may exist without a Track but Tracks may not exist without a User who created them. Other attributes on the User and the Track may updated. I would like to be able to query the Tracks and retrieve some attributes from the User who created the Track. The attributes from the User may get updated. In SQL this would be select u.displayName, t.trackName from User u, Track t, where t.userId=u.userId I have some ideas and have tried various things but this isn't a post on why doesn't something work, more of what is the best practice to solve this problem. thanks M -- 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] Problem with using OpenSSL-generated RSA key on App Engine Java
If private.der is in binary format then why are you reading it in as a String using Scanner??? On Sun, Jun 26, 2011 at 8:02 AM, Dado Colussi dado.colu...@gmail.com wrote: On 25 June 2011 14:51, Stephen Johnson onepagewo...@gmail.com wrote: I'm no expert on this sort of thing, but I think you need to base-64 decode your string. I don't think base64-decoding is necessary, because private.der is in binary DER format. The key I posted was base64-encoded PEM key, the format OpenSSL handles by default. The key works in SDK, but the production system rejects it. Why? -- 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. -- 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: Multiple issues with eclipse 1.5.1 update
#1 and #2 Actually turned out to be an issue with the Appwrench plugin. It does not seem to be compatible with the 1.5.1 SDK plugin. I have notified the Appwrench developers of the problem. #3 Was just me having a mental hiccup. The correct switch is -- address. On Jun 22, 7:51 pm, Scott shathaw...@gmail.com wrote: I updated the Google Plugin and App Engine SDK bundles for Eclipse today and am having a number of problems. First my configuration: OS: Ubuntu Linux 11.04 Eclipse: Version: Helios Service Release 2 Build id: 20110218-0911 Plugins: Google Plugin for Eclipse 3.6 2.3.2.r36v201106211634 com.google.gdt.eclipse.suite.e36.feature.feature.group Google App Engine Java SDK 1.5.1 1.5.1.r36v201106211634 com.google.appengine.eclipse.sdkbundle.e36.feature.feature.group Issues: 1. Following update restart my app engine projects won't build. The error log has: java.lang.IllegalArgumentException: Unable to find / home/eeb/opt/eclipse/plugins/ com.google.appengine.eclipse.sdkbundle_1.5.1.r36v201106211634/ appengine-sdk-plugin.jar/lib/shared There is additional stack if needed. 2. I go to the preferences for the app engine sdk and attempt to set an SDK I get: Failed to initialize App Engine SDK at /home/eeb/opt/ eclipse/plugins/ com.google.appengine.eclipse.sdkbundle_1.5.1.r36v201106211634/ appengine-java-sdk-1.5.1 3. After following the work around below, the --server option seems to be ignored in the debug configuration, and the development only binds to localhost. I have to test devices against the server, so this is a critical problem. Workaround: - Uninstalled the App Engine Java SDK plugin. I can now set the app engine sdk and run my development server. The result is an info message and stack trace at the top: INFO: Unable to accesshttps://0.0.0.0/api/updatecheck?runtime=javarelease=1.5.1×tamp=...['1.0'] Can someone try and reproduce these same issues? If you can let me know, and I will open a bug ticket. -- 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] Problem with using OpenSSL-generated RSA key on App Engine Java
On 26 June 2011 11:36, Stephen Johnson onepagewo...@gmail.com wrote: If private.der is in binary format then why are you reading it in as a String using Scanner??? Because I'm an idiot, but I managed to resolve the issue now. Thank you for pointing me to the right direction. -- 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] req.getparamater non-latin character problem.
Hi; I tried to use nonlatein characters in URL GET request.But when i use nonlatin chars looking like ?. I tried String kimeisim = req.getParameter(kimeisim); kimeisim = new String(kimeisim.getBytes(8859_1),UTF8); but nothing happens still non latin chars are ? . Thanks for all helps -- 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] Download and install older version of appengine sdk
Hello, I have installed appengine sdk 1.5.1 and deleted all 1.5.0 libraries. One of my applications has stopped working. Is there a site that I can download the 1.5.0 sdk? All that I seem to be able to find is the latest version. I would like to install and try the broken application. Thanks, Raney -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/hSlqsJl6ZbYJ. 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] Download and Install older appengine versions
Hello, I have updated to Java sdk 1.5.1 and deleted all references to 1.5.0. I have just found an application that is not running the way it was with 1.5.0. Is there a page that I can go to lo download older versions of the appengine sdk. All that I seem to be able to find is the latest 1.5.1 version, I would like to download install and try the broken application. Thanks, Raney -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/c-vkqTJqAWYJ. 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] Download and Install older appengine versions
http://googleappengine.googlecode.com/files/appengine-java-sdk-1.5.0.zip On Sat, Jun 25, 2011 at 7:59 PM, RRRaney rrrsyst...@gmail.com wrote: Hello, I have updated to Java sdk 1.5.1 and deleted all references to 1.5.0. I have just found an application that is not running the way it was with 1.5.0. Is there a page that I can go to lo download older versions of the appengine sdk. All that I seem to be able to find is the latest 1.5.1 version, I would like to download install and try the broken application. Thanks, Raney -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/c-vkqTJqAWYJ. 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. -- 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: [google-appengine] Updated App Engine Pricing FAQ!
I agree with most Nick said, especially on (2) and (3) Hi Greg, Regarding your points made on *(3) How can you justify your instance price when compared with Amazon EC2?*: We have been given up a lot on the power and flexibility for using GAE (e.g. 30 second limit, no socket support, no external SMTP for free email, no custom binary lib, no non-blocking runtime with python, etc etc). Given Google has full control on how the platform behaves (so on how our apps behave) and added so many limitations, I expect GAE to be cheaper than IAAS like AWS. Unfortunately its the other way around (also note that AWS is pretty expensive among all the IAAS out there). Of course you can charge for whatever you like, but I can hardly think anyone would be picking GAE in the future with such an uncompetitive pricing and added limitations, on such a unique environment that takes you months or years to adapt which you can take it nowhere else. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/xoYnQvOvUpgJ. 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] Can deleted app ids never be reused under AppEngine?
You can request an alias be created from the old to new app. Shouldn't appear any different than if you deleted and recreated to your users. On Thu, Jun 23, 2011 at 05:30, Devraj Mukherjee dev...@gmail.com wrote: Hi Brandon, On Thu, Jun 23, 2011 at 5:19 PM, Brandon Wirtz drak...@digerat.com wrote: Nope. Damn :) Thanks anyway -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Can deleted app ids never be reused under AppEngine?
can i have multiple aliases mapped to a single app. in case, i want to put multiple applications in single appengine app to optimize cost as per new pricing scheme ... -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Migrating to HRD from Master/Slave
Hi, See responses inline. On Tue, Jun 21, 2011 at 11:31, luka uluk...@gmail.com wrote: We are considering to migrate our master/slave application to HRD one. We have a few questions regarding this process: 1. Today we have other collaborating site which uses our application URL lugotest.appspot.com (we used it instead of the domain name for SSL reasons). Will we be able to preserve the application URL? or will we have to change it to new application URL name. You can request an alias from the old appid to the new by submitting a billing issue. Is Google app engine support SSL for non appspot domains? It is on the roadmap, unfortunately it has been there a very long time and there is still no ETA. 2. Is the only way to migrate data is to use python instructions? You could use the built in datastore admin, or write something yourself. I've actually done several migrations using my own tools to directly move the data. I also think with the new files API you could put something much more efficient together by dumping your data to large blobs, moving the blobs to the new app, then having something process the blob into datastore entities. 3. Is there a way to purchase support for this operation to ensure the success of the migration? -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] TypeError: escape_encode() argument 1 must be str, not unicode
Yes! *Another* URL shortener! ;) On Tue, Jun 21, 2011 at 06:32, Taufiq Sunar taufiqsu...@gmail.com wrote: Yes its windows and its in development server :D btw, after I deployed it, this problem disappear! thanks for the response! On 6/21/11, Brandon Wirtz drak...@digerat.com wrote: Those look like windows errors, is this app deployed? -Original Message- From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Taufiq Sunar Sent: Monday, June 20, 2011 5:10 AM To: google-appengine@googlegroups.com Subject: [google-appengine] TypeError: escape_encode() argument 1 must be str, not unicode Im trying to make a url shortener using Google URL Shortener API with App Engine this is my source code in main.py from google.appengine.ext import webapp from google.appengine.ext.webapp import util from xml.dom import minidom from google.appengine.ext.webapp.util import run_wsgi_app import httplib, json import cgi class MainPage(webapp.RequestHandler): def get(self): self.response.out.write( html head titleSimple Url Shortener/title body Url shortener using Google URL Shortener API. Masukkan url yang pengen dipendekin. form action=/hasil method=post divUrl/divdivtextarea name=url rows=1 cols=50/textarea/div divinput type=submit value=Cari/div /form /body /html) class Cari(webapp.RequestHandler): def post(self): url = self.request.get('url') conn = httplib.HTTPSConnection('www.googleapis.com') conn.connect(); short = ''+url+'' body = '{longUrl: %s}' % short headers = {'content-type':'application/json'} conn.request('POST', '/urlshortener/v1/url', body, headers) response = json.loads(conn.getresponse().read()) self.response.out.write('htmltitleSimple Url Shortener/titlebodyUrl yang sudah dipendekin dari ', url, ' :pre') self.response.out.write(response[id]) self.response.out.write('/pre/body/html') application = webapp.WSGIApplication([('/', MainPage), ('/hasil', Cari)], debug=True) def main(): run_wsgi_app(application) if __name__ == '__main__': main() and its get error message : Traceback (most recent call last): File C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py, line 702, in __call__ handler.post(*groups) File D:\latian web\url shortener\main.py, line 55, in post response = json.loads(conn.getresponse().read()) File C:\Program Files\Google\google_appengine\google\appengine\dist\httplib.py, line 213, in getresponse self._allow_truncated, self._follow_redirects) File C:\Program Files\Google\google_appengine\google\appengine\api\urlfetch.py, line 260, in fetch return rpc.get_result() File C:\Program Files\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py, line 592, in get_result return self.__get_result_hook(self) File C:\Program Files\Google\google_appengine\google\appengine\api\urlfetch.py, line 348, in _get_fetch_result rpc.check_success() File C:\Program Files\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py, line 558, in check_success self.__rpc.CheckSuccess() File C:\Program Files\Google\google_appengine\google\appengine\api\apiproxy_rpc.py, line 156, in _WaitImpl self.request, self.response) File C:\Program Files\Google\google_appengine\google\appengine\api\apiproxy_stub.py, line 87, in MakeSyncCall method(request, response) File C:\Program Files\Google\google_appengine\google\appengine\api\urlfetch_stub.py, line 207, in _Dynamic_Fetch validate_certificate=validate_certificate) File C:\Program Files\Google\google_appengine\google\appengine\api\urlfetch_stub.py, line 294, in _RetrieveURL escaped_payload = payload.encode('string_escape') TypeError: escape_encode() argument 1 must be str, not unicode anybody knows what should i do to troubleshoot this? i use httplib module to make a connection and request. Best regards, Taufiq Sunar -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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. -- You
Re: [google-appengine] Strange Index behaviour and proper index strategy
Hi Alex, Some responses inline. On Mon, Jun 20, 2011 at 10:41, Alex-S senior.pep...@gmail.com wrote: Hi Google App Engine team, Lets say I have an Entity with a few properties: @Entity public class Animal{ private String domain; private String kingdom; private String phylum; private String class; private String order; private String family; private String genus; private String species; private String classifier; private Date classifiedDate; private Date dateEntered; //getters + setters ... } If I want to search on say, domain, kingdom, class and dateEntered with equality google docs suggest I don't need an index, but strangely on some values - dateEntered = 2007 + any value of the properties I get DatastoreNeedIndexException but not for dateEntered = 2006 or 2008. I would have expected to get the error for all values where an index was not in place or no error at all. Have i done something wrong here? This is using a merge-join. Basically it is scanning each single property index, getting the matching results, and finding the intersection between them. In some cases this is very inefficient, for example this might happen if 2007 has many results that must be checked against the other indexes. Defining an index will make this query much faster at read time, but slightly increase your write cost. Also is it true that I need to specify an index (ok even auto generated) for every query where a sort order is specified? When multiple properties are used, yes. so for instance if I want to query on any domain=something ordered by classifiedDate descending that's one index: datastore-index kind=Animal ancestor=false property name=domain direction=asc/ property name=classifiedDate direction=desc/ /datastore-index but if I wanted to query on any domain=something and kingdom=otherThing ordered by classifiedDate that would be two indexs: No, IIRC you just need one index in this case. datastore-index kind=Animal ancestor=false property name=domain direction=asc/ property name=kingdom direction=asc/ property name=classifiedDate direction=desc/ /datastore-index datastore-index kind=Animal ancestor=false property name=kingdom direction=asc/ property name=domain direction=asc/ property name=classifiedDate direction=desc/ /datastore-index because app engine treats property ordering as important? I don't believe this is currently the case. However, as I recall there was some mention that this might be the case in the future -- but I'm not 100% sure about that. I guess I could always order the query properties myself to ensure no index is duplicated and then for small numbers of properties this isn't too bad. If I wanted to optionally search for kingdoms or domains or both ordered by classifiedDate the index definition would be datastore-index kind=Animal ancestor=false property name=domain direction=asc/ property name=classifiedDate direction=desc/ /datastore-index datastore-index kind=Animal ancestor=false property name=kingdom direction=asc/ property name=classifiedDate direction=desc/ /datastore-index datastore-index kind=Animal ancestor=false property name=domain direction=asc/ property name=kingdom direction=asc/ property name=classifiedDate direction=desc/ /datastore-index But, If I wanted to search on any combination of, say, 3 properties + an order field this would be some 8 index definitions, 5 properties + an order would mean 32 definitions. Yes, you might need to define a lot of indexes if you're optionally querying on many combinations of properties. If they are largely equality filters you might be able to use list properties to help a little, but the order introduces some other complexities with that. Check out the mastering the datastore articles. They are quite helpful, though a bit dated. http://code.google.com/appengine/articles/datastore/overview.html Robert 9 entity properties and order on classifiedDate would be some 512(!!) different index definitions. If I wanted ascending as well as descending order on classifiedDate then I have to double that - 1024 definitions. and if I wanted to order on the query (optionally) as dateEntered ascending or descending instead then thats double again - 2048. These seems crazy just to query on 9 difference properties. Or have I got it badly wrong? Can I just create the 4 indexes : datastore-index kind=Animal ancestor=false property name=classifiedDate direction=desc/ /datastore-index datastore-index kind=Animal ancestor=false property name=classifiedDate direction=asc/ /datastore-index datastore-index kind=Animal ancestor=false property name=dateEntered direction=desc/ /datastore-index datastore-index kind=Animal
Re: [google-appengine] Any advice on a potential rejig of my application?
Hey John, I've used and seen a few ways to deal with trees depending on what is actually in them. I have used relational type models, where each node in the tree points to its parent. You can make this queryable in some way by storing a list of ancestors or descendants. Or, you can do some denormalization. I've also used the each-node-is-an-entity method in conjunction with a meta-data-entity that stores the actual structure as something like a serialized nested dict. There are other subtle variations on each of these themes. The right one probably mostly depends on how you will write and *especially* on how you will need to query and fetch the data. Pick the technique that makes fetching / traversing / querying the tree easiest for your app. If each node is light-weight, like a name, then storing the entire tree serialized works well too (I frequently do this for meta-data used in computations). Just be aware it makes querying a bit more difficult. If the nodes are a little heavier, but still pretty small, the idea of storing the tree until hit hits some critical size and splitting it is cool. If you expect most trees will fit in a small number of entities (like 1), this could be a very nice solution since a single fetch by key gets the whole tree. If you've got a good way to do this for your app, it might be worth looking in to. The lucky boots + kick the crap of the code warranted some responses; disappointed with the rest of the group community Robert On Tue, Jun 21, 2011 at 03:19, Joops john.b...@gmail.com wrote: Hi all, I am facing a massive rewrite, so I wanted to get some validation before I strap on my lucky boots and go kick the crap out of my code. (by which I mean refractor it after some serious pondering) My program stores data in a tree structure, a user could have several trees. Currently I have an entry in the datastore for each node. I can walk up and down the tree, fetching nodes and I can do everything I want to and all is fine. Except that it hits the datastore loads. I am considering re-plumbing it so that each whole tree is a data store entry. (unless it was over a certain size, in which case I would break a nodes children out to a new data store entry) So if a user needed the data for a specific node, then its appropriate tree would be loaded from memcache or the datasore, and then the data would be returned to the user. Just for background - I am a basic level python user. (only use it in my free time). Ok… my questions… - Does this seem reasonable to you? (My original architecture was very stuck in how I would have managed the data in a relational database) - Any caveats or things I should be aware of? (binary or JSON serialisation performance, that kind of thing) - Any thoughts on how I should address nodes? (Currently they have a convenient ID which my client side code can use to identify which node to do something to) - I will most likely use guids, but they seem a bit heavy Thanks very much J -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] Re: Any advice on a potential rejig of my application?
I would suggest the approach is dependent on the most likely access pattern. If you only use parts of the tree at a time (For instance url traversal of the tree) then I would keep the nodes as seperate entities. I have done this for a simple CMS. All children have a reference property pointing to the parent. And a list property describing the path elements (names). In addition each parent holds an ordered list of names (children) and keys of the children. This way you can retrieve all immediate children in a single db.get. You can get children of arbitrary depths by querying based on the path. Aggressive memcache use then means any re-use of parts of the tree on subsequant requests hit cache pretty well. If one the other hand your using whole trees then ignore what I just said ;-) Have fun. T -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/ceAJxTTK-oMJ. 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] Can deleted app ids never be reused under AppEngine?
On Sun, Jun 26, 2011 at 4:52 PM, Robert Kluin robert.kl...@gmail.com wrote: You can request an alias be created from the old to new app. Shouldn't appear any different than if you deleted and recreated to your users. Thanks Robert. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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: Updated App Engine Pricing FAQ!
On this note, I'm very glad to see GAE coming out of preview. I'd like to point out that some of GAE's success must be due to the pricing scheme pay as you go along with cheap prices. I just really hope that this new pricing scheme along with higher prices doesn't deter enough users so that in two years we aren't getting another announcement that GAE will be discontinued in 3 years due to a large drop in interest. On Jun 26, 1:13 am, Raymond C. windz...@gmail.com wrote: I agree with most Nick said, especially on (2) and (3) Hi Greg, Regarding your points made on *(3) How can you justify your instance price when compared with Amazon EC2?*: We have been given up a lot on the power and flexibility for using GAE (e.g. 30 second limit, no socket support, no external SMTP for free email, no custom binary lib, no non-blocking runtime with python, etc etc). Given Google has full control on how the platform behaves (so on how our apps behave) and added so many limitations, I expect GAE to be cheaper than IAAS like AWS. Unfortunately its the other way around (also note that AWS is pretty expensive among all the IAAS out there). Of course you can charge for whatever you like, but I can hardly think anyone would be picking GAE in the future with such an uncompetitive pricing and added limitations, on such a unique environment that takes you months or years to adapt which you can take it nowhere else. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Updated App Engine Pricing FAQ!
On Sat, Jun 25, 2011 at 5:36 PM, Jeff Schnitzer j...@infohazard.org wrote: On Sat, Jun 25, 2011 at 3:26 PM, Alfred Fuller arfuller+appeng...@google.com wrote: This makes sense, and encourages more use of memcache. to hold entities. One question that I've been wondering a while - presuming no caching, does this query-keys+batch-get approach produce higher latency than a simple query, and if so, by how much? a db.Get will force strong consistency in the High Replication Datastore, which will introduce higher latency depending on how many entity groups you are fetching from (see other threads about this problem). If you set the read_policy to EVENTUAL_CONSISTENCY (or you are still using M/S Datastore) you will only pay the additional RPC latency. This is the not taking into account the 1000 entities vs 500 entities part of this question, which is hard to predict. For fetching let's say 100 entities, what % of the cost of the fetch is just the RPC? Is this fairly insignificant compared to the cost of pulling 100 entities from the datastore? Also, when you say RPC, I presume you mean the RPC from our appserver to whatever system manages datastore requests, right? Because there is likely a handful of requests from that system out to the individual tablet servers that hold the entity data, right? The only difference between querying keys then manually getting the entities (with EVENTUAL_CONSISTENCY in HRD) is: - Higher likelihood of seeing inconsistent results (entities that no longer match query) - Additional appserver - datastore RPC overhead (you will have to run performance tests to see what this is, might be able to hid it with async calls) - Additional small op charge per key fetched otherwise they function identically. Also, is there any way we can get the transaction timestamp out on datastore writes? This would *dramatically* improve the robustness of code that tries to keep memcache in sync with the datastore during contention. I've spoken with Alfred and Max about this, but I don't know if it's a priority. This could potentially reduce datastore bills by orders of magnitude. :-), Ya it will save you the gets to populate the cache. A couple of us in Objectify-land tried to come up with a way to keep the memcache synchronized with the datastore during contended writes, and we failed to come up with a good answer. I'm fairly certain that without access to the write timestamp, there's no way to guarantee synchronization. Jeff -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.
[google-appengine] nothing changed... my app broke! (django template render error)
In the last week or two, one part of my app stopped working. I haven't looked at the code in months. Did something change that broke my old code? The end of the traceback shows: BadValueError: Property user must be a User Where to look? This app has worked flawlessly for a couple years now. Top of the traceback: line 389, in get self.response.out.write(template.render(path, template_values)) File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/webapp/template.py, line 73, in render return t.render(Context(template_dict)) File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/webapp/template.py, line 115, in wrap_render return orig_render(context) File /base/python_runtime/python_lib/versions/third_party/ django-0.96/django/template/__init__.py, line 168, in render return self.nodelist.render(context) * File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/db/__init__.py, line 3172, in validate raise BadValueError('Property %s must be a User' % self.name) BadValueError: Property user must be a User -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] channels - socket.close() in JS not working on dev_server
In javascript I try to close a perfectly working channel socket object. While it works on appengine, on dev server I get the following error: GET http://192.168.1.2:8080/_ah/channel/dev?command=pollchannel=channel--g1olif-18580476422013912411_0client=connection-3 500 (Client connection with ID connection-3 not found.) anything I am doing wrong ??? I am using 1.5.1 SDK with Java -- Roberto -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/xuXYJxXRZfUJ. 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: Any advice on a potential rejig of my application?
Cheers guys, I have had quite a fun time over the course of this project trying to optimise the tree for various different things at different times. (It's a notes app, and people store the notes in a tree structure). I have found a real tension between making it easy to get tasks (by storing various child and ancestor lists) and making it cheap to keep everything up to date. It's going to be quite write heavy, so I want to make writing and updating notes as cheap as possible. As Robert mentioned, if I can get the tree into a single entity, it is going to make writing and reading as cheap as possible. Hopefully most people will have a lot less than 1MB of notes. (not writing an evernote replacement!) Thanks again both! J. On Jun 26, 9:23 am, Tim Hoffman zutes...@gmail.com wrote: I would suggest the approach is dependent on the most likely access pattern. If you only use parts of the tree at a time (For instance url traversal of the tree) then I would keep the nodes as seperate entities. I have done this for a simple CMS. All children have a reference property pointing to the parent. And a list property describing the path elements (names). In addition each parent holds an ordered list of names (children) and keys of the children. This way you can retrieve all immediate children in a single db.get. You can get children of arbitrary depths by querying based on the path. Aggressive memcache use then means any re-use of parts of the tree on subsequant requests hit cache pretty well. If one the other hand your using whole trees then ignore what I just said ;-) Have fun. 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] Sending email in batch
I'm currently trying to figure out the best way to send batches of emails using tasks. There are three ways I can imagine doing it: 1. Enqueue a task passing it a list of addressees, and the task processes the first one, and enqueues a task passing it the rest 2. Enqueue a task passing it the whole list, and the task processes N addresses, and enqueues a task passing it the rest 3. Enqueue a task passing it the whole list, task enqueues another task with all items except first N items, and processes the first N items after that (which I guess would imagine to parallel processing). How would you do it? -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Updated App Engine Pricing FAQ!
On Sun, Jun 26, 2011 at 5:02 PM, Alfred Fuller arfuller+appeng...@google.com wrote: - Additional small op charge per key fetched otherwise they function identically. Speaking of charges, how are we to interpret the new fields CommitCost.requested_entity_puts and CommitCost.requested_entity_deletes in eg. the PutResponse protocol buffer which were added in the latest SDK? Should we ignore the existing IndexWrites, EntityWrites etc.? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Sending email in batch
If you're using the appengine mail api be sure you want that or something along the lines of Amazons mail service because I remember reading a thread where one of the appengine devs said the email service is not meant for large amount of emails (clients would block your email and many others might take it to be spam) How about querying the datastore and making use of a cursor. Pass the cursor value to the new tasks. Will that work for you? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/F9QNcUuiWSgJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Sending email in batch
Here is the discussion about using a different dedicated email service in case you are into sending a lot of emails https://groups.google.com/d/msg/google-appengine/azhX_BKiNiE/WYrM9blv1CIJ -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/yL6EBkFAK4wJ. 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: Sending email in batch
On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty nischalshett...@gmail.com wrote: If you're using the appengine mail api be sure you want that or something along the lines of Amazons mail service because I remember reading a thread where one of the appengine devs said the email service is not meant for large amount of emails (clients would block your email and many others might take it to be spam) Yes I know about this. We will use SendGrid after Beta release, but for Alpha, we plan to use the GAE mail API simply to keep things rolling. How about querying the datastore and making use of a cursor. Pass the cursor value to the new tasks. Will that work for you? The mailing lists are generated dynamically. So once the list is compiled from the data in the datastore, I would not like to store it, and then repeatedly read it from the datastore each time a task is executed. What I do is: mailing_list = generate_list(from=some_data) task.add(url='/url/to/task', params={'mailing_list': mailing_list.join(',')}) and in the task handler (when I want to do a batch of 50 emails in one task): mailing_list = params.POST.get('mailing_list').split(',') to_process = mailing_list[50:] the_rest = mailing_list[:50] or in case I want to go one by one: to_process = mailing_list.pop(0) the_rest = mailing_list enqueue the_rest, and process to_process. I haven't tested this yet, but I'm wondering if it's better to go one-by-one or many-by-many. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Sending email in batch
I would suggest you do it in parallel. Create n tasks with x emails in each of them. It would be faster that way! On 26 June 2011 15:52, Branko Vukelic bg.bra...@gmail.com wrote: On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty nischalshett...@gmail.com wrote: If you're using the appengine mail api be sure you want that or something along the lines of Amazons mail service because I remember reading a thread where one of the appengine devs said the email service is not meant for large amount of emails (clients would block your email and many others might take it to be spam) Yes I know about this. We will use SendGrid after Beta release, but for Alpha, we plan to use the GAE mail API simply to keep things rolling. How about querying the datastore and making use of a cursor. Pass the cursor value to the new tasks. Will that work for you? The mailing lists are generated dynamically. So once the list is compiled from the data in the datastore, I would not like to store it, and then repeatedly read it from the datastore each time a task is executed. What I do is: mailing_list = generate_list(from=some_data) task.add(url='/url/to/task', params={'mailing_list': mailing_list.join(',')}) and in the task handler (when I want to do a batch of 50 emails in one task): mailing_list = params.POST.get('mailing_list').split(',') to_process = mailing_list[50:] the_rest = mailing_list[:50] or in case I want to go one by one: to_process = mailing_list.pop(0) the_rest = mailing_list enqueue the_rest, and process to_process. I haven't tested this yet, but I'm wondering if it's better to go one-by-one or many-by-many. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- -Nischal twitter: NischalShetty http://twitter.com/nischalshetty facebook: Nischal http://facebook.com/nischal -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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: Sending email in batch
Ok, thanks for all the answers. I'll do it that way. On Sun, Jun 26, 2011 at 10:16 PM, Nischal Shetty nischalshett...@gmail.com wrote: I would suggest you do it in parallel. Create n tasks with x emails in each of them. It would be faster that way! On 26 June 2011 15:52, Branko Vukelic bg.bra...@gmail.com wrote: On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty nischalshett...@gmail.com wrote: If you're using the appengine mail api be sure you want that or something along the lines of Amazons mail service because I remember reading a thread where one of the appengine devs said the email service is not meant for large amount of emails (clients would block your email and many others might take it to be spam) Yes I know about this. We will use SendGrid after Beta release, but for Alpha, we plan to use the GAE mail API simply to keep things rolling. How about querying the datastore and making use of a cursor. Pass the cursor value to the new tasks. Will that work for you? The mailing lists are generated dynamically. So once the list is compiled from the data in the datastore, I would not like to store it, and then repeatedly read it from the datastore each time a task is executed. What I do is: mailing_list = generate_list(from=some_data) task.add(url='/url/to/task', params={'mailing_list': mailing_list.join(',')}) and in the task handler (when I want to do a batch of 50 emails in one task): mailing_list = params.POST.get('mailing_list').split(',') to_process = mailing_list[50:] the_rest = mailing_list[:50] or in case I want to go one by one: to_process = mailing_list.pop(0) the_rest = mailing_list enqueue the_rest, and process to_process. I haven't tested this yet, but I'm wondering if it's better to go one-by-one or many-by-many. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- -Nischal twitter: NischalShetty facebook: Nischal -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Sending email in batch
Also remember that in a batch you can add a maximum of 100 tasks. On 26 June 2011 17:00, Branko Vukelic bg.bra...@gmail.com wrote: Ok, thanks for all the answers. I'll do it that way. On Sun, Jun 26, 2011 at 10:16 PM, Nischal Shetty nischalshett...@gmail.com wrote: I would suggest you do it in parallel. Create n tasks with x emails in each of them. It would be faster that way! On 26 June 2011 15:52, Branko Vukelic bg.bra...@gmail.com wrote: On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty nischalshett...@gmail.com wrote: If you're using the appengine mail api be sure you want that or something along the lines of Amazons mail service because I remember reading a thread where one of the appengine devs said the email service is not meant for large amount of emails (clients would block your email and many others might take it to be spam) Yes I know about this. We will use SendGrid after Beta release, but for Alpha, we plan to use the GAE mail API simply to keep things rolling. How about querying the datastore and making use of a cursor. Pass the cursor value to the new tasks. Will that work for you? The mailing lists are generated dynamically. So once the list is compiled from the data in the datastore, I would not like to store it, and then repeatedly read it from the datastore each time a task is executed. What I do is: mailing_list = generate_list(from=some_data) task.add(url='/url/to/task', params={'mailing_list': mailing_list.join(',')}) and in the task handler (when I want to do a batch of 50 emails in one task): mailing_list = params.POST.get('mailing_list').split(',') to_process = mailing_list[50:] the_rest = mailing_list[:50] or in case I want to go one by one: to_process = mailing_list.pop(0) the_rest = mailing_list enqueue the_rest, and process to_process. I haven't tested this yet, but I'm wondering if it's better to go one-by-one or many-by-many. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- -Nischal twitter: NischalShetty facebook: Nischal -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- -Nischal twitter: NischalShetty http://twitter.com/nischalshetty facebook: Nischal http://facebook.com/nischal http://www.justunfollow.com http://www.buffr.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Sending email in batch
I've decided to process 50 emails per task. I've looked over the logs and I'm guessing that's far more than enough limit to for the task to finish in 10 minutes.The task itself checks if there's anything left (at the very top) and queues another task. It seems to be working nicely. Not sure if that's the proper way of doing parallel processing, but I'm happy with the solution. On Sun, Jun 26, 2011 at 11:33 PM, Nischal Shetty nischalshett...@gmail.comwrote: Also remember that in a batch you can add a maximum of 100 tasks. On 26 June 2011 17:00, Branko Vukelic bg.bra...@gmail.com wrote: Ok, thanks for all the answers. I'll do it that way. On Sun, Jun 26, 2011 at 10:16 PM, Nischal Shetty nischalshett...@gmail.com wrote: I would suggest you do it in parallel. Create n tasks with x emails in each of them. It would be faster that way! On 26 June 2011 15:52, Branko Vukelic bg.bra...@gmail.com wrote: On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty nischalshett...@gmail.com wrote: If you're using the appengine mail api be sure you want that or something along the lines of Amazons mail service because I remember reading a thread where one of the appengine devs said the email service is not meant for large amount of emails (clients would block your email and many others might take it to be spam) Yes I know about this. We will use SendGrid after Beta release, but for Alpha, we plan to use the GAE mail API simply to keep things rolling. How about querying the datastore and making use of a cursor. Pass the cursor value to the new tasks. Will that work for you? The mailing lists are generated dynamically. So once the list is compiled from the data in the datastore, I would not like to store it, and then repeatedly read it from the datastore each time a task is executed. What I do is: mailing_list = generate_list(from=some_data) task.add(url='/url/to/task', params={'mailing_list': mailing_list.join(',')}) and in the task handler (when I want to do a batch of 50 emails in one task): mailing_list = params.POST.get('mailing_list').split(',') to_process = mailing_list[50:] the_rest = mailing_list[:50] or in case I want to go one by one: to_process = mailing_list.pop(0) the_rest = mailing_list enqueue the_rest, and process to_process. I haven't tested this yet, but I'm wondering if it's better to go one-by-one or many-by-many. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com . To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- -Nischal twitter: NischalShetty facebook: Nischal -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- -Nischal twitter: NischalShetty http://twitter.com/nischalshetty facebook: Nischal http://facebook.com/nischal http://www.justunfollow.com http://www.buffr.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Branko Vukelić bra...@herdhound.com Lead Developer Herd Hound (tm) - Travel that doesn't bite www.herdhound.com -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Appstats and getCpuTimeInMegaCycles - How do I understand the number ?
Hey Guys, My CPU quota is running out quite quickly and in order to understand what is eating the resources I decided to use appsstats and API calls for my disposal: 1. QuotaService - I'm using the following: long start = mQuotaService.getCpuTimeInMegaCycles(); ... long end = mQuotaService.getCpuTimeInMegaCycles(); double cpuSeconds = mQuotaService.convertMegacyclesToCpuSeconds(end - start); When printing to the log I'm getting 0.52 however when looking at the log numbers at the top I get /job_worker 200 5530ms 51845cpu_ms 51125api_cpu_ms (printed in bold red) couple of questions: a. What is the differences between the numbers? what is cpu_ms and api_cpi_ms ? b. Why the quota api tells me half a second however the log themselves give me higher numbers (5530 ms) ? 2. appstats - appstats give me number of RPC calls How can I use these numbers to measure the performance, for example I know that datastore_v3.Delete is being called allot, does this call takes the most of my cpu time? Thank you, Efi -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Need to be able to create more apps
Hi! I have a limit of 20 apps, and have already created those 20. I am at a Startup Weekend and really want to be able to push to a new appspot url, could I get this limit raised for my account please? Cheers -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Process parameters of a POST HTTP request in a REST web service (JERSEY)
Hello everybody, I'm developing a rest web service on GAE. I'm using Jersey framework to implement the REST services. It is a POST service where I have to pass also parameters. I tried to use 2 types of annotation but I can't get the parameters: with the annotation @Context @POST @Path(add) @Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) public Notification addUser(@Context UriInfo uriInfo){ MultivaluedMapString, String queryParams = uriInfo.getQueryParameters(); String nickname = queryParams.getFirst(nickname); String name = queryParams.getFirst(name); String surname = queryParams.getFirst(surname); String telephone = queryParams.getFirst(telephone); String email = queryParams.getFirst(email); User =createUser(nickname, name, surname, telephone, email); ... } with the annotation @QueryParam @POST @Path(add) @Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) public Notification addUser(@QueryParam(nickname) String nickname, @QueryParam(name) String name, @QueryParam(surname) String surname, @QueryParam(telephone) String telephone, @QueryParam(email) String email) { User =createUser(nickname, name, surname, telephone, email); .. } But in both cases I can not get the parameters all of them are null values. This is an example of my http request: Request URL: http://windyser.appspot.com/rest/users/add Request Method: POST Params: {nickname:prova,name:danilo,surname:delizia,email:pr...@yahoo.it,telephone:123} Sent Headers Accept: */* Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Accept-Language: en I also tied the @Consumes(text/plain) and @Consumes(application/x- www-form-urlencoded) annotations, but it still does not work. In the first case I get an Unsupported Media Type from GAE. And the second case i get null parameters. Anybody know if I'm doing something wrong? Thanks in advance for your help Danilo -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Create Application SMS
I had a setting with my carrier that was blocking Web SMS messages and as a result blocked the account creation SMS message. I have corrected and verified that it is now working but I can not get account creation to send me a message now. Is there a time period where it will allow me to re-enter the number and send the verification message after it has been blocked? -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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: Updating entity in collection using JDO.
Chris, I seem to have the same issue, and I believe it is related to this bug: http://code.google.com/p/datanucleus-appengine/issues/detail?id=144 Did you find some work around? /Jesper On 24 Maj, 18:12, chris chris.hins...@gmail.com wrote: Background: I am using app engine 1.5 and GWT 2.3 with requestfactory. I have an inventory object that has an ArrayList of InventoryItems. I canupdate and add entitites to the ArrayList collection without issue. Now I am trying toupdatea single InventoryItem object and it appears to complete successfully but the data is not updated. There is no exception being thrown and I see the the updated client values just before persisting the object. I have verified that the transaction is successful. Is there something I am missing? I have also tried to add a function in the Inventory class toupdatean InventoryItem and after mark the inventoryItems dirty using JDOHelper.makeDirty(this, inventoryItems) but this did not solve my issue either. @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = true) public class Inventory { /** *Listof all inventory items in this inventory. */ @Persistent(mappedBy=inventory) @Element(dependent=true) privateListInventoryItem inventoryItems; ... more } -- @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = true) public class InventoryItem { public InventoryItem persist() { System.out.println(Persisting object with id + this.getId()); System.out.println(Price is + this.getPrice().toString()); PersistenceManager em = EntityManager.getPersistenceManager(); InventoryItem attached = null; Transaction tx = em.currentTransaction(); try { tx.begin(); attached = em.makePersistent(this); tx.commit(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (tx.isActive()) { tx.rollback(); } } finally { em.close(); } } return attached; } /** * Primary key that can be used to reference this expense */ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String id; @Persistent Inventory inventory; more data } -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] account verification
I've tried and tried to get my account verified by SMS, and it appears that I have run out of attempts now. I'm on Canada's largest wireless network, so it seems rather odd that the text messages would not be getting through. Anyways, I've put in a request using the form - just wondering what kind of timeline those are processed in? Also, as a side note - verification by sms seems like a rather ridiculous barrier for entry into cloud computing. Just sayin... I'd gladly have provided credit card, called and verified over the phone, whatever - as it stands I've got the weekend to work on my project, and now I've lost a day waiting for an SMS that never arrived. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] SMS used for lost account
I have 2 appengine apps running but I forgot the account I used for them. Now when I try to create a new app, the SMS errors saying the number is already used. How can I find out what account was used for my old apps? -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] IOError 0 from simpletext_connector.py during bulk download
I'm downloading data from my app's datastore and applying a simpletext connector to save keys and b64-encoded data from some fields of all entities of a particular type to disk on my local Windows system. The download itself succeeds, giving me a .sql3 database of 50GB, which is consistent with the total entity size reported by the AppEngine dashboard -- so I believe everything gets downloaded okay. However, the simpletext transform fails partway through unpacking the .sql3 database and writing the text file, with an IO error 0. A transcript of the session, including the Python interpreter's call stack, is at the bottom of this post. The command line includes the db_filename and result_db_filename arguments because this is an attempt to resume an earlier session that had failed in the exact same way. Not sure if any of the following is significant: -- I'm doing the download to the E: drive of a VM; this VM has 150GB of storage, about 140GB of which were free before the start of the download -- so there should be enough disk space to store the transformed data. There's only about 1.2GB free on the VM's C: drive. -- The last 2 entries in the call stack refer to files on the C: drive that don't exist -- I had originally installed the AppEngine SDK on C: but moved it to E: before this run, in the belief that the download was failing because there wasn't enough space on C: for temporary storage during the download. The SDK is now on the E: drive, and both TMP and TEMP environment variables are set to e:\temp, which does exist. -- I'm using Python 2.5.4. -- The transfer fails partway through, writing several GB of transformed data to the output file but without completing the transforms. Any tips or clues would be appreciated -- thanks! E:\work\Swapperappcfg.py download_data --kind=SomeKind --url=http:// someapp.appspot.com/_ah/remote_api --filename=output.dat --config_file=config.yaml --db_filename=bulkloader- progress-20110620.103156.sql3 --result_db_filename=bulkloader- results-20 110620.103156.sql3 --http_limit=10 --bandwidth_limit=25 Downloading data records. [INFO] Logging to bulkloader-log-20110624.113729 [INFO] Throttling transfers: [INFO] Bandwidth: 25 bytes/second [INFO] HTTP connections: 10/second [INFO] Entities inserted/fetched/modified: 20/second [INFO] Batch Size: 10 2011-06-24 11:37:30,858 WARNING appengine_rpc.py:435 ssl module not found. Without the ssl module, the identity of the remote host cannot be verified, and connections may NOT be secure. To fix this, please install the ssl module from http://pypi.python.org/pypi/ssl . To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl . Please enter login credentials for someapp.appspot.com Email: some_u...@gmail.com Password for some_u...@gmail.com: [INFO] Opening database: bulkloader-progress-20110620.103156.sql3 [INFO] Opening database: bulkloader-results-20110620.103156.sql3 [INFO] Connecting to someapp.appspot.com/_ah/remote_api [INFO] Downloading kinds: ['SomeKind'] Traceback (most recent call last): File E:\google_appengine\appcfg.py, line 76, in module run_file(__file__, globals()) File E:\google_appengine\appcfg.py, line 72, in run_file execfile(script_path, globals_) File E:\google_appengine\google\appengine\tools\appcfg.py, line 3592, in module main(sys.argv) File E:\google_appengine\google\appengine\tools\appcfg.py, line 3583, in main result = AppCfgApp(argv).Run() File E:\google_appengine\google\appengine\tools\appcfg.py, line 2229, in Run self.action(self) File E:\google_appengine\google\appengine\tools\appcfg.py, line 3368, in __call__ return method() File E:\google_appengine\google\appengine\tools\appcfg.py, line 3174, in PerformDownload run_fn(args) File E:\google_appengine\google\appengine\tools\appcfg.py, line 3087, in RunBulkloader sys.exit(bulkloader.Run(arg_dict)) File E:\google_appengine\bulkloader.py, line 4360, in Run File E:\google_appengine\bulkloader.py, line 4255, in _PerformBulkload File E:\google_appengine\bulkloader.py, line 3551, in Run File E:\google_appengine\bulkloader.py, line 2489, in WorkFinished File C:\google_appengine\google\appengine\ext\bulkload \bulkloader_config.py, line 500, in output_entities File C:\google_appengine\google\appengine\ext\bulkload \simpletext_connector.py, line 112, in write_dict IOError: [Errno 0] 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] problems with the admin console
I am having problems with the admin console. I am trying to take a look at my data. 1. Search for the particular record 2. The record is found 3. Click on record to see/edit data in all fields Expected Result: The ability to see and edit data Actual Result: A server error has occured I dont see any way to troubleshoot this myself, but I wanted to see if anyone else is having this problem or if there is a known issue. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: App Engine 1.5.1 is out!
Hi Ikai, Im having what I think is a corrupt data issue, so I was wondering what to expect from this: ' When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. ' Because right now, the only error I am getting is 'Server Error. A server error has occurred.' -Tirrell Payton On Jun 21, 2:10 am, Ikai Lan (Google) ikai.l+gro...@google.com wrote: Hey guys, App Engine 1.5.1 is out! Get it while it's hot! Blog post: http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html Release notes: Python - ProtoRPC is a new experimental library that provides a simple method for creating a well-defined and easy-to-use web-based RPC service. - The development server's datastore implementation now contains logic that closely replicates the consistency guarantees of the High Replication datastore. To use, run the dev_appserver with the flag --high_replication set to True. - All user request have an X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine-Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request. - Applications are now associated with an app_identity, which can be used to authenticate requests originating from the app to other services. - The Channel API can now provide user presence, this can be configured by adding channel_presence to the list of inbound services for your application. - The Images API now supports the WebP format. Due to limitations in PIL, the SDK does not support the WebP format. - You can switch the timezone for App Engine logs in the Admin Console. -http://code.google.com/p/googleappengine/issues/detail?id=734 - Fixed an issue in the SDK where leased tasks had the POST method. They now have a PULL method. - Fixed an issue where the Channel API didn't work with non-default versions of applications using the High Replication datastore. - When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. -http://code.google.com/p/googleappengine/issues/detail?id=4945 Java - The development server's datastore and testing service implementations now contains logic that closely replicates the consistency guarantees of the High Replication datastore. To use, run the dev_appserver with the flag -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20. - All user request have an X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine-Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request. - Applications are now associated with an app_identity, which can be used to authenticate requests originating from the app to other services. - The Channel API can now provide user presence, this can be configured by adding channel_presence to the list of inbound services for your application. - The Images API now supports the WebP format. - You can switch the timezone for App Engine logs in the Admin Console. -http://code.google.com/p/googleappengine/issues/detail?id=734 - Added javax.xml.ws.Service$Mode to the whitelist. -http://code.google.com/p/googleappengine/issues/detail?id=4770 - You can configure your application to asynchronously write https session data by adding lt;async-session-persistence enabled=true/gt; to your appengine-web.xml. -http://code.google.com/p/googleappengine/issues/detail?id=1692 - The local task queue unit testing API now supports Deferred Tasks. - Fixed an issue where using reserved URLs did not cause an error in the SDK. - Fixed an issue where having a backends.xml configuration file caused logging to stdout to fail in the SDK. - Fixed an issue where the Channel API didn't work with non-default versions of applications using the High Replication datastore. - Fixed an issue where the Remote API rtok comparison was broken for some users, causing appfcg download data to fail. - Fixed an issue with the SDK where you could not apply a transform to PNG images.http://code.google.com/p/googleappengine/issues/detail?id=3458 - When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. -http://code.google.com/p/googleappengine/issues/detail?id=4945 - Fixed an issue with the SDK where non-string index names caused an error upon upload. http://code.google.com/p/googleappengine/issues/detail?id=5004 - Datanucleus now supports polymorphic relationships. -http://code.google.com/p/datanucleus-appengine/issues/detail?id=153 - Datanucleus now supports PreparedQuery?http://code.google.com/p/googleappengine/w/edit/PreparedQuery
[google-appengine] Re: Updating entity in collection using JDO.
Chris, I have the same issue, its probably related to this bug: http://code.google.com/p/datanucleus-appengine/issues/detail?id=144 Did you find a way to work around this issue? /Jesper On 24 Maj, 18:12, chris chris.hins...@gmail.com wrote: Background: I am using app engine 1.5 and GWT 2.3 with requestfactory. I have an inventory object that has an ArrayList of InventoryItems. I canupdate and add entitites to the ArrayList collection without issue. Now I am trying toupdatea single InventoryItem object and it appears to complete successfully but the data is not updated. There is no exception being thrown and I see the the updated client values just before persisting the object. I have verified that the transaction is successful. Is there something I am missing? I have also tried to add a function in the Inventory class toupdatean InventoryItem and after mark the inventoryItems dirty using JDOHelper.makeDirty(this, inventoryItems) but this did not solve my issue either. @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = true) public class Inventory { /** *Listof all inventory items in this inventory. */ @Persistent(mappedBy=inventory) @Element(dependent=true) privateListInventoryItem inventoryItems; ... more } -- @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = true) public class InventoryItem { public InventoryItem persist() { System.out.println(Persisting object with id + this.getId()); System.out.println(Price is + this.getPrice().toString()); PersistenceManager em = EntityManager.getPersistenceManager(); InventoryItem attached = null; Transaction tx = em.currentTransaction(); try { tx.begin(); attached = em.makePersistent(this); tx.commit(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (tx.isActive()) { tx.rollback(); } } finally { em.close(); } } return attached; } /** * Primary key that can be used to reference this expense */ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String id; @Persistent Inventory inventory; more data } -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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: App Engine 1.5.1 is out!
Can you link me to your admin console URL that causes this error? Ikai Lan Developer Programs Engineer, Google App Engine Blog: http://googleappengine.blogspot.com Twitter: http://twitter.com/app_engine Reddit: http://www.reddit.com/r/appengine On Mon, Jun 27, 2011 at 9:22 AM, Tirrell Payton tpay...@bt-software.netwrote: Hi Ikai, Im having what I think is a corrupt data issue, so I was wondering what to expect from this: ' When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. ' Because right now, the only error I am getting is 'Server Error. A server error has occurred.' -Tirrell Payton On Jun 21, 2:10 am, Ikai Lan (Google) ikai.l+gro...@google.com wrote: Hey guys, App Engine 1.5.1 is out! Get it while it's hot! Blog post: http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html Release notes: Python - ProtoRPC is a new experimental library that provides a simple method for creating a well-defined and easy-to-use web-based RPC service. - The development server's datastore implementation now contains logic that closely replicates the consistency guarantees of the High Replication datastore. To use, run the dev_appserver with the flag --high_replication set to True. - All user request have an X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine -Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request. - Applications are now associated with an app_identity, which can be used to authenticate requests originating from the app to other services. - The Channel API can now provide user presence, this can be configured by adding channel_presence to the list of inbound services for your application. - The Images API now supports the WebP format. Due to limitations in PIL, the SDK does not support the WebP format. - You can switch the timezone for App Engine logs in the Admin Console. -http://code.google.com/p/googleappengine/issues/detail?id=734 - Fixed an issue in the SDK where leased tasks had the POST method. They now have a PULL method. - Fixed an issue where the Channel API didn't work with non-default versions of applications using the High Replication datastore. - When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. -http://code.google.com/p/googleappengine/issues/detail?id=4945 Java - The development server's datastore and testing service implementations now contains logic that closely replicates the consistency guarantees of the High Replication datastore. To use, run the dev_appserver with the flag -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20. - All user request have an X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine -Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request. - Applications are now associated with an app_identity, which can be used to authenticate requests originating from the app to other services. - The Channel API can now provide user presence, this can be configured by adding channel_presence to the list of inbound services for your application. - The Images API now supports the WebP format. - You can switch the timezone for App Engine logs in the Admin Console. -http://code.google.com/p/googleappengine/issues/detail?id=734 - Added javax.xml.ws.Service$Mode to the whitelist. -http://code.google.com/p/googleappengine/issues/detail?id=4770 - You can configure your application to asynchronously write https session data by adding lt;async-session-persistence enabled=true/gt; to your appengine-web.xml. -http://code.google.com/p/googleappengine/issues/detail?id=1692 - The local task queue unit testing API now supports Deferred Tasks. - Fixed an issue where using reserved URLs did not cause an error in the SDK. - Fixed an issue where having a backends.xml configuration file caused logging to stdout to fail in the SDK. - Fixed an issue where the Channel API didn't work with non-default versions of applications using the High Replication datastore. - Fixed an issue where the Remote API rtok comparison was broken for some users, causing appfcg download data to fail. - Fixed an issue with the SDK where you could not apply a transform to PNG images. http://code.google.com/p/googleappengine/issues/detail?id=3458 - When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. -http://code.google.com/p/googleappengine/issues/detail?id=4945
[google-appengine] Re: Porting Web Application (PHP/SQL) to GAE
The biggest issue would likely be the database. I strongly recommend you become very familiar with how GAE's datastore works. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/WxJNVOD0PwgJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: App Engine 1.5.1 is out!
Here you go. https://appengine.google.com/datastore/edit?app_id=streamingservicesplatformnamespace=version_id=338.351420294679734945key=ahlzdHJlYW1pbmdzZXJ2aWNlc3BsYXRmb3JtcjALEgpTU1BBcnRpY2xlIiAwZTU3MjJhNmFmY2RlNzY5MmE2OTI0NmZhYWU4NmRmYww On Jun 26, 7:27 pm, Ikai Lan (Google) ika...@google.com wrote: Can you link me to your admin console URL that causes this error? Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine On Mon, Jun 27, 2011 at 9:22 AM, Tirrell Payton tpay...@bt-software.netwrote: Hi Ikai, Im having what I think is a corrupt data issue, so I was wondering what to expect from this: ' When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. ' Because right now, the only error I am getting is 'Server Error. A server error has occurred.' -Tirrell Payton On Jun 21, 2:10 am, Ikai Lan (Google) ikai.l+gro...@google.com wrote: Hey guys, App Engine 1.5.1 is out! Get it while it's hot! Blog post: http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html Release notes: Python - ProtoRPC is a new experimental library that provides a simple method for creating a well-defined and easy-to-use web-based RPC service. - The development server's datastore implementation now contains logic that closely replicates the consistency guarantees of the High Replication datastore. To use, run the dev_appserver with the flag --high_replication set to True. - All user request have an X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine -Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request. - Applications are now associated with an app_identity, which can be used to authenticate requests originating from the app to other services. - The Channel API can now provide user presence, this can be configured by adding channel_presence to the list of inbound services for your application. - The Images API now supports the WebP format. Due to limitations in PIL, the SDK does not support the WebP format. - You can switch the timezone for App Engine logs in the Admin Console. -http://code.google.com/p/googleappengine/issues/detail?id=734 - Fixed an issue in the SDK where leased tasks had the POST method. They now have a PULL method. - Fixed an issue where the Channel API didn't work with non-default versions of applications using the High Replication datastore. - When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. -http://code.google.com/p/googleappengine/issues/detail?id=4945 Java - The development server's datastore and testing service implementations now contains logic that closely replicates the consistency guarantees of the High Replication datastore. To use, run the dev_appserver with the flag -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20. - All user request have an X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine -Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request. - Applications are now associated with an app_identity, which can be used to authenticate requests originating from the app to other services. - The Channel API can now provide user presence, this can be configured by adding channel_presence to the list of inbound services for your application. - The Images API now supports the WebP format. - You can switch the timezone for App Engine logs in the Admin Console. -http://code.google.com/p/googleappengine/issues/detail?id=734 - Added javax.xml.ws.Service$Mode to the whitelist. -http://code.google.com/p/googleappengine/issues/detail?id=4770 - You can configure your application to asynchronously write https session data by adding lt;async-session-persistence enabled=true/gt; to your appengine-web.xml. -http://code.google.com/p/googleappengine/issues/detail?id=1692 - The local task queue unit testing API now supports Deferred Tasks. - Fixed an issue where using reserved URLs did not cause an error in the SDK. - Fixed an issue where having a backends.xml configuration file caused logging to stdout to fail in the SDK. - Fixed an issue where the Channel API didn't work with non-default versions of applications using the High Replication datastore. - Fixed an issue where the Remote API rtok comparison was broken for some users,
[google-appengine] temporary-blobstore-error.appspot.com
temporary-blobstore-error.appspot.com Failed to load resource: the server responded with a status of 500 (Internal Server Error) Getting these when uploading to blobstore. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/yHn3Yz9Q_98J. 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: App Engine 1.5.1 is out!
Doh, yeah, looks like there is a character in this entity we can't encode: UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 63: ordinal not in range(128) But we still aren't catching this exception. I'll find out of the release was supposed to address this, and if not, to get it back on the bugfix list. Ikai Lan Developer Programs Engineer, Google App Engine Blog: http://googleappengine.blogspot.com Twitter: http://twitter.com/app_engine Reddit: http://www.reddit.com/r/appengine On Mon, Jun 27, 2011 at 11:12 AM, Tirrell Payton tpay...@bt-software.netwrote: Here you go. https://appengine.google.com/datastore/edit?app_id=streamingservicesplatformnamespace=version_id=338.351420294679734945key=ahlzdHJlYW1pbmdzZXJ2aWNlc3BsYXRmb3JtcjALEgpTU1BBcnRpY2xlIiAwZTU3MjJhNmFmY2RlNzY5MmE2OTI0NmZhYWU4NmRmYww On Jun 26, 7:27 pm, Ikai Lan (Google) ika...@google.com wrote: Can you link me to your admin console URL that causes this error? Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine On Mon, Jun 27, 2011 at 9:22 AM, Tirrell Payton tpay...@bt-software.net wrote: Hi Ikai, Im having what I think is a corrupt data issue, so I was wondering what to expect from this: ' When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. ' Because right now, the only error I am getting is 'Server Error. A server error has occurred.' -Tirrell Payton On Jun 21, 2:10 am, Ikai Lan (Google) ikai.l+gro...@google.com wrote: Hey guys, App Engine 1.5.1 is out! Get it while it's hot! Blog post: http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html Release notes: Python - ProtoRPC is a new experimental library that provides a simple method for creating a well-defined and easy-to-use web-based RPC service. - The development server's datastore implementation now contains logic that closely replicates the consistency guarantees of the High Replication datastore. To use, run the dev_appserver with the flag --high_replication set to True. - All user request have an X-AppEngine? http://code.google.com/p/googleappengine/w/edit/AppEngine -Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request. - Applications are now associated with an app_identity, which can be used to authenticate requests originating from the app to other services. - The Channel API can now provide user presence, this can be configured by adding channel_presence to the list of inbound services for your application. - The Images API now supports the WebP format. Due to limitations in PIL, the SDK does not support the WebP format. - You can switch the timezone for App Engine logs in the Admin Console. -http://code.google.com/p/googleappengine/issues/detail?id=734 - Fixed an issue in the SDK where leased tasks had the POST method. They now have a PULL method. - Fixed an issue where the Channel API didn't work with non-default versions of applications using the High Replication datastore. - When displaying corrupt data in the Admin Console dataviewer, a useful error will be displayed, instead of a 500. - http://code.google.com/p/googleappengine/issues/detail?id=4945 Java - The development server's datastore and testing service implementations now contains logic that closely replicates the consistency guarantees of the High Replication datastore. To use, run the dev_appserver with the flag -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20. - All user request have an X-AppEngine? http://code.google.com/p/googleappengine/w/edit/AppEngine -Country header which contains the ISO-3166-1 alpha-2 country code for the user, based on the IP address of the client request. - Applications are now associated with an app_identity, which can be used to authenticate requests originating from the app to other services. - The Channel API can now provide user presence, this can be configured by adding channel_presence to the list of inbound services for your application. - The Images API now supports the WebP format. - You can switch the timezone for App Engine logs in the Admin Console. -http://code.google.com/p/googleappengine/issues/detail?id=734 - Added javax.xml.ws.Service$Mode to the whitelist. - http://code.google.com/p/googleappengine/issues/detail?id=4770 - You can configure your application to asynchronously
[google-appengine] Is Hierarchical database model coming back?
After working with the DataStore for a while, for consiestency and transaction issues, i started to model all my entities within groups with all the ancestors thing. It works well for now. I don't have a big data model. But, thinking a little about it, it clearly is similar to the well known Hierarchical database model fromhttp://en.wikipedia.org/wiki/Hierarchical_database_modelthe old times. Have you thought about that? Will we face the problem of that model in the future? Was Google explicitly thinking about it when designed it's DataStore? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/iqoIyW7rzosJ. 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] Datasource Admin Question
The docs (at http://code.google.com/appengine/docs/adminconsole/) say that when I goto https://appengine.google.com/ I can access the admin console, and in particular, the data tab. However, when I do, I get https://appengine.google.com/start which asks me to create an application. However, I've already created an application called StategicInternationalSystems, which I created using Google Apps For Business (a paid service). How do I access the admin console for this application running on Google Apps For Business? -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Migrating to HRD from Master/Slave
Robert, why did you need to develop your own data migration tools? What is wrong with appcfg.py [upload_data/download_data] ? Admittedly I ran bulkloader only on small datasets but it was pretty quick and straight forward. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/SOIcCHwjsnMJ. 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] Migrating to HRD from Master/Slave
Hey Vlad, One reason I wrote my own tools was because I was also doing schema changes, that was a good opportunity to do so. I also did not want to transfer all of my entities, so I used my app's standard APIs so that all of my stats / reporting entities would just be regenerated instead. I also didn't want to waste resources downloading then re-uploading all of my data, rather I transferred them directly from one app to another. If I were doing another large migration I would probably dump to the blobstore, transfer the blob, then reconstitute my entities from the blob. Robert On Mon, Jun 27, 2011 at 00:20, vlad vlad.troyan...@gmail.com wrote: Robert, why did you need to develop your own data migration tools? What is wrong with appcfg.py [upload_data/download_data] ? Admittedly I ran bulkloader only on small datasets but it was pretty quick and straight forward. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/SOIcCHwjsnMJ. 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.
[google-appengine] Is AppEngine Down ??
Hi, Many of our applications at GAE are facing deadline exceed errors? -- Best Regards, Atif Gulzar I Unicode, ɹɐzlnƃ ɟıʇɐ -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Is AppEngine Down ??
I am seeing this also, and getting user complaints... Anyone oncall reading this? On Jun 27, 3:32 pm, Atif Gulzar atif.gul...@gmail.com wrote: Hi, Many of our applications at GAE are facing deadline exceed errors? -- Best Regards, Atif Gulzar I Unicode, ɹɐzlnƃ ɟıʇɐ -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Create Application SMS
http://code.google.com/appengine/kb/sms.html#error On Sat, Jun 25, 2011 at 11:48, Symmetry Solutions jmccarthyi...@gmail.com wrote: I had a setting with my carrier that was blocking Web SMS messages and as a result blocked the account creation SMS message. I have corrected and verified that it is now working but I can not get account creation to send me a message now. Is there a time period where it will allow me to re-enter the number and send the verification message after it has been blocked? -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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: Is AppEngine Down ??
Yeah also seeing huge spike in deadline exceeded errors on Master Slave apps right now. On Mon, Jun 27, 2011 at 01:39, Mike mickn...@gmail.com wrote: I am seeing this also, and getting user complaints... Anyone oncall reading this? On Jun 27, 3:32 pm, Atif Gulzar atif.gul...@gmail.com wrote: Hi, Many of our applications at GAE are facing deadline exceed errors? -- Best Regards, Atif Gulzar I Unicode, ɹɐzlnƃ ɟıʇɐ -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Datasource Admin Question
Have you already registered that app id at appspot.com? App ids can not contain cap letters. You might try logging in at: https://appengine.google.com/a/strategicinternationalsystems.com On Sat, Jun 25, 2011 at 18:09, Eric Atkinson eric.atkin...@strategicinternationalsystems.com wrote: The docs (at http://code.google.com/appengine/docs/adminconsole/) say that when I goto https://appengine.google.com/ I can access the admin console, and in particular, the data tab. However, when I do, I get https://appengine.google.com/start which asks me to create an application. However, I've already created an application called StategicInternationalSystems, which I created using Google Apps For Business (a paid service). How do I access the admin console for this application running on Google Apps For Business? -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Need to be able to create more apps
I'm guessing your startup weekend is over now, but you should try submitting a request using the billing issues form: http://code.google.com/support/bin/request.py?contact_type=AppEngineBillingSupport On Sat, Jun 25, 2011 at 12:22, DFectuoso santiago1...@gmail.com wrote: Hi! I have a limit of 20 apps, and have already created those 20. I am at a Startup Weekend and really want to be able to push to a new appspot url, could I get this limit raised for my account please? Cheers -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Updated App Engine Pricing FAQ!
Wow, that is all super low level internal stuff :-). I can tell you that the new fields are only populated for Commit(Txn) and that for all other calls the only cost that is not know ahead of time is IndexWrites (which I believe is usually ~2 * # of properties changed * # of indexes properties appear in). Hopefully the new pricing model is clear enough that you don't feel inclined to dig that deep. On Sun, Jun 26, 2011 at 12:37 PM, Stephen sdeasey+gro...@gmail.com wrote: On Sun, Jun 26, 2011 at 5:02 PM, Alfred Fuller arfuller+appeng...@google.com wrote: - Additional small op charge per key fetched otherwise they function identically. Speaking of charges, how are we to interpret the new fields CommitCost.requested_entity_puts and CommitCost.requested_entity_deletes in eg. the PutResponse protocol buffer which were added in the latest SDK? Should we ignore the existing IndexWrites, EntityWrites etc.? -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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] Migrating to HRD from Master/Slave
One other issue seems to be that the bulk down/uploader doesn't have access to the indexed state of individual properties (there is no API to obtain this information). So you might get the right data structure on restore, but all the wrong indexes (typically none or all). The only way around this right now seems to be a) feed a python schema to the bulkloader (annoying if you're in java, and broken if you have partial indexes), write your own tools, or just re-put all your entities using index-aware tooling post-load. Jeff On Sun, Jun 26, 2011 at 9:38 PM, Robert Kluin robert.kl...@gmail.comwrote: Hey Vlad, One reason I wrote my own tools was because I was also doing schema changes, that was a good opportunity to do so. I also did not want to transfer all of my entities, so I used my app's standard APIs so that all of my stats / reporting entities would just be regenerated instead. I also didn't want to waste resources downloading then re-uploading all of my data, rather I transferred them directly from one app to another. If I were doing another large migration I would probably dump to the blobstore, transfer the blob, then reconstitute my entities from the blob. Robert On Mon, Jun 27, 2011 at 00:20, vlad vlad.troyan...@gmail.com wrote: Robert, why did you need to develop your own data migration tools? What is wrong with appcfg.py [upload_data/download_data] ? Admittedly I ran bulkloader only on small datasets but it was pretty quick and straight forward. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/SOIcCHwjsnMJ. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. 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.