[google-appengine] Re: How to get ReferenceProperty's key without causing a 'get'

2008-10-02 Thread yejun

Then you can use parent_key() method to access key directly.

On Oct 2, 7:40 pm, yejun <[EMAIL PROTECTED]> wrote:
> I think you shouldn't define a post field in comment at all. Simply
> make post as parent of comment when storing data.
>
> On Oct 2, 6:40 pm, Rafe <[EMAIL PROTECTED]> wrote:
>
> >   Folks,
>
> >   There have been a number of people asking on the forums what the
> > correct way to get the key of a ReferenceProperty without causing a
> > whole 'get' to the datastore.  This can be especially inefficient if
> > you need to iterate over 100 or so values from a query, when all you
> > need is, say, the string version of all of those objects keys.
>
> >   Let's look at an example:
>
> >     class Post(db.Model):
> >       title = db.StringProperty()
> >       text = db.StringProperty(multiline=True)
>
> >     class Comment(db.Model):
> >       text = db.StringProperty()
> >       post = db.ReferenceProperty(Post, collection_name='comments')
>
> >   Let's say you wanted to generate a list of URLs from all the
> > comments in your system with links to the actual posts.  This would be
> > an inefficient way to do this:
>
> >   def generate_delete_urls(post):
> >     urls = []
> >     for comment in post:
> >       key = comment.post.key()
> >       urls.append('http://myapp.appspot.com/post/%s'%key)
>
> >   The problem is that each time you de-reference the 'post' property,
> > it will cause a call to 'get' from the Datastore for information you
> > don't need.
>
> >   Here is the correct way to get keys for all the posts:
>
> >   def generate_delete_urls(post):
> >     urls = []
> >     for comment in post:
> >       key = Comment.post.get_value_for_datastore(comment)
> >       urls.append('http://myapp.appspot.com/post/%s'%key)
>
> >   Right now, some folks may be using the protected variables that get
> > stored on the Model instance.  This is not a good way to access
> > objects as it could well change in the future.  If this happens, your
> > application can break!
>
> >   So, to make sure it's clear, let me break it down for you:
>
> >     reference_property = Comment.post  # Gets actual
> > db.ReferenceProperty object
> >     key = reference_property.get_value_for_datastore(instance)
>
> >   - Rafe Kaplan
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread ryan

ah, sorry for the miscommunication. i wasn't paying attention and
thought people were discussing a third-party C-based module. you're
right, the built-in modules in that list are definitely supported.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: No Cell Phone

2008-10-02 Thread David Symonds

On Fri, Oct 3, 2008 at 11:17 AM, AEL21 <[EMAIL PROTECTED]> wrote:

> How can I get  this to work without entering a phone number? I don't
> have a cell phone so I'm not sure how to get past this.

There is no other way at present. Find a friend or family member who
can receive the single verification message for you.


Dave.

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



[google-appengine] sdk

2008-10-02 Thread amshuhu

how to download latest sdk version
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] No Cell Phone

2008-10-02 Thread AEL21

How can I get  this to work without entering a phone number? I don't
have a cell phone so I'm not sure how to get past 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-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Retrieving More than 1000 entities

2008-10-02 Thread Venkatesh Rangarajan
Theo,

that will not work. It will aways get the same 1000..and the only thing
offset does is get 1 to 100 or 100 to 200.

Tony : Well, i have a simple search
http://payrate.appspot.com/infosys_salary

This search returns more than 1000 records..who do i show them all ? My page
explodes after page 10

Rgds,
Venkatesh

On Thu, Oct 2, 2008 at 8:04 PM, Tony Arkles <[EMAIL PROTECTED]> wrote:

>
> Theo, I don't think that will work.  From what I understand, the 1000
> entity limit is applied before the offset is considered.
>
>
>
> On Oct 2, 8:46 pm, theo <[EMAIL PROTECTED]> wrote:
> > It's easy.  Just keep on calling .fetch(1000, 1000 * n) where n gets
> > incremented every time
> >
> > On Oct 2, 6:42 pm, Tony Arkles <[EMAIL PROTECTED]> wrote:
> >
> > > The real goal is to figure out how *not* to do that.  :)
> >
> > > What are you trying to accomplish?
> >
> > > On Oct 2, 6:15 pm, "Venkatesh Rangarajan"
> >
> > > <[EMAIL PROTECTED]> wrote:
> > > > Is it possible to retrieve more than 1000 entities ?
> >
> > > > Has anyone figured a way to do 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-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Timeout - operation took too long

2008-10-02 Thread Sylvain

How can we help for this ?

Each day, I've several Timeout.
Do you still need more info about it (date,time, app_id,...) ?

Regards


On 30 sep, 18:57, johnP <[EMAIL PROTECTED]> wrote:
> For a while today, I started seeing errors in custom form validation.
> Requesting self.instance in ModelForm form resulted in ValueErrors.
> Now, it seems to have recovered a bit...
>
> On Sep 30, 9:43 am, Adam Loving <[EMAIL PROTECTED]> wrote:
>
> > I am seeing the datastoretimeouterror intermittently several times a
> > day (application = toyvirtualgifts) on a fairly simple put operation.
> > Could this be caused by the rest of the request taking too long (like
> > if thetimeoutfor the entire request fires during the put)? It
> > doesn't seem like that would be the case here, but that's the only
> > explanation I can think of.
>
> >   File "/base/python_lib/versions/1/google/appengine/ext/db/
> > __init__.py", line 618, in put
> > return datastore.Put(self._entity)
> >   File "/base/python_lib/versions/1/google/appengine/api/
> > datastore.py", line 162, in Put
> > raise _ToDatastoreError(err)
> >   File "/base/python_lib/versions/1/google/appengine/api/
> > datastore.py", line 1627, in _ToDatastoreError
> > raise errors[err.application_error](err.error_detail)
> >Timeout
>
> > Thanks,
> > Adam
>
> > On Sep 28, 3:19 am, Ronald <[EMAIL PROTECTED]> wrote:
>
> > > Hi,
> > > I don't know how much work has been done on this front, but my app is
> > > still cripple by this issue.
> > > Maybe the amount oftimeouterrors in the log has decrease a little,
> > > but so has the amount of happy users of my site =(
>
> > > /ronald
>
> > > On Sep 19, 9:45 pm, "Marzia Niccolai" <[EMAIL PROTECTED]> wrote:
>
> > > > Hi,
>
> > > > Our engineers are looking in to your reports.
>
> > > > If all of the people experiencing quota issues like this could email me
> > > > directly with your application id, as well as the approximate times 
> > > > these
> > > > errors were occurring, that would be helpful!
>
> > > > Thanks,
> > > > Marzia
>
> > > > On Fri, Sep 19, 2008 at 11:17 AM, Michael Bailey <[EMAIL 
> > > > PROTECTED]>wrote:
>
> > > > > I got the error below on a app that has almost zero traffic:
> > > > > see screenshot:
> > > > >http://imagebin.ca/img/3rlwzkBy.png
>
> > > > > Traceback (most recent call last):
> > > > >  File "/base/python_lib/versions/1/google/appengine/ext/webapp/
> > > > > __init__.py", line 496, in __call__
> > > > >handler.get(*groups)
> > > > >   File "/base/data/home/apps/***/1.4/search.py", line 25, in get
> > > > >for kw in kws:
> > > > >   File "/base/python_lib/versions/1/google/appengine/ext/db/
> > > > > __init__.py", line 1257, in __iter__
> > > > >return self.run()
> > > > >   File "/base/python_lib/versions/1/google/appengine/ext/db/
> > > > > __init__.py", line 1589, in run
> > > > >query_run = self._proto_query.Run(*self._args, **self._kwds)
> > > > >  File "/base/python_lib/versions/1/google/appengine/ext/gql/
> > > > > __init__.py", line 572, in Run
> > > > >it = bind_results.Run()
> > > > >  File "/base/python_lib/versions/1/google/appengine/ext/gql/
> > > > > __init__.py", line 1211, in Run
> > > > >results.append(bound_query.Run())
> > > > >   File "/base/python_lib/versions/1/google/appengine/api/
> > > > > datastore.py", line 860, in Run
> > > > >return self._Run()
> > > > >   File "/base/python_lib/versions/1/google/appengine/api/
> > > > > datastore.py", line 879, in _Run
> > > > >apiproxy_stub_map.MakeSyncCall('datastore_v3', 'RunQuery', pb,
> > > > > result)
> > > > >   File "/base/python_lib/versions/1/google/appengine/api/
> > > > > apiproxy_stub_map.py", line 46, in MakeSyncCall
> > > > >stub.MakeSyncCall(service, call, request, response)
> > > > >  File "/base/python_lib/versions/1/google/appengine/runtime/
> > > > > apiproxy.py", line 246, in MakeSyncCall
> > > > >rpc.CheckSuccess()
> > > > >  File "/base/python_lib/versions/1/google/appengine/runtime/
> > > > > apiproxy.py", line 189, in CheckSuccess
> > > > >raise self.exception
> > > > > OverQuotaError: The API call datastore_v3.RunQuery() required more
> > > > > quota than is available.
>
> > > > > On Sep 10, 1:16 pm, Ronald <[EMAIL PROTECTED]> wrote:
> > > > > > Hi,
> > > > > > I'm seeing a number ofTimeouterrors on my log file:
>
> > > > > > Traceback (most recent call last):
> > > > > >   File "/base/python_lib/versions/1/google/appengine/ext/webapp/
> > > > > > __init__.py", line 496, in __call__
> > > > > > handler.get(*groups)
> > > > > >   File "/base/data/home/apps/40tazo/2.29/index.py", line 46, in get
> > > > > > moves = g.move(card,pickups)
> > > > > >   File "/base/data/home/apps/40tazo/2.29/game.py", line 231, in move
> > > > > > self.save()
> > > > > >   File "/base/data/home/apps/40tazo/2.29/game.py", line 290, in save
> > > > > > self.g.put()
> > > > > >   File "/base/python_lib/versions/1/google/appengine/ext/db/
> > > > > > __init__.py", lin

[google-appengine] Re: Retrieving More than 1000 entities

2008-10-02 Thread Tony Arkles

Theo, I don't think that will work.  From what I understand, the 1000
entity limit is applied before the offset is considered.



On Oct 2, 8:46 pm, theo <[EMAIL PROTECTED]> wrote:
> It's easy.  Just keep on calling .fetch(1000, 1000 * n) where n gets
> incremented every time
>
> On Oct 2, 6:42 pm, Tony Arkles <[EMAIL PROTECTED]> wrote:
>
> > The real goal is to figure out how *not* to do that.  :)
>
> > What are you trying to accomplish?
>
> > On Oct 2, 6:15 pm, "Venkatesh Rangarajan"
>
> > <[EMAIL PROTECTED]> wrote:
> > > Is it possible to retrieve more than 1000 entities ?
>
> > > Has anyone figured a way to do 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-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Retrieving More than 1000 entities

2008-10-02 Thread theo

It's easy.  Just keep on calling .fetch(1000, 1000 * n) where n gets
incremented every time

On Oct 2, 6:42 pm, Tony Arkles <[EMAIL PROTECTED]> wrote:
> The real goal is to figure out how *not* to do that.  :)
>
> What are you trying to accomplish?
>
> On Oct 2, 6:15 pm, "Venkatesh Rangarajan"
>
> <[EMAIL PROTECTED]> wrote:
> > Is it possible to retrieve more than 1000 entities ?
>
> > Has anyone figured a way to do 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-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: How to get ReferenceProperty's key without causing a 'get'

2008-10-02 Thread yejun

I think you shouldn't define a post field in comment at all. Simply
make post as parent of comment when storing data.

On Oct 2, 6:40 pm, Rafe <[EMAIL PROTECTED]> wrote:
>   Folks,
>
>   There have been a number of people asking on the forums what the
> correct way to get the key of a ReferenceProperty without causing a
> whole 'get' to the datastore.  This can be especially inefficient if
> you need to iterate over 100 or so values from a query, when all you
> need is, say, the string version of all of those objects keys.
>
>   Let's look at an example:
>
>     class Post(db.Model):
>       title = db.StringProperty()
>       text = db.StringProperty(multiline=True)
>
>     class Comment(db.Model):
>       text = db.StringProperty()
>       post = db.ReferenceProperty(Post, collection_name='comments')
>
>   Let's say you wanted to generate a list of URLs from all the
> comments in your system with links to the actual posts.  This would be
> an inefficient way to do this:
>
>   def generate_delete_urls(post):
>     urls = []
>     for comment in post:
>       key = comment.post.key()
>       urls.append('http://myapp.appspot.com/post/%s'% key)
>
>   The problem is that each time you de-reference the 'post' property,
> it will cause a call to 'get' from the Datastore for information you
> don't need.
>
>   Here is the correct way to get keys for all the posts:
>
>   def generate_delete_urls(post):
>     urls = []
>     for comment in post:
>       key = Comment.post.get_value_for_datastore(comment)
>       urls.append('http://myapp.appspot.com/post/%s'% key)
>
>   Right now, some folks may be using the protected variables that get
> stored on the Model instance.  This is not a good way to access
> objects as it could well change in the future.  If this happens, your
> application can break!
>
>   So, to make sure it's clear, let me break it down for you:
>
>     reference_property = Comment.post  # Gets actual
> db.ReferenceProperty object
>     key = reference_property.get_value_for_datastore(instance)
>
>   - Rafe Kaplan
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Retrieving More than 1000 entities

2008-10-02 Thread Tony Arkles

The real goal is to figure out how *not* to do that.  :)

What are you trying to accomplish?



On Oct 2, 6:15 pm, "Venkatesh Rangarajan"
<[EMAIL PROTECTED]> wrote:
> Is it possible to retrieve more than 1000 entities ?
>
> Has anyone figured a way to do 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-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread yejun

I just tested this on GAE.

import hashlib
hashlib.sha224("Nobody inspects the spammish repetition").hexdigest()

They are working properly.

On Oct 2, 8:14 pm, ryan <[EMAIL PROTECTED]> wrote:
> unfortunately, app engine doesn't support native (ie C-based) python
> modules:
>
> http://code.google.com/appengine/docs/python/purepython.html
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Retrieving More than 1000 entities

2008-10-02 Thread Venkatesh Rangarajan
Is it possible to retrieve more than 1000 entities ?

Has anyone figured a way to do 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-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread ryan

unfortunately, app engine doesn't support native (ie C-based) python
modules:

http://code.google.com/appengine/docs/python/purepython.html
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Datastore Key IDs

2008-10-02 Thread ryan

theo is right: only entire keys (ie paths) are guaranteed to be
unique. more:

http://code.google.com/appengine/docs/datastore/keysandentitygroups.html#Entity_Groups_Ancestors_and_Paths

one corollary to this is that ids (and key names) are guaranteed to be
unique within all entities of a given kind with the same parent.
similarly, ids and key names will be unique within all root entities
of a given kind.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Resuming Bulk Upload

2008-10-02 Thread Venkatesh Rangarajan
All,

Thought this will be useful to others. I have modified bulk_upload client to
"resume" if it fails.

Couple of things

1. On each failure, the bulk upload will wait 1 min before resuming. I found
this useful, because my uploads failed because the app was getting
overloaded or my WIFI connection was choppy  or getting capacity errors.
2. Write the log to a file. So if you happen to close your shell, you can
pick up the data count from the log file.
3. SKIP parameter, to skip records before resuming.

More here :
http://blog.amanthan.com/2008/10/resuming-google-bulk-data-uploader-for.html

rgds,
Venkatesh

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



[google-appengine] How to get ReferenceProperty's key without causing a 'get'

2008-10-02 Thread Rafe

  Folks,

  There have been a number of people asking on the forums what the
correct way to get the key of a ReferenceProperty without causing a
whole 'get' to the datastore.  This can be especially inefficient if
you need to iterate over 100 or so values from a query, when all you
need is, say, the string version of all of those objects keys.

  Let's look at an example:

class Post(db.Model):
  title = db.StringProperty()
  text = db.StringProperty(multiline=True)

class Comment(db.Model):
  text = db.StringProperty()
  post = db.ReferenceProperty(Post, collection_name='comments')

  Let's say you wanted to generate a list of URLs from all the
comments in your system with links to the actual posts.  This would be
an inefficient way to do this:

  def generate_delete_urls(post):
urls = []
for comment in post:
  key = comment.post.key()
  urls.append('http://myapp.appspot.com/post/%s' % key)

  The problem is that each time you de-reference the 'post' property,
it will cause a call to 'get' from the Datastore for information you
don't need.

  Here is the correct way to get keys for all the posts:

  def generate_delete_urls(post):
urls = []
for comment in post:
  key = Comment.post.get_value_for_datastore(comment)
  urls.append('http://myapp.appspot.com/post/%s' % key)

  Right now, some folks may be using the protected variables that get
stored on the Model instance.  This is not a good way to access
objects as it could well change in the future.  If this happens, your
application can break!

  So, to make sure it's clear, let me break it down for you:

reference_property = Comment.post  # Gets actual
db.ReferenceProperty object
key = reference_property.get_value_for_datastore(instance)


  - Rafe Kaplan

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



[google-appengine] Re: ReferenceProperty - id access without fetching the entity

2008-10-02 Thread Rafe

  Correction on this post :(

  A.C.get_value_for_datastore(a)

  It is not necessary to call 'key()' because the object that gets
returns IS the key.

On Oct 2, 3:02 pm, Rafe <[EMAIL PROTECTED]> wrote:
>   Mazia is correct, there is no guarantee that this will work.  In
> fact, it is very likely it will not work in the future.  We may in the
> future implement lazy loading so that you can access the key directly
> without loading the entity (a.C.key()) however, for now, this is
> guaranteed to work:
>
>   A.C.get_value_for_datastore(a).key()
>
> On Sep 29, 6:23 pm, Andy Freeman <[EMAIL PROTECTED]> wrote:
>
> > Is there an approved way to copy aReferencePropertyfrom one entity
> > to another without fetching the referred to entity from the datastore?
>
> > In other words,
>
> > class C(db.Model):
> >     ...
>
> > class A(db.Model):
> >     C = db.ReferenceProperty(reference_class=C)
>
> > class B(db.Model):
> >     C = db.ReferenceProperty(reference_class=C)
>
> > a = {some query}
> > b = B()
> > # I would like to do the next assignment without retrieving the
> > relevant entity
> > # from the data store.
> > b.C = a.C
>
> > Yes, I know that a._C.id() can be used to read the id, but that
> > doesn't seem to be part of the documented interface.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread yejun

It's in feb this year. Amazon s3 use hmac-sha1 for request
authentication.

See the last post for details.
http://developer.amazonwebservices.com/connect/thread.jspa?threadID=19714&start=75&tstart=0


On Oct 2, 5:56 pm, Tony Arkles <[EMAIL PROTECTED]> wrote:
> Ahhh, leveraging the fact that the secure hashes are written in C
> would definitely improve things.
>
> Do you have a link to any info about the S3 hash problem?  A quick
> search didn't turn anything up.
>
> On Oct 2, 3:28 pm, yejun <[EMAIL PROTECTED]> wrote:
>
> > The problem is that a hand written python hash function not likely
> > outperform secure hash function implemented in c.
> > This kind attack actually happened once on amazon's s3 service, which
> > caused about 2 hours partial service interruption.
>
> > On Oct 2, 4:43 pm, Tony Arkles <[EMAIL PROTECTED]> wrote:
>
> > > I don't think a *secure* hash function is necessary here (nor do I
> > > think it desirable, due to speed).  By the pigeonhole principle, *all*
> > > hashes have collisions; it's just a matter of a) how likely it is to
> > > happen, and b) how much of an impact will it have.
>
> > > For doing a hashtable implementation (which is basically what we're
> > > talking about here), it seems to me that it's much more important to
> > > have a fast hash than it is to have a secure hash.  In theory an
> > > attacker could submit a huge pile of specially-constructed URLs that
> > > all had the same hash (such that the lookups would be linear instead
> > > of constant), but I'm much more concerned about minimizing my CPU
> > > burder on all requests :)
>
> > > On Oct 2, 1:09 pm, yejun <[EMAIL PROTECTED]> wrote:
>
> > > > On Oct 2, 2:31 pm, Bill <[EMAIL PROTECTED]> wrote:
>
> > > > > Seems like the SHA hashes are overkill.
>
> > > > Collisions have been found for both sha0 and md5.
> > > > I guess the minimal usable hash function is sha1 for now. In python
> > > > hashlib uses openssl which should be reasonable fast.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Python 2.6 Runtime Environment

2008-10-02 Thread djidjadji

Python 2.6 and 3.0 will be maintained in parallel for the next couple of years.
They will have the same language features except 3.0 will implement a
few of them
a bit different (e.q. exceptions[only classes] and print[now a function] ).
This is done so people have time to make the transition from 2.x to 3.x.
Python 2.6 CAN issue warnings for none 3.0 style to help you find the
spots needing attention.

2008/10/2 Ovnicraft <[EMAIL PROTECTED]>:
>
>
> 2008/10/2 Nathan <[EMAIL PROTECTED]>
>>
>> Now that Python 2.6 has reached final release, I am just wondering
>> what plans/schedule there is for rolling it on on Google App Engine.
>
> 2.6 and 3.0 was made almost in parallell maybe wait for 3.0? and testing
> changes with 2.6?
>>
>>
>>
>
>
>
> --
> [b]question = (to) ? be : !be; .[/b]
>
> >
>

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



[google-appengine] Re: Using ReferenceProperty is very(!) slow

2008-10-02 Thread Rafe

  Waldemar,

  It is not necessary to have a separate Property type for accessing a
model key without loading it from the datastore.  You can instead:

class MyModel(db.Model):
  my_reference = db.ReferenceProperty()



my_instance = MyModel.all().get()
MyModel.my_reference.get_value_for_datastore(my_instance)


On Sep 13, 4:36 am, Waldemar Kornewald <[EMAIL PROTECTED]> wrote:
> Hi Frank,
> I reordered your mail a little bit.
>
> On Sep 12, 9:26 pm, Frank <[EMAIL PROTECTED]> wrote:
>
> > And the most puzzling is that this is always the same 'oParent' 150
> > times, since I'm listing its children, so I would expect this
> >ReferencePropertyto be cached already.
>
> ReferencePropertyonly caches for a single model, but you have 150
> models, so every child will get() its parent.
>
> > of course I am not talking about accessing theReferenceProperty'sown
> > properties, I am only interested to see if it's None (and I tried with
> > both '==' and 'is'), and also getting its id
> > (self.oParent.key().id()), and doing one or the other gives the same
> > behavior.
>
> As soon as you access oParent it will result in a get().
> Unfortunately, you can't get the key of aReferencePropertywithout
> dereferencing it. Well, there is a hacky solution:
> if self._oParent is None:
>     ...
> Note that most properties store their real value in
> "_", but Google might change this any time, so I
> wouldn't use it in an important app.
>
> Instead, I'd suggest you either store the str(key) in a StringProperty
> and manually get() it or you use our KeyReferenceProperty from
> appenginepatch's snippet library. If your parent node model is
> ParentNode you could define this:
>
> parent_key = db.StringProperty()
> parent = KeyReferenceProperty('parent_key', ParentNode,
> use_key_name=False)
>
> The "parent_key" property will store the str(key) of the parent while
> the "parent" property allows to access the parent directly (like 
> withReferenceProperty). So, in order to test whether it's None you would
> write:
> if self.parent_key is None:
>     ...
> If you want to access the parent model instance you can just write
> self.parent. This separation between key and model instance also makes
> writing transactional code that has to pass around key_names a little
> bit easier.
>
> You can rip out the source 
> here:http://trac-hg.assembla.com/appenginepatch/browser/ragendja/dbutils.py
>
> Alternatively, if you use Django you can integrate it with
> appenginepatch and get the whole snippet 
> library:http://code.google.com/p/app-engine-patch/
> But then I'd suggest you fetch the most recent source from the
> repository because that contains a few additions like support for
> setting the key via the KeyReferenceProperty (self.parent =
> some_parent_object).
>
> Bye,
> Waldemar Kornewald
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: ReferenceProperty - id access without fetching the entity

2008-10-02 Thread Rafe

  Mazia is correct, there is no guarantee that this will work.  In
fact, it is very likely it will not work in the future.  We may in the
future implement lazy loading so that you can access the key directly
without loading the entity (a.C.key()) however, for now, this is
guaranteed to work:

  A.C.get_value_for_datastore(a).key()

On Sep 29, 6:23 pm, Andy Freeman <[EMAIL PROTECTED]> wrote:
> Is there an approved way to copy a ReferenceProperty from one entity
> to another without fetching the referred to entity from the datastore?
>
> In other words,
>
> class C(db.Model):
>     ...
>
> class A(db.Model):
>     C = db.ReferenceProperty(reference_class=C)
>
> class B(db.Model):
>     C = db.ReferenceProperty(reference_class=C)
>
> a = {some query}
> b = B()
> # I would like to do the next assignment without retrieving the
> relevant entity
> # from the data store.
> b.C = a.C
>
> Yes, I know that a._C.id() can be used to read the id, but that
> doesn't seem to be part of the documented interface.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread Tony Arkles

Ahhh, leveraging the fact that the secure hashes are written in C
would definitely improve things.

Do you have a link to any info about the S3 hash problem?  A quick
search didn't turn anything up.

On Oct 2, 3:28 pm, yejun <[EMAIL PROTECTED]> wrote:
> The problem is that a hand written python hash function not likely
> outperform secure hash function implemented in c.
> This kind attack actually happened once on amazon's s3 service, which
> caused about 2 hours partial service interruption.
>
> On Oct 2, 4:43 pm, Tony Arkles <[EMAIL PROTECTED]> wrote:
>
> > I don't think a *secure* hash function is necessary here (nor do I
> > think it desirable, due to speed).  By the pigeonhole principle, *all*
> > hashes have collisions; it's just a matter of a) how likely it is to
> > happen, and b) how much of an impact will it have.
>
> > For doing a hashtable implementation (which is basically what we're
> > talking about here), it seems to me that it's much more important to
> > have a fast hash than it is to have a secure hash.  In theory an
> > attacker could submit a huge pile of specially-constructed URLs that
> > all had the same hash (such that the lookups would be linear instead
> > of constant), but I'm much more concerned about minimizing my CPU
> > burder on all requests :)
>
> > On Oct 2, 1:09 pm, yejun <[EMAIL PROTECTED]> wrote:
>
> > > On Oct 2, 2:31 pm, Bill <[EMAIL PROTECTED]> wrote:
>
> > > > Seems like the SHA hashes are overkill.
>
> > > Collisions have been found for both sha0 and md5.
> > > I guess the minimal usable hash function is sha1 for now. In python
> > > hashlib uses openssl which should be reasonable fast.
>
>
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Timeout consumes a lot of mcycles ?

2008-10-02 Thread Sylvain

Hi,

I've just added a comment about Timeout in another topic (How to help
you for this issue ? If you need more info (date, time,...))

But while looking at my log, I've noticed that all my Timeout have a
very very high mcycles (more than 10k)

So, I wonder why a Timeout consumes mcycles ?
I find this very strange. For me a Timeout should consume near 0

And so I wonder if mcycles is directly linked to time (how long does
the request take) ?

Thank you for your answer.

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



[google-appengine] Re: High CPU warnings on simple PUT with implicit references.

2008-10-02 Thread uprise78

How about your model?  What 'shape' is it?  Do you have any string
properties that don't need to be indexed?

It does seem quite odd that a simple put like that is getting a
warning though.  It basically makes an app useless if that is a proper
recording.



On Oct 2, 2:27 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
wrote:
> I'm trying to build a system where a shopkeeper can list promotional
> items and mark their store on a map, so that anyone searching for
> those items can find a place nearby that has a deal on them.  The idea
> is that a shopkeeper has just one store/identity, but they may have
> multiple items, which I want searchable, so I'm using implicit
> references, as it seems like a good way to go.
>
> Here's my code for saving the sale.  Ignore all the long/lat stuff;
> that's a different conversation:
>
> class SaveSale(webapp.RequestHandler):
>   def get(self):
>
>     address = cgi.escape(self.request.get('address'))
>     lattitude,longitude =
> cgi.escape(self.request.get('point')).split(',')
>     wholeLat,decLat = lattitude.split('.')
>     mLat = wholeLat + decLat[0]
>     wholeLong,decLong = longitude.split('.')
>     mLon = wholeLong + decLong[0]
>
>     token = str(mLon)+','+str(mLat)
>
>     sale = SaleLocation(longitude = longitude,
>                         lattitude = lattitude,
>                         address = address,
>                         region = token).put()
>     SaleItem(salelocation = sale,
>              name = 'itemName').put() # hard-coded for now, just for
> testing purposes
>
>     self.response.headers['Content-Type'] = 'text/xml'
>     self.response.out.write('Sale Saved response>')
>
> If I take out that "SaleItem(...).put()" command, I get a very
> reasonable average CPU reading of something like 300-400.  With it in,
> this save action immediately gets a CPU warning with values ranging
> from 800 to well over 1000.
>
> Gets are a lot lighter, so I'm not worried about the overall volume,
> but I'm concerned that something that is ostensibly supported in the
> documentation can't be done without a CPU warning.  That warning says
> the code should be optimized, but there's just not that much there to
> optimize.
> I realize that I could put this value in an array within the
> SaleLocation object, or even in a comma delimited string in the
> SaleLocation object, but that defeats the fairly elegant purpose of
> the implicit link between these objects.
>
> Is there a way to do things this way and reduce the CPU impact, or am
> I screwed?  Alternately, is the CPU meter screwed, in which case,
> should I plunder forward, assuming it'll be fixed?
>
> Best,
>
> Ben
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] High CPU warnings on simple PUT with implicit references.

2008-10-02 Thread [EMAIL PROTECTED]

I'm trying to build a system where a shopkeeper can list promotional
items and mark their store on a map, so that anyone searching for
those items can find a place nearby that has a deal on them.  The idea
is that a shopkeeper has just one store/identity, but they may have
multiple items, which I want searchable, so I'm using implicit
references, as it seems like a good way to go.

Here's my code for saving the sale.  Ignore all the long/lat stuff;
that's a different conversation:

class SaveSale(webapp.RequestHandler):
  def get(self):

address = cgi.escape(self.request.get('address'))
lattitude,longitude =
cgi.escape(self.request.get('point')).split(',')
wholeLat,decLat = lattitude.split('.')
mLat = wholeLat + decLat[0]
wholeLong,decLong = longitude.split('.')
mLon = wholeLong + decLong[0]

token = str(mLon)+','+str(mLat)

sale = SaleLocation(longitude = longitude,
lattitude = lattitude,
address = address,
region = token).put()
SaleItem(salelocation = sale,
 name = 'itemName').put() # hard-coded for now, just for
testing purposes

self.response.headers['Content-Type'] = 'text/xml'
self.response.out.write('Sale Saved')

If I take out that "SaleItem(...).put()" command, I get a very
reasonable average CPU reading of something like 300-400.  With it in,
this save action immediately gets a CPU warning with values ranging
from 800 to well over 1000.

Gets are a lot lighter, so I'm not worried about the overall volume,
but I'm concerned that something that is ostensibly supported in the
documentation can't be done without a CPU warning.  That warning says
the code should be optimized, but there's just not that much there to
optimize.
I realize that I could put this value in an array within the
SaleLocation object, or even in a comma delimited string in the
SaleLocation object, but that defeats the fairly elegant purpose of
the implicit link between these objects.

Is there a way to do things this way and reduce the CPU impact, or am
I screwed?  Alternately, is the CPU meter screwed, in which case,
should I plunder forward, assuming it'll be fixed?

Best,

Ben


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



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread yejun

The problem is that a hand written python hash function not likely
outperform secure hash function implemented in c.
This kind attack actually happened once on amazon's s3 service, which
caused about 2 hours partial service interruption.

On Oct 2, 4:43 pm, Tony Arkles <[EMAIL PROTECTED]> wrote:
> I don't think a *secure* hash function is necessary here (nor do I
> think it desirable, due to speed).  By the pigeonhole principle, *all*
> hashes have collisions; it's just a matter of a) how likely it is to
> happen, and b) how much of an impact will it have.
>
> For doing a hashtable implementation (which is basically what we're
> talking about here), it seems to me that it's much more important to
> have a fast hash than it is to have a secure hash.  In theory an
> attacker could submit a huge pile of specially-constructed URLs that
> all had the same hash (such that the lookups would be linear instead
> of constant), but I'm much more concerned about minimizing my CPU
> burder on all requests :)
>
> On Oct 2, 1:09 pm, yejun <[EMAIL PROTECTED]> wrote:
>
> > On Oct 2, 2:31 pm, Bill <[EMAIL PROTECTED]> wrote:
>
> > > Seems like the SHA hashes are overkill.
>
> > Collisions have been found for both sha0 and md5.
> > I guess the minimal usable hash function is sha1 for now. In python
> > hashlib uses openssl which should be reasonable fast.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: from . import module

2008-10-02 Thread Marzia Niccolai
Also, make sure all of your directories contain an __init__.py file.

-Marzia

On Thu, Oct 2, 2008 at 6:09 AM, Tony Arkles <[EMAIL PROTECTED]> wrote:

>
> Can you please post the directory structure and the goal?
>
>
>
> On Oct 2, 1:48 am, James <[EMAIL PROTECTED]> wrote:
> > From a child directory, why can't a module in a parent or sibling
> > directory be imported?
> >
> > Am I mistaken, or is this prohibited?   (not using Django, just
> > webapp)
> >
>

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



[google-appengine] Re: Python Support

2008-10-02 Thread [EMAIL PROTECTED]

Wouldn't Python 3 support be possible without breaking any code by
simply requiring developers to change their app.yaml to include:

runtime: python3

That, I assume, is the use of the runtime parameter? Python 2.6 will
be good too, but I would especially love to see Python 3 when it's
released. Can anyone from Google give any information about this
please?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Any Site in Production Use ?

2008-10-02 Thread Bill

> nope ... it seems is using AWS now!

I met BuddyPoke's creator a week or so ago.  He was very happy with
App Engine and said how great it was to handle his significant load.
If you are seeing AWS, it's probably static flash files being served
off Amazon S3.  Let me know if that's incorrect.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread Tony Arkles

I don't think a *secure* hash function is necessary here (nor do I
think it desirable, due to speed).  By the pigeonhole principle, *all*
hashes have collisions; it's just a matter of a) how likely it is to
happen, and b) how much of an impact will it have.

For doing a hashtable implementation (which is basically what we're
talking about here), it seems to me that it's much more important to
have a fast hash than it is to have a secure hash.  In theory an
attacker could submit a huge pile of specially-constructed URLs that
all had the same hash (such that the lookups would be linear instead
of constant), but I'm much more concerned about minimizing my CPU
burder on all requests :)



On Oct 2, 1:09 pm, yejun <[EMAIL PROTECTED]> wrote:
> On Oct 2, 2:31 pm, Bill <[EMAIL PROTECTED]> wrote:
>
> > Seems like the SHA hashes are overkill.
>
> Collisions have been found for both sha0 and md5.
> I guess the minimal usable hash function is sha1 for now. In python
> hashlib uses openssl which should be reasonable fast.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Contract development for an application?

2008-10-02 Thread Sharp-Developer.Net

Hi,

I'm using Elance  for hiring contractors (both software developers and
copywriters).

Recently I outsourced a small GAE project. There were two providers
Iliked:

http://www.elance.com/php/profile/main/eolproviderprofile.php?view_person=fidlej&rid=1A6T4

http://www.elance.com/php/profile/main/eolproviderprofile.php?view_person=vitaliyk&rid=1A6T4

The first one I choose and the second I'm going to try next time as he
provided demo of what i required for free but later when I laready
awarded the project.

I was very happy with timeline/price/quality of job done (gallery
usign Flickr API).

Hope that helps.
--
Alexander Trakhimenok
http://sharp-developer.net/CV/


On Oct 1, 1:39 pm, Mark From Dallas <[EMAIL PROTECTED]> wrote:
> Can anyone recommend a great location where I can post notice of a
> development job to convert a simple online database app (mysql, php,
> html) to run on the App Engine?
>
> I have a job open on RentACoder for the work but I would like to get
> spread the word among App Engine developers as well.
>
> Thanks.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread yejun

On Oct 2, 2:31 pm, Bill <[EMAIL PROTECTED]> wrote:
> Seems like the SHA hashes are overkill.

Collisions have been found for both sha0 and md5.
I guess the minimal usable hash function is sha1 for now. In python
hashlib uses openssl which should be reasonable fast.

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



[google-appengine] Re: Is there anyway of getting the dimensions of an image?

2008-10-02 Thread Barry Hunter

With python code!

http://www.google.com/search?q=image+dimensions+pure+python

On Thu, Oct 2, 2008 at 9:41 AM, acuth <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> I want to generate a 20x20 image out of an uploaded image. Using the
> image API I can resize it to 20x20 but for non-square input images I
> get a smaller image. For example a 100x50 image would come back as a
> 20x10 image. The crop() method would allow me to extract a square
> image but to generate the input parameters - left_x=0.25, top_y=1.0,
> right_x=0.75, bottom_y=0.0 - I need to know the image dimensions.
>
> Any thoughts/advice would be gratefully received, Adrian
>
> >
>



-- 
Barry

- www.nearby.org.uk - www.geograph.org.uk -

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



[google-appengine] Re: Any Site in Production Use ?

2008-10-02 Thread Alexandru Zbarcea
nope ... it seems is using AWS now!

On Wed, Oct 1, 2008 at 8:32 AM, Bill <[EMAIL PROTECTED]> wrote:

>
> I know buddypoke.com is using AppEngine.  It's a fairly successful app
> under heavy load.  (I want to say hundreds of requests per second but
> can't say my memory is correct there.)
>
> On Sep 30, 2:21 am, "Feris Thia" <[EMAIL PROTECTED]> wrote:
> > Hi All,
> >
> > I understand that GAE is still in preview used only, but I just wonder if
> > anyone has used it in any semi or full production ? And with how many
> page
> > hits / visitors per day ?
> >
> > --
> > Thanks & Best Regards,
> >
> > Feris Thia
> >
>

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



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread Tony Arkles

Yeah, it's tough either way.

I'm fine with just discarding urls that exceed 500 characters (that
was my first solution), although I agree that the key space is
probably large enough that hash collisions would be highly unlikely.



On Oct 2, 12:31 pm, Bill <[EMAIL PROTECTED]> wrote:
> >        Then I think your only solution is to do it yourself (the
> > "tinyurl" service), assuring uniqueness. Basically, you "only" need to
> > mix datastore simple Gets with hashtable behaviour (taking care and
> > assuming that two different urls, despite rare, can result in the same
> > hash key). You need to query by hash key and then, among the results,
> > look for the matching url. Most of the time (depending on the url->key
> > algorithm) you should get few results, so overhead won't be a problem.
>
> The above assumes that there'll be collisions when you map from urls
> to the key name.  I might naively assume that with a large enough key
> space (500 characters), you should be able to find a hashing function
> that'll pretty much guarantee unique keys to be generated.
>
> My first question, though, would be if the urls that are greater than
> 500 characters can be truncated or simply not permitted.  When I've
> seen really long urls on previous apps, they've been attacks by bots
> or urls with all kinds of state information.  You could impose a
> restriction on submitted URLs and I think a very small % of URLs would
> trip it.  Anyone know stats of valid URLs by length?
>
> Since I also plan on implementing a Digg-like function on one of my
> websites, I'm interested in good hashing functions that let you
> produce a reasonably sized hash (less than 500 char) efficiently.
> Seems like the SHA hashes are overkill.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Is there anyway of getting the dimensions of an image?

2008-10-02 Thread acuth

I now see that this specific issue has been raised as
http://code.google.com/p/googleappengine/issues/detail?id=435 and that
somebody was good enough to supply precisely the relevant code at
http://groups.google.com/group/google-appengine/browse_thread/thread/cd287afcdf4cf976/388c5be1a22747fe?lnk=gst&q=image+width#388c5be1a22747fe
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Is there anyway of getting the dimensions of an image?

2008-10-02 Thread acuth

Hi,

I want to generate a 20x20 image out of an uploaded image. Using the
image API I can resize it to 20x20 but for non-square input images I
get a smaller image. For example a 100x50 image would come back as a
20x10 image. The crop() method would allow me to extract a square
image but to generate the input parameters - left_x=0.25, top_y=1.0,
right_x=0.75, bottom_y=0.0 - I need to know the image dimensions.

Any thoughts/advice would be gratefully received, Adrian

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



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread Bill

>        Then I think your only solution is to do it yourself (the
> "tinyurl" service), assuring uniqueness. Basically, you "only" need to
> mix datastore simple Gets with hashtable behaviour (taking care and
> assuming that two different urls, despite rare, can result in the same
> hash key). You need to query by hash key and then, among the results,
> look for the matching url. Most of the time (depending on the url->key
> algorithm) you should get few results, so overhead won't be a problem.

The above assumes that there'll be collisions when you map from urls
to the key name.  I might naively assume that with a large enough key
space (500 characters), you should be able to find a hashing function
that'll pretty much guarantee unique keys to be generated.

My first question, though, would be if the urls that are greater than
500 characters can be truncated or simply not permitted.  When I've
seen really long urls on previous apps, they've been attacks by bots
or urls with all kinds of state information.  You could impose a
restriction on submitted URLs and I think a very small % of URLs would
trip it.  Anyone know stats of valid URLs by length?

Since I also plan on implementing a Digg-like function on one of my
websites, I'm interested in good hashing functions that let you
produce a reasonably sized hash (less than 500 char) efficiently.
Seems like the SHA hashes are overkill.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Python Support

2008-10-02 Thread Wooble


On Oct 2, 2:53 pm, Sal <[EMAIL PROTECTED]> wrote:
> Will GAE be supporting Python versions 2.6 and/or 3.0?

I believe the developers have stated that 3.0 support is unlikely
since it's not backwards-compatible and would break existing code that
works now.

There's been no timeline posted for 2.6 support (or, really, for much
of anything), but personally I'd expect to see it sometime in the
future as I believe it is fully backwards-compatible.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Python Support

2008-10-02 Thread Sal

Will GAE be supporting Python versions 2.6 and/or 3.0?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Any Site in Production Use ?

2008-10-02 Thread Bill

> I get on the order of 100 bogus high CPU warnings per day in my error
> log. They tend to come in clusters of 4 or 5 within a few seconds, so
> it's clearly some issue on Google's end (these are simple datastore
> GETs by key, and they timeout after 10,000 megacycles or so). They've
> never been a threat to my quota, so I don't worry about them.

How do you handle the datastore get failures?  I'm concerned about
the .01% failure rate mentioned in another thread, because I'm
thinking this is behavior that's not just preview mode but something
that should be expected for datastore access.  If so, can we issue
temporary redirects back to the same URL in the case of failure for
idempotent actions?  Or are folks just assuming some very small
percentage of requests fail?  (I'm thinking of handling it on the
client side with AJAX or Flash, where the client either informs the
user or reissues a request.)
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Datastore: Query for .key does not work

2008-10-02 Thread Marzia Niccolai
Hi,

I'm not sure exactly your use case, so I'm just going to describe in general
what I might do in a similar situation.

Say I have a list of keys for a picture model, and I want to render that
picture on my HTML page.  So, let's assume these are my models:

class FirstModel(db.Model)
  my_pics = ListProperty(db.Keys)

class MyPic(db.Model)
  picture = BlobProperty()

Assume I've have an instance of FirstModel, my_model, and I want to
construct links to images for my HTML template.  I'd do something like this:

for picture_key in my_model.my_pics:
  image_links.append('' % str(picture_key))

The I would have an Image request handler that was something along the lines
of:

class Image(webapp.RequestHandler):
  def get(self):
img_key = self.request.get('key')
img = MyPic.get(img_key)
self.response.headers['Content-Type'] = 'image/jpg'
self.response.out.write(img.picture)

Obviously this is not production ready code, but you get the idea...

-Marzia




On Thu, Oct 2, 2008 at 4:03 AM, Nate Dog <[EMAIL PROTECTED]> wrote:

>
> Hi Mariza,
>
> ive been having the same issue as ARMIX,
>
> my question is i have a page model one of the page models propertys is
> a field called pics which is a list property
> im storing a list ok keys from a photo model ... the idea is page has
> a number of photos.
>
> from what your saying i think ill need to loop through my list and do
> a new query per list item as oposed to using the GQL IN syntax to try
> and match the photo model's key with my list of keys from my page.pics
> property
>
> is that correct or is there a way to use a Kinds/Models key in GQL ?
>
> On Aug 23, 2:55 am, "Marzia Niccolai" <[EMAIL PROTECTED]> wrote:
> > Hi Armin,
> >  You can't query for the key, there is really no need.  If you know the
> key
> > for the entity you want just do:
> >
> > entity = MyModel.get(key)
> >
> > Thats all there is to it.
> >
> > -Marzia
> >
> > On Fri, Aug 22, 2008 at 7:43 AM, ARMIX <[EMAIL PROTECTED]> wrote:
> >
> > > Hi,
> >
> > > I'm new to App Engine, new to python and have some problems with the
> > > datastore. :)
> > > I'd like to query a record from the Datastore where the field "user" =
> > > users.get_current_user() and the field "key" =
> > > "agNhd25yCgsSBE5vdGUYBww"
> > > ... so the Query looks like:
> > > notes = db.GqlQuery("SELECT * FROM Note WHERE user = :1 AND key = :2
> > > LIMIT 1", users.get_current_user(), key)
> > > ...but that doesn't work.
> >
> > > If I submit the same query without the "AND key = :2" it works fine.
> > > It seems that it is not possible to query for the entity key? Is that
> > > right? And if yes, how can I get the requested record?
> >
> > > Until now I tried the following queries without success:
> > > notes = db.GqlQuery("SELECT * FROM Note WHERE user = :1 AND key = :2
> > > LIMIT 1", users.get_current_user(), key)
> > > notes = db.GqlQuery("SELECT * FROM Note WHERE user = :1 AND id = :2
> > > LIMIT 1", users.get_current_user(), "7")
> > > notes = db.GqlQuery("SELECT * FROM Note WHERE user = :1",
> > > users.get_current_user())
> > > notes = Note.get_by_key_name(key)
> > > notes = Note.get(db.key.from_path('Note', key)
> > > notes = Note.get_by_key_name("agNhd25yCgsSBE5vdGUYBww")
> > > notes = db.get("agNhd25yCgsSBE5vdGUYBww")
> >
> > > Sometimes I got the following error: 'Note' object is not iterable
> >
> > > The class "Note":
> > > class Note(db.Model):
> >
> > >  user = db.UserProperty()
> >
> > >  subj = db.StringProperty(multiline=False)
> >
> > >  text = db.StringProperty(multiline=True)
> >
> > >  tscrt = db.DateTimeProperty(auto_now_add=True)
> >
> > >  tschg = db.DateTimeProperty(auto_now=True)
> >
> > > Can anybody help me please?
> >
> > > Thanks,
> > > Armin
> >
> >
> >
>

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



[google-appengine] Re: Is there anyway of getting the dimensions of an image?

2008-10-02 Thread acuth

I guess I had assumed that the Image API already had the necessary
functionality and that I just hadn't found it yet.

Obviously it's a very small subset of PIL functionality, which people
have been asking for since issue 38  - 
http://code.google.com/p/googleappengine/issues/detail?id=38
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Did Something Change Since Yesterday which now Requires Additional Indexes?

2008-10-02 Thread Marzia Niccolai
Hi,

There should not have been a change yesterday that would have affected
needing new indexes, but there are rare cases when built in indexes are not
sufficient to run queries, and usually the correct index for the query will
be suggested in the error.

If you could reply directly to me with the app id experiencing this issue,
the query that you are attempting to run, and the suggested index, I'd be
happy to help you troubleshoot the issue.

Thanks,
Marzia

On Thu, Oct 2, 2008 at 12:32 AM, gg <[EMAIL PROTECTED]> wrote:

>
> Now I am totally hosed. Tried to add the needed index (which seemed to
> be in the new 1.1.4 format and I am running 1.1.1) it caused an error.
> I vacuumed the indexes and tried to regenerate. When I do ALL indexes
> now do not rebuild and show in error status?? What is up with
> that?
>
> On Oct 2, 12:07 am, gg <[EMAIL PROTECTED]> wrote:
> > As stated in  the title:
> >
> > Did Something Change Since Yesterday which would now Requires
> > Additional Indexes?
> >
>

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



[google-appengine] Re: Any Site in Production Use ?

2008-10-02 Thread Jonathan Feinberg

On Oct 2, 2:59 am, Bill <[EMAIL PROTECTED]> wrote:
> Feris, Wordle.net is Jonathan's site so I don't have any info other
> than looking at the web pages.  It looks the image thumbnails are
> image blobs stored in datastore and the java applet displays graphics
> on individual gallery pages.

Correct. Thumbnails are little (~15K) blobs, and the saved Wordle
state is about 3K, which is then rendered by the applet.

> So he'd have at least one intensive
> request when doing the thumbnail processing and image put.

No, the applet generates the thumbnail and POSTs it as an opaque
binary blob. There's no processing to speak of on the server side.

> There's no tagging or join models from what I can see, so his gallery page GET
> should be reasonably fast.

Yes.

I get on the order of 100 bogus high CPU warnings per day in my error
log. They tend to come in clusters of 4 or 5 within a few seconds, so
it's clearly some issue on Google's end (these are simple datastore
GETs by key, and they timeout after 10,000 megacycles or so). They've
never been a threat to my quota, so I don't worry about them.

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



[google-appengine] Re: Python 2.6 Runtime Environment

2008-10-02 Thread Ovnicraft
2008/10/2 Nathan <[EMAIL PROTECTED]>

>
> Now that Python 2.6 has reached final release, I am just wondering
> what plans/schedule there is for rolling it on on Google App Engine.


2.6 and 3.0 was made almost in parallell maybe wait for 3.0? and testing
changes with 2.6?

>
>
> >
>


-- 
[b]question = (to) ? be : !be; .[/b]

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



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread Tony Arkles

Ahhh... sigh. :)

I was hoping to avoid doing that.  It certainly adds a layer of
complexity that I was hoping to avoid.


On Oct 2, 10:49 am, "José Oliver Segura" <[EMAIL PROTECTED]> wrote:
> 2008/10/2 Tony Arkles <[EMAIL PROTECTED]>:
>
>
>
> > I don't think that'll help. :(
>
> > I'm trying to ensure uniqueness... so if two people try to add the
> > same URL, there will only be one entry in the datastore.  I don't
> > think there's any guarantee that tinyurl/etc would provide that
> > uniqueness constraint.
>
> > Also, there will be a pretty decent volume of lookups going on, and
> > routing every request through tinyurl won't win me any friends :)
>
>        Then I think your only solution is to do it yourself (the
> "tinyurl" service), assuring uniqueness. Basically, you "only" need to
> mix datastore simple Gets with hashtable behaviour (taking care and
> assuming that two different urls, despite rare, can result in the same
> hash key). You need to query by hash key and then, among the results,
> look for the matching url. Most of the time (depending on the url->key
> algorithm) you should get few results, so overhead won't be a problem.
>
>        Best,
>        Jose
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: undocumented size cap on memcache entries

2008-10-02 Thread Thomas Johansson

1 MB seems the magic number for GAE currently. Blobs, requests,
responses, memcache entries, app files all has to be <= 1 MB.

On Oct 2, 2:02 am, Mahmoud <[EMAIL PROTECTED]> wrote:
> Just a heads up, in case you get bit by this like we did:
>
> It seems that there is an undocumented size cap of 1 MB on memcache
> entries. Our application caches a list of entities with a thumbnail
> BlobProperty, and we weren't putting memcache.set() in a try/catch
> block. It turns out, that it stopped working after a while, with the
> following error in the logs:
>
> """
>   File "/base/python_lib/versions/1/google/appengine/api/memcache/
> __init__.py", line 539, in set
>     return self._set_with_policy(MemcacheSetRequest.SET, key, value,
> time=time)
>   File "/base/python_lib/versions/1/google/appengine/api/memcache/
> __init__.py", line 602, in _set_with_policy
>     stored_value, flags = _validate_encode_value(value,
> self._do_pickle)
>   File "/base/python_lib/versions/1/google/appengine/api/memcache/
> __init__.py", line 176, in _validate_encode_value
>     'received %d bytes' % (MAX_VALUE_SIZE, len(stored_value)))
> ValueError: Values may not be more than 100 bytes in length;
> received 1000685 bytes
> """
>
> I guess we'll have to make those thumbnails into ReferenceProperties,
> put them in their own entities and memcache them separately.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread Gmail
Maybe,your should have a look at the project calling "appengine- 
utitlies"

http://code.google.com/p/appengine-utitlies/

>>
>>
>> These are a collection of classes to be used for rapid development  
>> using Google App Engine.
>>
>> This starts with the session class which Joe Bowman wrote for a  
>> project he was working on and gave to the community because there  
>> seemed to be some demand for it. Any new classes will probably be a  
>> result of packages created for other projects, bundled inside this  
>> utilities module. This is a very loose project with developers  
>> encouraged to work and release their own modules independent of  
>> each other.
>>
>> Please check the Wiki and use the Issue Tracker. There's a link to  
>> the google groups discussion forum for this project in the links on  
>> the right.
>>
>> Current classes are: session.py - Used for session handling within  
>> a website, using the datastore as a backend. Only stores a session  
>> id in the browser, all other information is kept in the datastore.  
>> Supports customizable cookie paths and session expiration time.
>
在 2008-10-3,上午12:42, Tony Arkles 写道:

>
> I don't think that'll help. :(
>
> I'm trying to ensure uniqueness... so if two people try to add the
> same URL, there will only be one entry in the datastore.  I don't
> think there's any guarantee that tinyurl/etc would provide that
> uniqueness constraint.
>
> Also, there will be a pretty decent volume of lookups going on, and
> routing every request through tinyurl won't win me any friends :)
>
>
> On Oct 2, 10:34 am, Gmail <[EMAIL PROTECTED]> wrote:
>> Maybe,You Can try to short the URI by some service like this one;
>>
>>> Short URL is a Wordpress plugin that allows you to take a long URL
>>> such as:
>>
>>> http://www.harleyquine.com/downloads/php-scripts/somefile.zip
>>
>>> and turn it into:
>>> http://www.harleyquine.com/u/1
>>
>> there are lots of this kind of services.
>>
>> 在 2008-10-2,下午11:55, Tony Arkles 写道:
>>
>>
>>
>>> Hi everyone,
>>
>>> I'm running into a bit of a snag, and I'm hoping that someone  
>>> might be
>>> able to offer some suggestions.
>>
>>> I've got a Kind that is keeping track of information about URLs
>>> (ratings, summary, etc).  At first glance, it seems natural to key
>>> Entities based on the full URL -- this will ensure that there is  
>>> only
>>> ever one entry for each URL.  get_or_insert() works awesome for  
>>> this.
>>
>>> This design was working great until yesterday, when I hit a URL that
>>> was longer than 500 characters (egads!).
>>
>>> Now I don't know what to do!  I want to ensure uniqueness on a per- 
>>> URL
>>> basis, but it doesn't look like I can use it as a key anymore.   
>>> Since
>>> you can't do queries within transactions, I'm at a loss for how to  
>>> do
>>> this...
>>
>>> Any thoughts?
>>
>>> Cheers
>>> Tony
>>
>>
> >


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



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread José Oliver Segura

2008/10/2 Tony Arkles <[EMAIL PROTECTED]>:
>
> I don't think that'll help. :(
>
> I'm trying to ensure uniqueness... so if two people try to add the
> same URL, there will only be one entry in the datastore.  I don't
> think there's any guarantee that tinyurl/etc would provide that
> uniqueness constraint.
>
> Also, there will be a pretty decent volume of lookups going on, and
> routing every request through tinyurl won't win me any friends :)

   Then I think your only solution is to do it yourself (the
"tinyurl" service), assuring uniqueness. Basically, you "only" need to
mix datastore simple Gets with hashtable behaviour (taking care and
assuming that two different urls, despite rare, can result in the same
hash key). You need to query by hash key and then, among the results,
look for the matching url. Most of the time (depending on the url->key
algorithm) you should get few results, so overhead won't be a problem.

   Best,
   Jose

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



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread Tony Arkles

I don't think that'll help. :(

I'm trying to ensure uniqueness... so if two people try to add the
same URL, there will only be one entry in the datastore.  I don't
think there's any guarantee that tinyurl/etc would provide that
uniqueness constraint.

Also, there will be a pretty decent volume of lookups going on, and
routing every request through tinyurl won't win me any friends :)


On Oct 2, 10:34 am, Gmail <[EMAIL PROTECTED]> wrote:
> Maybe,You Can try to short the URI by some service like this one;
>
> > Short URL is a Wordpress plugin that allows you to take a long URL  
> > such as:
>
> >http://www.harleyquine.com/downloads/php-scripts/somefile.zip
>
> > and turn it into:
> >http://www.harleyquine.com/u/1
>
> there are lots of this kind of services.
>
> 在 2008-10-2,下午11:55, Tony Arkles 写道:
>
>
>
> > Hi everyone,
>
> > I'm running into a bit of a snag, and I'm hoping that someone might be
> > able to offer some suggestions.
>
> > I've got a Kind that is keeping track of information about URLs
> > (ratings, summary, etc).  At first glance, it seems natural to key
> > Entities based on the full URL -- this will ensure that there is only
> > ever one entry for each URL.  get_or_insert() works awesome for this.
>
> > This design was working great until yesterday, when I hit a URL that
> > was longer than 500 characters (egads!).
>
> > Now I don't know what to do!  I want to ensure uniqueness on a per-URL
> > basis, but it doesn't look like I can use it as a key anymore.  Since
> > you can't do queries within transactions, I'm at a loss for how to do
> > this...
>
> > Any thoughts?
>
> > Cheers
> > Tony
>
>
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Python 2.6 Runtime Environment

2008-10-02 Thread Nathan

Now that Python 2.6 has reached final release, I am just wondering
what plans/schedule there is for rolling it on on Google App 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-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Long key_name design question?

2008-10-02 Thread Gmail
Maybe,You Can try to short the URI by some service like this one;
> Short URL is a Wordpress plugin that allows you to take a long URL  
> such as:
>
> http://www.harleyquine.com/downloads/php-scripts/somefile.zip
>
> and turn it into:
> http://www.harleyquine.com/u/1

there are lots of this kind of services.

在 2008-10-2,下午11:55, Tony Arkles 写道:

>
> Hi everyone,
>
> I'm running into a bit of a snag, and I'm hoping that someone might be
> able to offer some suggestions.
>
> I've got a Kind that is keeping track of information about URLs
> (ratings, summary, etc).  At first glance, it seems natural to key
> Entities based on the full URL -- this will ensure that there is only
> ever one entry for each URL.  get_or_insert() works awesome for this.
>
> This design was working great until yesterday, when I hit a URL that
> was longer than 500 characters (egads!).
>
> Now I don't know what to do!  I want to ensure uniqueness on a per-URL
> basis, but it doesn't look like I can use it as a key anymore.  Since
> you can't do queries within transactions, I'm at a loss for how to do
> this...
>
> Any thoughts?
>
> Cheers
> Tony
>
> >


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



[google-appengine] Re: unsupported operand type(s) for +=: 'NoneType' and 'int'

2008-10-02 Thread José Oliver Segura

On Thu, Oct 2, 2008 at 8:31 AM, GMan <[EMAIL PROTECTED]> wrote:
>
> I am scratching my head at this seemingly simple problem.  All I want
> to do is:
> 1) Take the value of a db.IntegerProperty
> 2) increment it using a local variable
> 3) Save the local variable back to the IntegerProperty
>
> class IncrementHolder:
>  counter = db.IntegerProperty()
>
>
> class UserOfIncrementHolder:
>   def doSomething(self):
>  incrementQueryResult = IncrementHolder.all()  #assume there is
> only one of these
>
>  incrementHolderObj = incrementQueryResult.get()
>
>  currCountValue = incrementHolderObj.counter
>
>  currCountValue += 1  ## This is where the error occurs  !!

I guess you're geting a None value assigned to
incrementHolderObj.counter, and adding a NoneType with an Int seems
not to be allowed by python (though I'm not an expert). Why don't you
try to check for None before?

if currCountValue is None:
   currCountValue = 1
else
   currCountValue += 1


hope that helps. Best,
Jose

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



[google-appengine] Re: Upgrade to GoogleAppEngineLauncher 1.1.4 breaks apps running on 1.1.3

2008-10-02 Thread kaapuni

I have exactly the same problem. Mac OSX 10.5/Update of the launcher
from 1.1.3. to 1.1.4 (automatic update).

As additional info I can redirect to generic urls (random web sites) -
I get this error when using a url generated like this:

client = gdata.service.GDataService()
gdata.alt.appengine.run_on_appengine(client)
authUrl = client.GenerateAuthSubURL(self.request.url, scope,
secure=False, session=True)
self.redirect(authUrl)

Any hints would be appreciated!

Cheers

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



[google-appengine] unsupported operand type(s) for +=: 'NoneType' and 'int'

2008-10-02 Thread GMan

I am scratching my head at this seemingly simple problem.  All I want
to do is:
1) Take the value of a db.IntegerProperty
2) increment it using a local variable
3) Save the local variable back to the IntegerProperty

class IncrementHolder:
  counter = db.IntegerProperty()


class UserOfIncrementHolder:
   def doSomething(self):
  incrementQueryResult = IncrementHolder.all()  #assume there is
only one of these

  incrementHolderObj = incrementQueryResult.get()

  currCountValue = incrementHolderObj.counter

  currCountValue += 1  ## This is where the error occurs  !!

  incrementHolderObj.put()
 ...


On the error line, i have already tried the following
int(currCountValue)
without success.

What gives???

Thanks

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



[google-appengine] GData Calendar 501 Error

2008-10-02 Thread Elmore

I'm trying to use the the GData Python library to create a calendar
for a user. The logon (client based) works, getting the calendar feed
works, but then the code chokes on the InsertCalendar call. Here is
the snippet:

  # Check for the master Google calendar, if not present create
one
  calendar_service = gdata.calendar.service.CalendarService()
  gdata.alt.appengine.run_on_appengine(calendar_service)
  calendar_service.email = g_user
  calendar_service.password = g_pass
  calendar_service.source = GOOGLE_DICT['api-source']
  calendar_service.ProgrammaticLogin()
  logging.info(calendar_service.GetClientLoginToken())<
things are okay here

  # Create the default calendar, if it is not there
  feed = calendar_service.GetOwnCalendarsFeed()
  logging.info('Obtained a feed: ' + feed.title.text)<
things are okay here

  if 'mydefault' not in ( c.title.text for c in feed.entry ):
logging.info('Default calendar not found, creating!')
calendar = gdata.calendar.CalendarListEntry()
calendar.title = atom.Title(text='mydefault')
new_calendar =
calendar_service.InsertCalendar(new_calendar=calendar)< Bombs
here!
logging.info(new_calendar.title)

The insert bombs with a 501 from the Googles :

  File "C:\Program Files\Google\google_appengine\academic\admin.py",
line 92, in post
new_calendar =
calendar_service.InsertCalendar(new_calendar=calendar)
  File "C:\Program Files\Google\google_appengine\academic\gdata
\calendar\service.py", line 197, in InsertCalendar
converter=gdata.calendar.CalendarListEntryFromString)
  File "C:\Program Files\Google\google_appengine\academic\gdata
\service.py", line 831, in Post
media_source=media_source, converter=converter)
  File "C:\Program Files\Google\google_appengine\academic\gdata
\service.py", line 951, in PostOrPut
'reason': server_response.reason, 'body': result_body}
RequestError: {'status': 501, 'body': '\n\n\n\n501
Not Implemented\

I am using the latest iterations of GAE and the Python lib (Local Dev
1.1.4 and GData Python 1.2.1).

I added the following at the top of my file just after my imports, but
to no avail:

gdata.service.http_request_handler = gdata.urlfetch

Any ideas / suggestions?

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



[google-appengine] May I sign up an app engine?

2008-10-02 Thread klaus

Hi, I'm from Mainland China, I need to sign up an appengine account,
but seems China Mobile is not supported in the list. However, I saw a
post that some guy like me has successfully signed up an appengine, so
I want know may I create my app engine?
Please reply to me, thank you very much!

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



[google-appengine] Using Picasa with Appengine

2008-10-02 Thread Justin Van Winkle

I would like to allow users to put images in to forum posts, but host
the images in their picasa accounts.  Is this possible currently, or
would they have to paste a picasa url just like anywhere else they
might use picasa to host a picture?

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



[google-appengine] Error Message while browsing the Apps

2008-10-02 Thread Vikram

Hi,

I am not a developer of any app, but, i am a keen follower. Lately
when I browse the various apps lists, I constantly get a message that
reads as below:

Traceback (most recent call last):
  File "/base/python_lib/versions/1/google/appengine/ext/webapp/
__init__.py", line 499, in __call__
handler.get(*groups)
  File "/base/data/home/apps/appgallery/3.11/appgallery.py", line 397,
in get
total = query.Count()
  File "/base/python_lib/versions/1/google/appengine/api/
datastore.py", line 960, in Count
raise _ToDatastoreError(err)
  File "/base/python_lib/versions/1/google/appengine/api/
datastore.py", line 1627, in _ToDatastoreError
raise errors[err.application_error](err.error_detail)
Timeout: datastore timeout: operation took too long.

Not, I dont really understand what this means, but its hard to imagine
a Google service going into Timeout. maybe there is some coding error
or something.

Maybe I am the only one receiving this message. I am posting this here
as I wasnt sure whom to contact regarding this, and thought guys who
read this would know what action to take.

Good Luck with the Development, the apps are looking great!

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



[google-appengine] Long key_name design question?

2008-10-02 Thread Tony Arkles

Hi everyone,

I'm running into a bit of a snag, and I'm hoping that someone might be
able to offer some suggestions.

I've got a Kind that is keeping track of information about URLs
(ratings, summary, etc).  At first glance, it seems natural to key
Entities based on the full URL -- this will ensure that there is only
ever one entry for each URL.  get_or_insert() works awesome for this.

This design was working great until yesterday, when I hit a URL that
was longer than 500 characters (egads!).

Now I don't know what to do!  I want to ensure uniqueness on a per-URL
basis, but it doesn't look like I can use it as a key anymore.  Since
you can't do queries within transactions, I'm at a loss for how to do
this...

Any thoughts?

Cheers
Tony

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



[google-appengine] Re: How count() works?

2008-10-02 Thread Микола

Thanks

On 2 Жов, 14:02, Alexander Kojevnikov <[EMAIL PROTECTED]>
wrote:
> Микола, count just iterates on the results locally, it's only a little
> bit more efficient than querying and then iterating; and also has the
> same limits as other requests (max 1000 entities):
>
> http://code.google.com/appengine/docs/datastore/queryclass.html#Query...
>
> On Oct 2, 8:10 pm, Микола <[EMAIL PROTECTED]> wrote:
>
> > Hi. I want to know if query executed when i call count(). And is
> > count() executed efficiently?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: undocumented size cap on memcache entries

2008-10-02 Thread Mahmoud


> > It seems that there is an undocumented size cap of 1 MB on memcache
> > entries. Our application caches a list of entities with a thumbnail
> > BlobProperty, and we weren't putting memcache.set() in a try/catch
> > block. It turns out, that it stopped working after a while, with the
> > following error in the logs:

Hmm. It seems that the size limit might actually be dictated by the
memcached protocol. See:
http://www.socialtext.net/memcached/index.cgi?faq
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: from . import module

2008-10-02 Thread Tony Arkles

Can you please post the directory structure and the goal?



On Oct 2, 1:48 am, James <[EMAIL PROTECTED]> wrote:
> From a child directory, why can't a module in a parent or sibling
> directory be imported?
>
> Am I mistaken, or is this prohibited?   (not using Django, just
> webapp)
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] ZipServe no module called Utils

2008-10-02 Thread vivaceuk

I am trying to serve files from a zip file using the new ZipServe
module in SDK 1.1.4 using Python 2.5.2 under Windows XP.

My app.yaml contains the line:

- url: /js/dojo/.*
  script: $PYTHON_LIB/google/appengine/ext/zipserve

When running the app I am receiving the folowing error message:

ERROR2008-10-02 11:54:51,546 dev_appserver.py] Exception
encountered handling request
Traceback (most recent call last):
  File "C:\Program Files\Google\google_appengine\google\appengine\tools
\dev_appserver.py", line 2411, in _HandleRequest
base_env_dict=env_dict)
  File "C:\Program Files\Google\google_appengine\google\appengine\tools
\dev_appserver.py", line 348, in Dispatch
base_env_dict=base_env_dict)
  File "C:\Program Files\Google\google_appengine\google\appengine\tools
\dev_appserver.py", line 1839, in Dispatch
self._module_dict)
  File "C:\Program Files\Google\google_appengine\google\appengine\tools
\dev_appserver.py", line 1757, in ExecuteCGI
reset_modules = exec_script(handler_path, cgi_path, hook)
  File "C:\Program Files\Google\google_appengine\google\appengine\tools
\dev_appserver.py", line 1653, in ExecuteOrImportScript
exec module_code in script_module.__dict__
  File "C:\Program Files\Google\google_appengine\google\appengine\ext
\zipserve\__init__.py", line 58, in 
import email.Utils
ImportError: No module named Utils

Python can quite happily import the email.Utils module, so I am
guessing that there is a problem with the way the SDK is trying to
import the module. I am using the MSI version of the sdk. Has anyone
else suffered from this problem?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Upgrade to GoogleAppEngineLauncher 1.1.4 breaks apps running on 1.1.3

2008-10-02 Thread esciara

Solved the problem by calling to_string() method on atom.url.Url
object before passing it on.

Note though that this problem appears only on development environment
(works fine when deployed) and only after upgraded 1.1.4 ...
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Datastore: Query for .key does not work

2008-10-02 Thread Nate Dog

Hi Mariza,

ive been having the same issue as ARMIX,

my question is i have a page model one of the page models propertys is
a field called pics which is a list property
im storing a list ok keys from a photo model ... the idea is page has
a number of photos.

from what your saying i think ill need to loop through my list and do
a new query per list item as oposed to using the GQL IN syntax to try
and match the photo model's key with my list of keys from my page.pics
property

is that correct or is there a way to use a Kinds/Models key in GQL ?

On Aug 23, 2:55 am, "Marzia Niccolai" <[EMAIL PROTECTED]> wrote:
> Hi Armin,
>  You can't query for the key, there is really no need.  If you know the key
> for the entity you want just do:
>
> entity = MyModel.get(key)
>
> Thats all there is to it.
>
> -Marzia
>
> On Fri, Aug 22, 2008 at 7:43 AM, ARMIX <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > I'm new to App Engine, new to python and have some problems with the
> > datastore. :)
> > I'd like to query a record from the Datastore where the field "user" =
> > users.get_current_user() and the field "key" =
> > "agNhd25yCgsSBE5vdGUYBww"
> > ... so the Query looks like:
> > notes = db.GqlQuery("SELECT * FROM Note WHERE user = :1 AND key = :2
> > LIMIT 1", users.get_current_user(), key)
> > ...but that doesn't work.
>
> > If I submit the same query without the "AND key = :2" it works fine.
> > It seems that it is not possible to query for the entity key? Is that
> > right? And if yes, how can I get the requested record?
>
> > Until now I tried the following queries without success:
> > notes = db.GqlQuery("SELECT * FROM Note WHERE user = :1 AND key = :2
> > LIMIT 1", users.get_current_user(), key)
> > notes = db.GqlQuery("SELECT * FROM Note WHERE user = :1 AND id = :2
> > LIMIT 1", users.get_current_user(), "7")
> > notes = db.GqlQuery("SELECT * FROM Note WHERE user = :1",
> > users.get_current_user())
> > notes = Note.get_by_key_name(key)
> > notes = Note.get(db.key.from_path('Note', key)
> > notes = Note.get_by_key_name("agNhd25yCgsSBE5vdGUYBww")
> > notes = db.get("agNhd25yCgsSBE5vdGUYBww")
>
> > Sometimes I got the following error: 'Note' object is not iterable
>
> > The class "Note":
> > class Note(db.Model):
>
> >  user = db.UserProperty()
>
> >  subj = db.StringProperty(multiline=False)
>
> >  text = db.StringProperty(multiline=True)
>
> >  tscrt = db.DateTimeProperty(auto_now_add=True)
>
> >  tschg = db.DateTimeProperty(auto_now=True)
>
> > Can anybody help me please?
>
> > Thanks,
> > Armin
>
>
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: How count() works?

2008-10-02 Thread Alexander Kojevnikov

Микола, count just iterates on the results locally, it's only a little
bit more efficient than querying and then iterating; and also has the
same limits as other requests (max 1000 entities):

http://code.google.com/appengine/docs/datastore/queryclass.html#Query_count

On Oct 2, 8:10 pm, Микола <[EMAIL PROTECTED]> wrote:
> Hi. I want to know if query executed when i call count(). And is
> count() executed efficiently?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] How count() works?

2008-10-02 Thread Микола

Hi. I want to know if query executed when i call count(). And is
count() executed efficiently?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] from . import module

2008-10-02 Thread James

>From a child directory, why can't a module in a parent or sibling
directory be imported?

Am I mistaken, or is this prohibited?   (not using Django, just
webapp)
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Did Something Change Since Yesterday which now Requires Additional Indexes?

2008-10-02 Thread gg

Now I am totally hosed. Tried to add the needed index (which seemed to
be in the new 1.1.4 format and I am running 1.1.1) it caused an error.
I vacuumed the indexes and tried to regenerate. When I do ALL indexes
now do not rebuild and show in error status?? What is up with
that?

On Oct 2, 12:07 am, gg <[EMAIL PROTECTED]> wrote:
> As stated in  the title:
>
> Did Something Change Since Yesterday which would now Requires
> Additional Indexes?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Did Something Change Since Yesterday which now Requires Additional Indexes?

2008-10-02 Thread gg

As stated in  the title:

Did Something Change Since Yesterday which would now Requires
Additional Indexes?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---