[00:04] <hatch> bcsaller_, it doesn't look like namespaced url variables work
[00:04] <hatch> http://localhost:8888/:scaffoldSubApp:/part/7 doesn't match '/part/:id' 
[00:05] <hatch> but  http://localhost:8888/:scaffoldSubApp:/part does 
[00:05] <hatch> we can discuss tomorrow I just wanted to put that out
[00:27] <hazmat> bac, strange.. don't know.. i'm not a user of cobzr
[00:27] <hazmat> bac, the ? might be better suited for #juju-dev
[11:03] <frankban> hi rogpeppe: if you have time, could you please take a look at https://codereview.appspot.com/7421045/ ?
[11:06] <rogpeppe> frankban: will do, thanks.
[11:06] <frankban> rogpeppe: thanks
[11:28] <rogpeppe> frankban: LGTM
[11:28] <frankban> rogpeppe: great, thanks!
[12:31] <frankban> rogpeppe: re api methods, when returning a structure, are pointers automatically dereferenced by the api machinery? if so, is it considered a good practice to include pointers in the returned struct, or is it better to always return values?
[12:32] <rogpeppe> frankban: the top level structure must be by-value. anything inside will have pointers automatically dereferenced as necessary.
[12:32] <rogpeppe> frankban: so it's at your discretion. it's usually a judgement call.
[12:33] <rogpeppe> frankban: if you've already got a pointer, a pointer probably makes sense. or (particularly) if the item in question is optional.
[12:33] <rogpeppe> frankban: the by-value restriction is rpc's alone. in general there's no issue with returning pointers.
[12:35] <frankban> rogpeppe: the top level is a value, one field of the struct is a charm.Config instance, returned as a pointer by charm.Config(). This leads to the second question: is it ok to use such juju_core structs at the API level, or do we need to build other structs specific for the api?
[12:36] <rogpeppe> frankban: i think that where appropriate, it's fine to use juju-core structs for the api
[12:36] <frankban> rogpeppe: cool, thanks a lot
[12:36] <rogpeppe> frankban: and in particular i think charm.Config is a good candidate
[12:37] <rogpeppe> frankban: because all its fields are exported and appropriate for json use
[12:37] <rogpeppe> frankban: (although i had to look quite hard at Default)
[12:38] <frankban> rogpeppe: ack, what happens when you try to export a struct containing provate fields? are they just ignored?
[12:38] <rogpeppe> frankban: yeah
[12:38] <frankban> s/provate/private
[12:39] <frankban> rogpeppe: ok, and I guess if you still require those, then the path to follow is to define a struct specific for the api, maybe...
[12:39] <rogpeppe> frankban: maybe. we'd have to take it on a case-by-case basis. there are other possibilities that don't require a new struct definition.
[12:40] <frankban> rogpeppe: have not looked yet, but I'll have to export Meta.Requires, Provides and Peers.
[12:41] <rogpeppe> frankban: they're all exported already
[12:41] <rogpeppe> frankban: Meta looks like a good candidate for direct use too
[12:42] <frankban> rogpeppe: cool, I am implementing a CharmInfo api call, required by the GUI, I am trying to only pass things required by the GUI, trying to mimic what's already provided by the pyjuju api. Does it make sense?
[12:43] <frankban> (in pyjuju that's called "get_charm")
[12:43] <rogpeppe> frankban: i guess so. although i suppose it doesn't matter much if you get more info. none of it is private AFAIK.
[12:43] <rogpeppe> frankban: (and none is particularly bulky)
[12:44] <frankban> rogpeppe: cool, I'll also ask gary_poster when available, thanks
[12:45] <bac> frankban, teknico, benji, Makyo: see my warning at the end of http://bit.ly/Wln4KR -- it happened to me yesterday.
[12:48] <frankban> bac: thanks, I usually "bzr pull" to update a branch. I guess tests warning can be avoided by manually "go install"ing required packages, but it's still uncomfortable
[12:49] <bac> frankban: yeah, there are work-arounds but 'get -u' seemed to be the easiest
[12:50] <frankban> bac: agreed
[12:59]  * gary_poster reads backlog
[13:02] <gary_poster> frankban, hi.  what's the question?  sounds like you are on the right track for get_charm
[13:05] <frankban> gary_poster: quick hangout after my lunch with teknico too?
[13:05] <gary_poster> frankban, cool sounds good
[13:05] <frankban> gary_poster: thanks
[13:05]  * frankban lunches
[13:05] <gary_poster> :-)
[13:11] <gary_poster> hatch, hi.  when you get in, please ping me for strategizing what you work on today (basic idea: can we get subapp work in a position that orange squad can use it Monday morning at the sprint? Do we need to add some of this to sprint goals?  Should that affect other induction sprint goals?)
[13:37] <gary_poster> bac are you working on the JS side of expose now?
[13:37] <bac> gary_poster: yes
[13:38] <gary_poster> cool bac.  I want to move your Go card to daily and make a new card for that.  ok with you?
[13:38] <bac> oh, sure
[13:38] <gary_poster> cool thx
[13:38] <bac> i thought i had made a card
[13:38] <gary_poster> on it
[13:39] <gary_poster> benji, btw bbcmicrocomputer landed your charm-tools card
[13:39] <gary_poster> I moved it to done
[13:39] <bac> gary_poster: yes, 'hook up juju-core expose' with my face on it
[13:39] <gary_poster> got it thx
[13:41] <bac> gary_poster: it is cleaner in the future if those tasks have two different bugs, since kanban will only allow one card per LP bug
[13:41] <bac> doing two bugtasks was my idea but didn't turn out well
[13:43] <benji> cool
[13:45] <gary_poster> bac, cool.  Let's have that discussion once we have two or three of the JS-side branches under our belt.  I'm inclined to agree with you, but I'd like to see.  For now, though, am I right that we need GUI-side support for unexpose, set-config, and get so far, not including your expose?
[13:45] <bac> gary_poster: yes
[13:45] <gary_poster> cool thanks
[13:54] <gary_poster> hatch, hi.  when you get in and settled, please ping me for strategizing what you work on today (basic idea: can we get subapp work in a position that orange squad can use it Monday morning at the sprint? Do we need to add some of this to sprint goals?  Should that affect other induction sprint goals?)
[13:56] <gary_poster> today == getting my laptop ready...
[13:56] <hatch> good morning
[13:57] <hatch> gary_poster, it might be....I came across, what I'm assuming, is a asmall bug in the new router code
[13:57] <gary_poster> I saw that hatch, yeah
[13:57] <hatch> so as long as that can be ironed out and I can fully test the subapps .navigate() then they should be good to go
[13:57] <gary_poster> today you mean?
[13:58] <hatch> yep as far as I can tell it's all good to go besides that
[13:58] <hatch> oh....I have one small patch
[13:58] <gary_poster> ok great
[13:58] <hatch> but it's already done just no ticket yet
[13:59] <gary_poster> hatch how should we hand this over to orange squad?  maybe some docs?
[13:59] <hatch> throw it at them and run!
[13:59] <gary_poster> :-)
[13:59] <hatch> ;)
[13:59] <rick_h_> hatch: gary_poster cool, toss it this way
[13:59] <gary_poster> rick_h_, cool :-)
[14:00] <hatch> I started writing some intro docs yesterday so I'll expand on those
[14:00] <rick_h_> hatch: just toss a (STR) on there (Some Tinkering Required) 
[14:01] <hatch> rick_h_, well right now there is a router bug which will cause nothing but headaches for you guys so I'd like to hold off until we get that solved if that's O K
[14:01] <rick_h_> hatch: all for reducing headaches
[14:03] <gary_poster> hatch, agreed with you.  that said, what do you think of getting rick_h_ on a call with us now-ish also?  I think he's raring to go, and he might give us valuable insight as well as some very experienced JS hands if he's available and we have anything we can push off to him
[14:03] <bcsaller_> hatch: what is the issue?
[14:03] <gary_poster> OK proposal:  (1) hatch and bcsaller_ talk about issue. (2) hatch gary_poster and rick_h_ talk about next steps for today and Monday.
[14:03] <gary_poster> (3) we all move to cancun
[14:04] <rick_h_> gary_poster: hmmmm...
[14:04] <hatch> can I vote for Montego Bay?
[14:04] <hatch> I'm not a fan of Mexico
[14:04] <hatch> :P
[14:04] <gary_poster> yeah ok, I';m flexible
[14:04] <rick_h_> gary_poster: so I'm ok for now working on a Charmworld API wrapper if it makes sense to hold off until EOD or even first thing Monday
[14:04] <hatch> haha
[14:05] <rick_h_> so I guess fewer calls == a get-it-done friday from my POV
[14:05] <gary_poster> rick_h_, ok, got it, cool
[14:05] <hatch> bcsaller_, I am attempting to match http://localhost:8888/:scaffoldSubApp:/part/7 with the route '/part/:id' but the only way it matches is with http://localhost:8888/:scaffoldSubApp:/part
[14:06] <bcsaller_> did you try making the path expression end in a '/' in the route and in the url? w/o the slash its hard to assemble components
[14:06] <hatch> checking
[14:08] <hatch> bcsaller_, thanks that was the trick
[14:09] <hatch> sounds like we should split on ? and then append a / if there isn't one
[14:09] <bcsaller_> hatch: that was described on the call and in the merge proposal but maybe not in the route comments.
[14:09] <bcsaller_> hatch: its not just the last one, its to aid in the assembly of the parts
[14:10] <hatch> ahh so the url doesn't need it, only the path
[14:10] <hatch> ok I'll note that in the documentation
[14:11] <bcsaller_> hatch: w/o switching to real regex (which is an option) in the paths, yes, but switching requires a change to all the handlers/callbacks as the :id placeholds get replaced by indexed param arrays, so I didn't go there 
[14:12] <hatch> yeah that's fine - from a usability standpoint there is no difference - which at this point is all I'm concerned about
[14:12] <hatch> well....minor difference ;)
[14:12] <teknico> gary_poster, frankban, either now or in half an hour. what do you say?
[14:13] <gary_poster> teknico, up to frankban.  I'm fine either way
[14:13] <gary_poster> he's probably still lunching
[14:14] <teknico> gary_poster, ok, then I'll move to the other place and resurface in 30 minutes
[14:14] <gary_poster> cool teknico ttyl
[14:30] <hatch> OK everything functions as expected with namespaced subapps
[14:31] <hatch> now to test for charmstore
[14:39] <rogpeppe> gary_poster: ping
[14:40] <gary_poster> hey rogpeppe 
[14:40] <rogpeppe> gary_poster: just wanted to quickly check something
[14:40] <gary_poster> ok
[14:41] <rogpeppe> gary_poster: i'm trusting that all the information that you're going to be wanting from the megawatcher is a subset of the data contained in these structs: http://paste.ubuntu.com/5576427/
[14:41] <rogpeppe> is that reasonable?
[14:41] <gary_poster> rogpeppe, gimme a sec to verify :-)
[14:43] <gary_poster> rogpeppe, we will eventually want annotations on everything, including an environment object, but you knew that already...still looking
[14:45] <rogpeppe> gary_poster: the annotations would be added to those structs
[14:45] <gary_poster> rogpeppe, assuming unit Status == agent_state
[14:46] <gary_poster> rogpeppe y (plus we'd need a new struct for the env itself)
[14:46] <rogpeppe> gary_poster: yes, i'm pretty sure
[14:46] <rogpeppe> gary_poster: of course. what data do you need from the environment object, BTW?
[14:46] <gary_poster> annotations, rogpeppe.  that should be it
[14:47] <hatch> ok it looks like using the fallback to the default namespace is working as well
[14:47] <hatch> rick_h_, expect to have this thing and the documentation this afternoon
[14:47] <rick_h_> hatch: awesome
[14:47] <rogpeppe> gary_poster: cool. i'm glad for the confirmation - i'm well into the implementation and realised that everything kinda hinged on this :-)
[14:48] <gary_poster> rogpeppe, for relation we have type, scope, and display_name
[14:49] <hatch> gary_poster, bcsaller_ - am I to understand that if you are using the 'charmstore' namespace (no prefix in the url) you shouldn't specify routes for '/' ?
[14:49] <gary_poster> rogpeppe, for machine, we have public_address, instance_state, agent_state
[14:50] <teknico> back
[14:50] <rogpeppe> gary_poster: hmm, that's a good point about relation actually. i need to look into that a bit more
[14:52] <gary_poster> rogpeppe, for machine we barely use that, so if what I describe is a problem, let me know and I'll verify whether we can ignore them.  they are available in our data though
[14:52] <gary_poster> according to the JS model
[14:52] <rogpeppe> gary_poster: and machine too. i think we can probably retro-fit public-address.
[14:52] <gary_poster> or cool rogpeppe.  That's the only missing info I see.  Everything else looks goof
[14:52] <rogpeppe> gary_poster: and instance-state if necessary.
[14:52] <gary_poster> good, even :-P
[14:53] <rogpeppe> gary_poster: i thought it was new street slang i was previously unaware of :-)
[14:53] <gary_poster> lol, that's me, hip to the street
[14:53] <rogpeppe> lol
[14:54] <benji> rogpeppe: question: I am writing a test in state/api/api_test.go and I need to set a unit to an error state but I do not see a way to get ahold of the unit to do so.  st.Unit("wordpress/0") does not work because the kind of state "st" is isn't the kind of state that has a Unit method.
[14:55] <rogpeppe> gary_poster: the type and scope attributes are inside Endpoint, but i'm not sure what display_name is
[14:55] <gary_poster> ok, looking
[14:56] <rogpeppe> benji: you've got access to the underlying state.State too
[14:56] <rogpeppe> benji: s.State
[14:56] <benji> hmm, I /thought/ I tried that
[14:57] <rogpeppe> benji: for instance, all the stuff in setUpScenario operates on the underlying state, not api.State
[14:57] <benji> relatedly, what is the best way to figure out the attributes/methods of a struct?  for the most part my grepping has worked, but for the life of me I couldn't find the definition of api.State
[14:58] <benji> rogpeppe: this is one of the "table"-driven tests (opClientResolved) so I don't have an "s" (as far as I can tell)
[14:58] <rogpeppe> benji: why do you need to set the unit into an error state in that test?
[14:58] <gary_poster> rogpeppe, I think display_name is actually derived from endpoints too.  (Maybe we are choosing one of the two? :-/ )
[14:58] <gary_poster> one of the two endpoints' display names I mean
[14:58] <benji> rogpeppe: so I can call Resolved on it
[14:58] <rogpeppe> benji: i made a tool to make that easy for *me* (but you'd have to integrate it into your editor somehow to make it as easy for you). looking for a type, usually grep 'type Foo' does the job.
[14:59] <rogpeppe> benji: presumably you could call Resolved anyway - it would just give an error...?
[15:00] <frankban> gary_poster, teknico: call now? juju-gui?
[15:00] <gary_poster> yes, sounds good thanks
[15:00] <benji> rogpeppe: I suppose I could.  For my education's sake, how would I do so if I were so inclined?
[15:00] <rogpeppe> benji: yeah, you could just check for "already resolved"
[15:01] <rogpeppe> benji: you'd change the test to pass in a state.State to each function. so far there hasn't been a need to.
[15:01] <benji> I figured.
[15:01] <rogpeppe> benji: *or*....
[15:02] <rogpeppe> benji: you could change setUpScenario so that one of the units was in the required error state
[15:02] <Makyo> goodspud, ping
[15:04] <benji> I strongly suspect that would break one or more existing tests (which is of course why big, shared state setups are a pain in tests)
[15:10] <gary_poster> "The computer needs to restart to finish installing updates."
[15:10] <gary_poster> brb
[15:11] <goodspud> Makyo, ping back
[15:11] <Makyo> goodspud, got a sec to look at the service page?
[15:11] <goodspud> Certainly do
[15:12] <Makyo> jujugui's free.
[15:12] <Makyo> Or I can just do a screenshot, I guess.
[15:27] <jcsackett> can someone help me with a strange make lint error?
[15:27] <jcsackett> when it gets to the bin/test-filtering stage, it dies like so: http://pastebin.ubuntu.com/5576565/
[15:27] <jcsackett> this is in trunk.
[15:28] <jcsackett> i dont' really understand why it's looking at assets in the first place, but even so, the permissions on mocha.js shouldn't be throwing any denies.
[15:28] <jcsackett> gary_poster: ^
[15:29] <gary_poster> jcsackett, will do, after call
[15:29] <gary_poster> jujugui call in 2
[15:29] <gary_poster> call in 1
[15:29] <jcsackett> gary_poster: ok.
[15:30] <gary_poster> teknico, bcsaller_ starting soon
[15:32] <gary_poster> goodspud, ping for you too
[15:56] <hatch> rick_h_, I wrote a scrollview based carousel if you are looking for a touch based carousel
[15:56] <hatch> that also works with mouse
[15:56] <rick_h_> hatch: cool yea send my way 
[15:57] <rick_h_> hatch: we're looking at the top left widget in the 07 Narrow_Home.html in the mockup
[15:57] <rick_h_> jcsackett: is looking at it next
[15:57] <rick_h_> jcsackett: ^^
[16:01] <jcsackett> rick_h_, hatch: dig. i would be interested in seeing it.
[16:04] <Makyo> jcsackett, bcsaller_ http://pastebin.ubuntu.com/5576652/
[16:04] <Makyo> That should help with the lint error.
[16:06] <hatch> rick_h_, can you pm me the link? I am sure I have it somewhere in my email but who knows where :)
[16:07] <bcsaller_> Makyo: looks good, I hadn't seen that for some reason, but makes sense 
[16:20] <jcsackett> Makyo: ah, cool. glad to know the script needed fixing, not my install. thanks!
[16:22] <rick_h_> hatch: sorry, was otp
[16:22] <hatch> on the potty ?
[16:22] <hatch> lol
[16:22] <rick_h_> hatch: yea, and most people don't like me tablet-ircing from there :P
[16:22] <hatch> oh sometime I crack myself up
[16:23] <hatch> lol
[16:23] <rick_h_> hatch: https://docs.google.com/a/canonical.com/file/d/0B1IM--9A1RkTbFV5aTNZLUlOQ1E/edit
[16:24] <gary_poster> bcsaller_, could you help jcsackett ?  I actually have to run
[16:24] <jcsackett> gary_poster, bcsaller_: Mayko's patch sorted my problem.
[16:24] <bcsaller_> jcsackett: great
[16:24] <gary_poster> jcsackett, great! thanks Makyo q
[16:25] <gary_poster> that's your new name, Makyo Q.  Sounds good.
[16:25] <Makyo> Q for...Quentin?  Quetzalcoatl?
[16:27] <hatch> rick_h_, ahh the thing that says 'wordpress' 'apache' 'glance' etc etc
[16:28] <rick_h_> hatch: right, so we've got work into a widget to display a single charm, and then we need a second widget that does the slider around a set list of them
[16:28] <hatch> doesn't it just scroll vertically?
[16:28] <hatch> ohh nm
[16:28] <hatch> i missed the dots
[16:28] <rick_h_> hatch: no, look at the dots under it
[16:28] <rick_h_> hatch: right
[16:28] <rick_h_> hatch: so yea, we're assuming that represents a nice slider of charms that would need to be touch/slide friendly
[16:28] <hatch> ok so for that you should extend ScrollView
[16:29] <hatch> I can help you with that, I've done a lot of work with it
[16:29] <hatch> my other code won't really help much
[16:29] <hatch> well that's not entirely true
[16:29] <hatch> sec I'll get the repo
[16:29] <hatch> rick_h_, https://github.com/hatched/flickr-carousel
[16:29] <rick_h_> lmao! I just put together hatch with #yui hatch
[16:30] <hatch> haha yup that's me
[16:30] <rick_h_> that's awesome, now I feel like I know you for a long while. very cool
[16:30] <rick_h_> hatch: but yea, I figure jcsackett will look through anything good in the gallery and the like to start from for sure. 
[16:31] <hatch> I wanted to use scrollview because it natively supports pagination AND gestures
[16:31] <hatch> so overlaying some type of page indicator shouldn't be difficult
[16:31] <rick_h_> right, ok that's cool. Not used scrollview for anything yet
[16:33] <hatch> as far as carousels go it's pretty heavy weight but it provides for some cool interactions 
[16:33] <rick_h_> hatch: hmm, well weight might matter as we build things up. We're going to have a lot of moving parts all told I think
[16:33] <rick_h_> but worst case refactor and steal the best bits
[16:38] <benji> all three of the Reitveld reviews for landed command api branches that I know of have been added to https://docs.google.com/a/canonical.com/document/d/1n8rhYuj7YvTcz_HdKV1tLVj9cfSbkHTCzks1_9BZEdI/edit
[16:39] <hatch> bcsaller_, I'd like it if you could take a look at this code, I feel like its something obvious but I'm just missing it heh
[16:39] <bcsaller_> hatch: how do you want to do this, a screenshare?
[16:40] <hatch> I can push the branch, you'll probably want to inspect the logs
[16:40] <bcsaller_> k
[16:41] <hatch> https://code.launchpad.net/~hatch/juju-gui/1132943-scaffold
[16:42] <hatch> once you got it up and running I can talk you through the execution order if you like
[16:45] <hatch> jcsackett, I'm going to review your branch
[16:45] <hatch> is it ready?
[16:45] <hatch> ready for review I mean
[16:48] <rick_h_> hatch: let us go over it once first please. I think it'll get tweaked a lot at first
[16:48] <rick_h_> we'll make sure to bug you for when we think it's ready 
[16:49] <hatch> sounds good :)
[16:50] <bcsaller_> hatch: that branch still doesn't have the callingContext stuff merged in?
[16:51] <hatch> bcsaller_, I'm sure it does, one second
[16:51] <hatch> yep it does
[16:51] <hatch> http://bazaar.launchpad.net/~hatch/juju-gui/1132943-scaffold/view/head:/app/app.js#L472
[16:52] <hatch> what you're seeing is it calling the superclass router-debug.js file
[16:52] <hatch> s/you're/you're probably
[16:53] <bcsaller_> hatch: ahh, yeah, seeing a null callback in a method we shouldn't see
[16:54] <hatch> Makyo, I'm about to install Win8 in a virtual box - do you remember if there were any special virtualbox packages you needed (before I get started)
[16:55] <Makyo> hatch, Not that I remember, just installed virtualbox from apt, and ran the ISO.  I suggest grabbing a product key first, as the install can really slow down the machine too much to use a browser.
[16:55] <hatch> pfft not on this 3 year old i3 monster!
[16:55] <hatch> lol
[17:00] <hatch> I haven't used virtualbox in probably 2 years so this should be interesting
[17:02] <benji> While debugging and developing incrementally go's insistance upon avoiding unused varaibles/imports is counter-productive.
[17:05] <bcsaller_> hatch: its what I was warning about, "scaffold-sub-app" is a subscriber to the history:change event, which is fired when we trigger url replacement. It responds by dispatching in the subapp, this is the non-spacespace aware routing happing there. It shouldn't be subscribed to or using that behavior at all for this to work 
[17:05] <bcsaller_> hatch: it comes from the Pjax base
[17:06] <hatch> poop
[17:06] <hatch> alrighty
[17:07] <bcsaller_> not sure what the best path forward is from here
[17:07] <hatch> yeah I'm reading the code right now
[17:08] <bcsaller_> The stack trace at the point of error is revealing (and very deep)
[17:08] <bcsaller_> I'd try defined html5:false on the subapp before going too far
[17:18] <hatch> looks like the offending event handler is in router
[17:20] <hatch> bcsaller_, fixed it
[17:20] <hatch> thanks a bunch for pointing that out :D
[17:20] <hatch> give me a few minutes to flesh out the fix and then I can detail it
[17:21] <bcsaller_> hatch: ha, no problem. I expect we'll still see something of this nature again though
[17:21] <hatch> shush you
[17:21] <bcsaller_> ha
[17:21] <bcsaller_> fair enough
[17:21] <hatch> lol
[17:23] <benji> rogpeppe: have a second to look at something for me?  I have a test assertion and I thought "err" was a string but when I run the tests I get the error at the top of http://paste.ubuntu.com/5576866/
[17:23] <benji> however, if I switch the assertion to look at err.Message I get the build error at the bottom of that paste
[17:24] <rogpeppe> benji: you want to use ErrorMatches
[17:24] <benji> rogpeppe: ok... why is that?
[17:24] <rogpeppe> benji: no errors are plain strings
[17:24] <rogpeppe> benji: (string does not implement the Error method)
[17:25] <rogpeppe> benji: you could do, c.Assert(err.Error(), Equals, "....")
[17:25] <rogpeppe> benji: but that would panic if err was nil, which isn't very helpful
[17:27] <benji> rogpeppe: I don't understand "no errors are plain strings"; does that mean "no, the last thing I said is not tru (that I should use ErrorMatches), because errors are plain strings" or "there are no errors that are plain strings?"
[17:27] <benji> s/tru/true/
[17:28] <rogpeppe> benji: the latter
[17:29] <benji> ok; in that case why does the error describe error as being a struct with a Message member, but if I attemt to access it I get the build error?
[17:30] <bcsaller_> is it being downcast back to plain Error when it shouldn't be? losing access to the additional info
[17:31] <benji> interesting hypothesis, bcsaller_.  I wasn't aware that go did autmatic type casting.
[17:31] <bcsaller_> eh, what do I know :)
[17:32] <bcsaller_> just seems like the base language elements that throw err can't know about the extension type
[17:37] <hatch> Makyo, Its been sitting at 'Creating process for virtual machine' 0% for a while now - do you remember if it took this long?
[17:37] <Makyo> hatch, no..
[17:37] <hatch> alright I'll leave it for a while longer
[17:38] <hatch> I'm pretty sure it's hung up thought because it's not using any cpu
[17:39] <hatch> oh well 
[17:39] <benji> rogpeppe: ok; in that case why does the error describe error as being a struct with a Message member, but if I attemt to access it I get the build error?
[17:41] <rogpeppe> benji: because you need to convert it to the concrete type first. the error interface has no Message members - you can't look inside an interface (other by calling methods defined on the interface) until you've asserted it to some non-interface type
[17:41] <rogpeppe> benji: e.g. err.(*api.Error).Message
[17:42] <rogpeppe> benji: that will panic if the error is not of type *api.Error
[17:43] <benji> rogpeppe: thanks, that makes a modicum of sense to me at this point in my go journey
[17:43] <rogpeppe> benji: see http://golang.org/ref/spec#Type_assertions
[17:43] <benji> thanks
[17:43] <rogpeppe> benji: also http://golang.org/ref/spec#Type_switches
[17:44] <bcsaller_> sounds like I was on the right track there
[17:45] <rogpeppe> bcsaller_: yeah.
[17:46] <rogpeppe> bcsaller_: the missing piece is that the gocheck package is passing around the return value as an interface{}, and has forgotten that it was once an "error" value.
[17:47] <bcsaller_> makes sense, interface{} feels a bit like void * in C, up to the developer to cast it to something more meaningful
[17:47] <rogpeppe> benji: and, yeah, go does automatic type down-casting (a value is assignment-compatible with any interface that it implements) but not up-casting
[17:47] <rogpeppe> bcsaller_: that's right
[17:48] <rogpeppe> bcsaller_: the nice thing is that after the dynamic type conversion, you know exactly what you've got and can access all fields and methods of the concrete type without fear.
[17:49] <bcsaller_> that is a solid advantage 
[17:50] <rogpeppe> bcsaller_: if you see a ".()" operator somewhere, that's a good sign that you should look very closely at the code...
[18:04] <hatch> Makyo, you weren't kidding this install is putting this thing into limp mode haha
[18:04] <Makyo> hatch, right? :P
[18:04] <Makyo> Works alright once it's running, at least.
[18:14] <rogpeppe> gary_poster: FYI here's the initial linked list implementation (i'm just writing the first tests for it now) http://paste.ubuntu.com/5576993/
[18:14] <rogpeppe> gary_poster: that implements all the operations needed by the higher level watcher, i think
[18:16] <rogpeppe> gary_poster: of *course* it will all work first time :-)
[18:17] <gary_poster> great rogpeppe, awesome! I'll dig into it this afternoon for a few minutes
[18:17] <gary_poster> :-)
[18:17] <gary_poster> of course!
[18:30] <rogpeppe> gary_poster: yay! first test passed. (newAllInfo) the rest will have to wait for the plane.
[18:31] <gary_poster> rogpeppe, :-) awesome thanks for your work, have a safe trip, and look forward to seeing you in ATL
[18:31] <rogpeppe> gary_poster: all that to you too!
[18:31] <gary_poster> :-) thx
[19:18] <hatch> hey Makyo so I installed win 8, had it up and running, now after shutting it down when I try to boot it back up it goes right into the installer again
[19:18] <Makyo> hatch, Do you still have the installation media mounted?
[19:19] <Makyo> In virtualbox, I mean.
[19:19] <hatch> under Storage there is the IDE which has the iso
[19:19] <hatch> I'm assuming that's the issue?
[19:19] <Makyo> Yeah, it's still booting to that.
[19:19] <hatch> ahh ok
[19:20] <hatch> that did it
[19:20] <hatch> thanks
[19:22] <hatch> for some reason it's in 4:3 resolution
[19:34] <BradCrittenden> benji have you launched an instance from juju-core lately?
[19:35] <benji> bac: nope
[19:35] <bac> benji: bootstrap works for me but 'juju status' returns 'error: cannot log in to admin database: auth fails'
[19:36] <bac> thus i can't do anything
[19:36] <benji> huh; I haven't seen that one.  Shot in the dark: maybe a fresh control bucket would help.
[19:40] <bac> benji: good idea
[19:54] <bac> benji: nope, changing the control bucket had no effect...
[19:54] <benji> hrm
[19:56] <hatch> Makyo, did you have to do anything special to get anything other than 4:3 resolutions? Even after installing the guest tools I'm still only seeing the same old ones
[19:56] <Makyo> Never gotten that working, sorry :/
[19:57] <hatch> alright no problem I've tried a couple techniques with no luck and have a few more
[19:57] <hatch> just thought I'd ask
[19:57] <hatch> I'll let you know :)
[20:08] <hatch> Makyo, I figured it out
[20:08] <Makyo> \o/
[20:08] <hatch> VBoxManage setextradata "Windows 8 Pro" CustomVideoMode1 1366x768x32
[20:08] <hatch> shit down vbox and run that command
[20:09] <hatch> substitute the "Windows 8 Pro" for your vm name and the 1366x768x32 for the resolution you want
[20:09] <hatch> then that resolution will be available in the windows 8 display settings
[20:10] <bac> benji: my problem was i just didn't use 'bootstrap --upload-tools'
[20:11] <benji> ah!  sounds like one for the failure mode list (if that's still a thing)
[20:14] <gary_poster> benji, make it so :-)
[20:33] <Makyo> gary_poster, ping.
[20:33] <gary_poster> Makyo hey sorry almost
[20:33] <Makyo> gary_poster, np, ready when you are.
[20:34] <bac> benji: does that list exist somewhere?
[20:35] <benji> we had something like it in the early going; in fact ,i thought you put it together
[20:36] <bac> benji: hmmm
[20:37] <bac> benji: oh, this: https://docs.google.com/a/canonical.com/document/d/1OEOzDu9lh4ko8oSgl_tjQlk98x_rgtiiSSJYBRopic8/edit
[20:39] <benji> bac: right!  Maybe now that we're in a (more) steady state we could convert that to a wiki document, dropping any that don't apply any more (I am think of the one about test failures on trunk)
[20:40] <bac> a good idea
[20:40] <bac> i just made it a google doc since we had so much stuff there and we all knew where to look
[20:41] <benji> yep, I think google docs are good for transient stuff like that
[20:57]  * bac -> dogwalk.  bbiab.
[21:15] <hatch> it looks like it's ~ a 10min walk to the closest at&t store for me to go and buy a prepaid data sim for my phone
[21:15] <hatch> Or thats just an office building
[21:15] <hatch> damn lol
[21:16] <hatch> do places like CVS sell sim cards?
[21:33] <hatch> has anyone ever run into an issue with spritegen? I am getting https://gist.github.com/hatched/7d420804ce849d97449f this error
[21:34] <hatch> no idea why, trunk builds fine and I've only changed a couple files
[21:34] <benji> hatch: I have never seen a sinle sim card for sale at a retail location in the US (although I have never looked very hard, either)
[21:34] <benji> hatch: it doesn't know how to read the file identify.im6
[21:34] <hatch> well I got that lol
[21:35] <benji> heh
[21:35] <hatch> I wonder what that file is
[21:36] <hatch> or where it came from
[21:36] <benji> since I have never heard of an .im6 file I figured you'd say something like "Silly me, putting my instant messager v6.0 log files in the sprite directory" ;)
[21:37] <hatch> haha not this time :) odly enough when I goto that dir there is no such file
[21:38] <hatch> I guess I could delete the branch and try again
[21:38] <benji> hmm, does the sprite generation use ImageMagick?  Does it produce temporary files with a .im6 extension?
[21:38] <Makyo> Or diff against trunk?
[21:39] <hatch> Makyo, yep I've diffed against trunk and only my js has changed
[21:40] <Makyo> Huh!  It's repeatable, too?
[21:40] <hatch> yep - I'll try making a new branch and see what happens
[21:40] <hatch> oh I did run lbox propose without running make devel first
[21:40] <hatch> not sure if that matters
[21:40] <benji> this mailing list message seems to be related, but I can't see how, exactly: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=652675
[21:41] <hatch> hmm, well I'll just make note of my changes and try a new branch
[21:41] <hatch> no big deal, just a very odd error
[21:43] <bac> hatch: had you asked last week i would've suggested straighttalk.com ... even though they are owned by walmart but use the at&t network.
[21:43] <hatch> ahh well it looks like even if I prepay it's going to cost me quite a bit....like $75
[21:44] <hatch> so I'll just keep data off when roaming
[21:44] <hatch> such is the life I suppose :)
[21:44] <bac> hatch: you need a microsim or a full size?  i think i have an extra full-size you could use to activate
[21:44] <hatch> fullsize - but wouldn't I need a contract on that sim?
[21:45] <bac> hatch: no.  but it woudl be $48 for voice+data for a month
[21:45] <benji> hatch: I think you got that error because imagemagick was being installed by the spritegen package and the temporary files were picked up.  Which seems like an insane thing to be happening, but it is the only hypothesis that I have that matches the evidence.
[21:45] <benji> this is the code that I think is responsible: node_modules/node-spritesheet/scripts/imagemagick.sh
[21:46] <hatch> benji, yeah it might be a side effect of not running make devel first
[21:46] <hatch> hmm nope
[21:47] <hatch> just created a new branch and got the same error
[21:47] <hatch> wth
[21:47] <benji> strace is your friend (especially the -f option, in this case)
[21:48] <hatch> https://github.com/rsms/node-imagemagick/issues/22 ....fail response 
[21:50] <benji> right, it can't recognize the file as an image; the real question is where the file is coming from
[21:51] <hatch> yeah I just ran make clean and make devel on trunk and it's fine
[21:51] <bcsaller_> -    "node-spritesheet": ">=0.2.3"  +    "node-spritesheet": "0.4.0"
[21:51] <benji> the only hint I can find for a file named identify (one of the imagemagick executables) with an extension .im6 is that debian bug asking for the v6 version of image magic to have .im6 tacked onto the executable names
[21:51] <bcsaller_> benji: ^^
[21:52] <bcsaller_> the new version has an error
[21:52] <bcsaller_> 0.4.1 was broken for me
[21:52] <benji> "an error" or "the error"?
[21:52] <bcsaller_> with 0.4.0 it was working
[21:53] <bcsaller_> ahh, it was hatch that was asking. 
[21:54] <hatch> damn we really need to specify concrete version numbers - these guys keep breaking their packages lol
[21:54] <bcsaller_> current is good until it isn't 
[21:54] <hatch> that's been 3 packages in 2 weeks haha
[21:54] <hatch> maybe it's a conspiracy 
[21:55] <bcsaller_> and that makes it better or worse than golang? ;)
[21:55] <hatch> haha
[21:55] <hatch> ok I'll update the package.json :)
[21:55] <hatch> '0.4.1': '2013-03-01T15:44:46.490Z' }
[21:56] <hatch> I'm not sure a bug fix release is supposed to break things
[21:56] <hatch> just sayin...
[21:56] <hatch> ;)
[21:57] <hatch> bcsaller_, thanks for pointing that out
[21:57] <hatch> that fixed it
[22:03]  * Makyo walkadoggy.
[22:08] <hatch> jcsackett, you mentioned you were having issues getting your new code into codereview...was it a spritesheet issue?
[22:15] <hatch> I'm sure most are done for the day but if anyone is still around a review on https://codereview.appspot.com/7448047/ would be awesome :)
[22:18] <gary_poster> hatch will look later in weekend but need to go now
[22:18] <hatch> sure no problem
[22:30] <jcsackett> hatch: no, it was the network i was on. just got home and sent it off again and it worked this time.
[22:32] <hatch> ohh ok :) 
[22:32] <hatch> I just ran into the spritesheet version issue so I thought I'd point it out if you missed it
[22:33] <hatch> would you like me to review?
[22:45] <jcsackett> hatch: if you have time sure; i'm heading out though and probably won't be able to return to this till monday, so no rush.
[22:46] <hatch> alrighty well have a good weekend
[22:46] <jcsackett> you too. :-)