[15:13] <Ted_P> I am using Xubuntu 21.10 and finally removed gnome-software after problems with its notifications and update automation.
[15:13] <Ted_P> Any thoughts on making Synaptic the default software manager?
[15:21] <rfm> Ted_P, I wouldn't (and don't)  Synaptic is pretty old, not actively maintained afaik, and has slightly different methods for deducing automatic installs/removes. If you want to get off ubuntu-software, learn to use the apt cli (it's not hard.)
[15:24] <Ted_P> Sure, I do actually use apt most of the time with weekly manual updates. What is the problem with "gnome-software" that it doesn't function smoothly and notifications and updates are not user friendly?
[15:25] <Ted_P> Is there a better package manager?
[15:31] <rfm> Ted_P, I don't know.  apt (and snap) are good enough for me, I only use gnome-software on the rare occasion I want to browse/change a snap's connections
[15:33] <Ted_P> Thank you. I guess that is good. I'm not keen on "snap" but I understand the idea and utility of it.
[15:34] <Ted_P> It may be that I should go back to LTS releases in which all the dependencies are worked out. Not sure why "gnome-software" in 21.10 became annoying.


[01:16] <Noskcaj> Laney, 2 or 3 of the other extensions are dead upstream, but most of them just need git snapshots which i've already packaged in tanglu.
[01:16] <Noskcaj> I also think dropping the extensions is the best option though'
[08:09] <mitya57> Hi attente!
[08:12] <mitya57> When I wrote the patch, I tested it with https://github.com/dglent/meteo-qt, and it worked fine under both Unity and Plasma 5
[08:13] <mitya57> attente: What package/branch can I use to reproduce your test case?
[12:34] <attente> mitya57: hi, it's https://github.com/lenky0401/fcitx-qimpanel, commit 05fd858ef84da971a98d4f68b25f4bd897676b43
[12:35] <attente> mitya57: a pre-requisite you'll need is to set 'im-config -n fcitx' and restart the session
[12:35] <attente> but once fcitx-qimpanel is running, the 'Virtual Keyboard' and 'Skin' submenus aren't working


[06:14] <wrtp> fwereade_: mornin'!
[06:31] <fwereade_> wrtp, heyhey
[06:32] <wrtp> fwereade_: how's tricks?
[06:32] <fwereade_> wrtp, not too bad
[06:33] <wrtp> fwereade_: BTW are you getting the initial mail for each codereview proposal?
[06:33] <wrtp> fwereade_: i'm not, and i can't see what's going wrong. i've just been through all my mail filter patterns and can't see any likely candidate.
[06:34] <fwereade_> wrtp, hmm, yes, it looks like I am in general
[06:34] <fwereade_> wrtp, maybe something about LP?
[06:34] <wrtp> fwereade_: i'm getting the initial '[Merge]' mail, but those [Merge] mails are so noisy i archive them immediately.
[06:35] <wrtp> fwereade_: the strange thing is i see any replies
[06:35] <fwereade_> wrtp, ah, ok, that is weird then
[06:35] <wrtp> fwereade_: so the first thing i'll know about any CL is when someone replies to it
[06:35] <wrtp> yeah, it's odd, and quite annoying actually
[06:36] <fwereade_> wrtp, yeah, I bet :(
[06:56] <wrtp> fwereade_: hmm, the odd thing is i do see *some* initial emails. Aram's and gustavo's seem to come through ok.
[06:56] <fwereade_> wrtp, heh that's even weirder
[06:57] <wrtp> fwereade_: i wonder if there's a way to check in launchpad what messages it's sent me
[06:59] <fwereade_> wrtp, I doubt that sort of thing specifically is logger
[06:59] <TheMue> Morning
[06:59] <fwereade_> wrtp, I bet we all have a subtly different combination of LP settings, and memberships of various things
[06:59] <fwereade_> TheMue, heyhey
[06:59] <wrtp> fwereade_: can you think of a CL you've replied to recently that i wasn't involved in?
[07:00] <wrtp> TheMue: yo!
[07:04] <fwereade_> wrtp, I don't think I have done much of that lately :(
[07:04] <wrtp> fwereade_: hmm. TheMue?
[07:05] <TheMue> wrtp: What?
[07:05] <wrtp> TheMue: (i'm trying to work out why i'm not seeing some emails from launchpad)
[07:05] <wrtp> TheMue:  can you think of a CL you've replied to recently that i wasn't involved in?
[07:07] <TheMue> wrtp: Have to look, but have to change systems fir it.
[07:08] <wrtp> TheMue: any CL that someone else created and you replied earlier than me would do too
[07:09] <TheMue> wrtp: If so, then mostly Williams CLs.
[07:09] <wrtp> TheMue: one example would be good, if you could, thanks!
[07:13] <wrtp> TheMue: here's an updated version of my firewaller sketch, BTW. http://paste.ubuntu.com/1087489/
[07:14] <wrtp> TheMue: i realised that tracking machine instance ids was unnecessary, because the OpenPort/ClosePort functions should operate on Environ with a machine id rather than on an environs.Instance.
[07:15] <TheMue> wrtp: Great, thx, will today integrate it into the firewaller outline of dave
[07:15] <wrtp> TheMue: good plan
[07:18] <wrtp> TheMue: i'm not sure of a good way to build it up bit by bit though. i can't think of any useful tests for the intermediate stages.
[07:18] <TheMue> wrtp: That has been my prob with the first approach.
[07:19] <TheMue> wrtp: Now I'll use stubs for intermediate CLs
[07:21] <wrtp> TheMue: i suppose you could put hooks in for the intermediate stages, to be removed later. but writing tests only to delete them later seems a bit wrong.
[07:22] <TheMue> wrtp: No, the tests shall be the right ones and make the right asserts
[07:22] <wrtp> TheMue: yeah, and the problem is that the only observable side-effects of this code are the calls to OpenPort/ClosePort
[07:22] <TheMue> wrtp: But while they first may get constants it will get more and more live with each iteration
[07:23] <wrtp> TheMue: which won't happen until all the rest is there.
[07:23] <TheMue> wrtp: So the tests verify the impl
[07:24] <TheMue> wrtp: See the current approach. I've used an interface and a mock for call verification.
[07:25] <wrtp> TheMue: the first stage AFAICS is to get the machine watcher done. but there are no calls to anything when the machine watcher fires, so no verification to do AFAICS
[07:25] <wrtp> TheMue: i suppose you could put in a fake call to OpenPort for the time being, to be changed later.
[07:27] <TheMue> wrtp: Yep, that's what I meant. The Py firewall gets a provider and I reduced it to the three methods of the PortManager interface. Will see how I can temoporarilly inject something similar here and remove it later.
[07:42] <wrtp> TheMue: i'm doing the port manager implementation in ec2, and i think the Environ port manager interface might look something like this: http://paste.ubuntu.com/1087531/
[07:42] <TheRealMue> wrtp: So, changed client.
[07:43] <wrtp> TheMue: did you see my message a few seconds ago?
[07:43] <wrtp> oh yeah, you should've
[07:43] <TheMue> wrtp: About the port manager interface? Yes, just looking at it
[07:44] <wrtp> TheMue: in fact, scratch that, i think it's not easy to implement well in ec2
[07:45] <TheMue> wrtp: So SetPorts() would ensure that only the passed ports are open afterwards?
[07:45] <wrtp> TheMue: yeah, but i think it's wrong
[07:46] <wrtp> TheMue: i think this is better: http://paste.ubuntu.com/1087535/
[07:46] <TheMue> wrtp: Today the FirewallManager retrieves the current real state, compares it to the wanted state and builds the diffs to explicitely open and close the ports.
[07:46] <wrtp> TheMue: i don't think it needs to do that
[07:47] <wrtp> TheMue: apart from at the very beginning
[07:47] <TheMue> wrtp: ???
[07:47] <TheMue> wrtp: The new interface matches exactly to that.
[07:47] <wrtp> TheMue: it only needs to do the diff once, when the firewaller starts up, i think.
[07:48] <wrtp> TheMue: from then on it knows the "real" provider state, and can just apply OpenPorts and ClosePorts methods as the State changes
[07:49] <wrtp> TheMue: i.e. it will need to call Ports once only
[07:49] <TheMue> wrtp: Understand, yes.
[07:49] <TheMue> wrtp: In todays model the provisioner called individual methods after each service and machine change, so a different approach
[07:50] <wrtp> TheMue: yes - the difference is that, if you follow my sketch, we keep track of the state in one place, so we know exactly what's going on at all times
[07:52] <wrtp> TheMue: BTW the reason that SetPorts is a bad idea is that the ec2 primitives are AuthorizeSecurityGroup and RevokeSecurityGroup - there's no way to set the entire set of permissions of a security group at once.
[09:15] <wrtp> fwereade_, TheMue: what do you think should happen to a machine's open ports if it's restarted on a different instance?
[09:16] <wrtp> niemeyer: ^
[09:17] <wrtp> niemeyer: mornin' BTW
[09:21] <fwereade_> wrtp, hmm, given that that *can* happen... are we not in a situation where we *cannot* depend on our local state to know what ports are really open?
[09:21] <fwereade_> wrtp, this is not a solution but it does maybe feel like a fundamental problem with the maintain-local-state approach...
[09:21] <fwereade_> niemeyer, morning
[09:22] <wrtp> fwereade_: as currently conceived, the machine's open ports are independent of its instance
[09:23] <wrtp> fwereade_: but currently when a new instance is started, it ensures that the machine's group has no permissions
[09:23] <fwereade_> wrtp, I think that is a restatement of the problem?
[09:24] <fwereade_> wrtp, the *obvious* answer is to put a watch on a machine's instance ID, but I'm not sure it's a *good* one
[09:24] <wrtp> fwereade_: yeah, i think that's right
[09:24] <fwereade_> wrtp, however I don;t think we have any other way of telling
[09:24] <fwereade_> wrtp, wait a mo
[09:25] <fwereade_> wrtp, is it easy to reuse the security group from the original machine?
[09:25] <wrtp> fwereade_: i think perhaps it's up to the provisioner to change the port settings for a machine when it starts an instance
[09:25] <wrtp> fwereade_: it *doesn* use the security group from the original machine
[09:25] <wrtp> s/doesn/does/
[09:26] <wrtp> fwereade_: but currently it will zero the perms when the instance starts
[09:26] <fwereade_> wrtp, ah, but it clears it out?
[09:26] <wrtp> yeah
[09:26] <wrtp> fwereade_: i'm thinking that it shouldn't
[09:26] <fwereade_> wrtp, hmmmmmmm, so, consider the lifecycle of the unit agent on the new machine
[09:26] <fwereade_> wrtp, that will start up, open ports, blah blah
[09:26]  * wrtp is considering
[09:26] <fwereade_> wrtp, won't it Just Work already?
[09:27] <fwereade_> wrtp, I think it might :)
[09:27] <wrtp> fwereade_: it would *if* all the security groups from a previous instance of the environment had been destroyed
[09:27] <wrtp> fwereade_: but i'm not sure we can guarantee that
[09:28] <wrtp> fwereade_: thus i think that when starting a new instance, the PA should perhaps call Ports and ClosePorts to clear out any old cruft
[09:28] <wrtp> s/starting a new instance/starting a new machine/
[09:29] <wrtp> fwereade_: i *think* that would solve the problem
[09:29] <wrtp> niemeyer_: yo!
[09:29] <TheMue> wrtp: Kind of CloseAllPorts() sounds good, yes
[09:29] <wrtp> TheMue: env.ClosePorts(m, m.Ports())
[09:29] <wrtp> TheMue: (with error checking of course :-])
[09:30] <fwereade_> wrtp, I'm confused: I thought you said that the perms *were* zeroed whenever we start an instance
[09:30] <wrtp> TheMue: that's essentially what it does now, behind the scenes
[09:30] <wrtp> fwereade_: they are, by the ec2 environ
[09:30] <wrtp> fwereade_: but that means we can create a new instance for an existing machine
[09:30] <fwereade_> wrtp, ok, so what doesn't already do the Right Thing?
[09:30] <TheMue> wrtp: You can't pass m.Ports()
[09:31] <wrtp> TheMue: m.Ports would return an error
[09:31] <wrtp> oops, env.Ports(m) of course
[09:31] <fwereade_> wrtp, if and when that machine needs some ports opened, it'll do an open-port in a hook, and... oh
[09:31] <fwereade_> wrtp, the unit will say "meh, those ports are already open, no state changes here!"
[09:31] <wrtp> fwereade_: this was the source of my original question
[09:32] <wrtp> fwereade_: i'm not sure what behaviour we *want* here
[09:32] <wrtp> fwereade_: perhaps a new instance *should* always come up with no open ports
[09:32] <fwereade_> wrtp, so actually we need the unit agent to realise when *it* is being started on a fresh machine, and clear out its own ports to begin with, so the Right Thing happens when the hooks reopen them
[09:33] <fwereade_> wrtp, I think new instances should certainly come up with no open ports
[09:33] <fwereade_> wrtp, I'm pretty sure the difficulty is at the unit agent level
[09:33] <wrtp> fwereade_: given that the PA is starting the new instance, it's in a good position to clear out the ports first
[09:33] <fwereade_> wrtp, I thought that always happened already?
[09:33] <TheMue> wrtp: Exactly
[09:33] <wrtp> fwereade_: it does currently, but i wasn't sure if it should
[09:34] <fwereade_> wrtp, I guess that ideally this *should* be done by the PA rather than by the environ
[09:34] <wrtp> fwereade_: i'm now thinking the current behaviour is correct
[09:34] <wrtp> fwereade_: well, yeah
[09:34] <wrtp> fwereade_: that would seem better
[09:34] <fwereade_> wrtp, because then we won't need every single environ to mess with ports on instance start
[09:35] <wrtp> fwereade_: well, the same code will be executed - it'll just be called from the PA
[09:35] <wrtp> ahh, but...
[09:35] <fwereade_> wrtp, yeah, but we only have to write it once instead of N times
[09:35] <wrtp> this all interacts with the firewall code
[09:36] <fwereade_> wrtp, and the firewall code will then get an inaccurate view of state?
[09:36] <wrtp> because the firewall is keeping track of what ports are supposed to be open
[09:36] <wrtp> fwereade_: yeah
[09:36] <fwereade_> wrtp, I don't *think* it matters if we depend on the UA doing the Right Thing wrt closing all ports when it starts up on a fresh machine
[09:36] <TheMue> wrtp: that's its task
[09:37] <wrtp> fwereade_: actually, i think you're right
[09:37] <wrtp> fwereade_: if the UA does it, we have no problems
[09:37] <wrtp> fwereade_: and the firewaller doesn't have to keep track of instance ids
[09:37] <fwereade_> wrtp, yep, think so
[09:38] <wrtp> fwereade_: then *all* port opening and closing is done via the state open/close port
[09:38] <fwereade_> wrtp, yeah, exactly
[09:38] <fwereade_> wrtp, the firewaller can watch that alone and it'll catch up when it becomes important to
[09:38] <wrtp> fwereade_: and the environ won't clear out ports when starting a new instance
[09:39] <fwereade_> wrtp, the environs should still clear out ports
[09:39] <fwereade_> wrtp, ah wait
[09:39] <wrtp> yeah
[09:39] <wrtp> there's a difficulty
[09:40] <wrtp> no, it's ok i think
[09:40] <wrtp> fwereade_: the PA clears out ports when it starts a new *machine*
[09:40] <wrtp> fwereade_: because machine ids are never reused
[09:41] <wrtp> fwereade_: thus we ensure that all new machines start in a known state, and the firewaller can track them properly.
[09:42] <fwereade_> wrtp, I think that clearing them at *instance* start time is the Right Thing: I don't see any benefit to keeping the ports open while launching the machine
[09:42] <fwereade_> wrtp, the UA will clear out the desired ports in state when it comes up
[09:42] <fwereade_> wrtp, and at that point the firewaller will be back in sync
[09:43] <wrtp> fwereade_: yes, that sounds reasonable
[09:43] <wrtp> fwereade_: if *slightly* tricksy
[09:44] <wrtp> fwereade_: i think StartInstance should document that the ports for the machine id will be closed when it's called.
[09:45] <fwereade_> wrtp, honestly this feels like a job for an Environ struct type that tells an internal EC2-or-whatever env to (1) StartInstance, (2) CloseAllPorts
[09:46] <fwereade_> wrtp, StartInstance having to magically mess with ports in every provider STM like a recipe for bugs
[09:46] <wrtp> fwereade_: s/struct type/function/ ?
[09:46] <fwereade_> wrtp, IMO having the real environ accessible for people to mess with is similarly a recipe for bugs, but YMMV
[09:46] <wrtp> fwereade_: my mileage does :-)
[09:47] <wrtp> fwereade_: tbh i'd be happy for the PA to implement that logic
[09:47] <fwereade_> wrtp, IMO `env.StartInstance(...` rather than StartInstance(env, ...` not not sufficiently obviously a bug
[09:47] <wrtp> fwereade_: it's very straightforward, and then there's no hidden interaction between StartInstance and ClosePorts.
[09:48] <wrtp> fwereade_: nothing else calls StartInstance
[09:48] <wrtp> afaik
[09:48] <wrtp> fwereade_: so there's really no need for another layer
[09:48] <fwereade_> wrtp, we'll see
[09:49] <wrtp> fwereade_: for the time being, i'll implement Ports, OpenPorts and ClosePorts, and remove the port closing logic from StartInstance
[09:49] <wrtp> fwereade_: i think that should be sufficient
[09:50] <niemeyer_> wrtp, fwereade_: Heya!
[09:50] <wrtp> niemeyer_: does that sound reasonable?
[09:50] <fwereade_> niemeyer_, heyhey
[09:50] <niemeyer_> wrtp: Sorry, I wasn't following
[09:50] <niemeyer_> wrtp: Breakfast made a lot of sense, though :-)
[09:50] <wrtp> lol
[09:50] <fwereade_> wrtp, IMO any situation in which you're saying "a call to Foo must be immediately followed by a call to Bar" is a bug waiting to happen
[09:51]  * fwereade_ shrugs
[09:51] <wrtp> niemeyer_: perhaps you could read over the recent conversation
[09:51] <wrtp> fwereade_: only in the context of the provisioner is that true
[09:51] <niemeyer_> wrtp: Will definitely do, but I have to take Ale to work first, as she's starting in a few minutes.. I'll be back soon, though
[09:51] <fwereade_> wrtp, and on bootstrap?
[09:51] <wrtp> niemeyer_: np
[09:51] <wrtp> fwereade_: that's just a specialised kind of provisioning :-)
[09:52] <fwereade_> wrtp, as you like
[09:52] <wrtp> fwereade_: we're only talking about 3 lines of code in two places here...
[09:52] <TheMue> wrtp: line 24 of http://paste.ubuntu.com/1087489/, how would you manage the watcher of all units for a machine? based on your outline I only see one per machine.
[09:53] <fwereade_> wrtp, one of which you apparently forgot about
[09:53] <fwereade_> wrtp, bug waiting to happen
[09:53] <wrtp> fwereade_: there are many bugs waiting to happen :-)
[09:54] <fwereade_> wrtp, which is why in general I prefer to make the ones I can see unpossible ;p
[09:54] <wrtp> TheMue: there's one units watcher per machine. then line 36 starts a new watcher for any new unit on a given machine
[09:54] <wrtp> fwereade_:
[09:55]  * wrtp finds that less bugs come from less code
[09:55] <TheMue> wrtp: ah, so I misunderstood the plural sentence
[09:56] <fwereade_> wrtp, I don't think we're going to convince one another here
[09:56] <wrtp> TheMue: yeah by "machine units watcher" i meant a watcher to watch the units on a given machine
[09:56] <TheMue> wrtp: That definitely makes more sense
[09:57] <wrtp> fwereade_: you're probably right :-|
[09:57] <TheMue> wrtp, fwereade_: have to be afk for a moment, once again daddy-daughter-taxi
[09:59] <wrtp> fwereade_: there's just as many bugs waiting to happen with a Environ shim BTW - you'd need to remember to insert the shim that does the StartInstance magic.
[09:59] <wrtp> fwereade_: and then that shim wouldn't strictly implement environs.Environ, because it would do magic on StartInstance...
[10:00] <fwereade_> wrtp, yeah, environs.Environ is IMO the wrong thing to be exposing
[10:00] <fwereade_> wrtp, but I am not interested in reachitecting anything we don't *have* to at this stage
[10:00] <wrtp> fwereade_: the wrong thing to be exposing to what?
[10:00] <fwereade_> wrtp, so let's just drop it :)
[10:00] <wrtp> fwereade_: np
[10:00] <wrtp> fwereade_: i'm interested in your thoughts though
[10:02] <fwereade_> wrtp, they're not really relevant at this stage -- we made the decision to stick all the common stuff into the EC2 provider ages ago
[10:02] <wrtp> fwereade_: the common stuff can easily be factored out later while retaining the same environs.Environ interface.
[10:02] <wrtp> fwereade_: i think
[10:02] <fwereade_> wrtp, we'll worry about that when we have to
[10:02] <wrtp> fwereade_: my thought too
[10:11] <niemeyer_> fwereade_, wrtp: I'm not sure I undertand what's the last consensus, despite the fact I've read the backlog
[10:11] <wrtp> niemeyer_: as i understand it, the consensus is this:
[10:12] <wrtp> niemeyer_: 1) we add these methods to environs.Environ: http://paste.ubuntu.com/1087700/
[10:12] <fwereade_> wrtp, niemeyer_: clear all provider ports on instance start; clear all state ports on UA start; firewaller will catch up when it needs to
[10:13] <fwereade_> wrtp, niemeyer_: AIUI ;)
[10:13] <wrtp> niemeyer_: 2) we change the ec2 StartInstance so that it doesn't automatically clear out machine ports
[10:13] <niemeyer_> LOL
[10:14] <niemeyer_> Looks like there's no consensus indeed
[10:14] <wrtp> niemeyer_: we're not in conflict there
[10:14] <wrtp> niemeyer_: the question is *where* the provider ports get cleared out
[10:14] <niemeyer_> "clear all provider ports on instance start" != "change the ec2 StartInstance so that it doesn't automatically clear out machine ports"
[10:14] <wrtp> niemeyer_: 3) make the PA clear out ports when it starts a new instance
[10:15] <wrtp> niemeyer_: this is so that there's no behind-the-scenes interaction between StartInstance and the open ports
[10:15] <wrtp> niemeyer_: but i'm happy for StartInstance to be documented as closing any machine ports too
[10:16] <wrtp> niemeyer_: 4) make the UA clear out state ports on unit start
[10:16] <niemeyer_> Huh
[10:16] <wrtp> niemeyer_: oops.
[10:16] <niemeyer_> That seems to turn a trivial issue into a multi-faceted problem on three different entities
[10:16] <wrtp> niemeyer_: 3) make the PA clear out ports when it starts a new *machine*.
[10:17] <wrtp> niemeyer_: what does?
[10:17] <niemeyer_> 1+2+3+4
[10:17] <niemeyer_> What's the issue we have?
[10:18] <niemeyer_> wrtp: (1) looks good, btw
[10:18] <wrtp> niemeyer_: one issue is: what happens when the PA starts a new instance for a machine that had an instance before?
[10:18] <wrtp> niemeyer_: open ports are attached to machines, not instances
[10:19] <niemeyer_> wrtp: Not exactly
[10:19] <wrtp> niemeyer_: and it would be nice if the firewaller doesn't have to track instances
[10:19] <niemeyer_> wrtp: Both contain data about it
[10:19] <niemeyer_> wrtp: But, ok..
[10:19] <niemeyer_> wrtp: The provisioner doesn't care about ports at all
[10:20] <niemeyer_> wrtp: It's not its problem
[10:20] <wrtp> niemeyer_: there is a problem
[10:20] <niemeyer_> wrtp: Ok.. go on
[10:21] <wrtp> niemeyer_: if the provisioner starts a new instance for a machine, we want to close all the ports for that machine
[10:21] <wrtp> niemeyer_: probably
[10:21] <niemeyer_> wrtp: No, we don't
[10:21] <wrtp> niemeyer_: although we could choose not to
[10:21] <niemeyer_> wrtp: Machines should be started with no open ports
[10:21] <wrtp> niemeyer_: fwereade_ thought we should. i'm on the fence.
[10:21] <niemeyer_> Sorry
[10:21] <niemeyer_> Bad term
[10:21] <niemeyer_> wrtp: Instances should be started with no open ports
[10:21] <wrtp> niemeyer_: exactly
[10:21] <niemeyer_> wrtp: That's a problem for the environment to solve
[10:21] <wrtp> niemeyer_: so we want to close all the ports for the existing machine
[10:22] <wrtp> niemeyer_: in the state
[10:22] <niemeyer_> wrtp: No!
[10:22] <niemeyer_> wrtp: The state is something else!
[10:22] <wrtp> niemeyer_: so we'd have a machine in the state with open ports, but the instance would have no open ports?
[10:22] <niemeyer_> wrtp: This was just about the environment itself..
[10:22] <niemeyer_> wrtp: I think I'm missing the actual issue
[10:23] <niemeyer_> wrtp: Yeah, I was missing indeed.
[10:23] <niemeyer_> wrtp: Okay
[10:23] <niemeyer_> wrtp: So there are two separate issues
[10:23] <niemeyer_> wrtp: One of them concerns management of ports of the instance.. the other about management of ports in the state
[10:24] <wrtp> yup
[10:24] <niemeyer_> wrtp: Which one are we talking about?
[10:24] <wrtp> both
[10:24] <wrtp> niemeyer_: how they interact with each other
[10:24] <niemeyer_> wrtp: Okay, so can we please separate them up
[10:24] <niemeyer_> wrtp: Not really.. they are independent issues
[10:25] <wrtp> niemeyer_: there is no management of ports of the instance
[10:25] <niemeyer_> wrtp: !?
[10:25] <wrtp> niemeyer_: there is management of ports of the *machine*
[10:26] <wrtp> niemeyer_: OpenPorts(machineId int, ports []state.Port) error
[10:26] <niemeyer_> wrtp: Oops
[10:26] <niemeyer_> wrtp: Yeah, just now I realize that.. this seems wrong
[10:26] <niemeyer_> wrtp: Environ manages instances, not machines
[10:27] <wrtp> niemeyer_: so we manufacture a new security group every time we start a new instance?
[10:27] <niemeyer_> wrtp: Is there any other way?
[10:27] <niemeyer_> wrtp: We talkeda about this yesterday
[10:27] <wrtp> niemeyer_: well, currently we name the instance group after the machine id
[10:27] <wrtp> niemeyer_: but i think you're suggesting that we don't do that
[10:28] <niemeyer_> wrtp: I'm suggesting something else.. I'm suggesting that Environ manages instances, not machines. Do we agree on that?
[10:29] <wrtp> niemeyer_: currently the Environ uses the machine id for some things
[10:29] <niemeyer_> wrtp: Do we agree on that?
[10:29] <wrtp> niemeyer_: "manages", yes.
[10:29] <niemeyer_> wrtp: Okay, thanks
[10:30] <wrtp> niemeyer_: but setting the ports for a machine isn't "managing" the machine, i think.
[10:31] <niemeyer_> wrtp: So the question is what interface makes sense given that. I understand the ec2 implementation does certain things a given way
[10:31] <niemeyer_> wrtp: It's managing the instance information for sure
[10:31] <wrtp> niemeyer_: the ec2 implementation is a fairly close reflection of the python implementation in this respect
[10:31] <niemeyer_> wrtp: It's controlling the firewall data associated with the instance
[10:32] <wrtp> niemeyer_: currently it's controlling the firewall data associated with the *machine*
[10:32] <niemeyer_> wrtp: Not really
[10:32] <wrtp> niemeyer_: because the security group is named after the machine, not the instance
[10:32] <niemeyer_> wrtp: The firewall data associated the machine is controlled via state
[10:32] <niemeyer_> wrtp: It's not doing anything with that
[10:32] <wrtp> ?
[10:32] <niemeyer_> ?
[10:33] <niemeyer_> Can't answer that :)
[10:33] <wrtp> :-)
[10:33] <wrtp> i could also say "the firewall associated with the machine is controlled by the provider"
[10:34] <niemeyer_> wrtp: Machine lives in *State
[10:35] <niemeyer_> wrtp: Everythign about the Machine is controlled via *State
[10:35] <wrtp> ok, s/machine/machine id/
[10:35] <niemeyer_> wrtp: Instance is the name we give to a provider's virtual machine
[10:35] <niemeyer_> wrtp: Environ.OpenPort manages the Instance, not the Machine
[10:35] <niemeyer_> wrtp: That's what I'm trying to  point out
[10:35] <wrtp> niemeyer_: in the ec2 implementation that's not true
[10:35] <niemeyer_> wrtp: In all environs/* implementations, that is true
[10:35] <wrtp> niemeyer_: because the security group is associated with the machine id, not the instance id
[10:35] <niemeyer_> wrtp: That's completely irrelevant.. we could name it as "abacate"
[10:35] <wrtp> niemeyer_: and there can be several instances for a given machine id
[10:36] <niemeyer_> wrtp: It's still associated with the Instance, and it's still managing the firewall for the Instance
[10:36] <niemeyer_> wrtp: Machine is an abstraction we decided on for referring to the *State information
[10:36] <wrtp> niemeyer_: originally, i had Instance.OpenPort
[10:36] <wrtp> niemeyer_: but that seems wrong
[10:36] <niemeyer_> wrtp: Yes, and you changed that to make it more convenient
[10:36] <wrtp> niemeyer_: not more convenient, more true to reality
[10:37] <niemeyer_> wrtp: The fact we use machine ids on the security group name is an implementation detail.. the fact we have to *use* security groups like that is also an implementation detail
[10:37] <niemeyer_> wrtp: In the future this will live within the instance
[10:37] <wrtp> niemeyer_: in that case, the Environ interface must change
[10:37] <wrtp> niemeyer_: because the PA won't be able to control it from outside
[10:37] <niemeyer_> wrtp: Yes, it will have to change eventually, by simply losing these methods
[10:37] <wrtp> niemeyer_: exactly.
[10:38] <wrtp> niemeyer_: so for the time being, this is what we've got - the ports for an instance are managed by changing attributes associated with the machine id, not the instance.
[10:38] <niemeyer_> wrtp: But disagreeing that Environ controls Instances is a blocker on that conversation.. we StartInstance, we StopInstance, we ask for Instance and AllInstances..
[10:39] <wrtp> niemeyer_: i certainly didn't disagree that Environ controls Instances
[10:39] <niemeyer_> wrtp: That may be the best way to move forward, but it's hard to get there if we can't even agree on obvious facts
[10:40] <wrtp> niemeyer_: the issue of the interaction of machine id and the Environ is a tricky one
[10:40] <wrtp> niemeyer_: why are we passing the machine id into StartInstance at all?
[10:40] <niemeyer_> wrtp: To get the machine id into the state initialization
[10:40] <niemeyer_> wrtp: That was the real reason it got there
[10:41] <wrtp> niemeyer_: so maybe it *is* wrong that the instance's security group is named after the machine id
[10:42] <wrtp> niemeyer_: (but it's going to be a bit awkward to come up with new unique names)
[10:42] <niemeyer_> wrtp: I see it merely as an implementation convenience as we need something unique per machine
[10:42] <wrtp> niemeyer_: per machine or per instance?
[10:42] <niemeyer_> wrtp: This is completely hidden away from the interface
[10:42] <niemeyer_> wrtp: Per instance, sorry
[10:42] <niemeyer_> wrtp: I also see it as a nasty hack we have to do for AWS
[10:42] <wrtp> niemeyer_: currently, it's *not* unique per instance
[10:42] <wrtp> niemeyer_: sure
[10:43] <wrtp> niemeyer_: i agree it's not great.
[10:43] <niemeyer_> wrtp: Surely it must be unique.. a security group name is unique, and we have one security group per instance..
[10:43] <wrtp> niemeyer_: we can have multiple instances using the same security group
[10:44] <wrtp> niemeyer_: if they're started with the same machine id
[10:44] <wrtp> niemeyer_: there's nothing in the Environ API that prevents that
[10:44] <niemeyer_> wrtp: Oh, you mean if there are multiple environments in a single AWS account?
[10:44] <niemeyer_> wrtp: Fuck, that's a bug
[10:44] <wrtp> niemeyer_: no
[10:45] <wrtp> niemeyer_: if i call StartInstance(1); StartInstance(1)
[10:45] <niemeyer_> wrtp: Oh, wait.. the security group has the env name in it too
[10:45] <wrtp> niemeyer_: yeah
[10:45] <niemeyer_> wrtp: Oh, sure.. that'd be broken usage of the environment
[10:45] <wrtp> niemeyer_: if i do the above, i'll get two instances sharing the same security group
[10:46] <wrtp> niemeyer_: not necessarily, if the first instance has stopped for some reason
[10:46] <wrtp> niemeyer_: and the PA is restarting it
[10:46] <niemeyer_> wrtp: Stopped or destroyed?
[10:46] <wrtp> niemeyer_: crashed
[10:46] <niemeyer_> wrtp: Crashed and destroyed or crashed and stopped?
[10:46] <niemeyer_> wrtp: Both are possible
[10:47] <wrtp> niemeyer_: crashed and stopped.
[10:47] <wrtp> niemeyer_: but you're going to say that the PA won't restart in that case, right?
[10:47] <niemeyer_> wrtp: That means the instance is still alive
[10:47] <niemeyer_> wrtp: Yes, it shouldn't
[10:48] <wrtp> [11:44:30] <wrtp> niemeyer_: there's nothing in the Environ API that prevents that
[10:48] <wrtp> it's just a convention upheld by the PA
[10:48] <niemeyer_> wrtp: Sure.. I don't undertand what your underlying point is, though. This is our backyard.. are you suggesting we implement a second *State within the environment?
[10:48] <niemeyer_> wrtp: Just so we can control the correct use of *State?
[10:48] <wrtp> niemeyer_: which is why i thought it might be better to make the environ API better reflect the reality of what's underneath
[10:49] <wrtp> niemeyer_: (and as a bonus, it makes the firewaller code easier)
[10:49] <niemeyer_> wrtp: Sorry, I can buy that.. that's completely unrelated to the point above, though
[10:50] <wrtp> niemeyer_: i'm suggesting that the OpenPorts calls associate ports with machine ids, not instances, because that's what's actually going on underneath
[10:50] <niemeyer_> wrtp: "Environ has an unsafe API, thus we can make the API simpler to use" makes no sense to me
[10:50] <wrtp> niemeyer_: then the API isn't unsafe
[10:51] <wrtp> niemeyer_: because it's not trying to pretend that ports are associated directly with instances.
[10:51] <niemeyer_> wrtp: How come? You're saying we can have multiple machines associated with a single security group, and then we associated ports with whatever machine is using, and that's fine!?
[10:51] <niemeyer_> wrtp: This is going in a pretty strange direction
[10:51] <niemeyer_> wrtp: If our implementation can't control the association between security group and instance correctly, that's a MAJOR PROBLEM.
[10:51] <wrtp> s/multiple machines/multiple instances/ and yes, that's ok i think
[10:53] <wrtp> niemeyer_: our implementation controls the association between security group and port, not between instance and port. that's the basic difficulty.
[10:53] <niemeyer_> wrtp: Agreed. Cool, that's a good baseline
[10:54] <wrtp> niemeyer_: the "bonus" above is that the firewaller wouldn't need to keep track of every machine's allocated instance, because all it needs to change is the ports associated with a *machine* not an instance.
[10:55] <niemeyer_> wrtp: machine.InstanceId()? How is doing that any harder than using a machine id?
[10:55] <wrtp> niemeyer_: FWIW the open_port code in the python version takes an instance as an argument but only ever uses the machine id
[10:55] <wrtp> niemeyer_: because the instance id can come and go
[10:56] <wrtp> niemeyer_: so it's one more thing to track
[10:56] <wrtp> niemeyer_: i had a sketch version of the firewaller code that did that
[10:57] <wrtp> http://paste.ubuntu.com/1087751/
[10:57] <niemeyer_> wrtp: We don't have to "track" that, I think.. if the instance id "goes", everything inside it is gone too.
[10:58] <wrtp> vs: http://paste.ubuntu.com/1087753/
[10:58] <wrtp> niemeyer_: yes, so that firewaller needs to know when that happens, right?
[10:58] <wrtp> niemeyer_: and it needs to know when the machine is allocated a new instance id too
[10:59] <niemeyer_> wrtp: No, the firewaller only needs to know when a new port is opened or closed, and act accordingly to open and close ports in the environment, as far as I understand it.
[10:59] <niemeyer_> wrtp: StartInstance creates an instance with zero open ports
[11:00] <niemeyer_> wrtp: What will open the ports in the state are the units that run within that instance that was started
[11:00] <niemeyer_> wrtp: That's what the firewaller must react to
[11:03] <wrtp> niemeyer_: i think i see a problem with that
[11:03] <wrtp> niemeyer_: so... an instance gets destroyed; the PA notices that and allocates a new instance. the firewaller is thus far blissfully unaware, right?
[11:04] <niemeyer_> wrtp: Yes
[11:04] <niemeyer_> (I'm supposing, at least)
[11:04] <wrtp> niemeyer_: on the new instance, the UA starts up, notices that some ports are open that shouldn't be, so it closes them. it then runs the start hook, which opens some ports again
[11:05] <wrtp> niemeyer_: the new ports and the old ports are identical, so the firewaller might see no change
[11:05] <wrtp> niemeyer_: but given that we're operating on the instance, not the machine, that would mean we won't have changed the firewall settings for the new instance
[11:07] <niemeyer_> wrtp: This problem exists irrespective of what the API looks like. Semantically, these ports should be closed. It's not fine to say "Oh, it's the same machine so I'll just leave stuff open.."
[11:08] <wrtp> niemeyer_: i don't think the problem exists if ports are associated with a machine id
[11:08] <wrtp> niemeyer_: the problem with the above is that the ports on the new instance won't be opened
[11:09] <niemeyer_> wrtp: Again, it is not fine to start the new machine with open ports, despite the fact the unit didn't open it
[11:10] <wrtp> niemeyer_: i wasn't suggesting that we did
 niemeyer_: the new ports and the old ports are identical, so the firewaller might see no change
[11:10] <niemeyer_> wrtp: This exists no matter what the API looks like.. I don't know what you are suggesting then
[11:13] <wrtp> niemeyer_: a suggestion is that StartInstance is documented to close all the ports for its machine id
[11:13] <niemeyer_> wrtp: s/machine id/started instance/
[11:14] <wrtp> niemeyer_: no, that's the difficulty.
[11:14] <niemeyer_> wrtp: Okay, clearly I'm missing what it is.. what is the difficulty in closing the ports for an instance?
[11:16]  * wrtp tries to get his head in order :-)
[11:17] <wrtp> niemeyer_: suppose we had an implementation of Environ that really did associate ports with instances directly
[11:17] <wrtp> niemeyer_: as the API would suggest
[11:18] <wrtp> niemeyer_: in that case, we *need* to adjust the firewall settings on a new instance when a machine's instance changes
[11:19] <wrtp> niemeyer_: so we'd need to track the instance id for a machine to do that
[11:20] <wrtp> niemeyer_: we *could* do that
[11:20] <niemeyer_> wrtp: We do track instance id for machines. We also do need to adjust the firewall setting on the new instance, both to ensure it has no ports open when it started, and also to ensure that the units get a clean state when they get up.
[11:21] <niemeyer_> wrtp: Both of these are already true, and we're not even talking about the API.
[11:23] <wrtp> niemeyer_: the PA and the UA can do that between them. the PA to adjust the ports before it starts a new instance, the UA to make the state hold what it should.
[11:24] <niemeyer_> wrtp: That sounds good.. the PA should simply zero out all ports on *state* specifically (not the Environ) when starting the instance
[11:24] <wrtp> niemeyer_: one problem with having the firewaller doing it is that it the machine will be started and running before the firewaller gets around to closing the ports
[11:24] <wrtp> niemeyer_: ah, yes
[11:25] <wrtp> niemeyer_: that sounds good
[11:25] <wrtp> niemeyer_: there's still a race, but i'm sure that in any reality we know, it'll be won by the firewaller
[11:26] <Aram> hey,
[11:26] <niemeyer_> wrtp: Indeed. We can be pragmatic for now and just have a TODO in the code saying it'd be extremely weird to have that race happening.
[11:26] <niemeyer_> wrtp: It's also easy to avoid the race in the future when we choose to
[11:26] <wrtp> niemeyer_: nevertheless, doing things this way does mean we don't *necessarily* have to track instance ids in the firewaller
[11:27] <wrtp> niemeyer_: yeah
[11:27] <wrtp> Aram: hiya
[11:27] <niemeyer_> wrtp: Right, and we can still have the Environ interface operating in terms of instances
[11:27] <wrtp> niemeyer_: aargh!
[11:28] <niemeyer_> wrtp: Heh
[11:28] <niemeyer_> wrtp: Sorry, you won't convince me that
[11:28] <niemeyer_> environ.OpenPort(machineId)
[11:28] <wrtp> niemeyer_: if the Environ interface OpenPort and ClosePort methods operate on instances, then we *do* have to track instance ids in the firewaller
[11:28] <niemeyer_> is so much better than
[11:29] <niemeyer_> id, err := machine.InstanceId()
[11:29] <niemeyer_> environ.OpenPort(instance)
[11:29] <TheMue> wrtp: When the PA sets the instance id for a machine this could be watched so we know the old one for closing and the new one for opening.
[11:29] <wrtp> environ.OpenPort(machineId) is operating on a machine! there's no instance there...
[11:29] <niemeyer_> wrtp: Gosh..
[11:29] <TheMue> Aram: Hi
[11:30] <niemeyer_> wrtp: This is getting repetitive
[11:30] <wrtp> niemeyer_: v sorry
[11:30] <niemeyer_> wrtp: Machine leaves in *State
[11:30] <niemeyer_> lives
[11:30] <niemeyer_> wrtp: To change a *Machine OpenPorts, you need to use the *State
[11:30] <wrtp> niemeyer_: that OpenPort sig had "machineId" in it
[11:30] <wrtp> niemeyer_: ok, i see your p.o.v.
[11:31] <wrtp> niemeyer_: i'll rephrase
[11:31] <niemeyer_> wrtp: The Environ manages *Instances
[11:31] <niemeyer_> wrtp: Only *Instances..
[11:31] <wrtp> environ.OpenPort(machineId) isn't operating on an instance! there's no instance there...
[11:31] <niemeyer_> wrtp: It's an implementation detail that an AWS security group uses a Machine.Id in its name
[11:31]  * TheMue prefers the instance id too as it's the representation of the physical instance
[11:32] <niemeyer_> wrtp: As soon as we bless this code base as Good, we'll have a massive number of new providers popping by
[11:32] <wrtp> TheMue: the difficulty is that the underlying environ isn't actually changing an attribute on the instance...
[11:32] <niemeyer_> wrtp: Despite this being a silly argument, I don't want to screw up on that interface, because then I'll have to argue with everybody else about this
[11:32] <wrtp> niemeyer_: ok...
[11:33] <wrtp> niemeyer_: so why aren't you suggesting Instance.OpenPort(port) ?
[11:33] <niemeyer_> Power outage.. on batteries
[11:33] <wrtp> niemeyer_: crossed fingers
[11:33] <niemeyer_> wrtp: As I mentioned earlier, it *sounds* to me like the implementation is simpler, given the nature of an Environ is, to have it on its interface
[11:34] <niemeyer_> wrtp: We're generally talking to the front wall
[11:34] <niemeyer_> wrtp: I definitely wouldn't have a strong argument against Instance.OpenPort, though
[11:34] <wrtp> niemeyer_: say we had a new provider that *did* associate ports directly with instances, our implementation could break, i think.
[11:35]  * TheMue 's wife calls for lunchtime, but thankfully I've catched up the discussion until here. It's very helpful.
[11:35] <wrtp> niemeyer_: well, in fact, your suggested interface makes that not easy, i think
[11:35] <wrtp> niemeyer_: because the provider would have to maintain its own mapping from machine id to instance id
[11:36] <niemeyer_> wrtp: Yes
[11:36] <niemeyer_> TheMue: Have a good one
[11:37] <wrtp> niemeyer_: it would be nice to be able to adjust the open ports for a machine *before* calling StartInstance
[11:37] <niemeyer_> wrtp: The provisioner worker can certainly do that
[11:49] <niemeyer_> Shit.. no break started to beep
[11:49] <niemeyer_> UPS, that is
[11:50] <wrtp> niemeyer_: eek
[12:48] <wrtp> hmm, dubious looking test failure:
[12:48] <wrtp> runtime: signal received on thread not created by Go.
[12:48] <wrtp> FAIL	launchpad.net/juju-core/state	8.222s
[12:48] <TheMue> iiihks
[12:49] <wrtp> TheMue: i can't reproduce it, sadly
[12:49] <TheMue> wrtp: there are two cgos: goyaml and gozk. maybe in there
[12:49] <wrtp> i also got a store test failure:
[12:49] <wrtp> server_test.go:63:
[12:49] <wrtp>     s.checkCounterSum(c, []string{"charm-info", curl.Series, curl.Name}, false, 1)
[12:49] <wrtp> server_test.go:83:
[12:49] <wrtp>     c.Errorf("counter sum for %#v is %d, want %d", key, sum, expected)
[12:49] <wrtp> ... Error: counter sum for []string{"charm-info", "oneiric", "wordpress"} is 0, want 1
[12:50] <wrtp> which also succeeded when i tried it again
[12:50] <wrtp> :-(
[12:52] <TheMue> Doesn't sound good.
[12:57] <wrtp> TheMue: just ran all the tests again and they all worked :-(
[12:59] <TheMue> wrtp: Monitored your memory, maybe a hanging process
[12:59] <TheMue> ?
[13:00] <wrtp> TheMue: i don't *think* so.
[13:01] <Aram> wrtp: also seen that failure.
[13:01] <Aram> in gozk, I recall.
[13:01] <Aram> hopefully it'll go away as we move away from Zk and cgo.
[13:02] <wrtp> Aram: +1
[13:23] <niemeyer> wrtp, Aram, TheMue, fwereade_: I'll attend that MongoDB conference in São Paulo tomorrow, and will be heading there this afternoon
[13:23] <fwereade_> niemeyer, cool, have fun
[13:23] <niemeyer> fwereade_: Thanks!
[13:24] <wrtp> niemeyer: ok, have a good one
[13:24] <Aram> niemeyer: have a good one, will you give a talk?
[13:24] <niemeyer> Aram: Yeah
[13:24] <wrtp> niemeyer: did you manage to get your demo thing working?
[13:24] <wrtp> niemeyer: with the X million documents...
[13:24] <niemeyer> wrtp: It's working, but still requires a few last minute fixes
[13:24] <niemeyer> wrtp: and I need slides too
[13:24] <wrtp> niemeyer: minor trivialities :-)
[13:24] <niemeyer> Planning on doing that on the trip today.. not smart, but the week was rushy
[13:24] <wrtp> niemeyer: i hope your laptop battery is working again
[13:25] <niemeyer> wrtp: Yeah, thankfully I got a new one in SF
[13:25] <TheMue> niemeyer: Will your slides later be at SlideShare?
[13:25] <niemeyer> wrtp: It's great to have a laptop again rather than a mobile desktop :-)
[13:25] <niemeyer> TheMue: I'll surely put them up somewhere
[13:25] <wrtp> niemeyer: how much did you end up paying?
[13:25] <TheMue> niemeyer: Great, appreciate it.
[13:27] <niemeyer> wrtp: Just under 100 USD IIRC
[13:27] <wrtp> niemeyer: that's loads better than the UK price.
[13:28] <niemeyer> wrtp: Yeah, it was really a lot cheaper
[13:28] <niemeyer> wrtp: and with the Prime thing, good delivery in a couple of days for free
[13:29] <niemeyer> hazmat: I don't have the slides up yet, but I can surely put them up somewhere if you'd like to use them
[13:49] <wrtp> niemeyer: initial dummy implementation of port opening, if you have time to have a look: https://codereview.appspot.com/6349097/
[13:49] <wrtp> fwereade_: ^
[13:50] <niemeyer> wrtp: Didn't we just agree to do it with *Instance?
[13:50] <wrtp> [12:34:31] <niemeyer_> wrtp: I definitely wouldn't have a strong argument against Instance.OpenPort, though
[13:50] <wrtp> i thought that meant you'd prefer it to be on machine id
[13:51] <niemeyer> wrtp: OpenPorts(machineId int
[13:51] <hazmat> niemeyer, that would be great
[13:51] <niemeyer> wrtp: That's not instance.OpenPort at all
[13:51] <niemeyer> hazmat: COol, will do
[13:51] <wrtp> niemeyer: indeed, it sounded like you'd prefer for it *not* to be Instance.OpenPort
[13:52] <wrtp> [12:33:54] <niemeyer_> wrtp: As I mentioned earlier, it *sounds* to me like the implementation is simpler, given the nature of an Environ is, to have it on its interface
[13:52] <niemeyer> wrtp: Yes, I'd prefer for it to be Environ.OpenPort indeed.. environ.OpenPort(inst, ports)
[13:53] <wrtp> niemeyer: huh? if it's just a method that takes an instance as argument, why not just have it as a method on that instance?
[13:53] <niemeyer> wrtp: LOL
 [12:34:31] <niemeyer_> wrtp: I definitely wouldn't have a strong argument against Instance.OpenPort, though
[13:53] <TheMue> funny
[13:54] <wrtp> niemeyer: if it's environ.OpenPort, i think it should take a machine id. if it takes an instance, then i think it should be an instance method.
[13:54] <niemeyer> wrtp: Those two things are completely unrelated
[13:54]  * TheMue would like Instance.OpenPorts(ports) or Environ.OpenPorts(instanceId, ports)
[13:55] <niemeyer>         StopInstances([]Instance) error
[13:55] <niemeyer>         Destroy(insts []Instance) error
[13:55] <niemeyer> etc
[13:55] <TheMue> ah
[13:55] <TheMue> wrtp: Yep, then Environ.OpenPorts(instance, ports)
[13:55] <wrtp> niemeyer: [12:28:38] <niemeyer_> environ.OpenPort(machineId) is so much better than [...] environ.OpenPort(instance)
[13:56] <wrtp> niemeyer: those are only like that because they take multiple instances
[13:56] <wrtp> niemeyer: if you could only stop a single instance at a time, i'd have done Stop()
[13:57] <niemeyer> wrtp: Heh
[13:57] <niemeyer> wrtp: You're doing the journalistic thing of quoting part of a sentence and inverting its meaning
[13:57] <niemeyer> Jul 12 08:28:30 <niemeyer_>     wrtp: Sorry, you won't convince me that
[13:57] <niemeyer> Jul 12 08:28:37 <niemeyer_>     environ.OpenPort(machineId)
[13:57] <niemeyer> Jul 12 08:28:48 <niemeyer_>     is so much better than
[13:57] <wrtp> niemeyer: i think i must have understood the wrong meaning to start with!
[13:57] <niemeyer> Jul 12 08:29:00 <niemeyer_>     id, err := machine.InstanceId()
[13:57] <niemeyer> Jul 12 08:29:07 <niemeyer_>     environ.OpenPort(instance)
[13:58] <niemeyer> wrtp: That's what I said.
[13:58] <wrtp> i don't see the connection between the last two lines
[13:58] <niemeyer> wrtp: Doesn't matter.. it's still not ok to invert the meaning of what I said
[13:58] <wrtp> niemeyer: that wasn't my intention, honest!
[13:59] <wrtp> niemeyer: you seemed to like OpenPort taking a machine id
[13:59] <wrtp> niemeyer: rather than an instance id
[13:59] <wrtp> niemeyer: so that's what i implemented
[13:59] <niemeyer> wrtp: Okay, so let's try to agree on things rather than manipulating quotes
[13:59] <niemeyer> wrtp: The environment deals with instances
[13:59] <wrtp> niemeyer: do you like "environ.OpenPort(machineId)" or not?
[13:59] <niemeyer> wrtp: not machines
[13:59] <niemeyer> wrtp: Giving an environment a machine id for it to figure which instance is associated with is wrong
[14:00] <niemeyer> wrtp: Forget the implementation of EC2.. we're designing the API
[14:00] <wrtp> niemeyer: ok, so i totally don't understand what you meant by that sentence above...
[14:00] <niemeyer> wrtp: Forget it
[14:00] <wrtp> niemeyer: done
[14:00] <wrtp> niemeyer: i'll put OpenPort as a method on Instance as i'd first intended, ages ago
[14:01] <niemeyer> wrtp: Let's try to understand each other rather than quotes from the past
[14:01] <TheMue> wrtp: To keep the environment consistent it should handle with instances, no machine ids.
[14:01] <niemeyer> wrtp: That sounds fine
[14:01] <niemeyer> wrtp: and elegant in fact
[14:01]  * TheMue likes a consistent interface (not in the sense of a go interface)
[14:01] <wrtp> niemeyer: the very first cut at environs/interface.go had it that way :-)
[14:02] <wrtp> niemeyer: it's not *quite* so easy for the firewaller to mock though.
[14:03] <niemeyer> wrtp: If the firewaller has a machine, it can query the instance from the environment and use it
[14:04] <wrtp> niemeyer: sure, it's not hard. in fact, if it just uses the dummy environ for tests, it might be trivial.
[14:06] <wrtp> niemeyer: oh, there's a problem
[14:06] <wrtp> niemeyer: currently i can't find the machine id from the instance
[14:06] <niemeyer> wrtp: Okay, I was waiting for that.. let's see if it's what I think
[14:06] <niemeyer> wrtp: Yeah, bingo
[14:06] <wrtp> niemeyer: i *can* do it, of course
[14:07] <wrtp> niemeyer: by querying the security groups for the instance
[14:07] <niemeyer> wrtp: We can definitely have a parameter of machineId in the instance to make the implementation simpler
[14:07] <niemeyer> Sorry
[14:07] <niemeyer> wrtp: We can definitely have a parameter of machineId in the instance method to make the implementation simpler
[14:07] <wrtp> niemeyer: in which method, sorry?
[14:08] <niemeyer> wrtp: Instance.OpenPort
[14:08] <wrtp> niemeyer: i guess
[14:08] <TheMue> niemeyer: So Instance.OpenPorts(machineId, ports)?
[14:08] <niemeyer> wrtp: We're arriving in the same design we have in Python
[14:08] <wrtp> TheMue: yeah
[14:08] <niemeyer> wrtp: Except the method is on Instance
[14:08] <TheMue> niemeyer: Indeed
[14:08] <niemeyer> Which sounds fine
[14:09] <TheMue> Ah, Mark is there
[14:10] <wrtp> niemeyer, TheMue: here's what i've got currently
[14:10] <wrtp> http://paste.ubuntu.com/1088025/
[14:11] <niemeyer> wrtp: Cool.. I'd still prefer to not have machineId there, but that'd be unnecessary purism at this point
[14:13] <niemeyer> wrtp: s/should/must/
[14:13] <niemeyer> wrtp: Otherwise, +1 to move forward with it
[14:14] <wrtp> niemeyer: i think that in dummy, i'll put the port map inside the instance, just to keep us honest.
[14:14] <wrtp> niemeyer: (in the proposal, the port map was in the state, to match ec2's implementation)
[14:14] <wrtp> niemeyer: does that sound reasonable?
[14:14] <niemeyer> wrtp: +1
[14:37] <wrtp> niemeyer, TheMue, fwereade_: hopefully this does the job: https://codereview.appspot.com/6349097/
[14:39] <TheMue> wrtp: First quick look is fine to me
[14:40] <wrtp> TheMue: thanks
[14:53] <fwereade_> wrtp, indeed, looks sensible I think, I'll try to give it a closer look a bit later
[14:59] <niemeyer> wrtp: LGTM with a point for consideration
[15:01] <wrtp> niemeyer: if we change that, i should change it all the way through.
[15:01] <wrtp> niemeyer: the intention was that the ops channel says that an operation is about to happen, not that it *has* happened
[15:01] <wrtp> niemeyer: thus it's ok to send on the channel outside of the lock
[15:02] <wrtp> niemeyer: thanks for the review BTW!
[15:02] <niemeyer> wrtp: I think it's problematic for the reason stated
[15:02] <niemeyer> wrtp: and we already have operations within the lock elsewhere
[15:04] <wrtp> niemeyer: yeah, i hadn't noticed that StartInstance sends within the lock.
[15:04] <wrtp> niemeyer: i was wary of deadlock, but it's probably ok
[15:05] <niemeyer> wrtp: If we ever face a deadlock, it'd probably be safer to do it afterwards, rather than before
[15:05] <niemeyer> wrtp: So that waits that get unblocked and act on state find what they exepct
[15:05] <niemeyer> expect
[15:05] <wrtp> niemeyer: maybe i should defer the channel send
[15:06] <wrtp> niemeyer: so that it happens even when there's an error
[15:06] <niemeyer> wrtp: Well, or just unlock earlier
[15:07] <wrtp> niemeyer: yeah, that looks ok given that hardly anything actually returns an error.
[15:07] <niemeyer> wrtp: Yeah, and if it panics we'll know it
[15:08] <wrtp> niemeyer: the only awkward bit is the "environment is already bootstrapped" error
[15:08] <wrtp> niemeyer: which will have to duplicate the send
[15:09] <wrtp> niemeyer: because some tests rely on receiving the operation even though there's an error. perhaps that should change though.
[15:12] <wrtp> niemeyer: tbh, i'm going to try sending within the lock. it makes the code easier to maintain, and there's no reason it should deadlock.
[15:14] <niemeyer> wrtp: Sounds good
[15:23] <niemeyer> Alright guys, lunch time
[15:23] <niemeyer> I'll head to São Paulo after lunhc
[15:27] <Aram> have fun niemeyer.
[15:28] <niemeyer> Aram: Cheers!
[15:28]  * niemeyer leaves.. see you soon
[15:51] <wrtp> fwereade_: am looking at your "train wreck" BTW
[15:51] <fwereade_> wrtp, cheers
[17:29] <wrtp> fwereade_: ping
[17:30] <fwereade_> wrtp, talk if you wish, but I'm in a meeting, expect slow replies
[17:30] <wrtp> fwereade_: k
[17:31] <wrtp> fwereade_: i think that ec2.environProvider.ComposeConfig could be quite a bit simpler
[17:33] <wrtp> fwereade_: and other bits too, but in general, i think it's really not such a train wreck
[18:30] <fwereade> wrtp, thanks, good to hear, I'm calling it a day now though :)
[18:31] <wrtp> fwereade: ok, have a good evening.
[18:31] <wrtp> fwereade: BTW Embassytown is awesome


[00:23]  * seidos shakes his pom poms
[00:41] <sn9> i need another place to live in Sac before the month is over. craigslist has only a couple ads in my price range, and they've already turned me down
[00:52]  * seidos contemplates that problem
[00:53] <seidos> i don't see that there is anything i can do
[00:53] <seidos> i have family in the sacramento area, but we really aren't close
[00:54] <seidos> and if we were, they would probably still not be willing to help
[00:54] <seidos> i *may* have a couch open here, but i have to talk to the coach
[00:54] <seidos> disregard that last sentence, i'm not in sac
[00:55] <seidos> sacrament-o
[00:55] <seidos> interesting
[00:56] <seidos> perhaps you could check with a priest/pastor/monk in the area
[00:56] <seidos> sn9: ^
[00:57] <sn9> like who?
[01:12] <seidos> i dunno.  pick some religions, and check it out on google maps.
[01:12] <seidos> there may be a zen center in sacramento, or various christian denominations.
[01:13] <seidos> i dunno, it's worth checking out sn9, to see if there are any religions that will put their money where their mouth is
[01:13] <seidos> i tried to stay at the SF zen center, sn9, but that didn't work out.  never got a return email from them.  maybe they had enough negative monkies already
[01:14] <sn9> that's not encouraging
[01:18] <seidos> well, change is encouraging
[01:18] <seidos> don't be like my past self
[01:18] <seidos> who i guess is now dead in a sense
[01:19] <seidos> let's a mock funeral for the "last year me"
[01:19] <seidos> oh drat, he came back and stole the "have"
[01:22] <seidos> he = "last year me"
[01:22] <seidos> get it?
[01:22] <seidos> i better /usr/sbin/pm-suspend now
[19:32] <kdub> what up channel
[20:07] <gueriLLaPunK> not enjoying this freaky may weather... its suppose to be warm!
[20:13] <nhaines> 70 isn't warm?
[20:14] <sn9> 70 is friggin' hot to me
[20:20] <seidos> 70 is nominal for me
[20:20] <seidos> watt up kdub
[20:20] <seidos> unless i exercise, but cold showers remedy this
[20:31] <akk> 70 is nice. Earlier in the week they were predicting low 60s and rain today, so I'm happy with how it turned out.
[21:17] <kdub> 70 is ideal. is that what its like up in LA?
[22:18] <Elep> Yo yo
[22:18] <sn9> welcome
[22:18] <Elep> How goes it
[22:18] <MarkDude> Hello Elep
[22:18] <sn9> it's been quiet in the channel
[22:18] <sn9> MarkDude: you're back already?
[22:18] <MarkDude> Well, she had some stuff to do today
[22:18] <MarkDude> So we are meeting up later
[22:18] <sn9> how long do you have?
[22:18] <MarkDude> It appears I may be changing my relationship status on FB
[22:18] <Elep> lol
[22:19] <sn9> from what to what?
[22:19]  * MarkDude is no longer single
[22:19] <MarkDude> :D
[22:19] <Elep> :D
[22:19] <Elep> Good for you
[22:19] <kdemarest> MarkDude: one love, i hope it works out for the both of you
[22:19] <sn9> if i used FB, i would now be changing it from "it's complicated" to "single and not looking"
[22:19] <kdemarest> oh i just changed my wiki and launchpad wiki's to this name
[22:19] <kdemarest> it's like, real
[22:20] <sn9> kdemarest: i liked it better before
[22:20] <MarkDude> real is good
[22:20] <MarkDude> Dont pay attention to sn9
[22:20] <kdemarest> sn9: no you didn't
[22:20] <sn9> for irc, i mean
[22:20] <sn9> not for e-mail and the like
[22:20] <sn9> that sucked
[22:20] <MarkDude> his other nick is *myspoonistoobig
[22:20] <kdemarest> it did T_T
[22:20] <kdemarest> it's all good though, moving forward, not backward
[22:20] <sn9> we're in agreement, then
[22:21] <kdemarest> MarkDude: have you been meditating or dropping acid?
[22:21] <sn9> [Fri 2011-05-27 02:21:10 PM PDT] -NickServ- Nicks      : sn9 DrStrangelove DonkeyHotei danielg4 iScream MySpoonIsTooBig ANTIramisu MyHorseIsAmazing
[22:21] <kdemarest> ah, i actually do have a big spoon next to me right now
[22:22] <kdemarest> there is no spoon
[22:22] <Elep> MarkDude made me sign into FB. Rare occurence.
[22:22] <Elep> All you guys live in Cali?
[22:22] <MarkDude> lol
[22:22] <kdemarest> i prefer twitter
[22:23]  * MarkDude is in NorCal
[22:23] <kdemarest> hopefully i'll get away from it as well
[22:23] <kdemarest> SoCal here
[22:23]  * MarkDude thinks of himself as West Coast
[22:23] <Elep> I'm from by Sacramento. Actually more by Folsom.
[22:23] <Elep> I'm literally in Alaska but there's no one in that channel :/
[22:23] <MarkDude> Cool Elep - we should have something in Walnut Creek soon- I know some folks drive there from Sac
[22:24] <Elep> You guys hold events? That's cool.
[22:24] <Elep> Good to have something to do...
[22:24] <MarkDude> Well- you arfe a bit North- but you can idle in Oregon if you like
[22:24] <pleia2> I'm going to canada tonight, that's kind of like alaska
[22:24] <kdemarest> i think of "myself" as all of reality, but fleshly, i am west coast
[22:24] <MarkDude> Canada is far more well behaved
[22:25] <pleia2> haha
[22:25] <MarkDude> Alaska has Alaskans
[22:25] <MarkDude> Even felons can own guns there
[22:25] <Elep> Is that true?
[22:25] <Elep> I'm not so sure.
[22:25]  * MarkDude had lots of foks from Alakska while in PNW
[22:26] <Elep> That's cool. I've been thru Canada. Very beautiful.
[22:26]  * MarkDude is relying on what his friends ffrom there said
[22:26] <kdemarest> i watched this horrific video on the sex trade in romania, made me cry
[22:26] <pleia2> I've only ever been to niagara falls
[22:26] <pleia2> should be an interesting weekend :)
[22:26] <kdemarest> i've only ever been to Epcot
[22:26] <pleia2> I learned today that SFO doesn't count canada as international
[22:26] <Elep> My friend I work with in Geeksquad lived in niagara falls
[22:27] <pleia2> so flights leave out of regular terminals
[22:27] <Elep> What's SFO?
[22:27] <pleia2> san francisco airport
[22:27] <Elep> That's a beautiful airport. I love that city.
[22:27] <philipballew> Elp i'm from auburn!
[22:27] <Elep> We would go walking around the city. No need for a car
[22:28] <philipballew> *elep
[22:28] <MarkDude> kdemarest, things like that remind me how LUCKY I am to live where I do
[22:28] <pleia2> yeah, we only really use our car in the city to do grocery shopping
[22:28] <philipballew> ** Elep
[22:28] <Elep> Yea it worked philipballew ;)
[22:28] <MarkDude> I mean south Central LA is not that bad - when you step back and look at it that way
[22:28] <kdemarest> MarkDude: i don't believe in luck
[22:28] <Elep> Totally. I wouldn't mind not having a car.
[22:28] <philipballew> biking is where its at
[22:28] <Elep> ^
[22:28] <kdemarest> MarkDude: but i know what you're trying to say
[22:29]  * MarkDude would rather have luck than smarts any day
[22:29] <philipballew> i biked to sacramento the other day and loved it
[22:29] <philipballew> 30 miles
[22:29] <Elep> Wow that's a long way
[22:29] <kdemarest> i suspect nowhere is very bad as long as one has friends
[22:30] <philipballew> when i was in san diego i hated it for the first month untill i made friends
[22:30] <pleia2> friends help
[22:30] <philipballew> Elep, the climb back up th auburn was bad thogh
[22:30] <Elep> I'm sure.
[22:31] <Elep> Idk much about that area. I know it's a richer neighborhood I think..
[22:31] <kdemarest> the presence of someone you know that cares is often enough to help
[22:31] <philipballew> Elep, folsom is richer then auburn correct?
[22:31] <kdub> too many bikers in san diego
[22:31] <kdemarest> what's wrong with bikers?
[22:31] <philipballew> kdub, critical mass is sd tonight 8pm!
[22:31] <Elep> Yea I only worked in Folsom, so Idk if they were richer or not. A lot of rich people there though.
[22:32] <philipballew> where you work Elep?
[22:32] <Elep> I worked at Intel and there was quite an influx of rich people from certain areas of Folsom
[22:32] <Elep> Past tense
[22:32] <kdub> philipballew: yeah, cant make it yet again, wish it was on like a tuesday
[22:32] <Elep> Right now I work at Geeksquad in ak
[22:32] <philipballew> i was going to go to intel this week and give flyers for the ubuntu hour im starting in sac area
[22:32] <philipballew> ak?
[22:32] <Elep> That's cool
[22:32] <Elep> Alaska philipballew
[22:33] <Elep> I'm near anchorage
[22:33] <kdemarest> i need to get a bike, i had one in SF
[22:33] <Elep> But I lived in Ca my whole life so I feel the love.
[22:33] <kdemarest> there's one in Downey, but it need a new chain, and i just moved (again)
[22:33] <kdemarest> phew
[22:33] <Elep> kdemarest have you heard of Chrome shoes?
[22:33] <kdemarest> hmmm, Alaska.  i hear it's beautiful there
[22:33] <Elep> It's wonderful.
[22:33] <philipballew> oh swet!!!
[22:33] <kdemarest> Elep: i've heard of Chrome the web navigator
[22:34] <Elep> If you bike a lot Chrome shoes is in SF, great store.
[22:34] <kdemarest> i wanted to go ice diving there
[22:34] <kdemarest> Elep: if i go back, i'll try to remember
[22:34] <kdemarest> i'm in LA now
[22:34] <philipballew> kdub, then people cant get as drunk on the ride. this guy was oulling a trailer full og bud last time
[22:34] <Elep> http://www.chromebagsstore.com/shoes.html
[22:34] <kdemarest> have a drink!  be merry!
[22:35]  * kdemarest drinks a glass of h2o
[22:35] <Elep> Me too. Water is awesome.
[22:35] <kdub> sounds illegal
[22:35] <philipballew> kdub, they arrested him halfway through the race, but i suppect he considered it worthit
[22:36] <kdemarest> Elep: too bad they don't sell tape
[22:36] <kdemarest> Elep: are they affiliated with google?
[22:37] <philipballew> kdub, well not really a race, more a giant party hippie ride
[22:38] <kdub> thats ok, i'm not going anyways :P
[22:38] <philipballew> lol. for sure!
[22:39] <kdemarest> like this stuff:  http://ecx.images-amazon.com/images/I/31k8aIH14lL._SL500_.jpg
[22:39] <kdemarest> i wonder if it would work like the dragons or vibram 5 fingers
[22:39] <kdemarest> i should get some
[22:40] <Elep> kdemarest no they're not affiliated
[22:40] <kdemarest> ah, it's probably more wasteful than the 5 fingers
[22:40] <kdemarest> since it isn't that reusable
[22:40] <Elep> What do you need the tape for?
[22:40] <kdemarest> jogging
[22:40] <Elep> I'm not familiar with heavy riding so
[22:40] <Elep> What do you put it on?
[22:40] <kdemarest> concrete is tough on bare feet
[22:40] <Elep> Ooo
[22:40] <Elep> Yea that's a good idea
[22:41] <kdemarest> it's a thing out here, so i was trying it out
[22:41] <kdemarest> the friction is the worst part actually
[22:41] <Elep> What do you mean
[22:41] <kdemarest> i guess that's why the 5 fingers, well, the socks are good
[22:41] <kdemarest> er, well, it's cold in alaska so i guess you shouldn't try it
[22:41] <Elep> lol
[22:41] <kdemarest> gotta' take care of the feet
[22:41] <Elep> It's not cold right now man
[22:41] <Elep> It's like 70
[22:42] <kdemarest> whuh?
[22:42] <Elep> Beautiful
[22:42] <kdemarest> awesome, same here
[22:42] <Elep> Yea people forget we have summer here too ;)
[22:42] <kdemarest> except those crows...i never know what they are laughing at :/
[22:42] <Elep> It's also like 20 hrs of sunlight as well
[22:42] <Elep> Sun comes up around 3AM
[22:42] <kdemarest> i'm going to pet them in my mind
[22:42] <kdemarest> anyway, so go for a walk barefoot
[22:42] <kdemarest> on sidewalk
[22:43] <kdemarest> you'll see what i mean, probably after about 3 blocks
[22:43] <kdemarest> well, jog it if you can
[22:43] <MarkDude> Just updated FB status, feel like a little kid :)
[22:43] <kdemarest> wise children
[22:43] <kdemarest> precocious
[22:44] <kdemarest> operation rainbow bridge
[22:44] <kdemarest> disneyland and beyond
[22:45] <kdub> MarkDude: for updating facebook?
[22:46] <Elep> kdemarest I would just get sandles or something for walking barefoot
[22:46] <Elep> Some good birkenstock sandles, which I need.
[22:46] <Elep> When I was in hawaii I really wanted some of those, and almost ordered some. Some of the are really nice.
[22:46] <Elep> Expensive though.
[22:47] <kdemarest> MarkDude: what do you think of this song, http://www.youtube.com/watch?v=m3KrGI3Yxd8
[22:47] <kdemarest> when i was in hawaii, i should've just walked around barefoot
[22:47] <kdemarest> but nooooo, i had to go to bars like a Barney
[22:48] <Elep> Yea screw bars. What's a barney?
[22:48] <Elep> A freakin dinosaur for lil kids I've seen.
[22:48] <kdemarest> i think a mainland tourist
[22:48] <Elep> Oh ok lol.
[22:48] <kdemarest> haha Barney:  http://pbskids.kids.us/images/sub-square-barney.gif
[22:49] <kdemarest> here's another Barney:  http://images2.fanpop.com/images/photos/6300000/The-Flintstones-Barney-Rubble-the-flintstones-6386160-350-454.jpg
[22:49] <Elep> Awesome.
[22:50] <kdemarest> Dhamma
[22:51] <Elep> Is that a buddhist thing, my girlfriend's a buddhist
[22:52] <Elep> I learned how to tie a tie yesterday. I was going thru all the youtube videos. I think my fav is the Prat knot.
[22:52] <Elep> There's so many..
[22:52] <akk> re walking barefoot: does anybody make something like light slippers to simulate walking barefoot while protecting against concrete and rocks?
[22:52] <akk> Like the five fingers things only not so expensive and without the separate-toe part.
[22:52] <kdemarest> whoa, there are live surgeries on youtube
[22:53] <kdemarest> akk: you can try tai boxing tape.  might be a decent hack
[22:53] <akk> Tthe non-resuable thing mentioned earlier would bother me.
[22:54] <kdemarest> dang, doctors are crazy
[22:54] <akk> Like that rubbery wrist-wrap stuff -- works great but I hate how I have to throw it away after a couple days.
[22:54] <kdemarest> bad or good, i dunno
[22:55] <kdemarest> oh, hmmm, rubberbands might work, but they can constrict
[22:55] <akk> One of these days I'll try just getting a light piece of rubber and gluing stuff to it to make sandals, I guess.
[22:55] <kdemarest> maybe old ide cables tied onto the foot
[22:55] <kdemarest> really the issue is the sole
[22:55] <kdemarest> soul pun
[22:56] <akk> Long time ago I had this great pair of moccasins, thin rubber sole, suede upper, wore 'em everywhere
[22:56] <kdub> did they last a long time?
[22:56] <akk> 'til I ruined them slogging through high tide at stinson beach
[22:56] <akk> They lasted a few years, before that
[23:02] <kdemarest> man, i am way too squeamish to be a doctor.
[23:02] <kdemarest> i just watched a video of a tummy tuck, it looks horrific
[23:02] <kdub> akk: i like chucks. they hold up on the beach pretty ok too
[23:02] <kdemarest> i have vans with little robots on them
[23:05] <akk> I've read that some docs are squeamish when they enter med school, and it's possible to get over that.
[23:06] <akk> Though I'm not sure why you'd aim at that as a career if your early reaction to it is ewwww.
[23:07] <kdemarest> my reaction isn't "ewwww" it "owwww"
[23:07] <kdemarest> *it's
[23:10] <akk> kdemarest: Like Converse? Those don't seem much like being barefoot.
[23:11] <kdemarest> akk: no, the slip ons.  they were $25, and i needed shoes.  i had some "water shoes" but those were a bad buy.
[23:12] <kdemarest> ironically, if i had just bought the vibrams in the first place, i probably wouldn't have spent that much more
[23:12] <kdemarest> i'm not even sure where to get them though, i don't see them in the ads in the paper.  maybe after my next two pair of shoes break i'll get some.
[23:13] <kdemarest> i bought a pair of airwalks for $5 @ good will
[23:13] <akk> I'm not finding anything googling for chucks slip-ons that looks thin-soled.
[23:13] <akk> I have some "water shoes" but they have relatively beefy soles too.
[23:13] <kdemarest> yeah, i gave my water shoes away.  they didn't work in the rain very well
[23:14] <kdemarest> honestly, i think just save up and buy the good stuff
[23:14] <akk> I got them for kayaking and they're okay for that, but really sandals work just as well.
[23:14] <kdemarest> in the meantime, you can walk and run barefoot
[23:15] <kdemarest> toughen up the souls, it doesn't hurt too bad if you don't over do it
[23:15] <akk> And we've pretty much stopped kayaking since they imposed all the rules and costs related to zebra mussels.
[23:15] <kdemarest> i <3 zebra mussels
[23:15] <akk> They've really messed up anything related to boating in bay area reservoirs.
[23:16] <kdemarest> why?  they're growing on boats?
[23:16] <kdemarest> i cleaned yachts for a day, but it interfered with school so i stopped.  unfortunately, at the time, i didn't realize i should've just kept cleaning the yachts
[23:17] <kdemarest> it was a fun job
[23:17] <akk> They stick to boats, and move that way from an infested reservoir to one that they haven't colonized yet.
[23:17] <kdub> so... paint the boats with poison. seems pretty simple to me...
[23:17] <akk> So you have to get (and pay for) an inspection every time you put in any reservoir.
[23:17] <kdemarest> hmmm, i wonder if regular boat cleaning would fix this problem
[23:18] <kdemarest> boat cleaning was pricey iirc
[23:18] <kdemarest> i mean, to pay a guy to dive in the water with scuba gear and a scraper...
[23:19] <akk> They inspect them out of the water. Why try to do it underwater?
[23:19] <kdemarest> i think they paid me $12 an hour, but the guy that was replacing zincs and stuff was making like 40 or 50k a year
[23:20] <akk> Anyway, when they're in the water, mussels can still attach, so it only makes sense to inspect/clean when they're out.
[23:20] <kdemarest> wait they inspect kayaks?
[23:20] <akk> The rules are written for boats. There's no distinction made for kayaks.
[23:20] <akk> So if d and I put our two kayaks in a reservoir, at most places we have to pay a launch fee that's double what a huge motorboat with 12 people aboard would pay
[23:20] <akk> because we have, you know, two boats
[23:21] <kdemarest> can you sneak past?
[23:21] <akk> Crazy stupid rules.
[23:21] <kdemarest> what if you bring a bow and arrow?
[23:21] <akk> Yeah, usually we just find places upstream to put in.
[23:21] <kdemarest> war cry?
[23:21] <kdemarest> nice
[23:21] <akk> But That was before zebra mussels, dunno if they're enforcing things more now.
[23:21] <kdemarest> zebras have bigger muscles than me i think :(
[23:22] <kdemarest> how strange, all they do is run :o
[23:22] <kdemarest> maybe a lot of sprinting
[23:22] <kdemarest> i hope not, kayaking is totally chill.  they should be kayaking with you
[23:22] <kdub> in SD, we just plop boats down and go
[23:22] <kdub> what about paddle-boarding?
[23:22] <kdemarest> i went kayaking a few times in long beach
[23:23] <kdemarest> brought mask and snorkel, then dove in where there were some jelly fish
[23:23] <akk> In the bay we can still just plop and go, but not in the freshwater reservoirs.
[23:23] <kdemarest> they didn't sting very bad
[23:26] <kdub> yeah, zebra mussels are annoying. asian carp is what everyone was worrying about in MI
[23:27] <kdemarest> they're just sitting there, i think big boats are annoying
[23:27] <kdemarest> all polluting and junk
[23:28] <kdemarest> this is an interesting picture, a shopping cart full of zebra mussels:  http://www.examiner.com/images/blog/wysiwyg/image/zebra_mussel_shopping_cart.gif
[23:28] <kdub> international trade based on sailboats went out of style in the 19th century :P
[23:29] <kdemarest> true, i wouldn't have this laptop if it weren't for huge cargo ships
[23:29] <kdemarest> maybe i'd have a pet zebra mussel though
[23:29] <kdemarest> and maybe we'd live next door, and went surfing every morning
[23:30] <kdemarest> and played soccer on the weekends
[23:31] <akk> I've heard speculation that huge cargo sailboats (high-tech ones) might come back, with oil prices rising and worry about global warming.
[23:31] <kdemarest> whoa, that's interesting
[23:32] <kdemarest> we'll probably have to wait for it to become financially feasible
[23:32] <kdemarest> which means peak oil i bet
[23:32] <akk> I think Jim Clark's sailboat is controlled by Irix ... probably most of that software would easily port to Linux. :)
[23:32] <kdemarest> or not, it could happen sooner
[23:33] <kdemarest> yeah, if you could find a developer willing to port it
[23:35] <akk> You kidding? work on software for cutting-edge sailboats?
[23:35] <kdemarest> ah, you mean like a j-o-b
[23:35] <kdemarest> yeah, that's be cool
[23:35] <pleia2> we manage some servers at a shipyard, one of which runs the database that holds all the specs for cutting giant ships
[23:36] <akk> I bet lots of people would port it just to get to ride on the sailboat. But they can certainly afford to pay.
[23:36] <kdemarest> working on Irix would be like asking me to work Weld.  i don't have a welder, or the space to do it.
[23:36] <pleia2> going on site there is fun times, but you need to wear a hard hat on you way to the IT department and server room :)
[23:36] <kdemarest> *on
[23:36] <akk> I worked on Irix for years. Liked it a lot -- it was a good Unix.
[23:37] <kdemarest> i read this article today that said dressing like men helps women to close the pay gap
[23:37] <kdemarest> actually, welding is too easy.  it would be like asking me to perform reparative surgery for carpal tunnel syndrome
[23:37] <kdemarest> what would the software be running, anyway?  communications and nav?
[23:38] <akk> those, and controlling the sails (and maybe motor when there's no wind)
[23:38] <akk> and maybe the rudder
[23:39] <kdemarest> that does sound interesting
[23:39] <akk> and things like climate controls, window shutters, lighting etc.
[23:39] <kdemarest> climate controls?  window shutters?  lighting?  what's wrong with a manual switch?
[23:40] <kdemarest> i guess if you can afford a huge sail boat, you're too busy to turn a light switch
[23:40] <akk> oh, and the sound system. Rich people's yachts are not like an 8' sabot. :)
[23:42] <kdemarest> bot?
[23:42] <kdemarest> i think the yachts i saw were like 40 feet
[23:43] <kdemarest> bigger ones were like 80 feet
[23:43] <akk> http://en.wikipedia.org/wiki/Hyperion_%28yacht%29
[23:44] <kdemarest> wouldn't use a yacht to ship, anyway
[23:44] <kdemarest> i'm not a fan of yachts
[23:45] <kdemarest> i guess a clipper would be nice, if it doubled as a house


 নাকি সবগুলাতে?
[10:35] <AudaciousTUX> ubuntu-bd
[12:09] <pavlushka> Kilos: my work progress halted because my disk is full, now sorting and deleting duplicates and unnecessary files and only after that I can start, :(,
[12:12] <Kilos> eish
[12:13] <Kilos> thats a hassle with small drives
[15:04] <pavlushka> I just now found that we have a language font package named fonts-beng-extra!!
[15:04] <pavlushka> absolutely wrong naming, every language has their short code, bn stands for Bangla/Bengali, then why beng, which stupid actually did that?
[15:05] <AudaciousTUX_> hosted on launchpad??
[15:05] <pavlushka> it was supposed to be fonts-bn-extra
[15:06] <pavlushka> AudaciousTUX: https://launchpad.net/ubuntu/+source/fonts-beng-extra
[15:07] <pavlushka> the debian-in (India) team created that, wow
[15:08] <AudaciousTUX_> :3
[15:08] <AudaciousTUX_> report bug :D
[15:08] <pavlushka> I am going to, trust me.
[15:09] <AudaciousTUX_> oka... inform me please :)
[15:11] <pavlushka> AudaciousTUX: But one thing, we have two Bengali versions, Bengali (India), Bengali (Bangladesh), I am not sure if there is any issue, lets find out.
[15:12] <pavlushka> AudaciousTUX_: this project started in 2013, see?
[15:12] <AudaciousTUX_> :o
[15:13] <AudaciousTUX_> btw... is it really bangadeshi version or indian?? :|
[15:13] <AudaciousTUX_> and fonts are same ??
[15:13] <pavlushka> AudaciousTUX_: Well That is to find out.
[15:15] <pavlushka> AudaciousTUX_: can you check this link https://launchpad.net/+search?field.text=bn&x=-489&y=-1703  ??
[15:17] <AudaciousTUX_> one user named bjarne... and bunch of package all for a4.04--
[15:17] <AudaciousTUX_> 14.04-
[15:17] <pavlushka> It refers that bn is the common code, For Bangladesh it is bn-bd, so there should be no problem in naming bn
[15:17] <AudaciousTUX_> yah
[15:18] <pavlushka> but the package is from debian stream, not maintained by Ubuntu.
[15:18] <AudaciousTUX_> bn and in bangali fonts are  same??
[15:19] <AudaciousTUX_> umm... anyway we should report bug... or is there anyway to link to the current repo ??
[15:19] <pavlushka> AudaciousTUX_: bn is the common code for Bengali, for our specific local we use bn-bd, so if they try to develop their kind local Bengali, that is supposed to be bn-in, got it?
[15:20] <AudaciousTUX_> hmm
[15:21] <pavlushka> AudaciousTUX: I will notify you after reporting the bug, okay?
[15:21] <pavlushka> AudaciousTUX_: I will notify you after reporting the bug, okay?
[15:22] <AudaciousTUX_> okay
[15:22] <AudaciousTUX_> and i have to shut that androidIRC off :3
[15:26] <pavlushka> AudaciousTUX: https://bugs.launchpad.net/ubuntu/+source/fonts-beng-extra/+bug/1603131
[15:27] <pavlushka> AudaciousTUX_: https://bugs.launchpad.net/ubuntu/+source/fonts-beng-extra/+bug/1603131
[15:29] <pavlushka> !bug 1603131
[15:31] <pavlushka> AudaciousTUX_: you there?
[15:31] <AudaciousTUX_> yah...
[15:32] <pavlushka> AudaciousTUX_: you are checking the "affects me too" option?
[15:32] <AudaciousTUX_> done that
[15:33] <pavlushka> AudaciousTUX_: thanks a lot for changing the bug status to confirmed, :)
[15:34] <pavlushka> ওরে বাবা, তিন তিন টা Audi? last boss নাকি?
[15:35] <AudaciousTUX__> :o kemne hoilo :|
[15:35] <AudaciousTUX__> mbl e gele uninstall dimu... kono kame lagena :3
[15:37] <pavlushka> আমার তো কাজে লাগতো, শুধু tab নিয়ে একটু সমস্যা হত, কিন্তু pc client fail করলেই শুধু login করতাম।
[15:37] <pavlushka> মানে বাইরে থাকলে অথবা power cut হলে
[15:37] <AudaciousTUX__> hmm
[15:38] <AudaciousTUX__> taile autostart off rakhum
[15:38] <pavlushka> AudaciousTUX__: better
[16:19] <pavlushka> just had my dinner, but bbl, :)
[17:58] <Kilos-> tonight i have connection probs
[17:59] <pavlushka> Kilos-: me too, and power cuts are like cherry on top, :)
[17:59] <Kilos-> eish
[17:59] <Kilos-> internet world wide sucks
[18:00] <Kilos-> but who cares as long as they get your money
[19:01] <pavlushka> wb Tuhin
[19:01] <Tuhin> thanks
[19:01] <Tuhin> ki khobor
[19:03] <pavlushka> Tuhin: can you tell me about Zorin OS?
[19:04] <pavlushka> and its CLI package manager?
[19:22] <Kilos> night bd peeps. see you tomorrow
[20:06] <pavlushka> nazmul: hello and welcome
[20:07] <pavlushka> nazmul: type "p" in the chatting bar and then hit the "tab" button and see.
[20:07] <nazmul> pavlushka,
[20:07] <nazmul> woe
[20:07] <nazmul> wow
[20:07] <pavlushka> now back to work,:p
[20:07] <nazmul> ok, thanks man
[20:07] <nazmul> lets
[20:08] <pavlushka> nazmul: first on the very left side of hexchat you see two channels ubuntu and ubuntu-bd, right?
[20:09] <nazmul> yes
[20:09] <pavlushka> right click on then with mouse and select Autojoin
[20:09] <pavlushka> *on them
[20:10] <pavlushka> done?
[20:10] <nazmul> how?
[20:11] <pavlushka> hover the mouse over the channels and right-click on them after selecting, you'll see a list
[20:11] <nazmul> then?
[20:11] <pavlushka> one by one
[20:11] <pavlushka> and check the autojoin option
[20:12] <nazmul> done
[20:12] <pavlushka> so far so good
[20:12] <nazmul> ok
[20:13] <pavlushka> now run in chatting bar, "/msg NickServ REGISTER nazmul your_email"
[20:13] <pavlushka> without inverted commas
[20:14] <nazmul> ok
[20:14] <pavlushka> what it said?
[20:15] <nazmul> emailed me
[20:15] <nazmul> i am registering
[20:17] <pavlushka> nazmul: sorry run again "/msg nickserv register your_password(choose) your_email"
[20:17] <nazmul> i got it
[20:17] <nazmul> and i am now a registered member
[20:17] <pavlushka> then follow the email instruction
[20:17] <nazmul> followed
[20:18] <pavlushka> great, you know the password ?
[20:18] <nazmul> yes
[20:18] <pavlushka> keep it private but are you talking about the password given in your mail to verify, that one?
[20:19] <pavlushka> that one is temporary
[20:19] <pavlushka> you have to have a regular password
[20:20] <nazmul> i am talking about the password in register my_password email
[20:20] <nazmul> is it temporary?
[20:20] <nazmul> ok i understand now.
[20:20] <pavlushka> they give a temporary password to verify, no problem
[20:21] <nazmul> i know the password
[20:21] <nazmul> continue
[20:22] <pavlushka> you can run to be sure "/nickserv set passwd oldpassword newpassword" and there's a other way "/ns resetpass nickname email@address"
[20:22] <pavlushka> any way, lets proceed
[20:22] <nazmul> okay
[20:23] <pavlushka> !help | nazmul
[20:23] <pavlushka> !patience | nazmul
[20:24] <pavlushka> nazmul: always follow these two rules while asking for help, so read those carefully first, :)
[20:24] <nazmul> ok
[20:24] <nazmul> done
[20:26] <nazmul> ok. i got it now. they were rules.
[20:26] <nazmul> continue
[20:26] <pavlushka> now we will go to #ubuntu channel and will ask for help there but before that I am telling you 1 more thing.
[20:26] <nazmul> yes
[20:28] <pavlushka> that is what you will ask for? first post the demo question here, now
[20:28] <pavlushka> in one line
[20:29] <pavlushka> one long line
[20:31] <nazmul> I installed ZORIN OS 11 on my pc. but my wifi adapter( TP-link: model:TL-WN727N) is not working at all. i typed "lsusb" in terminal, then the adapter showing as "Ralink MT7601U"..so, that means the adapter is okay and the driver is not installed. i searched in google and collect some drivers and commands but that's not working.there is some github link of the driver in askubuntu.com but the links are not valid now.they are like from 2014/2012. Please
[20:31] <pavlushka> like "my wifi adapter( TP-link: model:TL-WN727N) is not working at all. I typed "lsusb" in terminal, then the adapter showing as "Ralink MT7601U"
[20:31] <nazmul> help me finding a driver or tell me some command to download it. Thanks in advance.
[20:33] <pavlushka> nazmul: skip the ZORIN OS part, and you have to give the command results by pasting them in paste.ubuntu.com, and posting the paste link here in the channel, okay?
[20:33] <nazmul> okay
[20:34] <pavlushka> so this "my wifi adapter( TP-link: model:TL-WN727N) is not working at all. i typed "lsusb" in terminal, then the adapter showing as "Ralink MT7601U"..so, that means the adapter is okay and the driver is not installed. i searched in google and collect some drivers and commands but that's not working.there is some github link of the driver in askubuntu.com but the links are not valid now.they are like from 2014/2012. Please "  will be enough
[20:34] <nazmul> okay
[20:34] <pavlushka> get ready and just post this part without inverted commas in #ubuntu, just do it and wait.
[20:35] <nazmul> my wifi adapter( TP-link: model:TL-WN727N) is not working at all. i typed "lsusb" in terminal, then the adapter showing as "Ralink MT7601U"..so, that means the adapter is okay and the driver is not installed. i searched in google and collect some drivers and commands but that's not working.there is some github link of the driver in askubuntu.com but the links are not valid now.they are like from 2014/2012. Please
[20:35] <nazmul> okay
[20:35] <pavlushka> yep
[20:35] <nazmul> in #ubuntu?
[20:36] <nazmul> okay
[20:36] <pavlushka> yes dear
[20:36] <nazmul> posted
[20:37] <pavlushka> and now !patience | nazmul
[20:37] <pavlushka> !patience | nazmul
[20:37] <nazmul> ok. can you see my question?
[20:37] <pavlushka> nazmul: so dont repeat your question
[20:37] <pavlushka> 100%
[20:37] <pavlushka> nazmul: and lubotu2 is a bot
[20:38] <pavlushka> !bot
[20:38] <nazmul> okay
[20:40] <pavlushka> nazmul: DCC think does not work correctly, skip it.
[20:40] <pavlushka> DCC thing
[20:40] <nazmul> okay
[20:42] <pavlushka> nazmul: type "/query pavlushka" here
[20:51] <pavlushka> nazmul: try to notice carefully this part again
[20:51] <pavlushka> !patience | nazmul
[20:52] <pavlushka> the last line
[20:53] <pavlushka> nazmul: if dont find any solution then you can post a question of you own in the forums, see?
[20:54] <nazmul> yes
[20:56] <pavlushka> a problem which cannot be solved today, might be solved tomorrow!
[20:57] <pavlushka> so go to askubuntu, and post a question, this time add the zorin os, :)
[21:00] <pavlushka> nazmul: actually run the command  "lsusb -v -d 148f:7601" again and paste and give the link
[21:01] <pavlushka> nazmul: you just repeated the question what I forbade you already, ^^
[21:02] <pavlushka> nazmul:  dont do it, please, keep that in mind next time
[21:02] <nazmul> okay
[21:02] <nazmul> sorry. u mean askubuntu.com and i thought here
[21:02] <nazmul> sorry
[21:04] <pavlushka> nazmul: goto http://superuser.com and post your question
[21:05] <nazmul> okay
[21:05] <pavlushka> you have to register first, but that will be no hassle, easy
[21:06] <pavlushka> nazmul: you have checkd my screenshot? see how many channels I follow? ^^
[21:07] <nazmul> yes
[21:07] <pavlushka> nazmul: have you posted the question in superuser.com?
[21:08] <nazmul> yes
[21:09] <pavlushka> nazmul: feeling sleepy, will try tomorrow again, Good Night, :)
[21:09] <nazmul> also in askubuntu.com
[21:09] <nazmul> okay. thanks
[21:10] <pavlushka> they are of same server
[21:10] <nazmul> ooh.
[21:10] <pavlushka> nazmul:my link http://askubuntu.com/users/505225/pavel-sayekat
[21:11] <pavlushka> nazmul: check it wiki.ubuntu.com/pavelsayekat
[21:12] <nazmul> both done
[21:12] <pavlushka> see ya night night, :)


[16:53] <micahg> can someone confirm an issue for me?
[19:14] <Sysi> what's making that letter-icon in indicator plugin, indicator messages?
[19:14] <ochosi> micahg: what's the issue?
[19:14] <ochosi> Sysi: letter == envelope?
[19:15] <micahg> ochosi: bug 743689
[19:15] <Sysi> that
[19:15] <ochosi> Sysi: that's the messaging-indicator
[19:16] <Sysi> closest package i can find is indicator-messages
[19:16] <ochosi> micahg: i'll quickly reboot to natty to see whether i can confirm that, but could you tell me what exactly happens when clicking a drop-down? it should show the list of grouped windows, no?
[19:17] <ochosi> Sysi: yes, that's what i meant
[19:17] <Sysi> also, should xfce4-power manager support indicator applet?
[19:17] <micahg> ochosi: yes, then it should switch to the window you select, doesn't work for me
[19:17] <ochosi> Sysi: it should integrate pidgin and hopefully at some point thunderbird
[19:17] <ochosi> micahg: ok, i'll see whether i can confirm it
[19:17] <Sysi> i use neither..
[19:17] <micahg> messaging menu for TB should be next cycle
[19:17] <ochosi> Sysi: then feel free to uninstall the package, that will also remove the indicator
[19:18] <micahg> it'll be discussed at UDS
[19:19] <Sysi> hum, nm-applet fails with icon on systray, otherly i wouldn't use indicators
[19:20] <micahg> Sysi: it should fall back to systray if there's no indicator-plugin
[19:20] <Sysi> but icon's failing then, propably nm-applet issue, worked at 10.10
[19:21] <ochosi> Sysi: works for me
[19:21] <ochosi> micahg: i can confirm that bug
[19:22] <micahg> I'm using the indicator plugin
[19:22] <micahg> ochosi: cool, can you comment and I'll milestone it
[19:22] <ochosi> micahg: yes, i think this should go upstream. iirc though we don't have grouping enabled by default (at least i hope)
[19:22] <Sysi> ochosi: well it works, but shows some weird icon, could be in my theme too
[19:23] <ochosi> Sysi: i only tried with greybird and elementaryXubuntu, worked fine with that
[19:23] <Sysi> good
[19:25] <ochosi> micahg: done
[19:25] <micahg> ochosi: it's for overflow grouping for me
[19:25] <micahg> ochosi: thanks
[19:25] <ochosi> np