[google-appengine] Re: Channel API as broadcast messenger

2010-12-03 Thread Alexander Wolf
Don't "rely" on javascript.
I'm way too tired :)

-- 
You 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: Reliability of Channel API messages?

2010-12-03 Thread 风笑雪
In my opinion, it's super fast that I couldn't feel the latency.

--
keakon

-- 
You 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] Channel API test: simple chat

2010-12-03 Thread 风笑雪
I also done one yesterday, but language is Chinese:
http://chat.latest.gaejava.appspot.com/

--
keakon

-- 
You 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 does the app gets the image key?

2010-12-03 Thread Zeynel
On Dec 3, 11:25 pm, Robert Kluin  wrote:

>   When the main page renders, it will include something like:  src='img?img_id=asdnmmfd2fdg32d390dsf4gf3gg2'>.  

Hello Robert:

Thanks for the answer. Unfortunately, I still fail to understand what
is going on here. This line



must be this line

self.response.out.write("" %
  greeting.key())

when

greeting.key() is substituted. Correct?

How does app engine know to get the key for greeting.avatar? greeting
is defined as one row in the Greeting table fetched by the query. I
think that key() is associated with a stored entity not with the query
object. My apologies for being so confused.

And I don't understand the order. As far as understand, the image is
rendered by this line

self.response.out.write("" %
  greeting.key())

if so, why is the key sent to Image handler after the image is
rendered?

-- 
You 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] Channel API test: simple chat

2010-12-03 Thread Alexander Wolf
I've been testing the new channel api, so I've build a very simple chat
app, in order to test things like message delivery, latency, etc..


I'm quite happy with the results at the moment, but google definitely
has to increase the channels per day quota.


http://channelapichat.appspot.com/



(works best with chrome, autoscrolling and pressing "enter" does not
work in firefox)


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] How does the app gets the image key?

2010-12-03 Thread Robert Kluin
Hi Zeynel,
  When the main page renders, it will include something like: .  That will cause
the user's browser to send a request to your apps "img" handler with
the "img_id" parameter, in this example the img_id parameter will
equal to "asdnmmfd2fdg32d390dsf4gf3gg2".  In your app it will be a
real key.



Robert






On Fri, Dec 3, 2010 at 16:24, Zeynel  wrote:
> In this line from Using Images Python API
> http://code.google.com/appengine/docs/python/images/usingimages.html#Serving
>
> greeting = db.get(self.request.get("img_id"))
>
> in
>
> class Image (webapp.RequestHandler):
>    def get(self):
>        greeting = db.get(self.request.get("img_id"))
>        if greeting.avatar:
>            self.response.headers['Content-Type'] = "image/png"
>            self.response.out.write(greeting.avatar)
>        else:
>            self.response.out.write("No image")
>
> Where does the "img_id" come from? The documentation says:
>
> We'll need to update the HTML of the Guestbook to pass the key of the
> greeting to the Image handler
>
> and gives these lines:
>
> self.response.out.write("" %
>                              greeting.key())
> self.response.out.write(' %s' %
>                              cgi.escape(greeting.content))
>
> Can you please explain how img_id is passed from MainPage handler to
> Image handler? I am confused about what is happening here. Thanks?
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appeng...@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

-- 
You 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 as broadcast messenger

2010-12-03 Thread Alexander Wolf
Hi Rafael.


Create a class TimeHandlerChannel that has a list property "client_ids"
and other properties that you need, like the timer start time.


There should be only one instance of the this class. Store the instance
in memcache (eventually also in db). When a new user joins your game
(or whatever) you create a channel for this user-
channel.create_channel(client_id) - and save his client_id in the
TimeHandlerChannel client_ids property. The TimeHandlerChannel class
should also have a method "send_messages", where a message is send to
each client (for client in client_ids: channel.send_message(client,
time_left).


Then you create a taskqueue that runs every 10 seconds (or whatever
time you would like). This task uses the TimeHandlerChannel instance,
which is stored in memcache, to send the remaining time to all the
subscribed users via the send_messages method. Finally, add the task
again to the taskqueue, so that is runs again 10 seconds later.


Every 10 seconds the remaining time is pushed to all the users that are
using your game (client_ids that are added to the client_ids list of
the TimeHandlerChannel class)


Don't really on javascript. Always check on the server side if a user
is permitted to perfom an action (is the time already up?)


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] Re: Working with database query ?

2010-12-03 Thread Raymond C.
Currently the only option is the AppEngine datastore which is backed
by Google's BigTable.  You can read more about the difference of
AppEngine datastore to traditional database on the AppEngine page.

AppEngine for business is planned to have SQL database support.

You may write code to access data from external source too (e.g.
Google Docs), with enough caching it should works fairly good.

On Dec 4, 11:39 am, narinder aggarwal 
wrote:
> How can we work with database with google application engine ?
>
> Are we also provided any database server.??
>
> If not can we use MS access files for our web application with google
> application engine.

-- 
You 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: Working with database query ?

2010-12-03 Thread Zeynel
narinder:

App Engine uses Datastore to store items:
http://code.google.com/appengine/docs/python/gettingstarted/usingdatastore.html


On Dec 3, 10:39 pm, narinder aggarwal 
wrote:
> How can we work with database with google application engine ?
>
> Are we also provided any database server.??
>
> If not can we use MS access files for our web application with google
> application engine.

-- 
You 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] Please help using the Images Python API (cannot write or read image from datastore with simple script)

2010-12-03 Thread Zeynel
Hello:

I have been trying to learn how to save and retrieve an image from
datastore with no success so far. I copied the code from the
documentation and tried to adapt it to my script. I only see a broken
image link and I don't see the blob written to datastore in datastore
viewer.

My question at StackOverflow is here:
http://stackoverflow.com/questions/4351375/how-to-use-images-python-api-correctly-to-display-an-avatar-with-user-comments


Thank your for your help. This is my model:

class User(db.Model):
userEmail = db.StringProperty()
userName = db.StringProperty()
userLatestComment = db.StringProperty(multiline=True)
userScore = db.IntegerProperty(default=0)
avatar = db.BlobProperty()

And this is the script:

from model import User
from model import Comment
from model import Venue

from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db

class MainPage(webapp.RequestHandler):
def get(self):
siteUser = users.get_current_user()
greeting = None
if siteUser:
greeting = ("Welcome, %s! (sign out)" %
(siteUser.nickname(),
users.create_logout_url("/")))
else:
greeting = ("Sign in or register" %
users.create_login_url("/"))

self.response.out.write(greeting)

self.response.out.write("""
  
Avatar:

  

  """)

query = User.all()
query.filter("userEmail =", "a...@example.com")
results = query.fetch(10)
self.response.out.write("""
   body {font-size: small;
 font-family: Verdana,
Helvetica, sans-serif;
}
""")
for result in results:
self.response.out.write("")
self.response.out.write("%s %s " %
(result.userName, result.userLatestComment))
self.response.out.write("" % result.key())
self.response.out.write("")
self.response.out.write("")

class Image (webapp.RequestHandler):
def get(self):
greeting = db.get(self.request.get("img_id"))
if greeting.avatar:
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(greeting.avatar)
else:
self.response.out.write("No image")

class AvatarSave(webapp.RequestHandler):
def post(self):
q = User.all()
q.filter("userEmail =", "a...@example.com")
qTable = q.fetch(1)
if qTable:
for row in qTable:
avatar = images.resize(self.request.get("img"), 32,
32)
row.avatar = db.Blob(avatar)
db.put(qTable)
else:
self.response.out.write("user not found")

self.redirect('/')


application = webapp.WSGIApplication(
 [('/', MainPage),
  ('/img', Image),
  ('/avatar-save',
AvatarSave),
  ],
 debug=True)

def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()

-- 
You 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] Working with database query ?

2010-12-03 Thread narinder aggarwal
How can we work with database with google application engine ?

Are we also provided any database server.??

If not can we use MS access files for our web application with google
application engine.

-- 
You 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] Channel API as broadcast messenger

2010-12-03 Thread Tom Wu
Hi,

I use the same mechanism as Rafael. Please provide broadcasting messenger.

Regards



2010/12/3 Rafael Sierra 

> All the users share the same timer (like in the movies when everyone
> stare at the television with the countdown in it)
>
> I need to send that timer so the users know how much time is left. In
> my current test I'm going into another aproach, when the timer starts,
> I send a message to every user telling how much time is left and when
> the timer was started (so I know how much time has passed since the
> begin) and when the user access some page it sends the current time at
> server (I can't trust in the user's clock), and the real times is done
> at the client (with setInterval for example). I know that there are
> problems like the user changing variables with firebug, but that will
> corrupt data only for him, and this is not a big deal.
>
> On Fri, Dec 3, 2010 at 4:59 AM, Robert Kluin 
> wrote:
> > Hi Rafael,
> >  Do all users care about the same timer, or does each user have their
> > own, or is there one timer for a group, or something else?  Do you
> > need to push the remaining time at particular time for some reason?
> >
> >
> >
> > Robert
> >
> >
> >
> >
> >
> >
> > On Thu, Dec 2, 2010 at 20:35, Rafael Sierra 
> wrote:
> >> I know that I cannot share Client IDs between multiple users, but I
> >> still need something like a broadcast message system.
> >>
> >> Today, users make requests in regular intervals to get the update of
> >> the information, let's say a timer counting down like a bomb, each
> >> client asks the server how much time left to the bomb explodes and the
> >> server answer the time, and it is made every second until the bomb
> >> explods (oh god, this thread will be tracked by USA).
> >>
> >> When I first saw Channel API I thought that in the future I could just
> >> do a simple send_message("120") (which means 2 minutes) and every
> >> client would get the information, but now with the release 1.4 I know
> >> that I can't do it. Instead I was wondering how I could use Channel
> >> API to reduce my request count.
> >>
> >> The first solution that came to me is to made an eternal loop (that
> >> would eventualy die in 10 minutes) in which I would loop across all
> >> the users (yet to know who is online) and send them the time.
> >> Actually, this is the only solution I got in mind, does someone have a
> >> better idea?
> >>
> >> --
> >> Rafael Sierra
> >> http://blog.rafaelsdm.com
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups "Google App Engine" group.
> >> To post to this group, send email to google-appeng...@googlegroups.com.
> >> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com
> .
> >> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
> >>
> >>
> >
> > --
> > You 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.
> >
> >
>
>
>
> --
> Rafael Sierra
> http://blog.rafaelsdm.com
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appeng...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

-- 
You 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] downloading source code with 1.4.0 fails with a 403, but I'm the only maintainer!

2010-12-03 Thread Ben Adida
subject says it all: I'd like to download the code for an older app I
haven't touched in a while, but need to update. When I try to download,
I get a 403 saying I'm not allowed to download this version. The
documentation seems to indicate that this happens when another
developer uploaded that version... but I'm the only developer who
uploaded anything!

In the interim, I have consolidated two google accounts, so I suppose
this could be the issue, but then I'm not sure how to resolve this.
Help?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-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: Final infrastructure decision, GAE or AWS?

2010-12-03 Thread Tobias
I'd like to point out another path. Feel free to try TyphoonAE on Scalr
http://code.google.com/p/typhoonae/wiki/UsingScalr
It is work in progress, though, and any suggestions and contributions
are highly welcome. I'm planning to release different AWS images for
scaling the underlying services over a number of Scalr Roles in the
near future.


- Tobias

-- 
You 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: Let's defend GAE!

2010-12-03 Thread Satoshi
This is my response to one of issues pointed out by the original
article (DeadlineExceededError).

http://satoshi.blogs.com/uie/2010/12/handing-and-testing-deadlineexceedederror.html

Feel free to criticize (either here or at my blog). I am trying to
learn something as well.

Satoshi

On Nov 23, 1:59 am, Wim den Ouden  wrote:
> Gae is just a subtitle, it is based on the google api's written in c,
> c++, python and the datastore containers all over the world. This
> distributed computing, programming model (based on open standards) is
> allready one off, or the largest network on the moment.
> gr
> wim
>
>
>
>
>
> On Tue, Nov 23, 2010 at 10:20 AM, Martin Webb  wrote:
> > All that GAE needs is someone in these forums to build, launch and run the
> > next killa app like twitter. Once that happens people will take the platform
> > more than seriously as the app will scale to millions trouble free overnight
> > - sending out big signals to developers that app engine is a serious, well
> > honed platform for building scalable apps. Lets hope that day comes soon, as
> > when it does im sure once the limelight is on - things can only get better.
> > Im sure someone somewhere is hard to work on just that.
>
> > Regards
>
> > Martin Webb
>
> > The information contained in this email is confidential and may contain
> > proprietary information. It is meant solely for the intended recipient.
> > Access to this email by anyone else is unauthorised. If you are not the
> > intended recipient, any disclosure, copying, distribution or any action
> > taken or omitted in reliance on this, is prohibited and may be unlawful. No
> > liability or responsibility is accepted if information or data is, for
> > whatever reason corrupted or does not reach its intended recipient. No
> > warranty is given that this email is free of viruses. The views expressed in
> > this email are, unless otherwise stated, those of the author
>
> > 
> > From: Tim Hoffman 
> > To: Google App Engine 
> > Sent: Tue, 23 November, 2010 8:11:35
> > Subject: [google-appengine] Re: Let'sdefendGAE!
>
> > Hi Adam
>
> > Couldn't agree more with your sentiments.  In addition to working on
> > fairly significant
> > projects with appengine, I run our small business web site on
> > appengine as well (www.fishandlily.com.au).
>
> > It is really a headache free environment if you get everything
> > sorted.  We don't have to
> > worry about os upgrades. Server/hardware problems etc... My wife
> > manages the content (again
> > a small cms for us) and I occasionally make some tweaks to the code
> > base.
>
> > With agressive use of memcache, we almost never see any of the major
> > problems of
> > increased datastore latency.
>
> > Rgds
>
> > Tim
>
> > --
> > You 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.
>
> --
> gr
> wdo
>
> Demo free E-business:https://e-comm.appspot.com
> Gae developer tipshttp://code.google.com/p/relat/wiki/gaetips
> Wim den Ouden Google app engine based (web) apps

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

2010-12-03 Thread supercobra
We definitively need more than 100K. Each time a user open close his /
her browsing session it is counted as 1 channel creation. I open and
leave Gmail, and open new windows at least 50 / 100 times a day. So if
1000 users use an app like I use Gmail then it makes about 100K
channel api creation / day for them.

Based on this calculation, I think 100 channel api creations / day is
a good starting number. So if my app has 30,000 users I'll need 3m
slots...

I think the challenge for Google is the long running - for nothing -
connection for example like when you leave your browser open and go to
lunch or home for the evening


-- superco...@gmail.com

Co-author of App Engine Java and GWT Development: http://bit.ly/hdTHyB
http://supercobrablogger.blogspot.com/



On Fri, Dec 3, 2010 at 3:22 PM, Rafael Sierra  wrote:
> On Fri, Dec 3, 2010 at 7:15 PM, Geoffrey Spear  wrote:
>>
>>
>> On Dec 3, 12:57 pm, Peter Petrov  wrote:
>>> For billing-enabled apps the quota is 95040 channels created per day. This
>>> is still extremely low, I completely agree.
>>>
>>> If I remember correctly, yesterday after the 1.4.0 release this quota was
>>> considerably higher (about 10 times). Probably they are having capacity
>>> problems with the GAE / GTalk infrastructure. Some official explanation
>>> would be nice, though.
>>
>> The Channel API isn't even listed on the Quotas page yet (
>> http://code.google.com/appengine/docs/quotas.html ), but it's not
>> unreasonable to believe there will be an option to request an increase
>> like there is for the other fixed quotas that are listed there.
>>
>
> It is for me:
>
> Channel
> Channel API Calls                0%      31,574 of 91,995,495    Okay
> Channels Created                 2%      1,815 of 95,040         Okay
> Channel Data Sent                0%      0.00 of 2,088.13 GBytes
>
>> --
>> You 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.
>>
>>
>
>
>
> --
> Rafael Sierra
> http://blog.rafaelsdm.com
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appeng...@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

-- 
You 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] Amazon AWS vs Google App Engine

2010-12-03 Thread supercobra
Amazon and Google have been long-time partisans of freedom of speech.

However in this case, the pressure coming from the government must be
incredible. Amazon is not the only victim of these intimidations. US
government employees have been forbidden to visit Wikileaks sites and
to discuss these matters on Facebook. At least one US university has
been 'persuaded' to ask their students not to reference any Wikileaks
documents in their research papers... (how is that for doing thorough
research!).

Even crounties bend under US pressure. We have seen it to be the case
with Spain & Germany which dropped their lawsuits, investigations and
enforcement of arrest warrants for torture and kidnappings
(renditions) after the US pressured them (source Wikileaks cables).

So I would assume that Google or any organization would probably comply as well.

To ensure free speech can not be prevented by taking down web sites,
we need to create a totally distributed website hosting technology
based on BitTorrent or something similar.

Happy coding. ;-)

Daniel Guermeur

-- superco...@gmail.com

Co-author of App Engine Java and GWT Development: http://bit.ly/hdTHyB
Blog: http://supercobrablogger.blogspot.com/



On Fri, Dec 3, 2010 at 5:18 PM, nickmilon  wrote:
> There is a lot of talk and flame wars going on "AWS vs GAE" topic, up
> to now all this talk was concentrated on technical and economic
> issues.
> News of Amazon throwing  away the WikiLeaks website has raised new
> arguments on the cloud battlefront.
> So I want to raise here the hypothetical question what would be the
> fate of WikiLeaks if it was hosted on App Engine ?
> (For obvious reasons I do not expect a definite yes/no answer from
> Google's team, but may be I am wrong)
>
> Happy coding:-)
>
> Nick
>
> --
> You 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: Final infrastructure decision, GAE or AWS?

2010-12-03 Thread Shane
Hi Adam,

Can you elaborate on your thoughts of RightScale?  Which "worst
problems" do you mean?  Have you had a bad experience with them?

Shane

On Dec 4, 4:00 am, Adam Sah  wrote:
> imho: I'd be cautious about AppScale-- you may inherit all the worst
> problems
>    of AWS and GAE, with few benefits.  One win however-- you'll have
> one
>    [low level] system to keep running, diagnose, etc.
>
> also imho: I wouldn't wait for GAE/Business or any pre-announced
> offering
>    from any company: pre-announcements have a tendency to slip.
>
> hope this helps,
> adam
>
> On Dec 2, 8:10 pm, Shane  wrote:
>
>
>
>
>
>
>
> > Hi Adam,
>
> > Thanks for the response.  One way I was considering approaching the
> > issue of keeping the doors open to migrate back to GAE at a later
> > date, is to use something like AppScale on AWS.  This way I can be
> > more or less on the same path as GAE.
>
> > I am really keen to see the GAE for Business plans for non-intranet
> > solutions.  This could be an awesome opportunity, however until this
> > happens, I just can't rely on a beta product.  It's a real shame
> > because it's a lovely system.
>
> > Shane
>
> > On Dec 3, 8:09 am, Adam Sah  wrote:> I'm a *very* 
> > longtime GAE user and former googler and I love it... but
> > > for now,
> > >    I usually recommend it as an *ingredient* and not as the backbone
> > > of the
> > >    whole system.
>
> > > Specifically, GAE can't support certain libraries (e.g. anything with
> > > C/C++),
> > >    so you inevitably need another service like AWS, linode, etc.  I
> > > use Linode
> > >    to run SOLR for us and another PC instance for our offline pipeline
> > > (maybe
> > >    move to Tasks???)
>
> > > GAE makes a nice frontend-- just be prepared for whining about short
> > > outages,
> > >    limitations, etc. -- OTOH, I love not carrying a pager, instant
> > > scaling, etc.
> > >    I once did 600 QPS on appengine, effortlessly.  I've run $MM
> > > businesses
> > >    on appengine, painlessly.
>
> > > One thing: if you start on GAE you can easily migrate away, but if you
> > > start
> > >    elsewhere it's very hard to migrate to GAE.  This argues for giving
> > > it a shot,
> > >    then re-evaluating (say) monthly.
>
> > > For my latest startup, we're based entirely on GAE and it's love-hate,
> > > but we've
> > >    stuck with it and the issues haven't been big enough to matter--
> > > and v1.4
> > >    (any minute now!!!) should solve 50+% of the hassles.
>
> > > adam
>
> > > On Dec 2, 10:03 am, Grzegorz Machniewski
>
> > >  wrote:
> > > > > Do you know how Zynga's backend is set up on AWS?  I would imagine 
> > > > > it's
>
> > > > pretty complex so, you have to have the system architects and 
> > > > administrators
> > > > to manage that.
>
> > > > Zynga is using RightScale  as a platform management software 
> > > > (http://www.rightscale.com/)... it automates management and scaling of 
> > > > the
> > > > application. It's quite impressive solution,
>
> > > > Regards
> > > > G.
>
> > > > On Thu, Dec 2, 2010 at 6:34 PM, Eli Jones  wrote:
> > > > > Maybe one of the Google developers will see this and can provide you 
> > > > > with
> > > > > an informed answer.. but, if it slips through the cracks, you should
> > > > > definitely ask during the IRC office hours (or just check #appengine 
> > > > > on
> > > > > irc.freenode.net, since someone from Google may be there at any time.)
>
> > > > > If your app becomes popular on a Farmville scale, you'd have to be 
> > > > > prepared
> > > > > to automatically start-up new instances and balance load across them. 
> > > > >  Which
> > > > > means you'd need to spend time and energy designing this sort of 
> > > > > system up
> > > > > front.
>
> > > > > Though, if you just plan on cranking up an Extra Large EC2 Instance 
> > > > > and
> > > > > running off of that (and maybe using SimpleDB on the back end).. and 
> > > > > dealing
> > > > > with front end scaling issues later.  You would probably be fine.. 
> > > > > most apps
> > > > > do not become popular on the Farmville scale.  SimpleDB will enforce a
> > > > > little database discipline, and, if you do "blow up", you could 
> > > > > probably
> > > > > figure out how to load balance over multiple static instances until 
> > > > > you
> > > > > cooked up some sort of automated scaling method.  (Again, this 
> > > > > depends on
> > > > > you using SimpleDB on the back-end.)
>
> > > > > With Appengine, you avoid any sort of systems architecting (just code 
> > > > > as
> > > > > fast as possible).. but you have to spend time coding ways to deal 
> > > > > with the
> > > > > 99th percentile outlier Datastore issues.
>
> > > > > Maybe there are some people here who have user facing apps who can 
> > > > > speak
> > > > > about this from experience (I happily do backend processing where 
> > > > > retrying a
> > > > > failed datastore operation or a failed cold start is no problem.. and 
> > > > > there
> > > > > is no user on t

[google-appengine] Re: Final infrastructure decision, GAE or AWS?

2010-12-03 Thread Shane
Hi Raymond,

Thousands of users is a different problem from millions of users.
Please note, I'm not at all undermining your success, in any way, and
I'm happy to hear you're profitable.  Can you tell us about your game?

Shane

On Dec 3, 6:27 pm, "Raymond C."  wrote:
> My most active game currently serving thousands of players daily, but
> it is very profitable.  One good thing of AppEngine is it scale, but
> still the reliability of datastore hurts a bit consistently.
>
> On Dec 3, 12:16 pm, Shane  wrote:> Hi Raymond,
>
> > It's interesting you're using GAE for games.  The key is, what sort of
> > games?  Can you send a link to your games?
>
> > Also, the critical point is what scale are you running at?  If it's
> > millions of Daily Active Users, then you're in the domain that I'm
> > interested in, otherwise the problem isn't as hard.  I'd be keen to
> > hear figures on your number of requests per second, or concurrent
> > users.
>
> > Cheers,
> > Shane
>
> > On Dec 3, 2:16 pm, "Raymond C."  wrote:
>
> > > I have been purely using AppEngine for hosting social games for nearly
> > > 2 years now and heres my thought:
>
> > > AppEngine is decided for read heavy websites which have been
> > > emphasized by googler for long. Its not true for dynamic/social games
> > > which more than 50% operations are write operations.  The datastore is
> > > not reliable enough so you have to assume every read and write
> > > operations could fail and the *only* backup storage is memcache which
> > > is *also* unreliable for storing data that "must not fail" which is
> > > essential for game's data.
>
> > > My games currently disconnect the user whenever there is an error at
> > > the backend, which accounts to ~1% of all operations from all the
> > > players (think about for every 100 actions you perform, one would fail
> > > and ask you to reconnect).  It is sure an inconvenience for players.
>
> > > If you have not started on AppEngine yet, I highly recommend keep an
> > > eye on it while implement it on AWS first before the AppEngine team
> > > can make the datastore more reliable.
>
> > > On Dec 3, 10:55 am, James Broberg  wrote:
>
> > > > Couldn't agree with Adam more. Why not use both? For MetaCDN.com we use 
> > > > GAE
> > > > as the "web role" / front end and do the heavy lifting (large file
> > > > replication, video encoding, etc) on EC2 instances around the globe on 
> > > > an as
> > > > needed basis.
>
> > > > On 3 December 2010 08:09, Adam Sah  wrote:
>
> > > > > I'm a *very* longtime GAE user and former googler and I love it... but
> > > > > for now,
> > > > >   I usually recommend it as an *ingredient* and not as the backbone
> > > > > of the
> > > > >   whole system.
>
> > > > > Specifically, GAE can't support certain libraries (e.g. anything with
> > > > > C/C++),
> > > > >   so you inevitably need another service like AWS, linode, etc.  I
> > > > > use Linode
> > > > >   to run SOLR for us and another PC instance for our offline pipeline
> > > > > (maybe
> > > > >   move to Tasks???)
>
> > > > > GAE makes a nice frontend-- just be prepared for whining about short
> > > > > outages,
> > > > >   limitations, etc. -- OTOH, I love not carrying a pager, instant
> > > > > scaling, etc.
> > > > >   I once did 600 QPS on appengine, effortlessly.  I've run $MM
> > > > > businesses
> > > > >   on appengine, painlessly.
>
> > > > > One thing: if you start on GAE you can easily migrate away, but if you
> > > > > start
> > > > >   elsewhere it's very hard to migrate to GAE.  This argues for giving
> > > > > it a shot,
> > > > >   then re-evaluating (say) monthly.
>
> > > > > For my latest startup, we're based entirely on GAE and it's love-hate,
> > > > > but we've
> > > > >   stuck with it and the issues haven't been big enough to matter--
> > > > > and v1.4
> > > > >   (any minute now!!!) should solve 50+% of the hassles.
>
> > > > > adam
>
> > > > > On Dec 2, 10:03 am, Grzegorz Machniewski
> > > > >  wrote:
> > > > > > > Do you know how Zynga's backend is set up on AWS?  I would 
> > > > > > > imagine it's
>
> > > > > > pretty complex so, you have to have the system architects and
> > > > > administrators
> > > > > > to manage that.
>
> > > > > > Zynga is using RightScale  as a platform management software (
> > > > >http://www.rightscale.com/). .. it
> > > > > automates management and scaling of the
> > > > > > application. It's quite impressive solution,
>
> > > > > > Regards
> > > > > > G.
>
> > > > > > On Thu, Dec 2, 2010 at 6:34 PM, Eli Jones  
> > > > > > wrote:
> > > > > > > Maybe one of the Google developers will see this and can provide 
> > > > > > > you
> > > > > with
> > > > > > > an informed answer.. but, if it slips through the cracks, you 
> > > > > > > should
> > > > > > > definitely ask during the IRC office hours (or just check 
> > > > > > > #appengine on
> > > > > > > irc.freenode.net, since someone from Google may be there at any 
> > > > > > > time.)
>
> > > >

[google-appengine] Amazon AWS vs Google App Engine

2010-12-03 Thread nickmilon
There is a lot of talk and flame wars going on "AWS vs GAE" topic, up
to now all this talk was concentrated on technical and economic
issues.
News of Amazon throwing  away the WikiLeaks website has raised new
arguments on the cloud battlefront.
So I want to raise here the hypothetical question what would be the
fate of WikiLeaks if it was hosted on App Engine ?
(For obvious reasons I do not expect a definite yes/no answer from
Google's team, but may be I am wrong)

Happy coding:-)

Nick

-- 
You 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: Reliability of Channel API messages?

2010-12-03 Thread Jason Collins
It could be that the latency on the messages is high and I'm just not
patient enough.

So, maybe my next question is, what kind of latency can we expect on
Channel API messages?

j

On Dec 3, 2:59 pm, Jason Collins  wrote:
> Doing some work today with the Channel API (using Chrome as a client).
>
> I'm not seeing great deliverability of Channel API messages - maybe 1
> in 10?
>
> Is there any general message about what we should expect in terms of
> message deliverability reliability? (It will impact how we architect
> things.)
>
> Is there any way to see if there are any current Channel API issues?
>
> Thanks for any info,
> j

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



[google-appengine] How does the app gets the image key?

2010-12-03 Thread Zeynel
In this line from Using Images Python API
http://code.google.com/appengine/docs/python/images/usingimages.html#Serving

greeting = db.get(self.request.get("img_id"))

in

class Image (webapp.RequestHandler):
def get(self):
greeting = db.get(self.request.get("img_id"))
if greeting.avatar:
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(greeting.avatar)
else:
self.response.out.write("No image")

Where does the "img_id" come from? The documentation says:

We'll need to update the HTML of the Guestbook to pass the key of the
greeting to the Image handler

and gives these lines:

self.response.out.write("" %
  greeting.key())
self.response.out.write(' %s' %
  cgi.escape(greeting.content))

Can you please explain how img_id is passed from MainPage handler to
Image handler? I am confused about what is happening here. Thanks?

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



Re: [google-appengine] Re: Channel API quota

2010-12-03 Thread Rafael Sierra
On Fri, Dec 3, 2010 at 7:15 PM, Geoffrey Spear  wrote:
>
>
> On Dec 3, 12:57 pm, Peter Petrov  wrote:
>> For billing-enabled apps the quota is 95040 channels created per day. This
>> is still extremely low, I completely agree.
>>
>> If I remember correctly, yesterday after the 1.4.0 release this quota was
>> considerably higher (about 10 times). Probably they are having capacity
>> problems with the GAE / GTalk infrastructure. Some official explanation
>> would be nice, though.
>
> The Channel API isn't even listed on the Quotas page yet (
> http://code.google.com/appengine/docs/quotas.html ), but it's not
> unreasonable to believe there will be an option to request an increase
> like there is for the other fixed quotas that are listed there.
>

It is for me:

Channel
Channel API Calls0%  31,574 of 91,995,495Okay
Channels Created 2%  1,815 of 95,040 Okay
Channel Data Sent0%  0.00 of 2,088.13 GBytes

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



-- 
Rafael Sierra
http://blog.rafaelsdm.com

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



Re: [google-appengine] Confused on how entity groups are locked in transaction?!

2010-12-03 Thread Chris Copeland
In your example you would have two entity groups:

*Group 1:
*Person: 1 Aravind
Car:  Ford  #258

*Group 2:
*Person: 2 Hari
Car: Maruti  #456
Car: Mercedes  #456

When you create the Car entities, specify their parent as the Person entity
that owns them.  This is what places them in the same entity group.

It is not necessary for the Car to have a explicit reference to the Person
-- this can be handled with the Key alone.

Now, if Aravind updates his car info, only Entity Group 1 will be "locked"
and this will scale well since your entity groups are limited to one user's
worth of data.

-Chris

On Fri, Dec 3, 2010 at 1:29 PM, har_shan  wrote:
> Am learning GAE and got a bit confused on this.
> Lets say i have a sample model
>
> Person (parent)   {id, name, List}
> Car {make, model, Person}
>
> (1 - m relationship) say
>
> So both are in same entity groups (lets say i want to transact them
> together).
>
> Sample data:
> Person: IDNAME
> 1 Aravind
> 2 Hari
>
> Car
>MAKE MODEL
>  Ford#258 {Aravind}
>  Maruti #456 {Hari}
>  Mercedes#456 {Hari}
>
> According to
http://code.google.com/appengine/articles/scaling/contention.html
> 'Keep entity groups small' and also read in other places,
> i see that when you update a entity in an entity group in a
> transaction, entity group is locked, so when other process tries
> updating same entity group it fails/aborts.
>
> So my doubt is, does this mean that if Aravind updates his Car data,
> then Hari can't update his Car data at the same time, since both
> entities fall under same entity group (and hence it has to be retried
> to get it passed).
> (if above is true, does it mean that when above update is done
> concurrently by say 1K users then most of them would fail!)
>
> or i just understood it wrongly
> and does this apply only to each individual's data i.e. in above e.g.
> another process just can't update Aravind's Car data (when Aravind is
> actually updating Car data)
> but CAN update Hari's Car data (and hence other's Car data).
>
> Thanks,
>
> --
> You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
> To post to this group, send email to google-appeng...@googlegroups.com.
> To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com
.
> For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.
>
>

-- 
You 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] New book: Google App Engine Java and GWT Application Development

2010-12-03 Thread supercobra
hi,

Some of you may be interested in a book I co-authored that has just
been published:
"Google App Engine Java and GWT Application Development" by Amy Unruh
and Daniel Guermeur, from Packt.

The book describes many of the techniques and approaches used to
develop GAE+GWT applications, and includes an app developed throughout
 the book as a running example. It has a particular focus on some of
the technologies useful for building scalable social-media-oriented
applications, including: MVP and UiBinder, using the Channel API for
push, using Facebook and Twitter OAuth for authorization, JDO, the
Task Queue, transactions and transactional tasks, Memcache, and XMPP.


This is the Packt Publishing link:
- http://link.packtpub.com/5XWJBI

Book blog w/ table of contents:
- http://theconnectr.blogspot.com/

-- Daniel

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

2010-12-03 Thread Geoffrey Spear


On Dec 3, 12:57 pm, Peter Petrov  wrote:
> For billing-enabled apps the quota is 95040 channels created per day. This
> is still extremely low, I completely agree.
>
> If I remember correctly, yesterday after the 1.4.0 release this quota was
> considerably higher (about 10 times). Probably they are having capacity
> problems with the GAE / GTalk infrastructure. Some official explanation
> would be nice, though.

The Channel API isn't even listed on the Quotas page yet (
http://code.google.com/appengine/docs/quotas.html ), but it's not
unreasonable to believe there will be an option to request an increase
like there is for the other fixed quotas that are listed there.

-- 
You 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] Reliability of Channel API messages?

2010-12-03 Thread Jason Collins
Doing some work today with the Channel API (using Chrome as a client).

I'm not seeing great deliverability of Channel API messages - maybe 1
in 10?

Is there any general message about what we should expect in terms of
message deliverability reliability? (It will impact how we architect
things.)

Is there any way to see if there are any current Channel API issues?

Thanks for any info,
j

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



[google-appengine] Re: Same infamous question - JDO or JPA - want to hear from people who used both!

2010-12-03 Thread Remigius
LL API, Slim3 or Objectify - depending on your needs. If your data is
rather static (i.e. no variation in attributes of entities of the same
kind), you may well stick with annotated classes - meaning Slim3 or
Objectify - otherwise (i.e. attributes may vary and/or you maintain
your own metadata), you might be better off with the LL API (an Entity
is basically just a collection of name-value pairs, aka a Map, that
has a key). Dunno Twig and SimpleDS - but similar considerations
surely apply also to those. IMHO JDO and JPA, having grown up in the
backyard of relational databases, may not be well suited for the big
table.

Cheers, R.

-- 
You 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] Google App Engine Troubles

2010-12-03 Thread Alex Butler
Hey guys,

Sorry I am new on this forum but seem to have a recurring issue.  I
have installed the app engine for python and the indicated python file
and tried to run the program.  I tested the demo, and it did not seem
to run.  It would lead to the black screen with the flashing cursor
with no availability for input and no output.  When I closed the
scree, it would merely show a yellow triangle with a black exclamation
point in the center.  I am also a member of the app inventor and have
been trying to create my own tinywebdb,  but it is impossible because
everytime i try to load the folder to fun the app engine, the text
stays gray and will not allow the file to be run or the dashboard
loaded.  Any assistance is greatly helpful, even if it is the number
for Google help which i believe does not exist.  Thanks a lot.

-- 
You 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: Geocode REST API (v3) from AppEngine

2010-12-03 Thread Mike
Hi Ikai,

Thank you for your reply.

The app_id is "citysale1" (e.g. citysale1.appspot.com - the last
character is the digit "one"). The app is not public yet, so you will
not see anything under the root url.

We don't have MAPS API key, as v3 API doesn't require a key for
geocoding, so we invoke a URL just like this:

http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false

Thanks again and look forward to your reply.

Michael




On Dec 3, 1:35 pm, "Ikai Lan (Google)" 
wrote:
> What is your application ID? Do you have a Maps API key that you use? If so,
> can you send me this information? We have a mechanism in place to at least
> soften the impact of this issue, but it's manual on my part and I'll need
> this information to make the change.
>
> --
> 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 3, 2010 at 8:37 AM, Mike  wrote:
> > I know this may have been asked a few times, but the issue is not
> > resolved - calling geocode rest API from AppEngine often fails with
> > OVER QUOTA error. This is probably due to the fact that many users run
> > geo aware app on AppEngine and the quota is enforced on all AppEngine
> > IPs and not individual Apps. WE REALLY NEED a workaround for that.
> > Geocoding on a client is not an option since we geocode a relatively
> > large number of points overnight and store the results for quick
> > display on maps later on.
>
> > Please advise on when we can expect the issue to be resolved and
> > whether there are any reasonable workarounds for running geocode from
> > AppEngine.
>
> > Thanks!
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To post to this group, send email to google-appeng...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine+unsubscr...@googlegroups.com > 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: Version 1.4.0 is out!

2010-12-03 Thread Ikai Lan (Google)
A few answers:

1. Regarding async datastore queries, when you create an iterator, an
asynchronous query begins fetching the first batch. As you iterate over the
last batch, App Engine will asynchronously start fetching the next batch of
results. CPU cost will be the same, but overall end-to-end latencies should
decrease

2. Eclipse plugin should be updated by the end of day today. You can also
just download the SDK and set the path directly.

3. The Channel API collects many different mechanisms for doing browser
push. Long polling is one way, but this is a fallback for older browsers. I
believe it *should* be using web sockets when it detects a browser that can
support it.

--
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 3, 2010 at 9:26 AM, Robert Kluin  wrote:

> I think Keakon is right.  One of the talks (the original one from IO
> maybe) explains the architecture.
>
>
>
>
> Robert
>
>
>
>
>
> On Fri, Dec 3, 2010 at 11:31, 风笑雪  wrote:
> > In fact, the Channel API uses an iframe to maintain the connection. It
> > seems Google reuse the infrastructure of Google Talk.
> >
> > --
> > keakon
> >
> > --
> > You 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] Same infamous question - JDO or JPA - want to hear from people who used both!

2010-12-03 Thread Jeff Schnitzer
One warning about JPA:  Unless something has changed in the last year,
the datanucleus JPA interface doesn't provide a detach() method.  This
means you cannot (ever) serialize your entities (say, into memcache).
This is a bit of a mess because JPA doesn't presume bytecode
manipulation (Hibernate & friends do dirty change detection by
comparing against a cached copy of the fields) but datanucleus uses
their JDO implementation (including bytecode manipulation) to
implement JPA.  Thus JDO has a detach() method but JPA does not.

Of course, the "mid-level APIs" like Objectify/Twig/SimpleDS/Slim3
which do not use bytecode manipulation do not have this issue.

Jeff

On Fri, Dec 3, 2010 at 9:18 AM, har_shan  wrote:
> yes, this is there all over internet and like any other appengine
> newbie am in same dilemma but now i want to hear recommendation from
> those who have used/tried both and hence their experiences
>
> also i know that Google doesn't play favorites and
>
> Max Ross has said in his blog...
>
>    I'll give you the same answer I give whenever I'm asked this
> question:
>    If you're not already familiar with JDO or JPA, use JDO because
> our documentation is better. If you're more familiar with JDO than
> JPA, use JDO. If you're more familiar with JPA than JDO, use JPA. If
> you're equally familiar with both then you probably have a preference,
> so use the one you prefer.
>
> Personally i have worked in a pet project using JPA + Hibernate, so am
> inclined towards JPA as am bit familiar.
>
> BUT am starting a new app in appengine so want to be sure that am in
> right path. I know that in appengine some features are missing in impl
> from both JPA/JDO, due to datastore constraints, but i do not want to
> face a situation in future when i hear that life would have been easy
> when i have chosen JDO for AppEngine!
>
> Am also ready to spend time learning JDO if its really worth it. So
> guys, please share your experiences! As always thank much in advance..
> Ask me more if needed..
>
> Hari
>
> --
> You 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] Confused on how entity groups are locked in transaction?!

2010-12-03 Thread har_shan
Am learning GAE and got a bit confused on this.
Lets say i have a sample model

Person (parent)   {id, name, List}
Car {make, model, Person}

(1 - m relationship) say

So both are in same entity groups (lets say i want to transact them
together).

Sample data:
Person: IDNAME
 1 Aravind
 2 Hari

Car
MAKE MODEL
  Ford#258 {Aravind}
  Maruti #456 {Hari}
  Mercedes#456 {Hari}

According to http://code.google.com/appengine/articles/scaling/contention.html
'Keep entity groups small' and also read in other places,
i see that when you update a entity in an entity group in a
transaction, entity group is locked, so when other process tries
updating same entity group it fails/aborts.

So my doubt is, does this mean that if Aravind updates his Car data,
then Hari can't update his Car data at the same time, since both
entities fall under same entity group (and hence it has to be retried
to get it passed).
(if above is true, does it mean that when above update is done
concurrently by say 1K users then most of them would fail!)

or i just understood it wrongly
and does this apply only to each individual's data i.e. in above e.g.
another process just can't update Aravind's Car data (when Aravind is
actually updating Car data)
but CAN update Hari's Car data (and hence other's Car data).

Thanks,

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



[google-appengine] Re: ??? Configuration "webapp_add_wsgi_middleware" not recognized ???

2010-12-03 Thread MdeA
I followed the instructions from here
http://googleappengine.blogspot.com/2010/03/easy-performance-profiling-with.html
So, I created the file appengine_config.py to contain this:

def webapp_add_wsgi_middleware(app):
   from google.appengine.ext.appstats import recording
   app = recording.appstats_wsgi_middleware(app)
   return app

and I added this to the app.yaml:

- url: /stats.*
  script: $PYTHON_LIB/google/appengine/ext/appstats/ui.py

and this at the botom:

admin_console:
 pages:
 - name: Appstats
   url: /stats

On Dec 3, 11:15 am, Robert Kluin  wrote:
> I am guessing it might be something to do with your Appstats
> configuration.  Care to share any details about how you've got
> appstats setup?
>
> Also, just for reference:
>  http://code.google.com/appengine/docs/python/tools/appstats.html
>
> Robert
>
>
>
>
>
>
>
> On Fri, Dec 3, 2010 at 12:53, MdeA  wrote:
> > I shouldn't say for "most", but for "many" of my user requests.
> > Does anybody know?
>
> > On Dec 3, 10:48 am, MdeA  wrote:
> >> Does anybody knows what the message 'Configuration
> >> "webapp_add_wsgi_middleware" not recognized' means.
> >> Started showing a couples of days ago in the logs for most of my user
> >> requests.
> >> Should I worry about that?
> >> Thx.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Google App Engine" group.
> > To post to this group, send email to google-appeng...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/google-appengine?hl=en.

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



Re: [google-appengine] Geocode REST API (v3) from AppEngine

2010-12-03 Thread Ikai Lan (Google)
What is your application ID? Do you have a Maps API key that you use? If so,
can you send me this information? We have a mechanism in place to at least
soften the impact of this issue, but it's manual on my part and I'll need
this information to make the change.

--
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 3, 2010 at 8:37 AM, Mike  wrote:

> I know this may have been asked a few times, but the issue is not
> resolved - calling geocode rest API from AppEngine often fails with
> OVER QUOTA error. This is probably due to the fact that many users run
> geo aware app on AppEngine and the quota is enforced on all AppEngine
> IPs and not individual Apps. WE REALLY NEED a workaround for that.
> Geocoding on a client is not an option since we geocode a relatively
> large number of points overnight and store the results for quick
> display on maps later on.
>
> Please advise on when we can expect the issue to be resolved and
> whether there are any reasonable workarounds for running geocode from
> AppEngine.
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appeng...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

-- 
You 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] Warning: Change in response headers behavior in 1.4.0

2010-12-03 Thread Joshua Smith
In production.  I don't know if they happen in the dev app server or not.  I 
found it because a page that had been working, suddenly stopped working.

On Dec 3, 2010, at 1:23 PM, Ikai Lan (Google) wrote:

> Interesting. Let me ask about this change. Did you observe this behavior only 
> in production or in the dev app server?
> 
> --
> 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 3, 2010 at 7:00 AM, Joshua Smith  wrote:
> FYI:
> 
> In several places in my apps, I allow people to download CSV file, and I 
> generate the name of those files dynamically:
> 
> self.response.headers["Content-Type"] = "application/x-download"
> self.response.headers["Content-Disposition"] = "attachment;filename=%s 
> CDN.csv" % client.name
> 
> This used to work just fine, but with the 1.4.0 release, that generates this 
> error:
> 
> 
> AssertionError: Header values must be strings
> This was easily fixed by forcing the header value to NOT be unicode:
> 
> self.response.headers["Content-Type"] = "application/x-download"
> self.response.headers["Content-Disposition"] = 
> str("attachment;filename=%s CDN.csv" % client.name)
> 
> Clearly, the old code was technically wrong, although in my case, it wouldn't 
> have ever been an issue.
> 
> I recommend that you search for the pattern: headers.*%s in your source code, 
> so you don't get bit by this new assertion!
> 
> -Joshua
> 
> 
> -- 
> You 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] Is this an error in the Using the Images Python API documentation?

2010-12-03 Thread Zeynel
In the dynamically serving images section
http://code.google.com/appengine/docs/python/images/usingimages.html#Serving
the documentation says:

> In the Image Handler we get the img_id
> from the request. We'll need to update the HTML
> of the Guestbook to pass the key of the greeting
> to the Image handler...

But the following code

self.response.out.write("" %
  greeting.key())
self.response.out.write(' %s' %
  cgi.escape(greeting.content))

goes into MainHandler not the Guestbook Handler.

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

2010-12-03 Thread Ikai Lan (Google)
Hey Joshua,

That's good to hear, but I'm going to advise cautious optimism. The work to
improve admin console stability, for instance, is still ongoing.

--
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 3, 2010 at 8:49 AM, Joshua Smith wrote:

> All my apps are screaming fast again, like they were back on November 7.
>
> Yay google!  Let's see if it sticks this time! :)
>
> -Joshua
>
> --
> You 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] does the channel api work across domains?

2010-12-03 Thread Chad Burt
That is great news! Thanks

On Fri, Dec 3, 2010 at 10:24 AM, Peter Petrov  wrote:
> You can. The Channel API is designed to workaround
> the JavaScript same-origin policy, and will work across domains.
>
> On Fri, Dec 3, 2010 at 8:16 PM, Chad Burt  wrote:
>>
>> Say I have an application hosted outside of appengine. I'd like to build a
>> chat app hosted on appengine to take advantage of the channel API. Can I use
>> that system from the first app on a different domain? If so, will it work on
>> all browsers, or just those that support the crossdomain access control
>> header?
>> Thanks,
>> -Chad
>>
>> --
>> You 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.
>



-- 
-Chad

-- 
You 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] does the channel api work across domains?

2010-12-03 Thread Peter Petrov
You can. The Channel API is designed to workaround
the JavaScript same-origin policy, and will work across domains.

On Fri, Dec 3, 2010 at 8:16 PM, Chad Burt  wrote:

> Say I have an application hosted outside of appengine. I'd like to build a
> chat app hosted on appengine to take advantage of the channel API. Can I use
> that system from the first app on a different domain? If so, will it work on
> all browsers, or just those that support the crossdomain access control
> header ?
> Thanks,
> -Chad
>
> --
> You 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] Warning: Change in response headers behavior in 1.4.0

2010-12-03 Thread Ikai Lan (Google)
Interesting. Let me ask about this change. Did you observe this behavior
only in production or in the dev app server?

--
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 3, 2010 at 7:00 AM, Joshua Smith wrote:

> FYI:
>
> In several places in my apps, I allow people to download CSV file, and I
> generate the name of those files dynamically:
>
> self.response.headers["Content-Type"] = "application/x-download"
> self.response.headers["Content-Disposition"] = "attachment;filename=%s
> CDN.csv" % client.name
>
> This used to work just fine, but with the 1.4.0 release, that generates
> this error:
>
>
> AssertionError: Header values must be strings
>
> This was easily fixed by forcing the header value to NOT be unicode:
>
> self.response.headers["Content-Type"] = "application/x-download"
> self.response.headers["Content-Disposition"] =
> str("attachment;filename=%s CDN.csv" % client.name)
>
> Clearly, the old code was technically wrong, although in my case, it
> wouldn't have ever been an issue.
>
> I recommend that you search for the pattern: headers.*%s in your source
> code, so you don't get bit by this new assertion!
>
> -Joshua
>
>  --
> You 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] (Error code 104) 日本語で 失礼します。Sorry in Japanese.

2010-12-03 Thread Robert Kluin
Have you thought about trying the Japanese groups?
  http://groups.google.com/group/google-app-engine-japan







2010/12/2 nobjas :
> 下記のようなエラーが出てしまい、全く対策がわからない状況です。
> 今日の10時頃から出ている模様です。1.4にバージョンアップしたのと関係しているのでしょうか・・・?
>
> A serious problem was encountered with the process that handled this
> request, causing it to exit. This is likely to cause a new process to
> be used for the next request to your application. If you see this
> message frequently, you may be throwing exceptions during the
> initialization of your application. (Error code 104)
>
> どんな情報でも頂けたら助かります!
> 緊急事態なのでご返答頂けると助かります!
>
> --
> You 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: App Engine down ?

2010-12-03 Thread Ikai Lan (Google)
Thanks for the update Francois.

--
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 3, 2010 at 3:48 AM, Francois Masurel wrote:

> Seems to be ok now.
>
> On Dec 3, 12:26 pm, Francois Masurel  wrote:
> > Extremely slow response times...  Error 500 when trying to access the
> > admin console.
>
> --
> You 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] does the channel api work across domains?

2010-12-03 Thread Chad Burt
Say I have an application hosted outside of appengine. I'd like to
build a chat app hosted on appengine to take advantage of the channel
API. Can I use that system from the first app on a different domain? If
so, will it work on all browsers, or just those that support the
crossdomain access control header?
Thanks,
-Chad

-- 
You 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: ??? Configuration "webapp_add_wsgi_middleware" not recognized ???

2010-12-03 Thread Robert Kluin
I am guessing it might be something to do with your Appstats
configuration.  Care to share any details about how you've got
appstats setup?

Also, just for reference:
  http://code.google.com/appengine/docs/python/tools/appstats.html




Robert






On Fri, Dec 3, 2010 at 12:53, MdeA  wrote:
> I shouldn't say for "most", but for "many" of my user requests.
> Does anybody know?
>
> On Dec 3, 10:48 am, MdeA  wrote:
>> Does anybody knows what the message 'Configuration
>> "webapp_add_wsgi_middleware" not recognized' means.
>> Started showing a couples of days ago in the logs for most of my user
>> requests.
>> Should I worry about that?
>> Thx.
>
> --
> You 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: 403 error when trying to use download_app

2010-12-03 Thread ustunozgur


On 3 Aralık, 10:36, lukem  wrote:
> I'm trying to use the download_app command to download an app (word-
> finder) and am getting the following 403 error:
>
> l...@d:~/projects/wordfinder$ python2.5 ../../google_appengine/appcfg.py
> download_app -A word-finder .
> Server: appengine.google.com.
> Fetching file list...
> Error 403: --- begin server output ---
> You do not have permission to download this app version.
> --- end server output ---
>
> I am using the same account that I uploaded the app from.
> Interestingly, when I look in the Versions section of the dashboard,
> it shows the Deployed By field as empty. This app was deployed 637
> days ago -- is it possible that the Deployed By information wasn't
> kept that far back?

Same here. I have an app dating back ~250 days where the deployed by
field is nonempty, and I can download the code just fine.

I have another app which is ~300 days old, which has an empty deployed
by
field, and I can't download the code.

Ustun

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

2010-12-03 Thread Peter Petrov
For billing-enabled apps the quota is 95040 channels created per day. This
is still extremely low, I completely agree.

If I remember correctly, yesterday after the 1.4.0 release this quota was
considerably higher (about 10 times). Probably they are having capacity
problems with the GAE / GTalk infrastructure. Some official explanation
would be nice, though.

On Fri, Dec 3, 2010 at 6:40 PM, Austin  wrote:

> According to the Quota Details page for my application, an application
> can create 8,640 channels per day.
>
> This seems incredibly low, if I'm understanding how channels are used.
>
> As I understand, there is one channel per user, and each channel token
> expires 2 hours after it was created. So if you had 720 clients
> connected, each renewing their token every 12 hours, you'd run out of
> channels by the end of the day.
>
> Is this understanding incorrect? The documentation seems to make a
> distinction between channels and client IDs, but I don't see any way
> to have more than one client on a channel.
>
> - Austin
>
> On Dec 3, 10:10 am, Henric Persson  wrote:
> > Hi Google,
> >
> > Is there a limit to how many channels an application can create? We
> > have a commenting system that I'm moving over to the channel API (was
> > previously polling). At peak hours, we have approximately 30 000
> > concurrent users on our site. Will we be able to keep an open
> > connection to all of them? If not, what's the limit?
> >
> > Thanks,
> > Henric
>
> --
> You 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: ??? Configuration "webapp_add_wsgi_middleware" not recognized ???

2010-12-03 Thread MdeA
I shouldn't say for "most", but for "many" of my user requests.
Does anybody know?

On Dec 3, 10:48 am, MdeA  wrote:
> Does anybody knows what the message 'Configuration
> "webapp_add_wsgi_middleware" not recognized' means.
> Started showing a couples of days ago in the logs for most of my user
> requests.
> Should I worry about that?
> Thx.

-- 
You 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] Same infamous question - JDO or JPA - want to hear from people who used both!

2010-12-03 Thread Jeff Schwartz
Neither. Go with Objectify.

Jeff

On Fri, Dec 3, 2010 at 12:18 PM, har_shan  wrote:

> yes, this is there all over internet and like any other appengine
> newbie am in same dilemma but now i want to hear recommendation from
> those who have used/tried both and hence their experiences
>
> also i know that Google doesn't play favorites and
>
> Max Ross has said in his blog...
>
>I'll give you the same answer I give whenever I'm asked this
> question:
>If you're not already familiar with JDO or JPA, use JDO because
> our documentation is better. If you're more familiar with JDO than
> JPA, use JDO. If you're more familiar with JPA than JDO, use JPA. If
> you're equally familiar with both then you probably have a preference,
> so use the one you prefer.
>
> Personally i have worked in a pet project using JPA + Hibernate, so am
> inclined towards JPA as am bit familiar.
>
> BUT am starting a new app in appengine so want to be sure that am in
> right path. I know that in appengine some features are missing in impl
> from both JPA/JDO, due to datastore constraints, but i do not want to
> face a situation in future when i hear that life would have been easy
> when i have chosen JDO for AppEngine!
>
> Am also ready to spend time learning JDO if its really worth it. So
> guys, please share your experiences! As always thank much in advance..
> Ask me more if needed..
>
> Hari
>
> --
> You 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.
>
>


-- 
*Jeff Schwartz*

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

2010-12-03 Thread MdeA
Does anybody knows what the message 'Configuration
"webapp_add_wsgi_middleware" not recognized' means.
Started showing a couples of days ago in the logs for most of my user
requests.
Should I worry about that?
Thx.

-- 
You 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] (Error code 104) 日本語で失 礼します。Sorry in Japanese.

2010-12-03 Thread nobjas
下記のようなエラーが出てしまい、全く対策がわからない状況です。
今日の10時頃から出ている模様です。1.4にバージョンアップしたのと関係しているのでしょうか・・・?

A serious problem was encountered with the process that handled this
request, causing it to exit. This is likely to cause a new process to
be used for the next request to your application. If you see this
message frequently, you may be throwing exceptions during the
initialization of your application. (Error code 104)

どんな情報でも頂けたら助かります!
緊急事態なのでご返答頂けると助かります!

-- 
You 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: More deployment problems today

2010-12-03 Thread Ronald Chen
Me too!

Problem started around 10 am pst

On Dec 2, 11:06 am, Ben Welsh  wrote:
> I am also getting this error on two different apps when trying to
> update. Error starts at the "Cloning X application files" stage.

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

2010-12-03 Thread Austin
According to the Quota Details page for my application, an application
can create 8,640 channels per day.

This seems incredibly low, if I'm understanding how channels are used.

As I understand, there is one channel per user, and each channel token
expires 2 hours after it was created. So if you had 720 clients
connected, each renewing their token every 12 hours, you'd run out of
channels by the end of the day.

Is this understanding incorrect? The documentation seems to make a
distinction between channels and client IDs, but I don't see any way
to have more than one client on a channel.

- Austin

On Dec 3, 10:10 am, Henric Persson  wrote:
> Hi Google,
>
> Is there a limit to how many channels an application can create? We
> have a commenting system that I'm moving over to the channel API (was
> previously polling). At peak hours, we have approximately 30 000
> concurrent users on our site. Will we be able to keep an open
> connection to all of them? If not, what's the limit?
>
> Thanks,
> Henric

-- 
You 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] Geocode REST API (v3) from AppEngine

2010-12-03 Thread Mike
I know this may have been asked a few times, but the issue is not
resolved - calling geocode rest API from AppEngine often fails with
OVER QUOTA error. This is probably due to the fact that many users run
geo aware app on AppEngine and the quota is enforced on all AppEngine
IPs and not individual Apps. WE REALLY NEED a workaround for that.
Geocoding on a client is not an option since we geocode a relatively
large number of points overnight and store the results for quick
display on maps later on.

Please advise on when we can expect the issue to be resolved and
whether there are any reasonable workarounds for running geocode from
AppEngine.

Thanks!

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



[google-appengine] Re: how to setup "warm up requests"

2010-12-03 Thread MdeA
thanks a lot!

On Dec 3, 10:12 am, 风笑雪  wrote:
> http://code.google.com/appengine/docs/python/config/appconfig.html#Wa...
>
> --
> keakon

-- 
You 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: Version 1.4.0 is out!

2010-12-03 Thread Robert Kluin
I think Keakon is right.  One of the talks (the original one from IO
maybe) explains the architecture.




Robert





On Fri, Dec 3, 2010 at 11:31, 风笑雪  wrote:
> In fact, the Channel API uses an iframe to maintain the connection. It
> seems Google reuse the infrastructure of Google Talk.
>
> --
> keakon
>
> --
> You 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] Same infamous question - JDO or JPA - want to hear from people who used both!

2010-12-03 Thread har_shan
yes, this is there all over internet and like any other appengine
newbie am in same dilemma but now i want to hear recommendation from
those who have used/tried both and hence their experiences

also i know that Google doesn't play favorites and

Max Ross has said in his blog...

I'll give you the same answer I give whenever I'm asked this
question:
If you're not already familiar with JDO or JPA, use JDO because
our documentation is better. If you're more familiar with JDO than
JPA, use JDO. If you're more familiar with JPA than JDO, use JPA. If
you're equally familiar with both then you probably have a preference,
so use the one you prefer.

Personally i have worked in a pet project using JPA + Hibernate, so am
inclined towards JPA as am bit familiar.

BUT am starting a new app in appengine so want to be sure that am in
right path. I know that in appengine some features are missing in impl
from both JPA/JDO, due to datastore constraints, but i do not want to
face a situation in future when i hear that life would have been easy
when i have chosen JDO for AppEngine!

Am also ready to spend time learning JDO if its really worth it. So
guys, please share your experiences! As always thank much in advance..
Ask me more if needed..

Hari

-- 
You 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 setup "warm up requests"

2010-12-03 Thread 风笑雪
http://code.google.com/appengine/docs/python/config/appconfig.html#Warming_Requests

--
keakon

-- 
You 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: Querying data that has unowned relationships

2010-12-03 Thread fb
That really does help. I've been thinking as if I was designing a SQL
DB, but if I get out of that mindset I'm pretty sure what I can work
out what I need to do.
Thanks!

On Dec 3, 1:00 pm, Jeff Schwartz  wrote:
> On Fri, Dec 3, 2010 at 5:46 AM, fb  wrote:
> > I guess I could follow your suggestion and have my application make
> > sure addresses are synchronized, but its duplication of data which is
> > usually considered poor design.
>
> Not when you are using the DataStore it is not. DataStore is not SQL and one
> of the biggest mistakes made is approaching a design as one would if they
> were designing for SQL. Forget everything you know about SQL when dealing
> with the DataStore. It will save you a lot of trouble in both the short and
> long run.
>
> Jeff

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-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: AppEngine entity modeling - minimizing entity groups + achieving atomic cascading

2010-12-03 Thread har_shan
Hi Jones,
Thanks for your detailed expln. i got it and It really helped. Am
happy that am thinking in the right lines.

All, Any other suggestions?

Thanks again,
Hari

On Dec 3, 8:49 pm, Eli Jones  wrote:
> Hari,
>
> It seems you are already thinking along the "correct" lines with your final
> suggestion.
>
> There is not requirement that something that is "deleted" must be removed
> from a model immediately.
>
> For example, when you delete an entity from the datastore, it isn't deleted.
>  It is marked as "deleted" and occassionally the datastore tablets are
> compacted and all entites marked "deleted" get removed.
>
> What seems to be in-elegant, is really used all over the place in computer
> science.  When something get's deleted.. either a "delete flag" is turned
> on.. or there is just a pointer to that thing that gets set to Null or
> something or other.
>
> See here for Nick Johnson's description of Log Structured storage:
>
> http://blog.notdot.net/2009/12/Damn-Cool-Algorithms-Log-structured-st...
>
> For more wonky underneaths of distributed filesystems, see Matt Dillon's
> description of Hammer ("Data is not (never!) immediately overwritten so no
> UNDO is needed for file data."):
>
> http://www.dragonflybsd.org/hammer/hammer.pdf
>
> Also, there is an added benefit of not immediately deleting an entity.. what
> if someone is on a roll, and they're deleting questions left and right...
> and then they realize that they deleted five questions that shouldn't have
> been deleted?  If you've been furiously ensuring all deletes with
> transactions, there is nothing they can do.  If you are simply marking items
> as deleted, you can simply provide them with an un-delete option.
>
> So.. I may start to sound like a broken record (since I feel like I say this
> in every other post)... but do not use transactions and entity groups unless
> it is absolutely necessary (you  have gone made and are creating a banking
> subsytem on Appengine, for example).
>
> Most of the time, people just get hung up thinking that a delete or some
> other event should happen immediately at the moment it was conceived (I
> blame twitter and txting and chat for this).. and if it doesn't, there is
> something wrong with the design.
>
> So, long story short, consider doing something like the "IS_DELETED" flag..
> (or, if more than one Exam can share the same question, just have Exams
> point to Pages which point to Questions.. and IS_DELETED is only marked if
> an entity is no longer pointed to by anything.. and your nightly delete
> process verifies that IS_DELETED is correct by checking if an entity belongs
> to something else before delete [that might be a little much])
>
>
>
>
>
>
>
> On Fri, Dec 3, 2010 at 5:53 AM, har_shan  wrote:
> > Hello,
> > Am learning AppEngine and have started developing new app and want to
> > clarify something.
>
> > I understood that
> > a. To achieve atomicity of update/delete of several entities we need
> > to do it in a transaction and hence all should fall under same entity
> > group
> > b. Having big entity groups is not scalable as it causes contention.
> > (Q1: Correct?)
>
> > So here is an entity model of an online examination system for sake of
> > discussion:
>
> > Entities:
> > Subject
> > Exam
> > Page
> > Question
> > Answer
>
> > As you can see from top, each entity 1 - many relationship with the
> > immediate bottom one i.e 1 Subject can have many exams, 1 exam -> many
> > pages, 1 page can have many questions...
>
> > As you can see, i would like to establish cascading update/delete
> > relationship among these entities (JPA datanucleus appengine
> > implemention supports this (under the hood) by putting all entities
> > under same entity group (Q2: Correct?) though AppEngine natively
> > doesn't support this constraint) so naturally all would go under same
> > entity group so that
> > a. i can delete a Page (if my user does) in a transaction and be sure
> > that all pages, questions, answers are all deleted
> > b. or i can delete a subject altogether in a transaction all clear all
> > stuff underneath it
>
> > So when i extend this to my real app, i see that all of my (or atleast
> > most) entities are interrelated and fit into same entity group to be
> > able to transact them altogether - making my model inefficient.
>
> > Q3: Please advice on how to rethink this design (and the best
> > practice) and still achieve what i need. Ask me more if needed.
> > Would be great if you could point me to relevant examples.
>
> > p.s. 1 solution i could think of is having each entity in a separate
> > entity group and a separate persistent field in each entity (say Exam)
> > named 'IS_DELETED' defaulting to FALSE (value 0). Once a user deletes
> > an Exam, i will set the field to 1 (TRUE) and that i don't load them
> > anymore. I shall write a Cron job which clears all related entities in
> > separate separate transaction in the backend which will retry upon
> > failures if needed. But am s

[google-appengine] Re: AppEngine entity modeling - minimizing entity groups + achieving atomic cascading

2010-12-03 Thread har_shan
Hi Yasuo,

Thanks for your suggestion, but as of now i would like to go for a
standardized solution. Would definitely keep slim3 in mind.

Hari

On Dec 3, 4:14 pm, Yasuo Higa  wrote:
> Hi Hari,
>
> > I understood that
> > a. To achieve atomicity of update/delete of several entities we need
> > to do it in a transaction and hence all should fall under same entity
> > group
> > b. Having big entity groups is not scalable as it causes contention.
> > (Q1: Correct?)
>
> Correct, but slim3, which is a java framework, supports global
> transactions between multiple entity 
> groups.http://sites.google.com/site/slim3appengine/#gtx
>
> You may worry about the overhead of global transactions. Don't worry.
> It is not very expensive.
> The demonstration is as follows:http://slim3demo.appspot.com/gtx/
>
> Yasuo Higa
>
>
>
>
>
>
>
> On Fri, Dec 3, 2010 at 7:53 PM, har_shan  wrote:
> > Hello,
> > Am learning AppEngine and have started developing new app and want to
> > clarify something.
>
> > I understood that
> > a. To achieve atomicity of update/delete of several entities we need
> > to do it in a transaction and hence all should fall under same entity
> > group
> > b. Having big entity groups is not scalable as it causes contention.
> > (Q1: Correct?)
>
> > So here is an entity model of an online examination system for sake of
> > discussion:
>
> > Entities:
> > Subject
> > Exam
> > Page
> > Question
> > Answer
>
> > As you can see from top, each entity 1 - many relationship with the
> > immediate bottom one i.e 1 Subject can have many exams, 1 exam -> many
> > pages, 1 page can have many questions...
>
> > As you can see, i would like to establish cascading update/delete
> > relationship among these entities (JPA datanucleus appengine
> > implemention supports this (under the hood) by putting all entities
> > under same entity group (Q2: Correct?) though AppEngine natively
> > doesn't support this constraint) so naturally all would go under same
> > entity group so that
> > a. i can delete a Page (if my user does) in a transaction and be sure
> > that all pages, questions, answers are all deleted
> > b. or i can delete a subject altogether in a transaction all clear all
> > stuff underneath it
>
> > So when i extend this to my real app, i see that all of my (or atleast
> > most) entities are interrelated and fit into same entity group to be
> > able to transact them altogether - making my model inefficient.
>
> > Q3: Please advice on how to rethink this design (and the best
> > practice) and still achieve what i need. Ask me more if needed.
> > Would be great if you could point me to relevant examples.
>
> > p.s. 1 solution i could think of is having each entity in a separate
> > entity group and a separate persistent field in each entity (say Exam)
> > named 'IS_DELETED' defaulting to FALSE (value 0). Once a user deletes
> > an Exam, i will set the field to 1 (TRUE) and that i don't load them
> > anymore. I shall write a Cron job which clears all related entities in
> > separate separate transaction in the backend which will retry upon
> > failures if needed. But am sure this is not elegant and not sure
> > whether this will work out..
>
> > Thanks all for your responses,
> > Hari
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Google App Engine" group.
> > To post to this group, send email to google-appeng...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/google-appengine?hl=en.

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



[google-appengine] Re: Final infrastructure decision, GAE or AWS?

2010-12-03 Thread Adam Sah
imho: I'd be cautious about AppScale-- you may inherit all the worst
problems
   of AWS and GAE, with few benefits.  One win however-- you'll have
one
   [low level] system to keep running, diagnose, etc.

also imho: I wouldn't wait for GAE/Business or any pre-announced
offering
   from any company: pre-announcements have a tendency to slip.

hope this helps,
adam


On Dec 2, 8:10 pm, Shane  wrote:
> Hi Adam,
>
> Thanks for the response.  One way I was considering approaching the
> issue of keeping the doors open to migrate back to GAE at a later
> date, is to use something like AppScale on AWS.  This way I can be
> more or less on the same path as GAE.
>
> I am really keen to see the GAE for Business plans for non-intranet
> solutions.  This could be an awesome opportunity, however until this
> happens, I just can't rely on a beta product.  It's a real shame
> because it's a lovely system.
>
> Shane
>
> On Dec 3, 8:09 am, Adam Sah  wrote:> I'm a *very* 
> longtime GAE user and former googler and I love it... but
> > for now,
> >    I usually recommend it as an *ingredient* and not as the backbone
> > of the
> >    whole system.
>
> > Specifically, GAE can't support certain libraries (e.g. anything with
> > C/C++),
> >    so you inevitably need another service like AWS, linode, etc.  I
> > use Linode
> >    to run SOLR for us and another PC instance for our offline pipeline
> > (maybe
> >    move to Tasks???)
>
> > GAE makes a nice frontend-- just be prepared for whining about short
> > outages,
> >    limitations, etc. -- OTOH, I love not carrying a pager, instant
> > scaling, etc.
> >    I once did 600 QPS on appengine, effortlessly.  I've run $MM
> > businesses
> >    on appengine, painlessly.
>
> > One thing: if you start on GAE you can easily migrate away, but if you
> > start
> >    elsewhere it's very hard to migrate to GAE.  This argues for giving
> > it a shot,
> >    then re-evaluating (say) monthly.
>
> > For my latest startup, we're based entirely on GAE and it's love-hate,
> > but we've
> >    stuck with it and the issues haven't been big enough to matter--
> > and v1.4
> >    (any minute now!!!) should solve 50+% of the hassles.
>
> > adam
>
> > On Dec 2, 10:03 am, Grzegorz Machniewski
>
> >  wrote:
> > > > Do you know how Zynga's backend is set up on AWS?  I would imagine it's
>
> > > pretty complex so, you have to have the system architects and 
> > > administrators
> > > to manage that.
>
> > > Zynga is using RightScale  as a platform management software 
> > > (http://www.rightscale.com/)... it automates management and scaling of the
> > > application. It's quite impressive solution,
>
> > > Regards
> > > G.
>
> > > On Thu, Dec 2, 2010 at 6:34 PM, Eli Jones  wrote:
> > > > Maybe one of the Google developers will see this and can provide you 
> > > > with
> > > > an informed answer.. but, if it slips through the cracks, you should
> > > > definitely ask during the IRC office hours (or just check #appengine on
> > > > irc.freenode.net, since someone from Google may be there at any time.)
>
> > > > If your app becomes popular on a Farmville scale, you'd have to be 
> > > > prepared
> > > > to automatically start-up new instances and balance load across them.  
> > > > Which
> > > > means you'd need to spend time and energy designing this sort of system 
> > > > up
> > > > front.
>
> > > > Though, if you just plan on cranking up an Extra Large EC2 Instance and
> > > > running off of that (and maybe using SimpleDB on the back end).. and 
> > > > dealing
> > > > with front end scaling issues later.  You would probably be fine.. most 
> > > > apps
> > > > do not become popular on the Farmville scale.  SimpleDB will enforce a
> > > > little database discipline, and, if you do "blow up", you could probably
> > > > figure out how to load balance over multiple static instances until you
> > > > cooked up some sort of automated scaling method.  (Again, this depends 
> > > > on
> > > > you using SimpleDB on the back-end.)
>
> > > > With Appengine, you avoid any sort of systems architecting (just code as
> > > > fast as possible).. but you have to spend time coding ways to deal with 
> > > > the
> > > > 99th percentile outlier Datastore issues.
>
> > > > Maybe there are some people here who have user facing apps who can speak
> > > > about this from experience (I happily do backend processing where 
> > > > retrying a
> > > > failed datastore operation or a failed cold start is no problem.. and 
> > > > there
> > > > is no user on the other side to become frustrated.)
>
> > > > On Thu, Dec 2, 2010 at 1:10 AM, Shane  wrote:
>
> > > >> I know this has been asked one way or another before, but most of the
> > > >> main issues to do with GAE stability seem to have been asked around
> > > >> the end of 2008, early 2009.
>
> > > >> Basically, I have been arguing back and forth with my business partner
> > > >> about whether to use GAE or AWS for the back-end of our social game
> > > >> engine.  I love GAE (J

[google-appengine] how to setup "warm up requests"

2010-12-03 Thread MdeA
Hi,
I haven't found any doc on how to setup warm up requests in the
app.yaml file.
Does anybody know?
Thanks.

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



[google-appengine] Faster than Fast again!

2010-12-03 Thread Joshua Smith
All my apps are screaming fast again, like they were back on November 7.

Yay google!  Let's see if it sticks this time! :)

-Joshua

-- 
You 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] Does Channel API support pushing UTF-8 message?

2010-12-03 Thread Vanni.T
Hi,

simplejson.dumps(message) is enough, no need for encode('utf-8')


Just checked in SDK Interactive Console:



from django.utils import simplejson as json
print '--- s ---'
s = u'\u0b9e'
print s.encode('utf-8')
print repr(s)
print type(s)
print '--- j ---'
j = json.dumps(s)
print j
print repr(j)
print type(j)
print repr(json.loads(j))



Output:



--- s ---
ஞ
u'\u0b9e'

--- j ---
"\u0b9e"
'"\\u0b9e"'
 <--- already of type 'str'
u'\u0b9e'

-- 
You 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: Version 1.4.0 is out!

2010-12-03 Thread 风笑雪
In fact, the Channel API uses an iframe to maintain the connection. It
seems Google reuse the infrastructure of Google Talk.

--
keakon

-- 
You 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: Version 1.4.0 is out!

2010-12-03 Thread Ice13ill
Regarding the Channel API, i am quite curious if what's behind is a
wrapper across the pulling mechanism, (client sends request and waits
for it until the server has an answer, or smth like that). or IN FACT,
the server pushes data to client somehow...

On Dec 3, 1:23 pm, Sahid Orentino Ferdjaoui
 wrote:
> Hello everybody,
>
> I have two bugs;
>   The link "Learn more" is broken and i can't update the billing settings.
>
> Please see the screen:http://i.imgur.com/zdhPO.png
>
> Thank.
>
> --
>   .
>  ..:
>
>
>
>
>
>
>
> On Fri, Dec 3, 2010 at 11:57 AM, Droid  wrote:
> > The 'Always on' is too expensive for me to justify at the moment. So -
> > will a 'warm up request' from one App keep low latency for requests
> > from another App. (same App but on different PCs/phones if you see
> > what I mean) I am thinking of polling from my own App in the hope that
> > others hitting the same App Engine App will be already warmed up...
>
> > On Dec 2, 8:14 pm, "Ikai Lan (Google)" 
> > wrote:
> >> Hey everyone,
>
> >> Version 1.4.0 is officially released! Documentation will go live shortly. 
> >> In
> >> the meantime, check out our blog post:
>
> >>http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-e...
>
> >> Release notes are below:
>
> >> Python
> >> 
> >> - The Always On feature allows applications to pay and keep 3 instances of
> >> their
> >>   application always running, which can significantly reduce application
> >>   latency.
> >> - Developers can now enable Warmup Requests. By specifying  a handler in an
> >>   app's app.yaml, App Engine will attempt to send a Warmup Request to
> >> initialize
> >>   new instances before a user interacts with it. This can reduce the 
> >> latency
> >> an
> >>   end-user sees for initializing your application.
> >> - The Channel API is now available for all users.
> >> - Task Queue has been officially released, and is no longer an experimental
> >>   feature. The API import paths that use 'labs' have been deprecated. Task
> >> queue
> >>   storage will count towards an application's overall storage quota, and
> >> will
> >>   thus be charged for.
> >> - The deadline for Task Queue and Cron requests has been raised to 10
> >> minutes.
> >>   Datastore and API deadlines within those requests remain unchanged.
> >> - For the Task Queue, developers can specify task retry_parameters in their
> >>   queue.yaml.
> >> - Apps that have enabled billing are allowed up to 100 queues with the Task
> >>   Queue API.
> >> - Metadata Queries on the datastore for datastore kinds, namespaces, and
> >> entity
> >>   properties are available.
> >> - URLFetch allowed response size has been increased, up to 32 MB. Request
> >> size
> >>   is still limited to 1 MB.
> >> - The request and response sizes for the Images API have been increased to
> >>   32 MB.
> >> - The total size of Memcache batch operations is increased to 32 MB. The 1
> >> MB
> >>   limit on individual Memcache objects still applies.
> >> - The attachment size for outgoing emails has been increased from 1 MB to 
> >> 10
> >> MB.
> >>   The size limit for incoming emails is still 10 MB.
> >> - Size and quantity limits on datastore batch get/put/delete operations 
> >> have
> >>   been removed. Individual entities are still limited to 1 MB, but your app
> >> may
> >>   batch as many entities together for get/put/delete calls as the overall
> >>   datastore deadline will allow for.
> >> - When iterating over query results, the datastore will now asynchronously
> >>   prefetch results, reducing latency in many cases by 10-15%.
> >> - The Admin Console Blacklist page lists the top blacklist rejected
> >> visitors.
> >> - The automatic image thumbnailing service supports arbitrary crop sizes up
> >> to
> >>   1600px.
> >> - Overall average instance latency in the Admin Console is now a weighted
> >>   average over QPS per instance.
> >> - The developer who uploaded an app version can download that version's 
> >> code
> >>   using the appcfg.py download_app command. This feature can be disabled on
> >>   a per application basis in the admin console, under the 'Permissions' 
> >> tab.
> >>   Once disabled, code download for the application CANNOT be re-enabled.
> >> - Fixed an issue where custom Admin Console pages did not work for Google
> >>   Apps for your Domain users.
> >> - In the Python runtime, an instance is killed and restarted when a request
> >>   handler hits DeadlineExceededError. This should fix an issue related to
> >>   intermittent SystemErrors using Django.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=772
> >> - Allow Django initialization to be moved to appengine_config.py to avoid
> >>   Django version conflicts when mixing webapp.template with pure Django.
> >>    http://code.google.com/p/googleappengine/issues/detail?id=1758
> >> - Fixed an issue with OpenId over SSL.
> >>  http://code.google.com/p/googleappengine/issues/detail?id=3393
> >> - Fixed an issue on the de

[google-appengine] Re: App engine is down for me

2010-12-03 Thread Alexandru Farcaş
ba tu lasa te de programat in seara asta si adu-ne si noua femei

On Dec 3, 6:18 pm, Ice13ill  wrote:
> Same here...
>
> On Dec 3, 2:15 pm, "Raymond C."  wrote:
>
>
>
>
>
>
>
> > very unstable for me too.
>
> > yet, the status page is all green without absolute zero error rate.
>
> > On Dec 3, 7:26 pm, Kenneth  wrote:
>
> > > Everything include app and console timing out.
>
> > > Bloody hell google.

-- 
You 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 is down for me

2010-12-03 Thread Ice13ill
Same here...


On Dec 3, 2:15 pm, "Raymond C."  wrote:
> very unstable for me too.
>
> yet, the status page is all green without absolute zero error rate.
>
> On Dec 3, 7:26 pm, Kenneth  wrote:
>
>
>
>
>
>
>
> > Everything include app and console timing out.
>
> > Bloody hell google.

-- 
You 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] Channel API quota

2010-12-03 Thread Henric Persson
Hi Google,

Is there a limit to how many channels an application can create? We
have a commenting system that I'm moving over to the channel API (was
previously polling). At peak hours, we have approximately 30 000
concurrent users on our site. Will we be able to keep an open
connection to all of them? If not, what's the limit?

Thanks,
Henric

-- 
You 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] Google Apps accounts and forums

2010-12-03 Thread Kyle Baley
I'm having quite a bit of trouble with the new community forums on
AppEngine. Might be linked to the new way Google is handling GAFYD
accounts as well.


Here's what happened this morning when I tried to access the community
forums: http://twitpic.com/3cife4


I have two GAFYD accounts: one for my personal domain and one for my
work, both converted to the "new" mechanism that makes them similar to
regular Google accounts. With each nested frame, it would ask me to
select one of them. I did and it would open another nested frame. Only
by opening a frame in a new tab/window was I able to break the cycle.
And even then, I couldn't do it from the Java-specific forum, only the
general one.


Has anyone else had similar problems with this forum? If so, did you
come up with a workaround?

-- 
You 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] AppEngine entity modeling - minimizing entity groups + achieving atomic cascading

2010-12-03 Thread Eli Jones
Hari,

It seems you are already thinking along the "correct" lines with your final
suggestion.

There is not requirement that something that is "deleted" must be removed
from a model immediately.

For example, when you delete an entity from the datastore, it isn't deleted.
 It is marked as "deleted" and occassionally the datastore tablets are
compacted and all entites marked "deleted" get removed.

What seems to be in-elegant, is really used all over the place in computer
science.  When something get's deleted.. either a "delete flag" is turned
on.. or there is just a pointer to that thing that gets set to Null or
something or other.

See here for Nick Johnson's description of Log Structured storage:

http://blog.notdot.net/2009/12/Damn-Cool-Algorithms-Log-structured-storage

For more wonky underneaths of distributed filesystems, see Matt Dillon's
description of Hammer ("Data is not (never!) immediately overwritten so no
UNDO is needed for file data."):

http://www.dragonflybsd.org/hammer/hammer.pdf


Also, there is an added benefit of not immediately deleting an entity.. what
if someone is on a roll, and they're deleting questions left and right...
and then they realize that they deleted five questions that shouldn't have
been deleted?  If you've been furiously ensuring all deletes with
transactions, there is nothing they can do.  If you are simply marking items
as deleted, you can simply provide them with an un-delete option.

So.. I may start to sound like a broken record (since I feel like I say this
in every other post)... but do not use transactions and entity groups unless
it is absolutely necessary (you  have gone made and are creating a banking
subsytem on Appengine, for example).

Most of the time, people just get hung up thinking that a delete or some
other event should happen immediately at the moment it was conceived (I
blame twitter and txting and chat for this).. and if it doesn't, there is
something wrong with the design.

So, long story short, consider doing something like the "IS_DELETED" flag..
(or, if more than one Exam can share the same question, just have Exams
point to Pages which point to Questions.. and IS_DELETED is only marked if
an entity is no longer pointed to by anything.. and your nightly delete
process verifies that IS_DELETED is correct by checking if an entity belongs
to something else before delete [that might be a little much])

On Fri, Dec 3, 2010 at 5:53 AM, har_shan  wrote:

> Hello,
> Am learning AppEngine and have started developing new app and want to
> clarify something.
>
> I understood that
> a. To achieve atomicity of update/delete of several entities we need
> to do it in a transaction and hence all should fall under same entity
> group
> b. Having big entity groups is not scalable as it causes contention.
> (Q1: Correct?)
>
> So here is an entity model of an online examination system for sake of
> discussion:
>
> Entities:
> Subject
> Exam
> Page
> Question
> Answer
>
> As you can see from top, each entity 1 - many relationship with the
> immediate bottom one i.e 1 Subject can have many exams, 1 exam -> many
> pages, 1 page can have many questions...
>
> As you can see, i would like to establish cascading update/delete
> relationship among these entities (JPA datanucleus appengine
> implemention supports this (under the hood) by putting all entities
> under same entity group (Q2: Correct?) though AppEngine natively
> doesn't support this constraint) so naturally all would go under same
> entity group so that
> a. i can delete a Page (if my user does) in a transaction and be sure
> that all pages, questions, answers are all deleted
> b. or i can delete a subject altogether in a transaction all clear all
> stuff underneath it
>
> So when i extend this to my real app, i see that all of my (or atleast
> most) entities are interrelated and fit into same entity group to be
> able to transact them altogether - making my model inefficient.
>
> Q3: Please advice on how to rethink this design (and the best
> practice) and still achieve what i need. Ask me more if needed.
> Would be great if you could point me to relevant examples.
>
> p.s. 1 solution i could think of is having each entity in a separate
> entity group and a separate persistent field in each entity (say Exam)
> named 'IS_DELETED' defaulting to FALSE (value 0). Once a user deletes
> an Exam, i will set the field to 1 (TRUE) and that i don't load them
> anymore. I shall write a Cron job which clears all related entities in
> separate separate transaction in the backend which will retry upon
> failures if needed. But am sure this is not elegant and not sure
> whether this will work out..
>
> Thanks all for your responses,
> Hari
>
> --
> You 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

Re: [google-appengine] Does Channel API support pushing UTF-8 message?

2010-12-03 Thread 风笑雪
It seems only ASCII text is allowed, you can use simplejson to encode:

simplejson.dumps(message).encode('utf-8')

--
keakon


On Fri, Dec 3, 2010 at 3:10 PM, Alfred Yang  wrote:

> Do we need to set the ContentType of the response?
>
> Thanks,
> Alfred
>
> --
> You 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] Warning: Change in response headers behavior in 1.4.0

2010-12-03 Thread Joshua Smith
FYI:

In several places in my apps, I allow people to download CSV file, and I 
generate the name of those files dynamically:

self.response.headers["Content-Type"] = "application/x-download"
self.response.headers["Content-Disposition"] = "attachment;filename=%s 
CDN.csv" % client.name

This used to work just fine, but with the 1.4.0 release, that generates this 
error:

AssertionError: Header values must be strings
This was easily fixed by forcing the header value to NOT be unicode:

self.response.headers["Content-Type"] = "application/x-download"
self.response.headers["Content-Disposition"] = str("attachment;filename=%s 
CDN.csv" % client.name)

Clearly, the old code was technically wrong, although in my case, it wouldn't 
have ever been an issue.

I recommend that you search for the pattern: headers.*%s in your source code, 
so you don't get bit by this new assertion!

-Joshua

-- 
You 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: Prerelease SDK 1.4.0 is out!

2010-12-03 Thread David Sowerby
Hi

Thanks for the news.  There are many good features in this release -
but for me the most important one is that the development team have
obviously been listening to the feedback and tackling the issues which
matter

Great stuff

On Nov 18, 10:27 pm, "Ikai Lan (Google)" 
wrote:
> Hey everyone,
>
> I just wanted to let everyone know that prerelease SDK 1.4.0 is out! Get it
> from the Google Code project:
>
> http://code.google.com/p/googleappengine/downloads/list
>
> We're still working on the docs and will have them ready for the final
> release, so if there are any questions about how to use the new features,
> feel free to ask on this thread and I'll do my best to clarify them. The
> release notes are below. This is an EXCITING release:
>
> Python
> 
> - The Always On feature allows applications to pay and keep 3 instances of
> their
>   application always running, which can significantly reduce application
>   latency.
> - Developers can now enable Warmup Requests. By specifying  a handler in an
>   app's app.yaml, App Engine will attempt to to send a Warmup Request to
>   initialize new instances before a user interacts with it. This can reduce
> the
>   latency an end-user sees for initializing your application.
> - The Channel API is now available for all users.
> - Task Queue has been officially released, and is no longer an experimental
>   feature. The API import paths that use 'labs' have been deprecated. Task
> queue
>   storage will count towards an application's overall storage quota, and
> will
>   thus be charged for.
> - The deadline for Task Queue and Cron requests has been raised to 10
> minutes.
>   Datastore and API deadlines within those requests remain unchanged.
> - For the Task Queue, developers can specify task retry_parameters in their
>   queue.yaml.
> - Metadata Queries on the datastore for datastore kinds, namespaces, and
> entity
>   properties are available.
> - URLFetch allowed response size has been increased, up to 32 MB. Request
> size
>   is still limited to 1 MB.
> - The Admin Console Blacklist page lists the top blacklist rejected
> visitors.
> - The automatic image thumbnailing service supports arbitrary crop sizes up
> to
>   1600px.
> - Overall average instance latency in the Admin Console is now a weighted
>   average over QPS per instance.
> - The developer who uploaded an app version can download that version's code
>   using the appcfg.py download_app command. This feature can be disabled on
>   a per application basis in the admin console, under the 'Permissions' tab.
>   Once disabled, code download for the application CANNOT be re-enabled.
> - Fixed an issue where custom Admin Console pages did not work for Google
>   Apps for your Domain users.
> - Allow Django initialization to be moved to appengine_config.py to avoid
>   Django version conflicts when mixing webapp.template with pure Django.
>    http://code.google.com/p/googleappengine/issues/detail?id=1758
> - Fixed an issue in the dev_appserver where get_serving_url did not work
>   for transparent, cropped PNGs:
>    http://code.google.com/p/googleappengine/issues/detail?id=3887
> - Fixed an issue with the DatastoreFileStub.
>    http://code.google.com/p/googleappengine/issues/detail?id=3895
>
> Java
> -
> - The Always On feature allows applications to pay and keep 3 instances of
> their
>   application always running, which can significantly reduce application
>   latency.
> - Developers can now enable Warmup Requests. By specifying  a handler in an
>   app's appengine-web.xml, App Engine will attempt to to send a Warmup
> Request
>   to initialize new instances before a user interacts with it. This can
> reduce
>   the latency an end-user sees for initializing your application.
> - The Channel API is now available for all users.
> - Task Queue has been officially released, and is no longer an experimental
>   feature. The API import paths that use 'labs' have been deprecated. Task
> queue
>   storage will count towards an application's overall storage quota, and
> will
>   thus be charged for.
> - The deadline for Task Queue and Cron requests has been raised to 10
> minutes.
>   Datastore and API deadlines within those requests remain unchanged.
> - For the Task Queue, developers can specify task retry-parameters in their
>   queue.xml.
> - Metadata Queries on the datastore for datastore kinds, namespaces, and
> entity
>   properties are available.
> - URL Fetch allowed response size has been increased, up to 32 MB. Request
> size
>   is still limited to 1 MB.
> - The Admin Console Blacklist page lists the top blacklist rejected
> visitors.
> - The automatic image thumbnailing service supports arbitrary crop sizes up
> to
>   1600px.
> - Overall average instance latency in the Admin Console is now a weighted
>   average over QPS per instance.
> - Added a low-level AysncDatastoreService for making calls to the datastore
>   asynchronously.
> - Added a getBodyAsBytes() method to Q

Re: [google-appengine] Re: Querying data that has unowned relationships

2010-12-03 Thread Jeff Schwartz
On Fri, Dec 3, 2010 at 5:46 AM, fb  wrote:

> I guess I could follow your suggestion and have my application make
> sure addresses are synchronized, but its duplication of data which is
> usually considered poor design.
>

Not when you are using the DataStore it is not. DataStore is not SQL and one
of the biggest mistakes made is approaching a design as one would if they
were designing for SQL. Forget everything you know about SQL when dealing
with the DataStore. It will save you a lot of trouble in both the short and
long run.

Jeff

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



[google-appengine] Re: Request hangs when deleting lots of objects

2010-12-03 Thread Tomas Alaeus
Typo... The cron job runs every 30 minutes. It timeouts no matter if
it is the cron job that timeouts (10 minutes) or from the user (30
seconds). The strange thing is that both timeouts utilize the same
amount of CPU. That brings the question, does the cron job stay idle
for the rest of the 9 and a half minutes? :)

On 3 Dec, 13:14, Tomas Alaeus  wrote:
> I want to purge old entities from the datastore. How I do this at the
> moment is having a cron job run a script every 30 seconds. The script
> removes entries using deletePersistentAll() via a JDO query object.
>
> Query query = pm.newQuery(Game.class, "lastUpdateTime < ageLimit");
> query.declareParameters("long ageLimit");
> long numRemovedGames = query.deletePersistentAll(ageLimit);
>
> The datastore contains about 2000 or so objects that should be
> removed. However, when I run this the request is killed with a
> DeadlineExceededException and no objects are removed. The same issue
> will happen again, again and again every time the cron job runs since
> no objects are removed.
>
> If I try to use setRange() to limit the number of objects being
> removed, it will throw another exception saying I'm not allowed to do
> that.
>
> Is the only solution to actually get the objects, and then remove them
> one by one?

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

2010-12-03 Thread Tomas Alaeus
I hoped that Warmup Requests could be used to remedy the situation (at
least from a users perspective). Unfortunally, it does not help
anything.

Warmup requests seems to be inactive (or not react) when there are
less than 10 instances active for my live app. The warm up requests
starts to work when 10 instances are started.

It seems to me that my app-id have been marked permanently as a
"heavy" application, which isn't true yet.

On 26 Nov, 09:32, Tomas Alaeus  wrote:
> This problem doesn't seem to happen on the staging server (doesn't
> have billing enabled), but I maybe haven't stressed it enough. Another
> application I have for testing purposes seem to be affected by it too,
> and it doesn't have billing enabled either. That application seems to
> want at least 4 instances before serving hot instances to incoming
> requests.
>
> This is actually quite bad for everyone. If the load is low the user
> experience will be worse, we have to pay more and Googles servers will
> have to boot up/down instances for no reason. Can any Googler confirm
> this behavior?
>
> On 24 Nov, 22:18, nickmilon  wrote:
>
>
>
> > While waiting from a Googler to give us some light on this may be you
> > do your stress tests in the staging server ? (just an other version
> > will do as staging server)
> > Also I remember people from App Engine team stating here that the best
> > performance comes when load comes in a natural matter.
>
> > Still IMHO that there must be some more transparency into those
> > parameters within which our appls have to operate. - It helps both us
> > and the platform.
>
> > Regards
> > Nick
>
> > On Nov 24, 9:21 am, Tomas Alaeus  wrote:
>
> > > Probably. With some more thinking I got to this conclusion:
>
> > > At first, an application can utilize up to 30 instances. After having
> > > used all those instances for a few minutes, and it still isn't enough,
> > > GAE will increase the maximum number of available instances to 40, and
> > > then to 50 etc. Every time it increases the number of instances it
> > > will probably also adjust how and when it boots up new instances.
>
> > > For my production app it probably tries to keep at least 10 instances
> > > running since it thinks a huge amount of users can use the site at any
> > > given time. The staging haven't had any rush of users, and therefore
> > > thinks it is safe with just 1 instance running.
>
> > > I would still like to hear something from a Googler. If this is how it
> > > works then it means that stress testing the application (with a lot
> > > more pressure than it will normally get) may lead to worse (!)
> > > performance permanently.
>
> > > On 24 Nov, 00:01, nickmilon  wrote:
>
> > > > Not been a Googler can't help much with this.
> > > > Having said that, I suspect there is a kind of build in algorithm that
> > > > does some kind of application profiling taking into acount QPS,
> > > > response times, and other parameters which adjusts instance life time,
> > > > number of instances to start etc..
> > > > This could possibly explain the difference in behaviour between your
> > > > staging and production appls.
>
> > > > happy coding;-)
>
> > > > On Nov 23, 11:58 am, Tomas Alaeus  wrote:
>
> > > > > I'm curious when exactly instances are started. I have two
> > > > > applications running on GAE, one of them have billing enabled. The one
> > > > > with billing enabled have been stress tested and have at most started
> > > > > 100 simultaneous instances. The other is just for testing and staging
> > > > > purposes and have never handeled much traffic.
>
> > > > > What I experience is that the staging server never starts more
> > > > > instances than needed. If a single person views pages it will never
> > > > > load more than a single instance. The other one however seems to start
> > > > > about 5 instances before anyone can get hot responses, and it will
> > > > > continue to start up to about 10 before realizing that ~1 QPS isn't
> > > > > that much traffic (the requests finish in about 100ms each).
>
> > > > > So, why does GAE boot up lots of instances even though 1 instance can
> > > > > serve the incoming traffic without a problem (the requests doesn't
> > > > > even overlap, so no waiting is needed)?
>
> > > > > I realize that this isn't a very big issue, since when it gets lots of
> > > > > traffic it will indeed need all the instances. I'm just curious why it
> > > > > happens.

-- 
You 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] Channel API as broadcast messenger

2010-12-03 Thread Rafael Sierra
All the users share the same timer (like in the movies when everyone
stare at the television with the countdown in it)

I need to send that timer so the users know how much time is left. In
my current test I'm going into another aproach, when the timer starts,
I send a message to every user telling how much time is left and when
the timer was started (so I know how much time has passed since the
begin) and when the user access some page it sends the current time at
server (I can't trust in the user's clock), and the real times is done
at the client (with setInterval for example). I know that there are
problems like the user changing variables with firebug, but that will
corrupt data only for him, and this is not a big deal.

On Fri, Dec 3, 2010 at 4:59 AM, Robert Kluin  wrote:
> Hi Rafael,
>  Do all users care about the same timer, or does each user have their
> own, or is there one timer for a group, or something else?  Do you
> need to push the remaining time at particular time for some reason?
>
>
>
> Robert
>
>
>
>
>
>
> On Thu, Dec 2, 2010 at 20:35, Rafael Sierra  wrote:
>> I know that I cannot share Client IDs between multiple users, but I
>> still need something like a broadcast message system.
>>
>> Today, users make requests in regular intervals to get the update of
>> the information, let's say a timer counting down like a bomb, each
>> client asks the server how much time left to the bomb explodes and the
>> server answer the time, and it is made every second until the bomb
>> explods (oh god, this thread will be tracked by USA).
>>
>> When I first saw Channel API I thought that in the future I could just
>> do a simple send_message("120") (which means 2 minutes) and every
>> client would get the information, but now with the release 1.4 I know
>> that I can't do it. Instead I was wondering how I could use Channel
>> API to reduce my request count.
>>
>> The first solution that came to me is to made an eternal loop (that
>> would eventualy die in 10 minutes) in which I would loop across all
>> the users (yet to know who is online) and send them the time.
>> Actually, this is the only solution I got in mind, does someone have a
>> better idea?
>>
>> --
>> Rafael Sierra
>> http://blog.rafaelsdm.com
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Google App Engine" group.
>> To post to this group, send email to google-appeng...@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>>
>
> --
> You 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.
>
>



-- 
Rafael Sierra
http://blog.rafaelsdm.com

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



[google-appengine] Re: App engine is down for me

2010-12-03 Thread Raymond C.
very unstable for me too.

yet, the status page is all green without absolute zero error rate.

On Dec 3, 7:26 pm, Kenneth  wrote:
> Everything include app and console timing out.
>
> Bloody hell google.

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



[google-appengine] Request hangs when deleting lots of objects

2010-12-03 Thread Tomas Alaeus
I want to purge old entities from the datastore. How I do this at the
moment is having a cron job run a script every 30 seconds. The script
removes entries using deletePersistentAll() via a JDO query object.

Query query = pm.newQuery(Game.class, "lastUpdateTime < ageLimit");
query.declareParameters("long ageLimit");
long numRemovedGames = query.deletePersistentAll(ageLimit);

The datastore contains about 2000 or so objects that should be
removed. However, when I run this the request is killed with a
DeadlineExceededException and no objects are removed. The same issue
will happen again, again and again every time the cron job runs since
no objects are removed.

If I try to use setRange() to limit the number of objects being
removed, it will throw another exception saying I'm not allowed to do
that.

Is the only solution to actually get the objects, and then remove them
one by one?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-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] This is why people defect from App Engine

2010-12-03 Thread Kenneth
http://imgur.com/KOutr.png

People couldn't sign in to our site from 3:09AM to 3:26AM due to
random deadline errors.  Nothing in the status pages to indicate
anything was down.

So frustrating.

-- 
You 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 down ?

2010-12-03 Thread Francois Masurel
Seems to be ok now.

On Dec 3, 12:26 pm, Francois Masurel  wrote:
> Extremely slow response times...  Error 500 when trying to access the
> admin console.

-- 
You 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] Channel API outside browsers

2010-12-03 Thread Tim Meadowcroft
On Wednesday, November 3, 2010 4:20:19 AM UTC, Robert Kluin wrote:Have
you look at the communications at all? I the javascript file is
included in the SDK. It is a little "heavy," but you could probably
use firebug (or chrome/safari dev console) to figure out what is going
on.
http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/tools/dev-channel-js.js






The SDK code uses a DevChannel implementation


goog.exportSymbol("goog.appengine.Channel", goog.appengine.DevChannel);


which is NOT doing COMET or similar, it simply polls a special page
(/dev) once a second or so.


But running against the real production AppEngine, /_ah/channel/jsapi
returns a 302 redirect to


http://talkgadget.google.com/talkgadget/channel.js


That code is minified and so not so easy to examine, but I expect the
Channel object implemented there does proper COMET style long queries -
you could watch what happens from the browser and see what's sent back
and forth, but looking at the (current) SDK may help you understand the
API calls but won't show you anything about how it's implemented in
production.


--
Tim

-- 
You 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] Channel API outside browsers

2010-12-03 Thread Tim Meadowcroft
On Wednesday, November 3, 2010 4:20:19 AM UTC, Robert Kluin wrote:Have
you look at the communications at all? I the javascript file is
included in the SDK. It is a little "heavy," but you could probably
use firebug (or chrome/safari dev console) to figure out what is going
on.
http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/tools/dev-channel-js.js






The SDK code uses a DevChannel implementation


goog.exportSymbol("goog.appengine.Channel", goog.appengine.DevChannel);


which is NOT doing COMET or similar, it simply polls a special page
(/dev) once a second or so.


But running against the real production AppEngine, /_ah/channel/jsapi
returns a 302 redirect to


http://talkgadget.google.com/talkgadget/channel.js


That code is minified and so not so easy to examine, but I expect the
Channel object implemented there does proper COMET style long queries -
you could watch what happens from the browser and see what's sent back
and forth, but looking at the (current) SDK may help you understand the
API calls but won't show you anything about how it's implemented in
production.


--
Tim

-- 
You 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 down ?

2010-12-03 Thread Francois Masurel
Extremely slow response times...  Error 500 when trying to access the
admin console.

-- 
You 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 is down for me

2010-12-03 Thread Kenneth
Everything include app and console timing out.

Bloody hell google.

-- 
You 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: Version 1.4.0 is out!

2010-12-03 Thread Sahid Orentino Ferdjaoui
Hello everybody,

I have two bugs;
  The link "Learn more" is broken and i can't update the billing settings.

Please see the screen: http://i.imgur.com/zdhPO.png

Thank.

--
  .
 ..:



On Fri, Dec 3, 2010 at 11:57 AM, Droid  wrote:
> The 'Always on' is too expensive for me to justify at the moment. So -
> will a 'warm up request' from one App keep low latency for requests
> from another App. (same App but on different PCs/phones if you see
> what I mean) I am thinking of polling from my own App in the hope that
> others hitting the same App Engine App will be already warmed up...
>
> On Dec 2, 8:14 pm, "Ikai Lan (Google)" 
> wrote:
>> Hey everyone,
>>
>> Version 1.4.0 is officially released! Documentation will go live shortly. In
>> the meantime, check out our blog post:
>>
>> http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-e...
>>
>> Release notes are below:
>>
>> Python
>> 
>> - The Always On feature allows applications to pay and keep 3 instances of
>> their
>>   application always running, which can significantly reduce application
>>   latency.
>> - Developers can now enable Warmup Requests. By specifying  a handler in an
>>   app's app.yaml, App Engine will attempt to send a Warmup Request to
>> initialize
>>   new instances before a user interacts with it. This can reduce the latency
>> an
>>   end-user sees for initializing your application.
>> - The Channel API is now available for all users.
>> - Task Queue has been officially released, and is no longer an experimental
>>   feature. The API import paths that use 'labs' have been deprecated. Task
>> queue
>>   storage will count towards an application's overall storage quota, and
>> will
>>   thus be charged for.
>> - The deadline for Task Queue and Cron requests has been raised to 10
>> minutes.
>>   Datastore and API deadlines within those requests remain unchanged.
>> - For the Task Queue, developers can specify task retry_parameters in their
>>   queue.yaml.
>> - Apps that have enabled billing are allowed up to 100 queues with the Task
>>   Queue API.
>> - Metadata Queries on the datastore for datastore kinds, namespaces, and
>> entity
>>   properties are available.
>> - URLFetch allowed response size has been increased, up to 32 MB. Request
>> size
>>   is still limited to 1 MB.
>> - The request and response sizes for the Images API have been increased to
>>   32 MB.
>> - The total size of Memcache batch operations is increased to 32 MB. The 1
>> MB
>>   limit on individual Memcache objects still applies.
>> - The attachment size for outgoing emails has been increased from 1 MB to 10
>> MB.
>>   The size limit for incoming emails is still 10 MB.
>> - Size and quantity limits on datastore batch get/put/delete operations have
>>   been removed. Individual entities are still limited to 1 MB, but your app
>> may
>>   batch as many entities together for get/put/delete calls as the overall
>>   datastore deadline will allow for.
>> - When iterating over query results, the datastore will now asynchronously
>>   prefetch results, reducing latency in many cases by 10-15%.
>> - The Admin Console Blacklist page lists the top blacklist rejected
>> visitors.
>> - The automatic image thumbnailing service supports arbitrary crop sizes up
>> to
>>   1600px.
>> - Overall average instance latency in the Admin Console is now a weighted
>>   average over QPS per instance.
>> - The developer who uploaded an app version can download that version's code
>>   using the appcfg.py download_app command. This feature can be disabled on
>>   a per application basis in the admin console, under the 'Permissions' tab.
>>   Once disabled, code download for the application CANNOT be re-enabled.
>> - Fixed an issue where custom Admin Console pages did not work for Google
>>   Apps for your Domain users.
>> - In the Python runtime, an instance is killed and restarted when a request
>>   handler hits DeadlineExceededError. This should fix an issue related to
>>   intermittent SystemErrors using Django.
>>    http://code.google.com/p/googleappengine/issues/detail?id=772
>> - Allow Django initialization to be moved to appengine_config.py to avoid
>>   Django version conflicts when mixing webapp.template with pure Django.
>>    http://code.google.com/p/googleappengine/issues/detail?id=1758
>> - Fixed an issue with OpenId over SSL.
>>  http://code.google.com/p/googleappengine/issues/detail?id=3393
>> - Fixed an issue on the dev_appserver where login/logout code didn't work
>> using
>>   Python 2.6.
>>    http://code.google.com/p/googleappengine/issues/detail?id=3566
>> - Fixed an issue in the dev_appserver where get_serving_url did not work
>>   for transparent, cropped PNGs:
>>    http://code.google.com/p/googleappengine/issues/detail?id=3887
>> - Fixed an issue with the DatastoreFileStub.
>>    http://code.google.com/p/googleappengine/issues/detail?id=3895
>>
>> Java
>> -
>> - The Always On feature allows applications to pay and keep 3 ins

Re: [google-appengine] AppEngine entity modeling - minimizing entity groups + achieving atomic cascading

2010-12-03 Thread Yasuo Higa
Hi Hari,

> I understood that
> a. To achieve atomicity of update/delete of several entities we need
> to do it in a transaction and hence all should fall under same entity
> group
> b. Having big entity groups is not scalable as it causes contention.
> (Q1: Correct?)

Correct, but slim3, which is a java framework, supports global
transactions between multiple entity groups.
http://sites.google.com/site/slim3appengine/#gtx

You may worry about the overhead of global transactions. Don't worry.
It is not very expensive.
The demonstration is as follows:
http://slim3demo.appspot.com/gtx/

Yasuo Higa

On Fri, Dec 3, 2010 at 7:53 PM, har_shan  wrote:
> Hello,
> Am learning AppEngine and have started developing new app and want to
> clarify something.
>
> I understood that
> a. To achieve atomicity of update/delete of several entities we need
> to do it in a transaction and hence all should fall under same entity
> group
> b. Having big entity groups is not scalable as it causes contention.
> (Q1: Correct?)
>
> So here is an entity model of an online examination system for sake of
> discussion:
>
> Entities:
> Subject
> Exam
> Page
> Question
> Answer
>
> As you can see from top, each entity 1 - many relationship with the
> immediate bottom one i.e 1 Subject can have many exams, 1 exam -> many
> pages, 1 page can have many questions...
>
> As you can see, i would like to establish cascading update/delete
> relationship among these entities (JPA datanucleus appengine
> implemention supports this (under the hood) by putting all entities
> under same entity group (Q2: Correct?) though AppEngine natively
> doesn't support this constraint) so naturally all would go under same
> entity group so that
> a. i can delete a Page (if my user does) in a transaction and be sure
> that all pages, questions, answers are all deleted
> b. or i can delete a subject altogether in a transaction all clear all
> stuff underneath it
>
> So when i extend this to my real app, i see that all of my (or atleast
> most) entities are interrelated and fit into same entity group to be
> able to transact them altogether - making my model inefficient.
>
> Q3: Please advice on how to rethink this design (and the best
> practice) and still achieve what i need. Ask me more if needed.
> Would be great if you could point me to relevant examples.
>
> p.s. 1 solution i could think of is having each entity in a separate
> entity group and a separate persistent field in each entity (say Exam)
> named 'IS_DELETED' defaulting to FALSE (value 0). Once a user deletes
> an Exam, i will set the field to 1 (TRUE) and that i don't load them
> anymore. I shall write a Cron job which clears all related entities in
> separate separate transaction in the backend which will retry upon
> failures if needed. But am sure this is not elegant and not sure
> whether this will work out..
>
> Thanks all for your responses,
> Hari
>
> --
> You 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: Version 1.4.0 is out!

2010-12-03 Thread Droid
The 'Always on' is too expensive for me to justify at the moment. So -
will a 'warm up request' from one App keep low latency for requests
from another App. (same App but on different PCs/phones if you see
what I mean) I am thinking of polling from my own App in the hope that
others hitting the same App Engine App will be already warmed up...

On Dec 2, 8:14 pm, "Ikai Lan (Google)" 
wrote:
> Hey everyone,
>
> Version 1.4.0 is officially released! Documentation will go live shortly. In
> the meantime, check out our blog post:
>
> http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-e...
>
> Release notes are below:
>
> Python
> 
> - The Always On feature allows applications to pay and keep 3 instances of
> their
>   application always running, which can significantly reduce application
>   latency.
> - Developers can now enable Warmup Requests. By specifying  a handler in an
>   app's app.yaml, App Engine will attempt to send a Warmup Request to
> initialize
>   new instances before a user interacts with it. This can reduce the latency
> an
>   end-user sees for initializing your application.
> - The Channel API is now available for all users.
> - Task Queue has been officially released, and is no longer an experimental
>   feature. The API import paths that use 'labs' have been deprecated. Task
> queue
>   storage will count towards an application's overall storage quota, and
> will
>   thus be charged for.
> - The deadline for Task Queue and Cron requests has been raised to 10
> minutes.
>   Datastore and API deadlines within those requests remain unchanged.
> - For the Task Queue, developers can specify task retry_parameters in their
>   queue.yaml.
> - Apps that have enabled billing are allowed up to 100 queues with the Task
>   Queue API.
> - Metadata Queries on the datastore for datastore kinds, namespaces, and
> entity
>   properties are available.
> - URLFetch allowed response size has been increased, up to 32 MB. Request
> size
>   is still limited to 1 MB.
> - The request and response sizes for the Images API have been increased to
>   32 MB.
> - The total size of Memcache batch operations is increased to 32 MB. The 1
> MB
>   limit on individual Memcache objects still applies.
> - The attachment size for outgoing emails has been increased from 1 MB to 10
> MB.
>   The size limit for incoming emails is still 10 MB.
> - Size and quantity limits on datastore batch get/put/delete operations have
>   been removed. Individual entities are still limited to 1 MB, but your app
> may
>   batch as many entities together for get/put/delete calls as the overall
>   datastore deadline will allow for.
> - When iterating over query results, the datastore will now asynchronously
>   prefetch results, reducing latency in many cases by 10-15%.
> - The Admin Console Blacklist page lists the top blacklist rejected
> visitors.
> - The automatic image thumbnailing service supports arbitrary crop sizes up
> to
>   1600px.
> - Overall average instance latency in the Admin Console is now a weighted
>   average over QPS per instance.
> - The developer who uploaded an app version can download that version's code
>   using the appcfg.py download_app command. This feature can be disabled on
>   a per application basis in the admin console, under the 'Permissions' tab.
>   Once disabled, code download for the application CANNOT be re-enabled.
> - Fixed an issue where custom Admin Console pages did not work for Google
>   Apps for your Domain users.
> - In the Python runtime, an instance is killed and restarted when a request
>   handler hits DeadlineExceededError. This should fix an issue related to
>   intermittent SystemErrors using Django.
>    http://code.google.com/p/googleappengine/issues/detail?id=772
> - Allow Django initialization to be moved to appengine_config.py to avoid
>   Django version conflicts when mixing webapp.template with pure Django.
>    http://code.google.com/p/googleappengine/issues/detail?id=1758
> - Fixed an issue with OpenId over SSL.
>  http://code.google.com/p/googleappengine/issues/detail?id=3393
> - Fixed an issue on the dev_appserver where login/logout code didn't work
> using
>   Python 2.6.
>    http://code.google.com/p/googleappengine/issues/detail?id=3566
> - Fixed an issue in the dev_appserver where get_serving_url did not work
>   for transparent, cropped PNGs:
>    http://code.google.com/p/googleappengine/issues/detail?id=3887
> - Fixed an issue with the DatastoreFileStub.
>    http://code.google.com/p/googleappengine/issues/detail?id=3895
>
> Java
> -
> - The Always On feature allows applications to pay and keep 3 instances of
> their
>   application always running, which can significantly reduce application
>   latency.
> - Developers can now enable Warmup Requests. By specifying  a handler in an
>   app's appengine-web.xml, App Engine will attempt to send a Warmup Request
> to
>   initialize new instances before a user interacts with it. This can re

[google-appengine] AppEngine entity modeling - minimizing entity groups + achieving atomic cascading

2010-12-03 Thread har_shan
Hello,
Am learning AppEngine and have started developing new app and want to
clarify something.

I understood that
a. To achieve atomicity of update/delete of several entities we need
to do it in a transaction and hence all should fall under same entity
group
b. Having big entity groups is not scalable as it causes contention.
(Q1: Correct?)

So here is an entity model of an online examination system for sake of
discussion:

Entities:
Subject
Exam
Page
Question
Answer

As you can see from top, each entity 1 - many relationship with the
immediate bottom one i.e 1 Subject can have many exams, 1 exam -> many
pages, 1 page can have many questions...

As you can see, i would like to establish cascading update/delete
relationship among these entities (JPA datanucleus appengine
implemention supports this (under the hood) by putting all entities
under same entity group (Q2: Correct?) though AppEngine natively
doesn't support this constraint) so naturally all would go under same
entity group so that
a. i can delete a Page (if my user does) in a transaction and be sure
that all pages, questions, answers are all deleted
b. or i can delete a subject altogether in a transaction all clear all
stuff underneath it

So when i extend this to my real app, i see that all of my (or atleast
most) entities are interrelated and fit into same entity group to be
able to transact them altogether - making my model inefficient.

Q3: Please advice on how to rethink this design (and the best
practice) and still achieve what i need. Ask me more if needed.
Would be great if you could point me to relevant examples.

p.s. 1 solution i could think of is having each entity in a separate
entity group and a separate persistent field in each entity (say Exam)
named 'IS_DELETED' defaulting to FALSE (value 0). Once a user deletes
an Exam, i will set the field to 1 (TRUE) and that i don't load them
anymore. I shall write a Cron job which clears all related entities in
separate separate transaction in the backend which will retry upon
failures if needed. But am sure this is not elegant and not sure
whether this will work out..

Thanks all for your responses,
Hari

-- 
You 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] Does one 'Warm Up Requests' warm up for all different clients?

2010-12-03 Thread Droid
The 'Always on' is too expensive for me to justify. So I ask will a
'warm up request' from one App keep low latency for requests from
another App.  (same App but on different PCs/phones if you see what I
mean)

Thanks if anyone can answer this

-- 
You 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: Querying data that has unowned relationships

2010-12-03 Thread fb
to give some background the app is to store student names in a school.
So you could have more than 1 students (typically siblings) living at
the same address. So if they move by having the address in its own
class, if they move you only need to change the address once and it
will all remain in sync too.

I guess I could have the Name class as an owned relationship in an
address, and have a set of them stored (i.e. more than 1). But that
breaks the potential situation where 2 students who previously lived
at the same address no longer do as you cannot break the Name object
out of its entity group. This is why I have unowned relationships.

I guess I could follow your suggestion and have my application make
sure addresses are synchronized, but its duplication of data which is
usually considered poor design.

Any other thoughts?

On Dec 3, 1:32 am, Jeff Schwartz  wrote:
> It looks like a 1 to 1 relationship so why not denormalize the name class to
> include the fields of your address class?
>
> Jeff
>
>
>
> On Thu, Dec 2, 2010 at 7:19 PM, fb  wrote:
> > Hi,
>
> > I have a question regarding querying when using unowned relationships.
> > I'm having real problems working this out due to no real JOIN syntax.
>
> > Anyway, my problem is simple to explain. I have a Name class whose
> > objects I am persisting:
>
> > @PersistenceCapable(identityType = IdentityType.APPLICATION)
> > public class Name implements Serializable, IName {
> >   �...@primarykey
> >   �...@persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >    private Key key;
>
> >   �...@persistent
> >    private String firstName;
>
> >   �...@persistent
> >    private String lastName;
>
> >   �...@persistent
> >    private Date dob;
>
> > //. more properties
>
> >   �...@persistent
> >    private Key address;
>
> > //... implememation - getters, setters, etc.
> > }
>
> > Now as can be seen I am storing address as unowned relationship as a
> > key. This is important as a name can change address, and an address
> > may be shared by many names, hence my decision to make it unknown.
>
> > The address class is simple, here is a snippet below:
>
> > @SuppressWarnings("serial")
> > @PersistenceCapable(identityType = IdentityType.APPLICATION)
> > public class Address implements Serializable, IAddress {
> >   �...@primarykey
> >   �...@persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >    private Key key;
>
> >   �...@persistent
> >    private String houseAndStreet;
>
> >   �...@persistent
> >    private String town;
>
> >   �...@persistent
> >    private String state;
>
> > // etc.
> > }
>
> > Now, in my UI I want to show a table with all the names and their
> > addresses in a single view (i.e. with columns firstName, lastName,
> > dob, houseAndStreet, Town, etc.)
>
> > What is the easist way to do this? Sure I can get the names in 1 query
> > but then I don't have the addresses - only the key. Should I query
> > each one? Or should I get the entire address table and then sort it
> > out myself in memory?
>
> > Please advise on the best approach and one that will perform best.
> > Maybe I've missed something obvious!
>
> > Thanks,
> > fb
>
> > --
> > You 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.
>
> --
> *Jeff Schwartz*

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

2010-12-03 Thread dilbert
I submitted an issue regarding the Java client library here:
http://code.google.com/p/googleappengine/issues/detail?id=4189

so if anyone is interested please star it.

On Nov 6, 3:50 pm, Michael  wrote:
> I'd like to have a port of Channel API for ActionScript.
> If it uses XMPP under the hood, then it should be pretty
> simple to emulate as there are ready to use XMPP
> libraries. Maybe Google should release the underlying
> protocol specification?
>
> Currently i'm using polling from my flash app, and it
> eats around 30% of my CPU quota.
>
> On Nov 2, 2:41 pm, Tomas Alaeus  wrote:
>
> > I for one thought directly of games when I heard that the Channel API
> > were coming to AppEngine. However, all discussions and articles only
> > mentions a Javascript client running in a web browser. Will it come
> > ports to other languages as well? Maybe the actual communication is so
> > simple that it is trivial to do oneself (considering that the API is
> > somewhat similar to websockets if I understood it correctly)?
>
> > Thanks, Tomas
>
>

-- 
You 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] 403 error when trying to use download_app

2010-12-03 Thread lukem
I'm trying to use the download_app command to download an app (word-
finder) and am getting the following 403 error:

l...@d:~/projects/wordfinder$ python2.5 ../../google_appengine/appcfg.py
download_app -A word-finder .
Server: appengine.google.com.
Fetching file list...
Error 403: --- begin server output ---
You do not have permission to download this app version.
--- end server output ---

I am using the same account that I uploaded the app from.
Interestingly, when I look in the Versions section of the dashboard,
it shows the Deployed By field as empty. This app was deployed 637
days ago -- is it possible that the Deployed By information wasn't
kept that far back?

Version Default Deployed By Live URIDelete
 1 (deployed 637 days, 3:01:30 ago) Yes 
http://1.latest.word-finder.appspot.com
Delete

Any ideas?
Best,
Luke

-- 
You 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: Random DeadlineExceededExceptions, "Request was aborted..." and throttle_code=2

2010-12-03 Thread finalman
Like Raymond, we have seen these errors since a month or two as well,
and they are indeed still happening.

We don't have any entity kind with many composite indexes like Jason,
and we have also removed most of our simple indexes in an effort to
optimize our datastore usage.

On Dec 3, 4:44 am, "Raymond C."  wrote:
> I have having the same issue for 2 months now and its still happening
> as of writing.

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