[google-appengine] Why is my Google App Engine application throwing AccessControlExceptions?

2015-03-10 Thread Holger Weissböck


Hello everyone,

I am in panic mode today and would very much appreciate your precious help:

Since three hours now our Java-based Google App Engine application is 
throwing AccessControlExceptions when it tries to load a FreeMarker 
template. The code of this application did not change for 11 days. Since 
approximately 3h however each template loading request throws something 
like this:

java.security.AccessControlException: access denied (java.io.FilePermission 
/WEB-INF/freemarker/panel/root.ftl read)
at com.google.appengine.runtime.Request.process-e5a6df6e4f6e9c58(Request.java)
at 
java.security.AccessControlContext.checkPermission(AccessControlContext.java:382)
at java.security.AccessController.checkPermission(AccessController.java:572)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
at java.io.File.isFile(File.java:961)
at freemarker.cache.FileTemplateLoader$2.run(FileTemplateLoader.java:165)
at java.security.AccessController.doPrivileged(AccessController.java:63)
at 
freemarker.cache.FileTemplateLoader.findTemplateSource(FileTemplateLoader.java:161)
at freemarker.cache.TemplateCache.acquireTemplateSource(TemplateCache.java:628)
at freemarker.cache.TemplateCache.findTemplateSource(TemplateCache.java:618)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:316)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:205)
at freemarker.template.Configuration.getTemplate(Configuration.java:740)
at freemarker.template.Configuration.getTemplate(Configuration.java:665)...

As you can see the problem seems to be that the application is not allowed 
to load this file any more, although it was allowed to load it in the past.

*Did the behaviour of App Engine change when it comes to file reading 
permissions? Am I missing something?*

Thanksalot for your input!



-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To post to this group, send email to google-appengine@googlegroups.com.
Visit this group at http://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/4088eb7a-0848-4490-b404-1f8851cf9b7f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[google-appengine] Access AdSense Management API reports from App Engine Java Application

2013-08-07 Thread Holger Kraus
Hi everyone,

what I'm trying to do is creating a simple Java application using App 
Engine which retrieves my current earnings from day x to day y.
According to the Management API documentation the request required for this 
would look something like this:
https://www.googleapis.com/adsense/v1.1/reports?key=mykeyalt=csvendDate=2013-08-07startDate=2013-06-07metric=EARNINGS

However if I simply call this URL from within my App I get an Login 
Required

As far as I understand I need to acquire an OAuth token first within my 
application and attach it to my request. My questions in this regard are:

1. Am I correct with this assumption
2. If so, why would a fixed, server based application need to acquire an 
OAuth token?
3. Is there any easy way to retrieve such a token and afterwards attach it 
to my requests automatically? All the tutorials I see on that part seem to 
require some user interaction, which won't work for my use case where an 
App Engine app simply wants to retrieve some metrics...

Any help would be much appreciated :)

Thanks,
Holger

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




[appengine-java] Request was aborted after waiting too long to attempt to service your request.

2011-06-07 Thread holger


Hello everyone,


i am running a java REST service in the appengine and get this:

Request was aborted after waiting too long to attempt to service your request. 
This may happen sporadically when the App Engine serving cluster is under 
unexpectedly high or uneven load. If you see this message frequently, please 
contact the App Engine team.


I see this message frequently and customer requests fail because of it. Can 
anyone help me please! Thanks a lot.

-- 
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/-/X3E4cnhhblA3Z3dK.
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] Request was aborted after waiting too long to attempt to service your request.

2011-06-07 Thread Holger Weissböck
Hello Ikai,

thanks a lot for clearing that up! I will test my app with concurrent
threads and try it. This was on my todo list anyway. ;-)

However, the funny thing is that its latency averages at about 150ms. If i
am not able to figure it out, i'll be back here.

Thanks again,
Holger

On Wed, Jun 8, 2011 at 3:41 AM, Ikai Lan (Google) ika...@google.com wrote:

 You get this error when your request waits in a pending queue.

 App Engine apps are autoscaled IF they can average under 1000ms. If they
 cannot, we do not give you additional instances, and requests line up in a
 pending queue. If your request waits in the pending queue for more than N
 seconds (I think N is 9 at the moment but I don't know for sure off the top
 of my head), this message is returned.

 You'll need to look at the average latency and figure out how to drop it to
 under 1000ms. Alternatively, if you enable concurrent Java requests, it'll
 be a higher ceiling before this error appears if you have Always On since
 you can serve a total of 3 (always on instances) * M (concurrency factor, I
 think this is 40 at the moment) requests at one time without requiring
 autoscaling.

 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 Wed, Jun 8, 2011 at 1:06 AM, holger holger.weissbo...@gmail.comwrote:

 Hello everyone,


 i am running a java REST service in the appengine and get this:

 Request was aborted after waiting too long to attempt to service your 
 request. This may happen sporadically when the App Engine serving cluster is 
 under unexpectedly high or uneven load. If you see this message frequently, 
 please contact the App Engine team.


 I see this message frequently and customer requests fail because of it. Can 
 anyone help me please! Thanks a lot.

  --
 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/-/X3E4cnhhblA3Z3dK.
 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.




-- 
Holger Weissböck
hol...@gamua.com
http://gamua.com
http://www.sparrow-framework.org

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



[google-appengine] Re: google-app-engine-django

2009-08-16 Thread Holger


Appengine has got two modes of operation.

High traffic applications are served directly out of the cache within
a second for example.

For low traffic applications first the uploded code has to be prepared
(unzipped for example) and put into the cache before it can be served.
Thus low traffic applications necessarly need a longer request time -
three seconds for example.

To my experience low traffic is everything below about 500 requests
per hour.

 New machine instantiations, which we all know happens quite frequently
New pages usually haven't a lot of visitors yet and thus are low
traffic apps. But a lot of longer existing pages have got low traffic
too.

Low traffic means additionally that each request consumes more
resources. Usually that doesn't matter as for almost all low traffic
pages these additional resources stay within the free quota.



When comparing perfomance of different solutions it's important that
the solutions themselves are comparable.

If you don't need session management, user name, user account and
administration you probably don't need Django and should use a simple
and faster solution.

What concerns the performance of a Django solution my tests with the
aep-sample copied to my own appID three month ago varied
for high traffic between  0.5 - 1.0 seconds request time
for low traffic between 2.5 - 4.5 seconds request time

I would be very interested to hear of current test results.


--~--~-~--~~~---~--~~
You 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: google-app-engine-django

2009-08-13 Thread Holger

 it also allows you to use many other features of
 django such as application structure, development utilities
 (manage.py), django's memcached based caching and a whole bunch of
 other good stuff.

Such features are available live even for Django 1.1
http://aep-sample.appspot.com/

After coding this AppenginePatch project its author is involved
in the development of a native Django port for cloud computing
inclusive Appengine
http://groups.google.com/group/django-developers/browse_thread/thread/410b69006addf41?pli=1
Developpers intersted in paticipating are welcome.





--~--~-~--~~~---~--~~
You 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: google-app-engine-django

2009-08-13 Thread Holger

Hi Andy,

you are right, appenginepatch has got a lot of additional features.

If you don't need them, simply switch them off, as explained in the
manual:

'The Media Generator is pre-configured ...  You can disable it by
removing mediautils from your INSTALLED_APPS. '
http://code.google.com/p/app-engine-patch/wiki/MediaGenerator

Holger

--~--~-~--~~~---~--~~
You 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: SEO and Google App Engine

2009-08-11 Thread Holger


 But it's still the sexiest hosting platform on the net -

Sure the sexiest.

That's why we're here and try to convince Google to add what lacks.

--~--~-~--~~~---~--~~
You 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: Problem adding App Engine to Google Apps domain

2009-08-10 Thread Holger

Did you check if the name in the first line of the app.yaml file is
identical with your registred AppEngineName (the pure name only and
nothing 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
-~--~~~~--~~--~--~---



[google-appengine] Re: Trouble using lists in the datastore

2009-08-10 Thread Holger

I think, 'deltentries' is just the query and doesn't include the
fetching process.

Add a line like:
delEntities = deltentries.fetch(1000)

as explained here:
http://code.google.com/appengine/docs/python/datastore/creatinggettinganddeletingdata.html#Deleting_an_Entity

--~--~-~--~~~---~--~~
You 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: SEO and Google App Engine

2009-08-10 Thread Holger

This flow chart page may be a nice example:
http://infosthetics.com/archives/2008/11/life_flow_chart_community_authored_flowcharts.html

On the other hand it seems clear that Appengine still needs time and
massive investment by Google if Appengine shall become a kind of
blockbuster application earning money for Google.

To become more popular it needs a better documentation understandable
not only for experts.

To attract high traffic sites it needs far better datastore handling
with professional snapshot backups, high speed bulk data up/downloads
of the whole datastore (not only single kinds), single command high
speed deletion of whole kinds and some professional framework has to
be developed to an extend that it runs equally on Appengine as on Non-
Appengine infrastructure to guarantee the possibility not being stuck
to Google.





On Aug 10, 8:39 pm, Barry Hunter barrybhun...@googlemail.com wrote:
 AppEngine itself is just hosting - so it doesnt really have much effect on 
 SEO.

 Dont forget that you can access a appengine app via a custom domain -
 so you might not even know a site is AppEngine.

 As to indexing them - yes:http://www.google.com/search?q=site:appspot.com
 and a random examplehttp://www.google.com/search?q=life+flow+charts

 2009/8/10 student_thesis prakash...@gmail.com:



  Hello

  A big decision in moving our high volume website completely to google
  app engine is to see, how does GAE handle SEO of a website.

  We dont want to lose on our SEO rankings with the move.

  I cant find one popular SEO website in google app engine.

  I tried typing a few GAE app names in google and the app does not come
  up.

  So does google ever index GAE apps?

  We are willing to make an investment in GAE development, if someone
  can shed light on the SEO issue.

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



[google-appengine] Re: Only 10 records can fetch via remote_api ?

2009-08-07 Thread Holger

They are fetched in packets of up to ten.

If you want to download all entities of a kind use the following code:
http://code.google.com/appengine/docs/python/tools/uploadingdata.html#Creating_Exporter_Classes

If you do remote individually and need more than ten entities
downloaded to your machine fetch several packets of them.

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



[google-appengine] Re: why there are Datastore API and Memcache usage for a blank django site?

2009-08-07 Thread Holger

additional note:

If you calculate resources you have to differ between 'one-time-use'
and 'huge-traffic-use'.

At first request Google makes your code available in cache. The
resources needed for this transfer (unpacking of zip etc) are needed
only a single time as long as there are other requests coming in.

That's the reason the first request may take 4 seconds answer time
whereas following requests are answered much faster.

If you want to test what resourced are needed in case of huge traffic
you have to make sure that your requests are repeated faster then 2-3
seconds. Otherwise the cached data might already have been deleted in
the meantime.

So using a professional framework like Django slows down only the
first request for 1-2 seconds. The following requests are answered as
fast as without Django.

--~--~-~--~~~---~--~~
You 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: User Identity

2009-08-06 Thread Holger

   But it does seem that it would be hard to have different logins in
   different browser windows, which I would like for testing.

I guess you could test simultanous different logins to the same app by
using not different windows of the same browser but by using different
browses (FF, IE, Safari, Konquerer, Chrome) sumultanously, couldn't
you?
--~--~-~--~~~---~--~~
You 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: Impossible to create the Gmail account with the same name as your App Engine application

2009-08-06 Thread Holger

Makes sense, but just wouldn't mean that you can send 'owner' email
from such a retrieved account.

The letter would mean additionally appengine internal administration
needs to be changed to work with more than one 'owner mail'.

There are much more important issues in the roadmap. So I fear it
won't happen soon.

--~--~-~--~~~---~--~~
You 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: User Identity

2009-08-05 Thread Holger

If logout wouldn't work, that would be really important - sure.

But it needn't to be appengine creating this result, it can be your
own code too.

Session management is usually done with a token stored in cookie.
Logout just means deleting this cookie.

Perhaps you forgot to trigger cookie deletion or you forgot to make
the result visible at once by changing 'User1 Logout' to 'Login'.

Such visual display errors would be critical only if you could request
a server response successfully as logged in user after logging out.
Did you try?

On the whole, please describe more details to enable a detailed
answer.

--~--~-~--~~~---~--~~
You 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: User Identity

2009-08-05 Thread Holger

 Are you suggesting that I need to do something in my App for each
 request to ensure the current user returned is valid?
yea

 My debug code is
 UserService us = UserServiceFactory.getUserService();

That's Java - I do Python. - So Nick Johnson surely can explain better
what's needed.

 I have no control if the user changes their account sign-in in another
 browser window.
Why would you need. Why should'n a user be logged in as John to one
application and as Bill to the other?

As long as user John doesn't log out of your application (window),
where is the problem?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: User Identity

2009-08-05 Thread Holger

You are not wasting time - it's an important clarification.

To my knowledge the logical steps are:

1. User want's to log into your application
2. You pass him to Google
3. He logs in with his Google account
4. Google returns a token with is stored as cookie
5. As long as this token exists the user module (don't know the Java
name) treats the visitor as authenticiated.
5. It's your task to delete this token on user logout.


--~--~-~--~~~---~--~~
You 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: database backup

2009-08-05 Thread Holger

Until now not.

It's in the roadmap but only as topic seven:
http://code.google.com/appengine/docs/roadmap.html

Till this future day you have to help yourself with the slow remote
data up/download explained here:
http://code.google.com/appengine/docs/python/tools/uploadingdata.html

- if you are lucky to get their overloaded explanation running.

--~--~-~--~~~---~--~~
You 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: Static file access for reading custom configuration file

2009-08-05 Thread Holger


 I want to give access of Yaml file to my clients
To my knowledge that's impossible and that wouldn't be a good idea as
the app.yaml file can contain security settings you don't want your
clients able to change, for example:
- url: /remote_api
  script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
  login: admin

So you have to use the other method you've described.

--~--~-~--~~~---~--~~
You 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: application scaling?

2009-08-05 Thread Holger

Search for videos on this topic.

Usually they manage to keep reaction time below 3-10 seconds at the
upmost.

Another problem of beeing 'slashdotted' might be that your application
goes out of service because your preestimated quota is exceeded within
hours.

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



[google-appengine] Re: dictionary displays problem

2009-08-04 Thread Holger

Perhaps you should start from scratch.

First get the starter examples working. Especially this one using
'template_values' in Python code and the 'greetings'-list within the
template:
http://code.google.com/appengine/docs/python/gettingstarted/templates.html


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



[google-appengine] Re: indexes exceeding quota

2009-08-04 Thread Holger

Above in the search box do a search for 'exploding index'

--~--~-~--~~~---~--~~
You 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: serving a binary file to Internet Explorer

2009-08-04 Thread Holger

I remember having read of a similar problem here:
http://developer.symbian.com/forum/message.jspa?messageID=48

Don't know if this is helpful.
--~--~-~--~~~---~--~~
You 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: Problems uploading to Datastore

2009-08-04 Thread Holger

To my knowledge
 each time you use the bulk upload.

code updating (before bulk upload) is needed only after changing the
app.yaml file.

Once the changed app.yaml file is uploaded, I can do multiple bulk
data uploads without any more code updating.


--~--~-~--~~~---~--~~
You 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: dictionary displays problem

2009-08-04 Thread Holger

Your HTML template for loop expects a list. But you try to pass a
dictionary.

You mustn't mix up the Python terms 'list' / 'tuple' and 'dictionary'
- see:
http://www.sthurlow.com/python/lesson06/

List values are defined within sqare brackets. If they are immutable
(unchangable) they are called 'tuple' and its values are defined
within rounded brackets. Thus a list may be defined by:
myList = [ 'name1', 'name2']

Dictionary key-value pairs are defined within curly brackets.  For
example by
myDictionary = { 'a':'1', 'b':'2' }
To return a single value you must add the key within square brackets:
myDictionary['b'] will return '2'
To return the whole list of dictionary keys use the keys() function:
myDictionary.keys() will return the list  [ 'a', 'b' ]
To return the whole list of dictionary values use the values()
function:
myDictionary.values() will return the list [ '1', '2' ]


Try the following:
 In Python:
myDictionary = { 'a':'1', 'b':'2' }
listOfmyDictionaryValues= myDictionary.values()
listOfmyDictonaryKeys = myDictionary.keys()

template_values = {
  'keyList': listOfmyDictonaryKeys,
  'valueList': listOfmyDictonaryValues,
  }

 In Template:
 {% for keyXYZ  in keyList %}
   {{keyXYZ}}
 {%endfor%}
 {% for valueXYZ  in valueList %}
   {{valueXYZ}}
 {%endfor%}


This way the dictionary 'template_values' containing the lists
'listOfmyDictonaryKeys' and 'listOfmyDictonaryValues'  is passed from
Python to the Template.

---
Attention:
Don't mix up definig equations with square brackets for lists and
curly brackets for dictionares after the equal sign with the
constructor method with rounded brackets behind the constructor name
and no equal sign.

And don't mix up this Python term of 'dictionary keys' with the
appengine term of datastore 'Entitiy keys'.


--~--~-~--~~~---~--~~
You 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: Interact with external server for static private files

2009-08-03 Thread Holger

To keep browsers from viewing it all you should include the
transmitted video ID into the string (=secret+ID+datetime) which is
MD5 hashed.
 secure enough to keep casual browsers from viewing it all.

Thus an extracted url would be good for an hour of redownload of the
same video but not of another one.

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

2009-08-01 Thread Holger

Depends.

Depends on the module you want to use.

Could be For example:
from Crypto.Hash import MD5

Or:
from Crypto.Cipher import DES

See:
http://www.dlitz.net/software/pycrypto/

That's what I learnd by google 'python crypto'. The rest is tryerror.


--~--~-~--~~~---~--~~
You 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: PyCrypto

2009-08-01 Thread Holger

Really don't know.

If it is part, you are able to import it (import is needed anyway),

If not, you first have to install their code and than import it into
your script.

And anyway it's a python item not an appengine one. (You remember,
before installing appengine you had to install python 25 and there you
find crypt)

In the python folder Lib/test/ there is a file test_crypt.py. Maybe
this sample can help.

Which crypt code packet you want and need to use - see Python
documentation.

--~--~-~--~~~---~--~~
You 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: Large static files enable a quota exhaustion attack

2009-08-01 Thread Holger

Instead of offering your file as static file (whose download you can't
control) you could offer your file via url request from datastore and
make registration and login obligatory or block any third request from
the same IP.

Then a single attacker has got no chance, only a bot net would be
effective and if you are attacked by a botnet you are lost anyway -
could only take your app out of service, if there is too much
download.

--~--~-~--~~~---~--~~
You 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: UnicodeEncodeError when using bulkupload to download from datastore

2009-08-01 Thread Holger

What's the name of your 'TextProperty' field?

 I tracked this error down to a 'TextProperty' Field in the datastore.
If this name should contain strange letters (ÄÜÖ etc) try changing the
name.

---
Re Datastore upload: That's an important question - would be
interested in an answer too.
--~--~-~--~~~---~--~~
You 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: Deleting an app

2009-07-31 Thread Holger

If you mean, kill that Appengine-ID-Name to select another within your
10 packet contingent, I think the answer is no, you can't.

If you mean, delete the old content, it's easy. The uploaded content
is always a mirror of your upload folder.

Just empty your upload folder with the exeption of the app.yaml file
and make a code upload ('appcfg.py update).

After this update, the old content is no longer reachable from the
outside world even if it's probably not deleted immediately by Google.

So far my experience.

--~--~-~--~~~---~--~~
You 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: brand new app. 500 error, nothing in the error logs.

2009-07-31 Thread Holger

Hi Shawn,

Try changing your app.yaml to

handlers:
- url: /.*
  script: flgs_database.py

it's Python and Python sripts have got the ending 'py'.


Bye,
Holger
--~--~-~--~~~---~--~~
You 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: Intermittent delete failures

2009-07-31 Thread Holger

Maybe you are lucky and someone takes the time to work through your
code.

If not you should be able to solve your problem by changing your code
step by step.

Go back to a version (or create a simple one) where deleting works
corretly. Then change it into the direction of your faulty code and
test which step makes the delete fail.

--~--~-~--~~~---~--~~
You 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: Intermittent delete failures

2009-07-31 Thread Holger

You tested deleting them one by one out of transaction. Did you test a
version without ancestor relations set too? (Just these relations may
be the reason, as change is blocked within an ancestor group as long
as another change is not finished.)

If such tests don't help, maybe it's an appengine issue. In your place
I would create some demo code and upload it to a test page with two
buttons (create 10 items, delete 5 items) always showing the resulting
number, thus demonstrating that deleting sometimes failes.

--~--~-~--~~~---~--~~
You 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: Datastore Design

2009-07-30 Thread Holger

Dear Mark,

I think, if you want to get an answer clarifying your problem, you
need to formulate your answer in a way that is better understandable.

Instead of impying that your 'cluster around' is needed, perhaps you
should ask if it is of any advantage to force Google's datastore to
save data 'clustered' around something you call parent.

Regards,
Holger

--~--~-~--~~~---~--~~
You 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: When will appcfg.py be able to download/check out?

2009-07-30 Thread Holger

Hi Haisheng Hu

maybe you work on open source code and don't fear anything being
stolen.

Partial* download capability can be implement easy into Google
appengine.

Just add the zipme script to your code:
http://www.manatlan.com/blog/zipme___download_sources_of_your_gae_website__as_a_zip_file

It's a great tool. How often did I forget which part of my code is
just uploaded. With the script now I simply add  'zipme' to the URL +
log in with my admin email and get a quick answer.

Bye,
Holger

___
* Static files aren't downloaded with the above version. But hopefully
a future version will get them too.
--~--~-~--~~~---~--~~
You 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: When will appcfg.py be able to download/check out?

2009-07-30 Thread Holger


It is possible.
 Is it possible to create a static file dir that has login:admin in app.yaml?

Supposed you have got a first level folder 'mystat' containing the
'list.txt' file,
add the following to your app.yaml file:

- url: /mystat
  static_dir: mystat
  login: admin

After upload (appcfg.py update) of that code you'll need to log in
with your admin mail to get the content via url
...appspot.com/mystat/list.txt

--~--~-~--~~~---~--~~
You 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: Are there any data recovery mechanisms for google app engine database?

2009-07-30 Thread Holger

You may be interested in this thread
http://groups.google.de/group/google-appengine/browse_thread/thread/ed98202989904519?hl=en#

Could just use the zipme script to implement some download capability
in case your own source got lost.
http://www.manatlan.com/blog/zipme___download_sources_of_your_gae_website__as_a_zip_file

Rename zipme (in app.yaml as well as in script) to something else and
use strong passwords to minimize the risk being hacked.



On Jul 30, 6:37 pm, johnP j...@thinkwave.com wrote:
 Does Google provide any best-practices for implementing a backup
 process?

 Thanks!

 johnP

 On Jul 30, 2:37 am, Nick Johnson (Google) nick.john...@google.com
 wrote:

  Hi,

  It's up to you to take backups of your data. We take regular backups of the
  datastore, but we're unable to restore individual users' data.

  -Nick Johnson

  On Thu, Jul 30, 2009 at 5:22 AM, DiveIntoGAE taogf1...@gmail.com wrote:

      If I delete some important datas by mistake, how can I recover
   them?

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



[google-appengine] Re: Upload data

2009-07-25 Thread Holger

Dear djidjadji,

you do a great expert work, but sometimes experts got blind, loosing
their feeling for the real world.

This happened IBM when inventing the two letters p and c and being
overcome my Bill.

That happened to Bill when being overcome by these Google guys

Shall that happen to Google too ?

-

Naturally writing your explanations not for your own 100,000 experts
who don't really need such explanation but for these 100.000.000 mass
customers Google should have in mind, that isn't possible with the
abstract scientific explanation style you follow now.

You really need to be creative and find better ways of explanation.
What about downloadable example code working out of the box for every
programming step? Would that blow up your explanations to books?

-

What you really need is a feeling for your customers. As long as you
inwardly are laughing on your dump customers and deliver links lists
http://lmgtfy.com/?q=PYTHONPATH
whose second target reads:
'Please, only post meaningful and useful information.'
(http://blenderartists.org/forum/showthread?t=7412 - in fact humans
usually read only three lines of text, what comes later is useless.)

you are in great danger to be overcome soon by somebody more clever
then Google.

Kind regards,
Holger


Dear djidjadji,

you do a great expert work, but sometimes experts got blind, loosing
their feeling for the real world.

This happened IBM when inventing the two letters p and c and beeing
overcome my Bill.

That happened Bill when beeing overcome by these google guys

Shall that happen Google too ?

-

Naturally writing your explanations not for your own 100,000 experts
who don't really need such explanation but for these 100.000.000 mass
customers Google should have in mind, that isn't possible with the
abstract scientific explanation style you follow now.

You really need to be creative and find better ways of explanation.
What about downloadable example code working out of the box for every
programming step? Would that blow up your explanations to books?

-

What you really need is a feeling for your customers. As long as you
inwardly are laughing on your dump customers and deliver links lists
http://lmgtfy.com/?q=PYTHONPATH
whose second targed reads:
'Please, only post meaningful and useful information.'
(http://blenderartists.org/forum/showthread?t=7412)

you are in great danger to be overcome soon by somebody more clever
then Google.

Kind regards,
Holger



On Jul 25, 8:31 am, djidjadji djidja...@gmail.com wrote:
 If every GAE page was written for the python starter it would be a big book.
 You could follow this link

 http://lmgtfy.com/?q=PYTHONPATH

 2009/7/25 Holger w...@arcor.de:

--~--~-~--~~~---~--~~
You 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: Upload data

2009-07-25 Thread Holger

Hi Hrishikesh Bakshi,

instead of serching the sulking corner and distributing funny stars
you should better think about how to improve the Upload data
documentation that it doesn't need the Bill Katz article 'Remote_API
Hello World' and a lot of chat requests to understand what your
developers created.

See my posting
http://groups.google.de/group/google-appengine/browse_thread/thread/2969e1134d5444d1?hl=en

Kind regards,
Holger

--~--~-~--~~~---~--~~
You 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: Upload data

2009-07-25 Thread Holger

Thanks, John.

And you, Hrishikesh Bakshi, please take courage. You have got a great
product. You don`'t need  to poke fun on your customers or to search
for excuses (the Python checkbox just doesn't solve the problem as not
python but the yaml needs to be mentioned) - you can look forward
prouldy and say we'll be better and better and love our customers.
Then you'll be part of the success.

Holger

--~--~-~--~~~---~--~~
You 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: Upload data

2009-07-25 Thread Holger

By the way

that funny tool of djidjadji
http://lmgtfy.com/?q=PYTHONPATH

is a sample how you could integrate necessary hints without blowing
your explanations to books.

Instead of demonstrating how Google works (giving your customers the
felling that they must be total idiots) you could demonstrate in a
similar way where to click in Windows and what to write in which box.


--~--~-~--~~~---~--~~
You 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: Upload data

2009-07-25 Thread Holger

'That would leave out other operating systems ...' - That's what I
call lack of creativity. Never heard of browser detecting respond
systems?

Offering the needed hints browser dependent would even improve your
service.

-
'The GAE site should contain ' - Yea, when you set your targets so
wrong it's understandable that your are lost.

Better redefine your target to 'GAE should reach it's customers and
stop dropping necessary parts of explanation only because you can find
them elsewhere if you would know that you have to start endless
searches because these GAE guys like to waste your working time.'

-
'I got the remote API working' - no wonder that the expert can't see a
problem in steps which are self-evident for him. But being in service
it's your task to explain
just these steps which aren't self-evident for your customer at all.

-
Overall it's even more your attitude than the content of your
explanations which needs improvement.

You should think about, if you will go on playing king djidjadji and
waste your employer's time to treat your customers with impertinence
http://lmgtfy.com/?q=PYTHONPATH

or if you will open your eyes for reality and begin to think about how
to improve your service and yourself.

King regards,
Holger


--~--~-~--~~~---~--~~
You 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] Upload data

2009-07-24 Thread Holger

I cant get 'Uploading Data' going.

Got the impression the Google description
http://code.google.com/appengine/docs/python/tools/uploadingdata.html
contains only part of the necessary code.

Is there a downloadable and working demo or any other further advice
on uploading data with remote_api and bulkloader?

--~--~-~--~~~---~--~~
You 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] Bill Katz article 'Remote API HelloWorld'

2009-07-24 Thread Holger

I tried to follow the Bill Katz article 'Remote API Hello World'
http://www.billkatz.com/2009/2/Remote-API-Hello-World

I've set up
app.yaml, myprog.py subfolder: models
in /models/: __init__.py, mystuff.py with Class Foo

Typing in 'python myprog.py' at the Windows CMD resulted into
ImportError:
Traceback:
  File myprog.py, line 14 in (module)
from google.appengine.ext import db
  File /code/google_appengine\google\appengine\api\datastore.py line
47 ..
from google.appengine.api import datastore
  ...
 import datastore_index
  ...
 import validation
  File /code/google_appengine\google\appengine\api\validation.py,
line 44 in (module)
  import yaml
ImportError: No module named yaml

Any advice?

--~--~-~--~~~---~--~~
You 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: Bill Katz article 'Remote API HelloWorld'

2009-07-24 Thread Holger

update: _

The issue described above is solved. It seems that the yaml module
path needs to be explicitely stated.

I created the variable PYTHONPATH

(System Properties (=Start rightclick MyComputer Properties), Tab
Advanced, button Environment Variables, lower box button New, Variable
Name = PYTHONPATH, Variable value = C:\\appengine\lib\yaml\lib,
Restart)

and the ImportError disappeared.

Sadly now I run into an HTTP Error 404: Not Found


--~--~-~--~~~---~--~~
You 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: Bill Katz article 'Remote API HelloWorld'

2009-07-24 Thread Holger

- update2 - problem solved

With the help of Wooble in #appengine Chat on Freenote the problem was
solved.

After writing the local upload-file you first have to upload the
project-code in the usual way (with appcfg.py update project-folder).

Only after this code-upload the remote data-upload will work:

I called the local upload file - described in
http://www.billkatz.com/2009/2/Remote-API-Hello-World -
'myLocalUploadProg.py' and used the following steps to come through:

1.
Open Windows CMD with the folder where your app.yaml file (and the
myLocalUploadProg.py) is living.

2.
Type 'python myLocalUploadProg.py' at the CMP prompt and hit Enter

3.
After a moment you are asked username and password

4.
The program is finished without further (Error-) message.

-
To see the result visit your appengine account. After next autorefresh
(can take some minutes) you can see in Dashboard DataViewer the
(remotedly) uploaded data now available in Google's datastore.

--~--~-~--~~~---~--~~
You 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: Upload data

2009-07-24 Thread Holger

Finally got data_upload working.

This Google explanation
http://code.google.com/appengine/docs/python/tools/uploadingdata.html
may be a great memo for people who know already how to upload
-
for people who are interested to learn it's a disaster. Nothing is
explained from the newcomer's point of view. Everything is build up on
the supposition that you already know what you want to learn.

There are funny things like PHYTONPATH and no word that this means to
click through Windows Start/ControlPanel/
System//SystemVariables/
New and blind typing a cryptic line of never ending text into a micro
box where you can't see anything. One typing error and you are lost.

The same if you should forget to restart after your hundreds try of
correcting that text.

And so on and on ...

If Google doesn't learn to write it's explanations in a way which can
be followed easily, appengine probably won't be a success.

What normal people want to get robbed two working days and suffer a
lot of headache to upload some simple 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
-~--~~~~--~~--~--~---