[appengine-java] Re: Unexpected Exception while trying executin a jdo query
Hi, Aren't missing a @PrimaryKey annotation on any of your field ? You did not show it. The primary key is required for JDO to be able to store your data. I remember a long time ago (before using Objectify) having such a cryptic exception regards didier On Feb 23, 8:33 am, culov cul...@gmail.com wrote: same problem, havent found an answer. On Jan 28, 1:46 am, Christophe Weber christophe.we...@gmail.com wrote: Hi, I have a problem when trying to query on the appengine. here's what I do: Query q = persistenceManager.newQuery(User.class); q.declareParameters(java.lang.String emailParam); q.setFilter(userEmail == emailParam); ListUser list = (ListUser) q.execute(email); if (list.size()=0) ( OR if (list.isEmpty())) And I get this exception: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String at org.datanucleus.store.appengine.DatastoreFieldManager.fetchStringField(Data storeFieldManager.java:207) at org.datanucleus.state.AbstractStateManager.replacingStringField(AbstractSta teManager.java:1180) at com.logos.stm.shared.model.User.jdoReplaceField(User.java) at com.logos.stm.shared.model.User.jdoReplaceFields(User.java) at org.datanucleus.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl .java:2772) at org.datanucleus.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl .java:2791) at org.datanucleus.store.appengine.DatastorePersistenceHandler.fetchObject(Dat astorePersistenceHandler.java:480) at org.datanucleus.store.appengine.query.DatastoreQuery.entityToPojo(Datastore Query.java:570) at org.datanucleus.store.appengine.query.DatastoreQuery.entityToPojo(Datastore Query.java:525) at org.datanucleus.store.appengine.query.DatastoreQuery.access$300(DatastoreQu ery.java:111) at org.datanucleus.store.appengine.query.DatastoreQuery$6.apply(DatastoreQuery .java:643) at org.datanucleus.store.appengine.query.DatastoreQuery$6.apply(DatastoreQuery .java:635) at org.datanucleus.store.appengine.query.LazyResult.resolveNext(LazyResult.jav a:94) at org.datanucleus.store.appengine.query.LazyResult.resolveAll(LazyResult.java :116) at org.datanucleus.store.appengine.query.LazyResult.size(LazyResult.java:110) at org.datanucleus.store.appengine.query.StreamingQueryResult.size(StreamingQu eryResult.java:130) The error occurs on the if (list.size()=0) OR if (list.isEmpty()) in both cases. My User class is declared as followed: @PersistenceCapable(identityType=IdentityType.APPLICATION) public class User implements Serializable { ... @Persistent String userEmail; +getter and setter Can someone explain I have this error? Thanks a lot! -- 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] Serving a Jar file
My GAE app serves up a Jar file to a Java client. This works fine locally, but when I upload to google, that version of the jar doesn't get updated unless I blow it away in Java cache viewer. The version at Google also looks different in cache viewer: it doesn't have a modified date but does have an expired date. Bonus points if anyone knows how to get GAE to serve up a .jar.pack.gz files property. Existing bug reports claim this isn't possible. -- 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] Application exception only in hosted mode
Hi everyone! I got an exception in my GWT/GAE application only in hosted mode. In web mode (on the Google AE) all works fine. This is the code of service implementation: package com.jsoft.frontoffice.server; import java.util.Date; import java.util.logging.Logger; import javax.jdo.PersistenceManager; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import com.jsoft.frontoffice.client.MainService; public class MainServiceImpl extends RemoteServiceServlet implements MainService { private static final long serialVersionUID = 1L; private static final Logger log = Logger.getLogger(MainServiceImpl.class.getName()); @Override public String addDocument(String value) { //Document doc = new Document(); //doc.setNumber(123); //doc.setDate(new Date()); //doc.setDeletionMark(false); try { log.warning(VALUE = + value); PersistenceManager pm = PMF.get().getPersistenceManager(); --- EXCEPTION HERE try { //pm.makePersistent(doc); } catch (Throwable t) { pm.close(); log.warning(new Date().toString() + : pm.makePersistent(doc); + t.toString()); return new Date().toString() + : pm.makePersistent(doc); + t.toString(); } } catch (Throwable t) { log.warning(new Date().toString() + : pm = PMF.get().getPersistenceManager(); + t.toString()); t.printStackTrace(); return new Date().toString() + : pm = PMF.get().getPersistenceManager(); + t.toString(); } return OK; } } This is the stack trace: Initializing AppEngine server Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger Successfully processed D:\!JOB!\java\FrontOffice\war\WEB-INF/appengine- web.xml Successfully processed D:\!JOB!\java\FrontOffice\war\WEB-INF/web.xml The server is running at http://localhost:/ [WARN] VALUE = 123 [ERROR] ResourceBundle org.datanucleus.Localisation for locale ru_RU was not found! [ERROR] ResourceBundle org.datanucleus.jdo.Localisation for locale ru_RU was not found! [WARN] Wed Feb 23 06:35:01 UTC 2011: pm = PMF.get().getPersistenceManager(); java.lang.ExceptionInInitializerError java.lang.ExceptionInInitializerError at com.jsoft.frontoffice.server.MainServiceImpl.addDocument(MainServiceImpl.java: 27) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java: 100) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java: 569) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java: 208) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java: 248) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java: 62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 511) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java: 58) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 43) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java: 122) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: 216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 418) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java: 70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 152) at
[appengine-java] relation between two class as a foreign class.... Urgent help needed
i have two classes emp_master and emp_details emp_master has a emp_Id as a KEY and is used as a reference to emp_details.. So when that is deleted then emp details of the regarding emp must be deleted how can i do this??? i have done this as below.. Is this correct??? if correct then how to pass emp_id in emp_details.. if wrong then how can i do above mentioned things.. classes.. EMp_master.. public class emp_master { @PrimaryKey private Key emp_Id; @Persistent private String first_name; @Persistent private String last_name; @Persistent private String designation; @Persistent private Date doj; @Persistent private Date dob; @Persistent private Key dept_Id; public emp_master(String first_name, String last_name, String designation,Date doj,Date dob) { this.first_name = first_name; this.last_name = last_name; this.designation = designation; this.dob = dob; this.doj = doj; } public void setemp_Id(Key emp_Id) { this.emp_Id = emp_Id; } public Key getemp_Id() { return emp_Id; } public void setdept_Id(department dept) { this.dept_Id = dept.getdept_Id(); } public Key getdept_Id() { return dept_Id; } public void setfirst_name( String first_name) { this.first_name= first_name; } public String getfirst_name() { return first_name; } public void setlast_name( String last_name) { this.last_name= last_name; } public String getlast_name() { return last_name; } public void setdesignation( String designation) { this.designation= designation; } public String getdesignation() { return designation; } public void setdob( Date dob) { this.dob= dob; } public Date getdob() { return dob; } public void setdoj( Date doj) { this.doj= doj; } public Date getdoj() { return doj; } } Emp_details.. @PersistenceCapable public class emp_detail { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key emp_no; @Persistent private Key emp_Id; @Persistent private Key reporting_to; @Persistent private Date dob; @Persistent private String temp_add; @Persistent private String per_add; @Persistent private String blood_grp; @Persistent private String passport_no; @Persistent private String pan_no; @Persistent private String license_no; @Persistent private String phone_no; @Persistent private String mob_no; @Persistent private String emg_no; @Persistent private String interest; @Persistent private String drawer_no; @Persistent private String desk_no; @Persistent private String ext; @Persistent private String img; @Persistent private Email email; @Persistent private String mac_no; public emp_detail(Date dob, String temp_add,String per_add,String blood_grp,String passport_no,String pan_no,String license_no,String phone_no,String mob_no,String emg_no,String interest,String drawer_no,String desk_no,String ext,String img,Email email,String mac_no) { this.dob =dob; this.temp_add = temp_add; this.per_add=per_add; this.blood_grp=blood_grp; this.passport_no= passport_no; this.pan_no= pan_no; this.license_no= license_no; this.phone_no = phone_no; this.mob_no = mob_no; this.emg_no = emg_no; this.interest = interest; this.drawer_no = drawer_no; this.desk_no = desk_no; this.ext = ext; this.email = email; this.mac_no = mac_no; } public Key getemp_no() { return emp_no; } public void setKey(emp_master emp) { this.emp_Id = emp.getemp_Id(); } public Key getKey() { return emp_Id; } public void setreporting_to(emp_master emp) { this.reporting_to = emp.getemp_Id(); } public Key getreporting_to() { return reporting_to; } public void setdob(Date dob){ this.dob = dob; } public Date getdob() { return dob; } public void setper_add(String per_add){ this.per_add = per_add; } public String getper_add() { return per_add; } public void settemp_add(String temp_add){ this.temp_add = temp_add; } public String gettemp_add() { return temp_add; } public void setblood_grp(String blood_grp) { this.blood_grp = blood_grp; } public String getblood_grp() { return blood_grp; } public void setpassport_no(String passport_no) { this.passport_no = passport_no; } public String getpassport_no() { return passport_no; } public void setlicense_no(String license_no) { this.license_no = license_no; } public String getlicense_no() { return license_no; } public void setpan_no(String pan_no) { this.pan_no = pan_no; } public String getpan_no() { return pan_no; } public void setphone_no(String phone_no) { this.phone_no= phone_no; } public String getphone_no() { return phone_no; } public void setmob_no(String mob_no) { this.mob_no= mob_no; } public String getmob_no() { return mob_no; } public void setemg_no(String emg_no) { this.emg_no= emg_no; } public String getemg_no() { return emg_no; } public void setinterest(String interest) { this.interest= interest; } public String getinterest() { return interest; }
[appengine-java] How to do Foreign Key relationship in Jdo??
i have 3 table emp_master, emp_details and department_master. emp_master has primary key emp_Id and i want to use this as a foreign key for emp_detail and department_master. how can i do this??? Kindly help me out as soon as possible. -- 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] Re: Probably a newbie question (most likely)
Actually I had to persist the user :D But I found another problem: The Key for the Thread is a Long... Appengine is generating dupes for that key even though it's the pk. It loooks like it realizes that a Thread is owned by a user and in the DB it ends with a PK UserID, ThreadID The weird part is that the comment does not inherits that and if I open the thread 1 for user A and thread 1 for user B I see the same comments. On Wed, Feb 23, 2011 at 11:42 AM, WillSpecht willspe...@gmail.com wrote: Check out this blog post: http://gae-java-persistence.blogspot.com/2009/10/creating-bidrectional-owned-one-to-many.html I'm pretty sure you want to be persisting the thread and not the comment. If you make it un-owned, you want the thread to have a key and a user, then each comment has a key and a parent key which is the key of the thread it belongs to. if you do a query where parent key == thread key you should get all the comments that belong to the thread. On Feb 22, 7:06 pm, Fernando O. fot...@gmail.com wrote: tried that and it's telling me org.datanucleus.exceptions.NucleusObjectNotFoundException: Could not retrieve entity of kind Thread with key Thread(51) I also tried doing a query with the Thread key and UserKey (wich is the key for a thread) and then I get an exception about modifying 2 entities in 1 transaction :S On Tue, Feb 22, 2011 at 8:56 PM, Fernando O. fot...@gmail.com wrote: Thanks! I'll try that. BTW no, addComment does not store the comment. On Tue, Feb 22, 2011 at 8:49 PM, WillSpecht willspe...@gmail.com wrote: Don't you need to persist the thread as well as the comment? It's hard to analyze your code with such a small sample. Does addComment persist the thread? My guess is that something is making the transaction fail, probably cause you are trying to operate on two different entity groups. I would simply store the comment as it's own entity and when you want all the comments simply do a query for comments with parentKey == ThreadKey. On Feb 21, 9:30 pm, Fernando O. fot...@gmail.com wrote: Hi all. First of all I have to admit: I havent read all the docs. I had a small app running, it basically has this: A User: @PersistenceCapable(detachable = true) @FetchGroup(name = _post, members = { @Persistent(name = posts) }) public class User implements Serializable{ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; @Persistent(mappedBy = user, defaultFetchGroup = true) @Element(dependent = true) private ListPost posts; } A thread : @PersistenceCapable(detachable = true) @FetchGroup(name = _user, members = { @Persistent(name = user)}) public class Thread implements Serializable { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long key; @Persistent(defaultFetchGroup = true) @Element(dependent = true) private User user; ... } So now I want to add comments, each comment will have: the user that made the comment, and the thread that it belongs to, and some other fields: @PersistenceCapable(detachable = true) public class ThreadComment implements Serializable{ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; @Persistent(defaultFetchGroup = true) @Element(dependent = true) private User user; @Persistent(defaultFetchGroup = true) @Element(dependent = true) private Thread thread; ... } I changed the Thread to include a list of comments: @PersistenceCapable(detachable = true) @FetchGroup(name = _user, members = { @Persistent(name = comments),@Persistent(name = user)}) public class Thread implements Serializable { @Persistent(defaultFetchGroup = true) @Element(dependent = true) private ListThreadComment comments; } My problem is that meanwhile this works in memory when I try to persist the ThreadComment PersistenceManager pm = getPMF(); Transaction tx = pm.currentTransaction(); tx.begin(); thread.addComment(comment); pm.makePersistent(comment); tx.commit(); pm.close(); the code gets excecuted but I don't see the comment in the database (in fact the logs show no db activity either) So I don't see an exception, the code gets excecuted but I don't see the comment in the DB. I already have the db with soem threads without comments, this is a new feature Any idea of what I'm doing wrong? (please don't say everything :D ) Thanks! Fernando -- 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
Re: [appengine-java] Re: 1.4.2: Can't make https call from dev server
I uploading a new version of the SDK about a week ago with this fix. Can you guys go to the download page and try this out? http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Java 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 Tue, Feb 22, 2011 at 4:25 AM, Jens Lundberg j...@cloudspot.se wrote: I'm running the dev-server (ver. 1.4.2) and GData Docs 3.0 Client ( on Windows Vista and I also experience this problem when I try to access the DocList with Oauth like below: GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters(); oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET); oauthParameters.setOAuthToken(xxx); oauthParameters.setOAuthTokenSecret(xx); DocsService client = new DocsService(cloudspot--v1); client.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer()); URL feedUrl = null; feedUrl = new URL(https://docs.google.com/feeds/default/private/ full); DocumentListFeed resultFeed = null; resultFeed = client.getFeed(feedUrl, DocumentListFeed.class); All required try-catch is removed for clarity. When I deploy this to appspot.com it works like a charm. On Feb 20, 9:24 pm, mushion22 goodham...@gmail.com wrote: I've opened an issue for this athttp:// code.google.com/p/googleappengine/issues/detail?id=4603 Same deal here on OS X. On Feb 17, 8:21 am, Tom Phillips tphill0...@gmail.com wrote: JVM (On Windows 7), I've tried a few for the development server including: java version 1.6.0_22 Java(TM) SE Runtime Environment (build 1.6.0_22-b04) Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode) Using java.net.HttpURLConnection to connect tohttps://api.twilio.comand getting: javax.net.ssl.SSLHandshakeException: Could not verify SSL certificate for:https://api.twilio.com api.twilio.com is only accessible over SSL so this problem is hampering development of our application with 1.4.2 /Tom On Monday, February 14, 2011 4:22:51 PM UTC-5, frew wrote: Hey everybody, In order to help me diagnose the problems, could you respond with what JDK (Platform, JDK manufacturer (e.g. Sun, OpenJDK), and version) you're running? As a temporary stopgap, if you're using URLFetch service, you can use the doNotValidateCertificate() method in FetchOptions ( http://code.google.com/appengine/docs/java/javadoc/com/ google/appengine/api/urlfetch/FetchOptions.html http://code.google.com/appengine/docs/java/javadoc/com/google/appengi...) to disable validation. -Fred On Feb 13, 5:02 am, harri mauria hma...@googlemail.com wrote: I am having similar problems with the recently released version com.google.appengine.eclipse.sdkbundle.1.4.2_1.4.2.v201102111811 Problems happen with the development server, not in production. I am performing Facebook login credentials authentication in the callback url. Interrupt stack is below: HTTP ERROR 500 Problem accessing /loginfacebookcallback. Reason: Could not verify SSL certificate for: https://graph.facebook.com/oauth/access_token?omitted Caused by: javax.net.ssl.SSLHandshakeException: Could not verify SSL certificate for:https://graph.facebook.com/oauth/access_token?omitted at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertApplicationExc eption(URLFetchServiceImpl.java: 114) at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchService Impl.java: 41) at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler $Connection.fetchResponse(URLFetchServiceStreamHandler.java:418) at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler $Connection.getInputStream(URLFetchServiceStreamHandler.java:297) atwww.superpass.de.server.UrlFetcher.get(UrlFetcher.java:60) Following message is printed to the console: I/O exception (javax.net.ssl.SSLPeerUnverifiedException) caught when processing request: HTTPS hostname invalid: expected 'graph.facebook.com', received '*.facebook.com' Retrying request Regards, Harri On Feb 13, 11:27 am, Lior Harsat lior@gmail.com wrote: I am having a similar problem with https: I have been testing the SDK and I found one bug which seems critical. When I call the URLFetchService.fetch API with a https URL I get a javax.net.ssl.SSLHandshakeException. for example when I fetch https://spreadsheets.google.com/feeds/ list/ I get javax.net.ssl.SSLHandshakeException: Could not verify SSL certificate
Re: [appengine-java] Zero instance
What do the logs say? You'll want to start there in your troubleshooting. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Tue, Feb 22, 2011 at 7:57 AM, Ciro teatropic...@gmail.com wrote: Hi, Since yesterday, my GAE app has zero instance allowed so when I enter http://teatropicaro.appspot.com I get an error 500. I've tried to disable and re-enable the app but nothing to do. Please help. 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. -- 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: How to POST to the BlobStore from a command line Java program?
I am also looking for a similar solution. Currently my application is running on a local server and I have uploaded more than 5 thousands file in SVN. Now I want to shift on Google app engine and I have already done most of the hardwork. But I do not found a programatic way to upload these file to blob store directly and I am still waiting for a concrete solution as I can't upload each file one by one using file system. It will be highly appreciated if some one from google take on this and provide us a solution so that we can move on GAE. Regards Rick -- 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: How to POST to the BlobStore from a command line Java program?
Hi guys, I don't have a direct answer to your question but I have another proposal: why don't replace the blobstore by a pojo containing a list of gae blob objects. They are limited to 1 Mbytes each but you can split your files into a collection that you gather via the proper structure (a java collection) You can then access the full servlet api (POST to store them, GET to retrieve them) The recent availability allows you to serve a blob while you fetch the next one. I see only 1 issue in this solution as of now: the 30s limit on interactive request meaning that each file has to be served back in less than 30s. Maybe too small depending on size of your files. regards didier On Feb 24, 5:13 am, Rick Smith rick@gmail.com wrote: I am also looking for a similar solution. Currently my application is running on a local server and I have uploaded more than 5 thousands file in SVN. Now I want to shift on Google app engine and I have already done most of the hardwork. But I do not found a programatic way to upload these file to blob store directly and I am still waiting for a concrete solution as I can't upload each file one by one using file system. It will be highly appreciated if some one from google take on this and provide us a solution so that we can move on GAE. Regards Rick -- 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: ClassNotFoundException
Thanks that is a good point. No static initializer. It is something about this class (actually it is an interface) and gae and deserialization. I can get the code to work if I eschew the interface (which gae cannot find) and just use the implementing class directly. Its like my WEB-INF/classes folder isn't on the classpath of the deserializer. Looks alot like this issue http://code.google.com/p/googleappengine/issues/detail?id=1290, especially comment 10 but this issue has been closed awhile. On Feb 22, 8:44 am, Simon Knott knott.si...@gmail.com wrote: I can't answer the first question, but as for the second - are you doing any static initialization of that class? If a static initializer fails, you will get a ClassNotFoundException even if the Class is deployed. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] How to do Foreign Key relationship in Jdo??
Hi Amit, You need to create Entity group , if you want cascading delete operation. For clear understanding please go through this http://code.google.com/appengine/docs/java/datastore/jdo/relationships.html#Relationships_Entity_Groups_and_Transactions Let me know if you need more clarification. Regards, Kartik On Wed, Feb 23, 2011 at 12:36 PM, Amit Surana amit_surana_1...@yahoo.comwrote: i have 3 table emp_master, emp_details and department_master. emp_master has primary key emp_Id and i want to use this as a foreign key for emp_detail and department_master. how can i do this??? Kindly help me out as soon as possible. -- 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: Datastore Import and Export
any updates on this? -- 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] How to get all entity types?
Hi guys, Is there any way to get all the entity names by code? -- Best regards, Yuhui -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[google-appengine] Best datastore design for massively scalable realtime chat?
Hi all, I'm trying to build chat functionality into my Google App Engine web application. The basic idea is that User loads a chat page that employs AJAX calls to poll new chat messages in the channels he/she is following every few seconds, and user can also write to the channels using AJAX. 1. A simple channel entity with a list property containing message strings is OK for channels with a few users and infrequent updates, but once a channel becomes hot (likely to happen for the purpose I have in mind), there's suddenly 300 users polling a single channel entity every few seconds, and new lines being added every few seconds. Once the entity contains something like 1000 message strings, this starts to sound a bad idea. 2. Creating a new entity type for message line with timestamp is also possible, but polls would then be of type give me all messages since timestamp X, and every poll would need a filtered query into message pool, and with a thousand users this would mean something in the ballpark of 200 queries per second. Also, this solution doesn't play well with memcache. Changing timestamp to incremental counter would improve the situation, but I still don't know if it's efficient to cache each chat message as a single object in memcache? 3. The solution I'm now considering would be to page a chat channel, so one chat page entity would contain something like 50 messages at most (as a list type property), and when that limit is reached, a new page is created. Each channel object would have a reference to the current page and previous page, so new users joining the channel would have quick access to 50 of the latest messages. Pages would also lend themselves well for memcaching. A poll would then be of type If have the messages until page 3, message 23 - what's new?. Any ideas or comments on the different options? Am I worrying too much about this? I know this currently is not issue, but my aim is that the data structure should gracefully and efficiently handle something like 2500 simultaneous users, each polling typically one to ten different channels and contributing to one or two. -- You received this message because you are subscribed to the Google Groups 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 it possible to create blobKey for a Blob property of a entity?
I already got a bunch of image blobs stored in the database, is it possible to create blobKey for any Blob property? So I can use the high performance image service to operate on them. -- You received this message because you are subscribed to the Google Groups 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: Object Persistence Methodology - suggestions?
Thanks for the link. My post is an open-ended question about how to code object persistence under appengine. It would be nice to have a layer above the get/put primitives that provides some services for me -- what does that layer look like? I'm looking for a coding methodology (or even just coding tips) or a software framework (like you posted). This feature list http://borglin.net/gwt-project/?page_id=690from your link was helpful to list some of the issues to consider: - lazy loading - managing entity references (unowned relationships from the feature list) - might have to manage 1:1 vs 1:N vs M:N relationships differently - avoiding copies of the same entity to be read in - writing out changed entities - caching I currently have my own hacked up layer but it's showing it's problems. I'm wondering if others have their own layer or framework or if they have pointers to some. This seems like an issue that every appengine app needs to deal with, but I don't even know the right name to use to refer to this set of services (maybe data access layer but that yields 0 search results so it's not very helpful) Dennis -- You received this message because you are subscribed to the Google Groups 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: AppEngine seems slow to me. Is it normal?
Independent? Now I'm confused. Does it or does it not matter whether I select first page or 100th using offset? I checked the cursors, it looks nice, but it seems to me, that it's good only for next next next type of pagination. If the user jumped from the first to the 100th page and then back to the 50th page, I would still need to go through all previous entries and it would be slow. Or am I wrong? Naturally, I know that next next type of pagination would be suitable for most of cases. Ok and really last question, I hope I don't bother you much. What about pagination based on time periods. For example like all entries created today, yesterday, last week, last month. It would use simple filtering (greater than, less than) so it should be fast.. or not? On 23 ún, 06:25, Robert Kluin robert.kl...@gmail.com wrote: Performance is independent of the number of entities you have. Namespaces are great for segregating data, but you can't query across them -- you'll only get results from one. Like Chris mentioned, use cursors instead of offsets. And if you can, then yes a well thought out caching strategy is a good way to improve performance. Robert On Tue, Feb 22, 2011 at 18:57, tobik tobiaspoto...@gmail.com wrote: Sorry, one more tricky question. What about namespaces. If I had 10 namespaces and in each namespace 10 entries, would the performance be the same as if I had only one namespace but with 100 entries? On 22 ún, 23:31, Chris Copeland ch...@cope360.com wrote: Django's Paginator is not going to be efficient on GAE and is definitely not going to scale. GAE provides cursors which are a very efficient way to page through query results:http://code.google.com/appengine/docs/python/datastore/queries.html#Q... On Tue, Feb 22, 2011 at 3:57 PM, tobik tobiaspoto...@gmail.com wrote: I built a page using Django's Paginator which displays a simple table with 20 items from around 1000 total stored in database. I don't know how the Paginator works from the inside, but according to the appstats, it makes two queries (first counts items, second selects given page) and each one of them takes around 130ms of cpu time. Is it a normal value? The truth is that the page loads noticeably slower than a page without any queries. And I also counted, that with 6.5 cpu hours limit I can afford around 3000 such queries every day which is a quite small number. And it's only 1000 entries in the database. So far I've been using PHP+MySQL and I am used to that such simple queries are really fast, even on poor free hostings. I tried to apply caching on every single page generated by Paginator and it naturally reduced the loading time to minimum. So is it the right approach to AppEngine? Cache everything as much as possible? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Best datastore design for massively scalable realtime chat?
AppEngine actully has XMPP intergtation http://code.google.com/appengine/docs/python/xmpp/ And the Channel API http://code.google.com/appengine/docs/python/channel/ which should eliminate the need for polling AJAX requests yourself. Could probably use the matcher API (renamed Speculative Search API) http://groups.google.com/group/google-appengine/browse_thread/thread/5462e14c31f44bef to perform dispatching of messages, again eliminating the need for the polling on the datastore. On 23 February 2011 08:29, Joonas Pihlajamaa joonas.pihlaja...@gmail.com wrote: Hi all, I'm trying to build chat functionality into my Google App Engine web application. The basic idea is that User loads a chat page that employs AJAX calls to poll new chat messages in the channels he/she is following every few seconds, and user can also write to the channels using AJAX. A simple channel entity with a list property containing message strings is OK for channels with a few users and infrequent updates, but once a channel becomes hot (likely to happen for the purpose I have in mind), there's suddenly 300 users polling a single channel entity every few seconds, and new lines being added every few seconds. Once the entity contains something like 1000 message strings, this starts to sound a bad idea. Creating a new entity type for message line with timestamp is also possible, but polls would then be of type give me all messages since timestamp X, and every poll would need a filtered query into message pool, and with a thousand users this would mean something in the ballpark of 200 queries per second. Also, this solution doesn't play well with memcache. Changing timestamp to incremental counter would improve the situation, but I still don't know if it's efficient to cache each chat message as a single object in memcache? The solution I'm now considering would be to page a chat channel, so one chat page entity would contain something like 50 messages at most (as a list type property), and when that limit is reached, a new page is created. Each channel object would have a reference to the current page and previous page, so new users joining the channel would have quick access to 50 of the latest messages. Pages would also lend themselves well for memcaching. A poll would then be of type If have the messages until page 3, message 23 - what's new?. Any ideas or comments on the different options? Am I worrying too much about this? I know this currently is not issue, but my aim is that the data structure should gracefully and efficiently handle something like 2500 simultaneous users, each polling typically one to ten different channels and contributing to one or two. -- You received this message because you are subscribed to the Google Groups 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] Tip: [...WHERE prop = :1 AND prop :2] with accents?
Hello The first string - abc is not a Unicode string. Have you tried prefixing Yes i have try, but i don't get any result What exception do you get? I don't have exception, just no result. For the moment i use the solution of Ernesto. --sahid . ..: On Mon, Feb 21, 2011 at 6:44 AM, Nick Johnson (Google) nick.john...@google.com wrote: The first string - abc is not a Unicode string. Have you tried prefixing it with 'u' to make it one? What exception do you get? -Nick Johnson On Fri, Feb 18, 2011 at 10:16 PM, Sahid Orentino Ferdjaoui sahid.ferdja...@gmail.com wrote: Hello all, db.GqlQuery(SELECT * FROM MyModel WHERE prop = :1 AND prop :2, abc, uabc + u\ufffd) I used this to make a search. But if the string has an accent. That don't work. may be you have a solution for me? --sahid -- You received this message because you are subscribed to the Google Groups 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: GAE is blocking IPs of our application - How can I unblock them?
Any updates, thoughts? On Feb 19, 12:58 pm, Umut Muhaddisoglu umutmuhaddiso...@gmail.com wrote: Hi, I'm the developer of a free-to-use uptime monitoring service: Uptime Robot (http://www.uptimerobot.com/). When a user adds a website to Uptime Robot for monitoring it,our application is sending regular HEAD, GET and/or PING requests to applications hosted on GAE to find out if they are up or down. For the last 5-7 days, we realized that the IP of our application is blocked by GAE. We send requests from: 74.86.158.106 and *.uptimerobot.com. If I try to browse a GAE hosted website from 74.86.158.106, I get a HTTP 403 status with details: * ForbiddenYour client does not have permission to get URL / from this server. (Client IP address: 74.86.158.106) You are accessing this page from a forbidden country. * Uptime Robot is a totally legitimate application and I know that GAE does not block all uptime monitoring services. So, I'm thinking that this must be by mistake or there must be a way to unblock the IPs. I'll be glad to get any help. Thanks so much. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: choice internationalization
You must translate the value you received in the POST request to the unicode value before you construct a form based on the POST/form content. You can use the _CHOICES_FORMATION variable. # these strings are in utf-8 - use it in the Model definition _CHOICES_FORMATION = ( 'Administração', 'Design Gráfico', 'Jornalismo', 'Marketing', 'Outras', ) class MyChoice(object): def __init__(self,val,usecode='latin_1'): self.val = unicode(val,usecode) self.valstr = self.val.encode('ascii','ignore') def __str__(self): return self.valstr def __unicode__(self): return self.val # use these for the Django form _CHOICES_FORMATION_FORM = tuple( [MyChoice(s,'utf-8') for s in _CHOICES_FORMATION] ) in your post handler def post(self): # translate the value for 'formation' to the right unicode string s = self.request.POST['formation'] self.request.POST['formation'] = [unicode(i) for i in _CHOICES_FORMATION_FORM if str(i)==s][0] 2011/2/18 Robert Kluin robert.kl...@gmail.com: Looks like on your model definition you've specified 'choices' for formation, and 'Administrao' is not one of the choices. Robert On Thu, Feb 17, 2011 at 20:42, Josir josi...@gmail.com wrote: I'm back on my choice internationalization problem. The solution given by djdjadji worked partially. Now the form is displayed but when I try to post data, I got a validation form error: Property formation is u'Administrao'; must be one of (, , 'Jornalismo', 'Marketing', 'Marketing', 'Psicologia', 'Publicidade', 'Radialismo', 'Cinema', 'Outras') Is this a Django 0.96 form error ? Is this solved if I upgrade Django to 1.2 ? Or: does somebody have any tip ? Thanks in advance, Josir Gomes On 26 jan, 15:05, djidjadji djidja...@gmail.com wrote: Then you have to build a class with a __str__() and a __unicode__() method. The __unicode__() method should return the string that is displayed in the combobox and the __str__() returns the value that is put in the field of the form at the time of submit. class MyChoice(object): def __init__(self,val): self.val = unicode(val,'latin_1') self.valstr = self.val.encode('ascii','ignore') def __str__(self): return self.valstr def __unicode__(self): return self.val _CHOICES_FORMATION = ( MyChoice('Administração'), MyChoice('Design Gráfico'), MyChoice('Jornalismo'), MyChoice('Marketing'), MyChoice('Outras'), ) 2011/1/26 Josir josi...@gmail.com: I got an error: File /home/josir/sist/google_appengine/google/appengine/ext/db/ djangoforms.py, line 170, in get_form_field choices.append((str(choice), unicode(choice))) UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-13: ordinal not in range(128) What I understand is function get_form_field try to convert choice to a python string str(choice), where choice is each item of _CHOICES_FORMATION Any ideas on how to fix it ? Josir -- You received this message because you are subscribed to the Google Groups 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] Testing - Limit Compile Permutations
Hello, I have created an AppEngine Application that I am using to test. I will only be using this to test code and features before I use them in published Applications. I am currently compiling 6 permutations every time I compile. I will only be using the testing with IE8. (I will test in others after the basic idea is working). I have seen many months ago that I could limit my compile to only IE8, but cannot find this now. How can I reduce all of the compiles with my Testing Application. Thanks, Raney -- You received this message because you are subscribed to the Google Groups 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: Experiencing major timeout issues right now
Same here: 1. 2011-02-23 05:22:13.471 /lmv/Authentication 500 10874ms 0cpu_ms 0kb On Wed, Feb 23, 2011 at 9:00 AM, Kaan Soral kaanso...@gmail.com wrote: I am wondering that too On Feb 22, 6:02 am, David Mora dla.m...@gmail.com wrote: is this happening also for HR users? On 21 February 2011 21:51, Dennis dennisf...@gmail.com wrote: I'm still experiencing timeout issues and have been for over 12 hours. Simple pages in my application work, but the pages that do 30-40 gae read operations are consistently timing out (they were never a problem before). Just adding my data point in case others are experience this. Both gae system status and http://amistrongeryet.com/op_detail.jsp?op=gae_ram2_read_5_x_4_of. .. shows everything to be apparently normal, but it's definitely not. Dennis -- You received this message because you are subscribed to the Google Groups 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. --http://about.me/david.mora -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- *Jeff Schwartz* http://jefftschwartz.appspot.com/ follow me on twitter: @jefftschwartz -- You received this message because you are subscribed to the Google Groups 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: Experiencing major timeout issues right now
I am wondering that too On Feb 22, 6:02 am, David Mora dla.m...@gmail.com wrote: is this happening also for HR users? On 21 February 2011 21:51, Dennis dennisf...@gmail.com wrote: I'm still experiencing timeout issues and have been for over 12 hours. Simple pages in my application work, but the pages that do 30-40 gae read operations are consistently timing out (they were never a problem before). Just adding my data point in case others are experience this. Both gae system status and http://amistrongeryet.com/op_detail.jsp?op=gae_ram2_read_5_x_4_of... shows everything to be apparently normal, but it's definitely not. Dennis -- You received this message because you are subscribed to the Google Groups 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. --http://about.me/david.mora -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Best datastore design for massively scalable realtime chat?
Thank you for the _very_ useful and informative reply. :) AppEngine actully has XMPP intergtationhttp://code.google.com/appengine/docs/python/xmpp/ Yes, but from I can gather, I would need to run an XMPP server somewhere to handle the chats (or find a free provider X), and because chat is not the main function of my app (I'm building a go board game server) and needs to be integrated with the rest of the application, it's not the ideal choice. And the Channel API http://code.google.com/appengine/docs/python/channel/ This was actually extremely interesting and I think I'll consider this to get rid of the polling. However, because each user can only have one channel open, I need to do similar logic to polling on server-side anyway (i.e. merge messages from different channels), so my data structure problem still remains. Could probably use the matcher API (renamed Speculative Search API)http://groups.google.com/group/google-appengine/browse_thread/thread/... to perform dispatching of messages, again eliminating the need for the polling on the datastore. It seems this is still in very early testing phase. Because I don't yet have the user numbers that would require this infrastructure, I think I'll be doing without for the time being, and rewrite the merging functionality using matcher API when it's open to all App Engine users. (Don't think I should apply for testing when I only have a few concurrent users at most :) -- You received this message because you are subscribed to the Google Groups 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: Best datastore design for massively scalable realtime chat?
On 23 February 2011 14:20, Joonas Pihlajamaa joonas.pihlaja...@gmail.com wrote: Thank you for the _very_ useful and informative reply. :) AppEngine actully has XMPP intergtationhttp://code.google.com/appengine/docs/python/xmpp/ Yes, but from I can gather, I would need to run an XMPP server somewhere to handle the chats (or find a free provider X), Google Talk :) http://www.google.com/support/talk/bin/answer.py?hl=enanswer=57677 (I beleive XMPP and the channel API already use the Talk infestructure under the hood anyway) (Don't think I should apply for testing when I only have a few concurrent users at most :) Testing in a few users, is still worthwhile. Get it working on a few, and it should work for more. You might not even need to apply now. Speculative Search should be near ready for launch (it didnt make the latest SDK release tho) -- You received this message because you are subscribed to the Google Groups 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: help needed in hello world programe
thanks bro your suggestion worked take care and god bless you On Wed, Feb 23, 2011 at 10:22 AM, Robert Kluin robert.kl...@gmail.comwrote: Sounds like your paths are not configured / wrong. http://lmgtfy.com/?q=eclipse+python+app+engine+plugin On Tue, Feb 22, 2011 at 23:46, thahir hussain s.thahirhuss...@gmail.com wrote: i imported this only from google.appengine.ext import webapp : in my hello world programme and getting this error No module named google.appengine.ext i am using eclipse as ide On 2/23/11, Zeynel azeyn...@gmail.com wrote: Do you import these from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext import db in your python script? On Feb 21, 12:31 pm, thahir hussain s.thahirhuss...@gmail.com wrote: hi i am using google app engine and trying to write simple hello world programme in python and getting this error ImportError: No module named google.appengine.ext i am using eclipse as ide -- You received this message because you are subscribed to the Google Groups 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 received this message because you are subscribed to the Google Groups 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] Proxy to open blocked sites
Proxy to open blocked sites http://ppropx.4mtm.net OR http://pronet.4mtm.net -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Unable to load update to application using appcfg.py
Hello, I have been trying to update my application at iwinatwords.appspot.com for the past two weeks but have been unable to do so. Here is the message I get: I am on Linux 2.6 using the latest SDK release. using: appcfg.py update result: Cloning 1174 application files. Cloned 100 files. Cloned 200 files. Cloned 300 files. Cloned 400 files. Cloned 500 files. Cloned 600 files. Cloned 700 files. Cloned 800 files. Cloned 900 files. Cloned 1000 files. Cloned 1100 files. Uploading 3 files and blobs. Uploaded 3 files and blobs Precompilation starting. Precompilation completed. Deploying new version. Rolling back the update. Error 400: --- begin server output --- Client Error (400) The request is invalid for an unspecified reason. --- end server output --- I have checked, I have less than 3000 files and the application works fine at the local development machine using appengine SDK's dev_appserver.py Googling for a solution hasn't helped. In addition there are no logs indicating any error during the update. All I have is what is printed out on stdout. Is there a way to find out what is wrong? Without any detailed description I am unable to figure out the problem. I have tried various variations of appcfg.py update without any success. Is there a way to find more details than just a 400 and unspecified reason error (as this is so very unhelpful)? Regards, Kashif. -- You received this message because you are subscribed to the Google Groups 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] seeking guidance in application development
hello, i have been trying to create an application using google appengine.. i went to the link.. https://appengine.google.com/start; n after signing in my account i clicked the create application button it took me to another page where i was asked to fill in my Application Title.. no no matter what i write in the application title thing..it gives me an error..this appplication Id is already in use... help me!! i m stuck at the 1st very step..!! its urgent.. -- You received this message because you are subscribed to the Google Groups 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: Testing - Limit Compile Permutations
Hello, I found it! http://vinaytechs.blogspot.com/2009/09/gwt-compiler-compiling-for-one-browser.html Just add the following line to .gwt.xml set-property name=user.agent value=ie8 / May not seem like much, but when all I want to do is test a small chunk, i can do it in my Test Application. I had a TestPage.html in my Applications, this cuts the compile and file upload times quite a bit. My test allows me to try just about anything with just the minimum libraries and other files required. Raney On Feb 23, 6:57 am, RRRaney rrrsyst...@gmail.com wrote: Hello, I have created an AppEngine Application that I am using to test. I will only be using this to test code and features before I use them in published Applications. I am currently compiling 6 permutations every time I compile. I will only be using the testing with IE8. (I will test in others after the basic idea is working). I have seen many months ago that I could limit my compile to only IE8, but cannot find this now. How can I reduce all of the compiles with my Testing Application. Thanks, Raney -- You received this message because you are subscribed to the Google Groups 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] creating new GAE project in Eclipse Helios requires changing default name in GAE package
I noticed that Eclipse Helios will not take GAE directory until you change the django directory name. Thought I would pass it on. http://www.youtube.com/watch?v=eAv5HEbeXX8 -- You received this message because you are subscribed to the Google Groups 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: GAE is blocking IPs of our application - How can I unblock them?
A number of people reported a similar issue very recently (within the last week or two). I think this is the right issue: http://code.google.com/p/googleappengine/issues/detail?id=4560 Go star + add your details to it. Robert On Wed, Feb 23, 2011 at 06:36, Umut Muhaddisoglu umutmuhaddiso...@gmail.com wrote: Any updates, thoughts? On Feb 19, 12:58 pm, Umut Muhaddisoglu umutmuhaddiso...@gmail.com wrote: Hi, I'm the developer of a free-to-use uptime monitoring service: Uptime Robot (http://www.uptimerobot.com/). When a user adds a website to Uptime Robot for monitoring it,our application is sending regular HEAD, GET and/or PING requests to applications hosted on GAE to find out if they are up or down. For the last 5-7 days, we realized that the IP of our application is blocked by GAE. We send requests from: 74.86.158.106 and *.uptimerobot.com. If I try to browse a GAE hosted website from 74.86.158.106, I get a HTTP 403 status with details: * ForbiddenYour client does not have permission to get URL / from this server. (Client IP address: 74.86.158.106) You are accessing this page from a forbidden country. * Uptime Robot is a totally legitimate application and I know that GAE does not block all uptime monitoring services. So, I'm thinking that this must be by mistake or there must be a way to unblock the IPs. I'll be glad to get any help. Thanks so much. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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] Unable to load update to application using appcfg.py
Hi Kashif, Use one of the verbose output flags (I'd start with verbose): -v, --verbose Print info level logs. --noisy Print all logs. Linux 2.6 is not particularly descriptive, there are many distros. You should try with Python 2.5 and verify that you have App Engine SDK 1.4.2, which was released a couple weeks ago. Robert On Wed, Feb 23, 2011 at 01:49, Kashif a10n3.s7r1...@gmail.com wrote: Hello, I have been trying to update my application at iwinatwords.appspot.com for the past two weeks but have been unable to do so. Here is the message I get: I am on Linux 2.6 using the latest SDK release. using: appcfg.py update result: Cloning 1174 application files. Cloned 100 files. Cloned 200 files. Cloned 300 files. Cloned 400 files. Cloned 500 files. Cloned 600 files. Cloned 700 files. Cloned 800 files. Cloned 900 files. Cloned 1000 files. Cloned 1100 files. Uploading 3 files and blobs. Uploaded 3 files and blobs Precompilation starting. Precompilation completed. Deploying new version. Rolling back the update. Error 400: --- begin server output --- Client Error (400) The request is invalid for an unspecified reason. --- end server output --- I have checked, I have less than 3000 files and the application works fine at the local development machine using appengine SDK's dev_appserver.py Googling for a solution hasn't helped. In addition there are no logs indicating any error during the update. All I have is what is printed out on stdout. Is there a way to find out what is wrong? Without any detailed description I am unable to figure out the problem. I have tried various variations of appcfg.py update without any success. Is there a way to find more details than just a 400 and unspecified reason error (as this is so very unhelpful)? Regards, Kashif. -- You received this message because you are subscribed to the Google Groups 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: AppEngine seems slow to me. Is it normal?
I'm using extensively this class for paginations and it goes very well: http://appengine-cookbook.appspot.com/recipe/efficient-paging-for-any-query-and-any-model/?id=ahJhcHBlbmdpbmUtY29va2Jvb2tylwELEgtSZWNpcGVJbmRleCI8YWhKaGNIQmxibWRwYm1VdFkyOXZhMkp2YjJ0eUZ3c1NDRU5oZEdWbmIzSjVJZ2xFWVhSaGMzUnZjbVVNDAsSBlJlY2lwZSI-YWhKaGNIQmxibWRwYm1VdFkyOXZhMkp2YjJ0eUZ3c1NDRU5oZEdWbmIzSjVJZ2xFWVhSaGMzUnZjbVVNNDIM On 23 feb, 10:59, tobik tobiaspoto...@gmail.com wrote: Independent? Now I'm confused. Does it or does it not matter whether I select first page or 100th using offset? I checked the cursors, it looks nice, but it seems to me, that it's good only for next next next type of pagination. If the user jumped from the first to the 100th page and then back to the 50th page, I would still need to go through all previous entries and it would be slow. Or am I wrong? Naturally, I know that next next type of pagination would be suitable for most of cases. Ok and really last question, I hope I don't bother you much. What about pagination based on time periods. For example like all entries created today, yesterday, last week, last month. It would use simple filtering (greater than, less than) so it should be fast.. or not? On 23 ún, 06:25, Robert Kluin robert.kl...@gmail.com wrote: Performance is independent of the number of entities you have. Namespaces are great for segregating data, but you can't query across them -- you'll only get results from one. Like Chris mentioned, use cursors instead of offsets. And if you can, then yes a well thought out caching strategy is a good way to improve performance. Robert On Tue, Feb 22, 2011 at 18:57, tobik tobiaspoto...@gmail.com wrote: Sorry, one more tricky question. What about namespaces. If I had 10 namespaces and in each namespace 10 entries, would the performance be the same as if I had only one namespace but with 100 entries? On 22 ún, 23:31, Chris Copeland ch...@cope360.com wrote: Django's Paginator is not going to be efficient on GAE and is definitely not going to scale. GAE provides cursors which are a very efficient way to page through query results:http://code.google.com/appengine/docs/python/datastore/queries.html#Q... On Tue, Feb 22, 2011 at 3:57 PM, tobik tobiaspoto...@gmail.com wrote: I built a page using Django's Paginator which displays a simple table with 20 items from around 1000 total stored in database. I don't know how the Paginator works from the inside, but according to the appstats, it makes two queries (first counts items, second selects given page) and each one of them takes around 130ms of cpu time. Is it a normal value? The truth is that the page loads noticeably slower than a page without any queries. And I also counted, that with 6.5 cpu hours limit I can afford around 3000 such queries every day which is a quite small number. And it's only 1000 entries in the database. So far I've been using PHP+MySQL and I am used to that such simple queries are really fast, even on poor free hostings. I tried to apply caching on every single page generated by Paginator and it naturally reduced the loading time to minimum. So is it the right approach to AppEngine? Cache everything as much as possible? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: GAE is blocking IPs of our application - How can I unblock them?
Robert, Thanks very much. Did what you just said and hope a fix comes. Bests. On Feb 23, 7:00 pm, Robert Kluin robert.kl...@gmail.com wrote: A number of people reported a similar issue very recently (within the last week or two). I think this is the right issue: http://code.google.com/p/googleappengine/issues/detail?id=4560 Go star + add your details to it. Robert On Wed, Feb 23, 2011 at 06:36, Umut Muhaddisoglu umutmuhaddiso...@gmail.com wrote: Any updates, thoughts? On Feb 19, 12:58 pm, Umut Muhaddisoglu umutmuhaddiso...@gmail.com wrote: Hi, I'm the developer of a free-to-use uptime monitoring service: Uptime Robot (http://www.uptimerobot.com/). When a user adds a website to Uptime Robot for monitoring it,our application is sending regular HEAD, GET and/or PING requests to applications hosted on GAE to find out if they are up or down. For the last 5-7 days, we realized that the IP of our application is blocked by GAE. We send requests from: 74.86.158.106 and *.uptimerobot.com. If I try to browse a GAE hosted website from 74.86.158.106, I get a HTTP 403 status with details: * ForbiddenYour client does not have permission to get URL / from this server. (Client IP address: 74.86.158.106) You are accessing this page from a forbidden country. * Uptime Robot is a totally legitimate application and I know that GAE does not block all uptime monitoring services. So, I'm thinking that this must be by mistake or there must be a way to unblock the IPs. I'll be glad to get any help. Thanks so much. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Best datastore design for massively scalable realtime chat?
Speculative Search + channel API might be a really nice / cool solution. It would more-or-less handle a lot of the routing for you. If you want users to be able to view / page through old 'chat logs' then, as you mentioned, you'll need to store them. How fast do you expect to receive messages for a given channel, how large are the messages expected to be on average, and how much history do you want to keep for users to view? If messages will typically arrive less than one per 1/2 second or so, option (1) or (3) might work really nicely. If messages are small and you only need, say, the last 100 messages your first option might work very well. Keep in mind, if you will not be querying the list property, you can serialize and store you data significantly more efficiently in a text or blob property. Obviously storing each message in its own entity makes writes simple, but means you need a query to send messages to users instead of a fetch by key. If your write rate to a channel is low enough, I suspect option (1) or (3) will make reads extremely fast. If the write rate is high the second option might be your best choice, or some combination approach (ie write new messages to their own entities and run a background task to batch up new messages and update the 'channel' entities). Just a few thoughts. Robert On Wed, Feb 23, 2011 at 09:34, Barry Hunter barrybhun...@gmail.com wrote: On 23 February 2011 14:20, Joonas Pihlajamaa joonas.pihlaja...@gmail.com wrote: Thank you for the _very_ useful and informative reply. :) AppEngine actully has XMPP intergtationhttp://code.google.com/appengine/docs/python/xmpp/ Yes, but from I can gather, I would need to run an XMPP server somewhere to handle the chats (or find a free provider X), Google Talk :) http://www.google.com/support/talk/bin/answer.py?hl=enanswer=57677 (I beleive XMPP and the channel API already use the Talk infestructure under the hood anyway) (Don't think I should apply for testing when I only have a few concurrent users at most :) Testing in a few users, is still worthwhile. Get it working on a few, and it should work for more. You might not even need to apply now. Speculative Search should be near ready for launch (it didnt make the latest SDK release tho) -- You received this message because you are subscribed to the Google Groups 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: AppEngine seems slow to me. Is it normal?
You could try this: http://code.google.com/p/he3-appengine-lib/wiki/PagedQuery It's a complete module that uses cursors for a paging abstraction similar to Django's built-in pagination and just as easy to implement and you can jump to any page in your result set. On Feb 23, 3:59 am, tobik tobiaspoto...@gmail.com wrote: Independent? Now I'm confused. Does it or does it not matter whether I select first page or 100th using offset? I checked the cursors, it looks nice, but it seems to me, that it's good only for next next next type of pagination. If the user jumped from the first to the 100th page and then back to the 50th page, I would still need to go through all previous entries and it would be slow. Or am I wrong? Naturally, I know that next next type of pagination would be suitable for most of cases. Ok and really last question, I hope I don't bother you much. What about pagination based on time periods. For example like all entries created today, yesterday, last week, last month. It would use simple filtering (greater than, less than) so it should be fast.. or not? On 23 ún, 06:25, Robert Kluin robert.kl...@gmail.com wrote: Performance is independent of the number of entities you have. Namespaces are great for segregating data, but you can't query across them -- you'll only get results from one. Like Chris mentioned, use cursors instead of offsets. And if you can, then yes a well thought out caching strategy is a good way to improve performance. Robert On Tue, Feb 22, 2011 at 18:57, tobik tobiaspoto...@gmail.com wrote: Sorry, one more tricky question. What about namespaces. If I had 10 namespaces and in each namespace 10 entries, would the performance be the same as if I had only one namespace but with 100 entries? On 22 ún, 23:31, Chris Copeland ch...@cope360.com wrote: Django's Paginator is not going to be efficient on GAE and is definitely not going to scale. GAE provides cursors which are a very efficient way to page through query results:http://code.google.com/appengine/docs/python/datastore/queries.html#Q... On Tue, Feb 22, 2011 at 3:57 PM, tobik tobiaspoto...@gmail.com wrote: I built a page using Django's Paginator which displays a simple table with 20 items from around 1000 total stored in database. I don't know how the Paginator works from the inside, but according to the appstats, it makes two queries (first counts items, second selects given page) and each one of them takes around 130ms of cpu time. Is it a normal value? The truth is that the page loads noticeably slower than a page without any queries. And I also counted, that with 6.5 cpu hours limit I can afford around 3000 such queries every day which is a quite small number. And it's only 1000 entries in the database. So far I've been using PHP+MySQL and I am used to that such simple queries are really fast, even on poor free hostings. I tried to apply caching on every single page generated by Paginator and it naturally reduced the loading time to minimum. So is it the right approach to AppEngine? Cache everything as much as possible? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: AppEngine seems slow to me. Is it normal?
Using offset is not a good solution for a lot of cases, it will have to scan over offset entities which is slow. My comment is in regard to queries / fetches. Running a query is the same with 10 or 1,000 or 100,000,000 rows; performance will be related to the number of rows you are trying to fetch. Unfortunately cursors are a one-way-street right now, but they make it simple to implement next type functionality. However, you can store the previous cursor positions so that you can nicely implement previous. You can also store 'key' points in the cursor (such as every 100 entities), then scan forward from that point. Then if a user goes way down the line and suddenly jumps back you can find a close cursor without having to store _every_ cursor. There are a few existing solutions that you can use for this (just google app engine cursors paging). Querying on a timestamp is fine. Robert On Wed, Feb 23, 2011 at 04:59, tobik tobiaspoto...@gmail.com wrote: Independent? Now I'm confused. Does it or does it not matter whether I select first page or 100th using offset? I checked the cursors, it looks nice, but it seems to me, that it's good only for next next next type of pagination. If the user jumped from the first to the 100th page and then back to the 50th page, I would still need to go through all previous entries and it would be slow. Or am I wrong? Naturally, I know that next next type of pagination would be suitable for most of cases. Ok and really last question, I hope I don't bother you much. What about pagination based on time periods. For example like all entries created today, yesterday, last week, last month. It would use simple filtering (greater than, less than) so it should be fast.. or not? On 23 ún, 06:25, Robert Kluin robert.kl...@gmail.com wrote: Performance is independent of the number of entities you have. Namespaces are great for segregating data, but you can't query across them -- you'll only get results from one. Like Chris mentioned, use cursors instead of offsets. And if you can, then yes a well thought out caching strategy is a good way to improve performance. Robert On Tue, Feb 22, 2011 at 18:57, tobik tobiaspoto...@gmail.com wrote: Sorry, one more tricky question. What about namespaces. If I had 10 namespaces and in each namespace 10 entries, would the performance be the same as if I had only one namespace but with 100 entries? On 22 ún, 23:31, Chris Copeland ch...@cope360.com wrote: Django's Paginator is not going to be efficient on GAE and is definitely not going to scale. GAE provides cursors which are a very efficient way to page through query results:http://code.google.com/appengine/docs/python/datastore/queries.html#Q... On Tue, Feb 22, 2011 at 3:57 PM, tobik tobiaspoto...@gmail.com wrote: I built a page using Django's Paginator which displays a simple table with 20 items from around 1000 total stored in database. I don't know how the Paginator works from the inside, but according to the appstats, it makes two queries (first counts items, second selects given page) and each one of them takes around 130ms of cpu time. Is it a normal value? The truth is that the page loads noticeably slower than a page without any queries. And I also counted, that with 6.5 cpu hours limit I can afford around 3000 such queries every day which is a quite small number. And it's only 1000 entries in the database. So far I've been using PHP+MySQL and I am used to that such simple queries are really fast, even on poor free hostings. I tried to apply caching on every single page generated by Paginator and it naturally reduced the loading time to minimum. So is it the right approach to AppEngine? Cache everything as much as possible? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you
[google-appengine] A small Doubt
I have an app in which i need to create a 1000 entities of a particular type (with a blobproperty and a textproperty)in the datastore. I have created them in the development server. Is there a way to put these values directly to my application , rather than to create them again out there in the application. -- You received this message because you are subscribed to the Google Groups 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] Some of the emails sent from my application wasn't delivered.
I'm using java sdk. The account that I use to send the emails is administrator of my appengine app. But the account that I use to send emails is a Google Apps account no-re...@mydomain.com. In my application today was sent 11 emails. 2 of them wasn't never delivered. Is this a common 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.
Re: [google-appengine] A small Doubt
You could use the BulkLoader http://code.google.com/appengine/docs/python/tools/uploadingdata.html to download data from the SDK datastore, and then upload it a online datastore. On 23 February 2011 18:22, Silencer devassyh...@gmail.com wrote: I have an app in which i need to create a 1000 entities of a particular type (with a blobproperty and a textproperty)in the datastore. I have created them in the development server. Is there a way to put these values directly to my application , rather than to create them again out there in the application. -- You received this message because you are subscribed to the Google Groups 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: Blobstore totally unreliable, redirect to http://temporary-blobstore-error.appspot.com/
Any response from Google on this critical issue? Has there been filed an issue? This is one of at least two very serious issues with the blobstore submission handling (the other not being able to submit non- ASCII text). - Viðar On Feb 3, 4:17 am, RacZo oscar.salgu...@gmail.com wrote: I'm having the same problem... blobstore is completely unreliable. I've tried compiling my site with all the App Engine versions, I thought it was something with the domain masking/forwarding but no. My forms randomly send me to the page:http://temporary-blobstore-error.appspot.com I'm very sad because I've been recommending GAE to everyone. A little bit of help is welcome. On Jan 25, 7:31 am, Michal Hantl michal.ha...@gmail.com wrote: Same here. I haven't touched my app a for a week or two and today I am not able to upload (not a single time). On 11 led, 17:07, Kenneth kennet...@aladdinschools.com wrote: I've been getting reports from some of my customers that they're sometimes having trouble saving on a page goes to the blobstore handler. What happens is the page gets redirected tohttp://temporary-blobstore-error.appspot.com/andthepage says: Error: Server Error The server encountered an error and could not complete your request. Please retry your last submission. If the problem persists, please contact the person responsible for the application you're using, or, if you are that person, report your problem and mention this error message and the query that caused it. Has anyone else seen this? It is really killing me. It doesn't even show up in my logs. I'm going to try fetching the submit url through an ajax request to see if that helps, but is anyone else seeing this? Kenneth -- You received this message because you are subscribed to the Google Groups 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] Information about an app? Creation and contact info?
I recently went to add a new app and found the name to be used already. When I looked at the existing app it doesn't appear to have anything deployed yet. The name is unique enough to make me wonder when it was created and whether the other owner needs it anymore. Is there a way to contact owners of other applications? Is there a way to know when an app was created? Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: AppEngine seems slow to me. Is it normal?
Thanks a lot for all your tips. They are very useful. On 23 ún, 19:03, Joseph Letness joe.letn...@gmail.com wrote: You could try this: http://code.google.com/p/he3-appengine-lib/wiki/PagedQuery It's a complete module that uses cursors for a paging abstraction similar to Django's built-in pagination and just as easy to implement and you can jump to any page in your result set. On Feb 23, 3:59 am, tobik tobiaspoto...@gmail.com wrote: Independent? Now I'm confused. Does it or does it not matter whether I select first page or 100th using offset? I checked the cursors, it looks nice, but it seems to me, that it's good only for next next next type of pagination. If the user jumped from the first to the 100th page and then back to the 50th page, I would still need to go through all previous entries and it would be slow. Or am I wrong? Naturally, I know that next next type of pagination would be suitable for most of cases. Ok and really last question, I hope I don't bother you much. What about pagination based on time periods. For example like all entries created today, yesterday, last week, last month. It would use simple filtering (greater than, less than) so it should be fast.. or not? On 23 ún, 06:25, Robert Kluin robert.kl...@gmail.com wrote: Performance is independent of the number of entities you have. Namespaces are great for segregating data, but you can't query across them -- you'll only get results from one. Like Chris mentioned, use cursors instead of offsets. And if you can, then yes a well thought out caching strategy is a good way to improve performance. Robert On Tue, Feb 22, 2011 at 18:57, tobik tobiaspoto...@gmail.com wrote: Sorry, one more tricky question. What about namespaces. If I had 10 namespaces and in each namespace 10 entries, would the performance be the same as if I had only one namespace but with 100 entries? On 22 ún, 23:31, Chris Copeland ch...@cope360.com wrote: Django's Paginator is not going to be efficient on GAE and is definitely not going to scale. GAE provides cursors which are a very efficient way to page through query results:http://code.google.com/appengine/docs/python/datastore/queries.html#Q... On Tue, Feb 22, 2011 at 3:57 PM, tobik tobiaspoto...@gmail.com wrote: I built a page using Django's Paginator which displays a simple table with 20 items from around 1000 total stored in database. I don't know how the Paginator works from the inside, but according to the appstats, it makes two queries (first counts items, second selects given page) and each one of them takes around 130ms of cpu time. Is it a normal value? The truth is that the page loads noticeably slower than a page without any queries. And I also counted, that with 6.5 cpu hours limit I can afford around 3000 such queries every day which is a quite small number. And it's only 1000 entries in the database. So far I've been using PHP+MySQL and I am used to that such simple queries are really fast, even on poor free hostings. I tried to apply caching on every single page generated by Paginator and it naturally reduced the loading time to minimum. So is it the right approach to AppEngine? Cache everything as much as possible? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] template inheritance while using django 1.2 via appengiene uselibrary in gae 1.4.2
Search for: def webapp_django_setup(): You should change the setup. Add your own file loader and config variable. Because webapp changes TEMPLATE_DIRS for every template rendering. 2011/2/22 Robert Kluin robert.kl...@gmail.com: There are several other similar discussions, here's a couple: http://code.google.com/appengine/forum/python-forum.html?place=msg/google-appengine-python/YaqfeygoiaI/WjRY2xTJEIEJ https://groups.google.com/group/google-appengine-python/browse_thread/thread/10010f148d74ec55/75d1c011f1f904d8 I think there was something in the past week or two as well, but I couldn't find it quickly. You might want to spend a few minutes searching the groups. -- You received this message because you are subscribed to the Google Groups 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] Information about an app? Creation and contact info?
It could be that this name is a gmail acount. It could be that it looks like nothing is being deployed. Maybe the '/' URL is mapped to a not-implemented handler. You have to touch the right URL or with the right google accounts to get a responds. 2011/2/23 Kris Bravo kris.br...@gmail.com: I recently went to add a new app and found the name to be used already. When I looked at the existing app it doesn't appear to have anything deployed yet. The name is unique enough to make me wonder when it was created and whether the other owner needs it anymore. Is there a way to contact owners of other applications? Is there a way to know when an app was created? Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] app engine Internal Server Error this morning
I'm getting TypeError exception just doing from django.utils import simplejson. app engine SDK works with the same code without exception. from django.utils import simplejson File /base/data/home/apps/xb-test1/4.348559552086086949/django/ utils/simplejson/__init__.py, line 139, in module from django.utils.simplejson.decoder import JSONDecoder File /base/data/home/apps/xb-test1/4.348559552086086949/django/ utils/simplejson/decoder.py, line 21, in module NaN, PosInf, NegInf = _floatconstants() File /base/data/home/apps/xb-test1/4.348559552086086949/django/ utils/simplejson/decoder.py, line 15, in _floatconstants _BYTES = '7FF307FF0'.decode('hex') File /base/python_runtime/python_dist/lib/python2.5/encodings/ hex_codec.py, line 42, in hex_decode output = binascii.a2b_hex(input) TypeError: Odd-length string any idea? thanks -alan -- You received this message because you are subscribed to the Google Groups 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] So, how do I get my app on a device?
Hi, I feel like this should be a simple step but I'm stumped. I created an app (using Python) and deployed it using the Google App Engine. So I have an appspot URL and everything looks fine. Now, how do I get it on my phone? I don't understand how to download it for use as an app. Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] So, how do I get my app on a device?
App Engine hosts your web application at a publicly addressable URL. You don't need to install it. All you need to do is open up your phone's browser and browse to http://YOUR-APP-ID.appspot.com. Good luck! -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Wed, Feb 23, 2011 at 11:26 AM, FlennerA angels...@gmail.com wrote: Hi, I feel like this should be a simple step but I'm stumped. I created an app (using Python) and deployed it using the Google App Engine. So I have an appspot URL and everything looks fine. Now, how do I get it on my phone? I don't understand how to download it for use as an app. Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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] Copy Data from App to App
I want to use the HR datastore which Google claims is much more reliable. However every time I try to run the built in datastore admin function to copy my data from app to app It seems to get stuck with the last few entities. I get the following error below and the job never finishes. Hopefully somebody from Google has an idea of how I can get my data to copy over??? The app/namespace arguments (comerica-tt/) should match parent.app/ namespace() (s~comerica-events/) Traceback (most recent call last): File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/webapp/__init__.py, line 517, in __call__ handler.post(*groups) File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/mapreduce/base_handler.py, line 59, in post self.handle() File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/mapreduce/handlers.py, line 172, in handle ctx.flush() File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/mapreduce/context.py, line 244, in flush pool.flush() File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/datastore_admin/copy_handler.py, line 221, in flush 1, maxid) File /base/python_runtime/python_lib/versions/1/google/appengine/ ext/db/__init__.py, line 1455, in allocate_id_range start_key = Key.from_path(key.kind(), start, parent=key.parent()) File /base/python_runtime/python_lib/versions/1/google/appengine/ api/datastore_types.py, line 387, in from_path (app_id, namespace, parent.app(), parent.namespace())) BadArgumentError: The app/namespace arguments (comerica-tt/) should match parent.app/namespace() (s~comerica-events/) -- You received this message because you are subscribed to the Google Groups 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] Securing servlets
This is probably the easiest way: http://en.wikipedia.org/wiki/Shared_secret A more complex solution would involve a public/private certificate pair, however, as soon as someone gets a hold of this certificate, they will be able to make calls against your server. I'm not enough of an expert on Android security to tell you whether this information can be extracted from an APK. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Tue, Feb 22, 2011 at 3:52 AM, Charly carlosena...@gmail.com wrote: Hi friends I'm new and I'm not sure what is the correct way to secure my servlets allowing calls only from my android app client. What do you recommend me? Thanks -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to 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] Who can I ask for more App Engine Slots?
No reason, other than the fact that you already have 35 slots which is potentially 350 applications. There are other pressing issues at the moment, but if you open a ticket, we'll get to it when we have a chance. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Tue, Feb 22, 2011 at 6:38 AM, branflake2267 branflake2...@gmail.comwrote: Very clever. Is there any reason I can't get any more slots at the moment? Have I hit a ceiling are you out of slots to give? Thanks looking, Bandon -- You received this message because you are subscribed to the Google Groups 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: Partial put() ?
Index writes are technically asynchronous, since the RPC actually returns before the index is written. However, the index is written so quickly that this has never been an issue. For all intents and purposes, it's instantaneous. This will, however, incur additional CPU costs. Daniel, you should investigate setting indexed=False on many of these properties. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Sun, Feb 20, 2011 at 9:16 AM, stevep prosse...@gmail.com wrote: I believe that by not explicitly setting indexing to False, you're getting an implicit index on every item (apart from non-idexables like Texts). If these item values change a lot, your put() may be quite expensive and slower than expected. You might also end up wondering why you've got so much storage related to indices. Even without values that change, your index structure is still very likely to greatly affect your put() performance. Are you sure this is what you want/ need? My limited experience has me now striving to push index updates into task queues whenever feasible to keep the on-line handler put() as fast as possible. This often results in a separate index-only db class linked to the original record via its id value. Doesn't solve every problem, but will certainly be much faster (again that statement is based on my limited experience). I'm starting to get used to this setup, and find it a fairly decent workaround to avoiding potential DeadlineExceeded issues in the on-line handler. Hope this helps, stevep On Feb 19, 11:32 am, Daniel danielkra...@gmail.com wrote: I have a model that holds a bunch of game data: class MyGame(db.Expando): sender=db.StringProperty() senderScore=db.IntegerProperty(default=0) senderChatWaiting=db.BooleanProperty(default=False) senderResigned=db.BooleanProperty(default=False) senderHideGame=db.BooleanProperty(default=False) recipient=db.StringProperty() recipientAccepted=db.BooleanProperty(default=False) recipientScore=db.IntegerProperty(default=0) recipientChatWaiting=db.BooleanProperty(default=False) recipientResigned=db.BooleanProperty(default=False) recipientHideGame=db.BooleanProperty(default=False) bucket=db.TextProperty() board=db.TextProperty() currentPlayer=db.IntegerProperty(default=0) whosTurn=db.StringProperty() whosWaiting=db.StringProperty() moveID=db.IntegerProperty(default=1) lastPlayed=db.StringProperty() lastPointsRecieved=db.IntegerProperty(default=0) chatLog=db.StringListProperty() created=db.DateTimeProperty(auto_now_add=True) lastUpdate=db.DateTimeProperty(auto_now_add=True) gameFinished=db.BooleanProperty(default=False) gameResigned=db.BooleanProperty(default=False) I have a single method that updates all of these values for a particular existing game record and does a single .put() at the end to save it. Is it possible that only some of the items are updated and not others.. a partial put()? I was assuming that a put() would either succeed or fail, but not partially succeed. I'm trying to track down a bug in my app and curious if it's possible I have a partial write.. if not the bug is probably elsewhere in my server code or client. Thanks Daniel -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] How can I debug an incoming email with attachments?
In my app, we receive email with txt files that we need to read and store the data in the datastore. I don't know why we receive the emails, but data is not being store. We would like to debug, but we don't know how to send emails with attachments to the developer server. Is there any solution? Thanks. Carlos -- You received this message because you are subscribed to the Google Groups 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: Migration to High Replication, lost access to keys.
We are unlikely to create a tool that will let you switch from a master/slave application to high replication. A data copy will be required. As far as master-slave, we will be emphasizing high replication in the future and will be basing our uptime metrics on applications running on high replication. There will be very few cases, if any, where we will be recommending that applications start on master-slave datastore. With regards to keys: I don't believe the String form of a Key contains an application ID, so if you hash this, the migration should work fine. We weren't prepared for your use case, unfortunately, as the migration tool takes a key, understand the app ID, rewrite it, and save it to the new datastore. We can't do this to a computed hash. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Tue, Feb 22, 2011 at 9:44 PM, johnP j...@thinkwave.com wrote: There is lots of thought about how to migrate to HR for the promised increase in reliability. But how do I resolve the following situation. I have millions of entities with a key_name that is a compressed hash of 4 other entity key-strings. This ensures that there are no duplicate records. Also, lots of queries are optimized by pre-building key_names hashes and performing a get. In other words, handling a migration currently appears to require a significant rewrite of key parts of the application, rebuilding millions of entities after the transition, high cpu costs, tons of hackery, headaches, and downtime. The question is (and I've seen multiple attempts from various vectors to ask a similar question): will there be improved tools for migration? Will these improved tools handle my use-case? Will Appengine eventually implement an ability to simply switch a domain from MS to HR? Or simply, Black and White, John - your application is stuck in a dead-end part of our system. It's your problem to get it out. Is my assumption that Master-Slave is a dead-end, correct? I am hopeful that this question will receive attention because a solid answer, one way or another, is required for planning our resources and development. In other words, instead of further optimizing by moving further in a key_name_hash direction, we'd roll back a bunch of work, perform the transition, then continue. johnP On Feb 1, 10:26 pm, Albert albertpa...@gmail.com wrote: Thank you! On Feb 2, 1:30 pm, Nick Johnson (Google) nick.john...@google.com wrote: Hi Albert, On Wed, Feb 2, 2011 at 12:44 PM, Albert albertpa...@gmail.com wrote: Hi! I just migrated to theHigh Replicationdatastore. Some of my entities contain stringified keys of other entities. For example: Entity(db.Model): owner = db.StringProperty() # the str(Key) of the owner. Owner(db.Model): name = db.StringProperty() Now that I've migrated to thehigh-replicationdatastore, all the stringified keys in the Entity Model contain bad keys because the Owner Entities have new keys now. The migration tool rewrites the App ID of keys, but only if they're stored as keys (or reference properties). This is one reason why you shouldn't store stringified keys in the datastore! 2 questions: 1. Would this have been prevented by using db.ReferenceProperty() instead? Yes. 2. How can I resolve this issue? I need to update all entities to contain the new keys instead. You should probably use the mapreduce library. For your mapper function, deserialize the key, and construct a new one with the correct App ID (you can simply use db.Key.from_path to do this, as it will fill in the App ID for you) then store it again. You might want to move to using ReferenceProperties when you do this. -Nick Johnson Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are
Re: [google-appengine] Re: seeking guidance in application development
ok..thanx.. it worked.. i hav another doubt.. actually this application that i m creating is for my college project on networking.. i jst wanted to know weather creating a application using google appengine will include sum networking part or nt?? On Wed, Feb 23, 2011 at 9:44 PM, Geoffrey Spear geoffsp...@gmail.comwrote: On Feb 23, 4:17 am, Saransh Gupta r13r...@gmail.com wrote: hello, i have been trying to create an application using google appengine.. i went to the link.. https://appengine.google.com/start; n after signing in my account i clicked the create application button it took me to another page where i was asked to fill in my Application Title.. no no matter what i write in the application title thing..it gives me an error..this appplication Id is already in use... help me!! i m stuck at the 1st very step..!! its urgent.. Think of a more unique application identifier. Applications share a namespace with Gmail accounts, so you may need to get creative and/or attach strings of random numbers to the ends of words. -- You received this message because you are subscribed to the Google Groups 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] Problems of constructing objects to show in html template using Python
##PYTHON CODE userprofile = db.get(user_key) url_linktext = 'Logout' url = users.create_logout_url(self.request.uri) projects = userprofile.project_references #projects are records from querying database. values = { 'projects': projects, 'numberprojects': userprofile.project_references.count(), 'pagename': pagename} self.response.out.write(template.render('showproject.html', values)) #HTML {% for proj in projects %} tr class=odd valign=middle tdinput type=checkbox name=chkSelect value={{proj.key}}/td td{{proj.projectname}}/td td{{proj.budget}}/td td{{proj.startdate}}/td td{{proj.enddate}}/td td{{proj.contactname}}/td td{{proj.contactnumber}}/td /tr {% endfor %} The problem is I want to add sequence into the projects object so that when it's replaced in the html template, I can use {{proj.sequence}}. but sequence is not a property in the database. Thanks -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Experiencing major timeout issues right now
So switching from M/S to HR would not help? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: seeking guidance in application development
http://code.google.com/appengine/docs/whatisgoogleappengine.html Not really. That's part of the point of it. On Wed, Feb 23, 2011 at 21:38, SARANSH GUPTA r13r...@gmail.com wrote: ok..thanx.. it worked.. i hav another doubt.. actually this application that i m creating is for my college project on networking.. i jst wanted to know weather creating a application using google appengine will include sum networking part or nt?? On Wed, Feb 23, 2011 at 9:44 PM, Geoffrey Spear geoffsp...@gmail.com wrote: On Feb 23, 4:17 am, Saransh Gupta r13r...@gmail.com wrote: hello, i have been trying to create an application using google appengine.. i went to the link.. https://appengine.google.com/start; n after signing in my account i clicked the create application button it took me to another page where i was asked to fill in my Application Title.. no no matter what i write in the application title thing..it gives me an error..this appplication Id is already in use... help me!! i m stuck at the 1st very step..!! its urgent.. Think of a more unique application identifier. Applications share a namespace with Gmail accounts, so you may need to get creative and/or attach strings of random numbers to the ends of words. -- You received this message because you are subscribed to the Google Groups 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 received this message because you are subscribed to the Google Groups 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: Migration to High Replication, lost access to keys.
If they're using str(db.Key.from_path('Test', 123)) or str(entity.key()) it contains the appid (and namespace, kind, and id or name). key = db.Key('agVzaGVsbHILCxIEVGVzdBjVAQw') print key.app() Should be 'shell' Robert On Wed, Feb 23, 2011 at 21:28, Ikai Lan (Google) ikai.l+gro...@google.com wrote: We are unlikely to create a tool that will let you switch from a master/slave application to high replication. A data copy will be required. As far as master-slave, we will be emphasizing high replication in the future and will be basing our uptime metrics on applications running on high replication. There will be very few cases, if any, where we will be recommending that applications start on master-slave datastore. With regards to keys: I don't believe the String form of a Key contains an application ID, so if you hash this, the migration should work fine. We weren't prepared for your use case, unfortunately, as the migration tool takes a key, understand the app ID, rewrite it, and save it to the new datastore. We can't do this to a computed hash. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Tue, Feb 22, 2011 at 9:44 PM, johnP j...@thinkwave.com wrote: There is lots of thought about how to migrate to HR for the promised increase in reliability. But how do I resolve the following situation. I have millions of entities with a key_name that is a compressed hash of 4 other entity key-strings. This ensures that there are no duplicate records. Also, lots of queries are optimized by pre-building key_names hashes and performing a get. In other words, handling a migration currently appears to require a significant rewrite of key parts of the application, rebuilding millions of entities after the transition, high cpu costs, tons of hackery, headaches, and downtime. The question is (and I've seen multiple attempts from various vectors to ask a similar question): will there be improved tools for migration? Will these improved tools handle my use-case? Will Appengine eventually implement an ability to simply switch a domain from MS to HR? Or simply, Black and White, John - your application is stuck in a dead-end part of our system. It's your problem to get it out. Is my assumption that Master-Slave is a dead-end, correct? I am hopeful that this question will receive attention because a solid answer, one way or another, is required for planning our resources and development. In other words, instead of further optimizing by moving further in a key_name_hash direction, we'd roll back a bunch of work, perform the transition, then continue. johnP On Feb 1, 10:26 pm, Albert albertpa...@gmail.com wrote: Thank you! On Feb 2, 1:30 pm, Nick Johnson (Google) nick.john...@google.com wrote: Hi Albert, On Wed, Feb 2, 2011 at 12:44 PM, Albert albertpa...@gmail.com wrote: Hi! I just migrated to theHigh Replicationdatastore. Some of my entities contain stringified keys of other entities. For example: Entity(db.Model): owner = db.StringProperty() # the str(Key) of the owner. Owner(db.Model): name = db.StringProperty() Now that I've migrated to thehigh-replicationdatastore, all the stringified keys in the Entity Model contain bad keys because the Owner Entities have new keys now. The migration tool rewrites the App ID of keys, but only if they're stored as keys (or reference properties). This is one reason why you shouldn't store stringified keys in the datastore! 2 questions: 1. Would this have been prevented by using db.ReferenceProperty() instead? Yes. 2. How can I resolve this issue? I need to update all entities to contain the new keys instead. You should probably use the mapreduce library. For your mapper function, deserialize the key, and construct a new one with the correct App ID (you can simply use db.Key.from_path to do this, as it will fill in the App ID for you) then store it again. You might want to move to using ReferenceProperties when you do this. -Nick Johnson Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- You received this message because you are subscribed to
Re: [google-appengine] How can I debug an incoming email with attachments?
You could construct the email and post it to /_ah/mail yourself. Or, you could certainly setup a test instance or different version on production. Just for reference: http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/webapp/mail_handlers.py#37 http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/admin/templates/inboundmail.html Robert On Wed, Feb 23, 2011 at 21:24, Carlos Aguilar c.aguim...@gmail.com wrote: In my app, we receive email with txt files that we need to read and store the data in the datastore. I don't know why we receive the emails, but data is not being store. We would like to debug, but we don't know how to send emails with attachments to the developer server. Is there any solution? Thanks. Carlos -- You received this message because you are subscribed to the Google Groups 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] Problems of constructing objects to show in html template using Python
I think you want to use forloop.counter or forloop.counter0: forloop.counter: The current iteration of the loop (1-indexed) forloop.counter0: The current iteration of the loop (0-indexed) http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocs#for Robert On Wed, Feb 23, 2011 at 21:42, T K tosapor...@gmail.com wrote: ##PYTHON CODE userprofile = db.get(user_key) url_linktext = 'Logout' url = users.create_logout_url(self.request.uri) projects = userprofile.project_references #projects are records from querying database. values = { 'projects': projects, 'numberprojects': userprofile.project_references.count(), 'pagename': pagename} self.response.out.write(template.render('showproject.html', values)) #HTML {% for proj in projects %} tr class=odd valign=middle tdinput type=checkbox name=chkSelect value={{proj.key}}/td td{{proj.projectname}}/td td{{proj.budget}}/td td{{proj.startdate}}/td td{{proj.enddate}}/td td{{proj.contactname}}/td td{{proj.contactnumber}}/td /tr {% endfor %} The problem is I want to add sequence into the projects object so that when it's replaced in the html template, I can use {{proj.sequence}}. but sequence is not a property in the database. Thanks -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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: NeedIndexError on growing number of entities
Thanks Robert, Adding composite index below as you suggested fixed the issue. - kind: Kind properties: - name: __searchable_text_index - name: __searchable_text_index -- You received this message because you are subscribed to the Google Groups 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: Partial put() ?
Thanks for the tip. I'll look into it now (now that I've read the docs on indexing and understand where I'd need it) On Wed, Feb 23, 2011 at 6:21 PM, Ikai Lan (Google) ikai.l+gro...@google.com wrote: Index writes are technically asynchronous, since the RPC actually returns before the index is written. However, the index is written so quickly that this has never been an issue. For all intents and purposes, it's instantaneous. This will, however, incur additional CPU costs. Daniel, you should investigate setting indexed=False on many of these properties. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Sun, Feb 20, 2011 at 9:16 AM, stevep prosse...@gmail.com wrote: I believe that by not explicitly setting indexing to False, you're getting an implicit index on every item (apart from non-idexables like Texts). If these item values change a lot, your put() may be quite expensive and slower than expected. You might also end up wondering why you've got so much storage related to indices. Even without values that change, your index structure is still very likely to greatly affect your put() performance. Are you sure this is what you want/ need? My limited experience has me now striving to push index updates into task queues whenever feasible to keep the on-line handler put() as fast as possible. This often results in a separate index-only db class linked to the original record via its id value. Doesn't solve every problem, but will certainly be much faster (again that statement is based on my limited experience). I'm starting to get used to this setup, and find it a fairly decent workaround to avoiding potential DeadlineExceeded issues in the on-line handler. Hope this helps, stevep On Feb 19, 11:32 am, Daniel danielkra...@gmail.com wrote: I have a model that holds a bunch of game data: class MyGame(db.Expando): sender=db.StringProperty() senderScore=db.IntegerProperty(default=0) senderChatWaiting=db.BooleanProperty(default=False) senderResigned=db.BooleanProperty(default=False) senderHideGame=db.BooleanProperty(default=False) recipient=db.StringProperty() recipientAccepted=db.BooleanProperty(default=False) recipientScore=db.IntegerProperty(default=0) recipientChatWaiting=db.BooleanProperty(default=False) recipientResigned=db.BooleanProperty(default=False) recipientHideGame=db.BooleanProperty(default=False) bucket=db.TextProperty() board=db.TextProperty() currentPlayer=db.IntegerProperty(default=0) whosTurn=db.StringProperty() whosWaiting=db.StringProperty() moveID=db.IntegerProperty(default=1) lastPlayed=db.StringProperty() lastPointsRecieved=db.IntegerProperty(default=0) chatLog=db.StringListProperty() created=db.DateTimeProperty(auto_now_add=True) lastUpdate=db.DateTimeProperty(auto_now_add=True) gameFinished=db.BooleanProperty(default=False) gameResigned=db.BooleanProperty(default=False) I have a single method that updates all of these values for a particular existing game record and does a single .put() at the end to save it. Is it possible that only some of the items are updated and not others.. a partial put()? I was assuming that a put() would either succeed or fail, but not partially succeed. I'm trying to track down a bug in my app and curious if it's possible I have a partial write.. if not the bug is probably elsewhere in my server code or client. Thanks Daniel -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups 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. -- Daniel Kramer -- You received this message because you are subscribed to the Google Groups 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: Experiencing major timeout issues right now
It wasn't clear that Jeff is using HR, I wish he doesn't On Feb 24, 5:24 am, Raymond C. windz...@gmail.com wrote: So switching from M/S to HR would not help? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.