Re: [appengine-java] 500 Internal Server Error:Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/clonefiles?

2010-12-17 Thread Gal Dolber
either do I.. 7 failed retries today

On Thu, Dec 16, 2010 at 9:49 PM, Sumi sumi...@gmail.com wrote:

 I am getting deployed error gaian...this is happening every other day and
 as big productivity sink...anyone knows what is going on and when this will
 be resolved?

 Unable to update app: Error posting to URL:
 https://appengine.google.com/api/appversion/clonefiles?app_id=Xversion=5;
 500 Internal Server Error

 htmlhead
 meta http-equiv=content-type content=text/html;charset=utf-8
 title500 Server Error/title
 /head
 body text=#00 bgcolor=#ff
 h1Error: Server Error/h1
 h2The server encountered an error and could not complete your
 request.pIf the problem persists, please A HREF=
 http://code.google.com/appengine/community.html;report/A your problem
 and mention this error message and the query that caused it./h2
 h2/h2
 /body/html


 See the deployment console for more details
 Unable to update app: Error posting to URL:
 https://appengine.google.com/api/appversion/clonefiles?app_id=Xversion=5;
 500 Internal Server Error

 htmlhead
 meta http-equiv=content-type content=text/html;charset=utf-8
 title500 Server Error/title
 /head
 body text=#00 bgcolor=#ff
 h1Error: Server Error/h1
 h2The server encountered an error and could not complete your
 request.pIf the problem persists, please A HREF=
 http://code.google.com/appengine/community.html;report/A your problem
 and mention this error message and the query that caused it./h2
 h2/h2
 /body/html

  --
 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.




-- 
Guit: Elegant, beautiful, modular and *production ready* gwt applications.

http://code.google.com/p/guit/

-- 
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: process large file in BlobStore?

2010-12-17 Thread Toby
Hi,

I found this great tutorial from Ikai. it explains how to use the
Mapper API to import large CSV files from the blob store to the
datastore.
So it is essentially what I was looking for.
Here the link for those who might have the same need:
http://ikaisays.com/2010/08/11/using-the-app-engine-mapper-for-bulk-data-import

Cheers,
Toby

On Dec 2, 6:53 pm, Didier Durand durand.did...@gmail.com wrote:
 Hi,

 you have to distinguish between a Blob stored in Datastore whose limit
 is 1 Mbyte and a blob stored in the blobstore whose limit is 2 Gbytes

 For the blob in the blobstore you access it by chunks via the api: see
 the byte range 
 inhttp://code.google.com/appengine/docs/java/blobstore/overview.html#Se...

 To read those chunks, you have to use the BlobstoreInputStream and its
 read() method. 
 Seehttp://code.googlecom/appengine/docs/java/javadoc/com/google/appengin...

 regards
 didier

 On Dec 2, 6:23 pm, Toby toby.ro...@gmail.com wrote:

  Hi,

  I am trying to figure out how to programatically process a file from
  the BlobStore. It is a CSV file of about 100MB. I read that the limit
  is 1MB but I have seen in Pyton that it can be read partially (they
  call it BlobReader).
  Is this a feature currently not available in Java? Or is there a way I
  can process this data step by step using the task-queue?

  Thank you,
  Toby

-- 
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] How to declare transactions type = optimistic

2010-12-17 Thread sagar misal
Hello,
 am developing an GAE java app using gwt and eclipse and wish to know
whether all transactions in GAE app are optimistic or you need to
define it somewhere?

-- 
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] Access to Subversion (SVN) from App Engine

2010-12-17 Thread Maxime Mularz
Bonjour Didier Durand,

Je me permets de vous solliciter via le forum, car je me pose la meme 
question que vous, comment utiliser SVN et Google App Engine ? Avez-vous de 
l'expérience de dev, test et prod ?

Merci par avance de votre réponse,

Maxime Mularz

-- 
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] Access to Subversion (SVN) from App Engine

2010-12-17 Thread Didier Durand
Bonjour,

Je suis en train de préparer les tests unitaires de SvnKit (c'est la
meilleure librairie que j'aie trouvé) en environnement standard Java puis
sur Gae: relancez moi dans qq semaines et je pourrais vous dire où j'en
suis.

Contactez-moi sur mon adresse et je vous donnerai plus de détails sur mon
chantier actuel

Bonne fin d'année 2010 et bon début 2011 !

didier

Didier DURAND
durand.did...@gmail.com
blog: http://media-tech.blogspot.com
Jougne - FR-25370


On Fri, Dec 17, 2010 at 2:10 PM, Maxime Mularz max...@mularz.fr wrote:

 Bonjour Didier Durand,

 Je me permets de vous solliciter via le forum, car je me pose la meme
 question que vous, comment utiliser SVN et Google App Engine ? Avez-vous de
 l'expérience de dev, test et prod ?

 Merci par avance de votre réponse,

 Maxime Mularz

 --
 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] Re: Cannot resize a .tif image using the ImagesService on the dev app server

2010-12-17 Thread Ian Marshall
I see a post from Nick Johnson of Google on StackOverflow.com dated
6th July 2010 about plug-ins. He said:

  You're trying to work with 'ico' and 'tif' images. Neither of these
are supported on App Engine - only JPG, PNG and GIF.


The GAE/J documentation Images Java API Overview at:

  
http://code.google.com/intl/en/appengine/docs/java/images/overview.html#Image_Formats

states that:

  The service accepts image data in the JPEG, PNG, GIF (including
animated GIF), BMP, TIFF and ICO formats.


Does this GAE/J documentation need to be corrected?


On Dec 17, 7:35 am, Ian Marshall ianmarshall...@gmail.com wrote:
 No ideas, anyone?

 On Dec 16, 11:59 am, Ian Marshall ianmarshall...@gmail.com wrote:

  I refer to the related post entitled WARNING: No image reader found
  for format ico. An ImageIO plugin must be installed to use this
  format with the DevAppServer. dated 7th June 2009 at:

 http://groups.google.com/group/google-appengine-java/browse_thread/th...

  where a query about the dev app server warnings below was raised, but
  after Jason of Google asked a supplementary question he received no
  response from the original poster.

  My web app uploads an image file from a web browser user and then, if
  the file is larger than around 900kB I use the GAE/J ImagesService to
  reduce the image data size to this level. An extract of my relevant
  code is:

          byte[] baImageSource = [...];    // Data from an uploaded image file
          int nNewWidth  = [...];          // Calculate correct shrinkage
          int nNewHeight = [...];          // Calculate correct shrinkage

          Image imgSource = ImagesServiceFactory.makeImage(baImageSource);
          ImagesService isService = ImagesServiceFactory.getImagesService();
          Transform tfrm = ImagesServiceFactory.makeResize(nNewWidth,
  nNewHeight);
          Image imgNew = isService.applyTransform(tfrm, imgSource);
          byte[] baResult = imgNew.getImageData();    // The shrunken image
  data

  When I run my ImagesService code on my GAE/J development server
  ((latest) version 1.4.0) I get the two warnings:

          16-Dec-2010 10:40:18
  com.google.appengine.api.images.dev.LocalImagesService init
          WARNING: No image reader found for format ico. An ImageIO plugin
  must be installed to use this format with the DevAppServer.

          16-Dec-2010 10:40:18
  com.google.appengine.api.images.dev.LocalImagesService init
          WARNING: No image reader found for format tif. An ImageIO plugin
  must be installed to use this format with the DevAppServer.

  My code runs well for shrinking .jpg files, but when I try this for
  a .tif file of size 6.11 MB I get an IllegalArgumentException on my
  call to ImagesService.applyTransform(...). (I set out a stack trace at
  the foot of this post.)

  I have a few questions for those interested:

    ·  How do I get a tif ImageIO plug-in for the ImagesService ()?
    ·  Should this plug-in be supplied with the GAE/J SDK in future
  releases?
    ·  Does this issue apply to the dev app server only (I have not yet
  deployed this to production)?

  Cheers,

  Ian Marshall

  STACK TRACE WHEN TRANSFORMING A .TIF FILE
  -
  java.lang.IllegalArgumentException: Failed to read image
  at
  com.google.appengine.api.images.ImagesServiceImpl.convertApplicationException(ImagesServiceImpl.java:
  301)
  at
  com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
  73)
  at
  com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
  50)
  at
  com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
  39)
  at [my package
  path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java:
  311)
  at [my package
  path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java:
  236)
  at [my package path].wicket.stuff.MyPage$5.onSubmit(MyPage.java:1348)
  at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:
  1561)
  at org.apache.wicket.markup.html.form.Form.process(Form.java:958)
  at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:
  920)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at
  com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
  100)
  at
  org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:
  182)
  at
  org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:
  73)
  at
  org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:
  92)
  at
  org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:
  1250)
  at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
  at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
  at 

[appengine-java] Re: How to declare transactions type = optimistic

2010-12-17 Thread Didier Durand
Hi,

Everything is detailled here:
http://code.google.com/appengine/docs/java/datastore/transactions.html#Isolation_and_Consistency

I also deeply recommend this article:
http://code.google.com/appengine/articles/transaction_isolation.html

regards
didier

On Dec 17, 1:19 pm, sagar misal sagar1982mi...@gmail.com wrote:
 Hello,
  am developing an GAE java app using gwt and eclipse and wish to know
 whether all transactions in GAE app are optimistic or you need to
 define it somewhere?

-- 
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 runtime errors in Eclipse plugin

2010-12-17 Thread Rich
When I run my project using the eclipse plugin (g Web Application) I don't 
get any JSP runtime errors.  If there is an NPE all I get is: 

HTTP ERROR 500

Problem accessing /. Reason:

INTERNAL_SERVER_ERROR
Powered by Jetty://

Is there a setting that I can allow JSP errors to show on the error page?

-- 
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: Channel API problem

2010-12-17 Thread Scott
The Channel API is working for me, but I don't see anything you are
doing wrong in your code. Here is a link to another discussion
containing the code that worked for me
https://groups.google.com/d/topic/google-appengine-java/GfJQsf8OQ0I/discussion


On Dec 16, 5:26 am, Tarun tarun.chha...@gmail.com wrote:
 I have been trying to use the newly launched Channel API on SDK 1.4 in
 my project. I try to push a message to client which actually pops up a
 notification but I am getting the ChannelFailureException.
 Here is the code:
 TestServlet Where the token is created:
 public void doGet(HttpServletRequest req, HttpServletResponse resp)
                         throws ServletException, IOException {
                 PrintWriter out = resp.getWriter();
                 resp.setContentType(text/html);
                 // Creating the userID on the basis of the session id
                 String userId = req.getSession().getId();
                 // Starting the ChannelService of the channel API
                 ChannelService channelService = ChannelServiceFactory
                                 .getChannelService();
                 // Creating the client token
                 String token = channelService.createChannel(userId);
                 req.getSession().setAttribute(token, token);

                 out.println(html);
                 out.println(head);
                 out.println(titleThis is a servlet which will be used to 
 try the
 new Channel API/title);
                 out.println(/head);
                 out.println(body);
                 out.println(a href=\/ChannelAPI.jsp\Click Here/a to 
 recieve a
 notification on the next page using channel API);
                 out.println(/body);
         }

 }

 Channel API.jsp
 script
     channel = new goog.appengine.Channel('%= userId%');
     socket = channel.open();
     //socket.onopen = onOpened;
     socket.onmessage = onMessage;
     socket.onerror = onError;
     socket.onclose = onClose;
     onMessage = function (message){
         $.pnotify({
                         pnotify_title: 'Regular Notice',
                         pnotify_text: message.data
                 });
     };

     onError = function (description,code){
         $.pnotify({
                         pnotify_title: 'Uh Oh!',
                         pnotify_text: 'something went wrong',
                         pnotify_type: 'error',
                         pnotify_hide: false
                 });
     };
  /script

 Send Message servlet:
 public void doGet(HttpServletRequest req, HttpServletResponse resp)
                         throws ServletException, IOException {

                 String userId = (String) 
 req.getSession().getAttribute(token);
                 ChannelService channelService =
 ChannelServiceFactory.getChannelService();
                 channelService.sendMessage(new ChannelMessage(userId,
                                 This is the message that has been sent));

         }

 }

 The stack trace I got
 Uncaught exception from servlet
 com.google.appengine.api.channel.ChannelFailureException: An
 unexpected error occurred.
         at
 com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServ 
 iceImpl.java:
 59)

 Can you tell me if there is something wrong with the code or with the
 Channel API?

 Thanks in advance,
 Tarun

-- 
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] App Engine Channel API - Cant send messages

2010-12-17 Thread Fabian Kajzar
Hi

i want to use the channel api but everytime i try to send a message, i just 
get these exception:

[ERROR] javax.servlet.ServletContext log: Exception while dispatching 
incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public 
abstract void 
de.dhbw.channeltest.client.GreetingService.greetServer(java.lang.String)' 
threw an unexpected exception: 
com.google.appengine.api.channel.ChannelFailureException: An unexpected 
error occurred.
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
at 
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207)
at 
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243)
at 
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at 
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at 
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at 
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at 
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at 
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)
Caused by: com.google.appengine.api.channel.ChannelFailureException: An 
unexpected error occurred.
at 
com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServiceImpl.java:59)
at 
de.dhbw.channeltest.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at 
com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562)
... 30 more
Caused by: com.google.apphosting.api.ApiProxy$ApplicationException: 
ApplicationError: 2: 
at 
com.google.appengine.api.channel.dev.LocalChannelService.sendChannelMessage(LocalChannelService.java:91)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at 
com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.callInternal(ApiProxyLocalImpl.java:387)
at 
com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.call(ApiProxyLocalImpl.java:353)
at 
com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.call(ApiProxyLocalImpl.java:332)
at java.util.concurrent.Executors$PrivilegedCallable$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.concurrent.Executors$PrivilegedCallable.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at 

Re: [appengine-java] Channel API problem

2010-12-17 Thread Luis Montes
You're trying to connect with the userId in your script.  You need to
connect with the token.  I made the same mistake the first time :)

BTW,  here's a collaborative whiteboard demo with the channel API :

http://goo.gl/F5rb2


Luis


On Thu, Dec 16, 2010 at 3:26 AM, Tarun tarun.chha...@gmail.com wrote:

 I have been trying to use the newly launched Channel API on SDK 1.4 in
 my project. I try to push a message to client which actually pops up a
 notification but I am getting the ChannelFailureException.
 Here is the code:
 TestServlet Where the token is created:
 public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
resp.setContentType(text/html);
// Creating the userID on the basis of the session id
String userId = req.getSession().getId();
// Starting the ChannelService of the channel API
ChannelService channelService = ChannelServiceFactory
.getChannelService();
// Creating the client token
String token = channelService.createChannel(userId);
req.getSession().setAttribute(token, token);

out.println(html);
out.println(head);
out.println(titleThis is a servlet which will be used to
 try the
 new Channel API/title);
out.println(/head);
out.println(body);
out.println(a href=\/ChannelAPI.jsp\Click Here/a to
 recieve a
 notification on the next page using channel API);
out.println(/body);
}
 }

 Channel API.jsp
 script
channel = new goog.appengine.Channel('%= userId%');
socket = channel.open();
//socket.onopen = onOpened;
socket.onmessage = onMessage;
socket.onerror = onError;
socket.onclose = onClose;
onMessage = function (message){
$.pnotify({
pnotify_title: 'Regular Notice',
pnotify_text: message.data
});
};

onError = function (description,code){
$.pnotify({
pnotify_title: 'Uh Oh!',
pnotify_text: 'something went wrong',
pnotify_type: 'error',
pnotify_hide: false
});
};
  /script

 Send Message servlet:
 public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

String userId = (String)
 req.getSession().getAttribute(token);
ChannelService channelService =
 ChannelServiceFactory.getChannelService();
channelService.sendMessage(new ChannelMessage(userId,
This is the message that has been sent));

}

 }

 The stack trace I got
 Uncaught exception from servlet
 com.google.appengine.api.channel.ChannelFailureException: An
 unexpected error occurred.
at

 com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServiceImpl.java:
 59)

 Can you tell me if there is something wrong with the code or with the
 Channel API?

 Thanks in advance,
 Tarun

 --
 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] Re: JSP compiling fails after upgrade from 1.3.8 to 1.4.0

2010-12-17 Thread Ronoaldo José de Lana Pereira
I had the same issues with two projects after upgrade. If you are
using the Eclipse Plugin, this steps may work for you:

1. Right click on Project - Build Path - Configure Build Path.
2. Go to Order and Export tab
3. Move your src folder to top, then put JRE, App Engine SDK, GWT SDK
(if applicable) and Junit 4 (if applicable) above, and all other libs
above them.

After this, your local devserver may work as usual.

Best Regards,

On 16 dez, 02:57, Chris Keller xyl...@gmail.com wrote:
 Note that the previous post only applies to my local development
 environment. I just tried using the new version of the SDK on the production
 server, and it has no problems.

-- 
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] BlobstoreService has dependency on HttpServletRequest, my web framework does not

2010-12-17 Thread Dave
My web framework doesn't give access to the raw servlet request or
response objects (stateless).  This is obviously making it rather
difficult to use the BlobstoreService.  Is there any way to get the
BlobKeys from a successful upload other than
BlobstoreService.getUploadedBlobs?  I suppose I could bounce the
request off another server using servlets for handling but this is
awfully hacky.

On the flip side, can I use ByteArrayInputStream to fetch a blob and
write it directly to a response without actually calling
blobstoreService.serve?  I know this isn't efficient, but I do not see
a way to get a raw url to the blob meaning I can't access the store
from a different server.  It's looking like I will have to setup
another GAE app to handle file uploads.

-- 
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] Re: The API call mail.Send() required more quota than is available.

2010-12-17 Thread Ikai Lan (Google)
It's to slow down spammers. To have a higher limit, you can enable billing.
You'll have up to 5,100 recipients a minute.

http://code.google.com/appengine/docs/quotas.html#Mail

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



On Mon, Dec 13, 2010 at 7:14 PM, Ronald R. DiFrango
ron.difra...@gmail.comwrote:

 I figured this out, even though the recipient quota per day is 2,000, you
 can not send an email that has more than 8 recipients within a minute.  I
 worked around this by using a mailing list service that emails are sent to
 instead.  Why is there such a low er email recipient total?

 --
 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] Re: App Engine Channel API - Cant send messages

2010-12-17 Thread 9drag...@googlemail.com


 1. generate id on server and send to client:
 token = ChannelServiceFactory.getChannelService().createChannel(name);
 return token;

 3. send message (on server)
 ChannelService cs = ChannelServiceFactory.getChannelService();
 ChannelMessage cm = new ChannelMessage(token, message);
 cs.sendMessage(cm);

 but then i get the error :/

 Any ideas?

 Thanks :)

ChannelMessage cm = new ChannelMessage(token, message);
must be
ChannelMessage cm = new ChannelMessage(name, message);

-- 
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] Re: process large file in BlobStore?

2010-12-17 Thread Ikai Lan (Google)
Glad it could be of help!

I need to free up some time to write some more articles. I've got all these
ideas in mind ...

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



On Fri, Dec 17, 2010 at 12:56 AM, Toby toby.ro...@gmail.com wrote:

 Hi,

 I found this great tutorial from Ikai. it explains how to use the
 Mapper API to import large CSV files from the blob store to the
 datastore.
 So it is essentially what I was looking for.
 Here the link for those who might have the same need:

 http://ikaisays.com/2010/08/11/using-the-app-engine-mapper-for-bulk-data-import

 Cheers,
 Toby

 On Dec 2, 6:53 pm, Didier Durand durand.did...@gmail.com wrote:
  Hi,
 
  you have to distinguish between a Blob stored in Datastore whose limit
  is 1 Mbyte and a blob stored in the blobstore whose limit is 2 Gbytes
 
  For the blob in the blobstore you access it by chunks via the api: see
  the byte range inhttp://
 code.google.com/appengine/docs/java/blobstore/overview.html#Se...
 
  To read those chunks, you have to use the BlobstoreInputStream and its
  read() method.
 Seehttp://code.googlecom/appengine/docs/java/javadoc/com/google/appengin...
 
  regards
  didier
 
  On Dec 2, 6:23 pm, Toby toby.ro...@gmail.com wrote:
 
   Hi,
 
   I am trying to figure out how to programatically process a file from
   the BlobStore. It is a CSV file of about 100MB. I read that the limit
   is 1MB but I have seen in Pyton that it can be read partially (they
   call it BlobReader).
   Is this a feature currently not available in Java? Or is there a way I
   can process this data step by step using the task-queue?
 
   Thank you,
   Toby

 --
 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] Re: The API call mail.Send() required more quota than is available.

2010-12-17 Thread Ronald R. DiFrango
Ikai,

I do understand that, but 8 seems like a somewhat arbitrary number.  My site
was just attempting to send an email to my immediate family which easily
exceeds that number.  And given my actual usage, there is no real reason for
me to enable billing.

Ron

On Fri, Dec 17, 2010 at 12:44 PM, Ikai Lan (Google) 
ikai.l+gro...@google.com ikai.l%2bgro...@google.com wrote:

 It's to slow down spammers. To have a higher limit, you can enable billing.
 You'll have up to 5,100 recipients a minute.

 http://code.google.com/appengine/docs/quotas.html#Mail

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



 On Mon, Dec 13, 2010 at 7:14 PM, Ronald R. DiFrango 
 ron.difra...@gmail.com wrote:

 I figured this out, even though the recipient quota per day is 2,000, you
 can not send an email that has more than 8 recipients within a minute.  I
 worked around this by using a mailing list service that emails are sent to
 instead.  Why is there such a low er email recipient total?

 --
 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




-- 
Ron DiFrango
http://rdifrango.blogspot.com/

-- 
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] Entity relationship designing - best practice

2010-12-17 Thread har_shan
i want to hear the best practice on establishing entity relationships in my 
case-

Example, for sake of discussion:-
User 
Exam
Page
Question
Answer

As you can see, from top, each entity has 1 - many relationship with entity 
immediately beneath it. 
Interesting case is a User can have any number of Exam and it can *scale* in 
whatever manner, but a Exam usually will have few Pages, 
a Page with few Questions, Questions with few Answers

I saw this interesting post
best practice to persist medium-large 
datahttp://www.mail-archive.com/google-appengine-java@googlegroups.com/msg06087.html
 

(which is also a answer to this ques) and it made me to design like this: 
Also i plan to keep each entity in its own entity group, as recommended by 
AppEngine - totally eliminating Parent relationship, as far as possible

class User{
String name;
// ListKeyExam exams;  NOT a good idea, as this will unnecessarily load 
bulk amt of Exam keys when i load User
...
}

So i would use a query to get all Exams created by any User. Fine. But 

class Exam{
String subject;
// With this i can *quickly* retrieve all Pages with keys, but as Exam and 
Page are not in same Entity Group, 
// how do i maintain *consistency* when, say, i delete a Page and 
accordingly remove that Key entry in Exam.
// Also as said earlier, no. of pages (hence keys) shouldn't be too high, so 
dont need to worry abt size
ListKeyPage pages;  
}

class Page{
String pageNo. 
KeyExam exam; // with this i can *only(?)* use query to get all Pages 
under a Exam, so *unnecessary index scan*[1]
ListKeyQuestion questions;
}

The same extends to Page - Question - Answer

[1] Retrieving via Keys are faster than 
queryinghttp://www.mail-archive.com/google-appengine@googlegroups.com/msg33846.html
 


So what is your recommendation and why? 
I can suspect that it should be a trade-off between unnecessary loading of 
keys/extra scan of indices but want to get some thoughts and what about 
consistency?

Thanks much in advance.
p.s. though not relevant, most likely i will use low level framework, mainly 
Objectify.. 

-- 
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] Re: Not sending email with Javamail and no error

2010-12-17 Thread A. Stevko
Straight zero utilizations means the email api is not accepting your
requests rather than the message getting lost in transit.
Where the error goes is not obvious due to Issue 1800
I suggest continuing to replace your fields with static values to see which
one is not accepted.
My gut says to check the character set - UTF-8 works fine for me.
Otherwise you may be encountering a known issue with the mail server:
http://code.google.com/p/googleappengine/issues/list?can=2q=component%3DMailcolspec=ID+Type+Component+Status+Stars+Summary+Language+Priority+Owner+Logcells=tiles

Here is my code, I've embedded it into a queue task and it works thousands
of times daily.

Message msg = new MimeMessage(session);

msg.setFrom(new InternetAddress(fromAddress, fromName));

msg.addRecipient(Message.RecipientType.TO,

new InternetAddress( toAddress, toName ));

msg.setReplyTo( ADMIN_ADDRESSES );

msg.addHeader( Return-Path , ADMIN_ADDRESS );

if ( bccSupport != null  !bccSupport.isEmpty() ) {

// only add support bcc if specified

msg.addRecipient( Message.RecipientType.BCC, new InternetAddress( bccSupport
 ));

}

msg.setSubject(subject);

msg.setText( body );

Transport.send(msg);


http://code.google.com/p/googleappengine/issues/list?can=2q=component%3DMailcolspec=ID+Type+Component+Status+Stars+Summary+Language+Priority+Owner+Logcells=tiles

On Thu, Dec 16, 2010 at 10:01 PM, Moretto mala...@gmail.com wrote:

 As you see the first time i've deployed my app, 2 email were sent. It
 appeared at my cota details. Now  Could you post your headers details?

 Mail API Calls   0%  0 of 7,000  Okay
 Recipients Emailed   0%  0 of 2,000  Okay
 Admins Emailed   0%  0 of 5,000  Okay
 Message Body Data Sent   0%  0.00 of 0.06 GBytes Okay
 Attachments Sent 0%  0 of 2,000  Okay
 Attachment Data Sent 0%  0.00 of 0.10 GBytes Okay

 On Dec 17, 2:21 am, A. Stevko andy.ste...@gmail.com wrote:
  I have much the same code although I set more headers.
  How about adding yourself as a BCC and/or CC?
  Also, do you see any utilization  in your Quota details - Mail API Calls
  and Recipients Emailed ?
 
 
 
  On Thu, Dec 16, 2010 at 8:12 PM, Moretto mala...@gmail.com wrote:
   Still no messagesand no errors
 
Properties props = new Properties();
  Session session = Session.getDefaultInstance(props, null);
 
//  UserService userService =
   UserServiceFactory.getUserService();
  //User user = userService.getCurrentUser();
  try {
  Message msg = new MimeMessage(session);
  //msg.setFrom(new InternetAddress(user.getEmail()));
   msg.setFrom(new InternetAddress(mala...@gmail.com, [k-
   share]));
   msg.addRecipient(Message.RecipientType.TO,
  new InternetAddress(email, destinatario));
  msg.setSubject(titulo);
  msg.setText(texto);
  Transport.send(msg);
 
  } catch (AddressException e) {
  e.printStackTrace();
  return false;
  } catch (MessagingException e) {
  e.printStackTrace();
  return false;
  } catch (Exception e) {
  e.printStackTrace();
  return false;
  }
  return true;
 
   On Dec 17, 2:03 am, Moretto mala...@gmail.com wrote:
can send email messages on behalf of the app's administrators, and
 on
behalf of users with Google Accounts.
 
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
 
These two lines of code retrieve the current google user logged in.
i'll change it and test.
 
On Dec 17, 1:52 am, A. Stevko andy.ste...@gmail.com wrote:
 
 I now recall the conditions...
  http://code.google.com/appengine/docs/java/mail/overview.html
 
  App Engine applications can send email messages on behalf of the
   app's
  administrators, and on behalf of users with Google Accounts.
 On Thu, Dec 16, 2010 at 7:49 PM, A. Stevko andy.ste...@gmail.com
   wrote:
  Does the email address used in your From have administrator
   privileges for
  your app?
 
 msg.setFrom(new InternetAddress(user.getEmail()));
 
  I read somewhere that system could only send email from
 registered
   email
  addresses.
 
  On Thu, Dec 16, 2010 at 7:13 PM, Moretto mala...@gmail.com
 wrote:
 
  I've changed the code to initialize the Session object passing
  properties as a parameter. Nothing changed. Still does not send
   emails
  and doesnt throws any exception. Ideias??
 
   Properties props = new Properties();
 Session session = Session.getDefaultInstance(props,
 null);
 
  UserService userService =
   UserServiceFactory.getUserService();
 User user = userService.getCurrentUser();
 try {
 

[appengine-java] Re: Cannot resize a .tif image using the ImagesService on the dev app server

2010-12-17 Thread Ian Marshall
I can confirm that my testing on the GAE/J dev app server has revealed
that its images service can process formats as follows:

  JPG:  Yes
  PNG:  Yes
  GIF:  Yes
  ICO:  No
  TIFF: No
  BMP:  Yes.

Would Google consider updating their images service documentation?

Regards,

Ian Marshall


On Dec 17, 3:43 pm, Ian Marshall ianmarshall...@gmail.com wrote:
 I see a post from Nick Johnson of Google on StackOverflow.com dated
 6th July 2010 about plug-ins. He said:

   You're trying to work with 'ico' and 'tif' images. Neither of these
 are supported on App Engine - only JPG, PNG and GIF.

 The GAE/J documentation Images Java API Overview at:

  http://code.google.com/intl/en/appengine/docs/java/images/overview.ht...

 states that:

   The service accepts image data in the JPEG, PNG, GIF (including
 animated GIF), BMP, TIFF and ICO formats.

 Does this GAE/J documentation need to be corrected?

 On Dec 17, 7:35 am, Ian Marshall ianmarshall...@gmail.com wrote:

  No ideas, anyone?

  On Dec 16, 11:59 am, Ian Marshall ianmarshall...@gmail.com wrote:

   I refer to the related post entitled WARNING: No image reader found
   for format ico. An ImageIO plugin must be installed to use this
   format with the DevAppServer. dated 7th June 2009 at:

  http://groups.google.com/group/google-appengine-java/browse_thread/th...

   where a query about the dev app server warnings below was raised, but
   after Jason of Google asked a supplementary question he received no
   response from the original poster.

   My web app uploads an image file from a web browser user and then, if
   the file is larger than around 900kB I use the GAE/J ImagesService to
   reduce the image data size to this level. An extract of my relevant
   code is:

           byte[] baImageSource = [...];    // Data from an uploaded image 
   file
           int nNewWidth  = [...];          // Calculate correct shrinkage
           int nNewHeight = [...];          // Calculate correct shrinkage

           Image imgSource = ImagesServiceFactory.makeImage(baImageSource);
           ImagesService isService = ImagesServiceFactory.getImagesService();
           Transform tfrm = ImagesServiceFactory.makeResize(nNewWidth,
   nNewHeight);
           Image imgNew = isService.applyTransform(tfrm, imgSource);
           byte[] baResult = imgNew.getImageData();    // The shrunken image
   data

   When I run my ImagesService code on my GAE/J development server
   ((latest) version 1.4.0) I get the two warnings:

           16-Dec-2010 10:40:18
   com.google.appengine.api.images.dev.LocalImagesService init
           WARNING: No image reader found for format ico. An ImageIO plugin
   must be installed to use this format with the DevAppServer.

           16-Dec-2010 10:40:18
   com.google.appengine.api.images.dev.LocalImagesService init
           WARNING: No image reader found for format tif. An ImageIO plugin
   must be installed to use this format with the DevAppServer.

   My code runs well for shrinking .jpg files, but when I try this for
   a .tif file of size 6.11 MB I get an IllegalArgumentException on my
   call to ImagesService.applyTransform(...). (I set out a stack trace at
   the foot of this post.)

   I have a few questions for those interested:

     ·  How do I get a tif ImageIO plug-in for the ImagesService ()?
     ·  Should this plug-in be supplied with the GAE/J SDK in future
   releases?
     ·  Does this issue apply to the dev app server only (I have not yet
   deployed this to production)?

   Cheers,

   Ian Marshall

   STACK TRACE WHEN TRANSFORMING A .TIF FILE
   -
   java.lang.IllegalArgumentException: Failed to read image
   at
   com.google.appengine.api.images.ImagesServiceImpl.convertApplicationException(ImagesServiceImpl.java:
   301)
   at
   com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
   73)
   at
   com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
   50)
   at
   com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
   39)
   at [my package
   path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java:
   311)
   at [my package
   path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java:
   236)
   at [my package path].wicket.stuff.MyPage$5.onSubmit(MyPage.java:1348)
   at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:
   1561)
   at org.apache.wicket.markup.html.form.Form.process(Form.java:958)
   at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:
   920)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at
   com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
   100)
   at
   org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:
   182)
   at
   

[appengine-java] Re: App Engine Channel API - Cant send messages

2010-12-17 Thread Fabian
Problem solved :)

Thank you !

On Dec 17, 6:46 pm, 9drag...@googlemail.com
9drag...@googlemail.com wrote:
  1. generate id on server and send to client:
  token = ChannelServiceFactory.getChannelService().createChannel(name);
  return token;

  3. send message (on server)
  ChannelService cs = ChannelServiceFactory.getChannelService();
  ChannelMessage cm = new ChannelMessage(token, message);
  cs.sendMessage(cm);

  but then i get the error :/

  Any ideas?

  Thanks :)

 ChannelMessage cm = new ChannelMessage(token, message);
 must be
 ChannelMessage cm = new ChannelMessage(name, message);

-- 
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] Re: The API call mail.Send() required more quota than is available.

2010-12-17 Thread Ikai Lan (Google)
8 is fairly arbitrary, but there's always going to be a number that bothers
people, be it 10, 20 or 50.

You should enable billing. We only charge if you go above the daily free
quota, and it raises the rate limit. That means that if you send 10 emails
per minute and only do this once a month, you'll never hit this quota limit,
and we'll likely not bill you since you'll still be well within our free
quota.

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



On Fri, Dec 17, 2010 at 10:28 AM, Ronald R. DiFrango ron.difra...@gmail.com
 wrote:

 Ikai,

 I do understand that, but 8 seems like a somewhat arbitrary number.  My
 site was just attempting to send an email to my immediate family which
 easily exceeds that number.  And given my actual usage, there is no real
 reason for me to enable billing.

 Ron


 On Fri, Dec 17, 2010 at 12:44 PM, Ikai Lan (Google) 
 ikai.l+gro...@google.com ikai.l%2bgro...@google.com wrote:

 It's to slow down spammers. To have a higher limit, you can enable
 billing. You'll have up to 5,100 recipients a minute.

 http://code.google.com/appengine/docs/quotas.html#Mail

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



 On Mon, Dec 13, 2010 at 7:14 PM, Ronald R. DiFrango 
 ron.difra...@gmail.com wrote:

 I figured this out, even though the recipient quota per day is 2,000, you
 can not send an email that has more than 8 recipients within a minute.  I
 worked around this by using a mailing list service that emails are sent to
 instead.  Why is there such a low er email recipient total?

 --
 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




 --
 Ron DiFrango
 http://rdifrango.blogspot.com/

 --
 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] Multiple Async get vs one Sync batch get?

2010-12-17 Thread Max Ross (Google)
Interesting results!  I've run similar tests with writes (put and delete)
and my results indicate that in most situations, multiple async writes will
perform better than one batch sync call.  I can't think of any reason this
wouldn't be the case for reads as well.  Are your entities all in different
entity groups?

Thanks,
Max

On Fri, Dec 17, 2010 at 4:11 PM, Ikai Lan (Google)
ikai.l+gro...@google.comikai.l%2bgro...@google.com
 wrote:

 Very cool. Thanks for posting!

 What kind of processing are you doing after you retrieve the entities? I'm
 surprised it made a difference.


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



 On Fri, Dec 17, 2010 at 2:48 PM, Gal Dolber gal.dol...@gmail.com wrote:

 Even better :)

 [image: Screen shot 2010-12-17 at 7.48.44 PM.png]


 On Fri, Dec 17, 2010 at 7:31 PM, Gal Dolber gal.dol...@gmail.com wrote:

 Here are my results if anyone interested.

 The idea was splitting a batch into multiple async gets so I could start
 processing each results while the others were being fetched.
 With the batch get I need to wait until I get all the results to do the
 next operations.

 At the end (on my situation) batching won.
 *
 *
 *Multiple async gets*
 [image: MultipleAsyncs.png]

 *Batching*

 [image: Batch.png]


 On Thu, Dec 16, 2010 at 4:48 PM, Gal Dolber gal.dol...@gmail.comwrote:

 Yes, I am talking about datastore api.

 I made some isolated tests and the batch always wins (no by so much).

 But in my app, when I break the batch into multiple async gets, I can
 start processing each async get result (and doing another api calls)
 before... and it seems to be perform better.

 I'll keep doing tests and post if find anything interesting.
 Thanks!


 On Thu, Dec 16, 2010 at 2:42 PM, Ikai Lan (Google) 
 ikai.l+gro...@google.com ikai.l%2bgro...@google.com wrote:

 You're talking about the datastore API? Underneath the hood,
 synchronous gets just make asynchronous calls and block on Future.get()
 anyway. Making a single synchronous batch get would translate to a single
 asynchronous RPC with multiple keys vs. multiple asynchronous get RPCs. I
 suspect the single batch call will perform better from a CPU cost/quota
 perspective, but I'd defer to AppStats benchmarks as the authoritative
 answer.

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



 On Wed, Dec 15, 2010 at 3:38 AM, Gal Dolber gal.dol...@gmail.comwrote:

  Should I expect the similar performance? or the batch will always be
 better?

 --
 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-appengine-java?hl=en.




 --
 Guit: Elegant, beautiful, modular and *production ready* gwt
 applications.

 http://code.google.com/p/guit/







 --
 Guit: Elegant, beautiful, modular and *production ready* gwt
 applications.

 http://code.google.com/p/guit/







 --
 Guit: Elegant, beautiful, modular and *production ready* gwt applications.

 http://code.google.com/p/guit/




  --
 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.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 

[appengine-java] Re: JSP compiling fails after upgrade from 1.3.8 to 1.4.0

2010-12-17 Thread xylo04
Ronoaldo, that was exactly it! I went to Configure Build Path, Order
and Export, and reordered the entries. I have my project's src and
test folders first, then JRE System Library, App Engine SDK, GWT SDK,
then my project's special libraries (google-api-client and gwt-maps).
It runs great on my local server again. Thanks!

On Dec 17, 4:20 am, Ronoaldo José de Lana Pereira ronoa...@gmail.com
wrote:
 I had the same issues with two projects after upgrade. If you are
 using the Eclipse Plugin, this steps may work for you:

 1. Right click on Project - Build Path - Configure Build Path.
 2. Go to Order and Export tab
 3. Move your src folder to top, then put JRE, App Engine SDK, GWT SDK
 (if applicable) and Junit 4 (if applicable) above, and all other libs
 above them.

 After this, your local devserver may work as usual.

 Best Regards,

 On 16 dez, 02:57, Chris Keller xyl...@gmail.com wrote:







  Note that the previous post only applies to my local development
  environment. I just tried using the new version of the SDK on the production
  server, and it has no problems.

-- 
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: Problem switching to 1.4.0 - JSP compilation fails

2010-12-17 Thread Helder Suzuki
Hi Lorenzo,

I was having this problem too.

This will fix it in the development environment:

1) Open appengine-java-sdk-1.4.0.zip
2) Find el-api.jar, jsp-api.jar, servlet-api.jar and 
repackaged-appengine-jasper-6.0.29.jar
3) Copy them to war/WEB-INF/lib

Thanks,
Helder

-- 
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] Re: The API call mail.Send() required more quota than is available.

2010-12-17 Thread Fabrizio Accatino
... or enqueue your outgoing message on a task queue with a slow run
frequency (let's say 5/minutes).
I do that and I'm very happy.  :)

Fabrizio


On Sat, Dec 18, 2010 at 1:15 AM, Ikai Lan (Google)
ikai.l+gro...@google.comikai.l%2bgro...@google.com
 wrote:

 8 is fairly arbitrary, but there's always going to be a number that bothers
 people, be it 10, 20 or 50.

 You should enable billing. We only charge if you go above the daily free
 quota, and it raises the rate limit. That means that if you send 10 emails
 per minute and only do this once a month, you'll never hit this quota limit,
 and we'll likely not bill you since you'll still be well within our free
 quota.



-- 
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: Newbie Q - Public IP address_DNS Server?

2010-12-17 Thread Julien Lancelot
Thanks for your message Andrew.

I know that the web service security whitelisting ip adress is poor, but
it's hosted by another company who provide the service I need and only than
can provide it...
I don't think they gonna change their security for me!

It's a shame because I really want to use Google app engine, but just
because of this I will have to use AWS, which will be much more complex to
manage...



On Fri, Dec 17, 2010 at 01:17, A. Stevko andy.ste...@gmail.com wrote:

 Nope - the best I can think of  ghs.google.com  although that is where
 inbound traffic is going to and not necessarily where url fetch hits
 originate from. I can't imaging all the traffic from the url fetch pool
 coming from any single ip address.

 FWIW, A web service whitelisting an ip address is poor security because it
 is relatively easy for public relays to see where the traffic is coming from
 and then spoof hits to come from those sources. It is much better to sign
 your web service requests with a key like AWS SimpleDB does.


 On Thu, Dec 16, 2010 at 6:52 AM, jlancelot julien.lance...@gmail.comwrote:

 Hello everyone,

 I come back on this subject because I need to set a public IP on my GAE.
 I need to call a Web Service from the server but this web service need a
 IP to authorize anyone to call it. When I lauch GAE in local, there's no
 problem because I can identify my IP.

 Is there a solution to set a public IP on a Google App Engine?

 Thanks a lot for your answer!

 --
 You 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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Re: This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-17 Thread Matija
Are you sure about this ? I have noticed that I did indeed get 
new additional instance, but are their automatic scaling algorithm so simple 
that uses only average latency time. Maybe this is truth for first 10 
instances and then they add additional checking. Although they nowhere 
display average cpu_ms or api_cpu_ms per instance we can't be sure that they 
don't collect it and use it. Few bytes per instance and few mathematical 
operation. I would collect it.

With low latency they are able to easily scale applications on application 
servers, but with high cpu/api cpu ms they are not able to easily scale 
datastore or any other api service. So we can't say that 160 ms request with 
17000 cpu ms is nice scalable request, but is 160 ms request with 1700 cpu 
ms ok or not.

So is there some good max cpu/api cpu policy that they didn't explained ? Or 
they did with this yellow and red coloring schema around 700/1000 ms cpu 
usage.

-- 
You 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: max_backoff_seconds - working?

2010-12-17 Thread vlad
Thanks Nick. That makes sense. Indeed, I have been running a single task 
chain which would result in at most 1 task being pending at a time.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-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: Memcache broken with Always On?

2010-12-17 Thread Erik

Not sure if it is related, but I was getting some interesting memcache
errors that I had to work around:

javax.servlet.ServletContext log: Exception while dispatching incoming
RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method
'public abstract java.lang.String
com.WikiHop.client.SearchPath.find(java.lang.String,java.lang.String)
throws java.lang.IllegalArgumentException' threw an unexpected
exception: com.google.appengine.api.memcache.InvalidValueException: IO
exception parsing value of '3434143'
at
com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:
378)
 ...
Caused by: com.google.appengine.api.memcache.InvalidValueException: IO
exception parsing value of '3434143'
at
com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:
289)
at
com.google.appengine.api.memcache.jsr107cache.GCache.get(GCache.java:
166)


On Dec 16, 2:53 pm, Tom Phillips tphill0...@gmail.com wrote:
 Certainly Ikai,

 Firstly, some of my logs (url and classes slightly modified to hide
 some app details) that show how only the same instance picks up the
 entry. I'm determining and logging the instance using a UUID that I
 assign to a static class variable. The key for the cache lookup is
 passed in as a request query parameter to the followup requests.

 Here are two runs of the code to follow. In each, the bottom log is
 the cache entry being added. The next two are subsequent requests that
 both look for the entry. The entry is only found when then instance
 matches, regardless of which follow-up request.

 This first run shows how the bottom instance is different from the one
 that services both followup requests. So they don't find the entry:

 50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001
 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
 LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
 Message NOT found in cache for 619001 - building

 50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder?
 key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C
 +2%3A18+PMrlang=enrvoice=woman
 W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN
 CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
 W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: Message NOT
 found in cache for 619001 - building

 0.1.0.2 - - [16/Dec/2010:11:19:08 -0800] POST /tasks/voicereminder
 HTTP/1.1 200 105 http://cliniconexdev.appspot.com/cron/
 processreminders?state=new
 W 12-16 11:19AM 08.581 com.mycode.CallPhoneAdapter doSend: CACHING
 message from instance: e4d5452e-c744-4333-b1d4-38eb55f97445
 W 12-16 11:19AM 08.585 com.mycode.CallPhoneAdapter doSend: Adding to
 cache with key:619001
 W 12-16 11:19AM 08.604 com.mycode.CallPhoneAdapter doSend:
 Successfully cached reminder 619001

 In this second run, the first followup request hits the same instance
 that added it, and finds it. The second isn't so lucky, hitting a
 different instance

 184.73.13.122 - - [16/Dec/2010:11:22:39 -0800] GET /processg?
 key=620001
 W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet:
 LOOKING IN CACHE on Instance: ff6ef71c-a017-4316-aa81-e77db741702b
 W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet:
 Message NOT found in cache for 620001 - building

 204.236.222.67 - - [16/Dec/2010:11:22:28 -0800] POST /startreminder?
 key=620001pname=Optimal+Physio+Devatime=Friday+December+17%2C
 +2%3A18+PMrlang=enrvoice=woman HTTP/1.1 200 683 -
 CallProxy/0.7,gzip(gfe) cliniconexdev.appspot.com ms=24 cpu_ms=23
 api_cpu_ms=0 cpm_usd=0.000805
 W 12-16 11:22AM 28.127 com.mycode.CallMLServlet doGet: LOOKING IN
 CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
 W 12-16 11:22AM 28.134 com.mycode.CallMLServlet doGet: Message for
 entry 620001 FOUND in cache - using

 0.1.0.2 - - [16/Dec/2010:11:22:06 -0800] POST /tasks/voicereminder
 HTTP/1.1 200 105 http://cliniconexdev.appspot.com/cron/
 processreminders?state=new AppEngine-Google;
 (+http://code.google.com/appengine) cliniconexdev.appspot.com
 ms=506 cpu_ms=1664 api_cpu_ms=941 cpm_usd=0.046287 queue_name=reminder-
 queue task_name=17196018701084092971
 W 12-16 11:22AM 05.964 com.mycode.CallPhoneAdapter doSend: CACHING
 message from instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
 W 12-16 11:22AM 05.965 com.mycode.CallPhoneAdapter doSend: Adding to
 cache with key:620001
 W 12-16 11:22AM 05.984 com.mycode.CallPhoneAdapter doSend:
 Successfully cached reminder 620001

 Here is the code that creates the cache (if required) and adds the
 entry in the first request:
 Cache cache = null;

 log.warning(CACHING message from instance:  + jvmId);

 try {
    cache = CacheManager.getInstance().getCache(cache_reminderVoice);
  } catch (final Exception e) {
     log.fine(Cache cache_reminderVoice not yet created);

 }

 if (cache == null) {
   try {
      cache = 

[google-appengine] Re: Memcache broken with Always On?

2010-12-17 Thread Erik

Missed some more errors:

Caused by: java.io.InvalidClassException: com.WikiHop.jdo.Pi; local
class incompatible: stream classdesc serialVersionUID =
-6007756724690804603, local class serialVersionUID = -1398789866
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:579)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:
1600)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:
1513)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
1749)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at
com.google.appengine.api.memcache.MemcacheSerialization.deserialize(MemcacheSerialization.java:
163)
at
com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:
283)
... 43 more


On Dec 17, 3:56 am, Erik erik.e.wil...@gmail.com wrote:
 Not sure if it is related, but I was getting some interesting memcache
 errors that I had to work around:

 javax.servlet.ServletContext log: Exception while dispatching incoming
 RPC call
 com.google.gwt.user.server.rpc.UnexpectedException: Service method
 'public abstract java.lang.String
 com.WikiHop.client.SearchPath.find(java.lang.String,java.lang.String)
 throws java.lang.IllegalArgumentException' threw an unexpected
 exception: com.google.appengine.api.memcache.InvalidValueException: IO
 exception parsing value of '3434143'
         at
 com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:
 378)
  ...
 Caused by: com.google.appengine.api.memcache.InvalidValueException: IO
 exception parsing value of '3434143'
         at
 com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:
 289)
         at
 com.google.appengine.api.memcache.jsr107cache.GCache.get(GCache.java:
 166)

 On Dec 16, 2:53 pm, Tom Phillips tphill0...@gmail.com wrote:

  Certainly Ikai,

  Firstly, some of my logs (url and classes slightly modified to hide
  some app details) that show how only the same instance picks up the
  entry. I'm determining and logging the instance using a UUID that I
  assign to a static class variable. The key for the cache lookup is
  passed in as a request query parameter to the followup requests.

  Here are two runs of the code to follow. In each, the bottom log is
  the cache entry being added. The next two are subsequent requests that
  both look for the entry. The entry is only found when then instance
  matches, regardless of which follow-up request.

  This first run shows how the bottom instance is different from the one
  that services both followup requests. So they don't find the entry:

  50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001
  W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
  LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
  W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
  Message NOT found in cache for 619001 - building

  50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder?
  key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C
  +2%3A18+PMrlang=enrvoice=woman
  W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN
  CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
  W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: Message NOT
  found in cache for 619001 - building

  0.1.0.2 - - [16/Dec/2010:11:19:08 -0800] POST /tasks/voicereminder
  HTTP/1.1 200 105 http://cliniconexdev.appspot.com/cron/
  processreminders?state=new
  W 12-16 11:19AM 08.581 com.mycode.CallPhoneAdapter doSend: CACHING
  message from instance: e4d5452e-c744-4333-b1d4-38eb55f97445
  W 12-16 11:19AM 08.585 com.mycode.CallPhoneAdapter doSend: Adding to
  cache with key:619001
  W 12-16 11:19AM 08.604 com.mycode.CallPhoneAdapter doSend:
  Successfully cached reminder 619001

  In this second run, the first followup request hits the same instance
  that added it, and finds it. The second isn't so lucky, hitting a
  different instance

  184.73.13.122 - - [16/Dec/2010:11:22:39 -0800] GET /processg?
  key=620001
  W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet:
  LOOKING IN CACHE on Instance: ff6ef71c-a017-4316-aa81-e77db741702b
  W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet:
  Message NOT found in cache for 620001 - building

  204.236.222.67 - - [16/Dec/2010:11:22:28 -0800] POST /startreminder?
  key=620001pname=Optimal+Physio+Devatime=Friday+December+17%2C
  +2%3A18+PMrlang=enrvoice=woman HTTP/1.1 200 683 -
  CallProxy/0.7,gzip(gfe) cliniconexdev.appspot.com ms=24 cpu_ms=23
  api_cpu_ms=0 cpm_usd=0.000805
  W 12-16 11:22AM 28.127 com.mycode.CallMLServlet doGet: LOOKING IN
  CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
  W 12-16 11:22AM 28.134 com.mycode.CallMLServlet doGet: Message for
  entry 620001 FOUND in cache - using

  

[google-appengine] Re: Newbie Q - Public IP address_DNS Server?

2010-12-17 Thread Erwin Streur
You might want to star the following issue

http://code.google.com/p/googleappengine/issues/detail?id=1269

-- 
You 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] C2DM Rate Limiting

2010-12-17 Thread Millisecond
Hey all,

We're running into an odd issue, and not sure if it's us, the
AppEngine group, or the C2DM Android group at Google so I thought I'd
post here to start and see where we can get.

We have implemented a C2DM server on AppEngine servicing several
hundred of our clients' Android applications, sending a lot of
messages.  It was working quite well for a while, but now we're seeing
a lot of Error=QuotaExceeded returns from the C2DM server.

Seems like one of three causes:

-Our back-off algorithms aren't correct.  Hard to tell though as the
google docs are very light on what's an acceptable rate:
http://code.google.com/android/c2dm/index.html  I have turned off all
retry logic, only sending original messages and it still triggers, so
guessing it's not a back-off problem.

-We're just plain hitting a C2DM limit, but would be great to be able
to talk to someone at Google-Android about raising it.

-Google is limited based on source IP and lumping all GAE requests
together in a DDoS prevention bucket.  Which would mean that over time
our ability to send messages from GAE would only become worse.

At this point I'm just looking to eliminate possibilities and the
third one there seems to be the easiest to rule out.  Does anyone on
the AppEngine team have insight into whether that might be what's
happening?

Thanks,
-Casey

-- 
You 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: Newbie Q - Public IP address_DNS Server?

2010-12-17 Thread Barry Hunter
On 17 December 2010 08:02, Julien Lancelot julien.lance...@gmail.com wrote:
 Thanks for your message Andrew.
 I know that the web service security whitelisting ip adress is poor, but
 it's hosted by another company who provide the service I need and only than
 can provide it...
 I don't think they gonna change their security for me!
 It's a shame because I really want to use Google app engine, but just
 because of this I will have to use AWS, which will be much more complex to
 manage...

Why do you *have* to use AWS - there are other solutions

You could even stick with AppEngine and just proxy the API calls.
Could use a cheep VM elsewhere - or even a Tiny Instance on AWS. Or
apigee.com gives you more control over IPs used. .



 On Fri, Dec 17, 2010 at 01:17, A. Stevko andy.ste...@gmail.com wrote:

 Nope - the best I can think of  ghs.google.com  although that is where
 inbound traffic is going to and not necessarily where url fetch hits
 originate from. I can't imaging all the traffic from the url fetch pool
 coming from any single ip address.
 FWIW, A web service whitelisting an ip address is poor security because it
 is relatively easy for public relays to see where the traffic is coming from
 and then spoof hits to come from those sources. It is much better to sign
 your web service requests with a key like AWS SimpleDB does.

 On Thu, Dec 16, 2010 at 6:52 AM, jlancelot julien.lance...@gmail.com
 wrote:

 Hello everyone,
 I come back on this subject because I need to set a public IP on my GAE.
 I need to call a Web Service from the server but this web service need a
 IP to authorize anyone to call it. When I lauch GAE in local, there's no
 problem because I can identify my IP.
 Is there a solution to set a public IP on a Google App Engine?
 Thanks a lot for your answer!

 --
 You 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.

 --
 You 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.

 --
 You 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.


-- 
You 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: Newbie Q - Public IP address_DNS Server?

2010-12-17 Thread Julien Lancelot
Thanks, it's done!

Hope Google could do something sooner...


On Fri, Dec 17, 2010 at 13:43, Erwin Streur erwin.str...@gmail.com wrote:

 You might want to star the following issue

 http://code.google.com/p/googleappengine/issues/detail?id=1269

 --
 You 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] App Engine Limit on Index Entries per Entity

2010-12-17 Thread Ryan
I know that there is a limit of 5000 index entries per entity, which
means I can't do things like this:

class Foo(db.Model):
x = db.ListProperty(int)
y = db.ListProperty(int)

foo1 = Foo(x = range(5001))
foo1.put()

Furthermore, if I have the index in index.yaml

- kind: Foo
  properties:
  - name: x
  - name: y

then I also see from this thread:

http://groups.google.com/group/google-appengine/browse_thread/thread/d5f4dcb7d00ed4c6

that I can't do this:

foo2 = Foo(x = range(100), y=range(100))
foo2.put()

because that would give me 10,000 index entries.

However, my question is: if I DON'T have any entries in index.yaml for
Foo and try:
foo3 = Foo(x = range(100), y=range(100))
foo3.put()

will that still raise the BadRequestError:Too many indexed properties
for entity exception? From my tests, it looks like it won't cause any
errors. Is this correct? How many index entries would foo3 have in
this case? Is it 200 (the sum of the lengths of each list)? Or
something else?

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-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: Memcache broken with Always On?

2010-12-17 Thread Tom Phillips
Hit Erik,

From your stack trace, I think you are seeing something else. Have you
got an explicit serialVersionUID set in the com.WikiHop.jdo.Pi class
(your key is OK I think) that you are putting into Memcache? And if so
has it changed at some point? It looks like you may be either trying
to read out a different class entirely than was inserted into the
cache,  or have changed or added the serialVersionUID in the value
class since an entry was inserted and it is now stale.
serialVersionUID is a way of identifying a class (or version of a
class) to the java serialization framework - if you change it you are
telling it that it is effectively no longer compatible for
serialization with previous instances, even if you have change nothing
else in the class. So it's a good idea to set it early, and never
change it for a class unless you have a good reason to invalidate
older serialized entries.

I'm not having any problems reading values out of the cache. The
problem I'm seeing is that the entire entry can only be found if it
was inserted by the same JVM (or instance') that inserted it. A
scoping problem where it appears to be less global than it should be.

You may want to start a separate thread on your issue if you are still
seeing it and the above doesn't shed any light on it.

Thanks,
Tom


On Dec 17, 4:11 am, Erik erik.e.wil...@gmail.com wrote:
 Missed some more errors:

 Caused by: java.io.InvalidClassException: com.WikiHop.jdo.Pi; local
 class incompatible: stream classdesc serialVersionUID =
 -6007756724690804603, local class serialVersionUID = -1398789866
         at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:579)
         at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:
 1600)
         at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:
 1513)
         at
 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
 1749)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
         at
 com.google.appengine.api.memcache.MemcacheSerialization.deserialize(MemcacheSerialization.java:
 163)
         at
 com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:
 283)
         ... 43 more

 On Dec 17, 3:56 am, Erik erik.e.wil...@gmail.com wrote:

  Not sure if it is related, but I was getting some interesting memcache
  errors that I had to work around:

  javax.servlet.ServletContext log: Exception while dispatching incoming
  RPC call
  com.google.gwt.user.server.rpc.UnexpectedException: Service method
  'public abstract java.lang.String
  com.WikiHop.client.SearchPath.find(java.lang.String,java.lang.String)
  throws java.lang.IllegalArgumentException' threw an unexpected
  exception: com.google.appengine.api.memcache.InvalidValueException: IO
  exception parsing value of '3434143'
          at
  com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:
  378)
   ...
  Caused by: com.google.appengine.api.memcache.InvalidValueException: IO
  exception parsing value of '3434143'
          at
  com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:
  289)
          at
  com.google.appengine.api.memcache.jsr107cache.GCache.get(GCache.java:
  166)

  On Dec 16, 2:53 pm, Tom Phillips tphill0...@gmail.com wrote:

   Certainly Ikai,

   Firstly, some of my logs (url and classes slightly modified to hide
   some app details) that show how only the same instance picks up the
   entry. I'm determining and logging the instance using a UUID that I
   assign to a static class variable. The key for the cache lookup is
   passed in as a request query parameter to the followup requests.

   Here are two runs of the code to follow. In each, the bottom log is
   the cache entry being added. The next two are subsequent requests that
   both look for the entry. The entry is only found when then instance
   matches, regardless of which follow-up request.

   This first run shows how the bottom instance is different from the one
   that services both followup requests. So they don't find the entry:

   50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001
   W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
   LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
   W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
   Message NOT found in cache for 619001 - building

   50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder?
   key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C
   +2%3A18+PMrlang=enrvoice=woman
   W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN
   CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
   W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: Message NOT
   found in cache for 619001 - building

   0.1.0.2 - - [16/Dec/2010:11:19:08 -0800] POST /tasks/voicereminder
  

[google-appengine] Re: Memcache broken with Always On?

2010-12-17 Thread Tom Phillips
Sorry, don't Hit Erik. Say Hi to him ;)

On Dec 17, 10:46 am, Tom Phillips tphill0...@gmail.com wrote:
 Hit Erik,

 From your stack trace, I think you are seeing something else. Have you
 got an explicit serialVersionUID set in the com.WikiHop.jdo.Pi class
 (your key is OK I think) that you are putting into Memcache? And if so
 has it changed at some point? It looks like you may be either trying
 to read out a different class entirely than was inserted into the
 cache,  or have changed or added the serialVersionUID in the value
 class since an entry was inserted and it is now stale.
 serialVersionUID is a way of identifying a class (or version of a
 class) to the java serialization framework - if you change it you are
 telling it that it is effectively no longer compatible for
 serialization with previous instances, even if you have change nothing
 else in the class. So it's a good idea to set it early, and never
 change it for a class unless you have a good reason to invalidate
 older serialized entries.

 I'm not having any problems reading values out of the cache. The
 problem I'm seeing is that the entire entry can only be found if it
 was inserted by the same JVM (or instance') that inserted it. A
 scoping problem where it appears to be less global than it should be.

 You may want to start a separate thread on your issue if you are still
 seeing it and the above doesn't shed any light on it.

 Thanks,
 Tom

 On Dec 17, 4:11 am, Erik erik.e.wil...@gmail.com wrote:

  Missed some more errors:

  Caused by: java.io.InvalidClassException: com.WikiHop.jdo.Pi; local
  class incompatible: stream classdesc serialVersionUID =
  -6007756724690804603, local class serialVersionUID = -1398789866
          at 
  java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:579)
          at 
  java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:
  1600)
          at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:
  1513)
          at
  java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:
  1749)
          at 
  java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
          at
  com.google.appengine.api.memcache.MemcacheSerialization.deserialize(MemcacheSerialization.java:
  163)
          at
  com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:
  283)
          ... 43 more

  On Dec 17, 3:56 am, Erik erik.e.wil...@gmail.com wrote:

   Not sure if it is related, but I was getting some interesting memcache
   errors that I had to work around:

   javax.servlet.ServletContext log: Exception while dispatching incoming
   RPC call
   com.google.gwt.user.server.rpc.UnexpectedException: Service method
   'public abstract java.lang.String
   com.WikiHop.client.SearchPath.find(java.lang.String,java.lang.String)
   throws java.lang.IllegalArgumentException' threw an unexpected
   exception: com.google.appengine.api.memcache.InvalidValueException: IO
   exception parsing value of '3434143'
           at
   com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:
   378)
    ...
   Caused by: com.google.appengine.api.memcache.InvalidValueException: IO
   exception parsing value of '3434143'
           at
   com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:
   289)
           at
   com.google.appengine.api.memcache.jsr107cache.GCache.get(GCache.java:
   166)

   On Dec 16, 2:53 pm, Tom Phillips tphill0...@gmail.com wrote:

Certainly Ikai,

Firstly, some of my logs (url and classes slightly modified to hide
some app details) that show how only the same instance picks up the
entry. I'm determining and logging the instance using a UUID that I
assign to a static class variable. The key for the cache lookup is
passed in as a request query parameter to the followup requests.

Here are two runs of the code to follow. In each, the bottom log is
the cache entry being added. The next two are subsequent requests that
both look for the entry. The entry is only found when then instance
matches, regardless of which follow-up request.

This first run shows how the bottom instance is different from the one
that services both followup requests. So they don't find the entry:

50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001
W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
Message NOT found in cache for 619001 - building

50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder?
key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C
+2%3A18+PMrlang=enrvoice=woman
W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN
CACHE on Instance: 

[google-appengine] How to setup Goddady CNAMES to have usernames on subdomains for a djangoapp on Google App Engine

2010-12-17 Thread zero fuxor
I have a django app that is hosted in google app engine. I would like to
have usernames in subdomains to show a personal page for a user in my app.

Like this: *username*.*example.com*

I know how to get the username from the url and work on it on my app but i
don't know how to setup the cnames on godaddy for it.

Right now the cnames are:
*Host* - *Points to*
www - ghs.google.com #it redirects to the app on appengine
mail - ghs.google.com #it redirects to the mail service for my domain

I want that every subdomain goes to CNAME *www* and keep the CNAME for mail.

I have tried: *Host* - *Points to*
www - ghs.google.com
mail - ghs.google.com
* - www
but godaddy does not allow me to save HOST with * it tells me that it is not
a valid host.

Is there someway to do it? anyone has done something similar?
Thanks,
Jose Maria

-- 
Jose Maria Zambrana
Web Developer/Designer

-- 
You 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: How to setup Goddady CNAMES to have usernames on subdomains for a djangoapp on Google App Engine

2010-12-17 Thread Roberto Saccon
You have to change nameservers to another provider, which allows wildcard 
CNAMEs, you can define non-godaddy nameserver in the godady control panel. 
DnsMadeEasy and dynDNS (if I remember properly) have been mentioned in a 
very similar thread I started some days ago.

-- 
You 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: Channel API CPU usage

2010-12-17 Thread download
Right now my only application using the Channel API only use it for a
few minutes at a time.
Also, I recall from the Google presentation on Channel API one of the
selling points was that it wouldn't use our application quota for the
constant polling.
Charging for two hours up-front rather defeats that.
We may as well use a custom long-polling solution or one of the 3rd-
party push APIs (pusher, beacon, etc) since it would be cheaper, and
the 3rd-party APIs have more features (like shared channels).

My point is, if you want to see any sort of wide-spread adoption of
this API, you're going to need to solve this somehow.

On Dec 11, 7:37 pm, Moishe mois...@google.com wrote:
  Assuming that a channel setup costs 2.77 seconds, having just 10,000 active 
  users setup 4 channels per day would cost $92.30 per month. That's not 
  counting any CPU costs for actually sending messages.

  At that rate, I can't really use the channel API as much as I'd like and I 
  have to look at alternatives such as Beacon now that I know how cool this 
  technology is.

 Better docs on Channel API quota use are coming, but the reason the
 CPU charge is so high is that the CreateChannel charges up-front for 2
 hours of connect time by clients. It is true that if you have the same
 user connecting repeatedly for a short time but spread out over
 periods of time longer than two hours (obviously degenerate case would
 be connecting for a couple of minutes every two hours and one second),
 the charge will be high. One thing I'm looking at is the ability to
 create a token that expires after an application-specified period, if
 your application's usage patterns warrant it.

 Note that you can store the token for re-use in eg. a cookie so you
 don't need to regenerate it more frequently than every two hours.

 Sending a message doesn't charge any CPU time at all (since the
 connection's already established), just outbound bandwidth.

-- 
You 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] How can i ask to add a new MIME types for file attachments to an email message?

2010-12-17 Thread Dima Filippov
I want to create a service, that send an email with .mobi fle format
attachment. I can't do it with the current allowed MIME types and file
format extensions. How can i ask (or where can i post a suggestion) to
add MIME Type: application/x-mobipocket-ebook and file extension .mobi
or .prc
Thanks, Dmitriy.

-- 
You 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] Mail reply headers remove

2010-12-17 Thread Jorge Alvaro
Hi,

I'm building an application that will receive some mails and reply to
them. I've been trying to set the headers used by mail applications to
diplay threaded conversations but it looks like App Engine (Java,
1.4.0) is removing them.

I'm trying to set In-Reply-To and References headers but none of
them are received for the response.

I've found this related issue:
http://code.google.com/p/googleappengine/issues/detail?id=2802

But I'm already using MimeMessage's msg.reply(false) and setting the
headers.

Has anyone solved this problem to get replies in the same thread
conversation?
Any plan to allow these headers?
Any list of allowed/forbidden headers?

Thanks!
Jorge

-- 
You 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] Deployment failures during clonefiles

2010-12-17 Thread John
Beginning about 5:30PT, we've been unable to deploy to Appengine for
Java. We get a 500 error on clonefiles in most cases. We did make a
change to add some 0.5MB media files to the deployment.

Is there a problem with deployment?

-- 
You 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] Documentation on AppEngine's caching reverse proxy

2010-12-17 Thread saidimu apale
Given the numerous issues (in the issue tracker, GAE mailing-lists and in
speculative blog posts in the wild) surrounding cache headers and the GAE
reverse proxy, is there definitive documentation on how it handles headers
and best-practice interactions?

It is surprising that such an important part of the request-response cycles
is rather opaque.

saidimu

-- 
You 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] How to convert db.Model to search.Searchable model

2010-12-17 Thread suatatan
I have a big datastore in my page. When i have created it, i din't
know the Searchable Model. All of my rows constructed on db.Model.
Now, i want make searchable my datastore but i can't. How i convert
from db.Model to search.Searchable model

-- 
You 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] Billing Disabled

2010-12-17 Thread yohan
Hi,

I'm new gae developer, now I'm developing adlinkshopsafe.appspot.com
I have a problem, about the billing setting, I had disable the
billing, my status now is must wait 7 day,
now I want to re-enable the billing, is there any way to re-enable
imediately?

-- 
You 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: C2DM Rate Limiting

2010-12-17 Thread ob1
If you post your message to the C2DM list, the moderator can increase
your limit.
(http://groups.google.com/group/android-c2dm)

Or you can refer to the original email from that granted your C2DM
account sender id.
That email makes reference to the soft, informal email process of
increasing your C2DM quota.
This took under one business day (pacific working hours) for us.

Oli

On Dec 17, 12:56 pm, Millisecond millisec...@gmail.com wrote:
 Hey all,

 We're running into an odd issue, and not sure if it's us, the
 AppEngine group, or the C2DM Android group at Google so I thought I'd
 post here to start and see where we can get.

 We have implemented a C2DM server on AppEngine servicing several
 hundred of our clients' Android applications, sending a lot of
 messages.  It was working quite well for a while, but now we're seeing
 a lot of Error=QuotaExceeded returns from the C2DM server.

 Seems like one of three causes:

 -Our back-off algorithms aren't correct.  Hard to tell though as the
 google docs are very light on what's an acceptable 
 rate:http://code.google.com/android/c2dm/index.html I have turned off all
 retry logic, only sending original messages and it still triggers, so
 guessing it's not a back-off problem.

 -We're just plain hitting a C2DM limit, but would be great to be able
 to talk to someone at Google-Android about raising it.

 -Google is limited based on source IP and lumping all GAE requests
 together in a DDoS prevention bucket.  Which would mean that over time
 our ability to send messages from GAE would only become worse.

 At this point I'm just looking to eliminate possibilities and the
 third one there seems to be the easiest to rule out.  Does anyone on
 the AppEngine team have insight into whether that might be what's
 happening?

 Thanks,
 -Casey

-- 
You 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: Documentation on AppEngine's caching reverse proxy

2010-12-17 Thread Ikai Lan (Google)
App Engine's edge cache is not guaranteed. It's best effort caching,
caching that any ISP downstream could also have implemented.

What you'd do is set the cache-control headers to public and set a
max-age, and App Engine's edge caches may cache your content. There's also
no way to flush your content, but the cache is key off the URL, so use a
cache buster.

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



On Fri, Dec 17, 2010 at 9:28 AM, Matt H matt2...@gmail.com wrote:

 This would be nice to have.

 --
 You 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: Storing properties dict as db.Model field

2010-12-17 Thread Colin Hawkett
http://stackoverflow.com/questions/3203543/how-to-make-persistent-a-python-dictionary-on-google-appengine/3203672#3203672

I'm still pretty convinced my answer was the best - especially since it 
borrows nick johnson's code :) Cheers,

Colin

-- 
You 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] Static files cached even after update with changes

2010-12-17 Thread Noel
I just pushed an update to my app in which a bunch of the static files
changed and were important for the app behavior.

What I'm seeing is that any requests for those static files return an
old version of the file! I did some digging around and it seems that
other people are seeing this and GAE caches things very aggressively.

Two things:
- Unless I'm missing something GAE shouldn't do that. When I submit
changes with appcfg.py update, it knows exactly what has changed, so
there's no reason it can't invalidate the caches for the static files
that have changed.
- Is there a way I can force it from here to start serving the latest
version of a static file? I can't change the app because it's an
iPhone app.

Is it true that in the future, the best way to avoid this might be
something like adding ?timestamp=[hour] to the URL request? That way
files won't be cached for more than an hour? Is there a better method?

Thanks.


--Noel

-- 
You 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] How to convert db.Model to search.Searchable model

2010-12-17 Thread Robert Kluin
You'll probably need to iterate over the old models, load them,
convert them to a searchable model, then put the new searchable model.

You might look into the mapper to help you out with this task:
http://code.google.com/p/appengine-mapreduce/




Robert






On Fri, Dec 17, 2010 at 03:16, suatatan suata...@gmail.com wrote:
 I have a big datastore in my page. When i have created it, i din't
 know the Searchable Model. All of my rows constructed on db.Model.
 Now, i want make searchable my datastore but i can't. How i convert
 from db.Model to search.Searchable model

 --
 You 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.



-- 
You 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] Static files cached even after update with changes

2010-12-17 Thread Robert Kluin
Hi Noel,
  People often want static content cached -- it reduces the load on
your app.  Also, there might be other intermediate caches to worry
about too, so it may not be only Google caching your content.

  Yes, you should use some type of cache busting strategy.  It depends
on how your iPhone app is implemented, but perhaps you can use a
version number on your assets so they can be changed between versions?





Robert





On Fri, Dec 17, 2010 at 12:57, Noel llo...@gmail.com wrote:
 I just pushed an update to my app in which a bunch of the static files
 changed and were important for the app behavior.

 What I'm seeing is that any requests for those static files return an
 old version of the file! I did some digging around and it seems that
 other people are seeing this and GAE caches things very aggressively.

 Two things:
 - Unless I'm missing something GAE shouldn't do that. When I submit
 changes with appcfg.py update, it knows exactly what has changed, so
 there's no reason it can't invalidate the caches for the static files
 that have changed.
 - Is there a way I can force it from here to start serving the latest
 version of a static file? I can't change the app because it's an
 iPhone app.

 Is it true that in the future, the best way to avoid this might be
 something like adding ?timestamp=[hour] to the URL request? That way
 files won't be cached for more than an hour? Is there a better method?

 Thanks.


 --Noel

 --
 You 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.



-- 
You 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: how can i write Arabic in app engine

2010-12-17 Thread Geoffrey Spear
You're just encoding the filename in utf-8 (which is identical to its
ASCII encoding as it doesn't comain non-ASCII characters) and then
passing that encoded filename to django's template engine.)

On Dec 16, 5:11 pm, fatimah mujallid f.mujal...@gmail.com wrote:
 Ok this code works great:
 self.response.out.write(u'
 السلام عليكم'.encode('utf-8'))
 but when i use an html page instead of a string just like this:
 self.response.out.write(template.render(u'test.html'.encode('utf-8')))
 it displays arabic characters rabish
 in the html page i tried to write this:
 meta http-equiv=Content-Type content=text/html; charset=utf-8
 and tried with out it
 both displays arabic characters rabish

 2010/12/17 fatimah mujallid f.mujal...@gmail.com







  Ok this code works great:
  self.response.out.write(u'السلام عليكم'.encode('utf-8'))
  but when i use an html page instead of a string just like this:
  self.response.out.write(template.render(u'test.html'.encode('utf-8')))
  it displays arabic characters rabish
  in the html page i tried to write this:
  meta http-equiv=Content-Type content=text/html; charset=utf-8
  and tried with out it arabic characters rabish
  both displays
  2010/12/16 风笑雪 kea...@gmail.com

  I suggest you always use UTF-8, not windows-1256.

  However, if you insist on using windows-1256, you should encode your
  unicode output to str:
  self.response.out.write(u'some unicode string'.*encode*('windows-1256'))
  or:
  self.response.out.write('some windows-1256 string') # don't decode it

  --
  keakon

  My blog(Chinese):www.keakon.net
  Blog source code:https://bitbucket.org/keakon/doodle/

  --
  You 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: This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-17 Thread Robert Kluin
If I remember right, think the coloring scheme is left over from when
there were other quotas in place.








On Fri, Dec 17, 2010 at 03:09, Matija matija.jerko...@gmail.com wrote:
 Are you sure about this ? I have noticed that I did indeed get
 new additional instance, but are their automatic scaling algorithm so simple
 that uses only average latency time. Maybe this is truth for first 10
 instances and then they add additional checking. Although they nowhere
 display average cpu_ms or api_cpu_ms per instance we can't be sure that they
 don't collect it and use it. Few bytes per instance and few mathematical
 operation. I would collect it.
 With low latency they are able to easily scale applications on application
 servers, but with high cpu/api cpu ms they are not able to easily scale
 datastore or any other api service. So we can't say that 160 ms request with
 17000 cpu ms is nice scalable request, but is 160 ms request with 1700 cpu
 ms ok or not.
 So is there some good max cpu/api cpu policy that they didn't explained ? Or
 they did with this yellow and red coloring schema around 700/1000 ms cpu
 usage.

 --
 You 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.


-- 
You 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: Documentation on AppEngine's caching reverse proxy

2010-12-17 Thread Mike
The biggest undocumented features of the edge cache we've had to deal
with is that it does not honor the Vary header, and that it is turned
on when you enable billing for an app.

I agree, however, that regardless of what details are posted in this
group, the edge cache behavior should be documented in the official
docs.

-Mike

-=-

On Dec 17, 9:31 am, Ikai Lan (Google) ikai.l+gro...@google.com
wrote:
 App Engine's edge cache is not guaranteed. It's best effort caching,
 caching that any ISP downstream could also have implemented.

 What you'd do is set the cache-control headers to public and set a
 max-age, and App Engine's edge caches may cache your content. There's also
 no way to flush your content, but the cache is key off the URL, so use a
 cache buster.

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







 On Fri, Dec 17, 2010 at 9:28 AM, Matt H matt2...@gmail.com wrote:
  This would be nice to have.

  --
  You 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: Anyone see a bounce forwarded from the mail service?

2010-12-17 Thread A. Stevko
Digging thru the tickets, My guess is nobody has seen an email bounce since
mid 2009.
If you want to be a good responsible email citizen
please star http://code.google.com/p/googleappengine/issues/detail?id=1800
so that you can handle address typos.


On Thu, Dec 16, 2010 at 9:09 PM, A. Stevko andy.ste...@gmail.com wrote:

 Does anyone get bounced email delivered to the From: address as per the
 spec
 the error message is sent by email to the address of the sender for the
 message.

 Ever since my public launch, I've been sending out lots (many thousands) of
 emails but have never seen a bounce from the mail service.
 The app is set up to BCC certain messages to our supp...@ninuku.com
 google apps account so that we can track the site's activity.
 The email below definitely has a bad TO address.
 Here are the headers:

  Delivered-To: supp...@ninuku.com

  Received: by 10.216.244.140 with SMTP id m12cs59454wer;

  Wed, 15 Dec 2010 15:21:03 -0800 (PST)

  Received: by 10.150.97.1 with SMTP id u1mr10964756ybb.74.1292455262592;

  Wed, 15 Dec 2010 15:21:02 -0800 (PST)

  Return-Path: 
 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com
 

  Received: from mail-gw0-f71.google.com 
 (mail-gw0-f71.google.com[74.125.83.71])

  by mx.google.com with ESMTP id
 h21si3751294yha.107.2010.12.15.15.21.02;

  Wed, 15 Dec 2010 15:21:02 -0800 (PST)

  Received-SPF: pass (google.com: domain of
 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.comdesignates
  74.125.83.71 as permitted sender) client-ip=74.125.83.71;

  Authentication-Results: mx.google.com; spf=pass (google.com: domain of
 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.comdesignates
  74.125.83.71 as permitted sender) smtp.mail=
 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com

  Received: by gwj18 with SMTP id 18so1928582gwj.10

  for supp...@ninuku.com; Wed, 15 Dec 2010 15:21:02 -0800 (PST)

  MIME-Version: 1.0

 Received: by 10.42.164.9 with SMTP id e9mr406464icy.63.1292455261780; Wed,
 15

   Dec 2010 15:21:01 -0800 (PST)

 Reply-To: Ninuku Support supp...@ninuku.com

  X-Google-Appengine-App-Id: ninuku-archivist

  Message-ID: 90e6ba6e8ab0c4398004977b3...@google.com

  Date: Wed, 15 Dec 2010 23:21:01 +

  Subject: Your Ninuku Archivist Chapter is Ready to view.

  From: Ninuku Archivist supp...@ninuku.com

  To: southernt...@aol.com

  Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes




 I have another test account on our system with the email address 
 j...@plumber.test
 Again, supp...@ninuku.com has never seen a bounce report for any email
 sent to this obviously dummy address.




-- 
You 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 mail lists are bounceing from my apps mail

2010-12-17 Thread bible.org
I am sending to my apps mail group lists account from my apps mail and
it bounces??
this has just started in the past month after years of no problems

-- 
You 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: Newbie Q - Public IP address_DNS Server?

2010-12-17 Thread A. Stevko
I agree with Barry - setting up a proxy forwarder is the simplest
work-around when compared to porting a self managed app instance.
Folks with apps serving China and Turkey are doing exactly that.
There are plenty of cheap/free apache mod_rewrite hosts that can be
configured to give you a static ip and check the sender's ip so they are
only as vulnerable as the destination service.



On Fri, Dec 17, 2010 at 5:01 AM, Julien Lancelot
julien.lance...@gmail.comwrote:

 Thanks, it's done!

 Hope Google could do something sooner...


 On Fri, Dec 17, 2010 at 13:43, Erwin Streur erwin.str...@gmail.comwrote:

 You might want to star the following issue

 http://code.google.com/p/googleappengine/issues/detail?id=1269

 --
 You 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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-17 Thread Matija
Yes, I remember this. But after removal of 'high cpu quota' there was no 
(spoken) penalty for over 1000 ms request latency (beside bad user 
UI experience) and now it is inability to get new instances.

If you look at Quotas and 
Limitshttp://code.google.com/appengine/docs/java/runtime.html#Quotas_and_Limits
 there 
is statement: 'Applications that are heavily CPU-bound may also incur some 
additional latency in order to efficiently share resources with other 
applications on the same servers.'

So what are heavily CPU-bound applications. Currently only information that 
we have are yellow and red warnings.

I hope that somebody from GAE team will give us more information.

-- 
You 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: This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-17 Thread Darien Caldwell
I had a thread saved where Nick or someone else on the team confirmed
the 1000 ms boundary, however it seems my saved thread collection has
grown ridiculously big and I can't find it.  I did find this thread
discussing it however:  
http://groups.google.com/group/google-appengine/browse_thread/thread/a5d1aeb359ff03ab

-- 
You 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: max_backoff_seconds - working?

2010-12-17 Thread Jason Collins
Nick,

Your edge case definitely confused at least 2 of us. I imagine that
people will often be testing their queues on a low volume queue
initially. You might want to put something in the documentation, or at
least the code.

j

On Dec 16, 4:59 pm, Nicholas Verne nve...@google.com wrote:
 Vlad,

 Your case is a bit of an edge case for us. At the time your task is
 dispatched, do you have any other tasks still in the queue scheduled
 to execute within the next twenty seconds? If not, your queue is
 considered empty and will next be checked for tasks to dispatch in
 twenty seconds time. If, during this interval, your task that was
 running now fails, the task's retry won't be able to run until after
 this twenty seconds has elapsed.

 If there were other tasks in the queue scheduled to execute during the
 twenty seconds after your task's eta, you might find your task meeting
 its 7 second retry backoff more precisely.

 Nick Verne



 On Thu, Dec 16, 2010 at 2:58 PM, vlad vlad.troyan...@gmail.com wrote:
  Hi Nick,

  Task schedule delays (best effort) are expected but this is not the case.
  Take a look at the log excerpt below which shows a task with 6 reties.
  Retries are perfectly timed on flat 20sec back off schedule. In other words
  I have never seen task reties follow what I put in my queue.yaml. Instead
  they *always* do 20 sec backoff.
  Another fact that might help is this has not changed at all with SDK 1.4.0
  release. This picture was exactly the same before the release.

  My queue.yaml

  queue:
  - name: default
    rate: 20/s
    bucket_size: 100
    retry_parameters:
      task_age_limit: 120s
      min_backoff_seconds: 1
      max_backoff_seconds: 7

  12-14 11:56PM 14.864 /_ah/queue/deferred 500 71ms 63cpu_ms 16api_cpu_ms 0kb
  AppEngine-Google; (+http://code.google.com/appengine)

  See details

  0.1.0.2 - - [14/Dec/2010:23:56:14 -0800] POST /_ah/queue/deferred HTTP/1.1
  500 124 http://ace-poker.appspot.com/_ah/queue/deferred; AppEngine-Google;
  (+http://code.google.com/appengine) ace-poker.appspot.com ms=71 cpu_ms=63
  api_cpu_ms=17 cpm_usd=0.001856 queue_name=default
  task_name=9640193529655285671

  I 12-14 11:56PM 14.867 X-Appengine-Taskretrycount:6,
  X-Appengine-Queuename:default, X-Appengine-Taskname:9640193529655285671,
  X-Appengine-Current-Namespace:

  I 12-14 11:56PM 14.868 running task: {'player':
  'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action': 'force-fold', 'who':
  'dealer', 'type': 'action', 'hand-snapshot': u'flop-50

  I 12-14 11:56PM 14.921
  Hand=aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw, state=playing,
  table=Medes (aglhY2UtcG9rZXJyDQsSBVRhYmxlGPODOAw)

  I 12-14 11:56PM 14.921 pre-action-dealer (force-fold)

  12-14 11:56PM 14.864 /_ah/queue/deferred 500 71ms 63cpu_ms 16api_cpu_ms 0kb
  AppEngine-Google; (+http://code.google.com/appengine)

  See details

  0.1.0.2 - - [14/Dec/2010:23:56:14 -0800] POST /_ah/queue/deferred HTTP/1.1
  500 124 http://ace-poker.appspot.com/_ah/queue/deferred; AppEngine-Google;
  (+http://code.google.com/appengine) ace-poker.appspot.com ms=71 cpu_ms=63
  api_cpu_ms=17 cpm_usd=0.001856 queue_name=default
  task_name=9640193529655285671

  I 12-14 11:56PM 14.867

  X-Appengine-Taskretrycount:6, X-Appengine-Queuename:default,
  X-Appengine-Taskname:9640193529655285671, X-Appengine-Current-Namespace:

  I 12-14 11:56PM 14.868

  running task: {'player': 'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action':
  'force-fold', 'who': 'dealer', 'type': 'action', 'hand-snapshot':
  u'flop-50-chj8szUM', 'hand':
  'aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw'}

  I 12-14 11:56PM 14.921

  Hand=aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw, state=playing,
  table=Medes (aglhY2UtcG9rZXJyDQsSBVRhYmxlGPODOAw)

  I 12-14 11:56PM 14.921

  pre-action-dealer (force-fold)

  I 12-14 11:56PM 14.921

  pre-action: (force-fold) pot=50 round=flop board=[u'Td', u'Ac', u'Ad']
  current_bet=0 next_to_act=0
  players:
     aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM: bet=0 total=10 acted=False
  in-game=True
     aglhY2UtcG9rZXJyDgsSBlBsYXllchispDUM: bet=0 total=10 acted=False
  in-game=True

  I 12-14 11:56PM 14.928

  notify-multi: ['hjygzgM-33', 'hixwjgM-33', 'hiZyjgM-33', 'hiLhTUM-33',
  'hispDUM-33', 'hj8szUM-33', 'bserver-33']

  I 12-14 11:56PM 14.928

     {'pot': 50L, 'who': 'dealer', 'hand':
  'aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw', 'player':
  'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action': 'force-fold', 'type':
  'action', 'stack': 1685L, 'hand-snapshot': u'flop-50-chj8szUM'}

  D 12-14 11:56PM 14.928

  hand action: {'pot': 50L, 'who': 'dealer', 'hand':
  datastore_types.Key.from_path(u'Table', 918003L, u'Hand', 330015L,
  _app=u'ace-poker'), 'player': datastore_types.Key.from_path(u'Player',
  875004L, _app=u'ace-poker'), 'action': 'force-fold', 'type': 'action',
  'stack': 1685L, 'hand-snapshot': 'flop-50-chj8szUM'}

  I 12-14 11:56PM 14.928

  hand = aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw, 

Re: [google-appengine] Re: Newbie Q - Public IP address_DNS Server?

2010-12-17 Thread Baz
If you route every request through a proxy, you are giving up all the
scalability benefits?


On Fri, Dec 17, 2010 at 12:17 PM, A. Stevko andy.ste...@gmail.com wrote:

 I agree with Barry - setting up a proxy forwarder is the simplest
 work-around when compared to porting a self managed app instance.
 Folks with apps serving China and Turkey are doing exactly that.
 There are plenty of cheap/free apache mod_rewrite hosts that can be
 configured to give you a static ip and check the sender's ip so they are
 only as vulnerable as the destination service.



 On Fri, Dec 17, 2010 at 5:01 AM, Julien Lancelot 
 julien.lance...@gmail.com wrote:

 Thanks, it's done!

 Hope Google could do something sooner...


 On Fri, Dec 17, 2010 at 13:43, Erwin Streur erwin.str...@gmail.comwrote:

 You might want to star the following issue

 http://code.google.com/p/googleappengine/issues/detail?id=1269

 --
 You 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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: how can i write Arabic in app engine

2010-12-17 Thread fatimah mujallid
Finally it works perfect
Thank you all for replying and you support

2010/12/17 Geoffrey Spear geoffsp...@gmail.com

 You're just encoding the filename in utf-8 (which is identical to its
 ASCII encoding as it doesn't comain non-ASCII characters) and then
 passing that encoded filename to django's template engine.)

 On Dec 16, 5:11 pm, fatimah mujallid f.mujal...@gmail.com wrote:
  Ok this code works great:
  self.response.out.write(u'
  السلام عليكم'.encode('utf-8'))
  but when i use an html page instead of a string just like this:
  self.response.out.write(template.render(u'test.html'.encode('utf-8')))
  it displays arabic characters rabish
  in the html page i tried to write this:
  meta http-equiv=Content-Type content=text/html; charset=utf-8
  and tried with out it
  both displays arabic characters rabish
 
  2010/12/17 fatimah mujallid f.mujal...@gmail.com
 
 
 
 
 
 
 
   Ok this code works great:
   self.response.out.write(u'السلام عليكم'.encode('utf-8'))
   but when i use an html page instead of a string just like this:
   self.response.out.write(template.render(u'test.html'.encode('utf-8')))
   it displays arabic characters rabish
   in the html page i tried to write this:
   meta http-equiv=Content-Type content=text/html; charset=utf-8
   and tried with out it arabic characters rabish
   both displays
   2010/12/16 风笑雪 kea...@gmail.com
 
   I suggest you always use UTF-8, not windows-1256.
 
   However, if you insist on using windows-1256, you should encode your
   unicode output to str:
   self.response.out.write(u'some unicode
 string'.*encode*('windows-1256'))
   or:
   self.response.out.write('some windows-1256 string') # don't decode it
 
   --
   keakon
 
   My blog(Chinese):www.keakon.net
   Blog source code:https://bitbucket.org/keakon/doodle/
 
   --
   You 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
 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: This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-17 Thread nickmilon
Somebody (Ikai L if I remember well) even mentioned sub-400ms as
optimal number.
I agree we need more light on this.
For the complete (almost) story of those numbers you can take a look
at my
post here: 
http://gaengine.blogspot.com/2010/09/app-engine-scalability-issues.html

Happy coding :-)
Nick
On Dec 17, 10:43 pm, Darien Caldwell darien.caldw...@gmail.com
wrote:
 I had a thread saved where Nick or someone else on the team confirmed
 the 1000 ms boundary, however it seems my saved thread collection has
 grown ridiculously big and I can't find it.  I did find this thread
 discussing it however:  
 http://groups.google.com/group/google-appengine/browse_thread/thread/...

-- 
You 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: Newbie Q - Public IP address_DNS Server?

2010-12-17 Thread Barry Hunter
Unless its an API from one of the 'big players' then its unlikly that
the proxy would become a performance bottleneck. ie the proxy will
likely out perform the API itself.

Or do you mean a problem as a SPOF (single point of failure) - if
worried about that then could get two proxies :) And hope the API
provider allows you to specify multiple IPs.

(its unlikly you would get a redunant system - including from Google -
using a single outgoing IP anyway)

On 17 December 2010 22:18, Baz b...@thinkloop.com wrote:
 If you route every request through a proxy, you are giving up all the
 scalability benefits?

 On Fri, Dec 17, 2010 at 12:17 PM, A. Stevko andy.ste...@gmail.com wrote:

 I agree with Barry - setting up a proxy forwarder is the simplest
 work-around when compared to porting a self managed app instance.
 Folks with apps serving China and Turkey are doing exactly that.
 There are plenty of cheap/free apache mod_rewrite hosts that can be
 configured to give you a static ip and check the sender's ip so they are
 only as vulnerable as the destination service.


 On Fri, Dec 17, 2010 at 5:01 AM, Julien Lancelot
 julien.lance...@gmail.com wrote:

 Thanks, it's done!
 Hope Google could do something sooner...

 On Fri, Dec 17, 2010 at 13:43, Erwin Streur erwin.str...@gmail.com
 wrote:

 You might want to star the following issue

 http://code.google.com/p/googleappengine/issues/detail?id=1269

 --
 You 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.


 --
 You 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.

 --
 You 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.

 --
 You 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.


-- 
You 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] Problem deleting an application

2010-12-17 Thread joshuacronemeyer
I have an application that I no longer want to pay for.  When I go to
the disabling administration page it tells me that I can't request
permanent deletion because my billing status is enabled.  When I try
to disable my billing, the status changes to changing daily budget
for about 10 minutes and then it goes directly back to enabled.  In
short there is no way for me to delete this application.  Anyone have
any ideas?

-- 
You 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: Newbie Q - Public IP address_DNS Server?

2010-12-17 Thread Baz

 the proxy will likely out perform the API itself.


This addresses my concern, and I agree, thank you :)


On Fri, Dec 17, 2010 at 3:47 PM, Barry Hunter barrybhun...@gmail.comwrote:

 the proxy will
 likely out perform the API itself.


-- 
You 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: Documentation on AppEngine's caching reverse proxy

2010-12-17 Thread 风笑雪
Actually, the cache will be refresh after re-deploy.

But I suggest not to set too long max-age for dynamic pages.

Also be noticed that the edge cache is only available for Google Apps
domains, no affect on appspot.com.

--
keakon

My blog(Chinese): www.keakon.net
Blog source code: https://bitbucket.org/keakon/doodle/



On Sat, Dec 18, 2010 at 1:31 AM, Ikai Lan (Google)
ikai.l+gro...@google.comikai.l%2bgro...@google.com
 wrote:

 App Engine's edge cache is not guaranteed. It's best effort caching,
 caching that any ISP downstream could also have implemented.

 What you'd do is set the cache-control headers to public and set a
 max-age, and App Engine's edge caches may cache your content. There's also
 no way to flush your content, but the cache is key off the URL, so use a
 cache buster.

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



 On Fri, Dec 17, 2010 at 9:28 AM, Matt H matt2...@gmail.com wrote:

 This would be nice to have.

 --
 You 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.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



[google-appengine] Why not SELECT single_property FROM model?

2010-12-17 Thread 风笑雪
As I know, there are 4 bigtables used for store indexes.
So when I try to fetch a single property or a tuple of (single property,
key), datastore can only scan the index table, no need to fetch
the corresponding entities.
That would also be useful when I fetch several properties via composite
index or even merge-join.

Is my thought right?

--
keakon

My blog(Chinese): www.keakon.net
Blog source code: https://bitbucket.org/keakon/doodle/

-- 
You 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] Why not SELECT single_property FROM model?

2010-12-17 Thread Robert Kluin
That is something I have wondered about too Keakon.  Actually, I
thought there was already a feature request for it but don't see it
now.  It would be really cool to be able to only get the data from the
index returned, and not the entire entity.

Anyway, if you make an feature request (issue) for this be sure post
the link so we can star it.



Robert





On Fri, Dec 17, 2010 at 22:15, 风笑雪 kea...@gmail.com wrote:
 As I know, there are 4 bigtables used for store indexes.
 So when I try to fetch a single property or a tuple of (single property,
 key), datastore can only scan the index table, no need to fetch
 the corresponding entities.
 That would also be useful when I fetch several properties via composite
 index or even merge-join.
 Is my thought right?

 --
 keakon
 My blog(Chinese): www.keakon.net
 Blog source code: https://bitbucket.org/keakon/doodle/

 --
 You 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.


-- 
You 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] Why not SELECT single_property FROM model?

2010-12-17 Thread David Mora
I think the problem is at the underlaying appengine.db implementation
(which acts as an ORM)

that property belongs to an entity, you will have to have away to know
when that model is not fully loaded.

Common ORM/Data Gateways problems.

(PS: but yeah, performance wise it would be great)

On 17 December 2010 21:22, Robert Kluin robert.kl...@gmail.com wrote:
 That is something I have wondered about too Keakon.  Actually, I
 thought there was already a feature request for it but don't see it
 now.  It would be really cool to be able to only get the data from the
 index returned, and not the entire entity.

 Anyway, if you make an feature request (issue) for this be sure post
 the link so we can star it.



 Robert





 On Fri, Dec 17, 2010 at 22:15, 风笑雪 kea...@gmail.com wrote:
 As I know, there are 4 bigtables used for store indexes.
 So when I try to fetch a single property or a tuple of (single property,
 key), datastore can only scan the index table, no need to fetch
 the corresponding entities.
 That would also be useful when I fetch several properties via composite
 index or even merge-join.
 Is my thought right?

 --
 keakon
 My blog(Chinese): www.keakon.net
 Blog source code: https://bitbucket.org/keakon/doodle/

 --
 You 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.


 --
 You 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.





-- 
http://about.me/david.mora

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-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] Why not SELECT single_property FROM model?

2010-12-17 Thread Robert Kluin
It should be workable using the (or something like the) low-level
interface -- just return the result as a dict.








On Fri, Dec 17, 2010 at 22:41, David Mora dla.m...@gmail.com wrote:
 I think the problem is at the underlaying appengine.db implementation
 (which acts as an ORM)

 that property belongs to an entity, you will have to have away to know
 when that model is not fully loaded.

 Common ORM/Data Gateways problems.

 (PS: but yeah, performance wise it would be great)

 On 17 December 2010 21:22, Robert Kluin robert.kl...@gmail.com wrote:
 That is something I have wondered about too Keakon.  Actually, I
 thought there was already a feature request for it but don't see it
 now.  It would be really cool to be able to only get the data from the
 index returned, and not the entire entity.

 Anyway, if you make an feature request (issue) for this be sure post
 the link so we can star it.



 Robert





 On Fri, Dec 17, 2010 at 22:15, 风笑雪 kea...@gmail.com wrote:
 As I know, there are 4 bigtables used for store indexes.
 So when I try to fetch a single property or a tuple of (single property,
 key), datastore can only scan the index table, no need to fetch
 the corresponding entities.
 That would also be useful when I fetch several properties via composite
 index or even merge-join.
 Is my thought right?

 --
 keakon
 My blog(Chinese): www.keakon.net
 Blog source code: https://bitbucket.org/keakon/doodle/

 --
 You 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.


 --
 You 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.





 --
 http://about.me/david.mora

 --
 You received this message because you are subscribed to the Google Groups 
 Google App Engine group.
 To post to this group, send email to google-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.



-- 
You 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] Why not SELECT single_property FROM model?

2010-12-17 Thread David Mora
agreed

and how would you distribute this dict in your application? using it
by index key is just a bad practice imho

i guess the other option is to have a simplified version of your model, e.g:

UserModel (entire model loaded using LazyLoading - pretty much what
appengine.db does)
IndexedUserModel (just with properties returned by the index)
extending http://code.google.com/appengine/docs/python/datastore/keyclass.html
?

On 17 December 2010 21:48, Robert Kluin robert.kl...@gmail.com wrote:
 It should be workable using the (or something like the) low-level
 interface -- just return the result as a dict.








 On Fri, Dec 17, 2010 at 22:41, David Mora dla.m...@gmail.com wrote:
 I think the problem is at the underlaying appengine.db implementation
 (which acts as an ORM)

 that property belongs to an entity, you will have to have away to know
 when that model is not fully loaded.

 Common ORM/Data Gateways problems.

 (PS: but yeah, performance wise it would be great)

 On 17 December 2010 21:22, Robert Kluin robert.kl...@gmail.com wrote:
 That is something I have wondered about too Keakon.  Actually, I
 thought there was already a feature request for it but don't see it
 now.  It would be really cool to be able to only get the data from the
 index returned, and not the entire entity.

 Anyway, if you make an feature request (issue) for this be sure post
 the link so we can star it.



 Robert





 On Fri, Dec 17, 2010 at 22:15, 风笑雪 kea...@gmail.com wrote:
 As I know, there are 4 bigtables used for store indexes.
 So when I try to fetch a single property or a tuple of (single property,
 key), datastore can only scan the index table, no need to fetch
 the corresponding entities.
 That would also be useful when I fetch several properties via composite
 index or even merge-join.
 Is my thought right?

 --
 keakon
 My blog(Chinese): www.keakon.net
 Blog source code: https://bitbucket.org/keakon/doodle/

 --
 You 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.


 --
 You 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.





 --
 http://about.me/david.mora

 --
 You received this message because you are subscribed to the Google Groups 
 Google App Engine group.
 To post to this group, send email to google-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.



 --
 You 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.





-- 
http://about.me/david.mora

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-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: Why not SELECT single_property FROM model?

2010-12-17 Thread Tim Hoffman
One major problem I see will be with list properties,
I assume each value in the list when indexed will have its own position in 
the index along with the Key,

So if what you describe was implemented you find you could only get a single 
value from the index that matched.

In fact in all cases you could probably only get properties for matches from 
the index(es) unless you retrieve the whole entity.

A lazily loaded entity, ie match the entity, get the key, create a lazy 
entity, will still have to fetch the full entity to get any  property
other than those used to find the entity in the indexes.

I think ;-)

So I am not sure there is a lot to be gained.

T

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-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: Why not SELECT single_property FROM model?

2010-12-17 Thread Robert Kluin
I figured it might be of value on things like range scans.  Think
about uses like this:

SELECT key, first_name FROM People WHERE first_name = 'alb' AND
first_name  'ablz';

You could have the entity id _and_ the name from the index.  Aside
from this type of use case, you are probably right -- not much value
for equality-only queries.

I'm not sure I see an issue with list properties, wouldn't the
expectation be to only return the matching element?







On Fri, Dec 17, 2010 at 23:43, Tim Hoffman zutes...@gmail.com wrote:
 One major problem I see will be with list properties,
 I assume each value in the list when indexed will have its own position in
 the index along with the Key,
 So if what you describe was implemented you find you could only get a single
 value from the index that matched.
 In fact in all cases you could probably only get properties for matches from
 the index(es) unless you retrieve the whole entity.
 A lazily loaded entity, ie match the entity, get the key, create a lazy
 entity, will still have to fetch the full entity to get any  property
 other than those used to find the entity in the indexes.
 I think ;-)
 So I am not sure there is a lot to be gained.
 T

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To post to this group, send email to google-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.


-- 
You 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] App Engine cannot vacuum indexes - stuck in building state for weeks - need google help

2010-12-17 Thread Alexander M
Hi,

My app is romanceapp, and I hope that someone from google might be
able to have a look at the indexes to see why I cannot remove them.

They have been stuck in a Building state for more than a week, which
I believe was caused by the fact that I uploaded incorrect indexes and
then tried to vacuum them before they completed building. As a result
I have used all 200 indexes and have no room to make modifications to
my data structures.

I am hoping that someone from Google might be able to clear out these
stuck indexes from my application: romanceapp.

Kind Regards
Alexander

-- 
You 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] my app has been disabled

2010-12-17 Thread vrypan
Hi. I've been running my URL shortener, urlborg.com, on appengine since 
2008. Suddenly, yesterday, the app was marked as DISABLED by google, and no 
one can access it. How do I get in contact with someone that can explain 
what's going on? I feel really bad for the users that relied on my service.

I really, really like AppEngine, I mean, if you are offering a hosting 
environment, and people are paying for it, you can't just switch off an 
account, without a warning, or a notice or something...

Panayotis

-- 
You 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: App Engine cannot vacuum indexes - stuck in building state for weeks - need google help

2010-12-17 Thread Alexander M
Sorry, I meant to say application: LingoLocus (romanceapp is a
different one of my apps)

regards

On Dec 18, 12:20 am, Alexander M alexander.marqua...@gmail.com
wrote:
 Hi,

 My app is romanceapp, and I hope that someone from google might be
 able to have a look at the indexes to see why I cannot remove them.

 They have been stuck in a Building state for more than a week, which
 I believe was caused by the fact that I uploaded incorrect indexes and
 then tried to vacuum them before they completed building. As a result
 I have used all 200 indexes and have no room to make modifications to
 my data structures.

 I am hoping that someone from Google might be able to clear out these
 stuck indexes from my application: romanceapp.

 Kind Regards
 Alexander

-- 
You 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] my app has been disabled

2010-12-17 Thread Nickolas Daskalou
It may have been disabled because it competes with Google's URL  
shortening offering (http://goo.gl/).


Nick


On 18/12/2010, at 1:21 PM, vrypan vry...@gmail.com wrote:

Hi. I've been running my URL shortener, urlborg.com, on appengine  
since 2008. Suddenly, yesterday, the app was marked as DISABLED by  
google, and no one can access it. How do I get in contact with  
someone that can explain what's going on? I feel really bad for the  
users that relied on my service.


I really, really like AppEngine, I mean, if you are offering a  
hosting environment, and people are paying for it, you can't just  
switch off an account, without a warning, or a notice or something...


Panayotis
--
You 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 
.


--
You 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.