[google-appengine] Re: Upcoming maintenance notification

2010-06-30 Thread johntray
I can confirm that the email from the downtime-notify group was indeed
routed to my Gmail spam folder. It includes a red-overlay message:
Warning: This message may not be from whom it claims to be. Beware of
following any links in it or of providing the sender with any personal
information. There is also a link to Learn more  which points to
http://mail.google.com/support/bin/answer.py?hl=enctx=mailanswer=8253.

Thanks for posting here, as I would have completely missed it





On Jun 30, 2:51 pm, Ikai L (Google) ika...@google.com wrote:
 Hey guys,

 I just wanted to point out there are upcoming maintenance periods scheduled
 for July 7th and July 14th at 5pm Pacific. More details here:

 http://groups.google.com/group/google-appengine-downtime-notify/brows...

 Normally, I wouldn't post these notifications to this group, as they belong
 in the downtime notify group, however, users are reporting that this
 message went into their spam folder. Can anyone verify this, or let me know
 in this thread if this message was correctly delivered?

 If you want to be notified of upcoming maintenance periods, make sure to
 join this group:

 http://groups.google.com/group/google-appengine-downtime-notify

 We're doing our best to minimize these periods in the future, but there are
 times when these periods will be absolutely necessary.

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

-- 
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-appeng...@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: Sitewide 500 errors

2010-02-02 Thread johntray
My site (http://gmailnotes.appspot.com) is down too, returning the
same error. System status page indicates no issues. What's going on?

On Feb 2, 8:00 am, Jesse Grosjean je...@hogbaysoftware.com wrote:
 I'm seeing the following error on all of my app engine sites
 including:

 https://appengine.google.com/http://www.hogbaysoftware.com/http://www.simpletext.ws/
 ...

 -
 Error: Server Error

 The server encountered an error and could not complete your request.
 If the problem persists, please report your problem and mention this
 error message and the query that caused it.

-- 
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-appeng...@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: Sitewide 500 errors

2010-02-02 Thread johntray
Me too -- clearing cookies fixed the problem. Kinda strange, but
whatever



On Feb 2, 9:44 am, Natalie Gordon natalie.gor...@gmail.com wrote:
 Good one. I couldn't view my sitehttp://www.lenguajero.com.

 I cleared cookies and I can now get to the site.

 I can also log in fine and view it.

 On 2 feb, 09:32, Chris L clun...@gmail.com wrote:



  On Feb 2, 8:32 am, Matthew Trinneer matt.trinn...@gmail.com wrote:

   I'm seeing the same thing this morning too.  Nothing in my logs, but
   site is inaccessible using Safari 4.0.4 (www.bijout.com)

  Actually your site (www.bijout.com) loads for me in Safari, and I
  found that my own site loads if I switch to a different user on my
  computer. Is something in cookies / cache triggering this?

  — Chris L

-- 
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-appeng...@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 timeouts - retry or just let fail?

2010-01-23 Thread johntray
If you are referring to 
http://appengine-cookbook.appspot.com/recipe/autoretry-datastore-timeouts/,
yes it really works. A second try at reading from the datastore *is*
nearly always successful. (I think once it took a 3rd try.) I would
recommend this code for almost any app.



On Jan 23, 6:25 am, Danny Tuppeny da...@tuppeny.com wrote:
 Hi all,

 I've got a query that fetches an entity by key_name, and now and then
 (maybe once or twice a day) it times out. Reading the docs, it seems
 like this is fairly common.

 Most of times I see it it's from a search bot or something, so I
 haven't really bothered doing anything, but since it is affecting
 visitors to, I wonder if I should.

 I saw some code that retries failed data access, but I don't know how
 long whatever causes these timeouts takes. Is it likely to just time
 out again if it's re-issued immediately? Should I just let the 500 be
 served, and hope the user/bot retries, or is it recommended to wait a
 few seconds and try again?

 I'd be interesting in hearing peoples experiences with retrying. Do
 retries just fail too, or does it generally clear up 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-appeng...@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: Has anyone done a source code control system hosted on App Engine?

2009-12-03 Thread johntray
I recommend http://www.projectlocker.com/


On Dec 3, 5:23 pm, samwyse samw...@gmail.com wrote:
 That's exactly what I want.  (How did I miss it?)  Thanks!

 On Dec 3, 5:11 am, Stephen sdea...@gmail.com wrote:



  On Dec 2, 11:51 pm, samwyse samw...@gmail.com wrote:

   I'd like to host Hg or something someplace with better uptime than my
   home server.

 http://hg-repos.appspot.com/mercurial_appengine/

  See also:

 http://code.google.com/events/io/2009/sessions/MercurialBigTable.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-appeng...@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: using a variable to buffer cache data...

2009-11-02 Thread johntray

Can I ask a follow up question about using task queues for datastore
writes that don't have to be immediate? From the system status site, I
can see that 2K writes take less than 100 ms on average (although the
peaks are much larger). In contrast, is there any info on how long
calls to the Task Queue API take, that is taskqueue.add()and
deferred.defer()?

john




On Sep 16, 9:05 am, Nick Johnson (Google) nick.john...@google.com
wrote:
 Hi Prashant,
 In addition to what Barry says below, a couple of comments:
 - You can safely ignore the 'high cpu' warnings if you've already done what
 you can to optimize the page. You're not going to hit any invisible limits
 based on them, just the usual CPU quota etc.
 - If 'eventual' writes are good enough, you may want to look into using the
 task queue. You can enqueue the write in the task queue, which will do it
 offline and avoid making the user wait.

 -Nick Johnson





 On Wed, Sep 16, 2009 at 2:11 PM, Prashant antsh...@gmail.com wrote:
  hi,

  my app needs to store some data to datastore for each  every request, say
  1 object per request which causes high cpu usage per request. to minimize
  the cpu usage per request, instead of adding the object directly to
  datastore i add the object to a LinkedList (every request) and use a cron
  which moves objects form the LinkedList to datastrore periodically, say
  every min.

  I feel it is not a good practice. I don't want to use memcache (instead of
  server ram) to store my LinkedList because delay in fetching and storing the
  list form/to memcache may cause loss of data from upcomming requests (or
  previous request). I don't want to use task queue either for some reasons.

  Experts please comment on this kind of implementation. Losses  Benefits,
  any alternative good practice.

  Thanks.

 --
 Nick Johnson, Developer Programs Engineer, App Engine
 Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number:
 368047
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To 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: Documenation for datastore wrong?

2009-10-28 Thread johntray

In 
http://code.google.com/appengine/docs/python/datastore/creatinggettinganddeletingdata.html#Getting_Entities_Using_a_Query,
there is a note stating that query objects have an interator
interface, and that If the query object is used as an iterator, the
query is executed with no limit or offset, the results are loaded into
memory, and the value returned is an iterator over the results.

So no, the documentation isn't wrong, just hard to follow in some
places.




On Oct 28, 11:45 am, Michał Klich klich.mic...@gmail.com wrote:
 Hi,

 While looking on docs for datastore at this 
 websitehttp://code.google.com/appengine/docs/python/datastore/creatinggettin...

 I found code:

 if users.get_current_user():
   user_pets = db.GqlQuery(SELECT * FROM Pet WHERE owner = :1,
                           users.get_current_user())
   for pet in user_pets:
     pet.spayed_or_neutered = True

   db.put(user_pets)

 Correct me if i am wrong but should not be it like:

 if users.get_current_user():
   user_pets = db.GqlQuery(SELECT * FROM Pet WHERE owner = :1,
                           users.get_current_user())
   results = user_pets.fetch(10)

   for pet in results:
     pet.spayed_or_neutered = True

   db.put(results)

 I could not make it to work in original version but mnaybe i am wrong, i
 spent way too much time on this trying to figure it out.

 --
 Michał Klich

 klich.mic...@gmail.com
 mic...@michalklich.comhttp://www.michalklich.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] Re: Tragedy of the Commons, and Cold Starts

2009-10-24 Thread johntray

Is the current thinking that the biggest startup delay is due to
module imports for Django? My app has 3 distinct parts, only 1 of
which uses Django or any templating. Right now I use a single main()
function for all 3 parts, but would the other 2 parts have better cold-
start times if I partitioned them into a separate handler script that
didn't import any Django stuff?



On Oct 23, 4:02 pm, bugaco ice...@gmail.com wrote:
 I had a bit weird experience with this...

 So I wrote app (http://analytics.bugaco.com) that runs on App Engine.
 Than I looked at the request logs to see how it is running.
 Request logs suggested that I'm using a lot of CPU time on hitting the
 home page, but after that CPU time significantly decreases. It also
 had annoying red flag suggesting that servlet is using excessive
 resources and that I need to optimize it.
 Testing a bit, I noticed that pinging lets app be warm, and I had cron
 doing the pings for a few days; while also noticing that it does not
 do anything useful

 Conclusion:
 1. If log files don't suggest that you are better off pinging people
 would not ping
 2. It is stupid that google counts warming up your app toward CPU time
 (leading to profiling, that leads to pinging)
 3. It is very stupid that applications can not denote 'keep this code
 path warm/cache it/or something' that will allow new users not to give
 up on the up until they get first response.

 So, as a conclusion, I think AppEngine is AWESOME. And I also think it
 SUCKS.
 I love SDK, ability to deploy and test and use all the cool things.
 I don't like the idea that it can not serve a (entry)page in 3-5
 seconds as I think that it leaves bad taste in users mouth, and
 consequently bad taste in developers mouth.

 Finally, I am not sure I'll use AppEngine for developing other
 applications as I'd rather go with paid hosting that provides some
 level of performance on serving pages. I think Google would win a lot
 of good will if they at least provide quick serving of static
 resources.

 One may wonder how to do that, and given that they have all those yaml
 files there may be yaml file that specifies a warm static resource.
 This would decrease a need for pinging your app as it would allow user
 to hit entry page, and google to pre-cache app much easier.
--~--~-~--~~~---~--~~
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: Clean way to code around timeouts?

2009-10-21 Thread johntray

Great -- we'll definitely include the update in our next production
server push (this weekend) and I'll report back next week.

Thanks,
john



On Oct 21, 2:50 pm, Robin B robi...@gmail.com wrote:
 You are absolutely correct that the code is not handling db.Timeout
 exceptions correctly.  When I wrote the recipe, I could not simulate
 Timeouts on the production datastore, so I wrote some code to randomly
 raise db.Timeouts and tested that the exponential backoff worked
 well.  Today, after load testing with 'ab' to hammer a test app in
 production, I could still not simulate a db.Timeout, but I could
 produce some TransactionFailedErrors and instead attempted to catch
 and retry those.  It turns out apiproxy_stub_map.MakeSyncCall does not
 raise db.Timeout or db.TransactionFailedError, it raises a lower level
 Exception.  The recipe is now updated in the cookbook to catch the
 correct low level exception.

 http://appengine-cookbook.appspot.com/recipe/autoretry-datastore-time...

 Under load, I can see the retries in my log output.  If you are able
 to consistently produce db.Timeouts in production, please let me know
 that it is working for you too.

 Thanks for the helpful feedback,

 Robin

 On Oct 20, 5:09 pm, johntray john.tur...@gmail.com wrote:



  Has anyone reported problems using the autoretry cookbook method? I
  added a log message to check that the wrapper is getting installed,
  and I also added a log message in the retry loop. I see the log
  message that the wrapper is installed, however, I do *not* see any
  retry-log messages despite getting datastore timeouts.

  For what it is worth, I also used the development server to verify
  that the wrapper is indeed getting called, but of course, I don't
  experience datastore timeouts there.

  Has anyone else had problems with this code?
  john

  On Sep 30, 10:25 pm, Mike Wesner m...@konsole.net wrote:

   I saw this lower level way to handle Timeouts.  Seems like the best
   way to handle it.  No need to decorate or litter your code with retry
   stuff.

  http://appengine-cookbook.appspot.com/recipe/autoretry-datastore-time...
--~--~-~--~~~---~--~~
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: Clean way to code around timeouts?

2009-10-20 Thread johntray

Has anyone reported problems using the autoretry cookbook method? I
added a log message to check that the wrapper is getting installed,
and I also added a log message in the retry loop. I see the log
message that the wrapper is installed, however, I do *not* see any
retry-log messages despite getting datastore timeouts.

For what it is worth, I also used the development server to verify
that the wrapper is indeed getting called, but of course, I don't
experience datastore timeouts there.

Has anyone else had problems with this code?
john


On Sep 30, 10:25 pm, Mike Wesner m...@konsole.net wrote:
 I saw this lower level way to handle Timeouts.  Seems like the best
 way to handle it.  No need to decorate or litter your code with retry
 stuff.

 http://appengine-cookbook.appspot.com/recipe/autoretry-datastore-time...
--~--~-~--~~~---~--~~
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: About the latest release (1.2.4)

2009-08-06 Thread johntray

I'm with you. 1.2.4 is a big disappointment.



On Aug 6, 9:38 pm, Emilien Klein emilien.kl...@gmail.com wrote:
 Is it just me or does it seem that this new release adds
 functionalities that don't seem to be on the list of that many people?

 The 3 issues that are linked to 
 fromhttp://code.google.com/p/googleappengine/wiki/SdkReleaseNotes
 for release 1.2.4 were starred by respectively 2,1, and a whopping 5
 persons! Making the assumption that these are all different people,
 that means that 8 persons have directly asked for these
 improvements...

 I'm not criticizing the release, just questioning the priorities...
 It's nice to somewhat improve the queries and the Remote API, but
 aren't there other features that seem to be much more urgent? What
 happened to the important points of the Roadmap to be done around June
 2009, if I remember 
 well?http://code.google.com/intl/fr/appengine/docs/roadmap.html
 Quite a lot of the things on this page seem to be much more urgent
 than what's just been released...

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



[google-appengine] cPickle speed

2009-07-26 Thread johntray

The GAE docs say that cPickle is aliased to pickle. Does that mean
it isn't compiled and therefore doesn't run up to 1000 times faster
than pickle on GAE?

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



[google-appengine] Re: TinyMCE: Minimizing File Count

2009-06-29 Thread johntray

Whatever you end up doing, be sure to use an expiration date so that
each client only retrieves the editor every week or so. (If I remember
correctly, Google Page Speed recommends a one month expiration.)



On Jun 29, 12:22 am, Stephen Mayer stephen.ma...@gmail.com wrote:
 I'm uncomfortable using zipserve because of its performance
 characteristics.  Niceedit looks like a good option as well ...
 perhaps a bit smaller than TinyMCE minimal in bytes ... since it
 offers customized js packages.

 On Jun 28, 8:20 pm, johntray john.tur...@gmail.com wrote:



  To anyone using TinyMCE, I would recommend using zipserve to serve the
  editor from the distribution .zip file (so that it only counts as 1
  file). zipserve is not well documented, but see the source file in the
  GAE distribution (google\appengine\ext\zipserve\__init__.py), also 
  athttp://code.google.com/p/googleappengine/source/browse/trunk/python/g
  There is also a zipserve example 
  athttp://code.google.com/p/google-app-engine-samples/.

  On Jun 28, 12:14 pm, Tim Hoffman zutes...@gmail.com wrote:

   I am using nicedit  http://nicedit.com/itjustdecorates textareas
   so
   very little is required to make it work unless you want custom image
   uploading within in it.
   It also externally hosted so it doesn't have to add to your static
   file count.

   T

   On Jun 28, 11:26 pm, Stephen Mayer stephen.ma...@gmail.com wrote:

So I was looking for a good way to impliment a rich text editor on a
site I'm building.  There are two obvious possible options: FckEdit
and TinyMCE.  TinyMCE is smaller and has a simpler design so I decided
to work with it instead.

Starting Point: 241 files, 101 folders, 1.41mb

But since I only need the simple version of tinyMCE listed 
here:http://tinymce.moxiecode.com/examples/simple.php

So I used firebug's net tab to watch which files tinyMCE actually
loaded after adding it to my page.  I created a list of these files,
and then moved them into a tiny_mce_min folder.  Then I switched to
using my minimal installation directory ... eliminating most of the
unnecessary code quickly and easily:

Ending Point: 6 files, 7 folders, 182kb

The process
1) Add the full TinyMCE to your dev enviornment, update app.yaml
2) Add TinyMCE to your script ... set any options you need to get the
version you want
3) View TinyMCE in FireFox with Firebug powered up and the Net tab
open
4) Create a version of your TinyMCE install that includes only the
files from TinyMCE that are listed in the net tab
5) Use the minimal install in your deployment rather than the full
install

Now I think we could go one step further and eliminate a few file
loads (like the lang files) if we hacked tinyMCE js code ... and get
it down to one file (or three if you count the css + images).  But
right now I don't have time to do that.

I realize that the file limit is now bigger than it used to be (now
3000 files) ... but think that it's very constructive to go through
this process.  Ultimately I don't want to use 241 of my file count
limit towards something that could be loaded in one js file.  Much of
the time we have grown used to slapping in a library but using only a
very small percentage of it.  I'm hoping that library developers soon
begin offering custom versions of their code that are highly
optimized for a specific task.

Hope this post might be helpful for someone else who confronts the
same problem/issue.  Another suggestion to Google: perhaps they could
host some of these commonly requested libraries by default.  I don't
think that any of the rich text editors (fckedit or tinymce) are
available on a CDN anywhere right now.

- Stephen
--~--~-~--~~~---~--~~
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: TinyMCE: Minimizing File Count

2009-06-28 Thread johntray

To anyone using TinyMCE, I would recommend using zipserve to serve the
editor from the distribution .zip file (so that it only counts as 1
file). zipserve is not well documented, but see the source file in the
GAE distribution (google\appengine\ext\zipserve\__init__.py), also at
http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/zipserve/__init__.py.
There is also a zipserve example at 
http://code.google.com/p/google-app-engine-samples/.





On Jun 28, 12:14 pm, Tim Hoffman zutes...@gmail.com wrote:
 I am using nicedit  http://nicedit.com/it just decorates textareas
 so
 very little is required to make it work unless you want custom image
 uploading within in it.
 It also externally hosted so it doesn't have to add to your static
 file count.

 T

 On Jun 28, 11:26 pm, Stephen Mayer stephen.ma...@gmail.com wrote:



  So I was looking for a good way to impliment a rich text editor on a
  site I'm building.  There are two obvious possible options: FckEdit
  and TinyMCE.  TinyMCE is smaller and has a simpler design so I decided
  to work with it instead.

  Starting Point: 241 files, 101 folders, 1.41mb

  But since I only need the simple version of tinyMCE listed 
  here:http://tinymce.moxiecode.com/examples/simple.php

  So I used firebug's net tab to watch which files tinyMCE actually
  loaded after adding it to my page.  I created a list of these files,
  and then moved them into a tiny_mce_min folder.  Then I switched to
  using my minimal installation directory ... eliminating most of the
  unnecessary code quickly and easily:

  Ending Point: 6 files, 7 folders, 182kb

  The process
  1) Add the full TinyMCE to your dev enviornment, update app.yaml
  2) Add TinyMCE to your script ... set any options you need to get the
  version you want
  3) View TinyMCE in FireFox with Firebug powered up and the Net tab
  open
  4) Create a version of your TinyMCE install that includes only the
  files from TinyMCE that are listed in the net tab
  5) Use the minimal install in your deployment rather than the full
  install

  Now I think we could go one step further and eliminate a few file
  loads (like the lang files) if we hacked tinyMCE js code ... and get
  it down to one file (or three if you count the css + images).  But
  right now I don't have time to do that.

  I realize that the file limit is now bigger than it used to be (now
  3000 files) ... but think that it's very constructive to go through
  this process.  Ultimately I don't want to use 241 of my file count
  limit towards something that could be loaded in one js file.  Much of
  the time we have grown used to slapping in a library but using only a
  very small percentage of it.  I'm hoping that library developers soon
  begin offering custom versions of their code that are highly
  optimized for a specific task.

  Hope this post might be helpful for someone else who confronts the
  same problem/issue.  Another suggestion to Google: perhaps they could
  host some of these commonly requested libraries by default.  I don't
  think that any of the rich text editors (fckedit or tinymce) are
  available on a CDN anywhere right now.

  - Stephen
--~--~-~--~~~---~--~~
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] Retrieving size of collection set

2009-06-21 Thread johntray

If I have two datastore object types, I'll call A and B, and A
includes a ReferenceProperty to B, then objects of type B will have a
back-reference property with default name a_set. Now if I just want
the size of some B object's a_set, I could call len(a_set). To execute
this, my understanding is that GAE will do a datastore query to
retrieve the relevant A objects and pass them to the len() function.
Since I don't need the A object contents, would it be more efficient
to set up my own Query object and call Query.count() instead?

--~--~-~--~~~---~--~~
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: Retrieving size of collection set

2009-06-21 Thread johntray

Well yes I could add a count property to the B objects, but I'm really
trying to understand more about how ReferenceProperty works.

Nonetheless, there are a couple reasons I don't want to add a count
property to the B objects:

  -- Every time I create or delete an A object, I would also have to
make two additional datastore calls to read, modify, and write object
B.

  -- And to make sure the counter stays in sync, I would need to use a
datastore transaction for these operations. But right now, my A and B
objects are not in the same entity group, which means (if I understand
correctly) transactions are not supported. So I would have to do a
full update to the existing datastore in order to add a reliable
counter to object B.




On Jun 21, 12:31 pm, Sylvain sylvain.viv...@gmail.com wrote:
 Could you add an int property that is updated with the len ?
 So you only check this property ?

 On 21 juin, 17:51, johntray john.tur...@gmail.com wrote:



  If I have two datastore object types, I'll call A and B, and A
  includes a ReferenceProperty to B, then objects of type B will have a
  back-reference property with default name a_set. Now if I just want
  the size of some B object's a_set, I could call len(a_set). To execute
  this, my understanding is that GAE will do a datastore query to
  retrieve the relevant A objects and pass them to the len() function.
  Since I don't need the A object contents, would it be more efficient
  to set up my own Query object and call Query.count() instead?
--~--~-~--~~~---~--~~
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: Gmail API?

2009-06-05 Thread johntray

No API, just the standard pop and imap interfaces. (I don't know where
those are documented, but I presume they can be readily found online.)


On Jun 4, 8:47 pm, GenghisOne mdkach...@gmail.com wrote:
 Is there an API for Gmail and if so is there some documentation that
 explains how to use it?

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



[google-appengine] Cannot figure out remote_api

2009-05-25 Thread johntray

I have updated my app for remote_api, copied the appengine_console.py
file from the documentation, updated the sys.path lines, and put that
in my app's root directory. When I run appengine_console.py with my
app id, I get the python prompt OK. BUT...

When I try to import my main.py file, I get a python error, I get an
error for the line where it imports webapp.

from google.appengine.ext import webapp
  File C:\Program Files\Google\google_appengine\google\appengine\ext
\webapp\__init__.py, line 68, in module
import webob
ImportError: No module named webob

The app runs on the development server, of course, so I know that this
missing webob module *does* exist. Can anyone help me figure out
what I am doing wrong here?
john

--~--~-~--~~~---~--~~
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 timeout: operation took too long.

2009-05-22 Thread johntray

Has anyone suggested modifying db.get(), db.put(), and db.delete() to
include an optional argument specifying a number-of-retries-on-
timeout? I can wrap these functions in my own logic, but I would think
nearly every application could use this.



On May 22, 5:31 am, Nick Johnson (Google) nick.john...@google.com
wrote:
 Hi Amir,

 Occasional datastore timeouts are expected to occur even in normal
 operation. It's up to you to handle them and react appropriately - for
 example, by retrying the operation. How often are you seeing this?

 -Nick Johnson

 2009/5/22 Amir  Michail amich...@gmail.com:



  Hello,

  Anyone else getting this exception?

  Amir
--~--~-~--~~~---~--~~
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: using a WYSIWYG Editor on appengine

2009-04-22 Thread johntray

Yes, GAE has a class called zipserve for this. I use to serve TinyMCE
with no problems. The only documentation is the source file itself, at
http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/zipserve/__init__.py.
There's also a memcached example at
http://code.google.com/p/google-app-engine-samples/source/browse/trunk/indexed-cached-zipserve/memcache_zipserve.py



On Apr 22, 3:54 pm, danfreak freakclimb...@gmail.com wrote:
 Does anyone has a cool solution to use a WYSIWYG Editor on app engine?

 I'm wondering about the upload file limit, and therefore I would like
 to know if somebody managed to use a gzipped version for example of
 TinyMce (http://tinymce.moxiecode.com/) , FCK etc

 Cheers

 Daniel
--~--~-~--~~~---~--~~
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: Templating Logic

2009-04-07 Thread johntray

The reason for using the os.path.join() method is that it is platform-
independent. I think, however, that python on windows is now smart
enough to understand the forward slash delimiter, so your version will
work ok on a windows machine. Also, for what it's worth, it is
customary to specify each path component separately, that is:

  path = os.path.join(os.path.dirname
(__file__),'Templates','mytemplate2.html')

where 'Templates' and mytemplate2.html' are separate function
arguments.

The reason for using the os.path.dirname(__file__) is to specify the
path relative to the current file, instead of the current working
directory (which is the case in your code). It is customary
programming practice not to rely on the current working directory
being set, but again in your example, it should work fine.



On Apr 6, 10:38 pm, GenghisOne mdkach...@gmail.com wrote:
 A stupid question about templating...

 Do I really need to use the whole os.path.join monstrosity to tell
 Python where my template lives?

 I commented it out and replaced it with a simple path...it seems to
 work fine.

 What am I missing here? Why are others using this os.path.join
 pattern?

 #path = os.path.join(os.path.dirname(__file__), 'Templates/
 mytemplate2.html' )
     path = 'Templates/mytemplate2.html'
     self.response.out.write(template.render(path, template_values))

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



[google-appengine] 500 error online (cannot find module) but no problem with dev_appserver

2009-02-27 Thread johntray

Well I am completely stumped. Since upgrading to the 1.1.9 SDK, my app
runs OK with dev_appserver, but when I upload and try to run online, I
get an import module error:

type 'exceptions.ImportError': No module named siterequesthandler
Traceback (most recent call last):
  File /base/data/home/apps/jatnotes/1.331705598365864096/main.py,
line 7, in module
from site.siterequesthandler import SiteRequestHandler

Can anyone help me figure out what is wrong here? Since every other
post seems to blame 500 errors on the app.yaml file, I will paste mine
below. (I don't see the connection, but I've got nothing to lose...)

john


application: jatnotes
version: 1
runtime: python
api_version: 1

handlers:
- url: /site/images
  static_dir: site/images

- url: /site/stylesheets
  static_dir: site/stylesheets

- url: /javascript
  static_dir: html/javascript
  login: required

- url: /stylesheets
  static_dir: html/stylesheets
  login: required

- url: /test
  static_dir: test

- url: /.*
  script: main.py

skip_files:
- ^(.*/)?app\.yaml
- ^(.*/)?app\.yml
- ^(.*/)?index\.yaml
- ^(.*/)?index\.yml
- ^(.*/)?#.*#
- ^(.*/)?.*~
- ^(.*/)?.*\.py[co]
- ^(.*/)?.*/RCS/.*
- ^(.*/)?\..*
- ^(.*/)?test/.* # don't upload test directory (localhost
only)
- ^(.*/)?html/images/.*  # html/images directory not used


--~--~-~--~~~---~--~~
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] Problem with python module in directory named site

2009-02-27 Thread johntray

I have this unusual problem where the online server cannot find a
python module if it is in a directory named site. When my main.py
tries to import site.module, the online server says it is not found
and kicks out a 500 error. This problem does not occur with the
development server. I think it is related to the fact that I am also
using some subdirectories of the site directory for static files.
But since I cannot repeat this behavior with the dev_appserver, I am
not going to spend any more time debugging it. It seems strange, but
simply renaming the directory makes the problem go away.

I know that you cannot use certain URLs with GAE (/form and /
_ah/). Is it possible there are some restricted directory names 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: 500 error online (cannot find module) but no problem with dev_appserver

2009-02-27 Thread johntray

OK thanks for the info.

Can I ask you to feed a suggestion back to the GAE documentation
folks? A sentence or two about not commingling handlers and static
dirs in 
http://code.google.com/appengine/docs/python/tools/configuration.html#Static_File_Handlers
would have saved me some grief.

My app has 3 major parts, so I organized it in 3 directories, each
containing a request handler (python) in the top-level directory, and
their respective images, javascript, and stylesheets in
subdirectories. Seems like the most natural layout, however it sounds
like I *should* have used 2 directories at the root level, one for
handlers and the other for static files.

Thanks again,
john


On Feb 27, 12:21 pm, Marzia Niccolai ma...@google.com wrote:
 Hi,

 My guess is that you are having issues because you have site/images, etc as
 a static_dir, but it seems you also have program files in the site/
 directory? It's treating the entire site/ directory as a static directory,
 and thus it is not accessible in your application.

 This is a known issue with the dev_appserver, where static_dir are
 programmatically accessible through the dev_appserver, but this is not the
 case in production.

 The solution would be to separate out your static files and program files in
 to completely different directories.

 -Marzia

 On Thu, Feb 26, 2009 at 6:14 PM, johntray john.tur...@gmail.com wrote:

  Well I am completely stumped. Since upgrading to the 1.1.9 SDK, my app
  runs OK with dev_appserver, but when I upload and try to run online, I
  get an import module error:

  type 'exceptions.ImportError': No module named siterequesthandler
  Traceback (most recent call last):
   File /base/data/home/apps/jatnotes/1.331705598365864096/main.py,
  line 7, in module
     from site.siterequesthandler import SiteRequestHandler

  Can anyone help me figure out what is wrong here? Since every other
  post seems to blame 500 errors on the app.yaml file, I will paste mine
  below. (I don't see the connection, but I've got nothing to lose...)

  john

  application: jatnotes
  version: 1
  runtime: python
  api_version: 1

  handlers:
  - url: /site/images
   static_dir: site/images

  - url: /site/stylesheets
   static_dir: site/stylesheets

  - url: /javascript
   static_dir: html/javascript
   login: required

  - url: /stylesheets
   static_dir: html/stylesheets
   login: required

  - url: /test
   static_dir: test

  - url: /.*
   script: main.py

  skip_files:
  - ^(.*/)?app\.yaml
  - ^(.*/)?app\.yml
  - ^(.*/)?index\.yaml
  - ^(.*/)?index\.yml
  - ^(.*/)?#.*#
  - ^(.*/)?.*~
  - ^(.*/)?.*\.py[co]
  - ^(.*/)?.*/RCS/.*
  - ^(.*/)?\..*
  - ^(.*/)?test/.*         # don't upload test directory (localhost
  only)
  - ^(.*/)?html/images/.*  # html/images directory not used
--~--~-~--~~~---~--~~
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
-~--~~~~--~~--~--~---