Re: [appengine-java] HTTP Pipelining support in AppEngine

2011-06-26 Thread Inderjeet Singh
I see your point: since App engine does not support long-lived HTTP 
connections, we can not use HTTP pipelining.  
For the backends, is the support for HTTP pipelining automatic? 

Thanks
Inder

On Saturday, June 25, 2011 1:25:20 PM UTC-7, Nischal wrote:

 From what I can understand you need a long lived http connection? You can 
 have a look at backends which do not have the 30s limit.

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



[appengine-java] Re: Building Session affinity manually

2011-06-26 Thread Inderjeet Singh
Anyone? 
On Wednesday, June 22, 2011 12:03:47 AM UTC-7, Inderjeet Singh wrote:

 I am using HttpURLConnection to connect to my JSON services deployed on the 
 AppEngine. I would like to build session affinity: i.e., all requests from a 
 client should go the same app-engine instance (best effort, not a hard 
 requirement). Is there a way to build this? For example, is there a cookie 
 or a response header that I can save on the client and send back in each 
 request to achieve this? 

 Thanks
 Inder



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



[appengine-java] java variables and jbutton

2011-06-26 Thread madushka.prasadgmail.com
somebody help me to know how to run another java class when java 
jbutton clicked. 
and how to equal variables in two java classes. 

pleace post the sample code... thank you. 

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



[appengine-java] java variables and jbutton

2011-06-26 Thread madushka.prasadgmail.com
somebody help me to know how to run another java class when java
jbutton clicked.
and how to equal variables in two java classes.

pleace post the sample code... thank you.

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



[appengine-java] Re: Building Session affinity manually

2011-06-26 Thread Jay Young
There's nothing you can do to affect which request goes to which instance.

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



Re: [appengine-java] Problem with using OpenSSL-generated RSA key on App Engine Java

2011-06-26 Thread Dado Colussi
On 25 June 2011 14:51, Stephen Johnson onepagewo...@gmail.com wrote:

 I'm no expert on this sort of thing, but I think you need to base-64
 decode your string.



I don't think base64-decoding is necessary, because private.der is in binary
DER format. The key I posted was base64-encoded PEM key, the format OpenSSL
handles by default.

The key works in SDK, but the production system rejects it. Why?

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



[appengine-java] Re: JDO: 1-N relationships

2011-06-26 Thread Nichole
Just to add to objectuser, you definitely need to use entity groups to
retrieve all
entity types within a transaction if you use the model you're both
describing.

You might want to consider a change in your model though to move the
most updated fields
in User to a new and different entity, freeing you from needing to
retrieve Track and User
for those updates.
From your description that new entity is found with name fields that
are the same fields as in the User and Track entities.  This is 2nd
normal form in terms of
a database model...

On Jun 25, 9:33 am, objectuser kevin.k.le...@gmail.com wrote:
 As long as both the user and tracks are in the same entity group, you
 can do just that.

 Whether that's a good idea or not depends on how those users and
 tracks will be used.  If only one user is going to be messing with the
 tracks, then you should be fine.  If many users need to update those
 tracks, then you will have a lot of contention on that entity group.
 This is all because only one transaction can update an entity group at
 a time.

 On Jun 24, 2:47 am, Martin Newstead skankmar...@hotmail.com wrote:







  I would like some help and advice on how to model my entities using
  JDO on GAE. My problem is this, I have a bunch of Users and each User
  may create zero or more Tracks. Users may exist without a Track but
  Tracks may not exist without a User who created them. Other attributes
  on the User and the Track may updated. I would like to be able to
  query the Tracks and retrieve some attributes from the User who
  created the Track. The attributes from the User may get updated. In
  SQL this would be

  select u.displayName, t.trackName from User u, Track t, where
  t.userId=u.userId

  I have some ideas and have tried various things but this isn't a post
  on why doesn't something work, more of what is the best practice to
  solve this problem.

  thanks M

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



Re: [appengine-java] Problem with using OpenSSL-generated RSA key on App Engine Java

2011-06-26 Thread Stephen Johnson
If private.der is in binary format then why are you reading it in as a
String using Scanner???

On Sun, Jun 26, 2011 at 8:02 AM, Dado Colussi dado.colu...@gmail.com wrote:
 On 25 June 2011 14:51, Stephen Johnson onepagewo...@gmail.com wrote:

 I'm no expert on this sort of thing, but I think you need to base-64
 decode your string.


 I don't think base64-decoding is necessary, because private.der is in binary
 DER format. The key I posted was base64-encoded PEM key, the format OpenSSL
 handles by default.
 The key works in SDK, but the production system rejects it. Why?

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


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



[appengine-java] Re: Multiple issues with eclipse 1.5.1 update

2011-06-26 Thread Scott
#1 and #2 Actually turned out to be an issue with the Appwrench
plugin. It does not seem to be compatible with the 1.5.1 SDK plugin. I
have notified the Appwrench developers of the
problem.

#3 Was just me having a mental hiccup. The correct switch is --
address.

On Jun 22, 7:51 pm, Scott shathaw...@gmail.com wrote:
 I updated the Google Plugin and App Engine SDK bundles for Eclipse
 today and am having a number of problems. First my configuration:

 OS:
 Ubuntu Linux 11.04

 Eclipse:
 Version: Helios Service Release 2
 Build id: 20110218-0911

 Plugins:
 Google Plugin for Eclipse 3.6   2.3.2.r36v201106211634
 com.google.gdt.eclipse.suite.e36.feature.feature.group
 Google App Engine Java SDK 1.5.1        1.5.1.r36v201106211634
 com.google.appengine.eclipse.sdkbundle.e36.feature.feature.group

 Issues:
 1. Following update restart my app engine projects won't build. The
 error log has: java.lang.IllegalArgumentException: Unable to find /
 home/eeb/opt/eclipse/plugins/
 com.google.appengine.eclipse.sdkbundle_1.5.1.r36v201106211634/
 appengine-sdk-plugin.jar/lib/shared

 There is additional stack if needed.

 2. I go to the preferences for the app engine sdk and attempt to set
 an SDK I get: Failed to initialize App Engine SDK at /home/eeb/opt/
 eclipse/plugins/
 com.google.appengine.eclipse.sdkbundle_1.5.1.r36v201106211634/
 appengine-java-sdk-1.5.1

 3. After following the work around below, the --server option seems to
 be ignored in the debug configuration, and the development only binds
 to localhost. I have to test devices against the server, so this is a
 critical problem.

 Workaround:
 - Uninstalled the App Engine Java SDK plugin. I can now set the app
 engine sdk and run my development server. The result is an info
 message and stack trace at the top: INFO: Unable to 
 accesshttps://0.0.0.0/api/updatecheck?runtime=javarelease=1.5.1×tamp=...['1.0']

 Can someone try and reproduce these same issues? If you can let me
 know, and I will open a bug ticket.

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



Re: [appengine-java] Problem with using OpenSSL-generated RSA key on App Engine Java

2011-06-26 Thread Dado Colussi
On 26 June 2011 11:36, Stephen Johnson onepagewo...@gmail.com wrote:

 If private.der is in binary format then why are you reading it in as a
 String using Scanner???



Because I'm an idiot, but I managed to resolve the issue now. Thank you for
pointing me to the right direction.

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



[appengine-java] req.getparamater non-latin character problem.

2011-06-26 Thread Korcan Ergün
Hi;
I tried to use nonlatein characters in URL GET request.But when i use
nonlatin chars looking like ?.

I tried

  String kimeisim = req.getParameter(kimeisim);
kimeisim = new String(kimeisim.getBytes(8859_1),UTF8);


but nothing happens still non latin chars are ? .

Thanks for all helps

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



[appengine-java] Download and install older version of appengine sdk

2011-06-26 Thread RRRaney
Hello,
 
I have installed appengine sdk 1.5.1 and deleted all 1.5.0 libraries.
One of my applications has stopped working.
Is there a site that I can download the 1.5.0 sdk?
All that I seem to be able to find is the latest version.
I would like to install and try the broken application.
 
Thanks,
 
Raney

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



[appengine-java] Download and Install older appengine versions

2011-06-26 Thread RRRaney
Hello,
 
I have updated to Java sdk 1.5.1 and deleted all references to 1.5.0.
 
I have just found an application that is not running the way it was with 
1.5.0.
 
Is there a page that I can go to lo download older versions of the appengine 
sdk.
 
All that I seem to be able to find is the latest 1.5.1 version, I would like 
to download install and try the broken application.
 
Thanks,
 
Raney

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



Re: [appengine-java] Download and Install older appengine versions

2011-06-26 Thread Evan Cheng
http://googleappengine.googlecode.com/files/appengine-java-sdk-1.5.0.zip

On Sat, Jun 25, 2011 at 7:59 PM, RRRaney rrrsyst...@gmail.com wrote:

 Hello,

 I have updated to Java sdk 1.5.1 and deleted all references to 1.5.0.

 I have just found an application that is not running the way it was with
 1.5.0.

 Is there a page that I can go to lo download older versions of the
 appengine sdk.

 All that I seem to be able to find is the latest 1.5.1 version, I would
 like to download install and try the broken application.

 Thanks,

 Raney

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


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



Re: [google-appengine] Updated App Engine Pricing FAQ!

2011-06-26 Thread Raymond C.
I agree with most Nick said, especially on (2) and (3)

Hi Greg,

Regarding your points made on *(3) How can you justify your instance price 
when compared with Amazon EC2?*:

We have been given up a lot on the power and flexibility for using GAE (e.g. 
30 second limit, no socket support, no external SMTP for free email, no 
custom binary lib, no non-blocking runtime with python, etc etc).  Given 
Google has full control on how the platform behaves (so on how our apps 
behave) and added so many limitations, I expect GAE to be cheaper than IAAS 
like AWS.  Unfortunately its the other way around (also note that AWS is 
pretty expensive among all the IAAS out there).

Of course you can charge for whatever you like, but I can hardly think 
anyone would be picking GAE in the future with such an uncompetitive pricing 
and added limitations, on such a unique environment that takes you months or 
years to adapt which you can take it nowhere else.


-- 
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/-/xoYnQvOvUpgJ.
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] Can deleted app ids never be reused under AppEngine?

2011-06-26 Thread Robert Kluin
You can request an alias be created from the old to new app.
Shouldn't appear any different than if you deleted and recreated to
your users.






On Thu, Jun 23, 2011 at 05:30, Devraj Mukherjee dev...@gmail.com wrote:
 Hi Brandon,

 On Thu, Jun 23, 2011 at 5:19 PM, Brandon Wirtz drak...@digerat.com wrote:
 Nope.


 Damn :)

 Thanks anyway

 --
 You 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] Can deleted app ids never be reused under AppEngine?

2011-06-26 Thread Prashant
can i have multiple aliases mapped to a single app. in case, i want to put
multiple applications in single appengine app to optimize cost as per new
pricing scheme ...

-- 
You 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] Migrating to HRD from Master/Slave

2011-06-26 Thread Robert Kluin
Hi,
  See responses inline.


On Tue, Jun 21, 2011 at 11:31, luka uluk...@gmail.com wrote:
 We are considering to migrate our master/slave application to HRD
 one.

 We have a few questions regarding this process:

 1. Today we have other collaborating site which uses our application
 URL  lugotest.appspot.com (we used it instead of the domain name for
 SSL reasons).
 Will we be able to preserve the application URL? or will we have to
 change it to new application URL name.

You can request an alias from the old appid to the new by submitting a
billing issue.


 Is Google app engine support SSL for non appspot domains?

It is on the roadmap, unfortunately it has been there a very long time
and there is still no ETA.


 2. Is the only way to migrate data is to use python instructions?

You could use the built in datastore admin, or write something
yourself.  I've actually done several migrations using my own tools to
directly move the data.

I also think with the new files API you could put something much more
efficient together by dumping your data to large blobs, moving the
blobs to the new app, then having something process the blob into
datastore entities.



 3. Is there a way to purchase support for this operation to ensure the
 success of the migration?



 --
 You 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] TypeError: escape_encode() argument 1 must be str, not unicode

2011-06-26 Thread Robert Kluin
Yes!  *Another* URL shortener!  ;)






On Tue, Jun 21, 2011 at 06:32, Taufiq Sunar taufiqsu...@gmail.com wrote:
 Yes its windows and its in development server :D btw, after I deployed
 it, this problem disappear! thanks for the response!

 On 6/21/11, Brandon Wirtz drak...@digerat.com wrote:
 Those look like windows errors, is this app deployed?


 -Original Message-
 From: google-appengine@googlegroups.com
 [mailto:google-appengine@googlegroups.com] On Behalf Of Taufiq Sunar
 Sent: Monday, June 20, 2011 5:10 AM
 To: google-appengine@googlegroups.com
 Subject: [google-appengine] TypeError: escape_encode() argument 1 must be
 str, not unicode

 Im trying to make a url shortener using Google URL Shortener API with App
 Engine

 this is my source code in main.py

 from google.appengine.ext import webapp
 from google.appengine.ext.webapp import util from xml.dom import minidom
 from google.appengine.ext.webapp.util import run_wsgi_app import httplib,
 json import cgi

 class MainPage(webapp.RequestHandler):
     def get(self):
         self.response.out.write(
           html
           head
           titleSimple Url Shortener/title
             body
             Url shortener using Google URL Shortener API. Masukkan url yang
 pengen dipendekin.
               form action=/hasil method=post
                 divUrl/divdivtextarea name=url rows=1
 cols=50/textarea/div
                 divinput type=submit value=Cari/div
               /form
             /body
           /html)

 class Cari(webapp.RequestHandler):
     def post(self):
       url = self.request.get('url')
       conn = httplib.HTTPSConnection('www.googleapis.com')
         conn.connect();

         short = ''+url+''

         body = '{longUrl: %s}' % short
         headers = {'content-type':'application/json'}

         conn.request('POST', '/urlshortener/v1/url', body, headers)

         response = json.loads(conn.getresponse().read())

         self.response.out.write('htmltitleSimple Url
 Shortener/titlebodyUrl yang sudah dipendekin dari ', url, '
 :pre')
         self.response.out.write(response[id])
       self.response.out.write('/pre/body/html')

 application = webapp.WSGIApplication([('/', MainPage), ('/hasil', Cari)],
 debug=True)

 def main():
     run_wsgi_app(application)

 if __name__ == '__main__':
     main()

 and its get error message :

 Traceback (most recent call last):
   File C:\Program
 Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py,
 line 702, in __call__
     handler.post(*groups)
   File D:\latian web\url shortener\main.py, line 55, in post
     response = json.loads(conn.getresponse().read())
   File C:\Program
 Files\Google\google_appengine\google\appengine\dist\httplib.py, line 213,
 in getresponse
     self._allow_truncated, self._follow_redirects)
   File C:\Program
 Files\Google\google_appengine\google\appengine\api\urlfetch.py, line 260,
 in fetch
     return rpc.get_result()
   File C:\Program
 Files\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\Google\google_appengine\google\appengine\api\urlfetch.py, line 348,
 in _get_fetch_result
     rpc.check_success()
   File C:\Program
 Files\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py,
 line 558, in check_success
     self.__rpc.CheckSuccess()
   File C:\Program
 Files\Google\google_appengine\google\appengine\api\apiproxy_rpc.py,
 line 156, in _WaitImpl
     self.request, self.response)
   File C:\Program
 Files\Google\google_appengine\google\appengine\api\apiproxy_stub.py,
 line 87, in MakeSyncCall
     method(request, response)
   File C:\Program
 Files\Google\google_appengine\google\appengine\api\urlfetch_stub.py,
 line 207, in _Dynamic_Fetch
     validate_certificate=validate_certificate)
   File C:\Program
 Files\Google\google_appengine\google\appengine\api\urlfetch_stub.py,
 line 294, in _RetrieveURL
     escaped_payload = payload.encode('string_escape')
 TypeError: escape_encode() argument 1 must be str, not unicode

 anybody knows what should i do to troubleshoot this?
 i use httplib module to make a connection and request.

 Best regards,

 Taufiq Sunar

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

Re: [google-appengine] Strange Index behaviour and proper index strategy

2011-06-26 Thread Robert Kluin
Hi Alex,
  Some responses inline.



On Mon, Jun 20, 2011 at 10:41, Alex-S senior.pep...@gmail.com wrote:
 Hi Google App Engine team,


 Lets say I have an Entity with a few properties:

 @Entity
 public class Animal{

  private String domain;
  private String kingdom;
  private String phylum;
  private String class;
  private String order;
  private String family;
  private String genus;
  private String species;
  private String classifier;

  private Date classifiedDate;
  private Date dateEntered;

  //getters + setters ...

 }

 If I want to search on say, domain, kingdom, class and dateEntered
 with equality google docs suggest I don't need an index, but strangely
 on some values - dateEntered = 2007 + any value of the properties I
 get
 DatastoreNeedIndexException but not for  dateEntered = 2006 or 2008. I
 would have expected to get the error for all values where an index was
 not in place or no error at all. Have i done something wrong here?

This is using a merge-join.  Basically it is scanning each single
property index, getting the matching results, and finding the
intersection between them.  In some cases this is very inefficient,
for example this might happen if 2007 has many results that must be
checked against the other indexes.

Defining an index will make this query much faster at read time, but
slightly increase your write cost.



 Also is it true that I need to specify an index (ok even auto
 generated) for every query where a sort order is specified?

When multiple properties are used, yes.


 so for instance if I want to query on any domain=something ordered by
 classifiedDate descending that's one index:
    datastore-index kind=Animal ancestor=false 
        property name=domain direction=asc/
        property name=classifiedDate  direction=desc/
    /datastore-index

 but if I wanted to query on any domain=something and
 kingdom=otherThing ordered by classifiedDate  that would be two
 indexs:

No, IIRC you just need one index in this case.

   datastore-index kind=Animal ancestor=false 
        property name=domain direction=asc/
        property name=kingdom direction=asc/
        property name=classifiedDate  direction=desc/
    /datastore-index

   datastore-index kind=Animal ancestor=false 
        property name=kingdom direction=asc/
        property name=domain direction=asc/
        property name=classifiedDate  direction=desc/
    /datastore-index

 because app engine treats property ordering as important?

I don't believe this is currently the case.  However, as I recall
there was some mention that this might be the case in the future --
but I'm not 100% sure about that.



 I guess I could always order the query properties myself to ensure no
 index is duplicated and then for small numbers of properties this
 isn't too bad.

 If I wanted to optionally search for kingdoms or domains or both
 ordered by classifiedDate   the index definition would be
    datastore-index kind=Animal ancestor=false 
        property name=domain direction=asc/
        property name=classifiedDate  direction=desc/
    /datastore-index
    datastore-index kind=Animal ancestor=false 
        property name=kingdom direction=asc/
        property name=classifiedDate  direction=desc/
    /datastore-index
  datastore-index kind=Animal ancestor=false 
        property name=domain direction=asc/
        property name=kingdom direction=asc/
        property name=classifiedDate  direction=desc/
    /datastore-index

 But, If I wanted to search on any combination of, say, 3 properties +
 an order field this would be some 8 index definitions,

 5 properties + an order would mean 32 definitions.

Yes, you might need to define a lot of indexes if you're optionally
querying on many combinations of properties.  If they are largely
equality filters you might be able to use list properties to help a
little, but the order introduces some other complexities with that.

Check out the mastering the datastore articles.  They are quite
helpful, though a bit dated.
  http://code.google.com/appengine/articles/datastore/overview.html


Robert




 9 entity properties and order on classifiedDate would be some 512(!!)
 different index definitions. If I wanted ascending as well as
 descending order on classifiedDate  then I have to double that - 1024
 definitions. and if I wanted to order on the query (optionally) as
 dateEntered  ascending or descending instead then thats double again
 -  2048. These seems crazy just to query on 9 difference properties.
 Or have I got it badly wrong?

 Can I just create the  4 indexes  :
     datastore-index kind=Animal ancestor=false 
        property name=classifiedDate  direction=desc/
    /datastore-index

       datastore-index kind=Animal ancestor=false 
        property name=classifiedDate  direction=asc/
    /datastore-index

    datastore-index kind=Animal ancestor=false 
        property name=dateEntered  direction=desc/
    /datastore-index

    datastore-index kind=Animal 

Re: [google-appengine] Any advice on a potential rejig of my application?

2011-06-26 Thread Robert Kluin
Hey John,
  I've used and seen a few ways to deal with trees depending on what
is actually in them.

  I have used relational type models, where each node in the tree
points to its parent.  You can make this queryable in some way by
storing a list of ancestors or descendants.  Or, you can do some
denormalization.  I've also used the each-node-is-an-entity method in
conjunction with a meta-data-entity that stores the actual structure
as something like a serialized nested dict.  There are other subtle
variations on each of these themes.  The right one probably mostly
depends on how you will write and *especially* on how you will need to
query and fetch the data.  Pick the technique that makes fetching /
traversing / querying the tree easiest for your app.

  If each node is light-weight, like a name, then storing the entire
tree serialized works well too (I frequently do this for meta-data
used in computations).  Just be aware it makes querying a bit more
difficult.  If the nodes are a little heavier, but still pretty small,
the idea of storing the tree until hit hits some critical size and
splitting it is cool.  If you expect most trees will fit in a small
number of entities (like 1), this could be a very nice solution since
a single fetch by key gets the whole tree.  If you've got a good way
to do this for your app, it might be worth looking in to.

  The lucky boots + kick the crap of the code warranted some
responses; disappointed with the rest of the group community


Robert


On Tue, Jun 21, 2011 at 03:19, Joops john.b...@gmail.com wrote:
 Hi all,

 I am facing a massive rewrite, so I wanted to get some validation
 before I strap on my lucky boots and go kick the crap out of my code.
 (by which I mean refractor it after some serious pondering)

 My program stores data in a tree structure, a user could have several
 trees. Currently I have an entry in the datastore for each node. I can
 walk up and down the tree, fetching nodes and I can do everything I
 want to and all is fine.

 Except that it hits the datastore loads.

 I am considering re-plumbing it so that each whole tree is a data
 store entry.
 (unless it was over a certain size, in which case I would break a
 nodes children out to a new data store entry)

 So if a user needed the data for a specific node, then its appropriate
 tree would be loaded from memcache or the datasore, and then the data
 would be returned to the user.

 Just for background - I am a basic level python user. (only use it in
 my free time).

 Ok… my questions…

 - Does this seem reasonable to you? (My original architecture was very
 stuck in how I would have managed the data in a relational database)

 - Any caveats or things I should be aware of? (binary or JSON
 serialisation performance, that kind of thing)

 - Any thoughts on how I should address nodes? (Currently they have a
 convenient ID which my client side code can use to identify which node
 to do something to)
    - I will most likely use guids, but they seem a bit heavy

 Thanks very much

 J

 --
 You received this message because you are subscribed to the Google Groups 
 Google App Engine group.
 To post to this group, send email to google-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: Any advice on a potential rejig of my application?

2011-06-26 Thread Tim Hoffman
I would suggest the approach is dependent on the most likely access pattern.

If you only use parts of the tree at a time (For instance url traversal of 
the tree)  then I would keep the nodes as seperate entities.

I have done this for a simple CMS.  All children have a reference property 
pointing to the parent.  And a list property describing the path elements 
(names).
In addition each parent holds an ordered list of names (children) and keys 
of the children.

This way you can retrieve all immediate children in a single db.get.  You 
can get children of arbitrary depths by querying based on the path.

Aggressive memcache use then means any re-use of parts of the tree on 
subsequant requests hit cache pretty well.

If one the other hand your using whole trees then ignore what I just said 
;-)

Have fun.

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/-/ceAJxTTK-oMJ.
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] Can deleted app ids never be reused under AppEngine?

2011-06-26 Thread Devraj Mukherjee
On Sun, Jun 26, 2011 at 4:52 PM, Robert Kluin robert.kl...@gmail.com wrote:
 You can request an alias be created from the old to new app.
 Shouldn't appear any different than if you deleted and recreated to
 your users.


Thanks Robert.

-- 
You 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: Updated App Engine Pricing FAQ!

2011-06-26 Thread JH
On this note, I'm very glad to see GAE coming out of preview.

I'd like to point out that some of GAE's success must be due to the
pricing scheme
pay as you go along with cheap prices.  I just really hope that this
new pricing scheme
along with higher prices doesn't deter enough users so that in two
years we aren't getting
another announcement that GAE will be discontinued in 3 years due to
a large drop in interest.

On Jun 26, 1:13 am, Raymond C. windz...@gmail.com wrote:
 I agree with most Nick said, especially on (2) and (3)

 Hi Greg,

 Regarding your points made on *(3) How can you justify your instance price
 when compared with Amazon EC2?*:

 We have been given up a lot on the power and flexibility for using GAE (e.g.
 30 second limit, no socket support, no external SMTP for free email, no
 custom binary lib, no non-blocking runtime with python, etc etc).  Given
 Google has full control on how the platform behaves (so on how our apps
 behave) and added so many limitations, I expect GAE to be cheaper than IAAS
 like AWS.  Unfortunately its the other way around (also note that AWS is
 pretty expensive among all the IAAS out there).

 Of course you can charge for whatever you like, but I can hardly think
 anyone would be picking GAE in the future with such an uncompetitive pricing
 and added limitations, on such a unique environment that takes you months or
 years to adapt which you can take it nowhere else.

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

2011-06-26 Thread Alfred Fuller
On Sat, Jun 25, 2011 at 5:36 PM, Jeff Schnitzer j...@infohazard.org wrote:

 On Sat, Jun 25, 2011 at 3:26 PM, Alfred Fuller 
 arfuller+appeng...@google.com wrote:

 This makes sense, and encourages more use of memcache. to hold entities.
  One question that I've been wondering a while - presuming no caching, does
 this query-keys+batch-get approach produce higher latency than a simple
 query, and if so, by how much?


 a db.Get will force strong consistency in the High Replication Datastore,
 which will introduce higher latency depending on how many entity groups you
 are fetching from (see other threads about this problem). If you set the
 read_policy to EVENTUAL_CONSISTENCY (or you are still using M/S Datastore)
 you will only pay the additional RPC latency. This is the not taking into
 account the 1000 entities vs 500 entities part of this question, which is
 hard to predict.


 For fetching let's say 100 entities, what % of the cost of the fetch is
 just the RPC?  Is this fairly insignificant compared to the cost of pulling
 100 entities from the datastore?

 Also, when you say RPC, I presume you mean the RPC from our appserver to
 whatever system manages datastore requests, right?  Because there is likely
 a handful of requests from that system out to the individual tablet servers
 that hold the entity data, right?


The only difference between querying keys then manually getting the entities
(with EVENTUAL_CONSISTENCY in HRD) is:
 - Higher likelihood of seeing inconsistent results (entities that no longer
match query)
 - Additional appserver - datastore RPC overhead (you will have to run
performance tests to see what this is, might be able to hid it with async
calls)
 - Additional small op charge per key fetched

otherwise they function identically.



 Also, is there any way we can get the transaction timestamp out on
 datastore writes?  This would *dramatically* improve the robustness of code
 that tries to keep memcache in sync with the datastore during contention.
  I've spoken with Alfred and Max about this, but I don't know if it's a
 priority.  This could potentially reduce datastore bills by orders of
 magnitude.


 :-), Ya it will save you the gets to populate the cache.


 A couple of us in Objectify-land tried to come up with a way to keep the
 memcache synchronized with the datastore during contended writes, and we
 failed to come up with a good answer.  I'm fairly certain that without
 access to the write timestamp, there's no way to guarantee synchronization.

 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.


-- 
You 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] nothing changed... my app broke! (django template render error)

2011-06-26 Thread Scott

In the last week or two, one part of my app stopped working.  I
haven't looked at the code in months.   Did something change that
broke my old code?

The end of the traceback shows:
BadValueError: Property user must be a User

Where to look?  This app has worked flawlessly for a couple years now.



Top of the traceback:

 line 389, in get
self.response.out.write(template.render(path, template_values))
  File /base/python_runtime/python_lib/versions/1/google/appengine/
ext/webapp/template.py, line 73, in render
return t.render(Context(template_dict))
  File /base/python_runtime/python_lib/versions/1/google/appengine/
ext/webapp/template.py, line 115, in wrap_render
return orig_render(context)
  File /base/python_runtime/python_lib/versions/third_party/
django-0.96/django/template/__init__.py, line 168, in render
return self.nodelist.render(context)

 * 

  File /base/python_runtime/python_lib/versions/1/google/appengine/
ext/db/__init__.py, line 3172, in validate
raise BadValueError('Property %s must be a User' % self.name)
BadValueError: Property user must be a User

-- 
You 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] channels - socket.close() in JS not working on dev_server

2011-06-26 Thread Roberto Saccon
In javascript I try to close a perfectly working channel socket object. 
While it works on appengine, on dev server I get the following error:

GET 
http://192.168.1.2:8080/_ah/channel/dev?command=pollchannel=channel--g1olif-18580476422013912411_0client=connection-3
 
500 (Client connection with ID connection-3 not found.)

anything I am doing wrong ??? I am using 1.5.1 SDK with Java

--
Roberto

-- 
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/-/xuXYJxXRZfUJ.
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: Any advice on a potential rejig of my application?

2011-06-26 Thread Joops
Cheers guys,

I have had quite a fun time over the course of this project trying to
optimise the tree for various different things at different times.
(It's a notes app, and people store the notes in a tree structure).

I have found a real tension between making it easy to get tasks (by
storing various child and ancestor lists) and making it cheap to keep
everything up to date.

It's going to be quite write heavy, so I want to make writing and
updating notes as cheap as possible.

As Robert mentioned, if I can get the tree into a single entity, it is
going to make writing and reading as cheap as possible.

Hopefully most people will have a lot less than 1MB of notes.
(not writing an evernote replacement!)

Thanks again both!

J.

On Jun 26, 9:23 am, Tim Hoffman zutes...@gmail.com wrote:
 I would suggest the approach is dependent on the most likely access pattern.

 If you only use parts of the tree at a time (For instance url traversal of
 the tree)  then I would keep the nodes as seperate entities.

 I have done this for a simple CMS.  All children have a reference property
 pointing to the parent.  And a list property describing the path elements
 (names).
 In addition each parent holds an ordered list of names (children) and keys
 of the children.

 This way you can retrieve all immediate children in a single db.get.  You
 can get children of arbitrary depths by querying based on the path.

 Aggressive memcache use then means any re-use of parts of the tree on
 subsequant requests hit cache pretty well.

 If one the other hand your using whole trees then ignore what I just said
 ;-)

 Have fun.

 T

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

2011-06-26 Thread Branko Vukelic
I'm currently trying to figure out the best way to send batches of
emails using tasks. There are three ways I can imagine doing it:

1. Enqueue a task passing it a list of addressees, and the task
processes the first one, and enqueues a task passing it the rest

2. Enqueue a task passing it the whole list, and the task processes N
addresses, and enqueues a task passing it the rest

3. Enqueue a task passing it the whole list, task enqueues another
task with all items except first N items, and processes the first N
items after that (which I guess would imagine to parallel processing).

How would you do it?

-- 
Branko Vukelić
bra...@herdhound.com

Lead Developer
Herd Hound (tm) - Travel that doesn't bite
www.herdhound.com

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

2011-06-26 Thread Stephen
On Sun, Jun 26, 2011 at 5:02 PM, Alfred Fuller
arfuller+appeng...@google.com wrote:

  - Additional small op charge per key fetched otherwise they function 
 identically.

Speaking of charges, how are we to interpret the new fields
CommitCost.requested_entity_puts and
CommitCost.requested_entity_deletes in eg. the PutResponse protocol
buffer which were added in the latest SDK? Should we ignore the
existing IndexWrites, EntityWrites etc.?

-- 
You 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: Sending email in batch

2011-06-26 Thread nischalshetty
If you're using the appengine mail api be sure you want that or something 
along the lines of Amazons mail service because I remember reading a thread 
where one of the appengine devs said the email service is not meant for 
large amount of emails (clients would block your email and many others might 
take it to be spam)

How about querying the datastore and making use of a cursor. Pass the cursor 
value to the new tasks. Will that work for you? 

-- 
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/-/F9QNcUuiWSgJ.
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: Sending email in batch

2011-06-26 Thread nischalshetty
Here is the discussion about using a different dedicated email service in 
case you are into sending a lot of emails 
https://groups.google.com/d/msg/google-appengine/azhX_BKiNiE/WYrM9blv1CIJ

-- 
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/-/yL6EBkFAK4wJ.
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: Sending email in batch

2011-06-26 Thread Branko Vukelic
On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty
nischalshett...@gmail.com wrote:
 If you're using the appengine mail api be sure you want that or something
 along the lines of Amazons mail service because I remember reading a thread
 where one of the appengine devs said the email service is not meant for
 large amount of emails (clients would block your email and many others might
 take it to be spam)

Yes I know about this. We will use SendGrid after Beta release, but
for Alpha, we plan to use the GAE mail API simply to keep things
rolling.

 How about querying the datastore and making use of a cursor. Pass the cursor
 value to the new tasks. Will that work for you?

The mailing lists are generated dynamically. So once the list is
compiled from the data in the datastore, I would not like to store it,
and then repeatedly read it from the datastore each time a task is
executed. What I do is:

mailing_list = generate_list(from=some_data)
task.add(url='/url/to/task',
 params={'mailing_list': mailing_list.join(',')})

and in the task handler (when I want to do a batch of 50 emails in one task):

mailing_list = params.POST.get('mailing_list').split(',')
to_process = mailing_list[50:]
the_rest = mailing_list[:50]

or in case I want to go one by one:

to_process = mailing_list.pop(0)
the_rest = mailing_list

enqueue the_rest, and process to_process. I haven't tested this yet,
but I'm wondering if it's better to go one-by-one or many-by-many.

-- 
Branko Vukelić
bra...@herdhound.com

Lead Developer
Herd Hound (tm) - Travel that doesn't bite
www.herdhound.com

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

2011-06-26 Thread Nischal Shetty
I would suggest you do it in parallel. Create n tasks with x emails in each
of them. It would be faster that way!



On 26 June 2011 15:52, Branko Vukelic bg.bra...@gmail.com wrote:

 On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty
 nischalshett...@gmail.com wrote:
  If you're using the appengine mail api be sure you want that or something
  along the lines of Amazons mail service because I remember reading a
 thread
  where one of the appengine devs said the email service is not meant for
  large amount of emails (clients would block your email and many others
 might
  take it to be spam)

 Yes I know about this. We will use SendGrid after Beta release, but
 for Alpha, we plan to use the GAE mail API simply to keep things
 rolling.

  How about querying the datastore and making use of a cursor. Pass the
 cursor
  value to the new tasks. Will that work for you?

 The mailing lists are generated dynamically. So once the list is
 compiled from the data in the datastore, I would not like to store it,
 and then repeatedly read it from the datastore each time a task is
 executed. What I do is:

 mailing_list = generate_list(from=some_data)
 task.add(url='/url/to/task',
 params={'mailing_list': mailing_list.join(',')})

 and in the task handler (when I want to do a batch of 50 emails in one
 task):

 mailing_list = params.POST.get('mailing_list').split(',')
 to_process = mailing_list[50:]
 the_rest = mailing_list[:50]

 or in case I want to go one by one:

 to_process = mailing_list.pop(0)
 the_rest = mailing_list

 enqueue the_rest, and process to_process. I haven't tested this yet,
 but I'm wondering if it's better to go one-by-one or many-by-many.

 --
 Branko Vukelić
 bra...@herdhound.com

 Lead Developer
 Herd Hound (tm) - Travel that doesn't bite
 www.herdhound.com

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




-- 
-Nischal
twitter: NischalShetty http://twitter.com/nischalshetty
facebook: Nischal http://facebook.com/nischal

-- 
You 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: Sending email in batch

2011-06-26 Thread Branko Vukelic
Ok, thanks for all the answers. I'll do it that way.

On Sun, Jun 26, 2011 at 10:16 PM, Nischal Shetty
nischalshett...@gmail.com wrote:
 I would suggest you do it in parallel. Create n tasks with x emails in each
 of them. It would be faster that way!


 On 26 June 2011 15:52, Branko Vukelic bg.bra...@gmail.com wrote:

 On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty
 nischalshett...@gmail.com wrote:
  If you're using the appengine mail api be sure you want that or
  something
  along the lines of Amazons mail service because I remember reading a
  thread
  where one of the appengine devs said the email service is not meant for
  large amount of emails (clients would block your email and many others
  might
  take it to be spam)

 Yes I know about this. We will use SendGrid after Beta release, but
 for Alpha, we plan to use the GAE mail API simply to keep things
 rolling.

  How about querying the datastore and making use of a cursor. Pass the
  cursor
  value to the new tasks. Will that work for you?

 The mailing lists are generated dynamically. So once the list is
 compiled from the data in the datastore, I would not like to store it,
 and then repeatedly read it from the datastore each time a task is
 executed. What I do is:

 mailing_list = generate_list(from=some_data)
 task.add(url='/url/to/task',
             params={'mailing_list': mailing_list.join(',')})

 and in the task handler (when I want to do a batch of 50 emails in one
 task):

 mailing_list = params.POST.get('mailing_list').split(',')
 to_process = mailing_list[50:]
 the_rest = mailing_list[:50]

 or in case I want to go one by one:

 to_process = mailing_list.pop(0)
 the_rest = mailing_list

 enqueue the_rest, and process to_process. I haven't tested this yet,
 but I'm wondering if it's better to go one-by-one or many-by-many.

 --
 Branko Vukelić
 bra...@herdhound.com

 Lead Developer
 Herd Hound (tm) - Travel that doesn't bite
 www.herdhound.com

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




 --
 -Nischal
 twitter: NischalShetty
 facebook: Nischal



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




-- 
Branko Vukelić
bra...@herdhound.com

Lead Developer
Herd Hound (tm) - Travel that doesn't bite
www.herdhound.com

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

2011-06-26 Thread Nischal Shetty
Also remember that in a batch you can add a maximum of 100 tasks.

On 26 June 2011 17:00, Branko Vukelic bg.bra...@gmail.com wrote:

 Ok, thanks for all the answers. I'll do it that way.

 On Sun, Jun 26, 2011 at 10:16 PM, Nischal Shetty
 nischalshett...@gmail.com wrote:
  I would suggest you do it in parallel. Create n tasks with x emails in
 each
  of them. It would be faster that way!
 
 
  On 26 June 2011 15:52, Branko Vukelic bg.bra...@gmail.com wrote:
 
  On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty
  nischalshett...@gmail.com wrote:
   If you're using the appengine mail api be sure you want that or
   something
   along the lines of Amazons mail service because I remember reading a
   thread
   where one of the appengine devs said the email service is not meant
 for
   large amount of emails (clients would block your email and many others
   might
   take it to be spam)
 
  Yes I know about this. We will use SendGrid after Beta release, but
  for Alpha, we plan to use the GAE mail API simply to keep things
  rolling.
 
   How about querying the datastore and making use of a cursor. Pass the
   cursor
   value to the new tasks. Will that work for you?
 
  The mailing lists are generated dynamically. So once the list is
  compiled from the data in the datastore, I would not like to store it,
  and then repeatedly read it from the datastore each time a task is
  executed. What I do is:
 
  mailing_list = generate_list(from=some_data)
  task.add(url='/url/to/task',
  params={'mailing_list': mailing_list.join(',')})
 
  and in the task handler (when I want to do a batch of 50 emails in one
  task):
 
  mailing_list = params.POST.get('mailing_list').split(',')
  to_process = mailing_list[50:]
  the_rest = mailing_list[:50]
 
  or in case I want to go one by one:
 
  to_process = mailing_list.pop(0)
  the_rest = mailing_list
 
  enqueue the_rest, and process to_process. I haven't tested this yet,
  but I'm wondering if it's better to go one-by-one or many-by-many.
 
  --
  Branko Vukelić
  bra...@herdhound.com
 
  Lead Developer
  Herd Hound (tm) - Travel that doesn't bite
  www.herdhound.com
 
  --
  You received this message because you are subscribed to the Google
 Groups
  Google App Engine group.
  To post to this group, send email to google-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.
 
 
 
 
  --
  -Nischal
  twitter: NischalShetty
  facebook: Nischal
 
 
 
  --
  You 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.
 



 --
 Branko Vukelić
 bra...@herdhound.com

 Lead Developer
 Herd Hound (tm) - Travel that doesn't bite
 www.herdhound.com

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




-- 
-Nischal
twitter: NischalShetty http://twitter.com/nischalshetty
facebook: Nischal http://facebook.com/nischal

http://www.justunfollow.com http://www.buffr.com

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

2011-06-26 Thread Branko Vukelic
I've decided to process 50 emails per task. I've looked over the logs and
I'm guessing that's far more than enough limit to for the task to finish in
10 minutes.The task itself checks if there's anything left (at the very top)
and queues another task. It seems to be working nicely. Not sure if that's
the proper way of doing parallel processing, but I'm happy with the
solution.

On Sun, Jun 26, 2011 at 11:33 PM, Nischal Shetty
nischalshett...@gmail.comwrote:

 Also remember that in a batch you can add a maximum of 100 tasks.


 On 26 June 2011 17:00, Branko Vukelic bg.bra...@gmail.com wrote:

 Ok, thanks for all the answers. I'll do it that way.

 On Sun, Jun 26, 2011 at 10:16 PM, Nischal Shetty
 nischalshett...@gmail.com wrote:
  I would suggest you do it in parallel. Create n tasks with x emails in
 each
  of them. It would be faster that way!
 
 
  On 26 June 2011 15:52, Branko Vukelic bg.bra...@gmail.com wrote:
 
  On Sun, Jun 26, 2011 at 9:41 PM, nischalshetty
  nischalshett...@gmail.com wrote:
   If you're using the appengine mail api be sure you want that or
   something
   along the lines of Amazons mail service because I remember reading a
   thread
   where one of the appengine devs said the email service is not meant
 for
   large amount of emails (clients would block your email and many
 others
   might
   take it to be spam)
 
  Yes I know about this. We will use SendGrid after Beta release, but
  for Alpha, we plan to use the GAE mail API simply to keep things
  rolling.
 
   How about querying the datastore and making use of a cursor. Pass the
   cursor
   value to the new tasks. Will that work for you?
 
  The mailing lists are generated dynamically. So once the list is
  compiled from the data in the datastore, I would not like to store it,
  and then repeatedly read it from the datastore each time a task is
  executed. What I do is:
 
  mailing_list = generate_list(from=some_data)
  task.add(url='/url/to/task',
  params={'mailing_list': mailing_list.join(',')})
 
  and in the task handler (when I want to do a batch of 50 emails in one
  task):
 
  mailing_list = params.POST.get('mailing_list').split(',')
  to_process = mailing_list[50:]
  the_rest = mailing_list[:50]
 
  or in case I want to go one by one:
 
  to_process = mailing_list.pop(0)
  the_rest = mailing_list
 
  enqueue the_rest, and process to_process. I haven't tested this yet,
  but I'm wondering if it's better to go one-by-one or many-by-many.
 
  --
  Branko Vukelić
  bra...@herdhound.com
 
  Lead Developer
  Herd Hound (tm) - Travel that doesn't bite
  www.herdhound.com
 
  --
  You received this message because you are subscribed to the Google
 Groups
  Google App Engine group.
  To post to this group, send email to google-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.
 
 
 
 
  --
  -Nischal
  twitter: NischalShetty
  facebook: Nischal
 
 
 
  --
  You 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.
 



 --
 Branko Vukelić
 bra...@herdhound.com

 Lead Developer
 Herd Hound (tm) - Travel that doesn't bite
 www.herdhound.com

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




 --
 -Nischal
 twitter: NischalShetty http://twitter.com/nischalshetty
 facebook: Nischal http://facebook.com/nischal

 http://www.justunfollow.com http://www.buffr.com


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




-- 
Branko Vukelić
bra...@herdhound.com

Lead Developer
Herd Hound (tm) - Travel that doesn't bite
www.herdhound.com

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-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] Appstats and getCpuTimeInMegaCycles - How do I understand the number ?

2011-06-26 Thread Efi Merdler-Kravitz
Hey Guys,

My CPU quota is running out quite quickly and in order to understand
what is eating the resources I decided to use appsstats  and API calls
for my disposal:

1. QuotaService -

I'm using the following:
long start = mQuotaService.getCpuTimeInMegaCycles();
...
long end = mQuotaService.getCpuTimeInMegaCycles();
double cpuSeconds = mQuotaService.convertMegacyclesToCpuSeconds(end -
start);

When printing to the log I'm getting 0.52 however when looking at the
log numbers at the top I get
/job_worker 200 5530ms 51845cpu_ms 51125api_cpu_ms (printed in bold
red)

couple of questions:
a. What is the differences between the numbers? what is cpu_ms and
api_cpi_ms ?
b. Why the quota api tells me half a second however the log themselves
give me higher numbers (5530 ms) ?

2.  appstats -
appstats give me number of RPC calls

How can I use these numbers to measure the performance, for example I
know that datastore_v3.Delete is being called allot, does this call
takes the most of my cpu time?

Thank you,
Efi

-- 
You 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] Need to be able to create more apps

2011-06-26 Thread DFectuoso
Hi!

I have a limit of 20 apps, and have already created those 20. I am at
a Startup Weekend and really want to be able to push to a new appspot
url, could I get this limit raised for my account please?

Cheers

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



[google-appengine] Process parameters of a POST HTTP request in a REST web service (JERSEY)

2011-06-26 Thread Danilo Delizia
Hello everybody,
I'm developing a rest web service on GAE. I'm using Jersey framework
to implement the REST services. It is a POST service where I have to
pass also parameters. I tried to use 2 types of annotation but I can't
get the parameters:

with the annotation @Context

@POST
@Path(add)
@Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Notification addUser(@Context UriInfo uriInfo){
MultivaluedMapString, String queryParams =
uriInfo.getQueryParameters();
String nickname = queryParams.getFirst(nickname);
String name = queryParams.getFirst(name);
String surname = queryParams.getFirst(surname);
String telephone = queryParams.getFirst(telephone);
String email = queryParams.getFirst(email);
User =createUser(nickname, name, surname, telephone, email);
...
}



with the annotation @QueryParam

@POST
@Path(add)
@Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Notification addUser(@QueryParam(nickname) String nickname,
@QueryParam(name) String name, @QueryParam(surname) String
surname, @QueryParam(telephone) String telephone,
@QueryParam(email) String email) {
User =createUser(nickname, name, surname, telephone, email);
..
}

But in both cases I can not get the parameters all of them are null
values.

This is an example of my http request:

Request URL: http://windyser.appspot.com/rest/users/add
Request Method: POST
Params:
{nickname:prova,name:danilo,surname:delizia,email:pr...@yahoo.it,telephone:123}
Sent Headers
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Language: en

I also tied the @Consumes(text/plain) and @Consumes(application/x-
www-form-urlencoded) annotations, but it still does not work. In the
first case I get an Unsupported Media Type from GAE. And the second
case i get null parameters.

Anybody know if I'm doing something wrong?

Thanks in advance for your help

Danilo

-- 
You 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] Create Application SMS

2011-06-26 Thread Symmetry Solutions
I had a setting with my carrier that was blocking Web SMS messages and
as a result blocked the account creation SMS message. I have corrected
and verified that it is now working but I can not get account creation
to send me a message now.

Is there a time period where it will allow me to re-enter the number
and send the verification message after it has been blocked?

-- 
You 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: Updating entity in collection using JDO.

2011-06-26 Thread Jesper L
Chris,

I seem to have the same issue, and I believe it is related to this
bug: http://code.google.com/p/datanucleus-appengine/issues/detail?id=144

Did you find some work around?

/Jesper

On 24 Maj, 18:12, chris chris.hins...@gmail.com wrote:
 Background:

 I am using app engine 1.5 and GWT 2.3 with requestfactory. I have an
 inventory object that has an ArrayList of InventoryItems. I canupdate and add 
 entitites to the ArrayList collection without issue.
 Now I am trying toupdatea single InventoryItem object and it appears
 to complete successfully but the data is not updated. There is no
 exception being thrown and I see the the updated client values just
 before persisting the object. I have verified that the transaction is
 successful. Is there something I am missing? I have also tried to add
 a function in the Inventory class toupdatean InventoryItem and after
 mark the inventoryItems dirty using JDOHelper.makeDirty(this,
 inventoryItems) but this did not solve my issue either.

 @PersistenceCapable(identityType = IdentityType.APPLICATION,
 detachable = true)
 public class Inventory {

   /**
    *Listof all inventory items in this inventory.
    */
   @Persistent(mappedBy=inventory)
   @Element(dependent=true)
   privateListInventoryItem inventoryItems;

   ... more

 }

 --

 @PersistenceCapable(identityType = IdentityType.APPLICATION,
 detachable = true)
 public class InventoryItem {

   public InventoryItem persist() {
     System.out.println(Persisting object with id  + this.getId());
     System.out.println(Price is  + this.getPrice().toString());
     PersistenceManager em = EntityManager.getPersistenceManager();
     InventoryItem attached = null;

     Transaction tx = em.currentTransaction();
     try {
       tx.begin();
       attached = em.makePersistent(this);
       tx.commit();
     } catch (Exception e) {
       e.printStackTrace();
     } finally {
       try {
         if (tx.isActive()) {
           tx.rollback();
         }
       } finally {
         em.close();
       }
     }
     return attached;
   }

   /**
    * Primary key that can be used to reference this expense
    */
   @PrimaryKey
   @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
   @Extension(vendorName = datanucleus, key = gae.encoded-pk, value
 = true)
   private String id;

   @Persistent Inventory inventory;

    more data







 }

-- 
You 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] account verification

2011-06-26 Thread Kevin
I've tried and tried to get my account verified by SMS, and it appears
that I have run out of attempts now. I'm on Canada's largest wireless
network, so it seems rather odd that the text messages would not be
getting through.

Anyways, I've put in a request using the form - just wondering what
kind of timeline those are processed in?

Also, as a side note - verification by sms seems like a rather
ridiculous barrier for entry into cloud computing. Just sayin... I'd
gladly have provided credit card, called and verified over the phone,
whatever - as it stands I've got the weekend to work on my project,
and now I've lost a day waiting for an SMS that never arrived.

-- 
You 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] SMS used for lost account

2011-06-26 Thread ax
I have 2 appengine apps running but I forgot the account I used for
them. Now when I try to create a new app, the SMS errors saying the
number is already used. How can I find out what account was used for
my old apps?

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-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] IOError 0 from simpletext_connector.py during bulk download

2011-06-26 Thread Phil Lodine
I'm downloading data from my app's datastore and applying a simpletext
connector to save keys and b64-encoded data from some fields of all
entities of a particular type to disk on my local Windows system. The
download itself succeeds, giving me a .sql3 database of 50GB, which is
consistent with the total entity size reported by the AppEngine
dashboard -- so I believe everything gets downloaded okay. However,
the simpletext transform fails partway through unpacking the .sql3
database and writing the text file, with an IO error 0. A transcript
of the session, including the Python interpreter's call stack, is at
the bottom of this post. The command line includes the db_filename and
result_db_filename arguments because this is an attempt to resume an
earlier session that had failed in the exact same way.

Not sure if any of the following is significant:

-- I'm doing the download to the E: drive of a VM; this VM has 150GB
of storage, about 140GB of which were free before the start of the
download -- so there should be enough disk space to store the
transformed data. There's only about 1.2GB free on the VM's C: drive.

-- The last 2 entries in the call stack refer to files on the C: drive
that don't exist -- I had originally installed the AppEngine SDK on C:
but moved it to E: before this run, in the belief that the download
was failing because there wasn't enough space on C: for temporary
storage during the download. The SDK is now on the E: drive, and both
TMP and TEMP environment variables are set to e:\temp, which does
exist.

-- I'm using Python 2.5.4.

-- The transfer fails partway through, writing several GB of
transformed data to the output file but without completing the
transforms.

Any tips or clues would be appreciated -- thanks!




E:\work\Swapperappcfg.py download_data --kind=SomeKind --url=http://
someapp.appspot.com/_ah/remote_api --filename=output.dat
--config_file=config.yaml --db_filename=bulkloader-
progress-20110620.103156.sql3 --result_db_filename=bulkloader-
results-20
110620.103156.sql3 --http_limit=10 --bandwidth_limit=25
Downloading data records.
[INFO] Logging to bulkloader-log-20110624.113729
[INFO] Throttling transfers:
[INFO] Bandwidth: 25 bytes/second
[INFO] HTTP connections: 10/second
[INFO] Entities inserted/fetched/modified: 20/second
[INFO] Batch Size: 10
2011-06-24 11:37:30,858 WARNING appengine_rpc.py:435 ssl module not
found.
Without the ssl module, the identity of the remote host cannot be
verified, and
connections may NOT be secure. To fix this, please install the ssl
module from
http://pypi.python.org/pypi/ssl .
To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl
.
Please enter login credentials for someapp.appspot.com
Email: some_u...@gmail.com
Password for some_u...@gmail.com:
[INFO] Opening database: bulkloader-progress-20110620.103156.sql3
[INFO] Opening database: bulkloader-results-20110620.103156.sql3
[INFO] Connecting to someapp.appspot.com/_ah/remote_api
[INFO] Downloading kinds: ['SomeKind']

Traceback (most recent call last):
  File E:\google_appengine\appcfg.py, line 76, in module
run_file(__file__, globals())
  File E:\google_appengine\appcfg.py, line 72, in run_file
execfile(script_path, globals_)
  File E:\google_appengine\google\appengine\tools\appcfg.py, line
3592, in module
main(sys.argv)
  File E:\google_appengine\google\appengine\tools\appcfg.py, line
3583, in main
result = AppCfgApp(argv).Run()
  File E:\google_appengine\google\appengine\tools\appcfg.py, line
2229, in Run
self.action(self)
  File E:\google_appengine\google\appengine\tools\appcfg.py, line
3368, in __call__
return method()
  File E:\google_appengine\google\appengine\tools\appcfg.py, line
3174, in PerformDownload
run_fn(args)
  File E:\google_appengine\google\appengine\tools\appcfg.py, line
3087, in RunBulkloader
sys.exit(bulkloader.Run(arg_dict))
  File E:\google_appengine\bulkloader.py, line 4360, in Run

  File E:\google_appengine\bulkloader.py, line 4255, in
_PerformBulkload

  File E:\google_appengine\bulkloader.py, line 3551, in Run

  File E:\google_appengine\bulkloader.py, line 2489, in WorkFinished

  File C:\google_appengine\google\appengine\ext\bulkload
\bulkloader_config.py, line 500, in output_entities
  File C:\google_appengine\google\appengine\ext\bulkload
\simpletext_connector.py, line 112, in write_dict
IOError: [Errno 0] Error


-- 
You 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] problems with the admin console

2011-06-26 Thread Tirrell Payton
I am having problems with the admin console.  I am trying to take a
look at my data.
1.  Search for the particular record
2.  The record is found
3.  Click on record to see/edit data in all fields
Expected Result:  The ability to see and edit data
Actual Result:  A server error has occured

I dont see any way to troubleshoot this myself, but I wanted to see if
anyone else is having this problem or if there is a known issue.

-- 
You 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: App Engine 1.5.1 is out!

2011-06-26 Thread Tirrell Payton
Hi Ikai,

Im having what I think is a corrupt data issue, so I was wondering
what to expect from this: ' When displaying corrupt data in the Admin
Console dataviewer, a useful error will be displayed, instead of a
500. '
Because right now, the only error I am getting is 'Server Error.  A
server error has occurred.'

-Tirrell Payton

On Jun 21, 2:10 am, Ikai Lan (Google) ikai.l+gro...@google.com
wrote:
 Hey guys,

 App Engine 1.5.1 is out! Get it while it's hot! Blog post:

 http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html

 Release notes:

 Python

    - ProtoRPC is a new experimental library that provides a simple method
    for creating a well-defined and easy-to-use web-based RPC service.
    - The development server's datastore implementation now contains logic
    that closely replicates the consistency guarantees of the High Replication
    datastore. To use, run the dev_appserver with the flag --high_replication
    set to True.
    - All user request have an
 X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine-Country
    header which contains the ISO-3166-1 alpha-2 country code for the user,
    based on the IP address of the client request.
    - Applications are now associated with an app_identity, which can be used
    to authenticate requests originating from the app to other services.
    - The Channel API can now provide user presence, this can be configured
    by adding channel_presence to the list of inbound services for your
    application.
    - The Images API now supports the WebP format. Due to limitations in PIL,
    the SDK does not support the WebP format.
    - You can switch the timezone for App Engine logs in the Admin Console.
       -http://code.google.com/p/googleappengine/issues/detail?id=734
    - Fixed an issue in the SDK where leased tasks had the POST method. They
    now have a PULL method.
    - Fixed an issue where the Channel API didn't work with non-default
    versions of applications using the High Replication datastore.
    - When displaying corrupt data in the Admin Console dataviewer, a useful
    error will be displayed, instead of a 500.
       -http://code.google.com/p/googleappengine/issues/detail?id=4945

 Java

    - The development server's datastore and testing service implementations
    now contains logic that closely replicates the consistency guarantees of 
 the
    High Replication datastore. To use, run the dev_appserver with the flag
    -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20.
    - All user request have an
 X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine-Country
    header which contains the ISO-3166-1 alpha-2 country code for the user,
    based on the IP address of the client request.
    - Applications are now associated with an app_identity, which can be used
    to authenticate requests originating from the app to other services.
    - The Channel API can now provide user presence, this can be configured
    by adding channel_presence to the list of inbound services for your
    application.
    - The Images API now supports the WebP format.
    - You can switch the timezone for App Engine logs in the Admin Console.
       -http://code.google.com/p/googleappengine/issues/detail?id=734
    - Added javax.xml.ws.Service$Mode to the whitelist.
       -http://code.google.com/p/googleappengine/issues/detail?id=4770
    - You can configure your application to asynchronously write https
    session data by adding lt;async-session-persistence enabled=true/gt; to
    your appengine-web.xml.
       -http://code.google.com/p/googleappengine/issues/detail?id=1692
    - The local task queue unit testing API now supports Deferred Tasks.
    - Fixed an issue where using reserved URLs did not cause an error in the
    SDK.
    - Fixed an issue where having a backends.xml configuration file caused
    logging to stdout to fail in the SDK.
    - Fixed an issue where the Channel API didn't work with non-default
    versions of applications using the High Replication datastore.
    - Fixed an issue where the Remote API rtok comparison was broken for some
    users, causing appfcg download data to fail.
    - Fixed an issue with the SDK where you could not apply a transform to
    PNG images.http://code.google.com/p/googleappengine/issues/detail?id=3458
    - When displaying corrupt data in the Admin Console dataviewer, a useful
    error will be displayed, instead of a 500.
       -http://code.google.com/p/googleappengine/issues/detail?id=4945
    - Fixed an issue with the SDK where non-string index names caused an
    error upon upload.
    http://code.google.com/p/googleappengine/issues/detail?id=5004
    - Datanucleus now supports polymorphic relationships.
       -http://code.google.com/p/datanucleus-appengine/issues/detail?id=153
    - Datanucleus now supports
 PreparedQuery?http://code.google.com/p/googleappengine/w/edit/PreparedQuery
    
 

[google-appengine] Re: Updating entity in collection using JDO.

2011-06-26 Thread Jesper L
Chris,

I have the same issue, its probably related to this bug:
http://code.google.com/p/datanucleus-appengine/issues/detail?id=144

Did you find a way to work around this issue?

/Jesper

On 24 Maj, 18:12, chris chris.hins...@gmail.com wrote:
 Background:

 I am using app engine 1.5 and GWT 2.3 with requestfactory. I have an
 inventory object that has an ArrayList of InventoryItems. I canupdate and add 
 entitites to the ArrayList collection without issue.
 Now I am trying toupdatea single InventoryItem object and it appears
 to complete successfully but the data is not updated. There is no
 exception being thrown and I see the the updated client values just
 before persisting the object. I have verified that the transaction is
 successful. Is there something I am missing? I have also tried to add
 a function in the Inventory class toupdatean InventoryItem and after
 mark the inventoryItems dirty using JDOHelper.makeDirty(this,
 inventoryItems) but this did not solve my issue either.

 @PersistenceCapable(identityType = IdentityType.APPLICATION,
 detachable = true)
 public class Inventory {

   /**
    *Listof all inventory items in this inventory.
    */
   @Persistent(mappedBy=inventory)
   @Element(dependent=true)
   privateListInventoryItem inventoryItems;

   ... more

 }

 --

 @PersistenceCapable(identityType = IdentityType.APPLICATION,
 detachable = true)
 public class InventoryItem {

   public InventoryItem persist() {
     System.out.println(Persisting object with id  + this.getId());
     System.out.println(Price is  + this.getPrice().toString());
     PersistenceManager em = EntityManager.getPersistenceManager();
     InventoryItem attached = null;

     Transaction tx = em.currentTransaction();
     try {
       tx.begin();
       attached = em.makePersistent(this);
       tx.commit();
     } catch (Exception e) {
       e.printStackTrace();
     } finally {
       try {
         if (tx.isActive()) {
           tx.rollback();
         }
       } finally {
         em.close();
       }
     }
     return attached;
   }

   /**
    * Primary key that can be used to reference this expense
    */
   @PrimaryKey
   @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
   @Extension(vendorName = datanucleus, key = gae.encoded-pk, value
 = true)
   private String id;

   @Persistent Inventory inventory;

    more data







 }

-- 
You 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: App Engine 1.5.1 is out!

2011-06-26 Thread Ikai Lan (Google)
Can you link me to your admin console URL that causes this error?

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



On Mon, Jun 27, 2011 at 9:22 AM, Tirrell Payton tpay...@bt-software.netwrote:

 Hi Ikai,

 Im having what I think is a corrupt data issue, so I was wondering
 what to expect from this: ' When displaying corrupt data in the Admin
 Console dataviewer, a useful error will be displayed, instead of a
 500. '
 Because right now, the only error I am getting is 'Server Error.  A
 server error has occurred.'

 -Tirrell Payton

 On Jun 21, 2:10 am, Ikai Lan (Google) ikai.l+gro...@google.com
 wrote:
  Hey guys,
 
  App Engine 1.5.1 is out! Get it while it's hot! Blog post:
 
  http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html
 
  Release notes:
 
  Python
 
 - ProtoRPC is a new experimental library that provides a simple method
 for creating a well-defined and easy-to-use web-based RPC service.
 - The development server's datastore implementation now contains logic
 that closely replicates the consistency guarantees of the High
 Replication
 datastore. To use, run the dev_appserver with the flag
 --high_replication
 set to True.
 - All user request have an
  X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine
 -Country
 header which contains the ISO-3166-1 alpha-2 country code for the
 user,
 based on the IP address of the client request.
 - Applications are now associated with an app_identity, which can be
 used
 to authenticate requests originating from the app to other services.
 - The Channel API can now provide user presence, this can be
 configured
 by adding channel_presence to the list of inbound services for your
 application.
 - The Images API now supports the WebP format. Due to limitations in
 PIL,
 the SDK does not support the WebP format.
 - You can switch the timezone for App Engine logs in the Admin
 Console.
-http://code.google.com/p/googleappengine/issues/detail?id=734
 - Fixed an issue in the SDK where leased tasks had the POST method.
 They
 now have a PULL method.
 - Fixed an issue where the Channel API didn't work with non-default
 versions of applications using the High Replication datastore.
 - When displaying corrupt data in the Admin Console dataviewer, a
 useful
 error will be displayed, instead of a 500.
-http://code.google.com/p/googleappengine/issues/detail?id=4945
 
  Java
 
 - The development server's datastore and testing service
 implementations
 now contains logic that closely replicates the consistency guarantees
 of the
 High Replication datastore. To use, run the dev_appserver with the
 flag
 -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20.
 - All user request have an
  X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine
 -Country
 header which contains the ISO-3166-1 alpha-2 country code for the
 user,
 based on the IP address of the client request.
 - Applications are now associated with an app_identity, which can be
 used
 to authenticate requests originating from the app to other services.
 - The Channel API can now provide user presence, this can be
 configured
 by adding channel_presence to the list of inbound services for your
 application.
 - The Images API now supports the WebP format.
 - You can switch the timezone for App Engine logs in the Admin
 Console.
-http://code.google.com/p/googleappengine/issues/detail?id=734
 - Added javax.xml.ws.Service$Mode to the whitelist.
-http://code.google.com/p/googleappengine/issues/detail?id=4770
 - You can configure your application to asynchronously write https
 session data by adding lt;async-session-persistence
 enabled=true/gt; to
 your appengine-web.xml.
-http://code.google.com/p/googleappengine/issues/detail?id=1692
 - The local task queue unit testing API now supports Deferred Tasks.
 - Fixed an issue where using reserved URLs did not cause an error in
 the
 SDK.
 - Fixed an issue where having a backends.xml configuration file caused
 logging to stdout to fail in the SDK.
 - Fixed an issue where the Channel API didn't work with non-default
 versions of applications using the High Replication datastore.
 - Fixed an issue where the Remote API rtok comparison was broken for
 some
 users, causing appfcg download data to fail.
 - Fixed an issue with the SDK where you could not apply a transform to
 PNG images.
 http://code.google.com/p/googleappengine/issues/detail?id=3458
 - When displaying corrupt data in the Admin Console dataviewer, a
 useful
 error will be displayed, instead of a 500.
-http://code.google.com/p/googleappengine/issues/detail?id=4945

[google-appengine] Re: Porting Web Application (PHP/SQL) to GAE

2011-06-26 Thread Noah McIlraith
The biggest issue would likely be the database. I strongly recommend you 
become very familiar with how GAE's datastore works.

-- 
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/-/WxJNVOD0PwgJ.
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: App Engine 1.5.1 is out!

2011-06-26 Thread Tirrell Payton
Here you go.

https://appengine.google.com/datastore/edit?app_id=streamingservicesplatformnamespace=version_id=338.351420294679734945key=ahlzdHJlYW1pbmdzZXJ2aWNlc3BsYXRmb3JtcjALEgpTU1BBcnRpY2xlIiAwZTU3MjJhNmFmY2RlNzY5MmE2OTI0NmZhYWU4NmRmYww

On Jun 26, 7:27 pm, Ikai Lan (Google) ika...@google.com wrote:
 Can you link me to your admin console URL that causes this error?

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

 On Mon, Jun 27, 2011 at 9:22 AM, Tirrell Payton 
 tpay...@bt-software.netwrote:

  Hi Ikai,

  Im having what I think is a corrupt data issue, so I was wondering
  what to expect from this: ' When displaying corrupt data in the Admin
  Console dataviewer, a useful error will be displayed, instead of a
  500. '
  Because right now, the only error I am getting is 'Server Error.  A
  server error has occurred.'

  -Tirrell Payton

  On Jun 21, 2:10 am, Ikai Lan (Google) ikai.l+gro...@google.com
  wrote:
   Hey guys,

   App Engine 1.5.1 is out! Get it while it's hot! Blog post:

  http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html

   Release notes:

   Python

      - ProtoRPC is a new experimental library that provides a simple method
      for creating a well-defined and easy-to-use web-based RPC service.
      - The development server's datastore implementation now contains logic
      that closely replicates the consistency guarantees of the High
  Replication
      datastore. To use, run the dev_appserver with the flag
  --high_replication
      set to True.
      - All user request have an
   X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine
  -Country
      header which contains the ISO-3166-1 alpha-2 country code for the
  user,
      based on the IP address of the client request.
      - Applications are now associated with an app_identity, which can be
  used
      to authenticate requests originating from the app to other services.
      - The Channel API can now provide user presence, this can be
  configured
      by adding channel_presence to the list of inbound services for your
      application.
      - The Images API now supports the WebP format. Due to limitations in
  PIL,
      the SDK does not support the WebP format.
      - You can switch the timezone for App Engine logs in the Admin
  Console.
         -http://code.google.com/p/googleappengine/issues/detail?id=734
      - Fixed an issue in the SDK where leased tasks had the POST method.
  They
      now have a PULL method.
      - Fixed an issue where the Channel API didn't work with non-default
      versions of applications using the High Replication datastore.
      - When displaying corrupt data in the Admin Console dataviewer, a
  useful
      error will be displayed, instead of a 500.
         -http://code.google.com/p/googleappengine/issues/detail?id=4945

   Java

      - The development server's datastore and testing service
  implementations
      now contains logic that closely replicates the consistency guarantees
  of the
      High Replication datastore. To use, run the dev_appserver with the
  flag
      -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20.
      - All user request have an
   X-AppEngine?http://code.google.com/p/googleappengine/w/edit/AppEngine
  -Country
      header which contains the ISO-3166-1 alpha-2 country code for the
  user,
      based on the IP address of the client request.
      - Applications are now associated with an app_identity, which can be
  used
      to authenticate requests originating from the app to other services.
      - The Channel API can now provide user presence, this can be
  configured
      by adding channel_presence to the list of inbound services for your
      application.
      - The Images API now supports the WebP format.
      - You can switch the timezone for App Engine logs in the Admin
  Console.
         -http://code.google.com/p/googleappengine/issues/detail?id=734
      - Added javax.xml.ws.Service$Mode to the whitelist.
         -http://code.google.com/p/googleappengine/issues/detail?id=4770
      - You can configure your application to asynchronously write https
      session data by adding lt;async-session-persistence
  enabled=true/gt; to
      your appengine-web.xml.
         -http://code.google.com/p/googleappengine/issues/detail?id=1692
      - The local task queue unit testing API now supports Deferred Tasks.
      - Fixed an issue where using reserved URLs did not cause an error in
  the
      SDK.
      - Fixed an issue where having a backends.xml configuration file caused
      logging to stdout to fail in the SDK.
      - Fixed an issue where the Channel API didn't work with non-default
      versions of applications using the High Replication datastore.
      - Fixed an issue where the Remote API rtok comparison was broken for
  some
      users, 

[google-appengine] temporary-blobstore-error.appspot.com

2011-06-26 Thread Robert Lancer
temporary-blobstore-error.appspot.com
Failed to load resource: the server responded with a status of 500 (Internal 
Server Error)

Getting these when uploading to blobstore. 

-- 
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/-/yHn3Yz9Q_98J.
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: App Engine 1.5.1 is out!

2011-06-26 Thread Ikai Lan (Google)
Doh, yeah, looks like there is a character in this entity we can't encode:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in
position 63: ordinal not in range(128)


But we still aren't catching this exception. I'll find out of the release
was supposed to address this, and if not, to get it back on the bugfix list.

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



On Mon, Jun 27, 2011 at 11:12 AM, Tirrell Payton tpay...@bt-software.netwrote:

 Here you go.


 https://appengine.google.com/datastore/edit?app_id=streamingservicesplatformnamespace=version_id=338.351420294679734945key=ahlzdHJlYW1pbmdzZXJ2aWNlc3BsYXRmb3JtcjALEgpTU1BBcnRpY2xlIiAwZTU3MjJhNmFmY2RlNzY5MmE2OTI0NmZhYWU4NmRmYww

 On Jun 26, 7:27 pm, Ikai Lan (Google) ika...@google.com wrote:
  Can you link me to your admin console URL that causes this error?
 
  Ikai Lan
  Developer Programs Engineer, Google App Engine
  Blog:http://googleappengine.blogspot.com
  Twitter:http://twitter.com/app_engine
  Reddit:http://www.reddit.com/r/appengine
 
  On Mon, Jun 27, 2011 at 9:22 AM, Tirrell Payton tpay...@bt-software.net
 wrote:
 
   Hi Ikai,
 
   Im having what I think is a corrupt data issue, so I was wondering
   what to expect from this: ' When displaying corrupt data in the Admin
   Console dataviewer, a useful error will be displayed, instead of a
   500. '
   Because right now, the only error I am getting is 'Server Error.  A
   server error has occurred.'
 
   -Tirrell Payton
 
   On Jun 21, 2:10 am, Ikai Lan (Google) ikai.l+gro...@google.com
   wrote:
Hey guys,
 
App Engine 1.5.1 is out! Get it while it's hot! Blog post:
 
   
 http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html
 
Release notes:
 
Python
 
   - ProtoRPC is a new experimental library that provides a simple
 method
   for creating a well-defined and easy-to-use web-based RPC service.
   - The development server's datastore implementation now contains
 logic
   that closely replicates the consistency guarantees of the High
   Replication
   datastore. To use, run the dev_appserver with the flag
   --high_replication
   set to True.
   - All user request have an
X-AppEngine?
 http://code.google.com/p/googleappengine/w/edit/AppEngine
   -Country
   header which contains the ISO-3166-1 alpha-2 country code for the
   user,
   based on the IP address of the client request.
   - Applications are now associated with an app_identity, which can
 be
   used
   to authenticate requests originating from the app to other
 services.
   - The Channel API can now provide user presence, this can be
   configured
   by adding channel_presence to the list of inbound services for
 your
   application.
   - The Images API now supports the WebP format. Due to limitations
 in
   PIL,
   the SDK does not support the WebP format.
   - You can switch the timezone for App Engine logs in the Admin
   Console.
  -http://code.google.com/p/googleappengine/issues/detail?id=734
   - Fixed an issue in the SDK where leased tasks had the POST
 method.
   They
   now have a PULL method.
   - Fixed an issue where the Channel API didn't work with
 non-default
   versions of applications using the High Replication datastore.
   - When displaying corrupt data in the Admin Console dataviewer, a
   useful
   error will be displayed, instead of a 500.
  -
 http://code.google.com/p/googleappengine/issues/detail?id=4945
 
Java
 
   - The development server's datastore and testing service
   implementations
   now contains logic that closely replicates the consistency
 guarantees
   of the
   High Replication datastore. To use, run the dev_appserver with the
   flag
   -Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20.
   - All user request have an
X-AppEngine?
 http://code.google.com/p/googleappengine/w/edit/AppEngine
   -Country
   header which contains the ISO-3166-1 alpha-2 country code for the
   user,
   based on the IP address of the client request.
   - Applications are now associated with an app_identity, which can
 be
   used
   to authenticate requests originating from the app to other
 services.
   - The Channel API can now provide user presence, this can be
   configured
   by adding channel_presence to the list of inbound services for
 your
   application.
   - The Images API now supports the WebP format.
   - You can switch the timezone for App Engine logs in the Admin
   Console.
  -http://code.google.com/p/googleappengine/issues/detail?id=734
   - Added javax.xml.ws.Service$Mode to the whitelist.
  -
 http://code.google.com/p/googleappengine/issues/detail?id=4770
   - You can configure your application to asynchronously 

[google-appengine] Is Hierarchical database model coming back?

2011-06-26 Thread Santiago Basulto
After working with the DataStore for a while, for consiestency and 
transaction issues, i started to model all my entities within groups with 
all the ancestors thing. It works well for now. I don't have a big data 
model.

But, thinking a little about it, it clearly is similar to the well known 
Hierarchical 
database model 
fromhttp://en.wikipedia.org/wiki/Hierarchical_database_modelthe old times.

Have you thought about that? Will we face the problem of that model in the 
future? Was Google explicitly thinking about it when designed it's 
DataStore?

-- 
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/-/iqoIyW7rzosJ.
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] Datasource Admin Question

2011-06-26 Thread Eric Atkinson
The docs (at http://code.google.com/appengine/docs/adminconsole/) say
that when I goto https://appengine.google.com/ I can access the admin
console, and in particular, the data tab. However, when I do, I get
https://appengine.google.com/start which asks me to create an
application. However, I've already created an application called
StategicInternationalSystems, which I created using Google Apps For
Business (a paid service). How do I access the admin console for this
application running on Google Apps For Business?

-- 
You 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] Migrating to HRD from Master/Slave

2011-06-26 Thread vlad
Robert, why did you need to develop your own data migration tools? What is 
wrong with appcfg.py [upload_data/download_data] ? Admittedly I ran 
bulkloader only on small datasets but it was pretty quick and straight 
forward.

-- 
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/-/SOIcCHwjsnMJ.
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] Migrating to HRD from Master/Slave

2011-06-26 Thread Robert Kluin
Hey Vlad,
  One reason I wrote my own tools was because I was also doing schema
changes, that was a good opportunity to do so.  I also did not want to
transfer all of my entities, so I used my app's standard APIs so that
all of my stats / reporting entities would just be regenerated
instead.  I also didn't want to waste resources downloading then
re-uploading all of my data, rather I transferred them directly from
one app to another.  If I were doing another large migration I would
probably dump to the blobstore, transfer the blob, then reconstitute
my entities from the blob.



Robert





On Mon, Jun 27, 2011 at 00:20, vlad vlad.troyan...@gmail.com wrote:
 Robert, why did you need to develop your own data migration tools? What is
 wrong with appcfg.py [upload_data/download_data] ? Admittedly I ran
 bulkloader only on small datasets but it was pretty quick and straight
 forward.

 --
 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/-/SOIcCHwjsnMJ.
 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] Is AppEngine Down ??

2011-06-26 Thread Atif Gulzar
Hi,

Many of our applications at GAE are facing deadline exceed errors?


--
Best Regards,
Atif Gulzar

I  Unicode, ɹɐzlnƃ ɟıʇɐ

-- 
You 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: Is AppEngine Down ??

2011-06-26 Thread Mike
I am seeing this also, and getting user complaints... Anyone oncall
reading this?

On Jun 27, 3:32 pm, Atif Gulzar atif.gul...@gmail.com wrote:
 Hi,

 Many of our applications at GAE are facing deadline exceed errors?

 --
 Best Regards,
 Atif Gulzar

 I  Unicode, ɹɐzlnƃ ɟıʇɐ

-- 
You 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] Create Application SMS

2011-06-26 Thread Robert Kluin
http://code.google.com/appengine/kb/sms.html#error







On Sat, Jun 25, 2011 at 11:48, Symmetry Solutions
jmccarthyi...@gmail.com wrote:
 I had a setting with my carrier that was blocking Web SMS messages and
 as a result blocked the account creation SMS message. I have corrected
 and verified that it is now working but I can not get account creation
 to send me a message now.

 Is there a time period where it will allow me to re-enter the number
 and send the verification message after it has been blocked?

 --
 You 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: Is AppEngine Down ??

2011-06-26 Thread Robert Kluin
Yeah also seeing huge spike in deadline exceeded errors on Master
Slave apps right now.







On Mon, Jun 27, 2011 at 01:39, Mike mickn...@gmail.com wrote:
 I am seeing this also, and getting user complaints... Anyone oncall
 reading this?

 On Jun 27, 3:32 pm, Atif Gulzar atif.gul...@gmail.com wrote:
 Hi,

 Many of our applications at GAE are facing deadline exceed errors?

 --
 Best Regards,
 Atif Gulzar

 I  Unicode, ɹɐzlnƃ ɟıʇɐ

 --
 You 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] Datasource Admin Question

2011-06-26 Thread Robert Kluin
Have you already registered that app id at appspot.com?  App ids can
not contain cap letters.

You might try logging in at:
  https://appengine.google.com/a/strategicinternationalsystems.com






On Sat, Jun 25, 2011 at 18:09, Eric Atkinson
eric.atkin...@strategicinternationalsystems.com wrote:
 The docs (at http://code.google.com/appengine/docs/adminconsole/) say
 that when I goto https://appengine.google.com/ I can access the admin
 console, and in particular, the data tab. However, when I do, I get
 https://appengine.google.com/start which asks me to create an
 application. However, I've already created an application called
 StategicInternationalSystems, which I created using Google Apps For
 Business (a paid service). How do I access the admin console for this
 application running on Google Apps For Business?

 --
 You 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] Need to be able to create more apps

2011-06-26 Thread Robert Kluin
I'm guessing your startup weekend is over now, but you should try
submitting a request using the billing issues form:
http://code.google.com/support/bin/request.py?contact_type=AppEngineBillingSupport








On Sat, Jun 25, 2011 at 12:22, DFectuoso santiago1...@gmail.com wrote:
 Hi!

 I have a limit of 20 apps, and have already created those 20. I am at
 a Startup Weekend and really want to be able to push to a new appspot
 url, could I get this limit raised for my account please?

 Cheers

 --
 You received this message because you are subscribed to the Google Groups 
 Google App Engine group.
 To post to this group, send email to google-appengine@googlegroups.com.
 To unsubscribe from this group, send email to 
 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] Updated App Engine Pricing FAQ!

2011-06-26 Thread Alfred Fuller
Wow, that is all super low level internal stuff :-). I can tell you that the
new fields are only populated for Commit(Txn) and that for all other calls
the only cost that is not know ahead of time is IndexWrites (which I believe
is usually ~2 * # of properties changed * # of indexes properties appear
in). Hopefully the new pricing model is clear enough that you don't feel
inclined to dig that deep.

On Sun, Jun 26, 2011 at 12:37 PM, Stephen sdeasey+gro...@gmail.com wrote:

 On Sun, Jun 26, 2011 at 5:02 PM, Alfred Fuller
 arfuller+appeng...@google.com wrote:
 
   - Additional small op charge per key fetched otherwise they function
 identically.

 Speaking of charges, how are we to interpret the new fields
 CommitCost.requested_entity_puts and
 CommitCost.requested_entity_deletes in eg. the PutResponse protocol
 buffer which were added in the latest SDK? Should we ignore the
 existing IndexWrites, EntityWrites etc.?

 --
 You 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] Migrating to HRD from Master/Slave

2011-06-26 Thread Jeff Schnitzer
One other issue seems to be that the bulk down/uploader doesn't have access
to the indexed state of individual properties (there is no API to obtain
this information).  So you might get the right data structure on restore,
but all the wrong indexes (typically none or all).  The only way around
this right now seems to be a) feed a python schema to the bulkloader
(annoying if you're in java, and broken if you have partial indexes), write
your own tools, or just re-put all your entities using index-aware tooling
post-load.

Jeff

On Sun, Jun 26, 2011 at 9:38 PM, Robert Kluin robert.kl...@gmail.comwrote:

 Hey Vlad,
  One reason I wrote my own tools was because I was also doing schema
 changes, that was a good opportunity to do so.  I also did not want to
 transfer all of my entities, so I used my app's standard APIs so that
 all of my stats / reporting entities would just be regenerated
 instead.  I also didn't want to waste resources downloading then
 re-uploading all of my data, rather I transferred them directly from
 one app to another.  If I were doing another large migration I would
 probably dump to the blobstore, transfer the blob, then reconstitute
 my entities from the blob.



 Robert





 On Mon, Jun 27, 2011 at 00:20, vlad vlad.troyan...@gmail.com wrote:
  Robert, why did you need to develop your own data migration tools? What
 is
  wrong with appcfg.py [upload_data/download_data] ? Admittedly I ran
  bulkloader only on small datasets but it was pretty quick and straight
  forward.
 
  --
  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/-/SOIcCHwjsnMJ.
  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.