/srv/irclogs.ubuntu.com/2013/07/31/#juju-gui.txt

gary_posterhatch you still around?  should I bother with a review?00:07
gary_posterhatch gave you a quick LGTM with small comment anyway. :-) thx00:14
gary_posternight00:14
gary_posterall00:14
=== schwuk_away is now known as schwuk
=== schwuk is now known as schwuk_away
=== schwuk_away is now known as schwuk
=== schwuk is now known as schwuk_away
=== schwuk_away is now known as schwuk
benjifrankban: have you succesfully run the charm functional tests recently?  I can't get past "agent-state: pending" 12:28
frankbanbenji: no, not recently, maybe teknico run them for his last branch?12:29
frankbanbenji: are you using pyjuju? if so, you can try to run them with juju-core. what's the status of the juju-gui machine?12:33
benjiyep, I'm using pyjuju; I guess I could try that12:33
gary_posterfrankban, does marco's test framework treat pyjuju as a first class supported environment, or is it second class, after juju core?12:35
frankbangary_poster: I believe they are both supported at the same level; juju-test automatically retrieves the version in use and reacts accordingly.12:39
gary_posterok cool, thanks frankban12:39
frankbangary_poster, hazmat, teknico: I'll schedule a meeting in the calendar to talk about the deployer; does tomorrow at 1500 UTC work for you?12:41
gary_posterfrankban, not for me.  Thursdays are horrible for me :-) s'ok can meet without me and summarize if you want to12:42
frankbangary_poster: Friday would work as well, perhaps at 1400 UTC12:42
gary_posterfrankban, that works well for me12:43
gary_posteroh frankban I am taking Friday off :-P12:44
gary_posterfrankban, btw, and maybe relatedly, would you and teknico mind permanently moving our weekly calls one hour earlier?  frankban's would be 1300 UTC and teknico's would be 1330 UTC.  Is that lunch time?  if it doesn't work, np12:46
frankbangary_poster: isn't our call at 1300 UTC already? anyway, no problem for me with moving the call one hour earlier. starting from tomorrow?12:49
gary_posterour call is currently 1400 UTC, if google can be trusted12:49
frankbanheh, it's 15:00 – 15:30 in my calendar, and we are currently in CEST time (utc+2)12:51
gary_posterheh12:52
teknicogary_poster: our call is currently 16:00 local, 14:00 UTC. the new time would be half an hour earlier for me12:52
teknicogary_poster: it's not lunch time now, it will be once DST is off and local is back to UTC+1, in November, but it would still be ok for me12:53
teknicobenji: I did repeatedly run "make ftest" on the charm successfully recently, but only with juju-core, I'm having problems bootstrapping with pyjuju12:54
benjithanks for the info, teknico 12:54
gary_posterteknico, frankban, I am utterly confused, particularly with what teknico said :-P, but will make the adjustments in Google calendar and hope they all work out all right :-)12:54
teknicogary_poster: sorry about that :-)12:55
frankbangary_poster: they will work, and I'll set up a possible deployer meeting after talking with you tomorrow12:55
gary_posterfrankban, teknico, cool, thanks :-)12:55
gary_posterhey bac, it's 8:56 for you right now, right?12:56
bac8:5712:57
bac:)12:57
gary_poster:-P12:57
gary_poster:-)12:57
bacfwiw, and you needn't bother remembering, PR is ATC which is always UTC-412:58
bacAST12:58
gary_postercool12:58
gary_posterthanks12:58
bac+1 for consistency.12:58
gary_posteryeah12:58
teknicogary_poster: Google Calendar now says that our call tomorrow is at 14:30 local, which means 12:30 UTC, is that intended? if it is, it's ok for me12:59
gary_posterso, anyway, sorry was going to ask you to move meeting time but nm12:59
bacmy campaign: dump daylight savings time.  buy all dairy farmers Tivos12:59
teknicobac: yeah, DST is madness12:59
gary_posterteknico, yeah.  I think my issue is that Google says that my timezone is UTC -5, but they really mean I'm UTC-5+1DST12:59
teknicogary_poster: right, ok13:01
gary_posterbenji! hi.  you may be noticing a pattern here :-P .  May I move your call to the morning, UTC 1300 (now but tomorrow)?13:01
benjigary_poster: sure13:02
gary_posterthank you13:02
benjigary_poster: is that perminent?13:02
gary_posterbenji yes13:02
benjik13:02
gary_posterstill ok?13:02
gary_posterk13:02
gary_posterthanks13:02
benjiyep13:02
gary_postercool13:02
sinzuiorangesquad. I will be distracted by charmworld's prodstack mongodb13:03
rick_hsinzui: rgr13:03
abentleysinzui: ACK13:03
gary_posterthank you sinzui.  if you want anyone from GUI to pair, lemme know13:04
rick_hhatch: when you're around wonder if you have time to chat. 13:11
sinzuiabentley, rick_h. production mongo shows evidence that mongodb has grown beyond our intent13:20
abentleysinzui: Do we have an idea what collections are eating the space?13:21
gary_posterhatch, Makyo, bcsaller I adjusted our one on ones permanently.  My Thursdays were unpleasantly insane, plus I had a new conflict with Matt and Jeff's time.  lemme know if these times are ok for you please13:21
sinzuiabentley, rick_h: there are two more dotted collections in production than we have in staging and the are 2 and 4 x larger than the collection we use: 513M juju.3, 1.1G juju.413:22
* benji weeps softly into his keyboard.13:22
rick_hsinzui: well that's interesting. :/13:22
benjiWhy is getting juju-core to run so hard.13:22
gary_posterheh13:22
gary_posterbenji, dunno.  we've got two resources to help ready now, at least, and Matt later13:23
abentleysinzui: Are those databases, not collections?13:23
sinzuiabentley, rick_h: I would like to rm them, but I know little of mongodb operations.13:24
benjigary_poster: who would be the best person to ask?13:24
sinzuiabentley, right, db backups/something13:24
gary_posterbenji, frankban probably.  teknico and Makyo also have a working juju core installation.13:24
abentleysinzui: I don't know much about this either.  So these are files, not db names?13:25
sinzuiabentley, nm, I see. mongodb scales its used from 64 to 128 to ... It has scaled up twice beyond staging13:25
* benji waits for one to volunteer... before choosing a victim.13:25
frankbanbenji: what's the problem? :-)13:26
sinzuiabentley, they are named juju.x so I think they are the db, but I believe mongodb is preallocating storage in the files.13:26
benjifrankban: the problem is I don't know where these things are written down, but the immediate problem is "error: no tools available"13:27
rick_hsinzui: have you tried to run a mongo db compact on the db?13:28
sinzuirick_h, that takes the db offline (I thnk)13:28
rick_hsinzui: I'm curious if it's pre-allocating and messing with things if a compact would correct 13:28
rick_hsinzui: true, can we test on staging to get an idea of the length of time?13:28
sinzuirick_h, I think you are right13:28
frankbanbenji: that's a new one... does it occur running juju bootstrap --upload-tools?13:28
rick_hsinzui: if we have to bring up a new instance we'd have to go offline as well. 13:28
benjifrankban: nope, that's a bare bootstrap; I'll try with --upload-tools13:29
rick_hsinzui: but this is something we've known we'd have to figure out at some point. I'm not sure if we can backup, bring up a new mongodb instance, and swap the front end over to it13:29
sinzuirick_h,  you mean bring up a new unit, compact the old.13:29
rick_hsinzui: if we can, maybe we can get an idea of the size of the same data, but on a fresh mongo, and at least tell if this is a compaction issue vs a "you have too much data" issue13:29
rick_hsinzui: on the newly brought up instance, while leaving things running, for now, on the old13:30
sinzuiactually, if we bring up a new unit, we will see if the juju db was given gigs instead of megs13:30
rick_hsinzui: rgr13:30
rick_hsinzui: that's my only thought atm. I don't know enough mongodb to help much beyond exploring things a bit. sorry13:30
abentleysinzui, rick_h: running compact will not delete any files and apparently temporarily increases disk space.13:30
sinzuiwell we don't want to do that on this unit then13:30
rick_hsinzui: right, but does backup/restore on a new instance shrink the size down to closer to what we expect?13:31
rick_habentley: :(13:31
benjifrankban: --upload-tools appears to have helped13:32
abentleysinzui: kapil seems very knowledgeable about mongodb disk usage.13:33
frankbanbenji: are you running juju-core from the compiled trunk?13:33
benjifrankban: yep (although I can't be sure it is up to date, as I am not sure I did the right thing to update it)13:34
sinzuiabentley, yes13:34
benjifrankban: if by "compiled trunk" you mean a trunk checkout that I compiled13:34
sinzuiI am going to query collection sizes and ask for the same from production to verify if the data is about the same13:35
sinzuidamn, this is a new unit. my mongo query history is gone13:35
abentleysinzui: This page has some queries: http://docs.mongodb.org/manual/faq/storage/13:36
sinzuiabentley, I had queries in my history that iterated over our collections and gave me the counts13:37
abentleysinzui: That page has queries that iterate over collections and give you counts.13:37
frankbanbenji: yes, I was trying to understand that error. anyway, when you compile and run juju from trunk, it makes sense to always use --upload-tools13:37
benjifrankban: thanks for the help, I appear to have the tests running succesfully now.  We'll know for sure when the first test finishes.  How long do they normally take?  (I13:43
benji(I'm running them in EC2.)13:43
frankban30min IIRC13:43
frankbanbenji: ^^13:44
benjiyay! passing tests!  Thanks much frankban.13:52
frankbangreat13:54
frankbanI wonder if pyjuju is having intermittent machine provisioning problems.13:56
gary_posterluca__, hey,  guichat?14:00
luca__gary_poster: give me 2 mins! :D14:01
gary_posterluca__, cool :-)14:01
hatchmorning14:06
jcsackettrick_h: do you have a moment to chat?14:15
rick_hjcsackett: sure thing14:16
hatchbrb14:50
abentleybenji, bac: Remember to run "make lint" before landing on charmworld.  I just fixed a bunch.14:55
adeuringorangesquad: could one of your review this mp: https://code.launchpad.net/~adeuring/charmworld/1199790-last-change-error/+merge/177865 ?14:55
benjiabentley: I'll certainly try.  We should add that to the CI.14:55
abentleyadeuring: looking.14:55
bacabentley: will do.  thanks.14:56
hatchbak15:00
abentleybenji: I am hesitant to add something to CI that will prevent working code from landing.15:00
abentleybenji: For example, we lived for a long time with a lint error because one file was doing "from x import *".15:01
benjiIt seems to me that the only way to get something we want is to enforce it.  Automatic enforcemnt would appear cheaper.15:01
abentleybenji: I think social pressure is sufficient here and avoids the inflexibility of automatic enforcement.15:03
benjiIt comes down to how we weigh the costs, benefits, and probabilities.  I weight the cost of someone having to resubmit a branch because of a lint error low (partially because I would propose a make target that would lint and propose), the cost of someone else having to deal with my lint errors high, and the probability of "trying harder" to materially increase compliance as low.  I can understand others having different weights/probab15:05
hatchalso the possibility of a lint error causing an obscure issue...... +1 benji....sorry abentley :)15:06
hatchluca__: you're back! wb15:06
abentleybenji: How about we start with the make target?15:07
benjisounds good to me15:08
abentleysinzui: The Kanban card "Implement new primary key for charms" should not have gone into Archive.  It's unlanded work (that I'm about to land).15:13
sinzuiabentley, yes, but oh15:13
sinzuiI believed you were done with that card, you were going to land the branch merged into another branch...tracking the other card all the way to the end of the board15:14
hatchrick_h: sorry I missed in the backscroll that you wanted to chat?15:14
rick_hhatch: yea, guichat?15:15
hatchypup there15:15
abentleysinzui: Oh.  I thought we would handle that situation by moving the card when the follow-on branch landed.15:17
sinzuiabentley, I had planned that originally, but since we were vacating the board, I decided to treat the issue as "the work is done because any developer can build of the branch".15:18
sinzuiabentley, sorry, you were off when I made the decision. I talked to everyone by you.15:19
sinzuiI suck15:19
abentleysinzui: Nah, I understand what happened now.15:19
abentleysinzui: All good.15:19
abentleysinzui: No need for a 1x1 today, right?15:20
sinzuiabentley, +115:21
luca__hey hatch, thanks :)15:21
jcsackettjujugui: can i get two reviews on https://codereview.appspot.com/12029045 ?15:43
benjijcsackett: I'll do one.15:43
jcsackettbenji: thanks!15:43
bacjcsackett: yep15:43
jcsackettbac: thanks. :-)15:43
Makyojujugui calli n 8 kanban now15:52
bacjcsackett: done but i haven't qa'd yet15:58
Makyojujugui call in 115:59
=== schwuk is now known as schwuk_away
=== schwuk_away is now known as schwuk
Makyojcsackett, Starting now16:01
hatchgary_poster: comingsoon is 13 versions behind trunk16:16
sinzuimongodb people, this is a summary of what I know about manage.jujucharm.com's db https://pastebin.canonical.com/95291/16:18
jcsackettno one be alarmed if you heard a crashing noise as i signed off. my dog just discovered the side table is rickety and falls over if you nose it. :-P16:22
hatchlol16:22
abentleysinzui: Our canonistack instances have /dev/vdb mounted at /mnt, giving us 10 GB of space.  Are the prodstack instances similar?16:23
bacgary_poster, hatch: comingsoon is now r914.  the cronjob step 'make build-prod' was failing due to the switch to the new version of d3.  it needed a 'make clean' to get the cruft out.16:25
hatchahh great thanks bac16:25
hatchhey luca__16:28
sinzuiabentley, I am asking. I know production has 10G but logs are on a another disk16:29
luca__hatch: heya16:29
gary_posterbac, awesome thanks16:30
gary_posterjcsackett, if you want me somewhere I'll come by, otherwise will go back to planning world domination, or something16:31
jcsackettgary_poster: i think we're good for now.16:31
gary_postercool jcastro 16:31
jcsackettwrong name, dude. :-P16:31
gary_postersorry tab completio n :-P16:31
gary_postercool jcsackett :-P16:31
hatchcrap16:33
hatchguess I'm taking my engineer-license again16:33
hatch:P16:33
hatchgary_poster: if you change something and then hit the toggle it'll reset the values and that's what they will stay16:34
hatchoh he's back16:34
hatchand he's gone16:34
hatchlol16:34
gary_posterhatch, +116:36
gary_posterdebug hooks in juju core: https://codereview.appspot.com/12019043/16:44
gary_postersomeone working on core for 2 weeks :-)16:45
hatchcheck out this css rule `input#use-default-toggle:checked ~ label .handle`16:56
hatchOOOOOeeeeee16:56
sinzuijujugui, I moved my notes to a gdoc so that we can all comment and edit. https://docs.google.com/a/canonical.com/document/d/1AoMhTdrominYLBS8iHbZLW_Ji2OH3mNhUzoHjetnD9w/edit#17:21
=== schwuk is now known as schwuk_away
rick_hjcsackett: got a sec for a chat?17:49
hatchgary_poster: I think this is completed https://bugs.launchpad.net/juju-gui/+bug/120102318:12
_mup_Bug #1201023: Charmbrowser sidebar elements all have scroll bars in IE10 <charmbrowser> <juju-gui:In Progress by huwshimi> <https://launchpad.net/bugs/1201023>18:12
jcsackettrick_h: sure. was grabbing lunch.18:14
jcsackettrick_h: still need to chat?18:14
rick_hjcsackett: no, I'm ok now. I follow what's up. Got confused by the jujucharms browser view setup18:14
jcsackettrick_h: ah, yeah. i could see that.18:15
jcsackettrick_h: i *think* maybe we can kill that? since we've launched, and i've heard nothing about doing a proper landing.18:15
rick_hjcsackett: yea, I was tempted to but I can work around it for now18:15
rick_hwas the basis of the conversation request18:15
jcsackettrick_h: dig.18:17
hatchugh handlebars drives me friggen bonkers sometimes18:51
hatchrick_h: you might be able to help me out here18:56
rick_hhatch: what's up?18:56
hatchservice-configuration.partial has a {{#settings}} loop18:56
hatchand within that loop I need to access a parent property18:56
rick_h../18:56
hatchI tried ../ghost (ghost being the property)18:56
hatchbut no luck18:56
hatch{{#if ../ghost}}disabled{{/if}}18:56
rick_hhmm, app/templates/unit.handlebars uses it18:58
rick_hare you sure that there's a ghost one scope level up?18:58
hatchyup, logged it out18:58
rick_hheh {{debugger}} ftw?18:58
rick_hhmm, I wonder if it's because of the scope block of an #if19:01
hatchyeah checking that now19:01
hatchI upgraded the debugger fn19:01
hatchok the #if must have busted scoping?19:02
hatchto #YUI!19:02
rick_hhatch: so yea, I'd drop a debugger in the YUI handlebars code in the if block helper and see wtf 'this' is in there. I'm betting it's not the loop scope any more?19:03
rick_hhatch: otherwise, I'd go about it a different way and try to get the var into the loop scope. Sucks, but that's why we have some buildTemplateData type helpers lying around. 19:03
hatchif that was the case then `ghost` would work, but it doesn't either19:03
rick_hyea, the only way to tell is to break in the if block helper and look19:04
hatchhttp://stackoverflow.com/questions/11562612/handlebar-context-lost-after-passing-handler19:04
rick_hI don't recall using a block with a ../ up scope variable reference. 19:04
rick_hhatch: yea, that makes sense 19:05
rick_hso does ../../ghost help you out?19:05
hatchnope, maybe I need three19:05
rick_hor ../../this.ghost19:05
hatchyup three19:05
rick_hbut yea, basically a bunch of wheee to figure out how to get out of the context in the block helper19:05
hatchugh...19:05
rick_hyea19:05
hatchhandlebars totally does not follow the path of least astonishment19:06
hatchhaha19:06
rick_hwell, you're in the base context, then the loop context, then the if context19:06
hatchthen the wtf am I doing context19:06
rick_hyea, I'm a 'give me my code or give me death' camp on templates myself. Unfortunately Mako hasn't been ported to JS yet :)19:06
rick_hlol19:06
rick_htime for a doc to explain wtf ../../../ is for :P19:06
hatch:) thanks for the help19:07
hatchlol19:07
rick_hhah, np. "Keep adding ../ until it works darn it!" coaching is here for you19:07
hatchhahaha19:07
rick_hugh, that damn showView made some stuff magically work. 19:11
hatchrick_h: so depending on how many if blocks your in, you need more or less ../'s19:15
hatchoy vey19:15
rick_hhatch: but of course, each is another context19:15
rick_hyou need good tests on those. If someone moves the if blocks around then things will go nuts19:15
rick_hhatch: but if it's getting too crazy maybe it's time to rethink?19:16
hatchrick_h: Yeah I think I'll switch it to a helper19:20
hatchbut helpers don't have access to the full stack though I don't think19:20
hatchso maybe just some comments19:20
hatchlunching19:24
gary_posterhey bac, you actually here, or juts pretending to be?  I've got wedgwood in webops saying that he wants to rip out some of our old stuff from charm-helpers20:28
gary_postermy memory is that we tried to get some stuff approved20:28
bachi gary_poster20:28
gary_posterbut he didn't like test helpers or something like that20:29
gary_posterhey20:29
gary_posteryou don't have to be here if it is past EoD  :-)20:29
bacyeah, he didn't promote the test helper stuff, saying it was client code20:29
bacgary_poster: no, it is just 16:3020:29
bacsame as you20:29
gary_posteryeah I know but don't know when your start time is anymore :-P20:30
bacgary_poster: i've been starting at 820:30
gary_postercool20:30
bacgary_poster: anyway he wants to remove the non-promoted stuff?20:30
gary_posterbac, yeah20:30
gary_posterwe still are not using it anyway, right?  I didn't see it anywhere20:31
baci think that code is useful and deserves to live some place20:31
bacgary_poster: huh, i thought our tests used it20:31
bacgary_poster: or was it just from buildbot?20:31
gary_posterbac no I meant we are not using wedgwood's library yet20:32
bacgary_poster: that is true20:32
hatchbcsaller: can you think of a way to reset all of the settings fields to their defaults using current code? I was thinking something in the databinding maybe to reset to the default model values?20:32
bacgary_poster: if it is the OneTrueWay we'll need to spend some time converting our charm20:32
bacbut that is tech debt for us now, so i'm not sure when we'll carve out the time20:33
bcsallerhatch: off the top of my head, viewlet.model.set(viewlet.model.getAttrs())20:33
bcsalleroh, defaults20:34
hatchoo good idea lemme try that20:34
bcsallernot prev value though20:34
bcsallerdefaults come from the charm, not the values in the service20:34
bcsallermodel.set('config', charm.options)20:34
bcsallershould work though20:35
bacrick_h: why would 'make testid' produce non-contiguous numbers?  i'm seeing things like 1..16, 420, 17, 18, 42120:36
hatchbcsaller: ahh actually we aren't databinding the ghost config so that approach wont' work :(20:40
hatchwill need to just loop through I guess, oh well20:40
bcsallerhatch: I thought we changed it to db everything now though?20:40
hatchohh hmm lemme look further maybe I broke something20:41
hatchbcsaller: do I have something wrong here https://gist.github.com/hatched/beee9956434d9ff6be5f the update fn is never being called when I update options20:45
bcsallerhatch: you're sure its options and not config now, I'm not sure the current state of that 20:47
bcsallerbut the structure looks right20:47
hatchwell regardless of what it is - changing that object 'should' fire that update method20:48
bcsallerno, update in bindings is called when that binding changes 20:48
bcsallerso if the name is wrong it doesn't happen20:48
hatchok but there is an attribute called 'options'20:48
hatchwhich I am setting20:49
bcsallerwe have options, config, settings, depending on which model you have I'd guess the name was wrong but I don't know how far you've gotten tracking it down 20:52
hatchI'm just going to loop through the default values20:55
hatchI think this is a bug, I'll document it later and see if we can resolve sometime20:55
bcsalleris the model is question a POJO? it might be that observe isn't triggering change on a nested complex object20:56
hatchohh wait a second20:56
hatchI think this is a bug from the charm model stuff20:56
hatchcharm model changeover20:57
hatchall of the fields are undefined20:57
* hatch shakes fist at jcsackett20:57
hatchlol :P20:57
jcsacketthatch: i qa'ed against service inspector and didn't see anything.20:57
jcsackettoptions.options seems weird, if options is charm...the charm attr should be get('options')20:58
rick_hbac:  not sure, just how it works. I've not looked at the implementation20:59
rick_hbac: the test runner usually loads tests and runs them alphabetically and such. SO maybe something with loading/running20:59
hatchbcsaller: jcsackett ahh I found the bug....the fields have been renamed in the charm model and now the template bings on the wrong object20:59
hatcheasy overlook20:59
* bcsaller coughs21:00
bcsallerthats what I said21:00
hatchyeah well I had no idea what you were trying to say21:01
* hatch blames internet21:01
hatchlol21:01
* bcsaller blames unicode21:02
* hatch blames timezones21:02
hatch(all developers can agree timezones are to blame so it's an easy scapegoat)21:03
bcsalleryeah, we should get rid of those21:03
hatchaww man I got up so early. Yeah what time? oh like 5pm21:04
hatchhehe21:04
jcsacketthatch: which fields were renamed? i was trying to avoid doing that where possible and am concerned something may have been landed that shouldn't.21:07
hatchjcsackett: it's no big deal it's just a discrepency between the ghost and service models and their resulting structure21:08
hatchI think it's done properly now so I'm taking another approach21:08
hatchI was just blaming you because your current task sucks21:08
hatch;)21:08
jcsacketthatch: :-P21:08
gary_poster:-)21:09
gary_postergo jcsackett! sis boom bah! :-)21:09
gary_postersinzui, how goes the MongoDB war?21:20
sinzuiwebops are considering my recommendations to move the db files to a larger mounted partition. This suggest means 0 down time21:21
hatchbcsaller: so I don't think that setting an object to the same value as it is triggers the databinding21:33
hatchit's ok, I'm looping through the fields21:35
hatchbut just thought I'd point that out21:36
gary_postersinzui, cool.  do we know why the data is more than we expected?21:40
sinzuimongodb perallocates ever increasing files when there is lots of activity21:41
sinzuigary_poster, This is the summary: https://docs.google.com/a/canonical.com/document/d/1AoMhTdrominYLBS8iHbZLW_Ji2OH3mNhUzoHjetnD9w/edit#21:41
gary_postersinzui, ugh.  thank you.21:43
hatchJeff Pihach has been assigned to the Card [(1201024) IE 10 drag and drop bug] by Gary Poster.   NOOOOOOooOOOOoooooooooo21:44
* hatch curls up under the desk21:44
hatch:D21:44
gary_posterhatch lol, that was the one you fixed before21:44
gary_posterhatch, I moved that to archive and gave you credit21:44
gary_posterthere is still the new one :-)21:45
hatchohh haha ok well then that's better :D21:45
gary_posterwhich I have not assigned to you...yet...21:45
hatchlol21:45
gary_posterwho displeases me, among you?!! mwa ha ha ha.  etc.21:45
hatchhahah21:48
gary_posterbenji, where is the charm branch?21:50
gary_posterwas hoping we could have that ready today21:50
gary_posterby "where is"  I  mean "what's going on with the."  By "benji" I mean "benji, who is past EoD,"21:51
hatch:D22:03
hatchgary_poster: have a second to try out my toggle branch? lp:~hatch/juju-gui/use-def-config22:03
gary_posterhatch, I think so, unless pulled away suddenly :-P one sec22:04
hatchcool thanks!22:07
gary_posterhatch, pulled away :-P will look asap after22:11
hatchhaha np22:12
benjigary_poster: https://code.launchpad.net/~benji/charms/precise/juju-gui/fix-cache-headers/+merge/17795822:22
benjidarn, I'm in the right channel22:22
* benji goes to a channel far, far away22:22
Makyohatch, (new Array(3)).map(function(d) { return 0; }) === [undefined, undefined, undefined]; // what's happening here?22:35
MakyoOr anyone, really.22:35
hatchmagic!22:36
hatchwait22:36
hatchthat's gota be d3 code22:36
hatchbecause it's impossible to read22:36
hatchI think I know what's happening22:36
Makyohatch, From a friend, just asking around.22:36
hatchit creates a new array with 3 empty slots22:36
MakyoJust curious because [undefined, undefined, undefined].map(function(a) { return 0; }) === [0, 0, 0]22:37
hatchit then loops through each one returning 022:37
hatchso each one will be [0,0,0]22:37
hatchMakyo: it's probably some wako way to test for map functionality22:37
hatchor proper functioning map functionality22:38
MakyoThe result should be [0, 0, 0] since (new Array(3)) === [undefined, undefined, undefined]22:38
hatchI would love to know the real reason behind the code22:38
Makyohatch, not from an open source project, friend works elsewhere.22:38
hatchright, but if map wasn't working properly then it 'could' be an indicator22:38
MakyoSo I'm assuming there's some more intermediary stuff, probably conditional.22:38
hatchright....still odd22:39
MakyoWell, those results are from my console.22:39
MakyoOh, huh.  (new Array(3)).map(function(a) { return typeof a; }) === [undefined, undefined, undefined]22:40
Makyobut [undefined, undefined, undefined].map(function(a) { return typeof a; }) === ["undefined", "undefined", "undefined"]22:40
MakyoSo the constructor is just sort of...doubly undefined :P22:40
hatch[undefined, undefined, undefined].map(function(d) { return 0; })22:41
hatchgives what one would expect22:41
Makyoreturns [0, 0, 0]22:41
hatchright22:41
hatchas it should22:41
hatchmy guess is this is some edge case from using the array constructor22:41
hatchwhich they say never to use :)22:41
MakyoHahaha22:41
MakyoYeah22:41
hatchI'm intrigued now22:42
MakyoOhhh, he found it: http://stackoverflow.com/questions/5501581/javascript-new-arrayn-and-array-prototype-map-weirdness22:42
hatchahhhhh22:43
MakyoThere's a difference between undefined pointers and pointers to undefined.22:43
hatchmakes sense22:43
hatchwell, sortof22:43
hatchlol22:43
hatchI mean, I accept the reasoning :)22:43
MakyoHah, yeah.22:43
hatchthats probably why devtools shows it as [undefined x3] in a different style when using new Array(3)22:45
gary_posterhatch looking at your branch quickly...22:46
hatchthanks22:46
gary_posterhatch branch looks great.  only problem from UX perspective to me is that the "Use the default configuration" slider doesn't clearly show on/off to me.  Could we remove the checkmark when it is off?  I also wonder about turning it gray but I think that actually doesn't follow the intended design language22:52
hatchyeah grey feels like it woudl be 'disabled'22:52
hatchI can remove the check though22:52
gary_posterawesome thanks22:53
hatchno prob, thanks for looking,22:54
hatchi'll propose after that change22:54
benjihatch: it's because the function passed to .map is only called on array elements that have a value and (new Array(3)) creates an array with pre-alocated space for three elements, not a three element array22:54
benjioops, Makyo I mean ^^^22:54
hatchbenji: welcome to 10 minutes ago22:54
hatchoooburn22:54
hatch:P22:54
MakyoIt's well put though.  Thanks benji 22:54
benjiheh22:55
benjithat's what I get for being in the right channel22:55
gary_posterlol22:55
hatchlol22:55
hatchI wonder the purpose of the two methods22:55
hatchusing the constructor doesn't restrict pushing more information into it22:56
gary_posterlooking at your branch fwiw benji.  will ask west coast or frankban/teknico to review in an email so you can hopefully land tomorrow morning.  then we can make a release, test, and hopefully launch jujucharms in afternoon22:56
gary_posters/launch/update/22:56
benjigary_poster: thanks, that's what I was hoping for22:57
gary_posterhatch, I've seen that approach used in other languages as a micro-optimization opportunity.  I would assume it is the same here.23:00
gary_posterin a fast inner loop that kind of thing can make a diff23:01
hatchgary_poster: yeah I suppose - I could see if it was in a typed language where you would create an array of a specific size to reserve memory23:01
gary_posteralso used in clojure, which is untyped.  you are reserving space for pointers.23:02
hatchdoes clojure allow you to alter the size of the array as well?23:02
gary_posterif elements of pointers already exist (flyweights like numbers or strings, or existing objects)...23:02
gary_posterthen can still make a big diff23:02
huwshimiMorning23:02
gary_posteryes, hatch23:02
gary_postermorning, huwshimi!23:03
hatchinteresting23:03
hatchmorning huwshimi23:03
gary_posterstrings are typically flyweights not numbers; whatever :-P23:03
gary_posterhuwshimi, I assigned you bugs.  They are for first half of August not urgent, though if you are looking for something to do, or comment on, cool.  also feel free to decline assignment :-)23:04
gary_posterhuwshimi, I know you have plenty to do thogh anyway23:04
gary_posterthough23:04
huwshimigary_poster: OK, I'll take a look23:04
hatch*disclamer* declining the assignments may also decline checks23:05
hatchguess noone gets checks23:06
gary_poster:-P23:08
gary_posterbenji approved with no changes, but with follow-on warning about where/how to land.  very nice, thanks!23:09
benjigary_poster: I was unsure about that bit; I proposed to the ~charmers branch because I figured that's where we would land it first23:09
benjiok, dinner time; I'll see y'all tomorrow23:10
gary_posterbenji wait23:10
gary_posterbenji wrong brancgh23:10
gary_posternot lp:~charmers/charms/precise/juju-gui/trunk23:10
gary_posterlp:~juju-gui-charmers/charms/precise/juju-gui/trunk23:10
* gary_poster sends another message23:11
hatchgary_poster: the top right card in Inspector Ready to Code is no longer valid - at least it appears to work as expected23:12
hatchCollapsed inspector does not...23:12
hatchproperly set its maximum...23:12
gary_posterhatch checking23:12
gary_posterweird...bac said that he fixed comingsoon update mechanism but it is still old23:13
hatchrefresh23:13
hatchI just thought the same thing23:14
hatchlol23:14
gary_posterheh23:14
gary_posterok thanks23:14
gary_posterhatch agree, great!  you fix that?23:15
hatchjujugui lf two reviews and a QA on https://codereview.appspot.com/12205043/ plz and thx23:15
hatchI did yup23:15
gary_posterhatch, moved with credit given :-) thanks23:16
hatch:)23:16
hatchit's past my EOD Now but anything specific you want me on tommorow morning?23:17
hatchI was thinking the ghost config importer? as it's red23:17
gary_posterred just means defect: claims to work but doesn't.  still not a bad idea...header images would be cool too.  I'll see if huwshimi has time for that.  hatch I vote for sticky headers before that :-P23:19
gary_posterhey huwshimi, one probably easy thing to do...if you start up serviceInspector and add a service23:20
gary_posterWe have these five controls23:20
gary_poster← S C E D23:20
gary_posterWe need to remove "E" and "D" and then replace the other three with icons23:20
huwshimigary_poster: OK23:21
hatchsticky headers.....uuuuugh23:21
hatchooooo kkkkaaayyyy23:21
hatch:)23:21
gary_posterhatch use the hack from ant23:21
gary_postereasy, yeah?23:21
hatchI don't think his technique will work with dynamic content23:21
gary_posterhuwshimi, finding icons one sec23:21
hatchI'll have to test23:21
gary_posterhatch oh :-( ok timebox it to an hour23:22
gary_posterhuwshimi, https://drive.google.com/a/canonical.com/?tab=co#folders/0B7XG_QBXNwY1Zm8ya3NIcENyZnM23:22
hatchgary_poster: ok can do - it might work alright but every time we update we'll need to recalc the header positioning....so I'll timebox the hour to see how difficult it'll be and then we can revisit23:23
gary_posterhatch resolve retry replace instead, if you want?  that's one of the few remaining bigger tasks23:23
gary_posterhatch we can push the sticky header to the end I guess.  It's not awful without it :-P23:23
huwshimigary_poster: Do you want these icons in today?23:23
hatchok resolve retry replace it is then!23:24
gary_posterthanks hatch23:24
gary_posterhuwshimi, if easy and doesn't take much time, yes.  what are you on now?  I know I am supposed to know but have forgotten23:24
huwshimigary_poster: Just checking the sass builder with the files from ant and then moving onto something new... which can be the icons.23:25
gary_posterhuwshimi, cool thanks.  if ant's files work, land the sass thing, if I wasn't clear.  forgot what I said :-P23:26
huwshimigary_poster: No problems.23:26
gary_posterthanks :-)23:26
hatchhuwshimi: if you have time add the icons to the spriting so that we can reduce our http requests23:26
hatchthen we don't have to go back and do it later23:26
gary_posteroh yeah that would be cool23:27
hatchnot sure if you were aware of that or not23:27
gary_posterif not clear how to do, just ask23:27
hatch(the spriter)23:27
gary_posterhuwshimi, after all that continue on the sass23:27
huwshimihatch: Can we have dynamic sprites (hover, active etc)?23:28
huwshimihatch: That's the one thing I haven't been able to figure out23:28
gary_posterhuwshimi, just change class, yeah?23:28
gary_posteroh that doesn't work I see23:28
hatchhuwshimi: yeah, you would specify a different background position for the :hover :active psudo class parts23:28
gary_posteryou break out of css23:28
gary_posteroh yeah23:29
huwshimihatch: But how do I know what those positions are supposed to be?23:29
hatchin the sprite.css file23:30
huwshimihatch: As in, if the sprite image changes (which it frequently does) then the hovers etc. have to be manually calculated and updated23:30
hatchhmm23:31
huwshimihatch: One approach is to have all the different sprite images inside the node and on hover/active use CSS to hide/show the correct image...23:32
hatchwell the sprite is only a single image23:32
hatchwhich is made up of a bunch of smaller ones23:33
huwshimihatch: Oh, I mean have something like <a href=""><i class="image-one sprite"></i><i class="image-two sprite hidden"></i><i class="image-three sprite hidden"></i></a>23:34
hatchohh then you would go a:hover .image-one { display: none } a:hover .image-two { display: block; }23:35
hatch?23:35
huwshimihatch: Yeah23:36
hatchhmm23:36
hatchit works.....feels hacky23:36
hatchcan't think of a better alternative23:36
hatchSHIP IT!23:36
huwshimihatch: Yeah...23:36
hatchmy actual alternative is to patch node-spritesheet to add :hover classes :)23:37
hatchbut who has the time!23:37
hatchalthough23:37
huwshimihatch: It's built dynamically, so you'd have to have another script to modify it after it was built23:38
hatchwell I was also thinking looping through the sprites twice23:38
hatchonce like normal, then another config to generate the hovers23:38
hatchhttps://github.com/richardbutler/node-spritesheet#simple-example23:39
hatchthinking maybe the `selector` property could be .selector:hover on this second pass23:40
hatchor23:40
hatchcould be23:40
hatchyeah....that's it23:40
hatchI don't know if it's even possible without patching it23:41
hatchimage1.png image1-hover.png image1-active.png could then be turned into psudo's23:42
huwshimihatch: Well it would have to be customisable depending on what you want to do. The selector depth might be .something li.active a {}23:42
huwshimihatch: Not necessarily just the standard :hovers23:42
hatchoh I suppose yeah becuase you wouldn't always be hovering over just the icon23:43
huwshimihatch: Yeah exactly23:43
hatchalright so yeah your approach works the best then with the dynamic generated styles23:43
hatchelse it'll be to fragile23:43
huwshimihatch: Exactly23:43
hatchoh well...I tried :P23:44

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