Re: [appengine-java] Re: GAE commercial use!

2010-06-16 Thread Muhammad Ijaz Khan
Yes, I have started reading it now, it looks good :) thanks.

Any comment on commercial grade system deployment using appengine for java?

On Wed, Jun 16, 2010 at 6:33 AM, Didier Durand durand.did...@gmail.comwrote:

 Hi,

 Go for this book

 http://www.amazon.com/Programming-Google-App-Engine-Infrastructure/dp/059652272X/ref=sr_1_1?ie=UTF8s=booksqid=1276659135sr=1-1

 Great (written by a googler) especially on datastore
 didier

 On Jun 15, 10:42 am, Muhammad Ijaz Khan aija...@gmail.com wrote:
  Hi,
 
  Is there a commercial big sized service running on appengine platform? It
  will be highly appreciable if someone can link to a book for google
  appengine for java too. Thanks.
 
  regards,
  Ijaz

 --
 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-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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] updating 2-3 entities

2010-06-16 Thread aswath satrasala
Hi All,
I have roughly the following entities for the accounting application

Invoice {
@id
double amount

}

Payment {
@id
double amount

@embedded
InvoiceApplied[]

}

InvoiceApplied {
Long invoiceId
double appliedamount
}

I get the Payment amount, then I apply the payment amount to various
invoices in the embeded 'InvoiceApplied'.  I want to update the status of
the Invoice as 'PAID', if the amount is fully applied for the invoice.

The Invoice and Payment entities are not in the same entitygroup. For
simplicity, I have shown only two entities, but there are 1-2 more entities
which need to be updated as well.  I am not making them as part of the same
entity group (by using a common parent).  I am refraining to create them
with a common parent key for now, because of the limitations of the
writes/sec on the entitygroup.

What choices I have, to guarantee that the data is updated in all the
entities?

-Aswath

-- 
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-j...@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: SecurityException with Hessian on google app engine

2010-06-16 Thread dilbert
I posted a new bug report to the Hessian people: 
http://bugs.caucho.com/view.php?id=4080
There is also some information about this bug here:
http://groups.google.com/group/google-appengine-java/browse_thread/thread/ccb9d0ff6b88545/

On Jun 8, 10:31 am, Matija matija.jerko...@gmail.com wrote:
 Any news about this SecurityException ?

 Matija.

 On Jun 5, 4:46 pm, dilbert dilbert.elbo...@gmail.com wrote:

  I am having trouble with Hessian on Google App Engine. First I will
  describe the setup. I have a persistent class MessageDb declared as
  (It contains a String and an arraylist of strings):

  @PersistenceCapable
  public class MessageDb {
      @PrimaryKey
      private String user;

      @Persistent
      private ArrayListString words = new ArrayListString();
      /* getters and setters ...*/

  }

  I have the following service interface:
  public interface IService {
      ArrayListString testMessage();
      /* Some other methods ... */
   }

  The Service is implemented on App engine in the following way:
  public class Service extends HessianServlet implements IService {
      private static final PersistenceManagerFactory pmfInstance =
  JDOHelper.getPersistenceManagerFactory(transactions-optional);

      @Override
      public ArrayListString testMessage() {
          PersistenceManager pm = null;
          try {
              pm = pmfInstance.getPersistenceManager();

              MessageDb messageDb;
              try {
                  messageDb = pm.getObjectById(MessageDb.class,
  testMessage);
              } catch (JDOObjectNotFoundException e) {
                  return null;
              }
              return messageDb.getWords();
              //return new ArrayListString(messageDb.getWords());
          } finally {
              if (pm != null)
                  pm.close();
          }
      }

  }

  The service simply retrieves an MessageDb object by key and returns
  the object's ArrayListString. This code works fine on the local
  development server but it fails when deployed on remote Google servers
  with the following exception:

  java.lang.SecurityException: java.lang.IllegalAccessException:
  Reflection is not allowed on private int java.util.ArrayList.size
          at
  com.google.appengine.runtime.Request.process-0c4ab611241850c6(Request.java)
          at java.lang.reflect.Field.setAccessible(Field.java:166)
          at
  com.caucho.hessian.io.JavaSerializer.introspect(JavaSerializer.java:
  122)
          at com.caucho.hessian.io.JavaSerializer.init(JavaSerializer.java:
  81)
          at com.caucho.hessian.io.JavaSerializer.create(JavaSerializer.java:
  95)
          at
  com.caucho.hessian.io.SerializerFactory.getDefaultSerializer(SerializerFact 
  ory.java:
  348)
          at
  com.caucho.hessian.io.SerializerFactory.loadSerializer(SerializerFactory.ja 
  va:
  278)
          at
  com.caucho.hessian.io.SerializerFactory.getSerializer(SerializerFactory.jav 
  a:
  224)
          at
  com.caucho.hessian.io.SerializerFactory.getObjectSerializer(SerializerFacto 
  ry.java:
  197)
          at
  com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:
  418)
          at
  com.caucho.hessian.io.AbstractHessianOutput.writeReply(AbstractHessianOutpu 
  t.java:
  558)
          at
  com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:
  323)
          at
  com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:
  202)
          at
  com.caucho.hessian.server.HessianServlet.invoke(HessianServlet.java:
  389)
          at
  com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:
  369)
          at 
  org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
  511)
          at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1166)
          at
  com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlo 
  bUploadFilter.java:
  97)
          at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1157)
          at
  com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionF 
  ilter.java:
  35)
          at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1157)
          at
  com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans 
  actionCleanupFilter.java:
  43)
          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
  

[appengine-java] Re: SecurityException with Hessian on google app engine

2010-06-16 Thread dilbert
I posted a new bug report to the Hessian people: 
http://bugs.caucho.com/view.php?id=4080
There is also some information about this bug here:
http://groups.google.com/group/google-appengine-java/browse_thread/thread/ccb9d0ff6b88545/

On Jun 8, 10:31 am, Matija matija.jerko...@gmail.com wrote:
 Any news about this SecurityException ?

 Matija.

 On Jun 5, 4:46 pm, dilbert dilbert.elbo...@gmail.com wrote:

  I am having trouble with Hessian on Google App Engine. First I will
  describe the setup. I have a persistent class MessageDb declared as
  (It contains a String and an arraylist of strings):

  @PersistenceCapable
  public class MessageDb {
      @PrimaryKey
      private String user;

      @Persistent
      private ArrayListString words = new ArrayListString();
      /* getters and setters ...*/

  }

  I have the following service interface:
  public interface IService {
      ArrayListString testMessage();
      /* Some other methods ... */
   }

  The Service is implemented on App engine in the following way:
  public class Service extends HessianServlet implements IService {
      private static final PersistenceManagerFactory pmfInstance =
  JDOHelper.getPersistenceManagerFactory(transactions-optional);

      @Override
      public ArrayListString testMessage() {
          PersistenceManager pm = null;
          try {
              pm = pmfInstance.getPersistenceManager();

              MessageDb messageDb;
              try {
                  messageDb = pm.getObjectById(MessageDb.class,
  testMessage);
              } catch (JDOObjectNotFoundException e) {
                  return null;
              }
              return messageDb.getWords();
              //return new ArrayListString(messageDb.getWords());
          } finally {
              if (pm != null)
                  pm.close();
          }
      }

  }

  The service simply retrieves an MessageDb object by key and returns
  the object's ArrayListString. This code works fine on the local
  development server but it fails when deployed on remote Google servers
  with the following exception:

  java.lang.SecurityException: java.lang.IllegalAccessException:
  Reflection is not allowed on private int java.util.ArrayList.size
          at
  com.google.appengine.runtime.Request.process-0c4ab611241850c6(Request.java)
          at java.lang.reflect.Field.setAccessible(Field.java:166)
          at
  com.caucho.hessian.io.JavaSerializer.introspect(JavaSerializer.java:
  122)
          at com.caucho.hessian.io.JavaSerializer.init(JavaSerializer.java:
  81)
          at com.caucho.hessian.io.JavaSerializer.create(JavaSerializer.java:
  95)
          at
  com.caucho.hessian.io.SerializerFactory.getDefaultSerializer(SerializerFact 
  ory.java:
  348)
          at
  com.caucho.hessian.io.SerializerFactory.loadSerializer(SerializerFactory.ja 
  va:
  278)
          at
  com.caucho.hessian.io.SerializerFactory.getSerializer(SerializerFactory.jav 
  a:
  224)
          at
  com.caucho.hessian.io.SerializerFactory.getObjectSerializer(SerializerFacto 
  ry.java:
  197)
          at
  com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:
  418)
          at
  com.caucho.hessian.io.AbstractHessianOutput.writeReply(AbstractHessianOutpu 
  t.java:
  558)
          at
  com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:
  323)
          at
  com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:
  202)
          at
  com.caucho.hessian.server.HessianServlet.invoke(HessianServlet.java:
  389)
          at
  com.caucho.hessian.server.HessianServlet.service(HessianServlet.java:
  369)
          at 
  org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
  511)
          at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1166)
          at
  com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlo 
  bUploadFilter.java:
  97)
          at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1157)
          at
  com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionF 
  ilter.java:
  35)
          at org.mortbay.jetty.servlet.ServletHandler
  $CachedChain.doFilter(ServletHandler.java:1157)
          at
  com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans 
  actionCleanupFilter.java:
  43)
          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
  

[appengine-java] Re: What is the best option for RPC (web services) on App engine?

2010-06-16 Thread dilbert
I posted a new bug report: http://bugs.caucho.com/view.php?id=4080
I would like to move further discussion about this issue to the proper
place:
http://groups.google.com/group/google-appengine-java/browse_thread/thread/c4fb4f414c425ca1
D.

On Jun 16, 12:12 am, Jeff Schnitzer j...@infohazard.org wrote:
 I would close the old issue and create a new one cut down to just the
 exception issue.

 *Are* there any serious RPC alternatives right now?  Sounds like
 gwt-syncproxy isn't quite ready for prime time (and makes me nervous
 since it's not using a published protocol), the *-WS stuff is a
 trainwreck, and *-RS is not really convenient as an RPC layer.  I
 would like alternatives.

 Jeff

 On Tue, Jun 15, 2010 at 2:41 PM, dilbert dilbert.elbo...@gmail.com wrote:
  At the time I thought the issues were connected since they threw the
  same exception so I posted them together. So should I post the issue
  with exceptions again on the Caucho bug tracker? If this issue is
  solved I would recommend Hessian as the best RPC mechanism for GAE at
  this time.
  Apologies to other readers for the offtopic with bugs.
  D.

  On Jun 15, 11:24 pm, Jeff Schnitzer j...@infohazard.org wrote:
  I think you did yourself a disservice by wrapping these two issues
  into a single message - it ends up being way too much text to read and
  otherwise eager volunteers just skip it.

  The first issue looks like you're not detaching your entities before
  serializing them.  This is a JDO issue.  I suggest dropping JDO and
  using something simpler like Objectify ;-)

  The issue with exceptions looks more serious.  This is something that
  will need to be fixed in Hessian (or your custom serializer).  If you
  cut down your issue to just this, you might get better results from
  Caucho.

  Jeff

  On Tue, Jun 15, 2010 at 1:55 PM, dilbert dilbert.elbo...@gmail.com wrote:
   Hi Jeff. I was hoping to hear from You since I saw that You solved
   some GAE issues on the hessian-interest list. I already posted the
   issue on the hessian-interest list here:
  http://maillist.caucho.com/pipermail/hessian-interest/2010-June/00090...
   I also posted several forum questions:
  http://forum.caucho.com/showthread.php?t=
  http://groups.google.com/group/google-appengine-java/browse_thread/th...
   And a few bug reports:
  http://bugs.caucho.com/view.php?id=4061
  http://code.google.com/p/googleappengine/issues/detail?id=3305
   The posts actually describe two issues one with arraylist
   serialization and the other with exception serialization. The posts
   also include test projects with code that reproduces the issues. I
   also managed to solve the issue today by using a custom serializer.
   Here is how. First the Serializer:

   public class ThrowableSerializer extends AbstractSerializer {
     �...@override
      public void writeObject(Object obj, AbstractHessianOutput out)
   throws IOException {
          if (obj != null) {
              final Class cl = obj.getClass();
              if (out.addRef(obj))
                  return;
              int ref = out.writeObjectBegin(cl.getName());
              Throwable tr = (Throwable) obj;
              ByteArrayOutputStream bos = new ByteArrayOutputStream();
              ObjectOutputStream oos = new ObjectOutputStream(bos);
              try {
                  oos.writeObject(tr);

                  if (ref  -1) {
                      out.writeString(value);
                      out.writeBytes(bos.toByteArray());
                      out.writeMapEnd();
                  } else {
                      if (ref == -1) {
                          out.writeInt(1);
                          out.writeString(value);
                          out.writeObjectBegin(cl.getName());
                      }
                      out.writeBytes(bos.toByteArray());
                  }
              } finally {
                  oos.close();
                  bos.close();
              }
          } else
              out.writeNull();
      }
   }

   The other class we need is the Deserializer:
   public class ThrowableDeserializer extends AbstractDeserializer {
      //private static final Logger l =
   Logger.getLogger(ThrowableDeserializer.class.getName());

     �...@override
      public Class getType() {
          return Throwable.class;
      }

     �...@override
      public Object readMap(AbstractHessianInput in) throws IOException
   {
          int ref = in.addRef(null);
          byte[] initValue = null;
          while (!in.isEnd()) {
              String key = in.readString();

              if (key.equals(value))
                  initValue = in.readBytes();
              else
                  in.readString();
          }

          in.readMapEnd();
          ByteArrayInputStream bis = new
   ByteArrayInputStream(initValue);
          ObjectInputStream ois = new ObjectInputStream(bis);
          try {
              Object value = ois.readObject();
              in.setRef(ref, 

[appengine-java] Memcache namespace - setNamespace() deprecated in 1.3.4

2010-06-16 Thread Vaclav Bartacek
In SDK 1.3.4 the method MemcacheService.setNamespace(String ns) was
deprecated. Instead of that one should use
MemcacheServiceFactory.getMemcacheService(String ns).

When using the new one, the name of the namespace is validated against
pattern, but this validation is not done when calling the old
(deprecated) method:

  String namespace = TEST:One;

  MemcacheService msOld = MemcacheServiceFactory.getMemcacheService();
  // deprecation warning by compiler, but OK at runtime:
  msOld.setNamespace( namespace );

  // no warning by compiler, but throws exception at runtime:
  MemcacheService msNew =
MemcacheServiceFactory.getMemcacheService( namespace );

The exception is:
  java.lang.IllegalArgumentException: Namespace 'TEST:One' does not
match pattern '[0-9A-Za-z._-]{0,100}'.

I think that this behaviour should be documented in low-level API at
least.
Thanks

Vaclav

-- 
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-j...@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: Intermittent Issue with Datastore Writes

2010-06-16 Thread shaz
Here is the code for reference. For background, there is a class
called OMRUser which is a user class, and there is Location3 class.
There is a one to many owned relationship between a user and locations

snippet of USER class:

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class OmrUser {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;

@Persistent
private User gaeuser;

@Persistent(mappedBy = omruser)
@Element(dependent = true)
private ListLocation3 userlocs;

@Persistent(mappedBy = omruser)
@Element(dependent = true)
private ListDriver userdrivers;

@Persistent
private String accounttype;



snippet of Location class:

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Location3 implements ComparableLocation3 {

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;

@Persistent
private OmrUser omruser;


snippet of servlet to save locations


   PersistenceManager pm = PMF.get().getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();

String select_query = select from  + OmrUser.class.getName();
Query query = pm.newQuery(select_query);
query.setFilter(gaeuser == paramAuthor);
query.declareParameters(java.lang.String paramAuthor);

ListOmrUser omruserquery = (ListOmrUser)
pm.newQuery(query).execute(user);

if(omruserquery.iterator().hasNext()) {
OmrUser thisomruser = 
omruserquery.iterator().next();
if(thisomruser.getNumlocs()MaxSaveLocs){
thisomruser.addSingleLoc(location);
location.setOmruser(thisomruser);
pm.makePersistent(location);
log.info(Adding Location to existing OMR 
User);
} else {
msg = You have exceeded the maximum 
number of locations you can
save, please delete a location first.;
log.info(FAIL - Exceed max num locs);
}
} else {
OmrUser newuser = new OmrUser(user, Basic);
newuser.addSingleLoc(location);
pm.makePersistent(newuser);
location.setOmruser(newuser);
log.info(Created new user  + 
newuser.getGaeuser().getEmail());
}
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}

On Jun 15, 9:39 pm, shaz ssh...@gmail.com wrote:
 Hi, I have a functioning app and recently have had intermittent
 problems writing to the datastore.   I did not make any relevant code
 changes, however in the last few days my attempts to write to the
 datastore sometimes work and sometimes don't.

 I am trying to save an object that is in a many to one relationship
 with an existing persisted parent.  So, the logic works like this:

                                         - Parent pulled from the
 datastore
                                         - Child created / instantiated
 using constructor

                                         - Parent.addSingleChild(child);    // 
 the addSingleChild method
 just adds the object argument to the collection of children

                                         - child.setParent(Parent);  // sets 
 the Parent object to the
 parent field

 I am using transactions as explained in the documentation ending with
 finally {if (tx.isActive()) {tx.rollback(); } }

 When the servlet is called, the parent is called from the datastore
 and the child object is created and added to the many to one mapping
 to the pre-existing parent.

 The child should automatically be persisted, since the parent is
 already persistent, and the child is added to the collection of
 children that map to the parent.   And it worked this way in the
 past.  However, to be sure, i did add a pm.makePersistent(child).
 Doesn't seem to help, still have the intermittent problem.

 Any suggestions would be appreciated, and if you need to see the
 actual code I can post.  Thanks

 appid is omrtest

-- 
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-j...@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] SAX Parser not working

2010-06-16 Thread Maulik Gordhandas
Dear All,

I am taking an RSS file as an inputstream and trying to parse it using
Sax Parser. I want the title  the description to be stored in an
array list.

The code is working perfectly as a Java Application but when
implemented in App Engine it doesn't give me the result.
The Code for the same is as below :

 parser.parse(inStream);
out.println(handler.getList().size()); //Handler is an
object of NewsHandler which extends DefaultHandler
for(int i = 1 ; i=handler.list.size(); i++)
{
out.println(i);
out.println(handler.list.get(i).getDescription());
}

Please help.

Thanks!!

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-j...@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] JSP compilation gets stuck with simple Spring Roo project with dummy.jsp

2010-06-16 Thread Tomi Laurell
I created project with Spring Roo:

project --topLevelPackage my.tryouts
persistence setup --provider DATANUCLEUS --database GOOGLE_APP_ENGINE
entity --class ~.domain.MyEntity
field string --fieldName name
controller all --package ~.web
perform eclipse

No I added empty dummy.jsp to src\main\webapp\WEB-INF\views to make
google app engine to compile jspx-files in that directory.

mvn clean gae:deploy

This gives me:
...
[INFO] Webapp assembled in [682 msecs]
[INFO] Building war: C:\Users\Tomi\workspace\springRoo\last\target
\lauber-0.1.0-SNAPSHOT.war
[INFO] [gae:deploy {execution: default-cli}]
[INFO] Updating Google App Engine Server...

There is a new version of the SDK available.
---
Latest SDK:
Release: 1.3.4
Timestamp: Sat May 15 00:26:11 EEST 2010
API versions: [1.0]

---
Your SDK:
Release: 1.3.2
Timestamp: Wed Mar 17 21:19:29 EET 2010
API versions: [1.0]

---
Please visit http://code.google.com/appengine for the latest SDK.

Reading application configuration data...
Jun 16, 2010 10:13:49 AM
com.google.apphosting.utils.config.AppEngineWebXmlReader
readAppEngineWebXml
INFO: Successfully processed C:/Users/Tomi/workspace/springRoo/last/
target/lauber-0.1.0-SNAPSHOT\WEB-INF/appengine-web.xml
Jun 16, 2010 10:13:49 AM
com.google.apphosting.utils.config.AbstractConfigXmlReader
readConfigXml
INFO: Successfully processed C:/Users/Tomi/workspace/springRoo/last/
target/lauber-0.1.0-SNAPSHOT\WEB-INF/web.xml
Beginning server interaction for laubertea...
0% Creating staging directory
5% Scanning for jsp files.
8% Compiling jsp files.

And I see this jsp compilation phase for hours.

To make sure that the older SDK-version does not interfere compilation
I deployed this with appcfg.cmd update of SDK 1.3.4. Still the same
result.

Spring Roo generated JSP-files take advantage of custom taglibs
following way:
xmlns:page=urn:jsptagdir:/WEB-INF/tags/form

When I remove all the references to these custom taglibs the deploying
will get message:

2010-06-16 10:17:20,402 [main] ERROR DataNucleus.Plugin - Bundle
org.datanucleus.store.appengine requires org.datanucleus version
[1.0.4, 1.1.5.f
inal) but the resolved bundle has version 1.0.7.final which is
outside the expected range.

However jsp compilation works without tagdir references.

How can I get this working with custom tagdirs? I have tested to set
used Java SDK excplicitely in appcfg.cmd and copied Java SDK tools.jar
to appengine-java-sdk-1.3.4\lib\shared, but this does not have any
effect.





-- 
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-j...@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] Prerelease SDK 1.3.5 is out!

2010-06-16 Thread Ikai L (Google)
Hey developers!

We've release the prerelease SDK for 1.3.5. Get it here:

http://code.google.com/p/googleappengine/downloads/list

If you want to try out new features locally before they go live, here's your
chance. We welcome any feedback you have. Release notes for Java are below:

Version 1.3.5
=
- Ability to configure the Task Queue storage limit with the
  total-storage-limit field in the queue.xml file.
- Task Queues now support up to 50 qps per queue, up from 50 qps per app.
- Developers can programmatically access Blobs with BlobstoreInputStream,
which
  provides an InputStream view of a blob in Blobstore
- Content-range headers for Blobs are supported.
- Bulkloader transform helpers for lists and hierarchical keys were added.
- Remote API commands can be sent over HTTPS or HTTP.
- Admin Console logs now include information on request time latency.
- Fixed an issue where requesting /appstats would not properly direct to
  /appstats/.
- Fixed an issue with inconsistent URL mappings between the SDK and
production.
http://code.google.com/p/googleappengine/issues/detail?id=2598


-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
Blog: http://googleappengine.blogspot.com
Twitter: http://twitter.com/app_engine
Reddit: http://www.reddit.com/r/appengine

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-j...@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: GAE commercial use!

2010-06-16 Thread Houston startup coder
Check this out:

http://code.google.com/appengine/business


Stephen



On Jun 16, 3:07 am, Muhammad Ijaz Khan aija...@gmail.com wrote:
 Yes, I have started reading it now, it looks good :) thanks.

 Any comment on commercial grade system deployment using appengine for java?

 On Wed, Jun 16, 2010 at 6:33 AM, Didier Durand durand.did...@gmail.comwrote:



  Hi,

  Go for this book

 http://www.amazon.com/Programming-Google-App-Engine-Infrastructure/dp...

  Great (written by a googler) especially on datastore
  didier

  On Jun 15, 10:42 am, Muhammad Ijaz Khan aija...@gmail.com wrote:
   Hi,

   Is there a commercial big sized service running on appengine platform? It
   will be highly appreciable if someone can link to a book for google
   appengine for java too. Thanks.

   regards,
   Ijaz

  --
  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-j...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B 
  unsubscr...@googlegroups.com
  .
  For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-j...@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: GAE deployments high rate of failures

2010-06-16 Thread Jerome
Hi Don,

Now that is a good incentive to upgrade :-) (we are still on 1.3.2
indeed).

Jerome

On Jun 16, 5:18 pm, Don Schwarz schwa...@google.com wrote:
 Try upgrading to the 1.3.4 SDK.

 On Wed, Jun 16, 2010 at 10:14 AM, Jerome jerome.mou...@gmail.com wrote:
  Same here, for the past few weeks, deploying our application to GAE
  often take 5 or more attempts (we are very happy when we can deploy on
  the 2nd try).

  The issues we are getting rotate between:
  - failure after Will check again in 128 seconds
  - a message that we have too many versions (even though we have been
  keeping our versions to 3-5 these past few weeks)
  - a 500 on the deployment

  Is this a general issue acknowledged by Google, or is there something
  to be tweaked on our app settings by Google?

  Jerome

  On Jun 11, 10:23 am, Miroslav Genov mgenov.j...@gmail.com wrote:
   Still encountering the same problem in the last 4-5 days. I don't know
   whether this is connected with the last datastore outage, but it's
   really annoying that I must wait 15 minutes to upload a new version.

   40% Uploading 0 files.
   52% Initializing precompilation...
   90% Deploying new version.
   95% Will check again in 1 seconds
   98% Will check again in 2 seconds
   99% Will check again in 4 seconds
   99% Will check again in 8 seconds
   99% Will check again in 16 seconds
   99% Will check again in 32 seconds
   99% Will check again in 64 seconds
   99% Will check again in 128 seconds
   99% Rolling back the update.

   Regards,
      Miroslav

   On 06/02/2010 10:53 PM, Miroslav Genov wrote:

Today all day I get the same error when trying to upload an updated
version of my application. I try to remove one existing version
(currently I have 5 version of my app) but the administrative panel is
failing with the following error:  A server error has occurred..

Any idea what is causing it ?

Also I wanna mention that the upload of my application is really slow
and I have to wait several minutes to upload only 1 file change.

Regards,
  Miroslav

On 05/06/2010 03:20 PM, Tim Yates wrote:
Hiya!  For the past 3 hours, been trying to update my app engine java
instance, but have been getting the error:

Error posting to URL:
 https://appengine.google.com/api/appversion/deploy?app_id=check-email...
403 Forbidden

Too Many Versions (403)
The application already has the maximum number of versions.

I see on the system status that things are under investigation

   http://code.google.com/status/appengine/

Is this one of the things being investigated?

Tim

PS:  I only have a single version deployed, and this version is set to
be the default

  --
  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-j...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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] Prerelease SDK 1.3.5 is out!

2010-06-16 Thread Andrés Cerezo
Why are not included all the demos of the svn? For example:
autoshoppehttp://www.google.com/codesearch/p?hl=es#Qx8E-7HUBTk/trunk/java/demos/autoshoppe/q=junit%20package:http://googleappengine%5C.googlecode%5C.com
.

Thanks.

2010/6/16 Ikai L (Google) ika...@google.com

 Hey developers!

 We've release the prerelease SDK for 1.3.5. Get it here:

 http://code.google.com/p/googleappengine/downloads/list

 If you want to try out new features locally before they go live, here's
 your chance. We welcome any feedback you have. Release notes for Java are
 below:

 Version 1.3.5
 =
 - Ability to configure the Task Queue storage limit with the
   total-storage-limit field in the queue.xml file.
 - Task Queues now support up to 50 qps per queue, up from 50 qps per app.
 - Developers can programmatically access Blobs with BlobstoreInputStream,
 which
   provides an InputStream view of a blob in Blobstore
 - Content-range headers for Blobs are supported.
 - Bulkloader transform helpers for lists and hierarchical keys were added.
 - Remote API commands can be sent over HTTPS or HTTP.
 - Admin Console logs now include information on request time latency.
 - Fixed an issue where requesting /appstats would not properly direct to
   /appstats/.
 - Fixed an issue with inconsistent URL mappings between the SDK and
 production.
 http://code.google.com/p/googleappengine/issues/detail?id=2598


 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 Blog: http://googleappengine.blogspot.com
 Twitter: http://twitter.com/app_engine
 Reddit: http://www.reddit.com/r/appengine

  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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] AppEngineConfigException: XML error validating on Uploading files using Deploy App Enginer Project

2010-06-16 Thread Nick
Hi,

What steps will reproduce the problem?
1.   On my local machine,
  I have a text ssma_stud.txt under folder WEB-INF/
ssma_std.txt.
  I read this text file, validate data. Its working fine.

2.  After successful testing on local machine,
 while deploying it using Deploy App Enginer Project , plug-in
on
 eclipse, I got following error


What is the expected output? What do you see instead?

Here is the error logs...

com.google.apphosting.utils.config.AppEngineConfigException: XML error
validating C:\NC\Eclipse_Proj\LGDesign\war\WEB-INF\appengine-web.xml
against C:\eclipse_Galileo\plugins
\com.google.appengine.eclipse.sdkbundle.
1.3.4_1.3.4.v201005212032\appengine-java-sdk-1.3.4\docs\appengine-
web.xsd
at
com.google.appengine.tools.admin.Application.validateXml(Application.java:
336)
at
com.google.appengine.tools.admin.Application.init(Application.java:
89)
at
com.google.appengine.tools.admin.Application.readApplication(Application.java:
127)
at
com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.createAppAdmin(AppEngineBridgeImpl.java:
204)
at
com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:
265)
at
com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:
145)
at
org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:
38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a:
Invalid content was found starting with element 'system-properties'.
One of '{http://appengine.google.com/ns/1.0:static-files, http://
appengine.google.com/ns/1.0:resource-files, http://
appengine.google.com/ns/1.0:env-variables, http://
appengine.google.com/ns/1.0:ssl-enabled, http://
appengine.google.com/
ns/1.0:sessions-enabled, http://appengine.google.com/ns/1.0:user-
permissions, http://appengine.google.com/ns/1.0:public-root,
http://
appengine.google.com/ns/1.0:inbound-services, http://
appengine.google.com/ns/1.0:precompilation-enabled, http://
appengine.google.com/ns/1.0:admin-console}' is expected.
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:
195)
at
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:
131)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:
384)
at
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:
318)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator
$XSIErrorReporter.reportError(XMLSchemaValidator.java:410)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:
3165)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:
1777)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:
685)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:
400)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl
$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2747)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:
648)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:
140)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:
510)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:
807)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:
737)
at
com.sun.org.apache.xerces.internal.jaxp.validation.StreamValidatorHelper.validate(StreamValidatorHelper.java:
144)
at
com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:
107)
at javax.xml.validation.Validator.validate(Validator.java:127)
at
com.google.appengine.tools.admin.Application.validateXml(Application.java:
333)
... 7 more




What version of the product are you using? On what operating system?

 -  App Engine SDK-1.3.4,
 -  whereas same application was previously uploaded to
 websteeldes...@gmail.com with SDK-1.3.2 ( older
application was without reading text file)



Additional information:
   Mr Ikai from google help me read text filem where he asked to move
text file from folder war to WEB-INF
(Re: [appengine-java] Need help on
java.security.AccessControlException: access denied)


-- 
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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For 

[appengine-java] Re: Prerelease SDK 1.3.5 is out!

2010-06-16 Thread Andrei
What is Remote API commands?

On Jun 16, 2:06 pm, Ikai L (Google) ika...@google.com wrote:
 Hey developers!
What 
 We've release the prerelease SDK for 1.3.5. Get it here:

 http://code.google.com/p/googleappengine/downloads/list

 If you want to try out new features locally before they go live, here's your
 chance. We welcome any feedback you have. Release notes for Java are below:

 Version 1.3.5
 =
 - Ability to configure the Task Queue storage limit with the
   total-storage-limit field in the queue.xml file.
 - Task Queues now support up to 50 qps per queue, up from 50 qps per app.
 - Developers can programmatically access Blobs with BlobstoreInputStream,
 which
   provides an InputStream view of a blob in Blobstore
 - Content-range headers for Blobs are supported.
 - Bulkloader transform helpers for lists and hierarchical keys were added.
 - Remote API commands can be sent over HTTPS or HTTP.
 - Admin Console logs now include information on request time latency.
 - Fixed an issue where requesting /appstats would not properly direct to
   /appstats/.
 - Fixed an issue with inconsistent URL mappings between the SDK and
 production.
    http://code.google.com/p/googleappengine/issues/detail?id=2598

 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 Blog:http://googleappengine.blogspot.com
 Twitter:http://twitter.com/app_engine
 Reddit:http://www.reddit.com/r/appengine

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-j...@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: GAE deployments high rate of failures

2010-06-16 Thread Tristan
had the same problem... all deployment issues went away with 1.3.4
(and you can now have 100 versions per app - someone said ... neat)

On Jun 16, 2:13 pm, Jerome jerome.mou...@gmail.com wrote:
 Hi Don,

 Now that is a good incentive to upgrade :-) (we are still on 1.3.2
 indeed).

 Jerome

 On Jun 16, 5:18 pm, Don Schwarz schwa...@google.com wrote:



  Try upgrading to the 1.3.4 SDK.

  On Wed, Jun 16, 2010 at 10:14 AM, Jerome jerome.mou...@gmail.com wrote:
   Same here, for the past few weeks, deploying our application to GAE
   often take 5 or more attempts (we are very happy when we can deploy on
   the 2nd try).

   The issues we are getting rotate between:
   - failure after Will check again in 128 seconds
   - a message that we have too many versions (even though we have been
   keeping our versions to 3-5 these past few weeks)
   - a 500 on the deployment

   Is this a general issue acknowledged by Google, or is there something
   to be tweaked on our app settings by Google?

   Jerome

   On Jun 11, 10:23 am, Miroslav Genov mgenov.j...@gmail.com wrote:
Still encountering the same problem in the last 4-5 days. I don't know
whether this is connected with the last datastore outage, but it's
really annoying that I must wait 15 minutes to upload a new version.

40% Uploading 0 files.
52% Initializing precompilation...
90% Deploying new version.
95% Will check again in 1 seconds
98% Will check again in 2 seconds
99% Will check again in 4 seconds
99% Will check again in 8 seconds
99% Will check again in 16 seconds
99% Will check again in 32 seconds
99% Will check again in 64 seconds
99% Will check again in 128 seconds
99% Rolling back the update.

Regards,
   Miroslav

On 06/02/2010 10:53 PM, Miroslav Genov wrote:

 Today all day I get the same error when trying to upload an updated
 version of my application. I try to remove one existing version
 (currently I have 5 version of my app) but the administrative panel is
 failing with the following error:  A server error has occurred..

 Any idea what is causing it ?

 Also I wanna mention that the upload of my application is really slow
 and I have to wait several minutes to upload only 1 file change.

 Regards,
   Miroslav

 On 05/06/2010 03:20 PM, Tim Yates wrote:
 Hiya!  For the past 3 hours, been trying to update my app engine java
 instance, but have been getting the error:

 Error posting to URL:
  https://appengine.google.com/api/appversion/deploy?app_id=check-email...
 403 Forbidden

 Too Many Versions (403)
 The application already has the maximum number of versions.

 I see on the system status that things are under investigation

http://code.google.com/status/appengine/

 Is this one of the things being investigated?

 Tim

 PS:  I only have a single version deployed, and this version is set 
 to
 be the default

   --
   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-j...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B
unsubscr...@googlegroups.com
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine-java?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-j...@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] Unable to URL Fetch Google chart

2010-06-16 Thread brianl
A URL Fetch of a Google chart fails.   Attempting w/ the low level API
in the development environment...

String chart = http://chart.apis.google.com/chart?chs=250x100chd=t:
60,40cht=p3chl=Hello|World;
FetchOptions options =
FetchOptions.Builder.disallowTruncate().followRedirects();
HTTPRequest request = new HTTPRequest(new URL(chart), HTTPMethod.GET,
options);
HTTPResponse response =
URLFetchServiceFactory.getURLFetchService().fetch(request);

 [java] java.lang.IllegalArgumentException: Invalid uri 'http://
chart.apis.google.com/chart?chs=250x100chd=t:60,40cht=p3chl=Hello|
World': Invalid query
 [java] at
org.apache.commons.httpclient.HttpMethodBase.init(Unknown Source)
 [java] at
org.apache.commons.httpclient.methods.GetMethod.init(Unknown Source)


What am I'm missing?   Or perhaps this is a known issue or
limitation?

thanks!

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [google-appengine] Re: NeedIndexException - in production server

2010-06-16 Thread Alfred Fuller
There isn't a solid time line for this, but it's on my short list ;-) (which
actually doesn't seem to be that short as of late).

Something to keep in mind though: Removing these limits won't make your
query run faster. So it's a trade off between write vs read latency and cost
(although adding more indexes should only affect write cost) and most web
applications are read heavy. So you may still want to have these indexes
once the limit is removed. When the limit is removed the only real
difference will be the lack of an exception to force your hand (instead you
would have to rely on appstats to figure out which queries to optimize).
Once the limit is removed a really pathological query could have your users
waiting up to 30 seconds for results (which we think is better than no
results at all).

On Tue, Jun 15, 2010 at 1:06 AM, Ravi msr...@gmail.com wrote:

 Hi Alfred Fuller,

 Thanks for your information, videos gave me lot of information.
 As per your suggestion I have added few composite index to avoid this
 exception still index are getting built.
 As we get exception on some queries, will add those to composite
 index. But this will eat my lot of CPU quota.
 Could you please tell me when will this restriction on query will be
 removed because we will plan our product enhancement accordingly.

 Thanks,
 Ravi

 On Jun 15, 4:57 am, Alfred Fuller 
 arfuller+appeng...@google.comarfuller%2bappeng...@google.com
 
 wrote:
  Yes, you can create composite indexes that contain columns that are often
  queried together. The merge join algorithm will use these indexes to make
  queries that include those specific columns more efficient.  Or if you
 see
  this error more often on some queries than others, create composite
 indexes
  for those queries (or the common columns between those queries)
 
  http://www.youtube.com/watch?v=ofhEyDBpngMat time 30:30 gives an example
 of
  this.
 
 
 
  On Mon, Jun 14, 2010 at 7:58 AM, Ravi msr...@gmail.com wrote:
   Hi Geoffrey Spear,
   Thanks for your clarification.
   We suspected the same reason. Last few days back our data was less
   around 20,000 rows there was no problem.
   Only when more data is added we are facing this problem.
 
   Our table is too large which is around 50 fields/columns and around
   50,000 rows. Query filter is also dynamically generated (user selects
   few fields and submits).
   Our servlet will query database depending on the user selected fields.
   In this scenario we dont know which fields will be selected by user
   and certainly I cant have composite index for 50 combinations.
 
   Is there any work around for this problem??
 
   Thanks,
   Ravi
 
   On Jun 14, 5:59 pm, Geoffrey Spear geoffsp...@gmail.com wrote:
It's not a problem with indexing, it's a problem with your data.  If
you don't add composite indexes, the system will attempt to serve
queries that contain only equality filters using a merge-join
strategy, which is less efficient than a simple index lookup (with
 the
benefit of not needing to add the indexes, which use space and write-
time CPU).  If your data becomes such that the query can not be done
efficiently with the merge-join anymore, you'll start to see that
exception and you'll need to add a composite index.
 
On Jun 12, 2:00 am, Ravi msr...@gmail.com wrote:
 
 Hi Google Team,
 
 All these days our application was working fine and we have not
 changed any datastore index or codebase of our application.
 Everyday we upload new set of data to our application. Today also
 we
 have uploaded new set of data but today after uploading the data we
 are getting very strange exception as below:
 
 com.google.appengine.api.datastore.DatastoreNeedIndexException: The
 built-in indices are not efficient enough for this query and your
 data. Please add a composite index for this query..  An index is
 missing but we are unable to tell you which one due to a bug in the
 App Engine SDK.  If your query only contains equality filters you
 most
 likely need a composite index on all the properties referenced in
 those filters.
 
 We are worried after seeing the above exception, we dont have any
 complex queries, all the queries contain equals to filter (==).
 We tested the same set of data and query in our development
 environment, it is working fine.
 For testing purpose, we uploaded the same set of data to our other
 testing appengine applcation, it is working fine there also.
 
 Only in our production system, we are getting
 DatastoreNeedIndexException.
 
 Could you please confirm is there any problem with the datastore
 indexing.
 Data stored in our production datastore is more than  0.5 GB, will
 thee be any problem in indexing if there is high amount of data.
 
 Application ID: bigpaisa2.appspot.com
 Latest application version:
  http://061102.latest.bigpaisa2.appspot.com
 -   In this 

[google-appengine] Re: OpenId : unable to retrieve record with openid User

2010-06-16 Thread Roberto
Well, I was able to solve it by myself: did a SELECT __key__ query,
fetched the last entity and deleted it.

My undertanding is that the problem was generated by creating and
storing a User object created with a federated_identity with no email
address (blogger.com, in that specific case).
The application must verify that this information is passed by the
federated_provider and if not, ask the user to provide it via a web
form or do not attempt to store the object.

Thanks
Roberto

On 16 Giu, 01:05, Roberto roberto.previt...@gmail.com wrote:
 Sorry for the repost, but I am totally stuck.
 There is no way of removing the corrupted entity.
 App Id: test-pappa-mi
 Entity: Commissario (corrupted entity should be the last created of
 its kind)

  this is the stack trace:
 Traceback (most recent call last):
   File /base/python_runtime/python_lib/versions/1/google/appengine/
 ext/webapp/__init__.py, line 511, in __call__
     handler.get(*groups)
   File /base/data/home/apps/test-pappa-mi/1.342696057774496084/py/
 admin.py, line 419, in get
     for commissario in Commissario.all():
   File /base/python_runtime/python_lib/versions/1/google/appengine/
 ext/db/__init__.py, line 1816, in next
     return self.__model_class.from_entity(self.__iterator.next())
   File /base/python_runtime/python_lib/versions/1/google/appengine/
 api/datastore.py, line 2082, in next
     self.__buffer = self._Next(self.__batch_size)
   File /base/python_runtime/python_lib/versions/1/google/appengine/
 api/datastore.py, line 2028, in _Next
     return self._ProcessQueryResult(result)
   File /base/python_runtime/python_lib/versions/1/google/appengine/
 api/datastore.py, line 2058, in _ProcessQueryResult
     return [Entity._FromPb(e) for e in result.result_list()]
   File /base/python_runtime/python_lib/versions/1/google/appengine/
 api/datastore.py, line 760, in _FromPb
     value = datastore_types.FromPropertyPb(prop)
   File /base/python_runtime/python_lib/versions/1/google/appengine/
 api/datastore_types.py, line 1597, in FromPropertyPb
     federated_identity=federated_identity)
   File /base/python_runtime/python_lib/versions/1/google/appengine/
 api/users.py, line 104, in __init__
     raise UserNotFoundError
 UserNotFoundError

 Thanks
 Roberto

 On 15 Giu, 12:10, Nick Johnson (Google) nick.john...@google.com
 wrote:



  Hi Roberto,

  What is your App ID?

  -Nick Johnson

  On Tue, Jun 15, 2010 at 11:04 AM, Roberto 
  roberto.previt...@gmail.comwrote:

   Hi all,

   I have a serious problem with an application using OpenId
   autentication.

   I tested the app using using blogger.com as an openid provider and
   stored the User object in the Datastore, in a UserProfile table.
   Now it is not possible to retrieve the entity containing that User,
   raising UserNotFoundError.

   Even the remote Datastore Viewer crashes with the following message
   when querying the entity:
   Server Error
   A server error has occurred.

   Any help is appreciated.

   Thanks
   Roberto

   --
   You received this message because you are subscribed to the Google Groups
   Google App Engine group.
   To post to this group, send email to google-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.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
  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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: @Google: App Engine / GData questions

2010-06-16 Thread dflorey
Thanks a lot for the info. I've moved my question to the GData group.
UUID would be a very good approach, right now I get back the UID back
from the call (or not if it times out...).

On 16 Jun., 01:42, Ikai L (Google) ika...@google.com wrote:
 Corporate applications run on App Engine. Here's a session from IO where our
 Corporate Engineering team discusses their 
 experiences:http://www.youtube.com/watch?v=IzxdL4I0xTg

 As for your question about idempotence: There may be, but you'll likely get
 a better answer for this question from the GData team:

 http://groups.google.com/group/google-help-dataapi

 Interesting that contact creation isn't idempotent. If it doesn't exist
 already, for your use case, at least, it could be a good GData feature
 request to add a UUID to write operations such that after a successful
 write, writes become invalid for any subsequent call tagged with that UUID.





 On Tue, Jun 15, 2010 at 2:32 PM, dflorey daniel.flo...@gmail.com wrote:
  Hi there,
  two quick questions:
  - Are there any Google apps (like calendar, contacts etc.) running on
  app engine?
  - Are there any plans to let GData services participate in a
  transaction?

  Right now it's almost impossible to create idempotent tasks when using
  certain GData services.
  Example: When creating a contact I frequently get timeout exceptions
  from the Google contact servers, so I have no clue whether a contact
  has been created or not. When the task gets executed multiple times
  (for whatever reason), I end up with duplicated contacts.

  --
  You received this message because you are subscribed to the Google Groups
  Google App Engine group.
  To post to this group, send email to google-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib 
  e...@googlegroups.com
  .
  For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.

 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 Blog:http://googleappengine.blogspot.com
 Twitter:http://twitter.com/app_engine
 Reddit:http://www.reddit.com/r/appengine

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: How do I model this more efficiently?

2010-06-16 Thread Nick Johnson (Google)
No - the MessageIndex has a list of subscribers, so you only need to create
one for every, say, 500 or 1000 subscribers.

-Nick Johnson

2010/6/15 Harshal p.hars...@gmail.com

 So essentially you are suggesting to create new MessageIndex per Message
 per subscriber. In case we happen to have 1 subscribers, for every
 message that is posted we would create 1 MessageIndex entities. Is that
 what you suggesting?



 2010/6/16 Alkis Evlogimenos ('Αλκης Ευλογημένος) evlogime...@gmail.com

 Yes you can scale further. I think it is mentioned in the talk as well.

 Make MessageIndex a child of Message.
 Add multiple MessageIndex entities per Message.

 What I would do is create a new MessageIndex per Message on each
 subscriber. Then a cron job would periodically compact the MessageIndexes to
 maximize the number of subscribers in each of them.

 - alkis


 On Tue, Jun 15, 2010 at 10:51 PM, Harshal p.hars...@gmail.com wrote:

 Thanks for that info. I had seen it before posting here. The way
 suggested there is,

 class Message(db.Model):

   sender = db.StringProperty()

   body = db.TextProperty()

 class MessageIndex(db.Model):

   receivers = db.StringListProperty()

 If this is the best we can do, then aren't we limiting no.
 of receivers in list to maximum 5000? so we improved from my original model
 where only 30 was possible to 5000. Is there a way to scale up further? or
 are we hitting the glass ceiling  ?

 Another thing that comes to mind is, every time a new message is created
 do we need to create 5000 (assuming 5000 entries in receivers list) new
 instances in form of children of new Message entity?



 On Wed, Jun 16, 2010 at 1:01 AM, Edward Smith edwardmsm...@gmail.comwrote:

 Check out this talk from IO 2009 - I believe it addresses your problem
 using a twitter-like example.

 --
 You received this message because you are subscribed to the Google
 Groups Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.




-- 
Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. ::
Registered in Dublin, Ireland, Registration Number: 368047
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Entity group question

2010-06-16 Thread Nick Johnson (Google)
On Tue, Jun 15, 2010 at 8:31 PM, Chris Killpack killp...@gmail.com wrote:

 Hi Nick,

 I'm a little confused - I pass in the parent instance when I create a
 new AnalyticsCounter inside the transaction closure, so it should be
 part of the same group. See the 'if counter is None' path in my code
 snippet.  Did I miss something? I removed the transaction and using
 the datastore viewer and logging output, verified that the created
 entity's parent key matched the parent key I was creating. I'll try
 and post some of this to the thread later.


Your sample code reads:

  self._parent_key = db.Key.from_path('AnalyticsCounter', 'virtual_root')
  self._parent_instance = AnalyticsCounter.get_or_insert(key_name='root')

It looks like you're trying to modify the parent of an entity after it's
created here. This isn't possible, and in any case you shouldn't be directly
modifying internal properties of the model - nor should you be reading them
in the transaction - use self.parent() instead.

If this isn't what you're trying to do, can you provide  your exact
problematic code, including where you create the entities?

-Nick Johnson


 Thanks for the QPS limit advice - I only plan on updating  10
 entities every hour, so I'm hoping this isn't an issue. Technically I
 don't really need to use a transaction, so I can always remove it, but
 I'm stubborn dammit and this should work :)

 Chris

 On Jun 15, 1:15 am, Nick Johnson (Google) nick.john...@google.com
 wrote:
  Hi Chris,
 
  You need to specify the parent at creation time. There's no way to modify
  the parent of an entity after it's created.
 
  Bear in mind that updates to an entity group are limited to roughly 1QPS
 -
  so putting all your entities in one entity group is rarely a good idea.
 
  -Nick Johnson
 
 
 
 
 
  On Tue, Jun 15, 2010 at 4:12 AM, Chris Killpack killp...@gmail.com
 wrote:
   I have a set of entities all of the same kind, AnalyticsCounter, in my
   datastore. For correctness I would like to update many of these
 entities in
   a single transaction, which requires they are all in the same entity
 group.
   In my case I don't have a hierarchy, instead I just have a set of
 entities.
   My understanding is that I need to parent all of them to another
   AnalyticsCounter entity to achieve this. However when I tried this, I
   received the fateful Cannot operate on different entity groups in a
   transaction error..
 
   I created the parent entity in my constructor, and then applied the
 parent
   when I created an instance of AnalyticsCounter, but the transaction
 fails on
   the put method. Interestingly the different entity groups lists both
 the
   newly created instance and the parent instance. I tried creating the
 parent
   two different ways, first just creating a key:
   self._parent_key = db.Key.from_path('AnalyticsCounter', 'virtual_root')
   and then, creating an actual instance.
   self._parent_instance = AnalyticsCounter.get_or_insert(key_name='root')
   but met the same failure on both cases.
 
   Briefly, my transaction looks like this:
   counters = [list of key_names]
   def txn():
 counters = AnalyticsCounter.get_by_key_name(counters)
 for counter in counters:
   if counter is None:
 counter = AnalyticsCounter(parent=self._parent_instance,
   key_name='blah')
 counter.foo = 'bar'
   counter.put()  # - dies here
   db.run_in_transaction(txn)
 
   Can someone shed some light on what I am doing wrong? Thanks,
 
   Chris
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google App Engine group.
   To post to this group, send email to google-appengine@googlegroups.com
 .
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib
 e...@googlegroups.com
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine?hl=en.
 
  --
  Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd.
 ::
  Registered in Dublin, Ireland, Registration Number: 368047
  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-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.




-- 
Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. ::
Registered in Dublin, Ireland, Registration Number: 368047
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 

Re: [google-appengine] Re: How do I model this more efficiently?

2010-06-16 Thread Harshal
Ah my bad. Somehow overlooked the fact that its StringListProperty.
Thanks Nick, appreciate your help.



2010/6/16 Nick Johnson (Google) nick.john...@google.com

 No - the MessageIndex has a list of subscribers, so you only need to create
 one for every, say, 500 or 1000 subscribers.

 -Nick Johnson

 2010/6/15 Harshal p.hars...@gmail.com

 So essentially you are suggesting to create new MessageIndex per Message
 per subscriber. In case we happen to have 1 subscribers, for every
 message that is posted we would create 1 MessageIndex entities. Is that
 what you suggesting?



 2010/6/16 Alkis Evlogimenos ('Αλκης Ευλογημένος) evlogime...@gmail.com

 Yes you can scale further. I think it is mentioned in the talk as well.

 Make MessageIndex a child of Message.
 Add multiple MessageIndex entities per Message.

 What I would do is create a new MessageIndex per Message on each
 subscriber. Then a cron job would periodically compact the MessageIndexes to
 maximize the number of subscribers in each of them.

 - alkis


 On Tue, Jun 15, 2010 at 10:51 PM, Harshal p.hars...@gmail.com wrote:

 Thanks for that info. I had seen it before posting here. The way
 suggested there is,

 class Message(db.Model):

   sender = db.StringProperty()

   body = db.TextProperty()

 class MessageIndex(db.Model):

   receivers = db.StringListProperty()

 If this is the best we can do, then aren't we limiting no.
 of receivers in list to maximum 5000? so we improved from my original model
 where only 30 was possible to 5000. Is there a way to scale up further? or
 are we hitting the glass ceiling  ?

 Another thing that comes to mind is, every time a new message is created
 do we need to create 5000 (assuming 5000 entries in receivers list) new
 instances in form of children of new Message entity?



 On Wed, Jun 16, 2010 at 1:01 AM, Edward Smith 
 edwardmsm...@gmail.comwrote:

 Check out this talk from IO 2009 - I believe it addresses your problem
 using a twitter-like example.

 --
 You received this message because you are subscribed to the Google
 Groups Google App Engine group.
 To post to this group, send email to google-appengine@googlegroups.com
 .
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


  --
 You received this message because you are subscribed to the Google
 Groups Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.




 --
 Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd.
 :: Registered in Dublin, Ireland, Registration Number: 368047
 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-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Best practice? (to lock or not to lock)

2010-06-16 Thread Nick Johnson (Google)
Hi,

On Tue, Jun 15, 2010 at 7:09 PM, coltsith conla...@gmail.com wrote:

 Hi Nick, thanks for responding.

 I understand. I think in that case I'll show an error like This game
 has been filled already, try refreshing to user B.


I would suggest simply telling them that the game has been filled, then
automatically refreshing - or at least removing the filled game - for them
when they click okay.


 However I'd still like to lock part of my code, just to avoid race
 conditions and such. Could you point me in the right direction? Should
 I be looking into locks or transactions when read/writing the game
 list?


There's no reason to use locks - simply use the built in support for
transactions.
http://code.google.com/appengine/docs/python/datastore/transactions.html

-Nick Johnson



 Thanks

 On Jun 15, 5:49 pm, Nick Johnson (Google) nick.john...@google.com
 wrote:
  Hi,
 
  Locking won't help you here - consider the situation where user B fetches
  the list of games, and then user A 'takes' a game - say, half a second
  later, after user B's call completes, but before his browser finishes
  displaying it - you'll be left in the same situation.
 
  No matter how you handle things, there's always going to exist the
  possibility that immediately after you return a result set to user B,
  another user does something that makes that result set out of date.
 
  -Nick Johnson
 
 
 
 
 
  On Tue, Jun 15, 2010 at 3:48 PM, coltsith conla...@gmail.com wrote:
   Hi, I'm writing a simple game server where players can create games
   and browse games. I've come across the following dilemma though and
   want to see if my solution is a good idea. The dilemma:
 
   User A calls joinGameAndRemoveItFromList().
 
   User B calls fetchAvailableGamesInList() at the same time.
 
   I'm concerned that User B may fetch the game that User A is joining
   and removing from list (since it's no longer available)
 
   My solution would be to lock the game list while User A is making his
   call. That way User B would wait until User A is done with the list.
 
   However, I realize that this could be very slow. Say there's thousands
   of players all wanting to browse the available games (hey it could
   happen!) and they shouldn't all have to wait for A to finish,
   especially if A is slow for some reason.
 
   Does anyone have any advice on if this is the right way to go, or if
   there's a better solution?
 
   Thanks!
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google App Engine group.
   To post to this group, send email to google-appengine@googlegroups.com
 .
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.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
  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-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.




-- 
Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. ::
Registered in Dublin, Ireland, Registration Number: 368047
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: https://appengine.google.com

2010-06-16 Thread Geoffrey Spear


On Jun 15, 5:37 am, budaya c...@aprendelo.com wrote:
 It keeps telling me to create an application and even when all 10 done
 keeps asking and never shows me any other options. Anyone had the same
 problem?

Try logging in at http://appengine.google.com/a/aprendelo.com

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: https://appengine.google.com

2010-06-16 Thread budaya


Jesus thanks, one gets used to some procedures and gets
discombobulated by changes...

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] can not connect to appengine.google.com from china

2010-06-16 Thread saintthor
i think it may be gfwed.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: MapReduce - less than half of the shards have items

2010-06-16 Thread Jason C
Nick,

It would be a great feature to allow us (developers) to define a
custom partitioning function for the shards - unless you guys have
some better magic in mind.

It is very normal for us to see very poor distribution across our
shards in practise - in fact, we've only seen poor distributions.

j

On Jun 15, 8:04 am, Nick Johnson (Google) nick.john...@google.com
wrote:
 Hi Jason,

 The current implementation of the datastore mapper uses lexicographical
 sharding over keys to assign datastore shards. Unfortunately, this can lead
 to very inconsistent shard sizes, as you observe.

 -Nick Johnson





 On Fri, Jun 11, 2010 at 4:17 PM, Jason C jason.a.coll...@gmail.com wrote:
  We've been using MapReduce for App Engine for a couple of different
  jobs.

  Typically, we use 8 shards (the default), but it seems that only 3,
  sometime 4, of the shards have any items in them? E.g., we're
  currently running one job and three of the shards have 218,000 items
  processed, but the other 5 shards appear to have zero.

  I can understand that a particular key distribution would have
  different amounts in each shard, but with so many at zero, I suspect
  there is something else happening?

  BTW, we have applied the mapreduce-recommended __key__ DESC index, but
  we still see this strange shard distribution.

  Is anyone else seeing this?

  j

  --
  You received this message because you are subscribed to the Google Groups
  Google App Engine group.
  To post to this group, send email to google-appeng...@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
 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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: MapReduce - less than half of the shards have items

2010-06-16 Thread Jason C
I guess this would be the magic that I'm looking for. ;)

  http://code.google.com/p/appengine-mapreduce/issues/detail?id=3


On Jun 15, 8:04 am, Nick Johnson (Google) nick.john...@google.com
wrote:
 Hi Jason,

 The current implementation of the datastore mapper uses lexicographical
 sharding over keys to assign datastore shards. Unfortunately, this can lead
 to very inconsistent shard sizes, as you observe.

 -Nick Johnson





 On Fri, Jun 11, 2010 at 4:17 PM, Jason C jason.a.coll...@gmail.com wrote:
  We've been using MapReduce for App Engine for a couple of different
  jobs.

  Typically, we use 8 shards (the default), but it seems that only 3,
  sometime 4, of the shards have any items in them? E.g., we're
  currently running one job and three of the shards have 218,000 items
  processed, but the other 5 shards appear to have zero.

  I can understand that a particular key distribution would have
  different amounts in each shard, but with so many at zero, I suspect
  there is something else happening?

  BTW, we have applied the mapreduce-recommended __key__ DESC index, but
  we still see this strange shard distribution.

  Is anyone else seeing this?

  j

  --
  You received this message because you are subscribed to the Google Groups
  Google App Engine group.
  To post to this group, send email to google-appeng...@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
 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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: MapReduce - less than half of the shards have items

2010-06-16 Thread Nick Johnson (Google)
Hi Jason,

It's possible to do that right now. You simply need to define your own
InputReader - see the existing ones for examples how:
http://code.google.com/p/appengine-mapreduce/source/browse/trunk/python/src/mapreduce/input_readers.py

The best option is probably to extend the existing DatastoreInputReader, and
override the split_input method.

-Nick Johnson

On Wed, Jun 16, 2010 at 4:17 PM, Jason C jason.a.coll...@gmail.com wrote:

 Nick,

 It would be a great feature to allow us (developers) to define a
 custom partitioning function for the shards - unless you guys have
 some better magic in mind.

 It is very normal for us to see very poor distribution across our
 shards in practise - in fact, we've only seen poor distributions.

 j

 On Jun 15, 8:04 am, Nick Johnson (Google) nick.john...@google.com
 wrote:
  Hi Jason,
 
  The current implementation of the datastore mapper uses lexicographical
  sharding over keys to assign datastore shards. Unfortunately, this can
 lead
  to very inconsistent shard sizes, as you observe.
 
  -Nick Johnson
 
 
 
 
 
  On Fri, Jun 11, 2010 at 4:17 PM, Jason C jason.a.coll...@gmail.com
 wrote:
   We've been using MapReduce for App Engine for a couple of different
   jobs.
 
   Typically, we use 8 shards (the default), but it seems that only 3,
   sometime 4, of the shards have any items in them? E.g., we're
   currently running one job and three of the shards have 218,000 items
   processed, but the other 5 shards appear to have zero.
 
   I can understand that a particular key distribution would have
   different amounts in each shard, but with so many at zero, I suspect
   there is something else happening?
 
   BTW, we have applied the mapreduce-recommended __key__ DESC index, but
   we still see this strange shard distribution.
 
   Is anyone else seeing this?
 
   j
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google App Engine group.
   To post to this group, send email to google-appengine@googlegroups.com
 .
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib
 e...@googlegroups.com
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine?hl=en.
 
  --
  Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd.
 ::
  Registered in Dublin, Ireland, Registration Number: 368047
  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-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.




-- 
Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. ::
Registered in Dublin, Ireland, Registration Number: 368047
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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Datastore error:Authentication Failed while downloading data

2010-06-16 Thread François Masurel
I've the same problem with my Java application (webwinewatch).

Does the bulk loader work with Federated Login ?

I'm following Ikai's tutorial without success :-(

Thanx for your help.

On 5 mai, 15:50, suri suresh1d...@gmail.com wrote:
 Thanks wooble
 that's working now

 On May 4, 6:02 pm, Wooble geoffsp...@gmail.com wrote:





  On May 4, 5:08 am, suri suresh1d...@gmail.com wrote:

   Hi,
   I am new to Google App Engine.I am trying to download data from
   deployed application. but while executing download command it raised
   exception that
   1.Exception during authentication
   2.http error 404:Not Found
   3.Authentication failed

  Do you have the:

  - url: /remote_api
    script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
    login: admin

  stanza near the top of your app.yaml, before any catch-all handlers?

  --
  You received this message because you are subscribed to the Google Groups 
  Google App Engine group.
  To post to this group, send email to google-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to 
  google-appengine+unsubscr...@googlegroups.com.
  For more options, visit this group 
  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-appeng...@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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Datastore error:Authentication Failed while downloading data

2010-06-16 Thread François Masurel
In fact, it doesn't seem to work natively with FederatedLogin
activated on your app :

http://stackoverflow.com/questions/2981226/app-engine-remote-api-with-openid

Will this get fixed anytime soon ?

On 16 juin, 17:33, François Masurel fm2...@mably.com wrote:
 I've the same problem with my Java application (webwinewatch).

 Does the bulk loader work with Federated Login ?

 I'm following Ikai's tutorial without success :-(

 Thanx for your help.

 On 5 mai, 15:50, suri suresh1d...@gmail.com wrote:



  Thanks wooble
  that's working now

  On May 4, 6:02 pm, Wooble geoffsp...@gmail.com wrote:

   On May 4, 5:08 am, suri suresh1d...@gmail.com wrote:

Hi,
I am new to Google App Engine.I am trying to download data from
deployed application. but while executing download command it raised
exception that
1.Exception during authentication
2.http error 404:Not Found
3.Authentication failed

   Do you have the:

   - url: /remote_api
     script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
     login: admin

   stanza near the top of your app.yaml, before any catch-all handlers?

   --
   You received this message because you are subscribed to the Google Groups 
   Google App Engine group.
   To post to this group, send email to google-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to 
   google-appengine+unsubscr...@googlegroups.com.
   For more options, visit this group 
   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-appeng...@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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Datastore error:Authentication Failed while downloading data

2010-06-16 Thread François Masurel
http://code.google.com/p/googleappengine/issues/detail?id=3258

On 16 juin, 17:33, François Masurel fm2...@mably.com wrote:
 I've the same problem with my Java application (webwinewatch).

 Does the bulk loader work with Federated Login ?

 I'm following Ikai's tutorial without success :-(

 Thanx for your help.

 On 5 mai, 15:50, suri suresh1d...@gmail.com wrote:



  Thanks wooble
  that's working now

  On May 4, 6:02 pm, Wooble geoffsp...@gmail.com wrote:

   On May 4, 5:08 am, suri suresh1d...@gmail.com wrote:

Hi,
I am new to Google App Engine.I am trying to download data from
deployed application. but while executing download command it raised
exception that
1.Exception during authentication
2.http error 404:Not Found
3.Authentication failed

   Do you have the:

   - url: /remote_api
     script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
     login: admin

   stanza near the top of your app.yaml, before any catch-all handlers?

   --
   You received this message because you are subscribed to the Google Groups 
   Google App Engine group.
   To post to this group, send email to google-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to 
   google-appengine+unsubscr...@googlegroups.com.
   For more options, visit this group 
   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-appeng...@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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Request was aborted after waiting too long to attempt to service your request

2010-06-16 Thread Eduardo Perrino
I need help my application show the next error:

Request was aborted after waiting too long to attempt to service your
request. This may happen sporadically when the App Engine serving
cluster is under unexpectedly high or uneven load. If you see this
message frequently, please contact the App Engine team.

I created a cron job to keep alive the application, but the error
persits, i need help to fix it.

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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: https://appengine.google.com

2010-06-16 Thread yiku
thinks! but I got another problem, when I login dashboard I only can
find six apps but cannot find another four.

On 6月16日, 下午6时48分, Geoffrey Spear geoffsp...@gmail.com wrote:
 On Jun 15, 5:37 am, budaya c...@aprendelo.com wrote:

  It keeps telling me to create an application and even when all 10 done
  keeps asking and never shows me any other options. Anyone had the same
  problem?

 Try logging in athttp://appengine.google.com/a/aprendelo.com

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Seeing a lot of ApplicationError 2 errors since maintenance?

2010-06-16 Thread Dave
I am seeing a similar error for our app.  In some cases I get the
response back and the status_code attribute is not populated, even
though the response.content appears to be valid.

Dave Tucker
WebFilings


On Jun 15, 8:17 am, Gavin  Andresen gavinandre...@gmail.com wrote:
 I'm getting spuriousurlfetch.Errorexceptions that say they are
 ApplicationError:2

 The relevant bit of python code:
   try:
     fetch_result =urlfetch.fetch(payment_server, deadline=10,
                                   method=POST, payload=secret
 +json_string,
                                   headers={ 'Content-Type' : 'text/
 plain' })
   excepturlfetch.Error, e:
     logging.error('make_bitcoin_request failed: '+str(e))
     logging.error('Request:'+json_string)
     return None

 Log of a typicalerror:

 # 213.221.6.130 - - [15/Jun/2010:05:56:50 -0700] GET / HTTP/1.1 200
 1391 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/
 533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4,gzip(gfe)
 freebitcoins.appspot.com
 # E 06-15 05:56AM 50.232 make_bitcoin_request failed:
 ApplicationError:2
 # E 06-15 05:56AM 50.233 Request:{params:
 [],jsonrpc:2.0,id:1276606609.99,method:getbalance}

 Note that the ApplicationError:2is the exception thrown by 
 theurlfetch.fetch() call.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] APPS lost? help!

2010-06-16 Thread yiku
after I login to dashboard I only can find six apps but cannot find
another four.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Database with google application engine

2010-06-16 Thread jitendra singh
Hi,
I am trying to develop and deploy a project with google application
engine and for this I want to use Mysql5.0 as a database. Is it
possible to use Mysql5.0 with GAE or google datastore is the only one
option. If we can use Mysql5.0, how will i configure it online during
the time of deployment. At localhost, I am trying to use Mysql5.0 with
eclipse galileo3.5 with google eclipse plugin and sdk plugin and gwt
plugin but it is giving the following error although I am using mysql-
connector-java-5.0.3-bin.jar file for jdbc driver:



java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at
com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:
151)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at database.dbConn.query(dbConn.java:137)
at admin.AdminFunctions.verifyAdminLogin(AdminFunctions.java:16)
at admin.AdminServ.doGet(AdminServ.java:46)
at admin.AdminServ.doPost(AdminServ.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
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:
51)
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 com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:349)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
542)
at org.mortbay.jetty.HttpConnection
$RequestHandler.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
409)
at org.mortbay.thread.QueuedThreadPool
$PoolThread.run(QueuedThreadPool.java:582)

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Is it possible to transfer an appid to a different account?

2010-06-16 Thread Jason Rosenberg
I am guessing that this is not possible, but

I would like to transfer ownership of an appid to another user's
account.  Is that possible?

Thanks,

Jason

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: index building takes so long

2010-06-16 Thread James
Any chance index building could be optimized (prioritized) for new
entity types?  It's a shame to have to wait hours for a new index
which will cover zero records and could probably be created w/ minimal
effort.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Is it possible to transfer an appid to a different account?

2010-06-16 Thread Ikai L (Google)
You can add the other user as a developer, then remove yourself.

On Wed, Jun 16, 2010 at 9:52 AM, Jason Rosenberg jbrosenb...@gmail.comwrote:

 I am guessing that this is not possible, but

 I would like to transfer ownership of an appid to another user's
 account.  Is that possible?

 Thanks,

 Jason

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.




-- 
Ikai Lan
Developer Programs Engineer, Google App Engine
Blog: http://googleappengine.blogspot.com
Twitter: http://twitter.com/app_engine
Reddit: http://www.reddit.com/r/appengine

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Prerelease SDK 1.3.5 is out!

2010-06-16 Thread Ikai L (Google)
Hey developers!

We've release the prerelease SDK for 1.3.5. Get it here:

http://code.google.com/p/googleappengine/downloads/list

If you want to try out new features locally before they go live, here's your
chance. We welcome any feedback you have. Release notes for Java/Python are
below:

Java
=
- Ability to configure the Task Queue storage limit with the
  total-storage-limit field in the queue.xml file.
- Task Queues now support up to 50 qps per queue, up from 50 qps per app.
- Developers can programmatically access Blobs with BlobstoreInputStream,
which
  provides an InputStream view of a blob in Blobstore
- Content-range headers for Blobs are supported.
- Bulkloader transform helpers for lists and hierarchical keys were added.
- Remote API commands can be sent over HTTPS or HTTP.
- Admin Console logs now include information on request time latency.
- Fixed an issue where requesting /appstats would not properly direct to
  /appstats/.
- Fixed an issue with inconsistent URL mappings between the SDK and
production.
http://code.google.com/p/googleappengine/issues/detail?id=2598


Python
=
- Ability to configure the Task Queue storage limit with the
  total_storage_limit field in the queue.yaml file.
- Task Queues now support up to 50 qps per queue, up from 50 qps per app.
- Developers can programmatically access Blobs with BlobReader, a file-like
  interface for reading blobs.
- Content-range headers for Blobs are supported.
- Bulkloader transform helpers for lists and hierarchical keys were added.
- Remote API commands can be sent over HTTPS or HTTP.
- Admin Console logs now include information on request time latency.
- Db.delete will now accept an iterable, in addition to a list of models or
  keys.
- Fixed an issue properly handling a query with an offset that returns no
  results.
- Fixed an issue that improperly allowed quad-dotted netmasks as subnet
prefixes
  for the DoS API.
- Fixed an issue via user submitted patch where the task queue used local
time
  instead of UTC to compute ETA.
http://code.google.com/p/googleappengine/issues/detail?id=2508
- Fixed an issue via user submitted patch in the SDK dataviewer displaying
  multiline StringProperties.
http://code.google.com/p/googleappengine/issues/detail?id=502

-- 
Ikai Lan
Developer Programs Engineer, Google App
Enginehttp://code.google.com/p/googleappengine/issues/detail?id=502
Blog:  http://code.google.com/p/googleappengine/issues/detail?id=502
http://googleappengine.blogspot.com
Twitter: http://twitter.com/app_engine
Reddit: http://www.reddit.com/r/appengine

ppengine target=_blankhttp://www.reddit.com/r/appengine

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] OAuth Refuses to Authenticate Me

2010-06-16 Thread Paddy Foran
I'm working on an application that interfaces between App Engine, a
Chrome Extension, and Android. I've managed to get the Chrome
extension authenticating fine through OAuth (oddly, without ever using
the App Engine OAuth library...? It just detected
users.get_current_user()) but the Android client is giving me some
trouble. I'm using Apache's HttpPost to send the request, and SignPost
to sign it.

My request is as follows: POST /links/add?
oauth_signature=VPt6v7SEJ0xGv7TDLjPe5vtoc7E%3Doauth_token=1%2Fu0QvC-
RMgDC9lq3B3PjFHjBZZ39colyxwj9q96qm--
ooauth_consumer_key=anonymousoauth_signature_method=HMAC-
SHA1oauth_timestamp=1276711674oauth_nonce=-5410272903654758759 HTTP/
1.1 with a single key/value pair attached.

I keep receiving:

Traceback (most recent call last):
  File /base/python_runtime/python_lib/versions/1/google/appengine/
ext/webapp/__init__.py, line 513, in __call__
handler.post(*groups)
  File /base/data/home/apps/android2cloud/1.342714137082534334/
main.py, line 44, in post
elif oauth.get_current_user():
  File /base/python_runtime/python_lib/versions/1/google/appengine/
api/oauth/oauth_api.py, line 86, in get_current_user
_maybe_call_get_oauth_user()
  File /base/python_runtime/python_lib/versions/1/google/appengine/
api/oauth/oauth_api.py, line 152, in _maybe_call_get_oauth_user
_maybe_raise_exception()
  File /base/python_runtime/python_lib/versions/1/google/appengine/
api/oauth/oauth_api.py, line 167, in _maybe_raise_exception
raise InvalidOAuthParametersError
InvalidOAuthParametersError

Is this trying to tell me that my signature and token do not match, or
am I doing something else wrong? The request is virtually identical to
the Chrome extension that is working, so I can't figure out what the
issue could be.

Thanks,
Paddy Foran

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] small query about Searchable Model

2010-06-16 Thread Harshal
Hi,

Just confirming what I have read so far about Searchable Model. If I have,

Content(search.SearchableModel):
   content = db.StringProperty()


If I got this correctly, out of all the entities that are going to get
created by users only 5000 key words are available for searching. Is that
the case? or I am missing something here?

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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: 1 meg limit on processing images is really harshing my buz

2010-06-16 Thread Kelly A
So if I save an image into the blob store then load it from the blob
store I can work on it as long as the result is smaller than 1
megabyte.

this would be extremely inefficient in my case:

350k Jpeg stored as the primary image
10k Thumbnail created from that image

I do not need to use blob store for these cases.

current process:

Get bits  resize bits  Save Bits

Proposed process:

Get bits  save to Blob store  Read from blob store  resize bits
 save bits

Since I am not storing anything larger than 1 megabyte I don't need to
keep the blog store around so add in a delete to delete this temporary
blob store item.

Plus I would need to turn on billing to even get this to work.

so even though there is a work around here, I say it is still
desirable for the Google App team to take a look at this and see that
the current limitations on the Image API are not reasonable.


On Jun 15, 3:17 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:
 On Tue, Jun 15, 2010 at 7:33 PM, Kelly A kelly.j.ander...@gmail.com wrote:
  Jaroslav,

  Yes you can save but if you call images.resize(imagebits, 100, 100) on
  an image that is greater than 1 megabyte it will throw
  RequestTooLargeError: The request to API call images.Transform() was
  too large..

 http://code.google.com/appengine/docs/java/images/overview.html#Trans...

 import com.google.appengine.api.images.Image;
 import com.google.appengine.api.images.ImagesService;
 import com.google.appengine.api.images.ImagesServiceFactory;
 import com.google.appengine.api.images.Transform;

 // ...
         BlobKey blobKey;  // ...

         ImagesService imagesService = ImagesServiceFactory.getImagesService();

         Image oldImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
         Transform resize = ImagesServiceFactory.makeResize(200, 300);

         Image newImage = imagesService.applyTransform(resize, oldImage);

         byte[] newImageData = newImage.getImageData();

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: 1 meg limit on processing images is really harshing my buz

2010-06-16 Thread Jaroslav Záruba
On Wed, Jun 16, 2010 at 9:32 PM, Kelly A kelly.j.ander...@gmail.com wrote:

 So if I save an image into the blob store then load it from the blob
 store I can work on it as long as the result is smaller than 1
 megabyte.

 this would be extremely inefficient in my case:

 350k Jpeg stored as the primary image
 10k Thumbnail created from that image

 I do not need to use blob store for these cases.

 current process:

 Get bits  resize bits  Save Bits

 Proposed process:

 Get bits  save to Blob store  Read from blob store  resize bits
  save bits

 Since I am not storing anything larger than 1 megabyte I don't need to
 keep the blog store around so add in a delete to delete this temporary
 blob store item.


The idea was to make images you can't load (due to their size) smaller so
you can load them, In a way that would not bother your users.


 Plus I would need to turn on billing to even get this to work.

 so even though there is a work around here, I say it is still
 desirable for the Google App team to take a look at this and see that
 the current limitations on the Image API are not reasonable.


Sure it is perfectly reasonable. Disk-space is cheap, RAM is not, working
with images takes RAM. You want Google to buy more RAM for you but refuse to
pay for it.

On Jun 15, 3:17 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:
  On Tue, Jun 15, 2010 at 7:33 PM, Kelly A kelly.j.ander...@gmail.com
 wrote:
   Jaroslav,
 
   Yes you can save but if you call images.resize(imagebits, 100, 100) on
   an image that is greater than 1 megabyte it will throw
   RequestTooLargeError: The request to API call images.Transform() was
   too large..
 
  http://code.google.com/appengine/docs/java/images/overview.html#Trans...
 
  import com.google.appengine.api.images.Image;
  import com.google.appengine.api.images.ImagesService;
  import com.google.appengine.api.images.ImagesServiceFactory;
  import com.google.appengine.api.images.Transform;
 
  // ...
  BlobKey blobKey;  // ...
 
  ImagesService imagesService =
 ImagesServiceFactory.getImagesService();
 
  Image oldImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
  Transform resize = ImagesServiceFactory.makeResize(200, 300);
 
  Image newImage = imagesService.applyTransform(resize, oldImage);
 
  byte[] newImageData = newImage.getImageData();

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Database with google application engine

2010-06-16 Thread Tristan
Not possible. Datastore is the only option. If you want to use MySQL,
you would have to host it on Amazon (or other such service) and then
you'd have to set up all persistence operations to talk to the Amazon
service.

There is an SQL solution in the works for the Google App Engine for
Business (for Google Apps domains only), but it has not been released
yet.

On Jun 16, 7:00 am, jitendra singh jks...@gmail.com wrote:
 Hi,
 I am trying to develop and deploy a project with google application
 engine and for this I want to use Mysql5.0 as a database. Is it
 possible to use Mysql5.0 with GAE or google datastore is the only one
 option. If we can use Mysql5.0, how will i configure it online during
 the time of deployment. At localhost, I am trying to use Mysql5.0 with
 eclipse galileo3.5 with google eclipse plugin and sdk plugin and gwt
 plugin but it is giving the following error although I am using mysql-
 connector-java-5.0.3-bin.jar file for jdbc driver:

 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at
 com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(Iso 
 latedAppClassLoader.java:
 151)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:164)
         at database.dbConn.query(dbConn.java:137)
         at admin.AdminFunctions.verifyAdminLogin(AdminFunctions.java:16)
         at admin.AdminServ.doGet(AdminServ.java:46)
         at admin.AdminServ.doPost(AdminServ.java:112)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
         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(ServeBlobFi 
 lter.java:
 51)
         at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1157)
         at
 com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(Trans 
 actionCleanupFilter.java:
 43)
         at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1157)
         at
 com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFile 
 Filter.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(DevAppEn 
 gineWebAppContext.java:
 70)
         at
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
 152)
         at com.google.appengine.tools.development.JettyContainerService
 $ApiProxyHandler.handle(JettyContainerService.java:349)
         at
 org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
 152)
         at org.mortbay.jetty.Server.handle(Server.java:326)
         at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
 542)
         at org.mortbay.jetty.HttpConnection
 $RequestHandler.content(HttpConnection.java:938)
         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
         at
 org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
 409)
         at org.mortbay.thread.QueuedThreadPool
 $PoolThread.run(QueuedThreadPool.java:582)

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: Request was aborted after waiting too long to attempt to service your request

2010-06-16 Thread Tristan
From my understanding this error happens when a request hits an
application instance but is put on a queue and becomes stale before
other requests in front of it get out of the way and execute.

Doesn't your cron job have to fire every second in order to keep the
application alive? I thought that 1 request per second is the keep-
alive boundary. It's somewhere around there. How often does your cron
execute?

On Jun 16, 5:51 am, Eduardo Perrino eduardo.perr...@gmail.com wrote:
 I need help my application show the next error:

 Request was aborted after waiting too long to attempt to service your
 request. This may happen sporadically when the App Engine serving
 cluster is under unexpectedly high or uneven load. If you see this
 message frequently, please contact the App Engine team.

 I created a cron job to keep alive the application, but the error
 persits, i need help to fix it.

 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-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: 1 meg limit on processing images is really harshing my buz

2010-06-16 Thread Kelly A
Really bursts of RAM usage of up to 10 megs for the term of an image
operation are not likely to increase RAM costs for the image API that
much.  The case of uploading and image is some what infrequent and
they could impose quotas that would, force frequent users of large
memory consumption to pay. Not to mention, the method you described
uses the same amount of RAM to resize the image as my process would
use. The JPEG still needs to be loaded into memory, decoded into
another block of memory, resized into another bock of memory and then
encoded into yet another block of memory with both processes.

I am not saying that I don't want to pay, I am saying that the system
should function on common data.  I will happily pay when my AMOUNT of
USAGE exceeds quotas, just like every other charge in Google App
Engine.

My specific point about turning on charging is not about paying any
way, as I would not be using enough blob store to get charged, but
having to go through extra steps to access something that should be
considered basic functionality.

The image API right now works like a building where all of the doors
are too small for the average person to pass through.

On Jun 16, 2:40 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:
 On Wed, Jun 16, 2010 at 9:32 PM, Kelly A kelly.j.ander...@gmail.com wrote:
  So if I save an image into the blob store then load it from the blob
  store I can work on it as long as the result is smaller than 1
  megabyte.

  this would be extremely inefficient in my case:

  350k Jpeg stored as the primary image
  10k Thumbnail created from that image

  I do not need to use blob store for these cases.

  current process:

  Get bits  resize bits  Save Bits

  Proposed process:

  Get bits  save to Blob store  Read from blob store  resize bits
   save bits

  Since I am not storing anything larger than 1 megabyte I don't need to
  keep the blog store around so add in a delete to delete this temporary
  blob store item.

 The idea was to make images you can't load (due to their size) smaller so
 you can load them, In a way that would not bother your users.

  Plus I would need to turn on billing to even get this to work.

  so even though there is a work around here, I say it is still
  desirable for the Google App team to take a look at this and see that
  the current limitations on the Image API are not reasonable.

 Sure it is perfectly reasonable. Disk-space is cheap, RAM is not, working
 with images takes RAM. You want Google to buy more RAM for you but refuse to
 pay for it.

 On Jun 15, 3:17 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:



   On Tue, Jun 15, 2010 at 7:33 PM, Kelly A kelly.j.ander...@gmail.com
  wrote:
Jaroslav,

Yes you can save but if you call images.resize(imagebits, 100, 100) on
an image that is greater than 1 megabyte it will throw
RequestTooLargeError: The request to API call images.Transform() was
too large..

  http://code.google.com/appengine/docs/java/images/overview.html#Trans...

   import com.google.appengine.api.images.Image;
   import com.google.appengine.api.images.ImagesService;
   import com.google.appengine.api.images.ImagesServiceFactory;
   import com.google.appengine.api.images.Transform;

   // ...
           BlobKey blobKey;  // ...

           ImagesService imagesService =
  ImagesServiceFactory.getImagesService();

           Image oldImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
           Transform resize = ImagesServiceFactory.makeResize(200, 300);

           Image newImage = imagesService.applyTransform(resize, oldImage);

           byte[] newImageData = newImage.getImageData();

  --
  You received this message because you are subscribed to the Google Groups
  Google App Engine group.
  To post to this group, send email to google-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib 
  e...@googlegroups.com
  .
  For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: 1 meg limit on processing images is really harshing my buz

2010-06-16 Thread Kelly A
Did they remove the requirement of turning on billing to access the
blob store when they moved it out of beta?

On Jun 16, 3:41 pm, Kelly A kelly.j.ander...@gmail.com wrote:
 Really bursts of RAM usage of up to 10 megs for the term of an image
 operation are not likely to increase RAM costs for the image API that
 much.  The case of uploading and image is some what infrequent and
 they could impose quotas that would, force frequent users of large
 memory consumption to pay. Not to mention, the method you described
 uses the same amount of RAM to resize the image as my process would
 use. The JPEG still needs to be loaded into memory, decoded into
 another block of memory, resized into another bock of memory and then
 encoded into yet another block of memory with both processes.

 I am not saying that I don't want to pay, I am saying that the system
 should function on common data.  I will happily pay when my AMOUNT of
 USAGE exceeds quotas, just like every other charge in Google App
 Engine.

 My specific point about turning on charging is not about paying any
 way, as I would not be using enough blob store to get charged, but
 having to go through extra steps to access something that should be
 considered basic functionality.

 The image API right now works like a building where all of the doors
 are too small for the average person to pass through.

 On Jun 16, 2:40 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:



  On Wed, Jun 16, 2010 at 9:32 PM, Kelly A kelly.j.ander...@gmail.com wrote:
   So if I save an image into the blob store then load it from the blob
   store I can work on it as long as the result is smaller than 1
   megabyte.

   this would be extremely inefficient in my case:

   350k Jpeg stored as the primary image
   10k Thumbnail created from that image

   I do not need to use blob store for these cases.

   current process:

   Get bits  resize bits  Save Bits

   Proposed process:

   Get bits  save to Blob store  Read from blob store  resize bits
save bits

   Since I am not storing anything larger than 1 megabyte I don't need to
   keep the blog store around so add in a delete to delete this temporary
   blob store item.

  The idea was to make images you can't load (due to their size) smaller so
  you can load them, In a way that would not bother your users.

   Plus I would need to turn on billing to even get this to work.

   so even though there is a work around here, I say it is still
   desirable for the Google App team to take a look at this and see that
   the current limitations on the Image API are not reasonable.

  Sure it is perfectly reasonable. Disk-space is cheap, RAM is not, working
  with images takes RAM. You want Google to buy more RAM for you but refuse to
  pay for it.

  On Jun 15, 3:17 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:

On Tue, Jun 15, 2010 at 7:33 PM, Kelly A kelly.j.ander...@gmail.com
   wrote:
 Jaroslav,

 Yes you can save but if you call images.resize(imagebits, 100, 100) on
 an image that is greater than 1 megabyte it will throw
 RequestTooLargeError: The request to API call images.Transform() was
 too large..

   http://code.google.com/appengine/docs/java/images/overview.html#Trans...

import com.google.appengine.api.images.Image;
import com.google.appengine.api.images.ImagesService;
import com.google.appengine.api.images.ImagesServiceFactory;
import com.google.appengine.api.images.Transform;

// ...
        BlobKey blobKey;  // ...

        ImagesService imagesService =
   ImagesServiceFactory.getImagesService();

        Image oldImage = 
ImagesServiceFactory.makeImageFromBlob(blobKey);
        Transform resize = ImagesServiceFactory.makeResize(200, 300);

        Image newImage = imagesService.applyTransform(resize, oldImage);

        byte[] newImageData = newImage.getImageData();

   --
   You received this message because you are subscribed to the Google Groups
   Google App Engine group.
   To post to this group, send email to google-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib
e...@googlegroups.com
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: 1 meg limit on processing images is really harshing my buz

2010-06-16 Thread Jeff Schnitzer
I think you have a good point... the various 1MB limits are starting
to feel rather antiquated in this day and age.  Yeah, it's often
possible to hack around them by chunking our data or using the
blobstore or performing range requests... but bloody hell, it's a pain
in the arse.

Just a 2 or 3X increase would help a lot.  3MB url fetches and 3MB
entities would make me breathe easier.

BTW there is one issue you can't work around no matter what - while
you can sometimes use range requests to download large files via the
URLFetch service, there is no way to upload large files.  You can't
POST ranges.

Jeff

On Wed, Jun 16, 2010 at 1:41 PM, Kelly A kelly.j.ander...@gmail.com wrote:
 Really bursts of RAM usage of up to 10 megs for the term of an image
 operation are not likely to increase RAM costs for the image API that
 much.  The case of uploading and image is some what infrequent and
 they could impose quotas that would, force frequent users of large
 memory consumption to pay. Not to mention, the method you described
 uses the same amount of RAM to resize the image as my process would
 use. The JPEG still needs to be loaded into memory, decoded into
 another block of memory, resized into another bock of memory and then
 encoded into yet another block of memory with both processes.

 I am not saying that I don't want to pay, I am saying that the system
 should function on common data.  I will happily pay when my AMOUNT of
 USAGE exceeds quotas, just like every other charge in Google App
 Engine.

 My specific point about turning on charging is not about paying any
 way, as I would not be using enough blob store to get charged, but
 having to go through extra steps to access something that should be
 considered basic functionality.

 The image API right now works like a building where all of the doors
 are too small for the average person to pass through.

 On Jun 16, 2:40 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:
 On Wed, Jun 16, 2010 at 9:32 PM, Kelly A kelly.j.ander...@gmail.com wrote:
  So if I save an image into the blob store then load it from the blob
  store I can work on it as long as the result is smaller than 1
  megabyte.

  this would be extremely inefficient in my case:

  350k Jpeg stored as the primary image
  10k Thumbnail created from that image

  I do not need to use blob store for these cases.

  current process:

  Get bits  resize bits  Save Bits

  Proposed process:

  Get bits  save to Blob store  Read from blob store  resize bits
   save bits

  Since I am not storing anything larger than 1 megabyte I don't need to
  keep the blog store around so add in a delete to delete this temporary
  blob store item.

 The idea was to make images you can't load (due to their size) smaller so
 you can load them, In a way that would not bother your users.

  Plus I would need to turn on billing to even get this to work.

  so even though there is a work around here, I say it is still
  desirable for the Google App team to take a look at this and see that
  the current limitations on the Image API are not reasonable.

 Sure it is perfectly reasonable. Disk-space is cheap, RAM is not, working
 with images takes RAM. You want Google to buy more RAM for you but refuse to
 pay for it.

 On Jun 15, 3:17 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:



   On Tue, Jun 15, 2010 at 7:33 PM, Kelly A kelly.j.ander...@gmail.com
  wrote:
Jaroslav,

Yes you can save but if you call images.resize(imagebits, 100, 100) on
an image that is greater than 1 megabyte it will throw
RequestTooLargeError: The request to API call images.Transform() was
too large..

  http://code.google.com/appengine/docs/java/images/overview.html#Trans...

   import com.google.appengine.api.images.Image;
   import com.google.appengine.api.images.ImagesService;
   import com.google.appengine.api.images.ImagesServiceFactory;
   import com.google.appengine.api.images.Transform;

   // ...
           BlobKey blobKey;  // ...

           ImagesService imagesService =
  ImagesServiceFactory.getImagesService();

           Image oldImage = ImagesServiceFactory.makeImageFromBlob(blobKey);
           Transform resize = ImagesServiceFactory.makeResize(200, 300);

           Image newImage = imagesService.applyTransform(resize, oldImage);

           byte[] newImageData = newImage.getImageData();

  --
  You received this message because you are subscribed to the Google Groups
  Google App Engine group.
  To post to this group, send email to google-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib
   e...@googlegroups.com
  .
  For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.

 --
 You received this message because you are subscribed to the Google Groups 
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To 

[google-appengine] DataStore Viewer giving me ServerError

2010-06-16 Thread Risto Haukioja
Hi,

I've been doing refactoring for my datastore using the mapperapi which
was released at Google I/O.  Now when I'm going to view my data via
the Dashboard - Datastore Viewer, I am more often than not getting
the following error message:


Error: Server Error

The server encountered an error and could not complete your request.

If the problem persists, please report your problem and mention this
error message and the query that caused it.


This also happens if I try to access : Dashboard - Datastore Statistics.

If I try and refresh the DataStore Viewer page, I usually will get to
the datastore viewer after 4-5 tries.

I understood from Nick Johnson, this might be caused by TombStoned
data entities that are no longer part of my datastore.

my appid: socicount


A related issue:
when I'm trying to check the state of the impacted entity kind via
remote console, I also get HTTP 500 error usually 4-5 times, before
I'm able to query / get any entities which were impacted by
refactoring of the datastore.

is this something that is expected to to stay as a feature or likely
going away in the future?  At the moment, it's quite limiting not to
have access to the datastore viewer ( even to the other entity kind's
which were not affected by my refactoring ) and it's slowing down my
development when I can't validate the current state of my datastore.


cheers,
risto

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appeng...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: 1 meg limit on processing images is really harshing my buz

2010-06-16 Thread Jaroslav Záruba
On Wed, Jun 16, 2010 at 10:41 PM, Kelly A kelly.j.ander...@gmail.comwrote:

 Really bursts of RAM usage of up to 10 megs for the term of an image
 operation are not likely to increase RAM costs for the image API that
 much.  The case of uploading and image is some what infrequent and
 they could impose quotas that would, force frequent users of large
 memory consumption to pay.


As for the case of uploading - image operations are not limited to uploading
requests. Therefore I don't see how is frequency of uploading relevant to
this.


 Not to mention, the method you described uses the same amount of RAM to
 resize

the image as my process would use.


The point is not to save memory during every transformation, but to help you
cope with the limit when accepting images over which size you don't have
control
I think it is quite elegant and easy (to implement and explain) way of 1)
imposing arbitraty memory-limit while 2) still giving user a way of coping
with it.

The image API right now works like a building where all of the doors
 are too small for the average person to pass through.


As much as the analogy is inaccurate, the doors will always cost something
and there will always be persons with above average height. Luckily for
taller persons the building has another doors. (You're lucky person if
opening console and enabling billing is what bothers you. :)
There probably has to be some limit, so Google could have chosen way of A)
simply rejecting all large uploads, B) let you access their degraded
version.

On Jun 16, 2:40 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:
  On Wed, Jun 16, 2010 at 9:32 PM, Kelly A kelly.j.ander...@gmail.com
 wrote:
   So if I save an image into the blob store then load it from the blob
   store I can work on it as long as the result is smaller than 1
   megabyte.
 
   this would be extremely inefficient in my case:
 
   350k Jpeg stored as the primary image
   10k Thumbnail created from that image
 
   I do not need to use blob store for these cases.
 
   current process:
 
   Get bits  resize bits  Save Bits
 
   Proposed process:
 
   Get bits  save to Blob store  Read from blob store  resize bits
save bits
 
   Since I am not storing anything larger than 1 megabyte I don't need to
   keep the blog store around so add in a delete to delete this temporary
   blob store item.
 
  The idea was to make images you can't load (due to their size) smaller so
  you can load them, In a way that would not bother your users.
 
   Plus I would need to turn on billing to even get this to work.
 
   so even though there is a work around here, I say it is still
   desirable for the Google App team to take a look at this and see that
   the current limitations on the Image API are not reasonable.
 
  Sure it is perfectly reasonable. Disk-space is cheap, RAM is not, working
  with images takes RAM. You want Google to buy more RAM for you but refuse
 to
  pay for it.
 
  On Jun 15, 3:17 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:
 
 
 
On Tue, Jun 15, 2010 at 7:33 PM, Kelly A kelly.j.ander...@gmail.com
 
   wrote:
 Jaroslav,
 
 Yes you can save but if you call images.resize(imagebits, 100, 100)
 on
 an image that is greater than 1 megabyte it will throw
 RequestTooLargeError: The request to API call images.Transform()
 was
 too large..
 
   
 http://code.google.com/appengine/docs/java/images/overview.html#Trans...
 
import com.google.appengine.api.images.Image;
import com.google.appengine.api.images.ImagesService;
import com.google.appengine.api.images.ImagesServiceFactory;
import com.google.appengine.api.images.Transform;
 
// ...
BlobKey blobKey;  // ...
 
ImagesService imagesService =
   ImagesServiceFactory.getImagesService();
 
Image oldImage =
 ImagesServiceFactory.makeImageFromBlob(blobKey);
Transform resize = ImagesServiceFactory.makeResize(200, 300);
 
Image newImage = imagesService.applyTransform(resize,
 oldImage);
 
byte[] newImageData = newImage.getImageData();
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google App Engine group.
   To post to this group, send email to google-appengine@googlegroups.com
 .
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib
 e...@googlegroups.com
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine?hl=en.

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 

Re: [google-appengine] Re: 1 meg limit on processing images is really harshing my buz

2010-06-16 Thread Jaroslav Záruba
maybe someone from Google is gonna correct me :)

2010/6/16 Jaroslav Záruba jaroslav.zar...@gmail.com

 On Wed, Jun 16, 2010 at 10:41 PM, Kelly A kelly.j.ander...@gmail.comwrote:

 Really bursts of RAM usage of up to 10 megs for the term of an image
 operation are not likely to increase RAM costs for the image API that
 much.  The case of uploading and image is some what infrequent and
 they could impose quotas that would, force frequent users of large
 memory consumption to pay.


 As for the case of uploading - image operations are not limited to
 uploading requests. Therefore I don't see how is frequency of uploading
 relevant to this.


 Not to mention, the method you described uses the same amount of RAM to
 resize

 the image as my process would use.


 The point is not to save memory during every transformation, but to help
 you cope with the limit when accepting images over which size you don't have
 control
 I think it is quite elegant and easy (to implement and explain) way of 1)
 imposing arbitraty memory-limit while 2) still giving user a way of coping
 with it.

 The image API right now works like a building where all of the doors
 are too small for the average person to pass through.


 As much as the analogy is inaccurate, the doors will always cost something
 and there will always be persons with above average height. Luckily for
 taller persons the building has another doors. (You're lucky person if
 opening console and enabling billing is what bothers you. :)
 There probably has to be some limit, so Google could have chosen way of A)
 simply rejecting all large uploads, B) let you access their degraded
 version.

 On Jun 16, 2:40 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:
  On Wed, Jun 16, 2010 at 9:32 PM, Kelly A kelly.j.ander...@gmail.com
 wrote:
   So if I save an image into the blob store then load it from the blob
   store I can work on it as long as the result is smaller than 1
   megabyte.
 
   this would be extremely inefficient in my case:
 
   350k Jpeg stored as the primary image
   10k Thumbnail created from that image
 
   I do not need to use blob store for these cases.
 
   current process:
 
   Get bits  resize bits  Save Bits
 
   Proposed process:
 
   Get bits  save to Blob store  Read from blob store  resize bits
save bits
 
   Since I am not storing anything larger than 1 megabyte I don't need to
   keep the blog store around so add in a delete to delete this temporary
   blob store item.
 
  The idea was to make images you can't load (due to their size) smaller
 so
  you can load them, In a way that would not bother your users.
 
   Plus I would need to turn on billing to even get this to work.
 
   so even though there is a work around here, I say it is still
   desirable for the Google App team to take a look at this and see that
   the current limitations on the Image API are not reasonable.
 
  Sure it is perfectly reasonable. Disk-space is cheap, RAM is not,
 working
  with images takes RAM. You want Google to buy more RAM for you but
 refuse to
  pay for it.
 
  On Jun 15, 3:17 pm, Jaroslav Záruba jaroslav.zar...@gmail.com wrote:
 
 
 
On Tue, Jun 15, 2010 at 7:33 PM, Kelly A 
 kelly.j.ander...@gmail.com
   wrote:
 Jaroslav,
 
 Yes you can save but if you call images.resize(imagebits, 100,
 100) on
 an image that is greater than 1 megabyte it will throw
 RequestTooLargeError: The request to API call images.Transform()
 was
 too large..
 
   
 http://code.google.com/appengine/docs/java/images/overview.html#Trans...
 
import com.google.appengine.api.images.Image;
import com.google.appengine.api.images.ImagesService;
import com.google.appengine.api.images.ImagesServiceFactory;
import com.google.appengine.api.images.Transform;
 
// ...
BlobKey blobKey;  // ...
 
ImagesService imagesService =
   ImagesServiceFactory.getImagesService();
 
Image oldImage =
 ImagesServiceFactory.makeImageFromBlob(blobKey);
Transform resize = ImagesServiceFactory.makeResize(200,
 300);
 
Image newImage = imagesService.applyTransform(resize,
 oldImage);
 
byte[] newImageData = newImage.getImageData();
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google App Engine group.
   To post to this group, send email to
 google-appeng...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib
 e...@googlegroups.com
   .
   For more options, visit this group at
  http://groups.google.com/group/google-appengine?hl=en.

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-appeng...@googlegroups.com.
 To unsubscribe from this group, send email to