/srv/irclogs.ubuntu.com/2014/08/08/#juju-gui.txt

hatchhuwshimi: I'm going to powerdown, need anything before I do?02:08
huwshimihatch: I think I'm good for the moment02:28
huwshimithanks02:28
hatchokee have a good weekend02:32
rogpeppe1mornin' all07:24
rogpeppe1urulama: hiya07:24
huwshimirogpeppe1: Morning07:41
rogpeppe1huwshimi: hiya07:41
urulamarogpeppe1: hi07:46
urulamarogpeppe1: trying to do the review, but get NMIs alll the time :)07:46
rogpeppe1urulama: :-)07:46
rogpeppe1urulama: you need to sort out your processor architecture07:47
urulamarogpeppe1: yes, a stone brick model looks good07:51
urulamarogpeppe1: i am still a bit puzzled about the UploadCharm/Bundle func and the need for it ... archive.go has it's own methods, which do not use Upload* functions but archive_test does ... 08:08
rogpeppe1urulama: it's so that tests can create charms with known URLs, without going through the v4 API upload mechanism08:09
rogpeppe1urulama: (which will get considerably more complex if we add challenge-response stuff)08:10
rogpeppe1urulama: for example, all the tests in api_test.go use it08:11
rogpeppe1urulama: it means that those tests can be independent of the API upload logic08:11
urulamarogpeppe1: exactly, i'm just saying that tests are there and provide feeling that all is fine, but that might be false positives ... maybe noting in archive_test.go that, would be useful ... 08:11
urulamarogpeppe1: all clear on why the funcs are there and why used, just saying, that we need to make sure that we do not end forgetting about proper archive tests08:12
rogpeppe1urulama: the only archive test that uses UploadCharm is TestArchiveGet08:12
rogpeppe1urulama: that's because it was written before the API upload code existed08:12
rogpeppe1urulama: it should probably be changed to use the API upload, i guess, as it's part of that suite08:13
urulamayes. that's what i was asking.08:14
urulamai'll make a note08:14
rogpeppe1urulama: ah, ok. you used plural tests, which i took to mean you thought all the archive tests suffered from that issue08:14
urulamarogpeppe1: sorry, my head is a bit of a jello after these weeks :)08:15
rogpeppe1urulama: np at all08:15
rogpeppe1urulama: hope it's all gone ok08:15
urulamarogpeppe1: extremely well, i think08:15
rogpeppe1urulama: good to hear08:17
urulamarogpeppe1: so, now that nothing uses store.UploadCharm and is not part of store_test.go ... could we move UploadCharm/Bundle to test code?08:20
urulamarogpeppe1: or do we expect those to be useful in the future?08:20
rogpeppe1urulama: api_test.go uses UploadCharm08:20
rogpeppe1urulama: that's in the v4 package08:20
rogpeppe1urulama: and i think it's useful for it to be independent of the API upload mechanism08:21
rogpeppe1urulama: as you can probably see from the code, UploadCharm uses almost the same code paths as AddCharm - it just creates the blob as well as adding the entry08:22
urulamarogpeppe1: ok, thinking about the names of the api. Code (functional point of view) is ok. ... Add* (adding just entry in db) and Upload* which is Add+blob ... feels redundant in a way ... not saying that it's wrong. Just feels redundant or that naming is wrong.08:26
rogpeppe1urulama: yeah, you have a good point there.08:27
rogpeppe1urulama: AddCharmWithArchive ?08:27
urulamabetter by all means08:27
rogpeppe1urulama: will change it08:28
rogpeppe1"I really don't like the magic "blobhash" undocumented string here."09:32
rogpeppe1urulama: did you delete that comment?09:32
urulamarogpeppe1: i did09:33
rogpeppe1urulama: ah, ok09:33
urulamarogpeppe1: we use .series in referece to indicate it's a bundle?09:38
rogpeppe1urulama: yes09:39
urulamarogpeppe1: wouldn't it be cleaner if there would be a .type attribure?09:40
rogpeppe1urulama: we discussed this quite a while ago09:40
urulamarogpeppe1: before my time or in my time?09:40
rogpeppe1urulama: hmm, perhaps a little before your time09:40
urulamarogpeppe1: ok, so it's an agreement with core?09:41
rogpeppe1urulama: yes09:41
rogpeppe1urulama: by using series, we have a nice way of representing the "bundle-ness" of a url in the url itself09:41
urulamaok. 09:42
urulamafine09:42
rick_h__except for the flat namespce which could be either?09:47
rick_h__namespace09:48
rogpeppe1rick_h__: that's true. but we wouldn't be able to tell then anyway. it's just like resolving other aspects of the charm or bundle url09:53
rick_h__rogpeppe1: yea, nvm10:01
frankbanrogpeppe1: how is it going?10:09
rogpeppe1frankban: just running the tests on the juju-core charm.v2 change before attempting to land it again...10:09
rogpeppe1frankban: and making requested changes to our charmstore PR10:10
rogpeppe1frankban: not bad altogether10:10
rogpeppe1frankban: you?10:10
frankbanrogpeppe1: I have a branch ready for the serveArchiveFile endpoint. Waiting for changes on our charmstore branch, looking at the review10:11
rogpeppe1frankban: nice!10:11
rogpeppe1urulama: have you finished your review?10:33
rick_h__rogpeppe1: he ran to lunch11:15
rick_h__rogpeppe1: will poke him when he's back11:16
rogpeppe1rick_h__: np11:16
rogpeppe1rick_h__: i'm not really expecting much activity, just a faint hope :-)11:16
rogpeppe1frankban, jrwren, dimitern, TheMue: https://github.com/juju/blobstore/pull/1211:30
dimiternrogpeppe1, looking11:35
rogpeppe1dimitern: thanks11:35
dimiternrogpeppe1, first impression: you need a better PR description :)11:35
rogpeppe1dimitern: the title doesn't count?11:35
dimiternrogpeppe1, well, I'd like to see *why* it's needed maybe?11:37
rogpeppe1dimitern: ok, doing that11:37
dimiternrogpeppe1, ta11:42
dimiternrogpeppe1, you've got a review11:42
rogpeppe1dimitern: thanks!11:42
* frankban lunches11:45
rogpeppe1"Yes, as a record in a Zombies collection."11:48
rogpeppe1urulama: i don't understand that comment, sorry.11:48
urulamarogpeppe1: oh, sorry, trying to be quick and on more than one place ... so. that's just a reminder for me. 11:58
rogpeppe1urulama: ha ha11:58
rogpeppe1urulama: i see11:58
urulamarogpeppe1: what i had in mind is that todo should have implementation that stores sha of that blob into zombies collection (new one) maybe, so that cleanup can be easy11:59
urulamarogpeppe1: what do you think?11:59
urulamarogpeppe1: easieer that searching for non-referenced ones maybe11:59
rogpeppe1urulama: i think that if the blob removal fails, it's almost certainly because the mongodb connection has gone away, so we're just adding more complexity for little likely gain11:59
rogpeppe1urulama: because we're likely not to be ablr to add to the zombies collection either12:00
rogpeppe1urulama: searching for non-referenced ones is pretty straightforward actually12:00
rogpeppe1urulama: (i actually implemented it already elsewhere)12:00
urulamarogpeppe1: agree on all points. i'll remove the comments12:00
rogpeppe1urulama: cool12:01
* urulama sees 400 lines of tests for archive ... goes into the "that code works, the test pass, all is good" lazy mode for a moment :)12:11
rogpeppe1urulama: :-)12:30
rogpeppe1frankban: the charm upload branch has now landed12:58
rogpeppe1frankban: next up: https://github.com/juju/charmstore/pull/6312:58
rogpeppe1urulama, jrwren: https://github.com/juju/charmstore/pull/6312:59
* rogpeppe1 goes for some lunch12:59
frankbanrogpeppe1: cool, looking13:01
frankbanrogpeppe1, urulama, jrwren: https://github.com/juju/charmstore/pull/6413:01
urulamafrankban, rogpeppe1: 63 & 64 so soon :)13:02
frankbanheh13:02
hatchmorning13:35
kadams54hatch: morning. Care to talk about https://bugs.launchpad.net/juju-gui/+bug/1342853 ?13:38
hatchoh I already added it into the comments i Guess heh13:40
hatchI don't have anything to add beyond that comment, did you have any questions?13:43
kadams54Yeah… seems like I ought to be pursuing the band-aid fix for now, right?13:43
hatchyeah - I'm not entirely sure how that's going to work though because right now whwnever the ecs is updated it fires an event which the deployer bar listens for13:47
hatchso I'm not sure the best approach to debouce that so you can consolidate them13:47
kadams54if (n % 2 === 0) { return; }13:48
hatchyou could consolidate on the end on render - but the little notification that shows up, will say 1 unit added 13:48
hatchhah what?13:48
kadams54I'll just drop every other event ;-)13:48
hatchhaha13:50
kadams54hatch: i also did more playing around with left-aligned text in the charm yesterday. Posted my comments on the PR, but tldr is that I'm sticking with center-aligned for the time being.13:55
hatchyeah? You don't think it looks funny being truncated with all that extra space on the right?13:55
kadams54There really isn't very much extra space.13:57
kadams54You could squeeze in an extra character depending on what letters are used in the name13:58
kadams54Some names are going to leave more space, others less.13:58
kadams54For example, here's what worst case scenario looks like with the current truncation limit: http://cl.ly/image/462m1L1f390813:59
kadams54This is more typical: http://cl.ly/image/003Z0w0p0K0414:00
kadams54And to me, it doesn't look like extra space, but rather balanced. If I didn't know better, I'd just assume that space on the right was reserved for some other indicator/icon14:01
kadams54Aside from that, I can only add one more character to the "typical" name before it starts squeezing the indicator and charm padding.14:02
kadams54http://cl.ly/image/2n37173w0J0T14:02
hatchoh wait a second, so the worst case scenario is still possible? 14:03
kadams54If they name their charm using the widest characters in a font, yes.14:03
kadams54Possible, but unlikely.14:03
frankbanrogpeppe1: could you take a look at https://github.com/juju/charmstore/pull/64 ? thanks14:03
frankbanrogpeppe1, jrwren: also https://github.com/juju/charmstore/pull/65 (quick)14:04
hatchso that's not very good then14:05
kadams54It's the worst way to truncate, except for all the others.14:05
hatchmeasuring the width using that d3 script didn't work?14:05
hatchit seems like that is the best way using a variable width font14:05
jrwrenfrankban: nice catch.14:06
kadams54hatch: it would be a very complicated solution.14:06
kadams54The simple solution that works for 90% is better here.14:07
kadams54You can't just calculate the width of the text, which the d3 plugin did… you also have to know the width of the container, which we don't until long after the text is added.14:08
hatchwhat makes it complicated? take the width of the icon, the width of the blue circle, add to the width of the text, if it's too long, truncate the width of the text - and loop14:08
kadams54Aside from that, the text gets wrapped in the parens, so you'd have to unwrap those, truncate, and then re-wrap14:09
hatchand since it scales linearly you don't need to do it on scaling, only once on render14:09
hatchwell not really, you'd just use the original value and truncate it14:09
kadams54(some-valu… vs. (some-valu…)14:10
hatchI would just much rather do it the best way and not have to deal with any potential fall out from doing it the easy way14:10
kadams54IMO this is the best way.14:10
kadams54Simple wins.14:10
kadams54It works just fine for all but the most extreme scenario.14:11
frankbanhatch: I am running the charm functional tests in a precise env14:11
hatchfrankban thanks - it fails in the legacy server tests14:12
hatchfrankban did you merge in the develop trunk to the precise trunk?14:12
frankbanhatch: oh, so that's the problem, right?14:12
hatchyeah it says that there isn't an environment connection14:12
kadams54hatch: Look at it another way… assuming we did things by calculating the width, all that it would get us, in the case of "block-storage-broker" is (block-stor…) instead of (block-sto…) - and we'd have to maintain quite a bit more code for one more character.14:13
frankbanhatch: there so need to do that, we have a trusty release, and the code is the same, we just need to push that into the precise branch (when the tests pass)14:13
hatchfrankban right - but those tests do not pass when running on precise14:14
frankbanhatch: ok, I'll see them fail14:14
hatchI tried taking the trusty code and deploying it via precise and the same failure14:14
hatchdid you notice the commits/diffs? 14:14
frankbanhatch: no14:14
hatchkadams54 I'm not really worried about getting extra characters, I'm worried about the situation when a charm name spills into the icon14:15
frankbanhatch: I presume the tests pass when using a trusty env, correct?14:15
hatchfrankban correct14:15
frankbanhatch: ok, so maybe there is a regression on the legacy server on the legacy platform with the legacy code...14:16
hatchlol!14:17
kadams54hatch: If someone names their charm "mmmmmmmmmmmm", I can live with that happening.14:17
hatchthat's just the pyjuju stuff right?14:17
hatchkadams54 but it's not even that - if you look at "hadoop-mapreduce" the truncated name touches the uncommitted icon14:17
rogpeppe1frankban: looking14:18
hatchkadams54 so yes truncating is working for the majority of the situations but it's not very resilient 14:21
hatcheven when things aren't crazy14:21
hatchand people have called their video games AAAaaaaaAAAaaaaa :D14:21
hatchso mmmmmmmm might not be too far off14:21
kadams54hatch: you have an affinity for solutions that require architectural changes.14:23
kadams54;-)14:23
hatchman chrome in ubuntu really does not like rendering svg's properly14:23
kadams54Chrome anywhere does not. Check out the clipping on the icon: http://cl.ly/image/0b0G3r2I3A2i14:24
hatchoops....14:24
hatchkadams54 well I'd just rather not land something that could come back to bite us later because it doesn't go all the way14:25
kadams54This is a pretty simple change, even more so because it consolidates logic (adding the parens) that had been scattered.14:26
kadams54If it bites us, then we fix it.14:26
hatchI envision a bug "service names sometimes under icon"14:26
kadams54The bit isn't going to be a big one.14:26
hatchand then we go "didn't we already fix that?"14:27
kadams54That could be a generalized argument against incremental change14:27
hatchexcept this is not an incremental change, it's a partial fix 14:28
hatchI don't think we are going to agree here :)14:28
kadams54Probably not :-)14:29
kadams54incremental change, partial fix… to-may-to, to-mah-to14:29
hatchok add a note to the limitation to the PR and land it14:30
kadams54One of the reasons for incremental change is that you don't invest a slew of time and code into fixing something the wrong way.14:30
kadams54jujugui: need a second review/QA at https://github.com/juju/juju-gui/pull/48014:33
jrwrenkadams54: I looked at it.14:40
kadams54jrwren: thanks14:40
hatchfrankban any luck? :)14:43
frankbanhatch: I saw the legacy test failing, trying to deploy it manually14:44
hatchok thanks - when I deployed it manually it seemed to work just fine14:44
hatchjujugui call in 11 kanban now14:49
hatchfrankban I remember there was some discussion about deleting machines with services on them. ATM we can hit the trash can button on the machine but then committing fails because it has a service on it. Did we ever decide what the proper course of action was there?14:51
frankbanhatch: I don't remember. it's worth asking luca: I'd expect something like a warning message somewhere (at least)14:56
hatchyeah will do, I could see a popup asking if they also want to remove the units on the machine, and if that leaves the service without machines....then ask if they want to remove the service as well14:58
hatchjujugui call in 214:58
hatchjujugui call now15:00
hatchrogpeppe1 you must love our quick standups :D15:07
rogpeppe1hatch: oh yes15:07
jcsacketti have become convinced that the entirety of durham has crap for internet this week.15:07
rogpeppe1hatch: the juju-core standups were often interminable15:07
frankbanhatch: ISTM that the legacy server is broken15:07
hatchrogpeppe1 haha, hardly a standup then :D15:08
rogpeppe1hatch: indeed15:08
hatchfrankban so is legacy server pyjuju?15:08
hatchI'm not really sure what legacy server even is15:08
frankbanhatch: I see websocket errors in the js console:  Error during WebSocket handshake: Unexpected response code: 404 15:08
frankbanhatch: no, the legacy server is haproxy + apache215:09
hatchohh15:09
frankbanhatch: the regular server is the shiny python/tornado app, which always works ;-)15:09
hatchfrankban ok well if you take the develop-trunk and merge it into the precise-trunk you'll see a massive diff - maybe something in there busted it - tbh I didn't think we made any charm changes since the last release...15:09
hatchlol oh u peeps and your pythons15:10
frankbanheh15:11
frankbanhatch: ugm, I don't see so many changes in the charm, mostly documentation and a new feature for testing locally (which seems broken, but it's not related to the current problem)15:16
frankbanuhm even15:17
hatchbut I don't even recall those docs being updated....15:17
hatchI'm wondering if something got committed incorectly 15:17
hatchincorrectly 15:17
frankbanhatch: I think the diff is sane, investigating on the ec2 machine about why websockets are broken15:18
hatchallllright15:18
frankbanhatch: btw, yay functional tests, this is a real problem15:18
hatchwhen do people use the legacy server?15:18
hatchbut yay!15:18
kadams54bbiab: heading out for a run.15:21
hatchenjoy15:23
frankbanhatch: jujucharms.com runs on the legacy server :-)15:34
hatchof course it does 15:35
hatchlol15:35
frankbanhatch: but would not hit this problem since it uses sandbox mode, so no real websockets15:35
hatchso....does any real user use it? I don't even think it's enabled by default15:36
hatchyou'd have to explicitly turn it on, correct?15:37
frankbanhatch: yes15:37
hatchI wonder if we couldn't just 'ignore' it 15:38
hatchI mean, if it's going to be a ton of work to fix15:38
frankbanhatch: I don't know about real users. we dropped support for the legacy server on trusty. we still need to support it on precise15:38
hatchohh that's why it passes fine on trusty hah15:38
frankbanhatch: I guess so15:38
frankbanhatch: we skip that test on trusty15:39
frankbanhatch: haproxy sends a 404 to websocket upgrade requests :-/15:55
hatchwhaaa since when15:55
frankbanhatch: weird, the config file is unchanged from months, the haproxy version is the same...15:56
hatchyeah....15:56
frankbanhatch: and I can connect to the juju websocket from the gui machine15:57
hatchthat is odd, so it's just haproxy that's causing the issue15:59
frankbanhatch: this is the haproxy configuration, do you see anything smelling?16:13
frankbanhttp://pastebin.ubuntu.com/7989894/16:13
hatchlooking16:13
hatchfrankban don't we now use wss ?16:14
hatchI don't see a handler for wss only for ws16:14
frankbanhatch: not sure I understood16:15
frankbanuse_backend juju if { path /ws }, we use the juju backend based on the request path16:15
hatchmaybe I'm misreading it because I thought we use wss: protocol 16:16
frankbanhatch: we use secure websocket indeed16:17
hatchso does it need to redirect /wss or does the /ws handle that too?16:18
hatchI'm just thinking that might be why it's 404ing16:18
hatchgrasping at straws really...16:18
frankbanhatch: /ws is just a path, not a protocol, the GUI uses that path for the websocket16:19
hatchyeah ok16:19
hatchin that case, I see nothing wrong with this config16:19
frankbanhatch: and this is the log of a single wss request: http://pastebin.ubuntu.com/7989981/ not really helpful16:24
hatchfrankban right - it looks like the /ws is 404ing16:25
hatchbut you said you could hit that directly right?16:25
frankbanhatch: no, I said I can hit directly the juju API address, which does not use /ws. In the haproxy conf, we strip away /ws before proxying to juju16:26
hatchohh16:26
frankbanhatch: juju.srvrep at line 9 makes me think the juju backend is actually invoked16:27
hatchhmm - of course it doesn't show the request it's making16:27
hatchcan you throw a log in there?16:27
frankbanhatch: not sure16:33
frankbanhatch: I am already running it in debug mode16:34
frankbanhatch: ok it seems reqrep ^([^\ ]*)\ /ws/    \1\ / is not working16:41
hatchdamn regex....of curse it's the regex that you can't read.... :D16:41
frankbanbut that regexp is the same from ages16:41
hatchyeah I know....16:46
hatchI really have no idea16:47
hatchthats why I passed it to you  in hopes that you will have better luck :D16:47
frankbanhatch: it worked!!!16:49
hatchwhaaaat, what did you change?16:49
frankbanhatch: replacing that regexp with the magical words...16:49
hatchlol16:49
frankbanreqrep ^GET\ /ws\ HTTP/1.1 GET\ /\ HTTP/1.116:49
hatchoh I'm totally at a loss as to why it failed NOW16:49
hatchhah16:49
frankbanhatch: we should always ask why it failed... almost always... I am near my EOD, I can leave it to you if you want, otherwise I'll hack a patch on Monday16:51
hatchwell I think you're having better luck :)16:51
frankbanhatch: ok, I have a fix at least, will investigate further for the cause. is it possible that HTTP/1.1 was not sent before and it is now?16:54
hatchthat's very odd...16:54
hatchbut yeah at least there is a fix now16:54
frankbandone for the day, have a great weekend all!17:00
hatchcya frankban have a good weekend17:02
hatchthanks for finding the issue17:02
hatchjujugui can someone remind me what a removed-but-uncommitted relation looks like? 17:18
kadams54Hmm…17:21
kadams54hatch: just gave that a whirl and it looks the same as an un-removed relationship.17:21
kadams54The change is listed in the change log, but there's no visual indicator on the relationship. Maybe something to bring up with design?17:22
hatchIt has been and they gave an answer, I just can't seem to find it in my email or in the designs heh17:23
kadams54Blue line with status notification17:24
kadams54Found the e-mail17:24
kadams54(I think)17:25
kadams54Subject: Representing removed relations on the juju-gui-peeps list, Luca's reply was on July 117:25
* rogpeppe1 is done for the week17:25
rogpeppe1g'night all17:25
kadams54Now then, that said… when you have a moment I'd like to chat more on my card.17:25
rogpeppe1and happy weekends17:25
hatchok so everything needs a 'deleted' flag in their model then17:26
hatchcya rogpeppe1 have a good one17:26
kadams54rogpeppe1: ditto17:26
hatchyeah I got moments17:26
kadams54standup?17:26
kadams54(Friday room)17:26
hatchsure joining17:28
kadams54jujugui: need reviews and QA on https://github.com/juju/juju-gui/pull/48519:18
kadams54hatch: ^ that's the deployer bar consolidation stuff19:18
hatchkadams54 on it19:29
kadams54I've already placed my bets on which lines of code will get hatch comments ;-)19:29
hatchlol so why don't you change them then :P19:30
kadams54Gotta keep you honest :-)19:30
kadams54CI build seems like YUI didn't load on the IE10 run… *sigh*19:38
hatchkadams54 review done19:42
hatchdid I do what you thought I was gona do? :)19:42
kadams54No, I lose.19:45
kadams54But your suggestion is good.19:45
hatchlol......yay?19:45
hatchok now I'm wondering, what did you think I was gona do19:45
hatchsay*19:46
kadams54I thought for sure I'd get in trouble over the single letter variable names here: https://github.com/juju/juju-gui/pull/485/files#diff-e6baa739d19ae967f00d894884a065acR70919:46
kadams54Though I feel like I'm just giving this away for whoever the second reviewer is ;-)19:47
hatchhaha - I was going to actually comment on moving the var declaration outside of the loop AND change the var name but I figured you had to re-write it based on my other comment anyways :P19:48
hatchI'm not against single var names when it's easy to tell what they are for19:49
hatchbut everyone else is haha19:49
kadams54I find that kind of funny because I picked it up from the pythonistas I knew.19:50
hatchI figure if the var doesn't follow a convention (like e for event with YUI code) or is used more than 3-5 lines from its declaration or is used with other single char vars then it should be renamed19:51
hatch...I lead a simple life....19:51
hatchlol19:51
jrwrenI thought this team was pro-single character variable names.19:52
kadams54Maybe we have enough to swing the balance.19:53
kadams54;-)19:53
hatchhaha19:57
hatchjrwren lol definitely no19:57
kadams54jrwren: just use "e" everywhere for events. It's all good.19:58
hatchI'm even getting out voted over that one19:59
hatchno reason to pre-minify code really20:00
kadams54Outvoted, out-shmoted.20:00
kadams54Sure there is. Programmers are lazy.20:00
kadams54I actually had no clue until the most recent IRC conversation. No one's objected to my use of "e" in code reviews.20:01
hatchright, because of my lobbying for the e convention for events20:01
hatchit's a YUI convention 20:02
hatchI also use i, j, k for iterators 20:02
hatchbut don't do for loops often heh20:02
jrwrenI hope not. I miss that vim plugin that calls 1 length variable names an error.20:04
hatchyou use multi char vars for iterators?20:05
jrwrenno.20:05
hatchwhat do you call them? loopCountOne?20:05
hatchlol oh ok20:05
jrwreni,j,k are fine of course.20:05
jrwrenit didn't flag those. Only top level names.20:05
jrwrenI think python-mode was the vim module that did it.20:05
hatchoh intersting 20:06
kadams54hatch: I can reduce it from three loops to two, but can't reduce it any further than that. Updated code's been pushed.20:45
hatchkadams54 got it up somewheres?20:47
kadams54Yeah, the PR's been updated.20:48
hatchok looking20:48
hatchoh I see what you did, ok I had something else in mind20:49
hatchumm how to esssplain20:49
hatchok I think I got it20:51
hatchwill comment on the PR20:51
hatchkadams54 ok added comment to the PR20:54
hatchI hope I did a reasonable job explaining it :)20:54
hatchkadams54 using my suggested approach you'd also need to modify the template so feel free to tell me to shove-it and leave your code as is :)20:59
hatchthe hacks are at least now contained to a single method20:59
hatch:)20:59

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