[01:18] <thumper> davecheney: I'd love a sanity check on the series email just sent to the list
[01:18] <thumper> davecheney: it is that classic thing of getting home, and going "ah... wat?"
[01:19] <davecheney> thumper: that is too be expected
[01:19]  * davecheney reads
[01:19] <thumper> davecheney: I've summarised what I think I should do at the bottom of the email, but really want to check before diving in
[02:10] <hazmat> m_3, davecheney can i get a dial in on that voice.. or has the clock passed
[02:10] <davecheney> hazmat: m_3 is down with hardware issues
[02:10] <davecheney> but lets schedule it for tomorrow
[02:11] <hazmat> davecheney,sadly no clock unites you, i, m3 and mgz
[02:11] <hazmat> mail it must be
[02:11] <davecheney> le sigh
[02:40] <thumper> davecheney: so... I'm trying to understand the "go test" process
[02:40] <davecheney> right
[02:40] <thumper> davecheney: so with gocheck, how does it add stuff to the standard testing calls?
[02:41] <davecheney> there will be a file that bridges between the go test expected function
[02:41] <davecheney> and the gocheck one
[02:41]  * davecheney finds an example
[02:42] <davecheney> you can figure out which one it is
[02:42] <davecheney> it is the name printed when you run go test -v
[02:42] <thumper> davecheney: var _ = Suite(&MainSuite{}) does the magic register
[02:42] <davecheney> that is part of the story
[02:42] <davecheney> that registers the Suite with gocheck
[02:43] <thumper> right
[02:43] <davecheney> but there is a bridge to jump from go test to gocheck
[02:43] <davecheney> both are necessary
[02:43] <thumper> yeah, I'm missing that bridge bit
[02:43] <davecheney> from cmd/cmd_test.go
[02:43] <davecheney> func Test(t *stdtesting.T) { TestingT(t) }
[02:43] <davecheney> the TestingT is actaully gocheck.TestingT
[02:44] <davecheney> but we import gocheck into the packages' own namespace
[02:44] <thumper> ah...
[02:45] <thumper> davecheney: so how often do you need to do that?
[02:45] <davecheney> once per pacakge
[02:46]  * thumper nods
[02:57] <m_3> davecheney: ok, back
[02:57] <m_3> davecheney: damn... that totally sucked
[02:58] <m_3> davecheney: so yeah, I'd love to bump til tomorrow if that's cool with you
[02:58] <davecheney> m_3: no worries
[02:58] <davecheney> will be online at 8am
[02:59] <davecheney> should be 2/3pm our time, give or take
[03:18] <thumper> davecheney: what level of hooks are there in go during package load?
[03:18] <thumper> davecheney: is there a way to get something run as the package is loaded?
[03:19] <davecheney> thumper: the is the init() hook, which is executed pre main
[03:19] <davecheney> there is no concept of package loading
[03:20] <thumper> when is the init() hook run? and for which package?
[03:20] <davecheney> it is run pre main()
[03:20] <davecheney> for all packages, in dep order
[03:20] <thumper> ah...
[03:20] <thumper> interesting
[03:20] <davecheney> so if A depends on B then B's init() gets run before A's
[03:20] <davecheney> ___but____
[03:20] <davecheney> inside a package you can have multiple init() functions
[03:21] <davecheney> but there is no ordering on those
[03:21] <thumper> but all init() methods are called?
[03:21] <davecheney> yes
[03:21] <thumper> isn't there name clashes?
[03:21] <davecheney> init is a magic method
[03:21] <thumper> so if I have three different files, a.go, b.go and c.go and all are in package d
[03:21] <davecheney> when it is compiled each gets a sequyence number appended to avoid colisions
[03:21] <thumper> and each file has an init() func
[03:22] <thumper> they are all called?
[03:22] <davecheney> they are all called
[03:22] <thumper> ok
[03:22] <davecheney> the order in which they are called is not known
[03:22] <thumper> when are global vars created in relation to the init methods?
[03:22] <davecheney> http://play.golang.org/p/kYYu_ZSixq
[03:22] <davecheney> thumper: before
[03:22] <davecheney> var's are handled in init methods
[03:22] <davecheney> that you don't create
[03:23] <thumper> are they guaranteed to run before the init methods I define?
[03:23] <thumper> they sound special
[03:23] <davecheney> yes
[03:23] <davecheney> top level initalisation is special
[03:23]  * thumper nods
[03:23]  * thumper is thinking magic
[03:23] <davecheney> http://play.golang.org/p/NjZU1tGibR
[03:26] <thumper> so... vars in package d are initialized before a defined init() method in a dependent package?
[03:26] <thumper> global vars that is
[03:26] <davecheney> package level vars yes
[03:26] <davecheney> there are no global vars
[03:26] <davecheney> for each packge it goes
[03:27] <thumper> ok, that is what I meant
[03:27] <davecheney> vars, init()s, then the packages that depend on that package
[03:27] <davecheney> all the way back up to main
[03:27] <thumper> oh... :(
[03:27]  * thumper thinks
[03:27] <thumper> actually, I think that still works
[03:27] <davecheney> the langauge _should_ prevent you from seeing an uninitalised variable
[03:28]  * thumper thinks more
[03:29] <davecheney> thumper: care to share ?
[04:08]  * thumper has just worked out why "go test ./..." often has weird delayed output
[04:08] <thumper> buffered i/o
[08:14] <fwereade> mornings
[09:35] <TheMue> Good morning
[11:20] <hazmat> has anyone been able to get a vpc default/only account?
[11:33] <mgz> jam, dimitern: standup?
[11:33] <dimitern> mgz: in a sec
[11:41] <rogpeppe1> hi all
[11:44] <dimitern> rogpeppe: hiya
[11:56] <TheMue> Hi all
[12:00] <jam> mgz:  did you go through the standup already?
[12:00] <mgz> jam: yup, we was fast
[12:00] <jam> k, I did have some things to specifically bring up, but I can bring them up on IRC
[13:41]  * TheMue needs inspiration regarding JUJU_HOME and testing. Anyone interested?
[13:45] <benji> TheMue: sounds like fun... what is JUJU_HOME?
[13:46] <TheMue> benji: It's a new env variable controlling the home of the juju file, today hard coded .juju.
[13:46] <benji> makes sense
[13:47] <TheMue> benji: When changing the variable, or a global variable representing it, for a test and multiple tests run concurrently they may get into conflict.
[13:47] <TheMue> benji: As it is a global state.
[13:48] <benji> yep; global state is a killer in tests (and everywhere else, really)
[13:48] <TheMue> benji: Exactly. We already have some tests where $HOME is changed.
[13:50] <benji> I don't know how the internals of go's testing infrastructure works, but my first though would be to channel all reads of JUJU_HOME into a function and then make tests use that instead of accessing the real variable
[13:50] <TheMue> benji: The problem stays.
[13:52] <TheMue> benji: Test A needs its home and sets it, test B too, now in test A it is read and it gets the - internal or external - value B had set.
[13:52] <benji> indeed
[13:52] <benji> each test would then need to create a temporary directory and set its local idea of home to that
[13:52] <TheMue> benji: It's btw a func returning JUJU_HOME or as default ~/.juju
[13:53] <TheMue> benji: Yes, and if the tested function calls JujuHome(), what will it get then?
[13:53] <benji> how about making the default function return an error in tests, that way you don't have accedental reading of the shared state and then have each tests make a process- (or thread-) local version
[13:54] <fwereade> TheMue, surely the problem only appears when run with explicit test.parallel > 1?
[13:54] <TheMue> fwereade: Yep, only then. Otherwise it's simple. ;)
[13:54] <fwereade> TheMue, panic in test setup if that's set then?
[13:55] <benji> as I understand it, test.parallel defaults to the value of GOMAXPROCS, which may be greater than 1
[13:55] <benji> (another instance of global state being a bad actor)
[13:55] <fwereade> benji, but *that* is only >1 when explicitly set, right?
[13:56] <TheMue> fwereade: We very often rely on the home internally, so all tests that even nested may access it would have to panic.
[13:56] <gary_poster> fwereade, rogpeppe hi.  Would you be available for hopefully a quick G+ in about 4 minutes (top of hour) to resolve lingering confusion about how to proceed with the annotations changes from frankban and Makyo?  We could meet in http://tinyurl.com/guichat
[13:56] <benji> fwereade: I assume so.
[13:57] <fwereade> gary_poster, sorry, we have a meeting coming right up -- how about 30 minutes later?
[13:57] <gary_poster> fwereade, we have a meeting then. :-) 60 minutes later instead, at the top of the next hour?
[13:57] <fwereade> gary_poster, sgtm if it sgt rogpeppe
[13:58] <gary_poster> thanks fwereade
[14:00] <benji> TheMue: does go have a thread-locals?  That is where I would stash slightly-less-than-global-globals.
[14:07] <TheMue> benji: One moment, meeting.
[14:46] <mgz> hm, so I don't really need to be in ~gophers, and can land things on juju-core and goose regardless,
[14:46] <mgz> but now can't triage goose bugs for instance, as ~gophers still owns the project
[14:47] <gary_poster> ~gophers was deactivated entirely, apparently
[14:47] <dimitern> i'm still not unclear why all that was even needed? changing gophers and all
[14:47] <gary_poster> rogpeppe, are you up for a call in 13 minutes?
[14:47] <gary_poster> 12 :-)
[14:47] <rogpeppe> gary_poster: yup
[14:48] <gary_poster> cool, thanks
[14:58] <gary_poster> fwereade, rogpeppe, frankban, Makyo call in http://tinyurl.com/guichat in 2 minutes.  I'm there already :-)
[14:58] <gary_poster> I will have to bow out early; I'm taking the role of facilitator
[14:59] <mramm> gary_poster: mind if I poke my head in?
[15:00] <gary_poster> mramm, no, please do
[15:02] <gary_poster> fwreade, rogpeppe, the conversation is so scintillating in our chat room that I'm sure you want to join in...
[15:27] <rogpeppe> fwereade: how about something like this? http://paste.ubuntu.com/5610973/
[15:27] <rogpeppe> fwereade: except... what to call "EntityName"?
[15:34] <fwereade> rogpeppe, I'm not quite sure about that Entity in there
[15:34] <fwereade> rogpeppe, I would honestly like to keep them separate
[15:34] <fwereade> rogpeppe, Refresh is only relevant to AuthEntity anyway, right?
[15:35] <rogpeppe> fwereade: ok, so you can ask for an annotator by name, but you can't ask the name of the annotator when you've got it?
[15:35] <Makyo> fwereade, Service has Refresh as well, correct?
[15:35] <rogpeppe> fwereade: isn't Refresh relevant to all state entities with a doc?
[15:38] <fwereade> rogpeppe, I am saying that having independent *Name methods that happen to return the same string is a price I consider worth paying to separate these bits of functionality
[15:38] <fwereade> rogpeppe, Refresh is not elevant to any Annotator AFAICT
[15:38] <rogpeppe> fwereade: Machine is an Annotator
[15:39] <rogpeppe> fwereade: and has Refresh
[15:39] <fwereade> rogpeppe, the fact that most annotators can be refreshed is not the point
[15:39] <fwereade> rogpeppe, and files can be closed as well as written
[15:40] <rogpeppe> fwereade: so you'd return a simple Annotator from AnnotatorEntity?
[15:40] <fwereade> rogpeppe, I think so -- maybe I'd even just call it Annotator(string) (Annotator, error)
[15:41] <rogpeppe> fwereade: and document that the syntax of the name is... what?
[15:41] <fwereade> rogpeppe, specific to annotations
[15:41] <fwereade> rogpeppe, by happy coincidence it is the same as that used for corresponding objects that can log in
[15:42] <rogpeppe> fwereade: duplicate the documentation?
[15:42] <fwereade> rogpeppe, roughly speaking, but the sets of relevant entities are different so it won't be *exactly* the same
[15:44] <rogpeppe> fwereade: this better? http://paste.ubuntu.com/5611029/
[15:44] <fwereade> rogpeppe, sorrt
[15:44] <fwereade> rogpeppe, yeah, I think so
[15:46] <rogpeppe> fwereade: promise? :-)
[15:47] <fwereade> rogpeppe, I'm pretty sure that fits what I've been after since the beginning
[15:47] <fwereade> rogpeppe, if I'm being inconsistent then I should absolutely be called on it, but I have been trying not to be
[15:52] <rogpeppe> fwereade: so, the plan is to leave EntityName around as it currently is, rather than changing it everywhere, but would you prefer we retro-fixed it to... something else?
[15:53] <rogpeppe> fwereade: i.e. have you got a better name for it?
[16:03] <fwereade> rogpeppe, hmm, I didn't see an EntityName in the things you suggested
[16:03] <rogpeppe> fwereade: yup, it's not needed by the things that use those interfaces, as far as i could make out
[16:03] <fwereade> rogpeppe, I had kinda assumed that was orthogonal, and that my views on that specific name had been made clear
[16:04] <rogpeppe> fwereade: yeah, i think it's orthogonal, and can be treated as a separate issue to be fixed independently
[16:06] <fwereade> rogpeppe, ok, fair enough, I'm very happy to see the separate interfaces and can live with a name I don't like
[16:06] <rogpeppe> fwereade: if you think of a sensible name, the change should be quite simple when we decide to do it.
[16:07] <rogpeppe> fwereade: one thought we had: "ExternalName" (i'm not that keen but just throwing it out there)
[16:08] <fwereade> rogpeppe, I still think the interfaces would be *better* if they included *Name methods but as I said I can live with EntityName
[16:12] <fwereade> gents, I need to come back later to talk with thumper, so I'm knocking off early in the interest of having a bit of an evening before then
[16:15] <rogpeppe> fwereade: okeydokey
[16:48] <TheRealMue> fwereade: ping
[16:49] <TheRealMue> fwereade: Have to step out but will ping you again later. ;)
[17:03] <rogpeppe> mgz: have you used bzr pipelines?
[17:03] <mgz> rogpeppe: I have, but abentley is the real expert
[17:04] <rogpeppe> mgz: ah. i'm hoping they'll "just work" with cobzr, but i wanted to check before potentially destroying my repo
[17:05] <mgz> they'll just work, cobzr is just creaky porcelain around some core bzr features
[17:05] <rogpeppe> mgz: that's what i'm thinking
[17:06] <rogpeppe> mgz: if i've got a few branches that already form a logical pipeline, can i link them together, or will i have to create new branches and merge my existing ones into them?
[17:07] <mgz> I've never tried to do that
[17:07] <rogpeppe> mgz: (i find myself in a position where the functionality that pipes provide looks like it'll be really useful)
[17:07] <mgz> you probably need to create the pipes, but should be able to just pull in the existing branches
[17:07] <rogpeppe> mgz: ok, i'll just start from scratch and merge. shouldn't be a problem.
[17:08] <rogpeppe> mgz: yeah
[17:09] <mgz> well, you shouldn't need to merge is the point, just pull in the revs
[17:15] <abentley> rogpeppe, mgz: in fact, you can just use the existing branches.  bzr add-pipe will accept a location (i.e. the path to a branch) as its input.
[17:16] <rogpeppe> abentley: thanks!
[17:36] <rogpeppe> abentley: that didn't actually work for me - i got this error: 'bzr: ERROR: A control directory already exists: "file:///home/rog/src/go/src/launchpad.net/juju-core/.bzr/cobzr/242-allwatcher-handle/".'
[17:37] <rogpeppe> abentley: but i just created the branch and merged in. no problem.
[17:39] <abentley> rogpeppe: What was the command you typed?
[17:39] <rogpeppe> abentley: bzr add-pipe name-of-existing-branch
[17:41] <abentley> rogpeppe: locations work, names don't.  "bzr add-pipe ~/src/go/src/launchpad.net/juju-core/.bzr/cobzr/242-allwatcher-handle" should have worked.
[17:41] <abentley> rogpeppe: Or whatever equivalent path.
[17:41] <rogpeppe> abentley: ah, ok. i didn't realise there was a difference.
[17:41] <rogpeppe> abentley: it's no matter any more anyway
[17:43] <abentley> rogpeppe: cool.
[17:44] <rogpeppe> abentley: first pipeline operations completed successfully - one pump, one interactive back merge. very useful!
[17:44] <abentley> rogpeppe: great.
[17:54] <rogpeppe> gary_poster, dimitern, fwereade, anyone else: here are the next two branches in the allwatcher task: https://codereview.appspot.com/7727044/ https://codereview.appspot.com/7727045/
[17:55] <gary_poster> yay rogpeppe thanks!  how many left after that?
[17:55] <rogpeppe> gary_poster: probably three or four
[17:56] <gary_poster> rogpeppe, ok cool, thanks.  I'll look forward to reviewing soon.
[17:56] <rogpeppe> gary_poster: thanks a lot
[17:57] <rogpeppe> gary_poster: bzr pipes are going to make my a *lot* easier here, i'm hoping...
[17:57] <gary_poster> lol, I bet
[18:49] <rogpeppe> right, that's me for the day
[18:50] <rogpeppe> see y'all tomorrow
[20:10] <thumper> fwereade: morning
[20:10] <thumper> fwereade: around?
[20:10] <fwereade> thumper, heyhey
[20:10] <fwereade> thumper, little bit caught up, 5 mins maybe?
[20:11] <thumper> fwereade: I'm just reading your email response
[20:11] <thumper> sure
[20:11] <fwereade> thumper, cool
[20:19] <benji> this is the second time I have gotten this error from "lbox propose":  error: ERROR: Failed to update bug task: Server returned 400 and body: milestone_link: Constraint not satisfied.
[20:22] <fwereade> benji, I haven't seen that one, but it's rare for me to remember to attach bugs ;)
[20:22] <benji> :)
[20:22] <fwereade> thumper, right, I think I've unfucked my logic
[20:23] <fwereade> thumper, although that was what I thought when I propsed originally, so...
[20:23] <fwereade> thumper, anyway
[20:23] <thumper> fwereade: so hangout?
[20:23] <fwereade> thumper, free for a G+?
[20:23] <thumper> aye
[20:23]  * fwereade start one
[22:12] <thumper> ah poos
[22:12] <thumper> hi davecheney
[22:12] <thumper> davecheney: you are not related to that first msg
[22:12] <thumper> :)
[22:14] <davecheney> morning
[22:14] <davecheney> i could be a poo
[22:14] <davecheney> you never know
[22:31]  * m_3 definitely a pooh
[22:37] <m_3> davecheney: I'm just crunching on the queue... available to g- at your convenience
[22:37] <m_3> the charm queue is quite sysiphean this week
[22:40] <davecheney> m_3: eep
[22:40] <davecheney> ok, will send you a hangout in the next 30 mins
[22:42] <m_3> cool... good for another three hours or so
[23:25] <davecheney> m_3: https://plus.google.com/hangouts/_/be405f06d5b6f273d4eb071ded2408bf336e502a?authuser=1&hl=en
[23:26] <m_3> ack
[23:26] <m_3> omw


[17:43] <new0> hey all
[17:44] <new0> i have a problem with login with xfce (i think). any idea?
[17:44] <new0> after i  logged in i can only see the desktop background but nothing more
[19:08] <Avihay> new0: try hitting alt+F2
[19:09] <Avihay> if that opens the run dialog, try running a terminal, and use it to look for the xfce pannle
[19:12] <new0> Avihay, tnx. can't run anything in it. also found that the problem might be nVidia drive.    GT330M. (you can            talk in hebrew)
[19:16] <Avihay> what do you mean by "CAn't run anything in it"?


[00:18] <Bluefoxicy> it's really annoying that you have to right-click on the Gnome Image Viewer window and hit "resize" to resize it
[00:19] <Bluefoxicy> rbasak:  I'd rather not subscribe, but it's more that I'm not subscribed and so replying to the thread means... ...well, I don't have a message here to reply to.
[06:03] <voidconf> hello
[06:03] <voidconf> /
[09:00] <rbasak> Bluefoxicy: for Mailman I use the downloadable mboxes from eg. https://lists.ubuntu.com/archives/ubuntu-server/ and then reply from one of those. Only the email addresses in their are munged, and I use mutt where loading an mbox is trivial.
[09:00] <rbasak> Others use gmane, but I hear that may be going away :-(
[12:52] <Bluefoxicy> rbasak:  gmane appears to be up but not actually have anything
[12:52] <Bluefoxicy> the actual mail archives are gone
[19:50] <tsimonq2> !info cmst zesty
[19:50] <tsimonq2> :/


[18:59] <kylem> "no"
[18:59] <kylem> :P
[19:01] <Keybuk> quest upstart% bzr diff -r tag:0.3.8.. | diffstat | tail -1
[19:01] <Keybuk>  63 files changed, 20985 insertions(+), 22843 deletions(-)
[19:02] <Keybuk> which amounts to 120% of the code changed
[19:02] <AlexExtreme> wow.
[21:33] <Keybuk> AlexExtreme, ion_: btw, could you both unsubscribe from https://code.edge.launchpad.net/~keybuk/libnih/old-main
[21:34] <Keybuk> and probably subscribe to https://code.launchpad.net/~keybuk/libnih/trunk instead
[21:34] <Keybuk> :)
[21:34] <kylem> Keybuk, oh, you should fix the urls in the README of both of those btw
[21:35] <Keybuk> kylem: good catch ;)


 Anyone interested in potentially buying my 128 GB Nexus 6P + Zero lemon case?
 Ok, I have officially purchased the LG Watch Sport that Donald Trump ordered me to. I expect @AdamOutler to reimburse me
[19:02] <exoalexander> Hello
 Good Morning
 Now let's talk about that fossil
 And also your watch 😁
 I will be open to it as soon as the new one comes in. Also no need to talk about @itnet7 like that
 How long does the shipping take?
 Should be here in the middle of next week
 Okay
 I'm waiting for next generation watches.
 I nabbed the Huawei watch a few days back. It's not bad
 Nice
 I've stopped wearing Moto 360
 Why's that?
 My biggest problem with smart watches was battery life. But h watch can get me through those long shifts without much trouble, so that's nice
 Miss my pebble tho
 Not sure just have not felt like taking it off the charger
 I have been using smartwatches for over 10 years so they have grown on me. My first one ran PalmOS 4.1
 Dang
 Yeh... I have been a fan of wearables before they were cool
 Gen 1 Moto? I was considering the Gen 2 for a while.
 My brother has the Gen2 and likes it
 Coffeehaus tomorrow?


[21:37] <backo> I need help for thin clients
[21:37] <alkisg> !ask
[21:38] <backo> ncx-linux-station #x - serial number required
[21:39] <alkisg> ?
[21:39] <backo> I change the mb on the pc and get this massage on thin clients
[21:40] <alkisg> At what point?
[21:40] <backo> how to enter serial numbers
[21:40] <alkisg> You don't need serial numbers in Linux...
[21:40] <alkisg> When are you seeing that message?
[21:41] <backo> have two xtenda x300 pci cards
[21:41] <backo> after changing the mb
[21:42] <alkisg> Ah, so this isn't "LTSP" thin clients, it's some other solution? Why not try contacting the manufacturer then?
[21:42] <alkisg> edubuntu is usually used with the LTSP thin client solution, www.ltsp.org
[22:15] <backo> Thanks I'll try with the manufacturer