=== thumper is now known as thumper-afk === tasdomas_afk is now known as tasdomas [07:05] morning [07:26] TheMue, heyhey [07:30] fwereade__: heya [07:33] fwereade__: any good idea on how to test the cleaner? maybe i should export an access to the size of the cleanup collection ... *loudThink* [07:34] TheMue, yeah, export_test sounds sensible to me [07:36] fwereade__: ok, will go this way [07:49] *bibber* [07:49] * TheMue switched clothes to summer mode, but right now we have 12°, not very much === thumper-afk is now known as thumper [07:58] fwereade__: hey, you around? [07:58] thumper, hey dude [07:59] fwereade__: I made a calendar appt with you, but perhaps we could do it now? [07:59] thumper, sure, just 5 mins to clean up some tests please? [07:59] sure, np [07:59] hi danilos [07:59] would you prefer a G+ hangout to mumble today? [07:59] hi jam, danilos [07:59] jam: hi [07:59] hey thumper, I'm suprised to see you still around [07:59] jam: whatever works for you, generally hangouts [08:00] are you still poaching mgz from me this week ? [08:00] thumper, hey-hey [08:00] jam: monday nights are a convenient time to catch up [08:00] danilos: https://plus.google.com/hangouts/_/865fe063d65c84b4533952ee66bfefaec8fc18d8 [08:00] grab people at the start of the week [08:00] I added it to the calendar event [08:00] dinner is done here [08:00] thumper: and throttle them? [08:00] jam: cool, getting in [08:01] jam: nothing so violent [08:19] mornin' all, BTW [08:20] rogpeppe1: heya === TheRealMue is now known as TheMue [09:06] mgz_: you up? [09:06] hi rogpeppe1 [09:06] rogpeppe1: I have a juju-core branch up for the loggo changes [09:06] thumper: yo! [09:07] thumper: i LGTM'd it [09:07] cool, ta [09:07] I'll land things tomorrow [09:08] thumper: great [09:08] thumper: any feedback on the loggo CL? [09:08] rogpeppe1: it's all good, will land unchanged [09:08] thumper: lovely, thanks a lot [09:08] thumper: yup [09:09] rogpeppe1: jam also raised the point about the logger and module separatness, and I think it may well be a hang over from C++ where you won't want to hand out pointers you care about [09:09] thumper: what do you think of my other suggested changes (lose case insensitivity, always use ";" as a separator... there might've been another one too) [09:09] because people might delete them [09:09] ah [09:09] thumper: i think you can probably lose the whole concept of "module" [09:09] rogpeppe1: actually I may have missed those, but I'm ok with them [09:10] thumper: i just mentioned them in the CL description [09:10] rogpeppe1: yeah, I think go gives more protection there, so could be ok [09:10] I thought the other day, when jam suggested it, that I had a good reason why it was bad [09:10] but when I thought again, I couldn't recall [09:10] so I'll think a bit more, and we may be able to get rid of modules... and just have loggers [09:11] mgz_: quick hangout? [09:11] i think that may end up nicer [09:11] thumper: I would probably say that Logger should be an Interface, rather than a concrete type. What do you think? [09:11] jam: why would you want to do that? [09:11] thumper: sure [09:11] hmm.. that is an interesting idea [09:11] I like interfaces [09:11] * rogpeppe1 likes interfaces too === rogpeppe1 is now known as rogpeppe [09:12] rogpeppe1: you never want to muck with the internals anyway [09:12] and it lets you do all sorts of nice tricks in test suites, etc [09:12] jam: hmm, i'm not sure [09:12] It is a bit of "least information that you should care about" which is the interface. [09:12] jam: it's a big interface [09:13] jam: and you can already replace the logger with something test-suite specific [09:14] jam: and if it's not an interface call, the compiler can potentially work out the arguments don't escape [09:15] rogpeppe: 5 related APIs doesn't seem very wide to me, and global objects that must be concrete types can be a bit clumsy when you really want something else. However, I agree that the compile-time optimization is nice. [09:15] jam: Logger has 16 methods. i'd say that's a pretty big interface. [09:17] jam: i'd be more interested in something which gave you more than one possible logging hierarchy. [09:18] thumper: what was your thought on the Is* methods being public? Are you expecting people to do a pre-check before computing something expensive? [09:18] jam: but actually the Writer interface probably gives you everything you need for the fancy tricks in test suites [09:19] jam: I thought it could be a possibility [09:21] thumper: i think it's reasonable to expose them, but perhaps compress them all into IsLevelEnabled(Level) bool [09:24] thumper: well, you do have GetEffectiveLevel which gives you that information, it seems a bit of "you can ask 3-different ways for the same info, because we're not sure what fits best". [09:27] jam: yeah, i tend to agree with that. given how rare it's likely to be, log.EffectiveLevel() <= level is probably good enough. [09:30] jam: BTW the compiler does currently know that the variadic argument to Logf, Errorf, etc does not escape, and saves an allocation per call accordingly [09:32] rogpeppe: btw, if you have log.Errorf("100% failure"), it kinda messes up [09:32] rogpeppe: as it expects params for a % thingy [09:32] which is why the special case used to be there [09:32] anyway, I'm off now [09:32] thumper: that's a problem with using % in any printf format string [09:33] I'll leave you two to argue [09:33] thumper: doesn't that need to be "100%% " anyway? [09:33] jam: +1 [09:33] should have an Error one that only takes a message [09:33] thumper: govet will warn you about the above [09:33] not touched govet [09:33] thumper: yeah. or Error(...interface) [09:33] does it do pets? [09:33] thumper: only pet projects [09:33] ha [09:34] thumper: govet is the "go compiler doesn't believe in warnings only errors, so things we might want warnings on we put in another tool" :) [09:34] thumper: there's also golint now [09:34] * thumper off to watch game of thrones [09:34] thumper: enjoy! [09:34] thumper: enjoy [09:34] it's interesting seeing what golint says about our code actually [09:35] the most frequent warning is that it prefers ID to Id. [09:35] rogpeppe: on the same premise as URL vs Url ? [09:35] jam: i guess. [09:36] jam: only i'd always reasoned the other way [09:36] though ID isn't an acronym is it? [09:36] jam: exactly [09:36] jam: but evidently in google, they've gone with ID [09:37] jam: github.com/golang/lint/golint if you want to play [09:47] Makyo, ping [10:23] * rogpeppe is going to reboot again. i'm finding raring really quite buggy. [10:37] * TheMue is at lunch === tasdomas is now known as tasdomas_afk === fdehay_ is now known as fdehay === tasdomas_afk is now known as tasdomas [10:58] sigh. [10:59] * rogpeppe goes off to submit a unity bug [11:34] jam: standup today? [11:45] *facepalm* [11:45] Looking for an error at the right place helps a lot. [11:48] mgz_: I probably missed the standup since you and danilos should be fast, but I'm around for 1:1 whenever you are ready. [11:50] we're just wrapping up :) [11:50] mumble? [11:50] jam: you've had your chance to join in as well :) [11:50] danilos: you were doing a g+ I guess I just missed it [11:51] jam: yeah === tasdomas is now known as tasdomas_afk === tasdomas_afk is now known as tasdomas [12:07] * fwereade__ lunch [12:17] ah, bug found === BradCrittenden is now known as bac_ === wedgwood_away is now known as wedgwood [15:40] not my day today. second forced reboot of the day. [15:41] at least i only lost 30 minutes of work this time === tasdomas is now known as tasdomas_afk [16:13] it looks like under the current version of juju-core (1.11) and possibly tip $HOME isn't set when a hook is running, has anyone else seen or reported this? I couldn't see a bug for it [16:15] mattyw: hmm, interesting. was it definitely set before? [16:15] rogpeppe, 1.10 it seemed to be yes [16:16] mattyw: fwereade__ would be yer man for knowing about what might have changed there. [16:17] mattyw: in the meantime, i'd make sure it's reproducible and report a bug [16:17] rogpeppe, ok thanks, - while I have your attention: you mentioned in oakland that you'd done some stuff in SBCL yeah? [16:18] mattyw: yeah [16:18] mattyw: though my CL skills are somewhat rusty by now... :-) [16:19] rogpeppe, have you used it for connecting to secure websockets? I tried to get clojure connected up to the juju-core api over the weekend, the java ssl stuff seems a complete mess [16:20] mattyw: no; i played a little bit with some web server stuff, but never from client side and not involving ssl [16:20] mattyw: i'd google around. there are quite a few nice libraries out there [16:20] mattyw: you're implementing stuff in lisp? [16:21] rogpeppe, I have a love hate relationship [16:22] mattyw: i had fun playing with it, but it really is a baroque language. i imagine clojure is a bit less idiosyncratic though [16:22] rogpeppe, clojure has been my favourite, but connecting to wss sockets doesn't just work like in python and go - I get all sorts of crazy exceptions [16:23] mattyw: i think you're best off persevering with clojure - porting to CL is unlikely to be a breeze [16:23] rogpeppe, clojure is the sanest one I've used, but being based on the jvm is a blessing and a curse [16:23] mattyw: does clojure even do macros in a similar style to CL? [16:25] rogpeppe, I've only done clojure macros. I've not done CL macros so I don't know [16:25] mattyw: are they hygienic? [16:25] rogpeppe, I think so yes [16:27] rogpeppe, mattyw: I'm not sure why that would have happened, I'm afraid, although I'm a bit suspicious of needing $HOME in charms [16:28] fwereade__, we've got a binary that gets called in a hook. the binary uses $HOME [16:29] mattyw: sorry, my laptop just crashed again [16:29] mattyw: last thing i saw was "i think so yes" [16:29] i think this laptop might be on its way out [16:29] rogpeppe, it ended there [16:30] mattyw: ah, it must've crashed just after that and i hadn't seen it [16:31] * rogpeppe is well annoyed. just lost 500 words of detailed documentation. [16:31] (at least) [16:33] mattyw: sbcl macros aren't hygienic [16:35] aargh === deryck is now known as deryck[lunch] === wedgwood is now known as wedgwood_away === wedgwood_away is now known as wedgwood [17:48] g'night all === deryck[lunch] is now known as deryck === BradCrittenden is now known as bac [21:23] morning [21:51] morning [22:11] perhaps it is time for a second coffee... === wedgwood is now known as wedgwood_away