Re: [google-appengine] where to put credentials?

2013-11-15 Thread Alejandro González Rodrigo
I use resource files to store credentials and on app start i copy them in
to a global config entity en the datastore. I cache it for fast access
aswell.

Cheers
El 15/11/2013 11:19, stephanos stephan.beh...@gmail.com escribió:

 Hi there,

 my project currently stores API keys and other credentials in the source
 code. That's far from ideal.
 In Heroku you can set global environment variables which are a great place
 to store those sensitive information.

 So - where do you put your credentials?

 Cheers
 Stephan

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] How to get the path of a file saved in blobstore ?

2013-11-14 Thread Alejandro González Rodrigo
Hello Anuja,

When you upload a file to the blobstore, in the /_ah/upload callback you
can grab the BlobKey that was uploaded:

BlobstoreService blobstoreService =
BlobstoreServiceFactory.getBlobstoreService();
MapString, ListBlobKey blobs = blobstoreService.getUploads(request);
BlobKey *blobKey* = blobs.get(file).get(0);

You need that blobkey to access the file again. If you want to accecss the
file later, you might want to store it somewhere in the datastore.

With the BlobKey you can retrieve a byte[] of the file to do whatever you
want:

byte[] file = blobstoreService.fetchData(*blobKey*, 0,
BlobstoreService.MAX_BLOB_FETCH_SIZE-1);


Hopes that helps.
Good luck!






2013/11/14 anuja bothra anujabot...@gmail.com

 Hi,

 I have data in an excel sheet.
 I need to read that data and save it to the datastore.

 I am able to upload the excel to blobstore.
 How do I get the excel file path to pass to POI (so that I can read the
 cell contents) ?
 My code is in Java

 Thanks,
 Anuja

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] How to get the path of a file saved in blobstore ?

2013-11-14 Thread Alejandro González Rodrigo
Hello Anuja,

No, that is not possible because the actual file is not in the filesystem.
But with the byte[] you can easily get a InputStream checkout:
http://stackoverflow.com/questions/1802123/can-we-convert-a-byte-array-into-an-inputstream-in-java

InputStream myInputStream = new ByteArrayInputStream(file);
POIFSFileSystem myFileSystem = new POIFSFileSystem(myInputStream);



2013/11/14 anuja bothra anujabot...@gmail.com

 I actually wanted to parse the file in POI since I already had written
 code for that in a local app.

 FileInputStream myInput = new FileInputStream(filePath);
 POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);

 I need the filePath (the excel file's path) so that I can just pass that
 and reuse the code that I had already written.
 Is that not possible ?

 Thanks


 On Thu, Nov 14, 2013 at 3:24 PM, Alejandro González Rodrigo 
 alejandro.gonza...@intelygenz.com wrote:

 Hello Anuja,

 When you upload a file to the blobstore, in the /_ah/upload callback you
 can grab the BlobKey that was uploaded:

 BlobstoreService blobstoreService =
 BlobstoreServiceFactory.getBlobstoreService();
 MapString, ListBlobKey blobs = blobstoreService.getUploads(request);
 BlobKey *blobKey* = blobs.get(file).get(0);

 You need that blobkey to access the file again. If you want to accecss
 the file later, you might want to store it somewhere in the datastore.

 With the BlobKey you can retrieve a byte[] of the file to do whatever you
 want:

 byte[] file = blobstoreService.fetchData(*blobKey*, 0,
 BlobstoreService.MAX_BLOB_FETCH_SIZE-1);


 Hopes that helps.
 Good luck!






 2013/11/14 anuja bothra anujabot...@gmail.com

 Hi,

 I have data in an excel sheet.
 I need to read that data and save it to the datastore.

 I am able to upload the excel to blobstore.
 How do I get the excel file path to pass to POI (so that I can read the
 cell contents) ?
 My code is in Java

 Thanks,
 Anuja

 --
 You received this message because you are subscribed to the Google
 Groups Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send
 an email to google-appengine+unsubscr...@googlegroups.com.

 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




 --
 Alejandro González alejandro.gonza...@intelygenz.com
 +34 666 57 79 13
 http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

 http://www.intelygenz.com/
 If you have a dream http://www.intelygenz.com/en/cases* we can write
 the *code http://www.thegameofcode.com/




  --
 You received this message because you are subscribed to a topic in the
 Google Groups Google App Engine group.
 To unsubscribe from this topic, visit
 https://groups.google.com/d/topic/google-appengine/DBfFbG4NVhY/unsubscribe
 .
 To unsubscribe from this group and all its topics, send an email to
 google-appengine+unsubscr...@googlegroups.com.

 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.


  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] add-on Google Cloud Storage to an existing GAE project

2013-11-13 Thread Alejandro González Rodrigo
Hello Ken,

I think the problem was in the step 1. If you click Create Project button
you are creating a new project, not related to ABC project. You need to
click on the ABC project link in the cloud console, and inside ABC project,
activate billing, services for cloud storage and so on. Once you have
activated the billing and services, in the left menu a new link to the
Cloud Storage (or BigQuery) appears, and is related to the project ABC.

Good luck!



2013/11/12 k...@form-runner.com

 Hi,
 I'm attempting to add-on Google Cloud Storage to an existing GAE project,
 but am confused about whether I've succeeded.

 1. I visited  https://cloud.google.com/console#/project , clicked the
 checkbox for one of my projects (ABC), clicked the Create Project button,
 validated my phone# via TextMessage, and validated my email address by
 clicking the return link in the validating email, and got the resulting
 confirmation.

 2. I turned on billing.

 3. So at this point I have a project

 https://cloud.google.com/console#/project/apps~xxx-yyy-nnn

 Under Permissions, I can add the other users from the original GAE project.
 Under APIs, these are ON: BigQuery, Google Cloud, Google Cloud Storage,
 Google Cloud Storage JSON API.
 I've also been able to run the LocalExample in Eclipse within our original
 project ABC.

 But nowhere in the Google Cloud Console do I see any mention of the
 original project ABC which I checked at the beginning of the setup
 process.  The goal is to store data from that project in GCS.

 What am I missing?
 Thanks in advance,
 Ken Bowen

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] add-on Google Cloud Storage to an existing GAE project

2013-11-13 Thread Alejandro González Rodrigo
Hello again,

For clarification on you last statment: *The goal is to store data from
that project in GCS.*

You can create a new entire project in GCS that has nothing related to your
ABC project, and give that project permissions to your GCS buckets thorugh
the GCS ACLs. The only thing you need is to gather the Service Account Name
from you ABC's AppEngine console under Application Settings. Its looks
like abc-proj...@appspot.gserviceaccount.com. Take that email and give it
permissions in the GCS bucket you want to store your files.

Good luck!




2013/11/13 Alejandro González Rodrigo alejandro.gonza...@intelygenz.com

 Hello Ken,

 I think the problem was in the step 1. If you click Create Project
 button you are creating a new project, not related to ABC project. You need
 to click on the ABC project link in the cloud console, and inside ABC
 project, activate billing, services for cloud storage and so on. Once you
 have activated the billing and services, in the left menu a new link to the
 Cloud Storage (or BigQuery) appears, and is related to the project ABC.

 Good luck!



 2013/11/12 k...@form-runner.com

 Hi,
 I'm attempting to add-on Google Cloud Storage to an existing GAE project,
 but am confused about whether I've succeeded.

 1. I visited  https://cloud.google.com/console#/project , clicked the
 checkbox for one of my projects (ABC), clicked the Create Project button,
 validated my phone# via TextMessage, and validated my email address by
 clicking the return link in the validating email, and got the resulting
 confirmation.

 2. I turned on billing.

 3. So at this point I have a project

 https://cloud.google.com/console#/project/apps~xxx-yyy-nnn

 Under Permissions, I can add the other users from the original GAE
 project.
 Under APIs, these are ON: BigQuery, Google Cloud, Google Cloud Storage,
 Google Cloud Storage JSON API.
 I've also been able to run the LocalExample in Eclipse within our
 original project ABC.

 But nowhere in the Google Cloud Console do I see any mention of the
 original project ABC which I checked at the beginning of the setup
 process.  The goal is to store data from that project in GCS.

 What am I missing?
 Thanks in advance,
 Ken Bowen

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




 --
 Alejandro González alejandro.gonza...@intelygenz.com
 +34 666 57 79 13
 http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

 http://www.intelygenz.com/
 If you have a dream http://www.intelygenz.com/en/cases* we can write
 the *code http://www.thegameofcode.com/







-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] Free Apps Account?

2013-11-05 Thread Alejandro González Rodrigo
Hello Joshua

Google Apps is no longer free from Dec 12 of 2012, you can read it here:
https://support.google.com/a/answer/2855120?hl=en

Good luck!


2013/11/5 Joshua Smith joshuaesm...@charter.net

 I tried to follow the instructions I found for signing up for a free
 google apps account so that I could associate a new domain with a new app I
 created.

 I never saw any link to create a the account for free, though.

 I don't need a full apps account, I just want to set up the domain.

 What's the process to get this google apps account freebee-fied before my
 30 day trial runs out?

 -Jooshua

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] Re: Over index creation quota

2013-10-19 Thread Alejandro González Rodrigo
. If so, how do I increase the quota.
 
Dinesh
 
   --
   Nick Johnson, Developer Programs Engineer, App Engine
   Google Ireland Ltd. :: Registered in Dublin, Ireland,
 Registration
  Number:
   368047
 
 --
 Nick Johnson, Developer Programs Engineer, App Engine
 Google Ireland Ltd. :: Registered in Dublin, Ireland,
 Registration
Number:
 368047
 
   --
   Nick Johnson, Developer Programs Engineer, App Engine
   Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration
 Number:
   368047

  --
 You received this message because you are subscribed to the Google
 Groups Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send
 an email to google-appengi...@**googlegroups.com.
 To post to this group, send email to google-a...@googlegroups.**com.

 Visit this group at 
 http://groups.google.com/**group/google-appenginehttp://groups.google.com/group/google-appengine
 .
 For more options, visit 
 https://groups.google.com/**groups/opt_outhttps://groups.google.com/groups/opt_out
 .


  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] Re: Over index creation quota

2013-10-19 Thread Alejandro González Rodrigo
I dont know what kind of model do you have and what you can do with it, but
for example with this entity:
*

Record*
@Id Long id
String user
Boolean newsletter; //- indexed
Boolean notifications; //- indexed
String choice; //A,B or C - indexed

How about splitting the entity this way?

*RecordNewsletter*
@Id Long id
String user
Boolean choiceA;
Boolean choiceB;
Boolean choiceC;

*RecordNotifications*
@Id Long id
String user
Boolean choiceA;
Boolean choiceB;
Boolean choiceC;


As the 200 limit index count is only for composite indexes, with this model
you have 0 indexes count. Yo have to do more queries to get your info, but
with a good cache mechanism maybe is worth the datastore calls. This may
not fit your model or your needs, but is a good example of how to reduce
indexes drastically.

Cheers!



2013/10/19 Kaan Soral kaanso...@gmail.com

 The optimized/documented version of index.yaml is 138 indexes :)

 Generally the majority are from a single model with 2 boolean, one (3
 choiced) string property, generating 2^3x of the initial index number

 Since the filters are not always present, the devserver generates an index
 for each situation, I'm not sure if it can be reduced without
 NeedIndexError's


 On Saturday, October 19, 2013 12:51:51 PM UTC+3, Alejandro González
 Rodrigo wrote:

 That 200 index limit quota can't be changed (at least to my knowledge).
 That limit is there for important reasons. If you reach the limit, maybe
 you are doing something wrong, or not in the best way.

 Did you consider using search API for removing some index? Bigquery or
 CloudSQL for making reports outside the blobstore and maybe remove some
 indexes? Are your data-model enough optimized for using the low number of
 indexes possible, using denormalization and ancestors queries to save
 indexes? Maybe in your model fits the Namespace aproach for multitency
 apps, saving again a lot of indexes?

 There are many tricks and considerations to take care of when modeling in
 a non relational database like the blobstore.

 Cheers!


 2013/10/19 Kaan Soral kaan...@gmail.com

 with 138 indexes, I'm wondering this too :)


 On Tuesday, September 3, 2013 6:50:42 AM UTC+3, aswath wrote:

 Same here.  I need to increase the number of indexes.  Is this
 limitation removed for billing enabled apps?

 -Aswath


 On Tue, Sep 3, 2013 at 1:08 AM, kcunha.araujo kcunha...@gmail.comwrote:

 Hi all,

 Anybody know how to increase quota index number? My app is on limite
 200. We need to increase it.

 Em quinta-feira, 12 de novembro de 2009 11h48min11s UTC-4, Orlando
 escreveu:

 I have same problem: Error 400: --- begin server output ---
 Over index creation quota: The API call datastore_v3.CreateIndex()
 required more quota than is available.

 The application is 'testingryv'. I have tried to delete my useless
 indexes, but i got same problem. Any solution?

 Thanks,
 Orlando

 On 14 oct, 21:35, Dinesh Varadharajan
 dinesh.varadhara...@**orangescape.com wrote:
  I can delete and recreate apps.Thanks for your time..
 
  Dinesh
  On Oct 14, 6:02 pm, Nick Johnson (Google) 
 nick.john...@google.com
  wrote:
 
 
 
   On Wed, Oct 14, 2009 at 1:53 PM, Dinesh dinesh.varadhara...@**
 orangescape.com
 
wrote:
 
Hi Nick,
 Not functioning how?
I want to reuse existing apps, so I cleared data and indexes. I
 am not
seeing any data in data viewer or any index in indexes.  But
 when
trying to import new app I am getting index quota error.. I
 just got
the alert saying deleting app is possible now. Thank god..
 
   Do you still need these apps reset, now that you can delete them
 and create
   new ones instead?
 
 Are all of these apps out of index quota?
Yes
 
 Requiring more than 100 indexes is usually a sign of a schema
 design that
 needs optimizing. We can increase the index quota, but only
 in
exceptional
 circumstances.
We store the data in expando model which is very huge.. The no
 of
columns at the minimum will be around 300. The auto generated
 indexes
are around 50% of total indexes. In addition, gae throws need
 index
error in lot of cases and we end up adding those indexes in to
index.yaml. So, it easily crosses the limit..
 
   Without knowing more about your data model, it's impossible to
 comment on
   how you can reduce your total number of indexes.
 
   -Nick Johnson
 
We don't use any of the inequality filters in our queries
 except in 2
cases.
Thanks,
Dinesh
 
On Oct 14, 4:33 pm, Nick Johnson (Google) 
 nick.john...@google.com
wrote:
 Hi dinesh,
 
 On Wed, Oct 14, 2009 at 12:00 PM, Dinesh 
 
 dinesh.varadhara...@**orangescape.com wrote:
 
  Hi Nick,
  thanks for the immediate reply.. I cleared data and
 vacuumed  indexes
  in 4 of my apps. (Created new apps as old apps are not
 functioning).
 
 Not functioning how?
 
  But still it is throwing the quota exception. The app ids
 are
 
  os-demo

Re: [google-appengine] Re: Over index creation quota

2013-10-19 Thread Alejandro González Rodrigo

 Generally speaking, If I'm not too mistaken, your approach to my scenario
 wouldn't reduce write operations, it would just reduce index number, but in
 return require manual indexing via additional models, kind of like moving
 around the limitation, not that I'm against it


We were talking about reducing indexes, but that usually comes with more
read or write operations. The reads operations can be reduced with memcache
or other caching mechanism.

What you can do is delete all the indexes you think you don't need and test
your application in a dev environmet. If there are any index needed that
you don't define, the app is gonna crash with a handy log message saying
which index is needed.

As a rule, i always expect that error development logs prior to add the
index to my appengine-index.xml Doing that i'm totally sure i don't have
unused indexes defined.

Cheers and good luck with your index crusade!




2013/10/19 Kaan Soral kaanso...@gmail.com

 In my scenario, there is a query with a sort order and there are optional
 filters, each optional filter doubles the index number

 Generally speaking, If I'm not too mistaken, your approach to my scenario
 wouldn't reduce write operations, it would just reduce index number, but in
 return require manual indexing via additional models, kind of like moving
 around the limitation, not that I'm against it

 An approach that keeps the simplicity but reduces the index number would
 be great

 I wonder what would happen if I only indexed each filter/property in a
 single index with the sort order and remove other combinations
 I'm not sure what would happen with a query that misses only one property
 from that index for example, does the system use that index, can error
 occur with huge datasets etc.

 I'm probably not going to exceed the 200, but I was thinking about
 refactoring a property from that index, which would cause a temporary
 increase in index numbers before vacuuming, which might cause issues

 Thinking about my case now, it might be a good idea to think about
 encoding the combinations and putting them inside a repeated property to be
 queried
 This wouldn't change the write operations, however would probably reduce
 indexes drastically

 Thanks for the advice and thanks for making me think :)


 On Saturday, October 19, 2013 1:24:32 PM UTC+3, Alejandro González Rodrigo
 wrote:

 I dont know what kind of model do you have and what you can do with it,
 but for example with this entity:
 *

 Record*
 @Id Long id
 String user
 Boolean newsletter; //- indexed
 Boolean notifications; //- indexed
 String choice; //A,B or C - indexed

 How about splitting the entity this way?

 *RecordNewsletter*
 @Id Long id
 String user
 Boolean choiceA;
 Boolean choiceB;
 Boolean choiceC;

 *RecordNotifications*
 @Id Long id
 String user
 Boolean choiceA;
 Boolean choiceB;
 Boolean choiceC;


 As the 200 limit index count is only for composite indexes, with this
 model you have 0 indexes count. Yo have to do more queries to get your
 info, but with a good cache mechanism maybe is worth the datastore calls.
 This may not fit your model or your needs, but is a good example of how to
 reduce indexes drastically.

 Cheers!



 2013/10/19 Kaan Soral kaan...@gmail.com

 The optimized/documented version of index.yaml is 138 indexes :)

 Generally the majority are from a single model with 2 boolean, one (3
 choiced) string property, generating 2^3x of the initial index number

 Since the filters are not always present, the devserver generates an
 index for each situation, I'm not sure if it can be reduced without
 NeedIndexError's


 On Saturday, October 19, 2013 12:51:51 PM UTC+3, Alejandro González
 Rodrigo wrote:

 That 200 index limit quota can't be changed (at least to my knowledge).
 That limit is there for important reasons. If you reach the limit, maybe
 you are doing something wrong, or not in the best way.

 Did you consider using search API for removing some index? Bigquery or
 CloudSQL for making reports outside the blobstore and maybe remove some
 indexes? Are your data-model enough optimized for using the low number of
 indexes possible, using denormalization and ancestors queries to save
 indexes? Maybe in your model fits the Namespace aproach for multitency
 apps, saving again a lot of indexes?

 There are many tricks and considerations to take care of when modeling
 in a non relational database like the blobstore.

 Cheers!


 2013/10/19 Kaan Soral kaan...@gmail.com

 with 138 indexes, I'm wondering this too :)


 On Tuesday, September 3, 2013 6:50:42 AM UTC+3, aswath wrote:

 Same here.  I need to increase the number of indexes.  Is this
 limitation removed for billing enabled apps?

 -Aswath


 On Tue, Sep 3, 2013 at 1:08 AM, kcunha.araujo kcunha...@gmail.comwrote:

 Hi all,

 Anybody know how to increase quota index number? My app is on limite
 200. We need to increase it.

 Em quinta-feira, 12 de novembro de 2009 11h48min11s UTC-4, Orlando
 escreveu:

 I

Re: [google-appengine] How to prevent overwriting an entity simultaneously?

2013-10-19 Thread Alejandro González Rodrigo
In few words: whats you need are transactions.

Transactions are there to solve your problem. stop making rutines and
subrutines to solve a problem that si already solved.

Using a framework usually mitigates the learning curve. I don't know if you
are already using a framework or library to handle datastore stuff or if
you are using Java, phyton or PHP but you have a lot of examples out there.

If you give us more info about technologies and librareis used maybe we can
give you some code or links to good tutorials to solve your problem or
learning about transactions.

Cheers.


El sábado, 19 de octubre de 2013, Kaan Soral escribió:

 I've implemented routines to handle contention at a large level, a custom
 pipeline implementation, there also also basic checks to prevent
 overwriting an entity.

 However there are some operations that require no overwrite to occur, for
 example:

- Signup related updates, email, external_user_id etc
- Email verification
- User information updates

 When these get overwritten by another update simultaneously, it creates a
 really disturbing experience

 I've done a lot to prevent these, yet they do still happen rarely, and by
 rarely it seems 1%, a lot

 My plan is to dive into more custom routines to implement make sure
 routines / prevention routines

 I'm wondering whether there is something really basic I'm missing that
 achieves what I want to do

 For example I've never used transactions, without actually using it,
 learning from the use cases, the documentation of transactions were
 meaningless to me

 I would appreciate any advice
 (I'm also extremely unlucky, or lucky, tested my new app with ~10 users,
 all of them experienced unique problems, some issues that occurred probably
 have 1/1 probability of occurrence, a user triggered a second signup
 request, probably by page refresh, it would only cause an issue if the last
 part of the routine would execute around the same millisecond, and it did)

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com javascript:_e({},
 'cvml', 'google-appengine%2bunsubscr...@googlegroups.com');.
 To post to this group, send email to 
 google-appengine@googlegroups.comjavascript:_e({}, 'cvml', 
 'google-appengine@googlegroups.com');
 .
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.



-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] DATASTORE VIEWER

2013-10-15 Thread Alejandro González Rodrigo
Hello,

You have 2 options:

1 - In the old console ( appengine.google.com ) in the datastore viewer you
can play with this two params in the URL: limit=20offset=20
2 - You can access the new console ( cloud.google.com/console ) click in
your project and then you can use the *Cloud Datastore - Query* section to
Query the Datastore, and in this case google loads more results as you keep
scrolling down the page




2013/10/15 Martin Descours descours.mar...@gmail.com

 On appengine i make requests on the databases, but i am limited to 20
 results by Page
 how can i make this 20 go up to 100 ?
 thx for your help !
 Martin

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [google-appengine] Re: Error : Key kind string must be a non-empty string up to 500bytes

2013-10-14 Thread Alejandro González Rodrigo
You can have 2 problems here:

1 - You are creating an entity with an empty key
2 - Your entity key exceeds 500 bytes

See this:
http://stackoverflow.com/questions/2557632/how-long-max-characters-can-a-datastore-entity-key-name-be-is-it-bad-to-haver

¿What are your trying to do, and how? If you want help you need to provide
more info.


2013/10/14 timh zutes...@gmail.com

 help what ?

 You need to provide a lot more information here if you want some help


 On Monday, October 14, 2013 4:53:59 PM UTC+8, Vijay Kumbhani wrote:

 help

  --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.


[google-appengine] Re: GAE Newbie question - User Login page

2013-08-08 Thread Alejandro González Rodrigo
Hello,

There is a lot of ways of doing and securing your application.

GAE has an 
UserServicehttps://developers.google.com/appengine/docs/java/gettingstarted/usingusers
 and 
easy tutorials the get it rolling. You have security 
constrainshttps://developers.google.com/appengine/docs/java/config/webxml#Security_and_Authenticationas
 well, that can secure the urls you want and the only thing you need is 
to define them in your web.xml
To secure services i would use 
Filtershttps://developers.google.com/appengine/docs/java/config/webxml#Filtersrather
 than implementing the security in each servlet doGet/doPost, this 
way you have all security centralized and the same for all servlets calls.

Cheers!


On Wednesday, August 7, 2013 7:10:35 PM UTC+2, Jimin Park wrote:

 I am new to the web application development and recently ventured on a 
 journey to build one (was not aware of the servlets prior to this so I am 
 really new). I am stuck on creating the log-in page using OpenID.

 If I want every single page to require the user to be logged in to even 
 view, how would I achieve this using servlets? Would I be putting in user 
 login status at the beginning of doGet() of all servlets and if the user is 
 not logged in, redirect to the log-in page and redirect back to the 
 servlet? This seems like some boiler-plate code, is there some kind of 
 configuration I can do to achieve the same thing easily?

 Also, I do appreciate Google's openID documentation, it is not detailed 
 enough for me to understand how the work flow is in this framework. Is 
 there a helpful tutorial site anyone knows? Had not much luck in google 
 searches either...

 Thanks guys!


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.




[google-appengine] Re: Securing web services

2013-08-07 Thread Alejandro González Rodrigo

As far as i know there is nothing in appengine to do something like that 
(securize web services / API / endpoints ) you need to do it on your own.

I dont know your whole scenario, but a standard way to secure web services 
is oAuth2 with the Client Credentials flow (in your case, with no end 
users). This way the app that wants to call your services, needs to be 
identifyed before he can request nothing to you. What you need to do is 
oAuth provider in your server to handle all authentications and store 
clients keys and secrets. There are some good opensource libraries to 
handle all oAuth stuff

If you dont want go that far, you can keep it simplier with an API-Key 
schema, but is less secure.

Cheers


On Wednesday, August 7, 2013 10:29:38 AM UTC+2, Thomas Bailey wrote:

 We have an appengine application that exposes a set of web service 
 endpoints.
 We need to secure these endpoints such that only specific applications can 
 access them. This will be programmatic access, so there will be no user 
 involvement (i.e. no login screens).

 Looking at the documentation it seemed like service accounts would give us 
 this ability, however this only seems to give access to the google API.

 Is there a standard way to secure appengine web services, or do we need to 
 roll our own solution?

 Any pointers much appreciated!


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [google-appengine] Can't integrate GCS to existing AppEngine project

2013-08-06 Thread Alejandro González Rodrigo
Try from https://cloud.google.com/console


2013/8/6 Kaan Soral kaanso...@gmail.com

 On Appengine Console  Administration  Application Settings  Cloud
 Integration
 I've triggered the project creation, but it always results in an error and
 suggests a retry (a retry button appears)

 On https://cloud.google.com/console
 I see all my apps, however none has Google Cloud Storage on them, they all
 have Appengine / Big Query / Datastore, but no GCS
 I've also have billing enabled for a long time

 What should I be doing?

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to google-appengine+unsubscr...@googlegroups.com.
 To post to this group, send email to google-appengine@googlegroups.com.
 Visit this group at http://groups.google.com/group/google-appengine.
 For more options, visit https://groups.google.com/groups/opt_out.






-- 
Alejandro González alejandro.gonza...@intelygenz.com
+34 666 57 79 13
http://es.linkedin.com/pub/alejandro-gonzález-rodrigo/19/684/466/

http://www.intelygenz.com/
If you have a dream http://www.intelygenz.com/en/cases* we can write the *
code http://www.thegameofcode.com/

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.




[google-appengine] Re: Problems with custom domain and SSL, stopped working

2013-07-16 Thread Alejandro González Rodrigo
I have exactly the same problem. The custom domain was working for a couple 
of months and suddenly, last night, its stop working.

Any info to fix this problem would be appreciated, since this is an issue 
with an application in a production environment.

Thanks.


On Tuesday, November 20, 2012 3:25:03 PM UTC+1, Jesse Crocker wrote:

 Last week(wednesday) I added a custom domain and ssl with sni to one of my 
 apps that has been running for a while on an appspot.com subdomain.  The 
 custom domain and ssl worked fine until last night, but now a request over 
 http returns a 404 error, and a request over https times out.  Requests to 
 the appspot.com subdomain still work fine.  Requests made to the custom 
 domain are not showing up in the log.

 I did not make any changes to the configuration, it just stopped working 
 after working for 4 days.

 Any suggestions?


-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/groups/opt_out.