[00:04] <rick_h_> morning huwshimi 
[00:05] <huwshimi> rick_h_: Hey!
[00:06] <rick_h_> have a good weekend huwshimi ?
[00:07] <huwshimi> rick_h_: Yeah it was good, the weather is picking up now
[00:07] <huwshimi> rick_h_: How was your single dad weekend? :)
[00:07] <rick_h_> nice, we've got fall in full swing here
[00:15] <huwshimi> rick_h_: Is it getting cold yet?
[00:18] <rick_h_> yea, down into the 50s (10C) and heading down. Will be interesting. Normally this chilly around Halloween but a little bit to go still
[00:20] <huwshimi> ouch
[06:37] <fabrice> morning
[11:11] <rick_h_> morning wheeee
[11:11] <rick_h_> gah the email, the email!
[12:06] <rick_h_> frankban: partying in the new place?
[12:06] <frankban> rick_h_: no, not yet, still no internet connection there :-/
[12:07] <frankban> rick_h_: hope they will be able to fix stuff this week
[12:08] <rick_h_> frankban: ouch /me crosses fingers for you
[12:08] <frankban> rick_h_: thanks
[12:52] <jcsackett> morning, jujugui--can i get some reviews on https://github.com/juju/juju-gui/pull/570 ?
[12:53] <kadams54> jcsackett: sure
[12:53] <jcsackett> thanks, kadams54.
[12:57] <jcsackett> kadams54: note, there are two lint errors, i've got a fix in place but won't push while you're reviewing.
[12:57] <jcsackett> rick_h_: am i still part of "all hands on" for MV release, or should i move back to the other thing? losing track of where my focus should be. :p
[12:58] <rick_h_> jcsackett: looking
[12:58] <rick_h_> jcsackett: if you want to start removing the FF while kadams54 picks up the card on the boolean fields in the inspector that'd be great
[12:59] <jcsackett> rick_h_: i would be delighted to start killing the feature flag. the other cards on the board don't block that?
[13:00] <rick_h_> jcsackett: no, basically we're going into it being available with the couple of bugs
[13:00] <jcsackett> rick_h_: dig.
[13:00] <rick_h_> jcsackett: there might be some small conflicts to resolve, but hopefully small
[13:00] <rick_h_> jcsackett: and we know we're releasing so worst case trunk has issues for 2 days
[13:00]  * jcsackett nods
[13:01] <jcsackett> awesome.
[13:02] <kadams54> jcsackett: QA and review is finished. You're all clear to ship!
[13:02] <jcsackett> kadams54: awesome, thanks. :)
[13:55] <kadams54> guihelp: I have a comparison. The type on one side can be a string, boolean, or int. The type on the other is always a string. What's the safest way to coerce the first side into a string? Concat an empty string? Call 'toString()'? If statement based on value returned by typeof?
[13:56] <frankban> kadams54: I am not sure about the meaning of comparing a bool to a string
[13:56] <kadams54> false == 'false'
[13:56] <kadams54> Which is false
[13:56] <kadams54> What I want is: 'false' == 'false'
[13:56] <kadams54> Which will yield true
[13:57] <frankban> kadams54: for int vs string, one way is to zero fill the int while converting it to a string (and in this case "+ ''" does the job)
[13:57] <fabrice> there is also String()
[13:58] <kadams54> Yeah, there are a slew of ways I *could* do it, I'm just wondering which is the safest :-)
[14:01] <hatch> what r u trying to do?
[14:06] <fabrice> kadams54: +'' is safe if it's number boolean or string
[14:07] <hatch> I prefer String() it's more explicit
[14:07] <hatch> when glacing through
[14:07] <fabrice> I agree
[14:07] <hatch> buut I don't know what it's being used for yet :)
[14:16] <kadams54> hatch: take a look at https://github.com/juju/juju-gui/pull/571
[14:18] <hatch> kadams54: uhh why don't you do if (typeof config[key] [14:19] <kadams54> hatch: you came in just after my initial question: "I have a comparison. The type on one side can be a string, boolean, or int. The type on the other is always a string. What's the safest way to coerce the first side into a string? Concat an empty string? Call 'toString()'? If statement based on value returned by typeof?"
[14:21] <hatch> ok well yes then using String() is my preferred method 
[14:21] <hatch> but I think in this case you should be checking the type and doing a proper comparison
[14:22] <kadams54> And comparing one string to another isn't a proper comparison?
[14:23] <fabrice> kadams54: all methods would be safe for number Boolean or String , the issue comes with functions or other objects. String() is kind of explicit 
[14:26] <hatch> kadams54: it is, but why not test for a boolean then do the proper comparison for the data type
[14:27] <kadams54> Because it achieves the same result with more lines of code?
[14:27] <hatch> well technically it's different
[14:28] <hatch> but yes the end result is the same
[14:28] <hatch> I'd still prefer sticking with the proper type
[14:28] <hatch> maybe that's my typed lang experience coming back
[14:28] <hatch> hah
[14:28] <kadams54> Here's what sways me…
[14:29] <hatch> type cooersion is slow, string comparisons are slow
[14:29] <kadams54> The reference spec we're comparing against is a string and is always a string.
[14:29] <kadams54> So that makes me want to convert everything to the same data type being used in the ref.
[14:30] <kadams54> That is, the proper "type" here is actually String.
[14:30] <hatch> really? juju sends us boolean values as strings?
[14:31] <kadams54> We're comparing two Objects of config values to determine which config settings have changed. One, the new values, stores booleans as booleans. The other, the old values, stores them as strings.
[14:32] <kadams54> I'm not sure where the old values are coming from… someplace else in the GUI? Juju? But they're stored as strings and that's what we're comparing against.
[14:32] <hatch> hmm something seems broken there
[14:32] <kadams54> So I'm inclined to convert the new values to String as well.
[14:32] <hatch> I'm pretty sure when we parse the data from juju true [14:34] <hatch> kadams54: I'd look into why there is a type discrepency 
[14:34] <hatch> *caugh* this wouldn't happen with Dart *caugh*
[14:34] <hatch> ;)
[14:51] <rick_h_> jujugui call in 10 please kanban
[14:54] <hatch> oh I love it when old tests fail but it works in the real app
[14:59] <rick_h_> jujugui otp atm might be a minute or two late
[15:13] <rick_h_> boom, 12min call with 14 people
[15:13] <rick_h_> we rule! :P
[15:14] <hatch> and the internet claims standups are broken
[15:14] <hatch> clearly they aren't doing it properly
[15:15] <rick_h_> lol
[15:15] <hatch> jcsackett: first step to removing the flag is to set it as the default and then start removing the conditionals
[15:15] <rick_h_> hatch: you still on for the blog post for MV? I've got a marketing meeting with sally tomorrow and want to make sure we'll still have 3 posts
[15:16] <jcsackett> hatch: what do you meant "set it as the default"? is that separate from just ensuring we always go down the MV path on a conditional (e.g. sanely remove it)
[15:17] <hatch> rick_h_: yup I haven't started on it yet but I'll have it ready to go for thurs
[15:17] <rick_h_> hatch: ok cool
[15:17] <hatch> jcsackett: in the index.html set the window.flags.mv as true
[15:17] <hatch> then visit the gui without the mv flag in the url
[15:17] <jcsackett> hatch: ah.
[15:17] <hatch> this way you can take steps towards removing the flag without having to do it whole hog
[15:17] <hatch> huuuuge time/sanity saver
[15:21] <jcsackett> hatch: ah. does that make it safe to land pieces at a time, then?
[15:22] <hatch> jcsackett: you bet
[15:22] <jcsackett> hatch: awesome.
[15:22] <hatch> because according to the user it's already the default
[15:22] <hatch> we can (and have) shipped like that too
[15:22] <jcsackett> hatch: cool. well then, i think my one enormous card just became several smaller ones.
[15:22] <hatch> :)
[15:33]  * rick_h_ heads to the doc, biab everyone
[16:02]  * rick_h_ heads to the doc for real this time
[16:05] <lazyPower> hatch: hope you're ready for more eyes on the ghost charm ;)  You were featured sir!
[16:05] <hatch> oh crap
[16:05] <hatch> :)
[16:05] <lazyPower> <3
[16:06] <hatch> I guess I should probably push the new version then
[16:06] <lazyPower> the 12 people that watch the video will be alllllll about ghost.
[16:06] <hatch> I wish you could upload extra files into charms - think templates
[16:06]  * lazyPower snickers
[16:06] <hatch> lol
[16:06] <lazyPower> you can
[16:06] <lazyPower> however, thats a prime candidate for a subordinate relationship eh?
[16:07] <lazyPower> juju deploy ghost-templates
[16:07] <lazyPower> juju add-relation ghost ghost-templates
[16:07] <lazyPower> juju set ghost-template theme="rocco"
[16:07] <hatch> well I don't really want to force people to make a charm just to deploy their template
[16:07] <lazyPower> ok, then make templates git deployable
[16:07] <hatch> but then they have to upload it to a public repo
[16:07] <hatch> heh
[16:07] <lazyPower> and the problem with that is?
[16:08] <hatch> say you are a real brand using Ghost as your blog
[16:08] <hatch> you don't want any joe running your template
[16:08] <lazyPower> then add deploy key support
[16:08] <lazyPower> juju set ghost deploy_key=(base 64 encoded ssh key)
[16:09] <hatch> is that encrypted?
[16:09] <hatch> from the cli
[16:09] <hatch> it would be 100x easier if you could upload a binary as a config option
[16:13] <hatch> kadams54: looks like my test failures after I fix a databinding bug will be fixed by your fix
[16:13] <kadams54> hatch: :-b
[16:14] <hatch> somehow a config option is "                                   false"
[16:14] <hatch> like wth
[16:14] <kadams54> lol
[16:14] <hatch> something is seriously broken
[16:14] <hatch> odly enough though it works outside of tests
[16:14] <kadams54> Maybe I should throw a trim() in there?
[16:14] <hatch> well no we need to figure out why it's that
[16:15] <kadams54> I did some digging around and it looks like the values are stored as strings far more often then not
[16:15] <hatch> I don't just want to bandaid over the problem
[16:15] <kadams54> That is, the *only* place where they weren't being stored as strings, that I found, was in the chunk of code I was working in. Strings everywhere else.
[16:15] <hatch> I want to find what's setting it to these invalid values
[16:16] <kadams54> Fine. Don't review my PR ;-)
[16:16] <hatch> a checkbox toggle is boolean
[16:16] <hatch> plain and simple
[16:16] <hatch> somehow it's  being set to "                           false"
[16:16] <hatch> so there is a real problem here somewhere
[16:16] <kadams54> It's not plain and simple though, right?
[16:17] <kadams54> Can't those config values also come from a yaml file?
[16:17] <kadams54> Ditto for JSON
[16:17] <hatch> typeof checkbox.get('checked') [16:17] <hatch> always
[16:17] <kadams54> false
[16:17] <hatch> ??
[16:18] <kadams54> Well, OK, true enough for checkboxes
[16:18] <hatch> when is a checkbox not either true or false
[16:18] <hatch> exactly
[16:18] <kadams54> But checkboxes !== a boolean config setting
[16:18] <kadams54> The boolean config setting can also be set by a "true" string in a yaml file
[16:19] <hatch> if there is a boolean config setting which is not being represented as a checkbox then it's a broken charm
[16:19] <hatch> or it's not a boolean config
[16:22] <hatch> kadams54: for example
[16:22] <hatch> http://bazaar.launchpad.net/~juju-gui-charmers/charms/precise/juju-gui/trunk/view/head:/config.yaml#L50
[16:24] <kadams54> Sure, but when the yaml is parsed, is config['juju-gui-console-enabled']['default'] 'false' or false?
[16:27] <hatch> kadams54: in handlers.js there is a method called serviceInfo put a debugger in there in a real env with the gui deployed and see what it has
[16:27] <kadams54> It has a string.
[16:28] <hatch> well there ya go
[16:28] <hatch> :)
[16:31] <hatch> kadams54: so we should convert all boolean values to their true boolean values for use in the gui
[16:31] <kadams54> Checking something else…
[16:31] <hatch> then when we send it back we stringify it out anyways
[16:33] <kadams54> Whoops, gotta run for dr appt, back in an hour
[16:41] <lazyPower> hatch: another option would be to encapsulate this as a juju action
[16:41] <lazyPower> (i know, an hour later i come up with another thought)
[16:41] <hatch> lazyPower: haha, how would a juju action work? You 'd have to run it every time you scaled
[16:41] <hatch> no?
[16:42] <lazyPower> correct
[16:42] <hatch> yeah I just think this is a bug
[16:42] <hatch> or a missing feature
[16:42] <lazyPower> but you're basically asking the end user to break auto-upgrade notifications
[16:42] <lazyPower> "fork the charm locally, plug in your theme, deploy"
[16:43] <hatch> heh right
[16:43] <lazyPower> which is why a subordinate would be prime for this. If the subordinate is responsible for understanding where ghost is installed, and auto-deploy the theme you've defeated the scale issue.
[16:43] <lazyPower> and you dont have to push it into a subordinate. You've just moved a large chunk of logic out of the parent charm into a supporting role.
[16:44] <lazyPower> and fwiw, if you make the sub support binary package delivery, such a placing a tarball in files/  - who cares if the theme deployer gets an update. unless its breaking ghost, you're g2g after you've deployed it.  Set it and forget it (tm)
[16:45] <hatch> right but that's a horrible story considering that the user who is used to ghost just logs into their control panel and uploads the zip
[16:46] <hatch> rick_h_: ping me when you get back - I think that my issue will be resolved if we don't care about conflicts on boolean values
[16:48] <hatch> lazyPower: I'm probably going to file a feature request with juju to add binary config value support
[16:49] <hatch> tbh this could benefit a lot of different charms - expecially ones with complex values.....like the apache charm with a large virtual env config
[16:50] <lazyPower> hatch: that exists today as base64 encoding. 
[16:51] <lazyPower> not great, but fair enough that it would be easier to say "attach thing"
[16:51] <lazyPower> validation of those "things" is going to be hairy. 
[16:51] <hatch> base64 encode a zip of a template....lol
[16:51] <lazyPower> you can do it
[16:51] <hatch> why does it need to be validated?
[16:51] <hatch> couldn't we add another config type 'binary'?
[16:52] <lazyPower> well you just said a "large vhost file"
[16:52] <lazyPower> which is text to begin with, do you want someone to upload a picture of their cat and have the apache charm barf because they uploaded the wrong MIME type of file?
[16:52] <hatch> well I just picked an example 
[16:52] <hatch> they could upload a .txt file
[16:52]  * lazyPower pulls out the paint brush and gets ready to paint the bikeshed
[16:52] <hatch> if they uploaded a cat picture instead...well then too bad for them
[16:53] <hatch> that would be the same as copy\pasting an invalid virtual env config
[16:54] <hatch> lazyPower: I'm creating a bug atm - so we can move the discussion there 
[16:55] <hatch> better to have any questions/comments documented
[16:55] <lazyPower> hatch: unless it includes a screenshot with the caption "Schenanigans" - i reject your bug
[16:55] <lazyPower> <3
[16:55] <lazyPower> i had no idea the gui did that btw. that blew my mind
[16:55] <lazyPower> i pinned a card on our canban to talk about that in today's standup
[16:55] <lazyPower> *kanban
[16:56] <lazyPower> as nobody else knew why it was doing that either. I'm gonna blow some minds today
[16:56] <hatch> lol what?
[16:56] <lazyPower> https://bugs.launchpad.net/juju-gui/+bug/1371821
[16:56] <mup> Bug #1371821: Juju GUI isn't displaying namespaced recommended charms as featured <display> <grouping> <juju-gui:Invalid> <https://launchpad.net/bugs/1371821>
[16:56] <hatch> ohh heh yeah 
[16:56] <hatch> I wrote the sort for it so it's my fault
[16:57] <lazyPower> s/fault/feature
[16:57] <hatch> tbh I'm not entirely convinced for cases when there isn't a valid 'trusty' charm but there is a precise one
[16:57] <hatch> but I didn't want to get too complicated as it should probably be sorted in charmworld
[17:04] <hatch> lazyPower: https://bugs.launchpad.net/juju-core/+bug/1372566
[17:04] <mup> Bug #1372566: Add a config field type 'binary' <juju-core:New> <https://launchpad.net/bugs/1372566>
[17:35] <hatch> it looks like work on sublime text 3 has started again http://www.sublimetext.com/3
[17:43] <hatch> and in another year I bet another update will come out lol
[17:55] <rick_h_> hatch: pong
[17:56] <hatch> rick_h_: hey I want to propose dropping conflict resolution/notifications for boolean values. call in standup?
[17:56] <rick_h_> hatch: k
[18:06] <hatch> kadams54: I was able to get this to work regardless of the outcome of your branch - so yay 
[18:37] <hatch> lunching
[18:48] <rick_h_> lazyPower: the hive-mysql one didn't seem to ingest? The other two I see (from your email)
[18:48] <lazyPower> rick_h_: they were pushed really recently, it might still be in the ingest-o-tron
[18:48] <rick_h_> lazyPower: it passed proof and such?
[18:48] <lazyPower> si
[18:48] <rick_h_> lazyPower: ok
[18:49] <lazyPower> charles@desktop:~/tmp/charms/bundles/hdp-hadoop-hive-mysql⟫ charm proof
[18:49] <lazyPower> charles@desktop:~/tmp/charms/bundles/hdp-hadoop-hive-mysql⟫ 
[18:49] <lazyPower> i called that out at the top that they are recent and might be waiting for ingestion. We should see the hive-msyql one show up in ~ another 10 minutes or so.
[18:49] <rick_h_> k
[18:49] <rick_h_> lazyPower: yea, was checking and saw the other two are there
[18:49] <rick_h_> want to make sure it gets in ok
[19:28] <hatch> boo
[19:28] <rick_h_> hoo
[19:28] <hatch> lazyPower: my bug was marked as low ;'(
[19:28] <lazyPower> hatch: mine was markes as invalid :'(
[19:28] <hatch> lol well yours WAS invalid :P
[19:29] <hatch> I suppose mine IS low haha
[19:29] <rick_h_> ouch
[19:46] <rick_h_> hah, love dual'ing PRs
[19:51] <hatch> jujugui I need a review and qa on https://github.com/juju/juju-gui/pull/573 
[19:51] <hatch> rick_h_: haha you mean because mine and Makyo's landed at the same time?
[19:51] <rick_h_> hatch: yea, got two new emails right next to each other
[19:51] <Makyo> Yep :D
[19:51] <hatch> great minds think alike.....eh Makyo? eh???
[19:52] <Makyo> On that note, jujugui need reviews/QA on https://github.com/juju/juju-gui/pull/572 (real env)
[19:52] <hatch> trade ya!
[19:52] <Makyo> Sure thing
[19:53] <hatch> Makyo: u gona give me some qa notes? 
[19:54] <Makyo> Hadn't hit enter yet, sorry
[19:55] <hatch> noooo prob
[20:20] <Makyo> hatch, I think your branch is okay, but it's not matching your QA instructions, so I'd like to verify.
[20:20] <Makyo> Like, I think it's good, I just think your QA instructions might be mixed up.
[20:20] <hatch> Makyo: oh ok
[20:21] <hatch> whats up?
[20:21] <Makyo> hatch, I changed debug to baz in the inspector.  After changing it to foo on the cli, the inspector should still show 'baz', right?  Because it's showing the changes that exist in the ECS?
[20:21] <Makyo> I just think foo and baz got mixed up in your instructions.
[20:21] <hatch> ohh yes you are correct it should still show baz
[20:22] <hatch> I'll fix that in the docs
[20:22] <Makyo> Good.  YEah, I think this branch is good.
[20:22] <hatch> thanks
[20:22] <hatch> awesome good catch :)
[20:22] <hatch> just about to spin up to qa yours
[20:29] <hatch> jujugui anyone know why the first lxc instance takes quite a while to boot but then subsequent ones are really fast? Is this something with lxc or my setup being busted?
[20:29] <jrwren_> hatch: first on a new system?
[20:29] <jcsackett> hatch: how long is "very long"? i've given up on juju w/ lxc on my machine thinking it was busted.
[20:30] <hatch> like 15mins for the first instance
[20:30] <hatch> then 1m for the second
[20:30] <bac> hatch: first as in 'download the OS for use by lxc' or first after reboot?
[20:30] <jrwren_> hatch: it downloads the cloudimg from simplestreams, extracts it and builds the base lxc from which everything else is cloned.
[20:30] <hatch> I've created/torn down an env a few times today
[20:30] <hatch> so it's not caching the images?
[20:30] <bac> hatch: it should be
[20:31] <jrwren_> hatch: oh, no. that should happen once per host system. So that isn't it.
[20:31] <jrwren_> /var/lib/lxc/juju-{precise,trusty}-template 
[20:31] <hatch> yeah those are there
[20:31] <jrwren_> lxc-clone: true ? lxc-clone-aufs: true ?
[20:32] <hatch> there is a lxc-clone but no lxc-clone-aufs
[20:33] <jrwren_> hatch: I like the aufs option, which is false by default.
[20:33] <rick_h_> is that only on btrfs?
[20:33] <jrwren_> hatch: also, depending upon which version of juju you run, apt-get update/upgrade may or may not run on system image deploy
[20:33] <hatch> yeah it took 10mins to spin up this time....second machine will be about a minute
[20:33] <jrwren_> rick_h_: aufs is an alternative to btrfs
[20:34] <rick_h_> oic
[20:34] <jrwren_> hatch: no, that first machine taking 10 and second machien taking 1 doesn't add up to using these options.
[20:34] <hatch> jrwren_: ok thanks...I think
[20:34] <hatch> haha
[20:34] <hatch> I was hoping this was normal
[20:34] <hatch> lol
[20:35] <jrwren_> I didn't think juju had a "normal"
[20:35] <hatch> haha 
[20:37] <jrwren_> hatch: do you notice it is slow if you add machine instead of deploy a charm?
[20:41] <hatch> jrwren_: I'll have to check in a bit
[20:43] <hatch> that machine was 1.5min
[20:43] <hatch> so weird
[20:44] <hatch> I wonder if there is some funkyness because I'm in a parallels vm
[20:45] <hatch> Makyo: what's this containers flag you speak of?
[20:45] <hatch> oh look at that
[20:45] <hatch> hmph
[20:45] <hatch> lol
[20:46] <jrwren_> i'm afk. have a good evening ya'll. Happy Equinox.
[20:46] <hatch> cyaaaa
[20:56] <hatch> ok something is totally borked with my env
[21:01] <hatch> Makyo: review and qa done
[21:02] <hatch> jujugui anyone else available for a review? https://github.com/juju/juju-gui/pull/573
[21:02] <rick_h_> hatch: will do at some point, otp right now
[21:02] <hatch> ok sounds good - I'm going to move on with it assuming it's ok :(
[21:02] <hatch> :)
[21:02] <hatch> er
[21:02] <hatch> :)
[21:02] <rick_h_> kadams bah not here
[21:03] <hatch> maybe doc appt didn't go well
[21:03] <hatch> "sorry, you have semicolon pinky - you will need to change programming languages"
[21:03] <hatch> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
[21:13] <hatch> going to grab a coffee, back in ~15
[21:28] <rick_h_> hatch: off phone, but leaving for son/dinner so will try to get to code review later tonight
[21:28]  * rick_h_ runs away
[21:32] <hatch> back
[21:33] <hatch> rick_h_: cool np enjoy
[23:00] <huwshimi> Morning
[23:05] <rick_h_> huwshimi: morning, can you make sure to check for any reviews of the storeferont stuff from ant/robin as part of the daily workflow?
[23:06] <huwshimi> rick_h_: Hey, sure np