[google-appengine] Re: Datastore operations are seriously expensive

2011-11-14 Thread Volker Thiel
> If you're churning through your datastore ops because you have 100
> indexes, you would have churned through your CPU quota before.  The
> problem is you're trying to update too many indexes.  The only
> solution is "don't".

Not true. I had an application that I optimized in CPU usage and it
was well below the limits every day. I only had two entities with a
few indexes each (three and four respectively). The latter is updated
frequently (several times a day). I (currently) have about 4000
entities which required approximately 20 write operations on each
update. This was no problem under the old billing model!
I threw out some of the indexes but on the cost of usability. Now I'm
down to 8 write ops for a new entity and 6 for an update. I got those
figures from the dev environment, but what I'd really like to see is
read and write ops in the production logs, since the new billing isn't
focused around CPU cycles anymore. My two cents.

Volker

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



RE: [google-appengine] Re: routing appspot.com domain to a personal domain

2011-11-14 Thread Brandon Wirtz
You don’t want to serve from appspot it creates duplicate content in Search,
and if your domain is new, the appspot domain will be the primary and your
domain will get penalized as a scraped site.

-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of o1iver
Sent: Sunday, November 13, 2011 4:45 PM
To: Google App Engine
Subject: [google-appengine] Re: routing appspot.com domain to a personal
domain

I don't know if that is possible, but why would you want to do that?
It doesn't matter does it?

Oliver

On Nov 8, 8:24 pm, notnarayan  wrote:
> Hello everyone.
>
> I have been building an app athttp://praisetheyellowball.appspot.com/
> and wish to serve it athttp://yellow.shankarnarayan.in. I have been 
> successful at linking the app by making the required changes on the 
> CNAME on my DNS server.
>
> How do I stop serving the app on the appspot domain and still make it 
> available on the desired domain.
>
> notnarayan

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


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



Re: [google-appengine] Re: Channel limit

2011-11-14 Thread Timofey Koolin
It was my mistake while I parse messages.

I try send 1000 messages - it delivery ok.

Do google save sended messages in any buffer when channel disconnect. What
 size of this buffer?

2011/11/14 Timofey Koolin 

> I don't have any exceptions on server-side and client side.
> Size of every js about 500 bytes.
>
>
> 2011/11/14 Timofey Koolin 
>
>> My code look like:
>> updates = get_updates(...)
>> channel = get_channel(...)
>> for update in updates:
>> id = memcache.incr('mess id', initial_value=1)
>> update['mess_id'] = id
>> js = json.dumps(update)
>> channel.send_message(channel, js)
>>
>> I have about 50 updates.
>>
>> After receive about 20-30 messages client side code receive one message
>> infinite times and don't receive new messages. For example:
>> receive 1
>> receive 2
>> receive ...
>> receive 21 pause 20-60 sec
>> receive 21 pause 20-60 sec
>> receive 21 pause 20-60 sec
>> receive 21 pause 20-60 sec
>> receive 21 pause 20-60 sec
>> ...
>>
>>
>> 2011/11/14 Timofey Koolin 
>>
>>> Amy Unruh, i far from any quota deny - all quotas are ok.
>>> Yes, I know about handle channel disconnect, but I write application for
>>> internal-use with good internet-connection and i don't want handle
>>> connect/disconnect and make internal buffer for messages (when channel
>>> disconnected) if it possible.
>>>
>>> I'm send every email as different message.
>>>
>>> Yes, I forget about one message size limit - thanks, I try check it.
>>>
>>>
>>> 2011/11/14 Max 
>>>
 hi Rekby,

 I am pretty sure your 100 emails just exceed channel API 32K max
 message size.

 Check message size before you send

 Max

 --
 You received this message because you are subscribed to the Google
 Groups "Google App Engine" group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine/-/I_rB81Ns8lsJ.

 To post to this group, send email to google-appengine@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.

>>>
>>>
>>>
>>> --
>>> Blog: www.rekby.ru
>>>
>>
>>
>>
>> --
>> Blog: www.rekby.ru
>>
>
>
>
> --
> Blog: www.rekby.ru
>



-- 
Blog: www.rekby.ru

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



[google-appengine] Re: New pricing structure infinity increase

2011-11-14 Thread Kate
But that article says to DECREASE latency whereas the two sliders in
the applications seyting page would indicate that you should INCREASE
latency. Now I am confused!

On Nov 14, 1:34 am, "Gregory D'alesandre"  wrote:
> Hi Kate, check out the article that we wrote about optimizing your app to
> minimize 
> costs:http://code.google.com/appengine/articles/managing-resources.html Without
> looking at your app its hard to know what the right settings should be
> although you are only charged for the number of idle instances up to the
> max you set as you Max Idle Instances.  Max Idle Instances also controls
> how quickly the scheduler tears instances down for you though, so it you
> set it to 1, it means that the scheduler will aggressively take down any
> additional instances which could impact your performance.
>
> Greg
>
>
>
>
>
>
>
> On Sun, Nov 13, 2011 at 3:42 PM, Kate  wrote:
> > I AM getting charged for instances!
>
> >  --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To view this discussion on the web visit
> >https://groups.google.com/d/msg/google-appengine/-/2ZHYpc8KRU8J.
>
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine?hl=en.

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



Re: [google-appengine] Datastore operations are seriously expensive

2011-11-14 Thread djidjadji
The links is a redirect to

http://code.google.com/appengine/docs/kb/billing.html

But it should be (I think)

http://code.google.com/appengine/kb/billing.html

7 november 2011 17:48 Kenneth  wrote:
> This may be old news to people but I just discovered it.
> http://code.google.com/appengine/kb/postpreviewpricing.html#operations_charged_for

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



[google-appengine] Re: New pricing structure infinity increase

2011-11-14 Thread David
You definately have to INCREASE latency to reduce costs. As far as I 
understood, the sliders work like this:
min latency: once it is reached (=a request waits in queue for that time), 
app engine might start another instance (I don't know on what it bases the 
decision whether to actually do it)
max latency: once it is reached, app engine ALWAYS starts a new instance.

There are no free instances, at least not directly. Since you have 28 free 
instance hours per day, you can run one instance for free during all of the 
day though, and another one for a few hours. Or you can run 14 instances 
for 2 hours.

If you exceed the daily 28h-limit on a regular basis, you should absolutely 
get discounted instance hours since they are 0.5$ instead of 0.8$ (0.25 
instead of 0.4 right now). You have to calculate the cost of each unused 
discounted instance hour as 0.5$ and the cost of each full-price instance 
hour (which could have been a discounted unit) as 0.3$. Or in other words: 
It is better to buy 10 discounted hours too much than buying 20 too little.

This is my personal understanding of the matter. If I am wrong, please 
correct me.

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



Re: [google-appengine] AssertionErrors from URLFetch RPCs

2011-11-14 Thread Greg Darke (Google)
Can you please add the full stack trace?

And if it is repeatable either a code snippet or an explanation of
what your program was doing when the exception occured.

On 14 November 2011 18:29, someone1  wrote:
> I am continunously getting the following error for a segment of code
> that has been working fine until just now:
>
> ...
>    result = rpc.get_result()
>  File "/base/python27_runtime/python27_lib/versions/1/google/
> appengine/api/apiproxy_stub_map.py", line 589, in get_result
>    self.check_success()
>  File "/base/python27_runtime/python27_lib/versions/1/google/
> appengine/api/apiproxy_stub_map.py", line 556, in check_success
>    self.wait()
>  File "/base/python27_runtime/python27_lib/versions/1/google/
> appengine/api/apiproxy_stub_map.py", line 530, in wait
>    assert self.__rpc.state != apiproxy_rpc.RPC.IDLE, repr(self.state)
> AssertionError: 0
>
> Is this an issue I can resolve or an AppEngine thing? My code runs in
> a backend with python27 (threadsafe: false)
>
> Thanks,
> Prateek
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



[google-appengine] Re: Instance hours reduction strategies

2011-11-14 Thread Ron
I've set a the number of discounted instance hours, but there is no
change in the billing screens, when does it kick in?

Thanks
Ron

On Nov 11, 12:18 am, "Gregory D'alesandre"  wrote:
> We wrote an article to help with 
> this:http://code.google.com/appengine/articles/managing-resources.html
>
> The main things to do are:
> - Figure out an appropriate value for Max Idle Instances
> - Use concurrent requests
> - Use discounted instance hours which are 37.5% cheaper but you need to
> pre-commit to a certain number per week
>
> Hope that helps!
>
> Greg
>
>
>
>
>
>
>
> On Thu, Nov 10, 2011 at 1:09 PM, Ron  wrote:
> > Has anyone got good tips for reducing the number of frontend instance
> > hours?
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine?hl=en.

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



[google-appengine] Can I use set in Appengine?

2011-11-14 Thread Max
Hi,
I have a list of many elements and I want to delete the duplicates and sort 
it alphabetically.
This is my code.

set(tweetlist)
tweetlist.sort()
print tweetlist

But set() is not working. Have I to do something different in appengine? 
Have I to import something?

Thanks

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



[google-appengine] Re: AssertionErrors from URLFetch RPCs

2011-11-14 Thread someone1
0Traceback (most recent call last):  File "/base/python27_runtime/
python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511,
in __call__    rv = self.handle_exception(request, response, e)  File
"/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/
webapp2.py", line 1505, in __call__    rv =
self.router.dispatch(request, response)  File "/base/python27_runtime/
python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253,
in default_dispatcher    return route.handler_adapter(request,
response)  File "/base/python27_runtime/python27_lib/versions/
third_party/webapp2-2.3/webapp2.py", line 1077, in __call__    return
handler.dispatch()  File "/base/python27_runtime/python27_lib/versions/
third_party/webapp2-2.3/webapp2.py", line 547, in dispatch    return
self.handle_exception(e, self.app.debug)  File "/base/python27_runtime/
python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545,
in dispatch    return method(*args, **kwargs)  File "/base/
python27_runtime/python27_lib/versions/1/google/appengine/ext/deferred/
deferred.py", line 289, in post    run(self.request.body)  File "/base/
python27_runtime/python27_lib/versions/1/google/appengine/ext/deferred/
deferred.py", line 131, in run    return func(*args, **kwds)  File "/
base/data/home/apps/s~referabuyer/aggregator.354671765578034008/
referabuyer/deferred.py", line 50, in downloadAllListingsBySeller   
to_put = saveItems(rpc, page, salt, name, downloadAllListingsBySeller,
bulk_size, after)  File "/base/data/home/apps/s~referabuyer/aggregator.
354671765578034008/referabuyer/deferred.py", line 118, in saveItems   
result = rpc.get_result()   File "/base/python27_runtime/python27_lib/
versions/1/google/appengine/api/apiproxy_stub_map.py", line 589, in
get_result    self.check_success()  File "/base/python27_runtime/
python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py",
line 556, in check_success    self.wait()  File "/base/
python27_runtime/python27_lib/versions/1/google/appengine/api/
apiproxy_stub_map.py", line 530, in wait    assert self.__rpc.state !=
apiproxy_rpc.RPC.IDLE, repr(self.state)AssertionError: 0

I was downloading from eBay's API. I set a couple pages to download
and then start iterating through them to parse out. I defer tasks to a
backend to download from eBay's API quickly. However, I should note
that in this test there was only 1 task in queue and nothing else was
going on.

Thanks,
Prateek
On Nov 14, 8:29 am, "Greg Darke (Google)" 
wrote:
> Can you please add the full stack trace?
>
> And if it is repeatable either a code snippet or an explanation of
> what your program was doing when the exception occured.
>
> On 14 November 2011 18:29, someone1  wrote:
>
>
>
>
>
>
>
> > I am continunously getting the following error for a segment of code
> > that has been working fine until just now:
>
> > ...
> >    result = rpc.get_result()
> >  File "/base/python27_runtime/python27_lib/versions/1/google/
> > appengine/api/apiproxy_stub_map.py", line 589, in get_result
> >    self.check_success()
> >  File "/base/python27_runtime/python27_lib/versions/1/google/
> > appengine/api/apiproxy_stub_map.py", line 556, in check_success
> >    self.wait()
> >  File "/base/python27_runtime/python27_lib/versions/1/google/
> > appengine/api/apiproxy_stub_map.py", line 530, in wait
> >    assert self.__rpc.state != apiproxy_rpc.RPC.IDLE, repr(self.state)
> > AssertionError: 0
>
> > Is this an issue I can resolve or an AppEngine thing? My code runs in
> > a backend with python27 (threadsafe: false)
>
> > Thanks,
> > Prateek
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/google-appengine?hl=en.

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



[google-appengine] Re: AssertionErrors from URLFetch RPCs

2011-11-14 Thread someone1
Oh, I found out what went wrong. I had inadvertently deleted a line of
code to kick of the download before I added the rpc object to my list
of rpcs. Sorry for the confusion, must have been too tired to notice
last night.

Thanks,
Prateek

On Nov 14, 10:00 am, someone1  wrote:
> 0Traceback (most recent call last):  File "/base/python27_runtime/
> python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511,
> in __call__    rv = self.handle_exception(request, response, e)  File
> "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/
> webapp2.py", line 1505, in __call__    rv =
> self.router.dispatch(request, response)  File "/base/python27_runtime/
> python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253,
> in default_dispatcher    return route.handler_adapter(request,
> response)  File "/base/python27_runtime/python27_lib/versions/
> third_party/webapp2-2.3/webapp2.py", line 1077, in __call__    return
> handler.dispatch()  File "/base/python27_runtime/python27_lib/versions/
> third_party/webapp2-2.3/webapp2.py", line 547, in dispatch    return
> self.handle_exception(e, self.app.debug)  File "/base/python27_runtime/
> python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545,
> in dispatch    return method(*args, **kwargs)  File "/base/
> python27_runtime/python27_lib/versions/1/google/appengine/ext/deferred/
> deferred.py", line 289, in post    run(self.request.body)  File "/base/
> python27_runtime/python27_lib/versions/1/google/appengine/ext/deferred/
> deferred.py", line 131, in run    return func(*args, **kwds)  File "/
> base/data/home/apps/s~referabuyer/aggregator.354671765578034008/
> referabuyer/deferred.py", line 50, in downloadAllListingsBySeller
> to_put = saveItems(rpc, page, salt, name, downloadAllListingsBySeller,
> bulk_size, after)  File "/base/data/home/apps/s~referabuyer/aggregator.
> 354671765578034008/referabuyer/deferred.py", line 118, in saveItems
> result = rpc.get_result()   File "/base/python27_runtime/python27_lib/
> versions/1/google/appengine/api/apiproxy_stub_map.py", line 589, in
> get_result    self.check_success()  File "/base/python27_runtime/
> python27_lib/versions/1/google/appengine/api/apiproxy_stub_map.py",
> line 556, in check_success    self.wait()  File "/base/
> python27_runtime/python27_lib/versions/1/google/appengine/api/
> apiproxy_stub_map.py", line 530, in wait    assert self.__rpc.state !=
> apiproxy_rpc.RPC.IDLE, repr(self.state)AssertionError: 0
>
> I was downloading from eBay's API. I set a couple pages to download
> and then start iterating through them to parse out. I defer tasks to a
> backend to download from eBay's API quickly. However, I should note
> that in this test there was only 1 task in queue and nothing else was
> going on.
>
> Thanks,
> Prateek
> On Nov 14, 8:29 am, "Greg Darke (Google)" 
> wrote:
>
>
>
>
>
>
>
> > Can you please add the full stack trace?
>
> > And if it is repeatable either a code snippet or an explanation of
> > what your program was doing when the exception occured.
>
> > On 14 November 2011 18:29, someone1  wrote:
>
> > > I am continunously getting the following error for a segment of code
> > > that has been working fine until just now:
>
> > > ...
> > >    result = rpc.get_result()
> > >  File "/base/python27_runtime/python27_lib/versions/1/google/
> > > appengine/api/apiproxy_stub_map.py", line 589, in get_result
> > >    self.check_success()
> > >  File "/base/python27_runtime/python27_lib/versions/1/google/
> > > appengine/api/apiproxy_stub_map.py", line 556, in check_success
> > >    self.wait()
> > >  File "/base/python27_runtime/python27_lib/versions/1/google/
> > > appengine/api/apiproxy_stub_map.py", line 530, in wait
> > >    assert self.__rpc.state != apiproxy_rpc.RPC.IDLE, repr(self.state)
> > > AssertionError: 0
>
> > > Is this an issue I can resolve or an AppEngine thing? My code runs in
> > > a backend with python27 (threadsafe: false)
>
> > > Thanks,
> > > Prateek
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "Google App Engine" group.
> > > To post to this group, send email to google-appengine@googlegroups.com.
> > > To unsubscribe from this group, send email to 
> > > google-appengine+unsubscr...@googlegroups.com.
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/google-appengine?hl=en.

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



[google-appengine] Re: Can I use set in Appengine?

2011-11-14 Thread Tim Hoffman
Hi

If your using Python 2.5 then you need to import the sets module.

>>> from sets import Set
>>> Set([1,2,1,2,4])
Set([1, 2, 4])
>>> 

This code will also work in 2.7

Though in 2.7 you have the set type builtin.

Rgds

Tim


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



[google-appengine] Re: Yaml addressing and template with GAE is not working ?

2011-11-14 Thread Tim Hoffman
Static files (mapped by the static handler) are not accessible from your 
application code.

The static files are handled by different infrastructure.  You will need to 
deploy a second copy 
one for your application code access and one for static handler.

Its always been this way.  

Use a symlink in your project folder, rather than keeping two copies 
locally.

T

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



[google-appengine] Re: Can I use set in Appengine?

2011-11-14 Thread Max
It's not working for me.
The code:

from sets import Set
(..)
Set(tweetlist)
tweetlist.sort()
print tweetlist

The results:

[u'1001storieRoma', u'3zoOozq8', u'6PierC9', u'ABelal10', u'ASRoma_1927', 
u'ASRoma_1927', u'ASRoma_1927', u'AcoSoegono', u'AdiCuur', u'AdistaAdinda', 
u'AleSCCP', u'Alpax93', u'AndreaGirvasi', u'AndreaGirvasi', u'AndreaLaureti', 
u'AngeloMarolla', u'AnnameryZA', u'Aquismaia21', u'Arianthorn', u'ArsAas', 
u'Assemotti', u'Baressobastia', u'Barz_O', u'Beamikyb', u'BhargaWisnawa', 
u'BoDherar', u'BonHakkinen', u'BrickView', u'Budicesc', u'BuonAndrew', 
u'Burziga', u'C4224', u'CalcioBlogLive', u'CalcioBlogLive', u'CamillaSpinelli', 
u'CarlaTrudu', u'ChenguGold', u'Cicciotosto', u'ClaudiaBorry', u'DanyRecchia', 
u'Darko_8_', u'Darko_8_', u'DaveSaveriano', u'Davide_Martelli', 
u'Davide_Martelli', u'Dborruto', u'DeadCatDeadRat', u'DemonBrando', 
u'DemonBrando', u'DiSalviaMichele', u'Di_Elle', u'Di_Elle', u'Di_Elle', 
u'Di_Elle', u'Di_Elle', u'Di_Elle', u'Di_Elle', u'Di_Elle', u'Di_Elle', 
u'Di_Elle', u'Di_Elle', u'Di_Elle', u'Di_Elle', u'DianaDionisioG', u'DjSekou', 
u'EmDeFra', u'EmanueleMelfi', u'Er_capo5', u'ErikCocoTomo', u'Erik_lamela_', 
u'FeDeShh', u'FedeFede_', u'FedericaLago', u'Ferdinando_R', u'Filver93', 
u'FiqiAinur', u'Fra__Asr', u'Francesca_LG', u'Frau87', u'Frau87', u'Frau87', 
u'Frau87', u'FunkyKovael', u'GIOVANNI_N0', u'Gabriella_Guida', u'Giaima', 
u'Giugia89', u'Giulia_B34', u'Giulia__asr', u'Giulia__asr', u'Giuseppecaboni', 
u'GregMY', u'GretaFaccani', u'Gsateeh', u'Hamod_D', u'Hellii4', 
u'HudsonKnedyGirl', u'Ilya_Kam', u'Irishtotti', u'Itz_Simple', u'Itz_Simple', 
u'J_Stonebraker', u'J_Stonebraker', u'Jack_Bauer1978', u'Jack_Bauer1978', 
u'JuJuAlmal', u'JuJuAlmal', u'JuJuAlmal', u'Kayingi', u'LAROMA24', u'LAROMA24', 
u'LAROMA24', u'LAROMA24', u'LAROMA24', u'LUTP', u'LUTP', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', 
u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRomaSiamoNoi', u'LaRom

[google-appengine] Ancestor queries / indexes

2011-11-14 Thread johnP
My data currently on MS is organized into entities.
  - For example, let's say that each Organization is it's own entity
group.

Most of my queries are within an entity/organization.  An example of a
typical query is:
 - Employee.all().filter('organization =', org).filter('position =',
manager).fetch(1000)

This same query can also be done using an ancestor query:
 - Employee.all().ancestor(org_key).filter('position =',
manager).fetch(1000)

The first version of the query does not require a custom index, but
the second version does.

My questions:
1.  Will moving from the first version to the the second version of
the query require adding custom indexes? Or am I missing something?
2.  Clarification on Strong Consistency in HR:  Is it necessary to use
the ancestor() operator, or is simply querying within an entity group
strongly consistent?  My assumption has been that for queries that
must be strongly consistent, it will be necessary to migrate from the
first format to the second format (increasing the number of custom
indexes I need to carry).  Is this assumption correct?

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



[google-appengine] Re: Help resolve massive performance regression in 2.7 vs 2.5 runtime

2011-11-14 Thread Pol
Hi Brian,

> > So on December 1st, the 50% discount for front-instances is gone. The
> > idea is to compensate by switching to Python 2.7 with multithreading,
> > but it looks like at this point it's a lose-lose situation: it runs
> > more requests at the same time, but they take longer. We're mid-
> > November already, do you guys think you'll have all of this working
> > perfectly within 2 weeks?
>
> No, the issues with concurrent requests won't be fixed by the end of November.
>
> But note that concurrent requests will *not* improve the utilization
> of CPU-bound requests. Running multiple threads on the same CPU just
> proportionally slows each thread down.

That doesn't make sense: apps do a mix of CPU stuff and RPC stuff (and
possibly URL requests). What's the points of concurrent requests if it
slows down the CPU stuff while allowing to parallelize your RPC calls?
The end result will be the same number of instance as requests end up
taking longer. Isn't the scheduler supposed to watch all this and
ensure the CPU on each physical machine is not saturated?

Only apps that do long poll URL requests and barely use the CPU would
benefit of concurrent requests then.

We were told: don't worry so much about hours-based pricing, just wait
for 2.7 runtime, it'll have concurrent requests, it'll compensate
things. Clearly that doesn't work as promised if just turning
threadsafe ON makes a 2 seconds requests turn into a 30-60 seconds
one: the scheduler is not doing the right thing.

It seems what you need is a per WSGIApplication instance control of
the concurrent setting instead of global one, so you can turn it on
only where it makes sense.

Finally, no matter what, concurrent or not, there's still a problem as
2.7 runtime appears slower than 2.5 in this simple empirical test. I'm
starting to suspect you are using the 2.7 transition as a opportunity
to run more virtual instances per physical machine.

- Pierre

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



[google-appengine] Re: BlobStoreService.createUploadUrl(String url) problem

2011-11-14 Thread Drew Spencer
Just wanted to say that I also have this problem. I'm using the workaround 
as described in the stackoverflow solution, but it would be nice to know 
why this is happening.

More people must be having this problem, surely?

Drew

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



[google-appengine] XMPP getPresence() deprecated in 1.5.5... aaaaargh!

2011-11-14 Thread Rori Stumpf
I see XMPP getPresence() has been deprecated in favor of unnecessarily
complicated (for the task of checking presence) XMPP postbacks... so
now I have to build a little subsystem to track and maintain user
state, when state could be detected with 1 simple call in earlier GAE
versions. I don't want to catch and inspect every XMPP state change
from all users - that is a waste of billable resources.

All I want is to check, when necessary, that the user is present or
not. What was wrong with the code below? How about keeping it
simple... as with previous versions?

if (xmpp.getPresence(jid).isAvailable()) {
// do stuff
}

Working around the limitations of GAE is becoming increasingly
frustrating. Call me cynical, but all this deprecation does is
increase billable usage and create unnecessary code.

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



Re: [google-appengine] copying data from appengine datastore admin to my dev server. failed with status 401

2011-11-14 Thread Greg Tracy

It's probably worth adding one more detail. I can't access the Datastore 
Admin when I'm logged in with app's owner account (I think this is a known 
bug). I can only access the admin page from another developer account. 

That may be contributing to the access problem.

Thoughts?

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



Re: [google-appengine] Re: Help resolve massive performance regression in 2.7 vs 2.5 runtime

2011-11-14 Thread Brian Quinlan
Hi Pierre,

On Tue, Nov 15, 2011 at 3:19 AM, Pol  wrote:
> Hi Brian,
>
>> > So on December 1st, the 50% discount for front-instances is gone. The
>> > idea is to compensate by switching to Python 2.7 with multithreading,
>> > but it looks like at this point it's a lose-lose situation: it runs
>> > more requests at the same time, but they take longer. We're mid-
>> > November already, do you guys think you'll have all of this working
>> > perfectly within 2 weeks?
>>
>> No, the issues with concurrent requests won't be fixed by the end of 
>> November.
>>
>> But note that concurrent requests will *not* improve the utilization
>> of CPU-bound requests. Running multiple threads on the same CPU just
>> proportionally slows each thread down.
>
> That doesn't make sense: apps do a mix of CPU stuff and RPC stuff (and
> possibly URL requests). What's the points of concurrent requests if it
> slows down the CPU stuff while allowing to parallelize your RPC calls?

This pattern (a mix of CPU use and RPC calls) will benefit from
concurrent requests. I was writing about what I understood to be your
login example.

Presumably it does a single datastore read to access user information
(taking 40ms of so) and then spends 1 seconds doing cryptography.

> The end result will be the same number of instance as requests end up
> taking longer. Isn't the scheduler supposed to watch all this and
> ensure the CPU on each physical machine is not saturated?
>
> Only apps that do long poll URL requests and barely use the CPU would
> benefit of concurrent requests then.
>
> We were told: don't worry so much about hours-based pricing, just wait
> for 2.7 runtime, it'll have concurrent requests, it'll compensate
> things. Clearly that doesn't work as promised if just turning
> threadsafe ON makes a 2 seconds requests turn into a 30-60 seconds
> one: the scheduler is not doing the right thing.

Yes, these large latency increases are a bug:
http://code.google.com/p/googleappengine/issues/detail?id=6323

> It seems what you need is a per WSGIApplication instance control of
> the concurrent setting instead of global one, so you can turn it on
> only where it makes sense.
>
> Finally, no matter what, concurrent or not, there's still a problem as
> 2.7 runtime appears slower than 2.5 in this simple empirical test. I'm
> starting to suspect you are using the 2.7 transition as a opportunity
> to run more virtual instances per physical machine.

That's not the case. The Python 2.7 runtime is slower than the Python
2.5 runtime in some cases and faster in others. We aren't publicizing
the reasons why at this point.

Cheers,
Brian

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

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



[google-appengine] Re: Since Monday, these simple SQL operations translate to expensive DataStore operations, why?

2011-11-14 Thread Denis Volokhovskiy
Hi,

You should use sharded counter rather then count() function.
count() simply traverses all entities of the kind until reaches the last, 
so scales linearly with you data size.
I suppose you entities count simply raised much since Monday, so you have 
noticed that.

datastore is different...

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



Re: [google-appengine] copying data from appengine datastore admin to my dev server. failed with status 401

2011-11-14 Thread Greg Tracy

I found the issue I had been prefixing my app ID in the 
appengine_config.py file with 's~', which is the norm for bulkloader 
operations even though it isn't documented. It looks like that prefix isn't 
required in this case.


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



Re: [google-appengine] Re: Datastore operations are seriously expensive

2011-11-14 Thread Jeff Schnitzer
On Mon, Nov 14, 2011 at 4:27 AM, Volker Thiel  wrote:

> > If you're churning through your datastore ops because you have 100
> > indexes, you would have churned through your CPU quota before.  The
> > problem is you're trying to update too many indexes.  The only
> > solution is "don't".
>
> Not true. I had an application that I optimized in CPU usage and it
> was well below the limits every day. I only had two entities with a
> few indexes each (three and four respectively). The latter is updated
> frequently (several times a day). I (currently) have about 4000
> entities which required approximately 20 write operations on each
> update. This was no problem under the old billing model!
> I threw out some of the indexes but on the cost of usability. Now I'm
> down to 8 write ops for a new entity and 6 for an update. I got those
> figures from the dev environment, but what I'd really like to see is
> read and write ops in the production logs, since the new billing isn't
> focused around CPU cycles anymore. My two cents.
>

I don't mean to argue that the price hasn't gone up... just that it bills
more or less the same way as before (which hid datastore ops in
"api_cpu_ms").  They just tripled (or more) the price for these ops.
 Sounds like your app is in the margin of what was cheap before and
expensive now.

Read and write ops in the production logs would be rad.  Is there an issue
I can star?

Jeff

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



[google-appengine] I can't disable the billing on my application

2011-11-14 Thread Alexandre Vivien
Hello,

I have a test application (I am the billing administrator on this app)
and I want to disable billing but the "Disable Billing" button does
not appear in the "Billing Settings" page.
Is it normal? How can I disable the billing on this application ?
Thanks.

Regards,
Alexandre Vivien

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



[google-appengine] Re: Can I use set in Appengine?

2011-11-14 Thread pdknsk
http://shell.appspot.com/

>>> set([1,2,3,4,5,1,2])
set([1, 2, 3, 4, 5])

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



Re: [google-appengine] Re: Yaml addressing and template with GAE is not working ?

2011-11-14 Thread karthik valsatech
On Mon, Nov 14, 2011 at 10:56 AM, Tim Hoffman  wrote:

> Static files (mapped by the static handler) are not accessible from your
> application code.
>
> The static files are handled by different infrastructure.  You will need
> to deploy a second copy
> one for your application code access and one for static handler.
>
> Its always been this way.
>
> Use a symlink in your project folder, rather than keeping two copies
> locally.
>
> T
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/tkoAtyiPkakJ.
>
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] Since Monday, these simple SQL operations translate to expensive DataStore operations, why?

2011-11-14 Thread karthik valsatech
On Tue, Nov 8, 2011 at 4:37 PM, Alberto Valaz wrote:

> I noticed that a number of simple SQL operations that my application
> is dependent on generate very high quota usage.
> Basically, one run of the three operations listed below are enough to
> use up my daily free quota!!
>
>
> I assume I am doing something very wrong but I am not sure how to fix
> it. Could anyone please give me
>
>  thank you
>
>
> PS. an interesting twist is that the below code worked just fine under
> the old payment model.
>
>
> -
> // The table Something below has around 50k rows. No indexes are used.
>
> PersistenceManager pm = ...
>
>
> // Select COUNT(*) from Something
> Query q = pm.newQuery(Something.Class, null);
> q.setResult("count(this)");
> q.execute();
>
>
>
> // select COUNT(*) from Something where 1234 > feild
> Query q = pm.newQuery(Something.Class, "this.field > field");
> q.declareParameters("Long field");
> q.setResult("count(this)");
> q.executeWithArray(1234);
>
>
> // select * from Something order total DESC
> Query q = pm.newQuery(Something.Class, null);
> q.setOrdering("total DESC");
> q.execute();
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



Re: [google-appengine] Re: Can I use set in Appengine?

2011-11-14 Thread Matt Jibson
>From http://docs.python.org/library/stdtypes.html#set-types-set-frozenset:
"A set object is an unordered collection"

You can use set() to filter out duplicates. But then you need to
convert back to a list to be able to sort:
result = sorted(list(set(tweetlist)))

On Mon, Nov 14, 2011 at 2:22 PM, pdknsk  wrote:
> http://shell.appspot.com/
>
 set([1,2,3,4,5,1,2])
> set([1, 2, 3, 4, 5])
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



[google-appengine] Re: KeyProperty and repeated=True

2011-11-14 Thread Owen Nelson
Ok, I think I see where the disconnect is.
KeyProperty only accepts instances of model.Key (which is fair). If I want 
to limit my property on my model to only accept certain kinds of keys, I 
should enforce this requirement through a validator.

Unless there's a better way, I think I'm all set!

Regards,
Owen Nelson

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



Re: [google-appengine] Re: Can I use set in Appengine?

2011-11-14 Thread Matt Jibson
To improve my previous post: no need to use list(). You can do
sorted(set(tweetlist)).

On Mon, Nov 14, 2011 at 2:29 PM, Matt Jibson  wrote:
> From http://docs.python.org/library/stdtypes.html#set-types-set-frozenset:
> "A set object is an unordered collection"
>
> You can use set() to filter out duplicates. But then you need to
> convert back to a list to be able to sort:
> result = sorted(list(set(tweetlist)))
>
> On Mon, Nov 14, 2011 at 2:22 PM, pdknsk  wrote:
>> http://shell.appspot.com/
>>
> set([1,2,3,4,5,1,2])
>> set([1, 2, 3, 4, 5])
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>>
>

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



RE: [google-appengine] I can't disable the billing on my application

2011-11-14 Thread Brandon Wirtz
Make sure you don't have always on set. And that you aren't over free quota
on storage.


-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Alexandre Vivien
Sent: Monday, November 14, 2011 1:14 PM
To: Google App Engine
Subject: [google-appengine] I can't disable the billing on my application

Hello,

I have a test application (I am the billing administrator on this app) and I
want to disable billing but the "Disable Billing" button does not appear in
the "Billing Settings" page.
Is it normal? How can I disable the billing on this application ?
Thanks.

Regards,
Alexandre Vivien

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


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



RE: [google-appengine] Re: Help resolve massive performance regression in 2.7 vs 2.5 runtime

2011-11-14 Thread Brandon Wirtz
Half sized instances, so they may be half speed.

-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Pol
Sent: Sunday, November 13, 2011 9:32 AM
To: Google App Engine
Subject: [google-appengine] Re: Help resolve massive performance regression
in 2.7 vs 2.5 runtime

Hi Brian,

It helps, it's now at ~5s instead, but still at least 2x slower than on the
2.5 runtime.

So on December 1st, the 50% discount for front-instances is gone. The idea
is to compensate by switching to Python 2.7 with multithreading, but it
looks like at this point it's a lose-lose situation: it runs more requests
at the same time, but they take longer. We're mid- November already, do you
guys think you'll have all of this working perfectly within 2 weeks? The 1.6
SDK which actually allows to run 2.7 locally was just released, so we're
only starting to test now. Seems to me deferring the payment change 1 more
month to January 1st 2012 wouldn't hurt :)

On Nov 12, 10:09 pm, Brian Quinlan  wrote:
> Hi Pol,
>
> Thanks for getting back to me.
>
> On Sun, Nov 13, 2011 at 4:50 PM, Pol  wrote:
> > Hi Brian,
>
> > threadsafe is "true"
>
> There is a known issue where concurrent requests (enabled with
> threadsafe) can be much slower than non-concurrent requests, 
> especially if the request is CPU-bound.
>
> You might want to set threadsafe to "false" and see if that fixes the
problem.
>
> Cheers,
> Brian
>
>
>
>
>
>
>
> > Here's an example password_hash for an original 8 characters password:
>
> > $2a$04$cbM2uHwDphIG3jFFRpq1mui5aVjevnDUwhvQ77S/WG/qvJMpiXAL6
>
> > On Nov 12, 6:58 pm, Brian Quinlan  wrote:
> >> Hi Pol,
>
> >> On Sun, Nov 13, 2011 at 1:48 PM, Pol  wrote:
> >> > Hi,
>
> >> > Since switching to 2.7 runtime, logging in 
> >> > tohttp://www.everpix.com went from about a second to anywhere 
> >> > from 15s to 60s. I tracked it down to this single password checking
line:
>
> >> > from bcrypt import bcrypt
> >> > bcrypt.hashpw(password, self.password_hash) == self.password_hash
>
> >> What value are you using for "threadsafe" in your app.yaml?
>
> >> How large is self.password_hash?
>
> >> Cheers,
> >> Brian
>
> >> > This comes from "a native Python implementation of the py-bcrypt 
> >> > package fromhttp://www.mindrot.org/projects/py-bcrypt/"; grabbed 
> >> > from here:https://github.com/erlichmen/py-bcrypt.
>
> >> > So what's happening here and how can we fix this?
>
> >> > Thanks,
>
> >> > - Pol
>
> >> > --
> >> > You received this message because you are subscribed to the Google
Groups "Google App Engine" group.
> >> > To post to this group, send email to
google-appengine@googlegroups.com.
> >> > To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com.
> >> > For more options, visit this group
athttp://groups.google.com/group/google-appengine?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google
Groups "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group
athttp://groups.google.com/group/google-appengine?hl=en.

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


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



[google-appengine] URGENT: google checkout for usage i dont know where it comes from.

2011-11-14 Thread andreas schmid
dear google,

in the last few weeks you charged me for google app engine usage i don't 
actually know where its coming from.
i dont know which app is consuming this money and i actually think i don't have 
any app shows usage for this amount.

please contact me asap to clear this situation!!
Google order number: 363075622065800

thx

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



[google-appengine] Re: URGENT: google checkout for usage i dont know where it comes from.

2011-11-14 Thread andreas schmid
and seriously... start adding an appid to the charges you send! 
its not acceptable that i cant figure out why i get charged for money.

thx

On Nov 14, 2011, at 4:09 PM, andreas schmid wrote:

> dear google,
> 
> in the last few weeks you charged me for google app engine usage i don't 
> actually know where its coming from.
> i dont know which app is consuming this money and i actually think i don't 
> have any app shows usage for this amount.
> 
> please contact me asap to clear this situation!!
> Google order number: 363075622065800
> 
> thx

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



[google-appengine] Re: I can't disable the billing on my application

2011-11-14 Thread Alexandre Vivien
I'm under free quota for storage and always on is not set.
If it helps I can give my app id.

Regards,
Alexandre

On Nov 14, 11:06 pm, "Brandon Wirtz"  wrote:
> Make sure you don't have always on set. And that you aren't over free quota
> on storage.
>
>
>
>
>
>
>
> -Original Message-
> From: google-appengine@googlegroups.com
>
> [mailto:google-appengine@googlegroups.com] On Behalf Of Alexandre Vivien
> Sent: Monday, November 14, 2011 1:14 PM
> To: Google App Engine
> Subject: [google-appengine] I can't disable the billing on my application
>
> Hello,
>
> I have a test application (I am the billing administrator on this app) and I
> want to disable billing but the "Disable Billing" button does not appear in
> the "Billing Settings" page.
> Is it normal? How can I disable the billing on this application ?
> Thanks.
>
> Regards,
> Alexandre Vivien
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group 
> athttp://groups.google.com/group/google-appengine?hl=en.

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



[google-appengine] We're down hard because the payments system is failing! HELP!

2011-11-14 Thread Mike Prince
For the app yumyumlabs, we ran an entity delete process on 4m records
and it ended up eating $40 of our budget in a few minutes (36M
database writes!)

When we tried to increase our budget the payments system is failing
with:

Hello michael prince,

Google Services has cancelled your order.  You have not been charged.
Reason: Other (describe below)
Comments from Google Services: "This inactive subscription has been
canceled"
 Order date: Nov 14, 2011 1:39 PM PST
 Google order number: 810629956315305
 Shipping Status QtyItem  Price
  Cancelled Items1  App Engine Budget  -  Maximum weekly budget for
application 'yumyumlabs', including applicable tax. $0.00
Tax (CA) :  $0.00
Total :
$0.00   now
$740.00 per week
Order cancelled - Your card was not charged



Now all our requests are failing and the billing system keeps
rejecting our payments!  This system supports a featured app on
android with up to 30k new users a day.  This is bad.

HELP!

Thanks,

Mike



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



[google-appengine] Question about Write Ops cost for updating an entity with changed properties

2011-11-14 Thread Alex Epshteyn
Alfred wrote an excellent explanation of how write ops are charged
( http://groups.google.com/group/google-appengine/msg/ca47eb7678d50372?
).

My question is how does the the datastore determine whether a property
has actually changed - does it compare the new value to the saved
value or does the python db.Model class mark a property as changed
every time it's assigned (even if the values are the same).

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



[google-appengine] Re: URGENT: google checkout for usage i dont know where it comes from.

2011-11-14 Thread andreas schmid
hey david,

are you working for google or did you just answer me bc u saw my post and 
responded me privately instead of answering to the list??

if i set up a 2.10 amount it was for a max spend and never for a min spend!! 
i use this app for testing some stuff sometimes and i really don't see where it 
should charge me $2.10!

On Nov 14, 2011, at 4:47 PM, David wrote:

> If you enable billing, you have a minimum spend of 2.1$/week!
> 
> Am Montag, 14. November 2011 23:40:38 UTC+1 schrieb aschmid:
> really dont get it. where do the $ 2.10 come from? 
> 
> 
> On Nov 14, 2011, at 4:09 PM, andreas schmid wrote:
> 
>> dear google,
>> 
>> in the last few weeks you charged me for google app engine usage i don't 
>> actually know where its coming from.
>> i dont know which app is consuming this money and i actually think i don't 
>> have any app shows usage for this amount.
>> 
>> please contact me asap to clear this situation!!
>> Google order number: 363075622065800
>> 
>> thx
> 

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



Re: [google-appengine] Re: URGENT: google checkout for usage i dont know where it comes from.

2011-11-14 Thread Gregory D'alesandre
Hi Andreas,

If you have billing enabled App Engine will now charge you $2.10/week as a
minimum spend.  Above $2.10 we will charge you for what you use.  If you
don't need to go beyond the free quota, it might make more sense to disable
billing on your application.  More information can be found here:
http://code.google.com/appengine/kb/billing.html#nine_dollar_month_fee_minimum_spend

Greg D'Alesandre
Senior Product Manager, Google App Engine

On Mon, Nov 14, 2011 at 2:53 PM, andreas schmid wrote:

> hey david,
>
> are you working for google or did you just answer me bc u saw my post and
> responded me privately instead of answering to the list??
>
> if i set up a 2.10 amount it was for a max spend and never for a min
> spend!!
> i use this app for testing some stuff sometimes and i really don't see
> where it should charge me $2.10!
>
> On Nov 14, 2011, at 4:47 PM, David wrote:
>
> If you enable billing, you have a minimum spend of 2.1$/week!
>
> Am Montag, 14. November 2011 23:40:38 UTC+1 schrieb aschmid:
>
>> really dont get it. where do the $ 2.10 come from?
>>
>>
>> On Nov 14, 2011, at 4:09 PM, andreas schmid wrote:
>>
>> dear google,
>>
>> in the last few weeks you charged me for google app engine usage i don't
>> actually know where its coming from.
>> i dont know which app is consuming this money and i actually think i
>> don't have any app shows usage for this amount.
>>
>> please contact me asap to clear this situation!!
>> Google order number: *363075622065800*
>>
>> thx
>>
>>
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] Re: URGENT: google checkout for usage i dont know where it comes from.

2011-11-14 Thread andreas schmid
i figured that out right now.
anyway i enabled billing time ago for this appid bc i needed the blobstore. 
now the blobstore does not need the billing enabled anymore and this app was a 
'forgotten' one of mine. 

i actually really think its uncool from your side to charge for this app. 
and you should start adding an appid to the google checkout receipt bc there is 
no way to understand what you are charging for. 

thx for the reply.

On Nov 14, 2011, at 5:07 PM, Gregory D'alesandre wrote:

> Hi Andreas,
> 
> If you have billing enabled App Engine will now charge you $2.10/week as a 
> minimum spend.  Above $2.10 we will charge you for what you use.  If you 
> don't need to go beyond the free quota, it might make more sense to disable 
> billing on your application.  More information can be found here: 
> http://code.google.com/appengine/kb/billing.html#nine_dollar_month_fee_minimum_spend
> 
> Greg D'Alesandre
> Senior Product Manager, Google App Engine
> 
> On Mon, Nov 14, 2011 at 2:53 PM, andreas schmid  wrote:
> hey david,
> 
> are you working for google or did you just answer me bc u saw my post and 
> responded me privately instead of answering to the list??
> 
> if i set up a 2.10 amount it was for a max spend and never for a min spend!! 
> i use this app for testing some stuff sometimes and i really don't see where 
> it should charge me $2.10!
> 
> On Nov 14, 2011, at 4:47 PM, David wrote:
> 
>> If you enable billing, you have a minimum spend of 2.1$/week!
>> 
>> Am Montag, 14. November 2011 23:40:38 UTC+1 schrieb aschmid:
>> really dont get it. where do the $ 2.10 come from? 
>> 
>> 
>> On Nov 14, 2011, at 4:09 PM, andreas schmid wrote:
>> 
>>> dear google,
>>> 
>>> in the last few weeks you charged me for google app engine usage i don't 
>>> actually know where its coming from.
>>> i dont know which app is consuming this money and i actually think i don't 
>>> have any app shows usage for this amount.
>>> 
>>> please contact me asap to clear this situation!!
>>> Google order number: 363075622065800
>>> 
>>> thx
>> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.

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



Re: [google-appengine] Re: URGENT: google checkout for usage i dont know where it comes from.

2011-11-14 Thread Gregory D'alesandre
Thanks for the feedback, we are currently looking into adding the appid
into the receipt.

Greg

On Mon, Nov 14, 2011 at 3:24 PM, andreas schmid wrote:

> i figured that out right now.
> anyway i enabled billing time ago for this appid bc i needed the
> blobstore.
> now the blobstore does not need the billing enabled anymore and this app
> was a 'forgotten' one of mine.
>
> i actually really think its uncool from your side to charge for this app.
> and you should start adding an appid to the google checkout receipt bc
> there is no way to understand what you are charging for.
>
> thx for the reply.
>
> On Nov 14, 2011, at 5:07 PM, Gregory D'alesandre wrote:
>
> Hi Andreas,
>
> If you have billing enabled App Engine will now charge you $2.10/week as a
> minimum spend.  Above $2.10 we will charge you for what you use.  If you
> don't need to go beyond the free quota, it might make more sense to disable
> billing on your application.  More information can be found here:
> http://code.google.com/appengine/kb/billing.html#nine_dollar_month_fee_minimum_spend
>
> Greg D'Alesandre
> Senior Product Manager, Google App Engine
>
> On Mon, Nov 14, 2011 at 2:53 PM, andreas schmid wrote:
>
>> hey david,
>>
>> are you working for google or did you just answer me bc u saw my post and
>> responded me privately instead of answering to the list??
>>
>> if i set up a 2.10 amount it was for a max spend and never for a min
>> spend!!
>> i use this app for testing some stuff sometimes and i really don't see
>> where it should charge me $2.10!
>>
>> On Nov 14, 2011, at 4:47 PM, David wrote:
>>
>> If you enable billing, you have a minimum spend of 2.1$/week!
>>
>> Am Montag, 14. November 2011 23:40:38 UTC+1 schrieb aschmid:
>>
>>> really dont get it. where do the $ 2.10 come from?
>>>
>>>
>>> On Nov 14, 2011, at 4:09 PM, andreas schmid wrote:
>>>
>>> dear google,
>>>
>>> in the last few weeks you charged me for google app engine usage i don't
>>> actually know where its coming from.
>>> i dont know which app is consuming this money and i actually think i
>>> don't have any app shows usage for this amount.
>>>
>>> please contact me asap to clear this situation!!
>>> Google order number: *363075622065800*
>>>
>>> thx
>>>
>>>
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] We're down hard because the payments system is failing! HELP!

2011-11-14 Thread Ikai Lan (Google)
I just checked on your app and it looks okay to me.

For anyone else having issues with this, the best place to get help is to
email the address provided in the mass email that's also available on the
billing history page. It should be appengine_update_pricing at google.
We're working through this queue as quickly as we can to help folks
transition to the new billing.

--
Ikai Lan
Developer Programs Engineer, Google App Engine
plus.ikailan.com | twitter.com/ikai



On Tue, Nov 15, 2011 at 9:40 AM, Mike Prince  wrote:

> For the app yumyumlabs, we ran an entity delete process on 4m records
> and it ended up eating $40 of our budget in a few minutes (36M
> database writes!)
>
> When we tried to increase our budget the payments system is failing
> with:
>
> Hello michael prince,
>
> Google Services has cancelled your order.  You have not been charged.
> Reason: Other (describe below)
> Comments from Google Services: "This inactive subscription has been
> canceled"
>  Order date: Nov 14, 2011 1:39 PM PST
>  Google order number: 810629956315305
>  Shipping Status QtyItem  Price
>  Cancelled Items1  App Engine Budget  -  Maximum weekly budget
> for
> application 'yumyumlabs', including applicable tax. $0.00
> Tax (CA) :  $0.00
> Total :
> $0.00   now
> $740.00 per week
> Order cancelled - Your card was not charged
>
>
>
> Now all our requests are failing and the billing system keeps
> rejecting our payments!  This system supports a featured app on
> android with up to 30k new users a day.  This is bad.
>
> HELP!
>
> Thanks,
>
> Mike
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



Re: [google-appengine] Question about Write Ops cost for updating an entity with changed properties

2011-11-14 Thread Nick Johnson
Hi Alex,

The datastore compares old values to new; there's no way for the SDK to
mark properties as modified or not.

-Nick Johnson

On Tue, Nov 15, 2011 at 9:49 AM, Alex Epshteyn  wrote:

> Alfred wrote an excellent explanation of how write ops are charged
> ( http://groups.google.com/group/google-appengine/msg/ca47eb7678d50372?
> ).
>
> My question is how does the the datastore determine whether a property
> has actually changed - does it compare the new value to the saved
> value or does the python db.Model class mark a property as changed
> every time it's assigned (even if the values are the same).
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>


-- 
Nick Johnson, Developer Programs Engineer, App Engine

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



[google-appengine] App Engine Task Queue Stored Task Bytes

2011-11-14 Thread John Wheeler
Ever since the billing change, my Task Queue Stored Task bytes sits around 
16% when idle. I have 500 megs allocated, and 16% of this is always used 
up. The problem is that it's starting to go into the red when my cron jobs 
are running and detracting from my safety margin. Can you guys please take 
a look at app ID highvolumeseller

Thanks,
John

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



Re: [google-appengine] Help resolve massive performance regression in 2.7 vs 2.5 runtime

2011-11-14 Thread Nick Johnson
No! Please, please don't do this. Obscurity is no substitute for security.

1) Bcrypt or similar is not 'overkill' no matter who you are. Users reuse
passwords, and they're entitled to the best protection you can reasonably
provide them.
2) Bcrypt is not there to protect against online attacks, it's there to
protect against offline attacks, where an attacker obtains your hashed and
salted passwords.
3) Doing "something weird" is security through obscurity. Do not base your
security on your attacker not knowing what you did. Really, really don't
just concatenate salts to the beginning or end of the password.
4) Both MD5 and SHA1 are merkle-damgard construction hashes (
http://en.wikipedia.org/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction). As
a result, the concatenation of several hashes is no more secure than the
most secure of the individual hashes.

-Nick Johnson

On Sun, Nov 13, 2011 at 2:58 PM, Brandon Wirtz  wrote:

> Unless you are protecting Medical records bcrypt is overkill if you do some
> reasonably smart things like "Failed logins from IP >9"
>
> Or, if you just do something weird to the password BEFORE you SHA it. Like
> interleave the user name in the password,  Salt1 + UpSaEsRsNwAoMrEd + Salt2
>
> Or Pick 2 Hash's   SHA(pass) + Md5(pass)
>
> Don't want to store all that string length?   Odd Characters from
> Sha(Pass+salt) + Even Characters from MD5(Pass+Salt)
>
> Uniqueness of the method is more important than the method.
>
>
>
> -Original Message-
> From: google-appengine@googlegroups.com
> [mailto:google-appengine@googlegroups.com] On Behalf Of Brian Quinlan
> Sent: Saturday, November 12, 2011 6:58 PM
> To: google-appengine@googlegroups.com
> Subject: Re: [google-appengine] Help resolve massive performance regression
> in 2.7 vs 2.5 runtime
>
> Hi Pol,
>
> On Sun, Nov 13, 2011 at 1:48 PM, Pol  wrote:
> > Hi,
> >
> > Since switching to 2.7 runtime, logging in to http://www.everpix.com
> > went from about a second to anywhere from 15s to 60s. I tracked it
> > down to this single password checking line:
> >
> > from bcrypt import bcrypt
> > bcrypt.hashpw(password, self.password_hash) == self.password_hash
>
> What value are you using for "threadsafe" in your app.yaml?
>
> How large is self.password_hash?
>
> Cheers,
> Brian
>
> > This comes from "a native Python implementation of the py-bcrypt
> > package from http://www.mindrot.org/projects/py-bcrypt/"; grabbed from
> > here: https://github.com/erlichmen/py-bcrypt.
> >
> > So what's happening here and how can we fix this?
> >
> > Thanks,
> >
> > - Pol
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>
>


-- 
Nick Johnson, Developer Programs Engineer, 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 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.



Re: [google-appengine] Re: Can I use set in Appengine?

2011-11-14 Thread Nick Johnson
You don't need to import Sets in Python 2.5.

-Nick

On Tue, Nov 15, 2011 at 2:51 AM, Tim Hoffman  wrote:

> Hi
>
> If your using Python 2.5 then you need to import the sets module.
>
> >>> from sets import Set
> >>> Set([1,2,1,2,4])
> Set([1, 2, 4])
> >>>
>
> This code will also work in 2.7
>
> Though in 2.7 you have the set type builtin.
>
> Rgds
>
> Tim
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/jbZddnsDuQgJ.
>
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>



-- 
Nick Johnson, Developer Programs Engineer, App Engine

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



[google-appengine] Re: AppStats in Python 2.7 apps

2011-11-14 Thread Mariano Benitez
I am using appstats just by editing the appengine_config.py and adding the 
builtins appstats: on, I am using webpp and django without problems.

seems to be working fine.

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



[google-appengine] Who can I contact about billing issues?

2011-11-14 Thread nacho
Today I received a charge of 2.10 in my credit card of "Appengine Charge".

I was looking my apps, and in one of them I have in my Billing History a 
charge of 2.10, the trouble is.. that my app is DISABLED!!! 

How can you charge me for having a disabled app? Is this possible?

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



RE: [google-appengine] Help resolve massive performance regression in 2.7 vs 2.5 runtime

2011-11-14 Thread Brandon Wirtz
If I know your salt, I can "De-Hash" bcrypts faster than I can any of the
"weird" combinations. Because there are libraries for doing so on ATI cards.

 

If you do something weird a script kiddie can't just pull code off the web
and attack it. 

 

You want to see who can offline crack a set of 1M users? Your bcrypt list vs
my "Weird"   You don't even have to give me the salt I'll have 10k of those
cracked in the first 72 hours.  10 to 1 odds you won't get through mine
without my source code in my life time.

 

-Brandon Wirtz

 

PS
I don't usually do the "trust me I'm far more evil" but FBI, Homeland
Security, and the CIA have been to my doorstep for things I have defeated,
documented, or built to keep from being defeated.  The first time I was in
3rd grade.

 

From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Nick Johnson
Sent: Monday, November 14, 2011 3:56 PM
To: google-appengine@googlegroups.com
Subject: Re: [google-appengine] Help resolve massive performance regression
in 2.7 vs 2.5 runtime

 

No! Please, please don't do this. Obscurity is no substitute for security.

 

1) Bcrypt or similar is not 'overkill' no matter who you are. Users reuse
passwords, and they're entitled to the best protection you can reasonably
provide them.

2) Bcrypt is not there to protect against online attacks, it's there to
protect against offline attacks, where an attacker obtains your hashed and
salted passwords.

3) Doing "something weird" is security through obscurity. Do not base your
security on your attacker not knowing what you did. Really, really don't
just concatenate salts to the beginning or end of the password.

4) Both MD5 and SHA1 are merkle-damgard construction hashes
(http://en.wikipedia.org/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction). As
a result, the concatenation of several hashes is no more secure than the
most secure of the individual hashes.

 

-Nick Johnson

 

On Sun, Nov 13, 2011 at 2:58 PM, Brandon Wirtz  wrote:

Unless you are protecting Medical records bcrypt is overkill if you do some
reasonably smart things like "Failed logins from IP >9"

Or, if you just do something weird to the password BEFORE you SHA it. Like
interleave the user name in the password,  Salt1 + UpSaEsRsNwAoMrEd + Salt2

Or Pick 2 Hash's   SHA(pass) + Md5(pass)

Don't want to store all that string length?   Odd Characters from
Sha(Pass+salt) + Even Characters from MD5(Pass+Salt)

Uniqueness of the method is more important than the method.



-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Brian Quinlan
Sent: Saturday, November 12, 2011 6:58 PM
To: google-appengine@googlegroups.com
Subject: Re: [google-appengine] Help resolve massive performance regression
in 2.7 vs 2.5 runtime


Hi Pol,

On Sun, Nov 13, 2011 at 1:48 PM, Pol  wrote:
> Hi,
>
> Since switching to 2.7 runtime, logging in to http://www.everpix.com
> went from about a second to anywhere from 15s to 60s. I tracked it
> down to this single password checking line:
>
> from bcrypt import bcrypt
> bcrypt.hashpw(password, self.password_hash) == self.password_hash

What value are you using for "threadsafe" in your app.yaml?

How large is self.password_hash?

Cheers,
Brian

> This comes from "a native Python implementation of the py-bcrypt
> package from http://www.mindrot.org/projects/py-bcrypt/"; grabbed from
> here: https://github.com/erlichmen/py-bcrypt.
>
> So what's happening here and how can we fix this?
>
> Thanks,
>
> - Pol
>
> --
> You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com
 .
> For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.
>
>

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


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





 

-- 
Nick Johnson, Developer Programs Engineer, App Engine



-- 
You received this message because you are subscribed to the Google Groups
"Google App En

[google-appengine] Re: What happened to the promised reliability improvement for email delivery?

2011-11-14 Thread pdknsk
As we've discussed on the bug report, DKIM could literally be a one
line bug fix.

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



Re: [google-appengine] Who can I contact about billing issues?

2011-11-14 Thread Gregory D'alesandre
Hi Nacho,

As it currently stands you need to disable billing in order to no longer be
billed for your app (not to disable your app).  The reason for this is that
even if your app is disabled if you have a large amount of data and we
would still need to bill for that.  This is something we will do a better
job of documenting.

Sorry for the confusion,

Greg D'Alesandre
Senior Product Manager, Google App Engine

On Mon, Nov 14, 2011 at 6:04 PM, nacho  wrote:

> Today I received a charge of 2.10 in my credit card of "Appengine Charge".
>
> I was looking my apps, and in one of them I have in my Billing History a
> charge of 2.10, the trouble is.. that my app is DISABLED!!!
>
> How can you charge me for having a disabled app? Is this possible?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/FowrMwQ44tQJ.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

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



Re: [google-appengine] Help resolve massive performance regression in 2.7 vs 2.5 runtime

2011-11-14 Thread Nick Johnson
Hi Brandon,

What you say is fine if your threat model only includes "script kiddies"
who don't have your source code. If either of those is not true - you have
an adversary with some level of independent skill, or your source code is
compromised - any method that relies on obscurity for its security will
fare very poorly.

One thing to bear in mind is that if your app is ever compromised, your
password database and/or source may be posted publicly; at that point, you
no longer have to worry about just the initial attacker, but anyone with
sufficient motivation.

Of course, using federated login like OpenID or the Users API obviates the
need to store passwords at all, making it Someone Else's Problem. :)

-Nick

On Tue, Nov 15, 2011 at 1:07 PM, Brandon Wirtz  wrote:

> If I know your salt, I can “De-Hash” bcrypts faster than I can any of the
> “weird” combinations. Because there are libraries for doing so on ATI cards.
> 
>
> ** **
>
> If you do something weird a script kiddie can’t just pull code off the web
> and attack it. 
>
> ** **
>
> You want to see who can offline crack a set of 1M users? Your bcrypt list
> vs my “Weird”   You don’t even have to give me the salt I’ll have 10k of
> those cracked in the first 72 hours.  10 to 1 odds you won’t get through
> mine without my source code in my life time.
>
> ** **
>
> -Brandon Wirtz
>
> ** **
>
> PS
> I don’t usually do the “trust me I’m far more evil” but FBI, Homeland
> Security, and the CIA have been to my doorstep for things I have defeated,
> documented, or built to keep from being defeated.  The first time I was in 3
> rd grade.
>
> ** **
>
> *From:* google-appengine@googlegroups.com [mailto:
> google-appengine@googlegroups.com] *On Behalf Of *Nick Johnson
> *Sent:* Monday, November 14, 2011 3:56 PM
>
> *To:* google-appengine@googlegroups.com
> *Subject:* Re: [google-appengine] Help resolve massive performance
> regression in 2.7 vs 2.5 runtime
>
> ** **
>
> No! Please, please don't do this. Obscurity is no substitute for security.
> 
>
> ** **
>
> 1) Bcrypt or similar is not 'overkill' no matter who you are. Users reuse
> passwords, and they're entitled to the best protection you can reasonably
> provide them.
>
> 2) Bcrypt is not there to protect against online attacks, it's there to
> protect against offline attacks, where an attacker obtains your hashed and
> salted passwords.
>
> 3) Doing "something weird" is security through obscurity. Do not base your
> security on your attacker not knowing what you did. Really, really don't
> just concatenate salts to the beginning or end of the password.
>
> 4) Both MD5 and SHA1 are merkle-damgard construction hashes (
> http://en.wikipedia.org/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction).
> As a result, the concatenation of several hashes is no more secure than the
> most secure of the individual hashes.
>
> ** **
>
> -Nick Johnson
>
> ** **
>
> On Sun, Nov 13, 2011 at 2:58 PM, Brandon Wirtz 
> wrote:
>
> Unless you are protecting Medical records bcrypt is overkill if you do some
> reasonably smart things like "Failed logins from IP >9"
>
> Or, if you just do something weird to the password BEFORE you SHA it. Like
> interleave the user name in the password,  Salt1 + UpSaEsRsNwAoMrEd + Salt2
>
> Or Pick 2 Hash's   SHA(pass) + Md5(pass)
>
> Don't want to store all that string length?   Odd Characters from
> Sha(Pass+salt) + Even Characters from MD5(Pass+Salt)
>
> Uniqueness of the method is more important than the method.
>
>
>
> -Original Message-
> From: google-appengine@googlegroups.com
> [mailto:google-appengine@googlegroups.com] On Behalf Of Brian Quinlan
> Sent: Saturday, November 12, 2011 6:58 PM
> To: google-appengine@googlegroups.com
> Subject: Re: [google-appengine] Help resolve massive performance regression
> in 2.7 vs 2.5 runtime
>
>
> Hi Pol,
>
> On Sun, Nov 13, 2011 at 1:48 PM, Pol  wrote:
> > Hi,
> >
> > Since switching to 2.7 runtime, logging in to http://www.everpix.com
> > went from about a second to anywhere from 15s to 60s. I tracked it
> > down to this single password checking line:
> >
> > from bcrypt import bcrypt
> > bcrypt.hashpw(password, self.password_hash) == self.password_hash
>
> What value are you using for "threadsafe" in your app.yaml?
>
> How large is self.password_hash?
>
> Cheers,
> Brian
>
> > This comes from "a native Python implementation of the py-bcrypt
> > package from http://www.mindrot.org/projects/py-bcrypt/"; grabbed from
> > here: https://github.com/erlichmen/py-bcrypt.
> >
> > So what's happening here and how can we fix this?
> >
> > Thanks,
> >
> > - Pol
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> > To post to this group, send email to google-appengine@googlegroups.com.
> > To unsubscribe from this group, send email to
> google-appengine+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> http://g

Re: [google-appengine] Help resolve massive performance regression in 2.7 vs 2.5 runtime

2011-11-14 Thread Stephen Buergler
It doesn't matter if you can have your ATI card up and running sooner if 
every single password attempt takes a whole lot longer to try. That is the 
main strength of bcrypt.

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



RE: [google-appengine] Help resolve massive performance regression in 2.7 vs 2.5 runtime

2011-11-14 Thread Brandon Wirtz
Nick,

 

I agree, that my threat model assumes they didn't get my source code.  That
"Somebody else's problem" works under the assumption people are going to get
my data, not my source code because I don't ever write my own DB server code
I am stuck using someone else's which means the vulnerability that I am most
likely to face is that somebody else's screw up will be where my problem
lies.

 

Granted this is a better strategy if you are running compiled code, since my
code lives on the Google Server I'm at the mercy of Google's Security, where
as if I were running compiled code it would be less likely someone would get
the code.

 

I would say that unique salt per user, is a good thing.  The most common way
to attack a large password database is to look at the most common entries
and compare against the most common passwords from other sources.  If you
know the 15 most used passwords and the 15 most often occurring database
results you are a long ways towards knowing what those 15 values are and
calculating the salt.  You aren't crunching millions of combinations you are
crunching 1000's and once you have the salt, you take your already
deciphered list of the most common passwords and you calculate the top 5k
using bcrypt and you now have about 50% of the data in fewer than 10k
operations.

 

Compare that with my scenario.  You have data. You don't have the source
code. The UserID or other "spoiler" is in every salt so the reoccurrence of
a hash doesn't correspond to a duplicate password, and now the computation
is nearly impossible even if you have the source code, because you have to
calculate every value for every user anyway.

 

Would Brcypt(Pass+UserID+Salt) be the best?  Yes.  But MD5(Pass+UserID+Salt)
is going to still going to be orders of magnitude more difficult than
Bcrypt(Pass+salt), because I can't use knowledge of frequency tables to
predict likely outcomes or detect duplicate passwords.

 

-Brandon

 

 

 

From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Nick Johnson
Sent: Monday, November 14, 2011 6:21 PM
To: google-appengine@googlegroups.com
Subject: Re: [google-appengine] Help resolve massive performance regression
in 2.7 vs 2.5 runtime

 

Hi Brandon,

 

What you say is fine if your threat model only includes "script kiddies" who
don't have your source code. If either of those is not true - you have an
adversary with some level of independent skill, or your source code is
compromised - any method that relies on obscurity for its security will fare
very poorly.

 

One thing to bear in mind is that if your app is ever compromised, your
password database and/or source may be posted publicly; at that point, you
no longer have to worry about just the initial attacker, but anyone with
sufficient motivation.

 

Of course, using federated login like OpenID or the Users API obviates the
need to store passwords at all, making it Someone Else's Problem. :)

 

-Nick

On Tue, Nov 15, 2011 at 1:07 PM, Brandon Wirtz  wrote:

If I know your salt, I can "De-Hash" bcrypts faster than I can any of the
"weird" combinations. Because there are libraries for doing so on ATI cards.

 

If you do something weird a script kiddie can't just pull code off the web
and attack it. 

 

You want to see who can offline crack a set of 1M users? Your bcrypt list vs
my "Weird"   You don't even have to give me the salt I'll have 10k of those
cracked in the first 72 hours.  10 to 1 odds you won't get through mine
without my source code in my life time.

 

-Brandon Wirtz

 

PS
I don't usually do the "trust me I'm far more evil" but FBI, Homeland
Security, and the CIA have been to my doorstep for things I have defeated,
documented, or built to keep from being defeated.  The first time I was in
3rd grade.

 

From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Nick Johnson
Sent: Monday, November 14, 2011 3:56 PM


To: google-appengine@googlegroups.com
Subject: Re: [google-appengine] Help resolve massive performance regression
in 2.7 vs 2.5 runtime

 

No! Please, please don't do this. Obscurity is no substitute for security.

 

1) Bcrypt or similar is not 'overkill' no matter who you are. Users reuse
passwords, and they're entitled to the best protection you can reasonably
provide them.

2) Bcrypt is not there to protect against online attacks, it's there to
protect against offline attacks, where an attacker obtains your hashed and
salted passwords.

3) Doing "something weird" is security through obscurity. Do not base your
security on your attacker not knowing what you did. Really, really don't
just concatenate salts to the beginning or end of the password.

4) Both MD5 and SHA1 are merkle-damgard construction hashes
(http://en.wikipedia.org/wiki/Merkle%E2%80%93Damg%C3%A5rd_construction). As
a result, the concatenation of several hashes is no more secure than the
most secure of the individual hashes.

 

-Nick Johnson

 

RE: [google-appengine] Re: New Acceptable Use: Porn?

2011-11-14 Thread Brandon Wirtz
I lost the thread where someone said these changes were coming to other
parts of Google.

 

Apparently this isn't "System wide" YouTube kicked my video of a fully
clothed 20 year old girl eating a popcicle in 3d which was used in a
broadcast TV commercial so the FCC was ok with it, but Youtube wasn't. 

 

Time to start building my competitor running on Google's own hardware :-)
Now if only I could only get a video manipulation library for GAE..  

 

 

From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Gregory D'alesandre
Sent: Thursday, November 10, 2011 4:14 PM
To: google-appengine@googlegroups.com
Subject: Re: [google-appengine] Re: New Acceptable Use: Porn?

 

I was wondering when someone was gonna notice.  This was not a mistake.  The
new policy does not prohibit pornography nor gambling.  The policy was
written to disallow illegal activities but to be flexible in terms of the
sorts of businesses people are trying to build.  While you need to talk to
your own lawyers about the legality of the business you build, pornography
as a whole is no longer disallowed from acceptable use.

 

Greg

On Thu, Nov 10, 2011 at 1:51 PM, Brandon Wirtz  wrote:

It also doesn't list gambling.  Interesting...


-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Johnson
Sent: Thursday, November 10, 2011 10:53 AM
To: Google App Engine
Subject: [google-appengine] Re: New Acceptable Use: Porn?


link: http://code.google.com/appengine/program_policies.html

On Nov 10, 1:52 pm, Johnson  wrote:
> The Acceptable Use policy has changed, and no longer lists
> pornography:
>
> Do we have a thumbs-up to go ahead with Adult content?

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


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

 

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

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



Re: [google-appengine] Re: New Acceptable Use: Porn?

2011-11-14 Thread James Broberg
We already built one. However we don't encode on GAE obviously...

Once we update our Ts and Cs to reflect the new GAE AUP we should be
ready for your lascivious videos:
http://www.metacdn.com/

On 15 November 2011 13:57, Brandon Wirtz  wrote:
> Time to start building my competitor running on Google’s own hardware :-)
> Now if only I could only get a video manipulation library for GAE….

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



Re: [google-appengine] 1.6.0. Python2.7 How to import lxml in App engine SDK ?

2011-11-14 Thread Brian Quinlan
Hi JPF,

On Mon, Nov 14, 2011 at 7:19 AM, JPF  wrote:
> I did not find info in the documentation

I made a note to add this to the documentation: you have to install
lxml in the Python distribution that you use to run dev_appserver.py

Cheers,
Brian

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

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



Re: [google-appengine] HRD migration tool now available!

2011-11-14 Thread Brian Quinlan
On Mon, Nov 14, 2011 at 8:13 AM, Joshua Smith  wrote:
> Cool. And that will be OK to use in Python 2.7 (I recall reading something
> about not using environment variables there)?

Environment variables are thread-local in Python 2.7 so this pattern
will work there as well.

Cheers,
Brian

> On Nov 13, 2011, at 2:54 PM, Alfred Fuller wrote:
>
> full_app_id = os.getenv('APPLICATION_ID')
>
> On Fri, Nov 11, 2011 at 12:24 PM, Joshua Smith 
> wrote:
>>
>> Another question. I have this code in my app, so that when someone comes
>> in with an old key, my code will quietly convert it to the new app-id:
>> from google.appengine.api.app_identity import get_application_id
>> appname = get_application_id()
>> @monkeypatch_method(webapp.Request)
>> def get_db(self, key_attr):
>>   k = self.get(key_attr)
>>   if not k:
>>     return None
>>   key = db.Key(k)
>>   if key.app() == appname:
>>     return db.get(key)
>>   logging.info("Fixing up key from old app %s (%s=%s)" % ( key.app() ,
>> key_attr , k ))
>>   fixed_key = db.Key.from_path(*key.to_path())
>>   return db.get(fixed_key)
>> So what's happening is it is "fixing up" every key, because
>> get_application_id() doesn't have "s~" on the front.
>> What should I call to get the app id used in Keys? (The one with the s~ in
>> front?)
>> (BTW: This approach turned out to be a real time-saver for migrating my
>> blobs. I could pass the old version keys from the new HR version, and it
>> fixed them up into its own namespace without my having to even think about
>> it.)
>> -Joshua
>> On Nov 11, 2011, at 1:16 PM, Joshua Smith wrote:
>>
>> OK, so the migration from MS to HR was really fast, and I ran into no
>> problems.  Woo hoo!
>> I didn't do the alias step, because I now need to figure out how to move
>> my old blobs into the new app, and I suspect that if I did the alias that
>> would get really, really hard. Right?
>> So instead, I changed the mapping of my www.myapp.com to point to the HR
>> version using google apps domain management.  Seems to have worked.  Woo hoo
>> again!
>> How do I get my post-migration email budget back up to 2000?  App ID of
>> the new app is towngovernment-hr
>> Now to move the blobs...
>> On Nov 10, 2011, at 9:49 AM, Joshua Smith wrote:
>>
>> Guess I know what I'll be doing on my day off tomorrow.
>> In case anyone didn't notice this in the docs:
>> Currently, the HRD Migration Tool does not support copying data from
>> Blobstore. If you use Blobstore, you need to manually copy that data over.
>> Ugh.  That's a pretty huge hole in the tool.
>> Perhaps I know what I'll be doing all weekend…
>> -Joshua
>> On Nov 9, 2011, at 4:33 PM, Stacy (Google) wrote:
>>
>> We’ve just released a new self service HRD migration tool.  This tool
>> copies all of your data to HRD minimizing read-only times by using a
>> multi-phase approach.  Please see the documentation for details on how to
>> use this.  This tool is still considered experimental, please report
>> problems you experience here in the forum or to the external issue
>> tracker.We are still working on solutions for users of blobstore.
>> Using HRD makes your app eligible for our SLA, and will lead to much
>> better availability and more consistent performance.  We think every app
>> will benefit from the switch to HRD.
>>
>> Stacy
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msg/google-appengine/-/RzmZ--blDgIJ.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to google-appengine@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>
>
> --
> You receiv

Re: [google-appengine] "getaddrinfo failed" using urlfetch and python 2.7 (dev server)

2011-11-14 Thread Brian Quinlan
Hi,

I wasn't able to reproduce this problem with the same URL. It is
likely that there is something odd in your environment that is
preventing Python from being able to find the host.

Cheers,
Brian

On Thu, Nov 10, 2011 at 2:13 PM, DurhamG  wrote:
> I'm trying to migrate my app to python 2.7 but when I do a
> urlfetch.fetch to facebook for some data, it throws the following
> exception:
>
>  File "C:\workspace\DjangoServer\src\mycode.py", line 167, in request
>    urlfetch.fetch(url="https://graph.facebook.com/me?
> access_token=z&fields=id%2Cemail")
>  File "C:\Program Files (x86)\Google\google_appengine\google\appengine
> \api\urlfetch.py", line 263, in fetch
>    return rpc.get_result()
>  File "C:\Program Files (x86)\Google\google_appengine\google\appengine
> \api\apiproxy_stub_map.py", line 592, in get_result
>    return self.__get_result_hook(self)
>  File "C:\Program Files (x86)\Google\google_appengine\google\appengine
> \api\urlfetch.py", line 365, in _get_fetch_result
>    raise DownloadError(str(err))
> DownloadError: ApplicationError: 2 [Errno 11003] getaddrinfo failed
>
> The url in question looks like this: 
> https://graph.facebook.com/me?access_token=z&fields=id,email
> , and works fine in the browser, but fails from the dev server.  The
> code I'm calling is dead simple:
>
>    file = urlfetch.fetch(url="https://graph.facebook.com/me?
> access_token=z&fields=id%2Cemail")
>
> and it worked fine in python 2.5.  The only suggestion I found when
> googling it was to turn off my fire wall, which didn't help, and some
> stuff about proxies, which I'm not behind one.
>
> Any ideas?
>
> Thanks
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to google-appengine@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

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



[google-appengine] Dev server, channel, change files

2011-11-14 Thread Timofey Koolin
When I open channel on dev-server - it stop detect changes in source file
of my project.

For detect changes in project I must close page with channel before change
project or restart dev-server after change.

-- 
Blog: www.rekby.ru

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



[google-appengine] Running queries on data already stored in datastore

2011-11-14 Thread Zak
Hello all,

This is my first time using google app engine and the datastore so
this is all still pretty new to me. But I have successfully (using the
bulk loader tool) loaded my data from csv files into the datastore. I
am writing my program in Python and have now run into the issue of
retrieving data from the datastore using python. I understand how to
create Classes using db.Model in python, load information into them,
store them and then run queries on them. But how do you run quries on
the data that is stored in the datastore already?  When I run a query
for a Kind that I know is in my datastore it says Kind not found. Do I
still need to define a class (db.Model) to hold the data? If so, how
do I transfer the data from the datastore into my class object?

Any clarification would be much appreciated!

Zak

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



[google-appengine] Memcache Auto Eviction Performance

2011-11-14 Thread stevep
Did not see this in a thread search. Pretty sure I would be safe
making this assumption, but thought best to check.

Question (background if you're interested is below):
If a few thousand items are added to memcache each with a 30 second
life, will this volume of time-based auto-evict items cause any
performance / instance-increasing issues?? I'm assuming no, however:
"Whenever you assume, you..."

Thanks,
stevep

Background:
I want to avoid consistency errors when selecting tasks from a query
list. When a task is assigned it is "checked out" by incrementing a
checkOut count on my Task class (checkOut count is a query filter
item). Unfortunately the Task class has one somewhat large composite
index to support the query, so my put() updates will be a bit resource
intensive. I had thought that each time a checkOut count put() update
is done, I would add an memcache value with the key_name of the entity
being put() and specify something like a 30 second duration. When the
query result of available tasks is iterated, a memcache call that
successfully gets the key_name for the current iteration would
indicate a consistency issue, and that entity would be skipped. Does
not have to be perfect -- can live with some double assignments, but
would like to catch most. Not a high-volume app, so worst case might
be a few thousand such active memcache values living some part of
their short lives.

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