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

rick_h_hatch: around?00:44
hatchdepends....:P00:45
rick_h_heh, huw is having some npm issues today and wondered if you knew/could help him out00:45
hatchsure I can give it a try00:45
hatchI'm also making supper though :)00:45
rick_h_sec, getting him into the channel00:45
rick_h_hatch: all good00:45
rick_h_there he is00:47
huwshimiHey00:47
rick_h_huwshimi: so as I was saying. I pulled the latest trunk, make clean-all && make && make devel without any issues here00:47
rick_h_hatch: might know more if you're still getting an error as he's hacked with the npm stuff a bit while I just cross my fingers and pray it works :)00:48
huwshimirick_h_: I'll pull a new branch and see if that fixes anything00:48
rick_h_huwshimi: cool00:48
rick_h_hatch: and bcsaller are a bit farther back in TZ so not sure how long they're around but worth a ping if you can't get it going00:48
huwshimirick_h_: It'll take 5-10 minutes :)00:48
rick_h_cool, well I'm on cold meds and my wife is fussing at me to get to bed. good luck!00:49
hatch:)00:50
huwshimirick_h_: Alright, thanks. Night.00:50
hatchhuwshimi: mention me when you have it all downloaded and run `make`00:50
hatchjust cooking supper00:50
huwshimihatch: OK will do, thanks00:50
huwshimihatch: Same thing. Fresh branch of trunk. Ran make and here's the npm-debug.log http://paste.ubuntu.com/5711913/00:56
hatchok looking01:05
hatchwhat do you get when you run01:06
hatchnode --version01:06
hatchand npm --version01:06
hatchoh wait nm I se01:07
hatchhmm that's very odd01:09
hatchdid you install npm/node with sudo?01:09
huwshimihatch: I think I just did "sudo apt-get install nodejs"01:10
huwshimi(as per the hacking doc)01:11
hatchahh ok I thought you were on osx01:11
hatchhmm honestly I'm not sure01:12
hatchI gota run for about an hour but I'll look into it when I get back01:12
huwshimihatch: OK, no problems. Thanks01:12
gary_posterbcsaller, ping01:17
bcsallergary_poster: pong01:17
gary_posterhey bcsaller, thanks.  reviewing diff.  mostly looks good so far but one concern that's either wrong or easy to fix01:17
gary_posterfor allow-external-sources01:18
gary_posterwe should not install extra repos01:18
gary_poster*but*01:18
gary_posterwe should be able to apt-get install01:18
gary_posterIn the case of IS,01:18
gary_posterthey will have established the CAT repo on every juju image01:18
gary_posterand we will be able to ask them to put various packages in CAT01:19
bcsallergary_poster: ah ha, I thought they'd use a custom image ro something01:19
gary_posterso apt get install is AOK01:19
gary_posterjust nit adding extra repos01:19
gary_posternot01:19
bcsallergary_poster: should be an easy change01:19
gary_postercool thanks bcsaller.  the only downside from what I see you have now is that we can't predict the failure, as you do now01:20
gary_posterbut so be it01:20
gary_posterreality is more important :-)01:20
gary_posterbcsaller, maybe the option name should change?01:20
bcsallergary_poster: ideas?01:21
gary_posterallow-additional-deb-repositories is long but relatively accurate01:21
bcsallerhmm, I can do that 01:21
gary_posterthank you bcsaller. Will you do that tonight?  I was writing the email to IS but I'd like that to be right before they look at it01:22
gary_posterif you will do it tonight then I will check back later01:22
* gary_poster has 773 unread emails 01:22
* gary_poster usually does inbox 001:23
* gary_poster has been a bit focused on deadlines lately :-P01:23
bcsallergary_poster: I will do it now, can you look at the second check in hooks/install though01:23
gary_posterthanks bcsaller, looking01:23
bcsalleris that a valid policy to preserve?01:23
gary_posterbcsaller, if allow-additional-deb-repositories, do not install ppa:juju/pkgs, but do install those PYTHON_DEPENDENCIES01:25
gary_posterI mean, if *not* allow-additional-deb-repositories, do not install PPA01:26
bcsallergary_poster: I'm sorry, I mean in backend/InstallMixin01:26
gary_posteroh01:26
bcsallerI told you the wrong place :(01:26
bcsallerthats why I names the var 'sources' because I thought we wanted this type of protection in place as well 01:27
bcsallerbut it might be an invalid requirement 01:28
gary_posterbcsaller, there were two uses in InstallMixin.  To try and be as clear as possible, I wrote about all three uses here: http://pastebin.ubuntu.com/5711981/01:34
bcsallergary_poster: thank you01:34
gary_posterwelcome01:34
gary_posterbcsaller, changes look very nice so far.  Trivial, but I suggest you move GuiMixin repositories to UpstartMixin, or combine those two.  Not trivial: could you review http://pastebin.ubuntu.com/5711996/ and verify that, to the best of your knowledge, these are the packages that we need in CAT, noting the sources I mention?01:43
gary_posterbcsaller, maybe paranoid, but I wonder if we should do an apt-get update in the install hook in lieu of adding more deb repos, when that flag is set.01:55
bcsallergary_poster: I suspect you're right, add_extra would have done that 01:56
gary_posterright01:56
bcsallergary_poster: I'01:56
bcsallerIm in the middle of a test of it now though01:56
gary_posterok cool01:56
hatchoh huw is gone01:57
gary_posterbcsaller, I need to go.  I just sent you a proposed email to IS.  I really need to send this today.  I'll check back in about 45 minutes to see if you feel comfortable with me sending it, and if you have any corrections.  Then I'll go to bed. :-)02:29
bcsallergary_poster: replied with the comments in email, should be good to go03:11
gary_posterhi all12:00
gary_posterfrankban, hi.  am I right that we could switch the charm to apache without technical difficulties, just with a bit of annoyance?12:01
frankbangary_poster: haproxy + apache? If so, I think you are right.12:02
gary_posterfrankban, yes, haproxy + apache.  Cool, thanks.  Did you see that reply from mthaddon?12:02
frankbangary_poster: yes I do, he has another concern about multiple services on the same charm (IIRC haproxy).12:03
gary_posterfrankban, right, I need to talk him away from that one12:04
frankbangary_poster: +112:04
gary_poster:-)12:04
* frankban is curious about why nginx is not blessed12:04
rick_h_frankban: because it's not in main, and it has a shady history of only existing in a russia version control system 12:05
rick_h_frankban: but these days I think the last *blocker* is that it's not in main and that IS has experience with everything on apache12:06
frankbanrick_h_: ack, thanks12:06
frankbangary_poster: time for a quick call in the usual place?12:06
rick_h_we hit the same change :)12:06
rick_h_and asked the same question12:06
gary_posterfrankban, about to have call with mthaddon, will ping12:07
frankbangary_poster: ok thanks12:07
bacthanks for the view frankban.  teknico could you have a look at https://codereview.appspot.com/8735044/ ?12:12
gary_posterfrankban, ok can call now.  going to guichat.  no rush, join when you are ready.12:22
gary_posterrogpeppe, can you think of any situation in which all of a service's units are in a stopped state, and the service is *not* being destroyed?12:31
rogpeppegary_poster: what do you mean by "stopped state" there?12:32
gary_posterrogpeppe, the unit is in a state called "stopped"? :-)12:32
gary_posternot pending, not error...12:32
gary_posterstatus is stopped on a unit12:32
rogpeppegary_poster: hmm, let me have a look12:32
rogpeppegary_poster: it would happen if you did remove-unit on each unit of the service12:34
gary_posterrogpeppe, and at that point the service would still be "around" in database terms--you could still make relations and add units and so on?12:34
rogpeppegary_poster: yes12:35
gary_posterrogpeppe, GUI does not allow removing the last unit of a service FWIW, and neither AFAIK does pyjuju12:35
gary_posterbut that's an aside12:35
rogpeppegary_poster: interesting. i don't really see why it shouldn't, but that's a different issue, yeah12:36
gary_posterrogpeppe one other question: is there any way of looking at a service and knowing that it is on the way to being destroyed?12:36
rogpeppegary_poster: yes, its Life will be Dying12:36
rogpeppegary_poster: BTW did you see this? https://codereview.appspot.com/8761045/12:37
gary_posterrogpeppe, ah, ok.  I guess we ought to expose that in the deltas then. :-P12:37
rogpeppegary_poster: yup12:37
gary_posterrogpeppe I saw that you had it up last night, but hadn't seen you had two LGTMs.  yay!  landing soon?12:37
rogpeppegary_poster: yup12:37
gary_postercool thank you rogpeppe 12:46
teknicobac, looking13:08
bacteknico: sorry i didn't see your new card.13:18
teknicobac, no worries :-) thanks for the review!13:18
teknicobac, done13:28
bacthx teknico13:28
frankbanrogpeppe, gary_poster: it seems that, when a service A is connected to another service, the latter being in an error state, the ServiceDestroy call removes all the unit of service A but leaves the service alive without units.13:37
rogpeppefrankban: interesting13:37
rogpeppefrankban: that might be the expected behaviour13:37
rogpeppefrankban: what happens if you resolve the error status of the other service?13:38
frankbanrogpeppe: trying13:39
frankbanrogpeppe: it works well, the service A is removed after the unit is resolved13:41
rogpeppefrankban: hmm. i wonder.13:41
gary_posterrogpeppe, out of curiosity, why would that be desirable behavior?13:41
rogpeppegary_poster: i'm not sure13:42
gary_postercool13:42
rogpeppegary_poster: it could be that it's not possible to leave a relation without the say-so of the other service13:42
rogpeppegary_poster: in fact, i think that's probably the reason13:42
rogpeppegary_poster: we insist on orderly teardown13:42
gary_posterhuh.  "user is in charge and doesn't want the service so let's handle it for them" seems more user-friendly on the face of it.  But I guess the GUI really should be able to communicate these stories to the user13:43
gary_posterif user presses destroy and service hangs around, at the very least we should hand hold them13:44
gary_posterA notification like "the service cannot be completely destroyed until all units are resolved"13:44
rogpeppegary_poster: i agree. i think the other service should probably allow services to leave the relation even if it's in an error state13:44
rogpeppefrankban: could you raise an issue, and mention why it's unexpected behaviour, please13:45
gary_postercool13:45
MakyoIs that like https://bugs.launchpad.net/juju-core/+bug/1168154 ?13:47
frankbangary_poster, rogpeppe: IIUC it seems that a service refuses to execute his hooks while it's in an error state, and this involves also the relation-broken one. So, trying to destroy a connected service actually removes the units but fails removing the service itself. This can be sane from a point of view: the problem is that destroy service calls succeed without errors, and the user does not immediately know what's g13:49
frankbanoing on.13:49
frankbanrogpeppe: is that correct?13:49
rogpeppefrankban: sounds right to me13:49
rogpeppefrankban: although it's not clear to me why we need to execute the relation-broken hook *before* leaving the relation13:50
gary_posterMakyo, very similar to the one frankban is talking about, yes13:50
* bac kicks lp2kanban13:56
hatchmornin!13:59
rick_h_jovan2: look like the changelog changes landed on staging as well: http://uistage.jujucharms.com:8080/bws/fullscreen/precise/apache2-214:00
jovan2Thanks rick_h_14:02
gary_posterfrankban, fwiw, I made a comment on Makyo's bug that is somewhat pertinent to what you are working with.  Dunno if it is helpful for you or even interesting, but it is comment 3 of https://bugs.launchpad.net/juju-core/+bug/116815414:03
frankbangary_poster: cool, thanks, I'll link your comment in the new bug. I am trying to dupe the problem before filing it.14:06
gary_postercool14:06
frankbanrogpeppe, gary_poster: filed bug 116958814:24
frankbanand mup is not awake: https://bugs.launchpad.net/juju-core/+bug/116958814:25
benjiI have a gui review up at https://codereview.appspot.com/879704314:26
benjiIs the kanban bot not working any more?14:27
gary_posterfrankban, thank you, looks good14:27
gary_posterbenji, I saw bac was kicking lp2kanban but that's all I know14:28
* bac still kicking14:28
benjik14:28
hatchI thought that the kanban bot broke a long time ago14:34
hatchrick_h_: did huw get npm working? I had to leave but he was gone when I got back14:41
rick_h_hatch: I *think* so. He had a pair of branches for me to look at but mentioned 'fighting with make all day'14:41
rick_h_hatch: so no idea how it went down.14:41
hatchahh - his error message looked a lot like permissions issues14:42
gary_posterbenji LGTM14:53
benjithanks14:53
gary_posterteknico, as you are working on your card, you might be interested in a conversation Ben and I had about one of my recent branches, which is pertinent.  Trying to find...14:55
gary_posterteknico, see https://codereview.appspot.com/8680043/ .  First comment #4, in para starting with "I agonized about this comment a bit," and then comment #714:57
teknicogary_poster, looking14:57
gary_posterthanks teknico.  In essence, I'm inviting you to reconsider what I did, if you hadn't already.14:58
teknicogary_poster, uhm, hatch and I agreed that it would be a good idea to use the nsRouter in all the navigateTo event firings (?)15:01
hatch^ bcsaller15:01
teknicogary_poster, is that reasonable?15:01
gary_posterteknico, sure, do you see the relation to what I pointed to?  This was bcsaller's advice as well, and what I did in that branch made it possible but somewhat more annoying to construct url's to a root value15:02
gary_posterteknico, so, my point is...15:02
gary_posteras you do what you are doing, which is fine by me,15:02
gary_posterconsider whether what I did makes what you are doing overly annoying15:03
gary_posterand if so15:03
gary_poster...I dunno, figure out something better :-P15:03
teknicogary_poster, links to the root are looking like this: this.fire('navigateTo', {url: this.get('nsRouter').url({gui: '/'})});15:03
teknicogary_poster, they do not upset me :-)15:04
teknicohatch, is that ^^ right? does it represent what you told me? :-)15:04
hatchyep15:04
gary_posterteknico I don't think that will work unless you include {includeRootPaths: true}15:04
hatchuntested of course15:04
gary_posterteknico see https://codereview.appspot.com/8680043/diff/10001/app/assets/javascripts/ns-routing-app-extension.js15:05
hatchoh that's interesting15:05
hatchI wonder why that's there15:05
teknicogary_poster, oh, *that*'s the flag you were mentioning in the review15:05
gary_posterteknico, yes15:05
gary_postersorry15:05
hatchgary_poster: do you know why that's included?15:06
gary_posterhatch, why yes :-)15:06
teknicothose review comments are kind of cryptic :-)15:06
gary_posterhatch, do you mean "why do we remove namespaced root paths from the underlying URL? "  Or do you mean "why do we make it possible to include namespaced root paths in a url?"15:07
gary_posteror both :-P15:07
hatchwhy do we need a special flag, why can't we just generate the url15:07
hatchbecause it's just saying 'hey we won't generate the url you ask for....unless you ask for it with a smile' :D15:08
benjiis the non-drag-or-click-ability of the service boxes on the trunk a known issue?15:08
gary_posterhatch, a root url is implied in all namespaces if not given15:08
gary_posterbenji no15:08
gary_posternot by me15:08
gary_posterand confiremed on uistage15:09
hatchI know what it is15:09
hatchrick_h_: the subapp browser container is covering the environment15:09
hatchthanks benji15:10
gary_posterhatch so anyway, if I say "give me a url that is /:gui:/:foo:/:bar:/" then the pretty version of that is "/"15:10
rick_h_hatch: yes, we'll rework the html in follow up. 15:10
gary_posterthanks benji & hatch.  rick_h_, you able to revert, or fix quickly?15:10
rick_h_gary_poster: oh sorry, does it cover when not in /bws?15:10
hatchgary_poster: ahhh gotcha thx15:10
hatchrick_h_: yep15:10
gary_posterrick_h_, yes http://uistage.jujucharms.com:8080/15:10
rick_h_gary_poster: yes, can fix it asap15:10
gary_posterthanks rick_h_ 15:11
gary_posterhatch, teknico, *but*...15:11
gary_posterif I am on the /:gui:/service/wordpress page15:11
gary_posterand I want the user to go to the root15:11
gary_posterthen that needs to be spelled /:gui:/15:11
gary_posterbecause of you spell that "/" then the router's combine method will assume that you want to keep all namespaced paths that you didn't explicitly specify as they are now15:12
gary_posterSo there are a few options15:12
gary_posterBut did that make sense, teknico, hatch, before I talk about the possible solutions, including the one I chose, even though I was not entirely convinced by it?15:13
gary_posters/of you spell that/if you spell that/15:14
hatchI think that this is showing a small issue in the way the urls are being generated...15:14
hatchfor example...15:14
teknicogary_poster, I'm still confused, can you please tell me what the router output will now be in the second case you mentioned (spelling "/")?15:15
hatchif I"m at example.com/foo/bar/:gui:/baz/bax and I generate a url via nsRouter.url({gui: '/cars'/}) I should get a url example.com/foo/bar/:gui:/cars/15:15
hatchso following that thinking....15:15
hatchnsRouter.url({gui: '/'}) should return example.com/foo/bar/:gui:/15:16
gary_posterteknico, the router combine method will say "ok, we are currently at /:gui:/service/wordpress.  I am supposed to now go to a new url that the developer gave me, which might or might not have a value in the same namespace.  If the new url doesn't have a value in a given namespace, I will keep the current value in place.  That way, for instance, if I'm at :charmstore:/foo/bar and you tell me to go to :gui:/service/wor15:18
gary_posterdpress, we don't lose url state of the charmbrowser bit--the new url is :charmbrowser:/foo/bar/:gui:/service/wordpress.  You gave me the new url "/".  That doesn't override any namespaces at all!  I'll keep everything just as it is now."I want to keep any namespace that is not "15:18
gary_posterjust as it is now15:19
gary_posteruh oh that got messed up :-/15:19
hatchgary_poster: but when you pass an object in does it not assign those rules to the specified namespace?15:20
gary_posterActually, just lop off the last partial sentence and it's what I meant (remove "I want to keep any namespace that is not ")15:20
gary_posterhatch, in to what?15:20
* gary_poster reads your comments now...15:21
hatchwell we aren't passing strings into the url method15:21
hatchwe are passing an object specifying the namespace as the key15:21
teknicogary_poster, ok, go ahead: what's the URL of "everything as it is now"?15:21
rick_h_gary_poster: hatch fix is through lbox, just waiting on next staging update. 15:22
hatchthanks rick_h_15:23
gary_posterteknico, If the combine method is combining any url with namespaced paths--and they are all namespaced--then a "/" path without namespace in that context...let's move to guichat in a sec15:24
gary_posterrick_h_, thank you.  trying to manually update...15:24
hatchgary_poster: mind if I join?15:25
teknicogary_poster, ok15:25
gary_posterhatch of course not, meant to include you15:25
gary_posterrick_h_, updated (http://uistage.jujucharms.com:8080/juju-ui/version.js) but still see problem.  retrying...15:25
rick_h_gary_poster: needs css update15:25
gary_posterack15:26
gary_posterI did a make build15:26
rick_h_gary_poster: looking 15:26
gary_posterrick_h_, maybe there are more less files to watch now ?15:26
rick_h_gary_poster: yes, but they're tied into make15:26
gary_posterok15:26
rick_h_gary_poster: but yea, I don't see the css change in the site15:27
rick_h_#subapp-browser should have a default display: none rule on it15:27
gary_posterrick_h_, http://pastebin.ubuntu.com/5713430/ shows make build output.  it combines css but shouldn't it have built css from less?15:27
gary_postercan run make clean && make...15:28
gary_posterbut that would be a Makefile bug that we ought to be able to fix trivially if that is the problem15:28
rick_h_hmm, 'just worked' here with me running make devel as I fixed it in15:28
gary_postertrying make clean15:28
rick_h_maybe it's in make devel but not a diff make target space15:28
gary_postershould be part of build target...15:29
gary_posterrick_h_, make clean && make fixed it, thanks.  put a card in to investigate build css issues when you get a chance later?15:29
rick_h_gary_poster: will do15:30
gary_posterthank you15:30
frankbanrogpeppe, gary_poster: I am working on adding services' life to the delta. What do you think it is better: passing the juju-core int values (0:alive, 1:dying, 2:dead) or maybe just provide what's required by the GUI, e.g. Alive bool?15:30
gary_posterI like alive bool, where dying means dead, yeah?15:31
frankbangary_poster: yes, dying is alive == false15:31
gary_postercool, fine with alternative but sounds good to me15:32
frankbangary_poster: that's called boolean euthanasia15:32
gary_posterlol frankban 15:32
hatchlol15:32
=== rogpeppe2 is now known as rogpeppe
gary_posterjujugui please update kanban board15:51
rogpeppegary_poster: the config branch has landed BTW15:58
gary_posterjujugui call in 215:58
gary_posterawesome thanks rogpepe15:58
gary_posterrogpeppe, 15:58
gary_posterbenji ping16:01
benjig*ry: sorry I was late to the meeting, my battery alarm went off the same time as your ping so I was running around like a crazy person getting power out here16:16
benjiOne of my projects around the house should be external outlets every 20 feet or so.16:16
hatchbenji: that's code here16:16
hatchnot sure if it's 20ft but something like that16:17
benjihatch: houses built in rural Tennessee in 1938 don't quite meet modern code. ;)16:17
hatchhaha16:17
benjiI still have quite a bit of "knob and tube" wiring, which is frightenting.  I have so many project to do.16:18
* gary_poster had to look up knob and tube wiring16:29
gary_postercool benji :-)16:29
gary_posterbenji I triage #1169625 as low based on your description.  Do  you agree?16:32
benjigary_poster: yep, it's just aesthetics16:32
gary_postercool, will mark16:33
benjiI should have marked it as such.16:33
gary_posternp16:33
benjigary_poster: is it a bug that "make devel" and "make prod" generate 404s when you directly navigate to "http://localhost:8888/:gui:/service/wordpress/config/"?16:37
benji(when tha service does indeed exist)16:37
gary_posterbenji, yeah16:37
benjiok, I'll file that one then16:38
gary_postercool thank you16:38
benjigary_poster: that one seems "normal" (as opposed to "low" or "high")16:41
gary_posterbenji, mmm...let's call it high.  I need to garden bugs. :-/16:41
benjigary_poster: yeah, I meant "high" for the bug, non-annotated (normal) if it were a card16:42
gary_posterbenji, OIC, yes agree16:42
teknicogary_poster, what does "TARDIS" mean in "Multi dimensional router (TARDIS)"?17:01
gary_posterteknico, Doctor Who joke from bcsaller :-)17:01
gary_posterhttp://en.wikipedia.org/wiki/TARDIS17:02
teknicook, I suspected as much, just wanted to check :-)17:02
hatchif the sandbox had a sample setup it would be awesome to dev with17:06
hatchso fast17:06
bcsallerhatch: writing a simulator should be a slack card. I think the way to go is to add support for env import/export to the fakebackend 17:10
hatchslots of slacks17:10
rick_h_hatch: got a quick sec for another guichat on navigate?17:11
hatch2 seconds17:12
hatchalright17:13
hatchsee u in guichat17:13
rick_h_hatch: take 2?17:17
hatchtake 217:17
gary_posterbac benji or Makyo, Francesco is heading out for the day.  Someone needs to get his lp:~frankban/juju-core/bug-1169609-service-life branch tested and landed17:19
gary_posterHe suggests this: "I'd also manually test it, bootstrap, deploy, detsroy-service, to be extra paranoid check if it works well with the GUI"17:20
gary_posterThis needs to land today17:21
gary_posterIn order to get it into raring17:21
MakyoI can test.17:21
gary_posterso it is of higher urgency then bug 1169239 or bug 1169350, both of which are also good.17:22
gary_posterThank you very much Makyo 17:22
frankbanThanks a lot Makyo: the goal for that branch, and the thing to be tested above all, is that when you destroy a service you should see a serviceInfo change in the delta including Life: "dying" (where before it was "alive")17:24
Makyofrankban, alright.  Connection's being a little slow, but I'm on it.17:25
frankbanthanks again, have a good evening all17:25
rick_h_https://blog.mozilla.org/labs/2013/04/introducing-towtruck/ cool for doing UX reviews and such17:49
hatchvery cool17:50
gary_posterHey Makyo I forget how it works but on http://uistage.jujucharms.com:8080/ aren't you supposed to be able to hover over the connection thing to the right of puppet and see the relations?18:04
Makyogary_poster, yeah.18:05
gary_posterthought so.  Will file bug, thx18:05
MakyoCan't connect to websocket with core.  Frustrating.18:08
MakyoThe connection to wss://blah:17070/ was interrupted while the page was loading.18:08
gary_posterMakyo, are you using the charm?18:09
Makyogary_poster, no, local with updated config-debug.js18:09
gary_posterMakyo, oh.  did you do the cert dance on firefox?18:10
MakyoYep.18:10
gary_posteroh ok18:10
Makyogary_poster, ^18:10
gary_posterMakyo, I've got nothing then.  I think the charm was working.   If not, we need to raise an alarm pronto.18:11
MakyoTrying the charm next.18:11
MakyoProbably just this awful, awful connection.  Looking into it after this test.18:15
rick_h_hatch: halp! I'm missing something to get your subapp/view event to work. 18:24
rick_h_hatch: https://code.launchpad.net/~rharding/juju-gui/browser_links/+merge/159215 is the diff, the event is picked up if listened directly, but not through the addTarget. I tried making sure the event is published with the eventFacade set to true. Guessing I'm missing another step?18:25
hatchlooking18:26
hatchthis._editorial.addTarget(this);18:27
hatch^ rick_h_18:27
rick_h_ah, other way around. doh18:27
hatch:)18:28
rick_h_hey, that seems to work better. Thanks :)18:29
rick_h_wooo! and a click was routed and there was much rejoicing18:29
Makyobac, benji, gary_poster I need someone to help test this18:32
MakyoI think my net's just too flaky for the websocket anywhere but locally now.18:32
benjiMakyo: what can I do for yout?18:32
MakyoI've got the charm up and running at https://ec2-54-234-250-86.compute-1.amazonaws.com/18:33
MakyoAnd I've got debug-log running.18:33
bacMakyo: i can help too.  i have the most stable connection in all the carribean18:33
MakyoJust need someone to deploy something like mysql and then destroy it.18:33
hatchalright18:34
hatchwhat's the pw?18:34
Makyodbf1302887184d04aafb7502b40fcf5118:34
hatchwow sucks for the guy who has to type that every day18:35
hatchlol18:35
* gary_poster thinks of evil things he could do with that18:35
hatchMakyo: can't log in18:35
baci just got into Makyo's 401K18:35
gary_posterlol18:35
MakyoHah.18:35
benjiMakyo: it looks like you have all the help you need.  Let me know if there is anything I can do.18:35
MakyoYEah, hatch, it's sending EntityName rather than AuthTag.18:36
MakyoGive me just a sec.18:36
MakyoForgot to set the source.18:36
gary_posterso "a sec" here means "about 10 minutes" :-)18:37
hatchlol18:37
Makyohah, yeah.  About every third juju command fails for connection lost.18:37
hatchsounds like you need to switch to hotspotting your phone18:37
hatchor are you on one of those archaic providers who limits your data?18:37
gary_posterbtw, hatch, it was a small thing to fix the sandbox subordinate thing.  seeing if I can figure out bug 1169668 real quick for a twofer.18:38
MakyoIt gets slowed down after a while, but not capped.18:38
hatchgary_poster: ahh awesome18:38
MakyoTry logging in again18:38
MakyoWell, refresh first.18:38
hatchMakyo: ahh cool - we are unlimited but throttled after 10GB which is alright :)18:38
hatchbut I can still stream netflix on throttled speeds so Iunno what they get throttled to haha18:39
gary_posterheh18:39
hatchMakyo: still can't log in18:39
gary_posterfwiw, I'd be surprised if the charm built in 3 min18:40
MakyoI'm still getting EntityName.  Was the AuthTag branch not released?18:40
gary_posterbuilt the GUI I mean18:40
MakyoWell, whatever, I'll switch to bzr18:40
gary_posterMakyo, it was, but it takes about 8 minutes IME to get the dependencies18:40
gary_posteroh, released!18:41
gary_posterno, it wasn't18:41
gary_posterneeds to be lp:juju-gui18:41
Makyogary_poster, Yeah, I just saw hook complete. I'll switch to bzr.18:41
gary_postercool18:41
MakyoWas thinking trunk was an alias to that, but then I saw it downloaded a tarball :)18:43
gary_posteryeah, trunk series release.  Maybe not the best name I chose.18:43
gary_posterI think the subordinate relation thing is another fallout from the safe DOM name change...18:44
hatchpoop, I wish the GUI would send the relation id to the backend to remove18:46
hatchthat would have been trivial to implement heh18:46
gary_posterOK, fixed the subordinate thing.  To whom it may concern (maybe Makyo knows?) why can't you remove a subordinate relation?18:47
hatchin the sanbox?18:48
Makyogary_poster, I put it in there, but gosh that was a while ago.  Let me hunt down the branch.18:48
gary_posterhatch, the GUI doesn't let you18:48
gary_posterhatch, it is a popup18:49
bacgary_poster: s/to whom it may concern/g u i h e l p/ :)18:50
hatchgary_poster: ahh yeah even doing it through the service view throws an error18:50
gary_posterbac, heh, yeah, if Matt hadn't known I would have escalated18:50
bcsallergary_poster: in PyJuju w/o stop hooks it doesn't work at all. With stop hooks there are still unclear semantics around the ordering and teardown of subordinates wrt their parent container 18:50
Makyogary_poster, https://bugs.launchpad.net/juju-gui/+bug/107877618:50
hatchok so I don't need to implement that in the fakebackend then?18:51
Makyohatch, Nah.18:51
gary_posterMakyo, bcsaller ah, ok, thanks!18:51
hatchctrl+a del18:51
gary_posterhatch, sorry, didn't know :-) (and hopefully not ctrl-a!)18:51
hatchhaha no, I just had it in my TDD list :)18:52
MakyoAlright, gui finished building.  hatch +whoever, refresh and try logging in again18:52
hatchalright18:52
bacgary_poster: regarding the config/setting card, now that rog is supporting it we just need to update the db in the handler, right?  the work-around of refetching should not be required iiuc18:53
hatchMakyo: ok mysql deployed...do I now wait for it to bootup?18:53
MakyoYes please.18:53
hatchok that means white correct?18:53
MakyoYeah.18:54
gary_posterbac18:56
gary_postersorry bac right18:56
bacgary_poster: yay18:56
gary_posterbac, the only thing extra is the default values, as we discussed on call18:56
bacyeppers18:56
bacgary_poster: fwiw, i spent more time than i wanted dealing with canonistack/lp2kanban.  it looks like canonistack has a problem where new machines are communicating with the keyserver-like thing on the backend that is supposed to insert a user's ssh keys.  worked with montreal to try to get it diagnosed.18:58
bacs/are / are not18:58
gary_posterbac, ah, sorry.  ok.  resolved yet or in progress?18:58
hatchMakyo: destroyed....popup happened, the mysql element destroyed, then it poped back onto the gui, with a white ring....turned to a yellow ring....then dissapeared18:59
bacgary_poster: logged in their new fancy salesforce tracker.  don't know what happens now.  the work-around is to just keep spinning up and killing machines until one lets you in18:59
gary_posterhatch, darn, I think you need to get the service after it pops back to verify that there is some new attribute--life I think--and it is set do a "DYING" state19:00
gary_posterMakyo, or you can look at logs, alternatively19:00
Makyohatch, okay.  I did see the correct Life attribute, at least!19:00
gary_posterbac, ugh, ok19:00
Makyo{"RequestId":18,"Response":{"Deltas":[["service","remove",{"Name":"mysql","Exposed":false,"CharmURL":"cs:precise/mysql-16","Life":"dying","Constraints":{},"Config":{"binlog-format":"MIXED","dataset-size":"80%","flavor":"distro","max-connections":-1,"preferred-storage-engine":"InnoDB","query-cache-size":-1,"query-cache-type":"OFF","tuning-level":"safest"}}]]}}19:01
gary_posterMakyo, hatch, ok, that's perfect.  We need to change the behavior hatch described after frankban's branch lands19:01
MakyoCool :)19:01
MakyoTest complete for that?19:01
gary_posterMayo +119:02
gary_posterMakyo +119:02
gary_posterMustard +119:02
MakyoKetchup -1000019:02
gary_poster:-)19:02
MakyoNever any ketchu.19:02
Makyop19:02
MakyoAlright, destroying the env, and now I'm going to go reflash my router to see if that fixes this net problem.19:02
MakyoAn update over the weekend is when it started.19:03
hatchyay es5 `[0, 1].each(function(index) {});`19:09
hatch:)19:09
hatchcrap that's wrong lol19:09
hatch[0, 1].forEach(function(index) {});19:09
hatchit kind of looks funny19:11
rick_h_curses! back to still needed to write a state manager for the browser to be able to build the right url to navigate to19:16
gary_posterrick_h_, why?19:17
gary_posterthat's definitely not our hope, AIUI19:17
rick_h_gary_poster: because of the way I pass through multiple route callables to build the UX, no one part knows wtf the current state actuall is. 19:17
gary_posterbut...the current url is supposed to represent the state that you have to worry about in this regard?19:18
rick_h_the search nav widget has a button to go fullscreen. It's dumb. It just wants to say "change the current url to fullscreen" but the view that rendered it just knows "any sidebar view needs a search widget" and doesn't know about a charmID that's currently visible. Someone else knows that. 19:18
rick_h_gary_poster: right, but I'd have to store the last url and parse/update it which is what the state manager needs to do19:19
gary_posterput it in the url, rick_h_ ?  That was our intent19:19
gary_posterbut rick_h_ that's what the namespaced router does for you already19:19
rick_h_gary_poster: so it will handle the namespace, but not the parts of my url that I care about. I have to know what url or object of params to give to the navigate code19:20
gary_posterit gets the url before changing, parses, updates only the bits you want to update, and then...19:20
gary_posteroh!19:20
gary_posterrick_h_, you could put state in its own namespace :-P19:21
rick_h_so for just the browser /bws/sidebar/search/precise/apache2-2?text=apache19:21
gary_posterrick_h_, fwiw in that context I was wondering about this story:19:21
rick_h_that breaks down to sidebar view mode, filled with search results, looking at the details of the precise apache2 charm19:21
rick_h_so the button that goes to fullscreen wants to do a s/sidebar/fullscreen but keep the rest and then I can hand the url to navigation code19:22
gary_posterrick_h_, maybe crazy idea, but what about making a new namespace for just the sidebar/fullscreen choice?  The fullscreen choice would be the root19:22
gary_posterso it would not be present for fullscreen urls19:23
rick_h_*thinking*19:23
gary_poster*or*19:23
gary_postercrazier idea19:23
gary_posterthis gets to a user concern I had19:23
gary_posterwhat if you open the charm browser19:23
gary_posterlook at some cool stuff19:23
gary_posterfind a charm you like19:24
gary_posterminimize the charm browser for a sec to see the environment19:24
gary_posterand then open it up again19:24
gary_postercrap!19:24
gary_posterstate lost!19:24
rick_h_yea, I'm working to keep that. 19:24
rick_h_minimize doesn't change the url or change the browser subapp state19:24
gary_posterwelll...he said with a crazy gleam in his eye19:24
rick_h_ruh roh19:24
gary_poster:-)19:24
gary_posterif you divide out the left window expansion state19:25
gary_posterthen it has three states19:25
gary_posterclosed, side, full19:25
gary_posterchanging that state becomes super simple19:25
gary_posterif it is in its own namespace19:25
gary_posterand meanwhile the charm info hangs around, la de da de de da19:25
rick_h_maybe my crash course in routing/namespace today hasn't full prepped me to grasp the awesomeness of the idea19:26
gary_poster(that was the sound that charm infos make when they sing)19:26
rick_h_I've got a namespace due to my subapp defining one. To create new ones I'm seeing the need to multi-subapp or something19:26
rick_h_which seems like crazy talk 19:26
gary_posterrick_h_, I dunno maybe not awesome, maybe crazy.  I was hoping that namespace/subapp were not tied together at the hip.  hatch?19:27
hatchumm lemme read the baglog19:29
hatchbacklog19:29
rick_h_I like baglog19:31
hatchsounds like the issue is caused by not having the url states as variables19:31
hatchlike having sidebar/fullscreen a /:viewsize/19:32
rick_h_hatch: they are, depending on which route handling function you're in :)19:32
rick_h_hatch: but yea, :viewsize is not a var.19:33
rick_h_hatch: oh hmmm...maybe something can be worked out. the var can be repeated in later routes I guess19:34
rick_h_and then the subapp can pass the req.params into the view for it to know about the current state19:34
gary_posterrick_h_, maybe this is an "everything starts to look like a nail" situation.  Just an idea.19:34
hatchrick_h_: lets guichat this19:35
rick_h_gary_poster: I'm looking. I think there's a half way point where it's not as complicated as I'm thinking it is, but maybe not as simple as on the fly namespaces19:35
gary_posterack19:35
rick_h_hatch: sure19:35
* gary_poster holds himself back from joining, 'cause he wants to get other stuff done. sounds like fun though. lemme know what you decide :-)19:36
hatchrick_h_: you froze19:42
hatchsolved....going for lunch19:47
hatchbbl19:47
bacguihelp: anyone seen something like this http://pastebin.ubuntu.com/5714170/ where subsequent juju commands have failed b/c the previous one isn't done yet?  introduced since yesterday i think.20:07
gary_posternot I20:07
MakyoHopefully good news on net \o/20:13
Makyobac, This is a stretch, but have you tried deleting /tools from  your s3 bucket?20:13
bacMakyo: not today20:13
bacdo i need to add that to my morning routine?20:13
Makyobac, curious if it helps. I've seen something like that, but I also saw it around a 'error: using closed connection' problem, so I had deleted the tools20:14
bacmake tea, take dog out, shower, delete bucket, take dog out, delete bucket, cereal20:14
gary_posterlol20:15
bacMakyo: i got everything happy by reissuing those commands after the bootstrap was done.  so my environment is happy.  when i'm done with it i'll try what you suggest20:15
bacthanks for the idea20:16
gary_posterHey Makyo, I feel like learning some debugging tips.  Want to see if your connection is good enough to pair? :-)20:18
gary_posterIf you are busy that is fine of course20:19
Makyogary_poster, Now's good :)20:19
gary_postercool, Makyo guichat is free.  thank youi20:19
rick_h_note to self: _state is a registered trademark YUI doesn't like if you try to use it for your own devices20:31
rick_h_lol, _dispatch is also already owned20:33
hatch:)20:39
rick_h_hatch: going to ring again :)20:47
rick_h_meh, let me try one more thing first I guess20:47
hatchalright20:48
hatchdoes anyone know what I am supposed to put into the delta for removing relations?20:50
hatch^ bcsaller gary_poster20:50
hatchI don't really understand the delta yet20:50
gary_posterhatch will look soon20:51
bcsallerhatch, gary_poster I'm checking now20:52
bcsallerI expect its very little20:52
hatchthanks - and also some time i'd like a crash course on the delta :)20:52
rick_h_ok hatch, I think I broke routing. 20:56
rick_h_hatch: I needed to have multiple routes with the * to enable hitting multiple functions to do the rendering in the subapp20:57
rick_h_hatch: but now when I try to route to a url I get 'URL has more than one reference to same namespace ' which I assume it's because with the * there's multiple possible 'routes' it could be?20:57
hatchguichat?20:57
hatchor actually, the code you have would be better20:58
bcsallerhatch: sure20:58
rick_h_hatch: let's try not to atm, at a coffee shop and don't have my head set20:58
hatchhave it pushed up somewhere?20:58
hatchahh ok20:58
bcsalleroh, that wasn't to me20:58
hatchbcsaller: well if rick_h_ doesn't want to talk to me you can :)20:58
hatchhaha20:58
rick_h_hatch: https://code.launchpad.net/~rharding/juju-gui/browser_links and the link to test out with is http://127.0.0.1:8888/bws/fullscreen/precise/cassandra-1/ then click on the 'minimize' button on the right20:58
hatchis the method name router already used?21:00
hatchthought it was....21:00
rick_h_oh hmm, it works 21:00
hatchok well no biggy, I just thought that it did21:00
rick_h_I can change it. It's used in two places in this file21:00
hatchok back to reading21:00
hatchrick_h_: I'm curious as to why you are calling that method with call() vs just calling it directly, the scopes are the same21:01
rick_h_hatch: because I wanted to get fancy :P21:02
hatchlol21:02
hatchok I'll check out the code now to see what's happening21:02
rick_h__getStateUrl buids the url for the subapp to fire it's event to. 21:02
bcsallerhatch: for the relation remove it looks like it will be the standard remove clause (untested), this.changes.relation[relation.get('id')] = [relation, false];21:02
rick_h_and that urls is triggered the multple points errors21:03
hatchbcsaller: ok great thanks, that's kind of what I had assumed but wasn't sure21:03
bcsallerchanges.relations21:03
bachi gary_poster, you have a minute for a quick call re: config loading?21:03
gary_posterbac, in 5?  Matt is helping me debug21:03
bacgary_poster: sure, just ping me21:04
hatchrick_h_: I thought they were shutting that coffeeshop down?21:04
rick_h_hatch: I'm trying a new one farther away full of kids doing magic card game :(21:04
rick_h_I can't just stay in the house all day for multiple days 21:04
hatchhelllz yeah21:04
rick_h_hatch: how about phone call?21:05
hatchmagic cards all but went poof here21:05
rick_h_heh21:05
* hatch has a few shoeboxes full21:05
hatchlol21:05
rick_h_or I can head back to the house to chat 21:05
rick_h_lol21:05
hatchone sec I am now loaded up21:05
hatchok I can repro, now to debug21:06
hatchrick_h_: i'm not sure what I did but on refreshing I now can't make reuqests to the staging.jujucharms.com url21:09
hatchoh wait21:10
hatchi'm on sidebar21:10
rick_h_hatch: yea, ignore that21:10
rick_h_hatch: abentley moved an api enpoint to fill in the editorial data that's not updated yet21:10
rick_h_the charm deails still loads/works21:10
rick_h_http://127.0.0.1:8888/bws/fullscreen/precise/cassandra-2/ and /fullscreen/sidebar is what I'm trying to figure out21:11
rick_h_and this multi-route business comes into that change over21:11
rick_h_either page loads fine on it's own, but re-routing ot the other via the minimize button next to search throws the error21:11
hatchok so the real issue looks to me Uncaught TypeError: Cannot read property 'parentNode' of null21:12
rick_h_ooh, wonder if it's prefix /21:12
rick_h_hatch: no, that's the double routing breaking 21:12
rick_h_hatch: pushing up a branch with debugger's right at the right points. 21:13
rick_h_hatch: one of them is right after the new url is generated in the subapp and before it fires it up to the this.navigate21:14
rick_h_hatch: that url getting up to the ns routing code is confusing it21:14
rick_h_hatch: branch update pushed, merge down again21:15
rick_h_hatch: guichat? or another chat if it's taken?21:17
rick_h_willing to try it if you can tolerate the noise :)21:17
hatchsomething is messed right up here21:18
rick_h_hatch: lol21:18
hatchit's being dispatched 3 times21:18
rick_h_no, both routes get dispatched two times each21:19
rick_h_only one is checking if it's already been run so one is ignored21:19
rick_h_and the other runs twice (the charmDetails)21:19
gary_posterbac come on by guichat21:21
bacgary_poster: ok, just a sec21:22
rick_h_hatch: https://plus.google.com/hangouts/_/6c81e1105b1668757643f2f3efb3d0a5ee33fa6f?authuser=0&hl=en if you want to try to chat21:22
hatchit's ok just debugging21:23
rick_h_hatch: cool21:23
hatchok the sidebar renderer is definitely being called three times21:24
hatchbut why three21:24
hatchok i'm getting close21:26
rick_h_hmm, parse is getting the url /bws/fullscreen/precise/cassandra-2/:charmstore:/bws/sidebar/precise/cassandra-2 to parse 21:26
hatchok I think i have it fixed21:26
hatchjust give me a second to clean this up and test some more21:27
rick_h_hatch: rgr21:27
rick_h_thanks21:27
hatchcan you tell me where the event handler is for the button we r pressing?21:27
rick_h_hatch: yes, in subapp/browser/views/view.js21:28
rick_h_see _bindXXXXXX21:28
hatchgot it21:28
rick_h_we're binding to TOGGLE_FULLSCREEN21:28
hatchok I have it working but it re-renders the whole application when you click that button21:30
rick_h_:(21:30
rick_h_hatch: isn't there a ev.halt() on the button handler?21:30
hatchnope21:30
hatchbut that didn't help21:30
rick_h_oh no there's not doh21:31
hatchhttp://pastebin.ubuntu.com/5714396/21:32
hatchthere is my diff to get it working but with the refresh21:32
rick_h_hatch: well I wonder if that's jut working around the issue. If it's refreshing then it's not going through the nsrouter to trigger the issue21:33
rick_h_hatch: so it's probably still there just you can't see it. 21:33
rick_h_hatch: whenI debug the parse() method in the nsrouter it's getting two urls that maps to the same thing21:33
rick_h_hatch: as I pasted above: /bws/fullscreen/precise/cassandra-2/:charmstore:/bws/sidebar/precise/cassandra-2 parses the first part correctly, but then it's got left :charmstore:, '/bws/sidebar/precise/cassandra-2' so it finds two valid url parts that overlap21:34
rick_h_hatch: because of that dupe it throws that error in line 130 of the router21:35
rick_h_honestly tempted to just say if it's already int he result to just drop it silently but guessing there's something between the subapp navigate/nsrouter parse() that needs a fix21:36
hatchcloser...21:40
hatchok fixed21:47
* rick_h_ bows as I'm still trying to see what's wrong. 21:48
rick_h_that error was just a warning really, and the _dispatch list seems in good shape21:48
hatchfew moments I just want to clean this up21:49
rick_h_hatch: np21:49
hatchand i'llg et you the diff21:49
hatchis sidebar to fullscreen supposed to work too?21:50
hatchor not yet21:50
rick_h_hatch: yes21:50
rick_h_that shold work both ways21:50
hatchok so then it's not fixed21:50
hatchlol21:50
rick_h_the lick handler updates the change: {} based on the current setting21:50
hatchclose though, works one way but not the other21:50
rick_h_ click handler that is21:50
rick_h_ok, maybe I've got a bug in that then. 21:51
rick_h_hmm, well actually that'd be hard. the isFullscreen is based off the class name. Maybe the old view isn't destroyed or something21:51
hatchok fixed21:52
hatchnow cleanup21:52
hatchwhatever I had for lunch feels like it's trying to eat it's way out of my gut21:52
* hatch punches self21:52
rick_h_get me the diff before alien jumps out of your stomach!21:53
rick_h_:P21:53
hatchhaha21:54
hatchhttp://pastebin.ubuntu.com/5714442/21:54
hatchrick_h_: try and follow what my changes did, especially wrt the routing21:56
hatchif you don't understand I'll be more than happy to guide you through it21:56
rick_h_hatch: looking...looks like removed all the next() calls21:56
rick_h_ah, movd it 21:56
rick_h_but ...hmm that could case me to have my race conditions again as details can't run until after fullscreen or sidebar run21:57
hatchthey won't that's called in your showview callback21:58
hatchso the sidebar and fullscreen will run then call renderEditorial21:58
rick_h_right, but charmDetails needs to run after fullscreen/sidebar21:59
rick_h_that's why next() is called from them once it either builds or isn't needed to run again because it's already there21:59
hatchoh I see -22:01
rick_h_but you're right that it 'works' now. I don't really get why, but ok22:02
rick_h_I can work from here. I thoght the giant url in the router/warnings about "URL has more than one reference to same namespace " was to blame but cool22:02
hatchrick to avoid those race conditions22:02
hatchremove the next in the router method22:02
rick_h_time to run, day care closes in 28min22:03
hatchand then add the ones back on lines... 165 25622:03
rick_h_I'll be back online after his bed time to tinker some more22:03
hatchit still works but should avoid the race condition you were worried about22:03
rick_h_hatch: yea, I'll mess with it and see. Thanks for looking it over!22:03
hatchno problem22:03
hatchhuwshimi: hey did you get your npm issue solved?22:27
huwshimihatch: Yes! I figured out that the ppa had somehow been disabled so I hadn't got an update. Enabled the PPA, updated and then it all worked.22:27
hatchwow that's odd22:28
hatchI was sure it was some permissions issue22:28
huwshimiI saw some reports of similar errors happening when the nodejs version was too high for the dependency, I guess in this case it was the other way around somehow.22:31
rick_h_huwshimi: can you invite me to the hsngout?22:35
huwshimirick_h_: https://plus.google.com/hangouts/_/03b8a4d3cc2897be3e02449440076450533a80cb22:35
rick_h_huwshimi: can you have curtis invite me thriugb g+?22:35
huwshimirick_h_: Happening22:36
hatchjust FYI remove relations is finished just writing the integration tests now22:46
hatch:/ I hate it when tests only fail in phantom23:04
MakyoDid frankban's go branch land?23:15
gary_posterMakyo, you would have landed it, ugh23:40
gary_postersorry23:40
gary_posterI did not make that clear23:41
gary_posterMakyo, any chance for you to propose?23:41
* gary_poster feels stupid23:41
Makyogary_poster, sorry :( I was dropping 30-50% of packets at the time.  I can try to propose now.23:41
gary_posterMakyo, thank you would be great.  completely my fault23:41
gary_posterany progress on that bug23:42
gary_posterstepping away23:42
Makyogary_poster, not quite, dogs went nuts.  Will look at this evening.23:43
rick_h_hatch: is there an object == helper? I thought there was but my search fu is coming up empty23:44

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