Greetings all, below is the transcript for the office hours last night, 2011 Feb 2 (7-8p PST/10-11p EST). Thanks to Robert Kluin for helping out! See you in a few weeks!
cheers, -wesley Status #appengineX [Google App Engine http://code.google.com/appengine/ | App Engine news and articles http://reddit.com/r/appengine | Developer chat 1st Weds 7PM PST, 3rd Weds 9AM PST] [22:06] == wesley_Google [cfed70e8@gateway/web/freenode/ip.207.237.112.232] has joined #appengine [22:06] == King946 [d8d366bd@gateway/web/freenode/ip.216.211.102.189] has joined #appengine [22:08] == skot [~s...@76-220-21-42.lightspeed.sntcca.sbcglobal.net] has quit [Quit: Leaving.] [22:08] == skot [~s...@76-220-21-42.lightspeed.sntcca.sbcglobal.net] has joined #appengine [22:10] <King946> i gotta run, but I just wanted to ask this question before the hour is up... (I think I'll be back before the hour but I'm not 100% sure)... does anyone know how to get the Django admin page working with the django nonrel tutorial app at http://code.google.com/appengine/articles/django-nonrel.html [22:11] <robertk> isn't there supposed to be a dev chat now? [22:11] <wesley_Google> hey robertk, yup, it's office hours now. [22:11] <wesley_Google> king946> the admin should work just out of the box as long as you did the normal admin setup [22:12] <robertk> hey wesley_Google. cool [22:12] *robertk* i thought ikai and nickjohnson would be here too :-P [22:13] == skot [~s...@76-220-21-42.lightspeed.sntcca.sbcglobal.net] has quit [Ping timeout: 245 seconds] [22:14] <robertk> ok, well i've got a question re task queues :) [22:15] <wesley_Google> go ahead... i've not used TQs heavily but i know a few things... [22:15] == dtuckerames [~ad...@173-16-61-173.client.mchsi.com] has joined #appengine [22:16] <robertk> so there was a question in the groups the other day about the task 'token' refill rate. i think greg answered saying tokens would be refilled at a fractional rate (ie a queue with rate with 5/s would be refilled at 1 per 1/5th of a second) that is not really what i observe though, it seems instead like the queue is refilled with 5 tokens every 1 second [22:17] == eflynn [~e...@c-75-69-66-197.hsd1.vt.comcast.net] has joined #appengine [22:17] <robertk> damn i hope that was clear :) [22:17] == gr-eg [~g...@cpe-98-148-122-173.socal.res.rr.com] has quit [Quit: gr-eg] [22:17] <robertk> hoenstly talking about the rate / second is almmost silly, but when talking about per minute rates it is noticeable and does matter [22:17] <wesley_Google> 5/s is both the default execution rate as well as the default token replenish rate [22:18] <wesley_Google> you can modify both settings as well as others in your queue.{ya,x}ml file(s) [22:18] == openpercept_ [~admin@fedora/openpercept] has joined #appengine [22:19] <wesley_Google> i think it happens all at the same time (5 in 1 sec vs. 1 in 1/5th sec) [22:19] <robertk> so lets say we're talking about 5/M. will tokens be refilled at 5/M or 1 per 12 seconds? [22:19] <wesley_Google> good one. i'm not 100% sure. i would gets 5 every 60sec rather than 1 in 12s, but u can probly whip up a small snippet of code to confirm :-) [22:19] <wesley_Google> "guess" not "gets" [22:20] <wesley_Google> see? it's past my bedtime already ;-) [22:20] <robertk> because to me it behaves like it is 5 tokens at 60 seconds because i always see all tasks run immediately not 'slowly' over the minute :) [22:20] == jsurfer [~mdesa...@c-76-126-253-140.hsd1.ca.comcast.net] has quit [Quit: jsurfer] [22:20] <robertk> ha ha, here too :) [22:20] <nickjohnson> robertk: That's down to the bucket size, not when it's replenished, though [22:22] <robertk> ok, so basically setting a smaller bucket_size would allow me to somewhat throttle low-rate queues? [22:22] <nickjohnson> Bucket size just controls the burst rate [22:23] <robertk> i've honestly never set the bucket_rate lower than my exec rate, typically i set it equal to or greater than the rate (ie 5/s; bucket 10) [22:24] <robertk> nickjohnson: right but if i set the bucket less than the rate how does it impact the effective rate? say in the case of 5/M with a bucket size of 1 [22:24] <robertk> i know how it works in the case of 5/M with a bucket of, say, 10 [22:25] <dgu> With queues configured to high execution rates (e.g., 50/s) I've found that the actual execution rate will be much slower than the maximum unless the bucket size is also high (100+). [22:26] <robertk> yeah, i typically set the bucket size to the same or higher than the 'number' portion of the rate [22:27] <wmerydith> I keep getting these messages in my logs: [22:27] <wmerydith> This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application. [22:28] <wesley_Google> i don't think you can set bucket_size to 5/M. i think it's just a flat number, so if you put 10, that's 10/s, if you put 50, that's 50/s. [22:28] <wmerydith> What does that mean? There's no traffic to the app [22:28] <wmerydith> except me [22:28] <wesley_Google> wmerydith> yep, that's you then. :-) [22:29] <wesley_Google> this just means that your app has not been running on any machine, so when you hit it, App Engine has to start an instance for you, and that's what that msg represents. [22:30] <robertk> wesley_Google: yeah the bucket_size is only a number, i meant that if my rate is XX/s i generally set the bucket_size to XX or higher (ie so that a sudden influx of tasks can burst above the 'stable' rate) [22:30] <wesley_Google> yeah, you should almost always set it higher. [22:31] <wesley_Google> even at max rate, say 100/s, i'd set the bucket to 150 or something [22:32] <robertk> i agree. it just came up on the list the other day and greg's response made me wonder if i correctly understood how it works and the impact of a _lower_ bucket size [22:33] == alzeih [~alzeih@203.97.149.58] has quit [Ping timeout: 265 seconds] [22:33] <wesley_Google> which greg? [22:34] == alzeih [~alzeih@203.97.149.58] has joined #appengine [22:35] <robertk> darke [22:35] <robertk> i think that is the task-queue guy isn't it? [22:38] <wesley_Google> ah. not sure if he's on TQs... he works in the same office as the TQ guys tho. [22:41] <robertk> ah. i see :) [22:42] <robertk> ah. ok, next task-queue question :) are we able to get 'Task Queue API Calls' increased? i'm at 85% right now [22:45] <wesley_Google> that is doable depending on your app's need. when it gets near midnight PST, every night for several days, take screen captures of your quota detail page. [22:45] <King946> wesley_Google: hi. you said "the admin should work just out of the box as long as you did the normal admin setup". what is "the normal admin setup"...stupid question i imagine, but I'm still not 100% up to speed with django... is that the process where you create "superuser" [22:46] <wesley_Google> then go to http://code.google.com/support/bin/request.py?contact_type=AppEngineContact and request a quota increase [22:46] <dtuckerames> Has anyone come up with a way to determine if a task is still executing? [22:46] <dtuckerames> or to find the retry count? [22:46] <robertk> wesley_Google: ok will do, thanks. [22:47] <wesley_Google> king946> you have to do a few things to enable it in settings.py (turn on admin), register your models (enable the admin to work with your objects), etc. [22:47] <robertk> dtuckerames: there is a header set with the retry count [22:47] == corruptmemory [~j...@ool-18bbd5b2.static.optonline.net] has quit [Ping timeout: 240 seconds] [22:47] <dtuckerames> accessible via deferred lib or I have to get that myself? [22:49] <dtuckerames> robertk: thanks - I remember seeing something about that now [22:49] <robertk> hmmm, not sure if its passed into a deferred function or not. [22:49] <wesley_Google> http://code.google.com/appengine/docs/python/taskqueue/overview.html#Task_Request_Headers [22:49] <wesley_Google> http://code.google.com/appengine/docs/java/taskqueue/overview.html#Task_Request_Headers [22:50] <johnlockwood> King946: try "python manage.py help [22:50] <robertk> wesley_Google: can you get the search team to rank google-groups itself above the osdir.com site? the ads drive me crazy ;) [22:50] <johnlockwood> King946: i believe there is "python manage.py createsuperuser" [22:51] == derferman [~anonymous@66.92.48.133] has quit [Quit: derferman] [22:52] == jasong_at_apache [~jasong...@pool-74-109-106-202.phlapa.fios.verizon.net] has quit [Quit: jasong_at_apache] [22:53] == iq [~iq@unaffiliated/iq] has quit [Ping timeout: 240 seconds] [22:54] == iq [~iq@unaffiliated/iq] has joined #appengine [22:55] <King946> johnlockwood: is a superuser the same as an admin in django? i've done some searching for how to create admins in django nonrel, and i've found some stuff that seems close to what i want... .but i'm hoping for straightforward tutorial that would teach me what to do as a django noob [22:56] <wesley_Google> dtuckerames> i don't think there's a way to query whether a task has completed. your best bet is to log something at the end of a task, and if you see that log line, then it's done :-) [22:56] <johnlockwood> King946: yes the superuser is that same as a django admin [22:56] <dtuckerames> wesley_Google: Ya, that is what i am doing, but was hoping for a new or secret API - :) [22:56] <wesley_Google> King946> but not the same as a superuser in POSIX [22:57] *dtuckerames* LOL. not that i'm aware of... maybe at some point in the future. people always want to know if threads have finished executing too, so this is similar [22:57] <johnlockwood> but you know, the last time i tried django-nonrel, I couldn't get remote_api to work with it, so I couldn't create a super user once I uploaded the app [22:58] <King946> wesley_Google: POSIX? you lost me wesley, i haven't heard of that, haha... is that something i should be a superuser in as well? [22:59] <johnlockwood> actually my big problem with getting the remote api with nonrel to work was when I tried with the HR datastore [22:59] <King946> will doing some of the steps in here http://groups.google.com/group/django-non-relational/browse_thread/thread/82e3d8a31ae14d57 get me to where i wanna be? [22:59] *King946* "POSIX" refers to any Unix-flavored operating system, like Linux, Mac OS X, FreeBSD, etc. [22:59] <King946> i don't think i'll be using the HR for the moment, so i think i'll be fine if that's the only problem [23:00] <wesley_Google> johnlockwood> what were some of those issues? [23:01] <johnlockwood> wesley_Google: it just wouldn't authenticate [23:01] <johnlockwood> kept asking for email and password [23:02] <johnlockwood> I think it had something to do with the s~ that prefixes the app name [23:02] == DadGumIT [~m...@pool-72-66-29-88.washdc.fios.verizon.net] has joined #appengine [23:03] <johnlockwood> so the app id no longer matches the app url [23:03] <wesley_Google> johnlockwood> that's likely... i can check on that for you [23:03] == iq [~iq@unaffiliated/iq] has quit [Ping timeout: 276 seconds] [23:04] <johnlockwood> that would be cool, I also had trouble with remote api and an app set to OpenID [23:04] <wesley_Google> johnlockwood> i think *that* one is known already... if you search the issue tracker, you should find a ticket on that you can star [23:04] <johnlockwood> ok [23:05] <wesley_Google> ok all, office hours are over... thanks for joining us tonight and see you in a few weeks! [23:05] <johnlockwood> thanks [23:05] <robertk> wesley_Google: i like dtuckerames' question, an api to query the tasks in a queue (or even queue stats!) would be super handy! [23:05] <robertk> thanks for the help wesley_Google [23:05] <King946> thanks wesley_Google [23:06] <johnlockwood> King946: those are the right steps [23:06] <johnlockwood> can you get to /admin [23:06] <johnlockwood> localhost:8000/admin [23:06] <johnlockwood> when you runserver [23:07] <wesley_Google> sure, np everyone! [23:08] == joobie [~joo...@mx01.anric.com.au] has quit [Ping timeout: 245 seconds] [23:08] <King946> johnlockwood: i've just been trying to get to the admin page on my launched application... i have it here.. http://maintestapp123.appspot.com/admin .. it's the same app as the django nonrel tutorial [23:09] <King946> i assumed that the admin was activated right from the beginning because the yaml file has the line - url: /media/admin static_dir: django/contrib/admin/media expiration: '0' [23:09] == crass [~cr...@cpe-70-113-31-121.austin.res.rr.com] has joined #appengine [23:10] <King946> but i never created a superuser so i guess taht's why it didn't work... i'm new to django so i could easily be missing out on steps like that [23:10] <johnlockwood> King946: you must have more than one url(r'^admin') mapping [23:10] <crass> is the ordering of properties in the index yaml important? [23:12] <johnlockwood> crass: do you mean the order of '- name: propname' under properties:? I don't see why it would be [23:14] <johnlockwood> King946: oh, i see your url shows your apps 404 page [23:15] == Irishgringo [~chatzi...@c-66-229-63-143.hsd1.fl.comcast.net] has joined #appengine [23:18] <crass> ok, me neither, but just confirming, and should a query using properties A and B be able to use an index on the same entity which indexes A, B and C? [23:18] == DadGumIT [~m...@pool-72-66-29-88.washdc.fios.verizon.net] has quit [Quit: DadGumIT] [23:20] == dtuckerames [~ad...@173-16-61-173.client.mchsi.com] has left #appengine [] [23:21] == wmerydith [~ad...@76-76-229-120.lisco.net] has quit [Quit: Leaving.] [23:23] <King946> johnlockwood: i put a question here http://pastebin.com/6WH90C2R [23:24] == pyToolmaker [~pytool...@agsb-4d040d7e.pool.mediaways.net] has joined #appengine [23:24] <King946> that post i mentioned earlier where the guy got the admin to work, he said he put the line admin.autodiscover() in his url file... and i'm not sure where he would have put it [23:25] <King946> (that's a summary of what i put in the pastebin) [23:27] <johnlockwood> King946: like this: http://pastebin.com/T5vdAjYt -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2007,2001 "Python Fundamentals", Prentice Hall, (c)2009 http://corepython.com wesley.chun : wesc+api at google.com : @wescpy developer relations :: google cloud products -- 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.