/srv/irclogs.ubuntu.com/2013/04/23/#juju-gui.txt

frankbanmorning rogpeppe1 08:01
rogpeppe1frankban: hiya08:01
frankbanrogpeppe1: here is the new plan: http://pastebin.ubuntu.com/5594917/08:02
* rogpeppe1 looks08:02
rogpeppe1frankban: hmm, nice idea, but i'm not sure it's guaranteed to work08:04
rogpeppe1frankban: what if the ServiceInfo delta was correct (and different to the value that the user has selected), and there's no subsequent delta?08:05
rogpeppe1frankban: ISTM that in that case you could show the wrong value for an arbitrary length of time08:06
rogpeppe1frankban: i *think* that you'd be best off just living with the slowly updating unit count for now and listing it as a bug to be fixed in juju-core08:07
frankbanrogpeppe1: AFAICT, after the fact, the first delta can be 1) the one generated by the user changing the total count or 2) a previous one, no longer valid. 08:13
rogpeppe1frankban: what if another user is changing the total count?08:14
frankbanrogpeppe1: I suppose a race is still possible, but we narrow the window, and, anyway, it only affects that user form (for the more important parts of the GUI we still use the unitInfo delta).08:16
rogpeppe1frankban: there's another possibility too: the delta generated by the user changing the total count might arrive *before* the reply to the AddServiceUnits call08:18
frankbanrogpeppe1: we can start ignoring the first delta right after the call to AddServiceUnits08:20
frankbanrogpeppe1: http://pastebin.ubuntu.com/5594974/08:22
frankbanrogpeppe1: I see the wrong state in the line 13-14 window, but I think that's acceptable from a UX perspective08:23
* rogpeppe1 is thinking08:25
rogpeppe1frankban: there are other problems too08:52
rogpeppe1frankban: for example, if there are 5 units, and two clients both type "20", both clients will add 15 units, and there will eventually be 35 units, even though neither wanted that08:53
rogpeppe1frankban: i still think that the best thing to do is not to write partially-correct client code to try and paper over the problem08:54
rogpeppe1frankban: but to actually fix the underlying problem08:54
rogpeppe1frankban: or... for the time being, change the user interface to add an explicit "add units" dialog, so we don't try to pretend to the user that they're setting the total number of units08:55
rogpeppe1s/or.../and, perhaps, /08:55
frankbanrogpeppe1: that's an UX change, and I don't know if it's doable, I have to ask. Re the problem you are describing, we already have that problem, and we are trying to solve another one (having the form updated with units as they arrives generates confusion and can lead the user to re-type the number he wants in the form.08:58
frankbanrogpeppe1: and that story ends up with a lot more units to be created08:58
rogpeppe1frankban: here's a simpler solution, i think: don't update the displayed unit count while the call is in progress; start displaying the current unit count (from the deltas) immediately afterwards09:09
rogpeppe1frankban: no need for any changes to the current API, i think, if you do that09:10
rogpeppe1frankban: it doesn't work well with concurrent clients, but i think that's inherent to the current setup, and will be fixed when we fix juju-core in this respect09:10
frankbanrogpeppe1: but when you restart displaying the unit count, that can be wrong, e.g. you have 5 units and asked for 100. you display 100 till you have a response and then you switch to the number in the delta. at this point you could have 50 units, then 60, etc... we want to avoid precisely that behavior09:12
rogpeppe1frankban: i think the unit count at that point will only be wrong for a maximum duration of the poll interval09:13
frankbanrogpeppe1: so, do you think that right after the response to add/remove units arrives, the next delta is always correct?09:15
rogpeppe1frankban: the deltas are always correct :-)09:15
rogpeppe1frankban: for some value of correct...09:15
frankbanrogpeppe1: :-) I mean, when addUnits returns we can be reasonably sure that the delta already sent all the added/removed units events?09:16
rogpeppe1frankban: ah, i have another idea09:17
rogpeppe1frankban: the deltas are returned in response to a Next API call, right?09:18
frankbanyes09:18
rogpeppe1frankban: so, while you're waiting for the result of the AddServiceUnits call, you don't call Next; when the AddServiceUnits call returns, you call Next immediately.09:20
rogpeppe1hmm, that's wrong too, both it09:20
rogpeppe1bother it09:20
rogpeppe1ah, no, i think it might make sense09:21
rogpeppe1nope09:22
frankbanthat's, more or less, the same as not updating the count in the form while waiting for the addUnits response.09:22
rogpeppe1frankban: yeah09:22
rogpeppe1frankban: ok, another idea :-)09:22
frankbanand that idea (the old) is better IMHO: more easier to implement, and it does not prevent the rest of the GUI to react to deltas and update itself09:23
rogpeppe1frankban: only start updating the form from the deltas from 5 seconds after the AddServiceUnits call has returned09:23
rogpeppe1frankban: thus we reduce the window where the user might see an incorrect count, but we run no risk of showing an incorrect value indefinitely09:25
frankbanrogpeppe1: sounds good, that way we ensure the GUI db already has the correct number of units, correct? because the mongodb is watched every 5 seconds09:25
rogpeppe1frankban: yup. maybe make it 6 seconds to account for network delay etc09:26
rogpeppe1frankban: and a big TODO to remove this hack when juju-core is changed to fix the issue09:26
frankbanrogpeppe1: so, this could be the new story: http://pastebin.ubuntu.com/5595088/ with no changes to juju-core, right?09:31
rogpeppe1frankban: that seems good. you'll need to make sure that the number of units to add or remove is calculated with respect to the currently displayed value, not the value from the deltas09:34
frankbanrogpeppe1: yes09:34
frankbanrogpeppe1: I still think it could be valuable to return unitCount from ServiceGet, so that we can update that number when the user visits the service detail view. I am thinking about the user refreshing that view: we lose the state (and the 6sec sleep), we wrongly display the value from the delta. 09:38
rogpeppe1frankban: if the user refreshes the view, the websocket connection is made again and everything is fetched again, right?09:40
frankbanyes09:41
frankbanrogpeppe1: the user adds 100 units and then refresh: the form is updated from deltas, and deltas didn't already send all the new units09:43
rogpeppe1frankban: the first delta that arrives will have all the units in09:43
frankbanrogpeppe1: really? so if you add 1000 units they are all send in the same delta?09:44
rogpeppe1frankban: yup, that is true currently.09:45
rogpeppe1frankban: in the future, we may split the responses, but i think we'll always provide an indication that there's more to come.09:45
rogpeppe1frankban: otherwise you can't know when you've seen the whole environment.09:46
frankbanrogpeppe1: but that delta can arrive after 6 seconds, right? so, if the user refreshes we could display the wrong value for that amount of time09:46
rogpeppe1frankban: no, that delta will arrive immediately09:47
rogpeppe1frankban: the first delta is always sent immediately09:47
frankbanrogpeppe1: so, if the user does not refresh, there can be a 5 seconds delay, otherwise the delta is sent immediately. 09:48
rogpeppe1frankban: yes09:48
frankbanrogpeppe1: so, is this correct? http://pastebin.ubuntu.com/5595128/09:52
rogpeppe1frankban: yup, looks good09:53
frankbanrogpeppe1: cool, thanks a lot09:53
gary_posterhey rick_h_ you feeling better?12:14
rick_h_gary_poster: yea, thanks12:14
rick_h_gary_poster: tried to check in yesterday. wonder if we can setup some time to chat about the url/itegration bits sometime soon.12:15
gary_postercool rick_h_, glad.  benji got the add button integration in.  he had it in landing but I just moved it to done because it worked for me, at least for a trivial experiment.  Is it good for you?12:15
rick_h_gary_poster: haven't looked yet, giong through huw's stuff from last night. I'll check it out. Thanks for getting that going. 12:16
benjiTelecommute awsomeness 23: Can't catch coworker crud. ;P12:16
rick_h_yea, no kidding12:16
gary_posterbenji :-)12:16
gary_postercool rick_h_ 12:16
rick_h_having kid/dr wife suckiness #1 - they're constantly trying to kill you12:16
benjigary_poster: when you have a chance I'd like to discuss the charm build-speeding task I'm on12:16
rick_h_and of course I work from home so I don't expose to all that stuff12:17
gary_posterrick_h_, time to chat: sounds good.  let me re-review the current UX bugs and then we can talk any time.  I'll ping when I think I have a good overview12:17
gary_posterbenji, cool.  now, or in 30/45 min?12:17
rick_h_gary_poster: benji add buttons seems cool. Thanks again. First integration point check!12:17
benjigary_poster: now would be best for me, if you have the time12:17
gary_posteryay rick_h_ :-)12:17
gary_posterok benji, to guichat we go12:18
benjik12:18
frankbangary_poster: morning, Roger and I ended up with this solution: http://pastebin.ubuntu.com/5595128/ Could you please take a look?12:51
gary_posterfrankban, yeah I saw the conversation and that pastebin.  I was a bit concerned about it but was going to let it go and check in with you later.  I'm on a call now.  ping you later?12:52
frankbangary_poster: sure12:52
gary_posterthx12:52
bacgary_poster: i propose that i fix bug 1170468 by keying off the default value to determine whether to render a simple input field or a textarea.  i'm going to get styling help from the design guys.  follow on work will provide the expansion control you want.  The work needs to be duplicated on the service settings page, too.  are you ok with this incremental approach?13:16
_mup_Bug #1170468: Allow multi-line text input for charm configuration in the GUI <juju-gui:In Progress by bac> <https://launchpad.net/bugs/1170468>13:16
bac\o/ mup, welcome back13:16
gary_poster:-)13:16
gary_posterbac, yes, as long as you discuss the expansion control with design guys now too to make sure they are on board with the expected end story13:17
bacyeppers.  writing email now.  that's what prompted this running up the flag pole13:17
gary_postercool thanks bac13:17
hatchgary_poster: thanks for the review - sorry that prefetch_service code is just old prototype code left in for the units, that will be going away in favour of the promise stuff13:53
gary_posteroh cool hatch great13:53
bachi jovan2 and luca____ -- just sent you an email.  would love to discuss when you have time.13:53
rick_h_hatch: you in? got a quick question for you. My medicated brain is confused13:54
luca____bac: Hi Brad, we'll read it through and get back to you asap.13:54
jovan2tiheum ping13:54
bacthanks luca____13:54
hatchrick_h yup back, just went and spent a few minutes outside - so nice out, frost, -6 sunny,,,,ahhhh13:58
rick_h_woot!13:59
rick_h_hatch: guichat for a sec? should be fast but easier to say than write13:59
hatchsure13:59
rick_h_oops, nvm. Diff one13:59
rick_h_looks like it's occupied13:59
hatchhttps://plus.google.com/hangouts/_/e7b58b173b15be49a7f0bc948e75d2521b03e375?authuser=0&hl=en14:00
rick_h_hatch: https://plus.google.com/hangouts/_/29e068e60e2b16c671698550d1e55971a6091ae3?authuser=0&hl=en14:00
hatchlol14:00
hatchok joining yours14:00
hatchI figure you pythonites would enjoy this http://www.skulpt.org/14:10
rick_h_pythonistas :P14:11
rick_h_and no, use the right tool for the job. If you want to do client side then use JS. But I'm a pythonista that can write a few lines of JS when required :)14:11
hatchgary_poster: did you have a few moments to chat about the promises stuff?14:21
gary_posterhatch soon 14:25
gary_posterfrankban, guichat?14:25
hatchnp, lemme know14:25
gary_posterthanks will do14:25
frankbangary_poster: joining14:25
gary_posterthx14:25
gary_posterrick_h_, you available for guichat?14:42
rick_h_gary_poster: sure thing14:42
gary_postercool14:42
rick_h_umm, if my browser will let me14:43
teknicobcsaller, I'd like a quick hangout when you're around14:56
frankbanrogpeppe3: do we already have a bug for the SetServiceUnits functionality? If not, do you want me to file one, so that we can track its progress?14:57
rogpeppe3frankban: i think there probably is one; let me check14:57
bacjovan2: bigger screenshot sent.  sorry about that.15:01
rogpeppe3frankban: i can't find one actually15:02
jovan2bac: thanks!15:02
rogpeppe3frankban: could you file one please. and please describe your particular scenario too in the report.15:02
frankbanrogpeppe3: sure15:02
frankbanrogpeppe3: filed bug 117189915:11
_mup_Bug #1171899: Allow for setting a specific number of units (as opposed to add or remove them) <juju-core:New> <juju-gui:Triaged> <https://launchpad.net/bugs/1171899>15:11
rogpeppe3frankban: thanks!15:12
hatchoh hey mup, welcome back15:12
frankbanmup is back, you only love him when he's not around15:12
hatchyeah - I wonder if he has any new tricks or if he is a one trick pony15:13
bcsaller teknico: whats up?15:15
teknicobcsaller, I'm working on #1171508 and I'd like your opinion15:16
_mup_Bug #1171508: install-error when deploying charm <juju-gui:Triaged> <https://launchpad.net/bugs/1171508>15:16
bcsallerteknico: I have that fixed in a branch I'm about to propose15:16
bcsallerconfig_get needs --format json15:16
bcsallerand then parse using json.loads15:17
teknicobcsaller, right15:17
teknicoexacgtly15:17
teknicobcsaller, why are we working on the same thing?15:17
bcsallerteknico: I ran into it testing the apache support in the charm just just hit it as a fly by15:18
bcsallerdidn't know there was a bug for it15:18
teknicobcsaller, ok, while we're at it, did you also happen to fix #1171512?15:19
_mup_Bug #1171512: Failure in charm unit test <juju-gui:Triaged> <https://launchpad.net/bugs/1171512>15:19
bcsallerteknico: I had all the tests passing last night, I'll try to confirm they work with the revs since then, one sec15:20
bcsallerteknico: Ran 43 tests in 1.587s, seems good15:20
teknicobcsaller, great. how about #1171516?15:21
_mup_Bug #1171516: Charm needs more backend tests <juju-gui:Triaged> <https://launchpad.net/bugs/1171516>15:21
bcsallerteknico: I changed some of the existing tests, but haven't added more to the backend suite15:22
teknicobcsaller, ok, so I guess that one's still standing15:22
bcsallerteknico: the existing tests have been updated to work properly like I said. I also changed one of the mechanisms in test utils to be more flexible, I can push what I have now if you want to look at it15:25
=== rogpeppe3 is now known as rogpeppe
teknicobcsaller, yes, please. I'll also review your branch once you propose it15:26
bcsallerteknico: awesome15:26
bcsallerteknico: lp:~bcsaller/charms/precise/juju-gui/apache-version/15:28
teknicobcsaller, getting it15:28
bcsallerteknico: https://codereview.appspot.com/864004415:41
teknicobcsaller, the related card (no rietveld link in it though) seems to be back  in the Code lane15:42
bcsallerI did paste the link in the desc (which I see) and moved it (but it seems to have moved back)15:43
teknicoweird15:43
teknicobcsaller, you want to put that link in the "Add external link" -> "URL" field, rather than in the description (I've done it already)15:46
bcsallerteknico: ahh, thanks15:46
bacgary_poster: i've got the first branch done.  the textarea looks a little funny wrt inner scrollbar and rounded corners.  i'd like to put it up for a code review now and do styling when the design guys can give me feedback.15:51
gary_posterbac ok, UX feedback during review?15:55
bacgary_poster: yeah15:55
gary_posterjujugui kanban update pls15:55
gary_posterbac cool15:55
gary_posterhatch didn't forget about you :-) talk after daily call?15:55
hatchwho are you again?15:56
hatch:P15:56
hatchhaha yeah sure np15:56
gary_poster:-)15:57
rick_h_hatch: https://codereview.appspot.com/8920043/ if you get some spare time :)15:59
hatchviewing16:01
gary_posterbcsaller, ping16:02
hatchrick will do the review now16:17
rick_h_hatch: thanks, I see ther's a small conflict in there I'm lokoing at. but just assume I can get my }, in the right place :)16:17
rick_h_hatch: oh, nvm. Doesn't show in reitveld, just LP it looks like16:18
bacbenji: i found my problem that killed the beautifier16:39
benjiwhat was it?16:39
bacif you use a bare "default:" (or any other keyword i suspect) as a key without quoting it, the beautifier crashes16:40
bacvar x = {default: 'something'};16:40
bacthe linter finds it but the beautifier crashes16:40
teknicowhen there's only the juju-gui service, maybe we should disable the "Build Relation" menu entry :-)16:41
MakyoHeading home, back in a few.16:41
gary_posterhatch ole buddy ole pal!16:42
gary_posterguichat?16:42
hatchsure thing16:42
hazmatgary_poster, is there a gui staging instance running against go?17:39
gary_posterno hazmat17:40
hazmatgary_poster, k, i'm trying out the api from python, and doing some of the same things that the gui is doing, but getting errors, wasn't sure if perhaps something bitrotted.17:41
hazmatthis is just on EnvironmentInfo post login. result. u'Error': u'unexpected end of JSON input'17:41
gary_posterhazmat, was working last night, and was going to send announcement today.  Possibly bug 116097117:42
gary_poster?17:42
_mup_Bug #1160971: WebSocket disconnects when an invalid request is sent <juju-core:New> <juju-gui:Triaged> <https://launchpad.net/bugs/1160971>17:42
gary_posterhazmat, I mean, GUI plus Go was working last night17:42
hazmatgary_poster, cool, it could very well be my client lib doing something silly17:42
hazmatrogpeppe, around?17:44
hazmatoh.. nevermind.. empty Params struct is required17:47
bacanyone have time for a second review of https://codereview.appspot.com/8922043 ?18:44
bcsallerbac: I can look it over18:49
bacthanks bcsaller18:49
rick_h_hatch: jcsackett sinzui any of you guys up for reviews take 2 please? https://codereview.appspot.com/892304419:07
bcsalleroh good, the CI is working on the new charm now19:07
gary_posteryay!19:07
sinzuirick_h_, I can19:07
gary_postergreat job bcsaller.  Did you verify that internal links still work--apache will serve up the index.html if you go to /some/url/that/has/no/associated/file ?19:09
gary_posterI was going to check that19:09
rick_h_in a world all alone among the grey masses...is the juju gui http://uploads.mitechie.com/lp/jujugui_svg.png19:09
rick_h_bah, sorry, bet that ping'd everyone :(19:09
* rick_h_ thinks about filenames better19:09
gary_posteryay!  orange!19:09
bcsallergary_poster: I think at this time, no :( I think a 404 handler might do it though19:09
benjiI've already written a 45 page guide to project-wide IRC pings that will be followed on the next project.19:10
gary_posterbcsaller, yeah, that would work.  I think the nginx thing did that--looking how...19:10
rick_h_benji: but does it have a simple to use checklist I can use to verify "should I sent this message to irc"?19:10
gary_posterrick_h_, when do we get to see the icon at http://uistage.jujucharms.com:8080/bws/sidebar/~juju-gui/precise/juju-gui-43/ ?19:10
benjirick_h_: that's coming in Volume II19:11
rick_h_gary_poster: when this branch I've put up for review lands19:11
baccool rick_h_.  we should stand out like a beautiful orange flower growing in the asphalt19:11
rick_h_gary_poster: that's from my dev instance where I had to fix a bug19:11
gary_posteryay rick_h_ :-)19:11
rick_h_gary_poster: so the faster it's reviewed the faster you get it *hint hint* lol19:11
gary_posterlol19:11
gary_posterbcsaller, nginx just did it with a url rewrite (lines 31-33 of https://codereview.appspot.com/8640044/diff/1/config/nginx-site.template?context=10&column_width=80 ).  Probably a better approach, that could be duped in apache19:12
bcsallergary_poster: I initially had mod_rewrite configured in, might have to add it back in then19:13
gary_posteryeah19:13
bcsallergary_poster: however all the CI test pass w/o it, do we really need it?19:13
gary_posterbcsaller, yeah.  without it you can't pass urls to other people19:13
gary_posterbcsaller, we should add a test19:14
bcsallerfair enough19:14
gary_posterbcsaller, which you don't have to write for this fix :-)19:14
gary_postera bug/card would be sufficient19:14
benjigary_poster: I have lots of interesting data to discuss when you get a minute19:16
gary_postercool benji, will ping soon19:17
benjik19:17
hatchsomeone ding me? Sorry irc client screwed up19:19
rick_h_hatch: did here, https://codereview.appspot.com/892304419:19
hatchalright will do19:19
bacbcsaller: regarding your comment about px vs em, i think you've got a good point but since i was just moving an existing value to another place i would like to keep it at 15px.  doesn't make sense to tackle it in just this one place IMO.19:20
rick_h_hatch: appreciate it. Nice to end the day on a landing19:20
bcsallerbac: yeah, I meant it to sound like I was fine with that happening another time 19:20
baccool19:20
hatchrick_h_: I hope you don't expect me to review that json doc :P19:21
rick_h_hatch: no, I'm expecting you to ignore it and carry on :)19:21
hatchhaha19:21
hatchwhat does the svg+xml do?19:21
hatchnever seen that before19:21
rick_h_hatch: fix the svg. It won't right right without it. 19:22
hatchinteresting19:22
rick_h_hatch: since we've not had any charms with icons until just recently didnt' realize it19:22
hatchI always thought it was just image/svg19:22
rick_h_hatch: you/me both :/ 19:22
hatchhaha19:22
rick_h_hatch: but +xml makes it all worky worky19:22
gary_posterbenji guichat?19:26
benjigary_poster: sure19:26
hatchrick_h_: done19:27
rick_h_hatch: ty sir19:28
hatchno problem19:36
* hatch is attempting to use sublime only by keystrokes19:53
gary_posterOur charm's quality is 0/38!20:01
* gary_poster is crushed20:01
rick_h_hah, need to get reviewed20:02
gary_poster:-)20:02
rick_h_http://uistage.jujucharms.com:8080/bws/sidebar/~juju-gui/precise/juju-gui-43/ icon is up20:02
rick_h_http://uistage.jujucharms.com:8080/bws/fullscreen/~juju-gui/precise/juju-gui-43/ as well :)20:02
rick_h_ok, 4 bugs is a good day. Time to run while I'm ahead. 20:02
gary_postercool, ttyl rick_h_ 20:03
hatchI wonder if I can dual boot this mac mini into 13.0420:08
hatchswitching from osx to ubuntu is driving my finger memory nuts hah20:08
bcsallergary_poster: turned out there was a 'new' apache directive for the 404ish thing, much simpler than it used to be.  http://httpd.apache.org/docs/2.2/mod/mod_dir.html#fallbackresource if curious20:20
hatchgary_poster: you still around?20:39
benjigary_poster: http://jujugui.wordpress.com/2013/04/23/ive-been-investigating-the-speed-of-various-things/20:41
hatchnice finds benji20:43
benjithe S3 speed variability surprised me20:43
hazmats3 is known to be variable..  cloudfront is better for this use case (s3 origin). i'd also check out google storage  as a low latency object store, boto works with it20:44
benjiyeah, I figured cloudfront would smooth it out quite a bit20:46
hatchtaking lunch20:49
gary_posterhatch around20:58
gary_posterbcsaller, FallbackResource: awesome20:59
bcsalleryeah, and it all still passes CI20:59
gary_posterbenji, nice blog, thanks21:00
gary_posterbcsaller, heh, awesome21:00
bcsallerhttp://uistage.jujucharms.com:8080/bws/fullscreen/~juju-gui/precise/juju-gui-44/ picks up the icon now, sweet21:07
gary_posterHey Makyo, if this is a quick fix, I made a card for the fact that the scroll wheel behavior is broken in Firefox (try going to http://uistage.jujucharms.com:8080/ and using the scroll wheel to zoom)21:13
gary_posterI'll file a bug21:13
Makyogary_poster, About to head out for dogwalk, but will take a look. Hopefully it's something on our side.21:14
gary_postercool Makyo thanks21:14
rick_h_bcsaller: :)21:39
hatchgary_poster: sorry I missed that you said you were back22:16
hatchhttps://code.launchpad.net/~hatch/juju-gui/set-loaded good middle branch?22:16
hazmatafaics constraints in the go api are broken, set followed by get shows no change22:35
hazmator i can spel the key correctly and it works ..22:36
hazmatnm22:36
benjiheh, I did the same thing the other day22:41
gary_posterhatch, wow, that still works?  yay for deleting code! :-)23:21
gary_posterhatch, then a later branch will move loadService and other db-related bits to the models module?23:22
gary_poster+1 so far23:22

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!