[11:39] <wrtp> fwereade: review delivered. just a couple of documentation suggestions.
[11:40] <fwereade> wrtp, cool, tyvm
[11:42] <fwereade> wrtp, just one thing: It calls f.SetOutput(ioutil.Discard).
[11:42] <wrtp> fwereade: go on
[11:42] <fwereade> wrtp, would "It may call f.SetOutput(ioutil.Discard)." be acceptable?
[11:43] <fwereade> wrtp, it's the sense I was trying to convey in the original
[11:43] <fwereade> wrtp, or I could always make it call that and thereby get the simpler doc ;p
[11:43] <wrtp> fwereade: i'd maybe go for that
[11:43] <fwereade> wrtp, ...and more consistent behaviour, even if it doesn't matter much
[11:43] <wrtp> fwereade: exactly
[11:44] <fwereade> wrtp, sounds good, tyvm
[11:44] <wrtp> fwereade: cool
[11:44] <fwereade> wrtp, there's a trivial followup at https://codereview.appspot.com/6115048/ as well
[12:06]  * TheMue would like to review too but is currently involved in correcting the German translations of the 12.04 press releases.
[12:06] <TheMue> wrtp, fwereade: moin btw
[12:06] <wrtp> TheMue: hiya
[12:06] <wrtp> fwereade: proposal for new method in the Environ interface:
[12:06] <wrtp> 	// UploadExecutables uploads the files in the
[12:06] <wrtp> 	// given directory to the environment. They will be
[12:06] <wrtp> 	// tagged with the given Juju version.
[12:06] <wrtp> 	UploadExecutables(dir string, version string) error
[12:07] <wrtp> fwereade: does that seem reasonable to you?
[12:50] <TheMue> So, back from translation office. *lol*
[13:05] <wrtp> fwereade: did you see my UploadExecutable proposal?
[13:10] <TheMue> wrtp: Btw, I wondered why my state test was failing. But then I get aware that I have to install sshd. Has been a surprise first.
[13:11] <wrtp> TheMue: slightly surprising it's not installed by default, yes. did it give a decent error message, BTW?
[13:12] <TheMue> wrtp: Yes, it told me that it could not start sshd.
[13:12] <wrtp> TheMue: that's good!
[13:12] <TheMue> wrtp: So fix just has been a sudo apt-get ...
[13:19] <TheMue> niemeyer: moin
[13:21] <niemeyer> Heya!
[13:34] <wrtp> niemeyer: yo!
[13:35] <wrtp> niemeyer: possible addition to the Environ interface:
[13:35] <wrtp> 	// UploadExecutables uploads the files in the
[13:35] <wrtp> 	// given directory to the environment. They will be
[13:35] <wrtp> 	// tagged with the given Juju version.
[13:35] <wrtp> 	UploadExecutables(dir string, version string) error
[13:37] <andrewsmedina> wrtp: hi
[13:39] <fwereade> wrtp, sorry, I missed that earlier
[13:39] <fwereade> wrtp, shouldn't dir be calculated from version?
[13:39] <wrtp> fwereade: no, because dir is just a temp directory into which we've installed the go executables
[13:40] <wrtp> niemeyer, fwereade: a possible alternative:
[13:40] <wrtp> // UploadExecutables uploads a gzipped tar archive
[13:40] <wrtp> // containing juju executables read from r. They will be
[13:40] <wrtp> // tagged with the given Juju version.
[13:40] <wrtp> UploadExecutables(r io.Reader, version string) error
[13:41] <wrtp> but i think i prefer the original.
[13:42] <wrtp> fwereade: perhaps i've misunderstood your comment though
[13:45] <niemeyer> wrtp: Hmm, sounds interesting, the latter feels better
[13:45] <niemeyer> wrtp: version shouldn't be a string, though
[13:45] <niemeyer> wrtp: UploadTools?
[13:45] <niemeyer> wrtp: as it goes onto tools/
[13:46] <wrtp> niemeyer: the reason i prefer the former is that it gives the environ the choice to deploy in a different form if desired (e.g. local provider could just copy the dir)
[13:46] <wrtp> niemeyer: UploadTools sounds good.
[13:46] <wrtp> niemeyer: why shouldn't version be a string?
[13:46] <niemeyer> wrtp: I don't see how that's the case with the first and not the second
[13:47] <wrtp> niemeyer: the second one requires the executables to be tarred and gzipped already
[13:47] <wrtp> niemeyer: the first one just assumes that there's a directory containing them (as made by GOBIN=$dir go install launchpad.net/juju/go/cmd/...)
[13:47] <fwereade> wrtp, no, it was my misunderstanding
[13:47] <niemeyer> wrtp: Sounds sane.. I'd prefer to have that consistent
[13:48] <niemeyer> wrtp: There's no reason to have each environment with a different scheme
[13:49] <wrtp> niemeyer: ok.
[13:49] <niemeyer> wrtp: The alternative would be to reimplement the uploading logic everywhere, and then having to figure how each does what
[13:50] <niemeyer> wrtp: The consistency also makes it easier to have the other side consistent too (the consuming bit)
[13:50] <wrtp> niemeyer: i was thinking that there would be a function Archive(w io.Writer, dir string) which would do the tar & gzip
[13:50] <wrtp> niemeyer: then it's trivial for an environ to use it if it wants
[13:51] <niemeyer> wrtp: Until we figure why it would not want, this feels counterproductive
[13:52] <wrtp> niemeyer: one thing: you said that S3 doesn't count the file as uploaded if the network connection is interrupted. but what if the uploading client is interrupted (e.g. with ^C) ?
[13:52] <niemeyer> wrtp: That's what I did
[13:52] <wrtp> niemeyer: that's fine.
[13:53] <wrtp> niemeyer: hmm, so how does S3 know?
[13:53] <niemeyer> wrtp: http has a Content-Length header on the upload side too
[13:53] <wrtp> niemeyer: ah yes, i'd forgotten that.
[13:54] <wrtp> niemeyer: so, maybe the signature should be: UploadExecutables(r io.Reader, length int64, version string) error
[13:54] <niemeyer> wrtp: +1
[13:54] <niemeyer> wrtp: Except for version.. it should be a Version IMO
[13:55] <wrtp> niemeyer: ok
[13:56] <wrtp> niemeyer: so... if we have a --force-upload flag, how can we tell the environ to bootstrap with the just-uploaded tools?
[13:58] <niemeyer> wrtp: We'll be sending the current version from the client.. we can use that to decide what to do
[13:58] <niemeyer> wrtp: We might also have a flag next to it.. something like "latest compatible" vs. "exact"
[13:58] <wrtp> niemeyer: but if the current version comes from a global variable, it won't be changing each time
[13:58] <wrtp> niemeyer: we could have an overriding environment variable
[13:58] <niemeyer> wrtp: Indeed.. what are you foreseeing there?
[13:59] <wrtp> niemeyer: i'm forseeing changing some code (but not the version) and uploading. i want that to work.
[13:59] <wrtp> niemeyer: rather, i don't want it to clash with other people using the same version.
[14:00] <niemeyer> wrtp: That sounds fine, that's what --force-upload would do, right?
[14:00] <wrtp> niemeyer: or are you envisaging everyone using a different bucket?
[14:00] <niemeyer> wrtp: Or --upload-tools, maybe
[14:00] <niemeyer> wrtp: Ah, yeah, definitely
[14:00] <niemeyer> wrtp: That was in the ML proposal
[14:01] <niemeyer> wrtp: There's a well known $PUBLIC, but in development mode it'd upload to your own bucket
[14:02] <wrtp> niemeyer: and that bucket comes from the environment.yaml, right?
[14:03] <niemeyer> wrtp: Right
[14:03] <niemeyer> wrtp: It's the same thing as the provider storage
[14:04] <wrtp> niemeyer: that should work. we can just use the existing control-bucket, i guess
[14:04] <niemeyer> wrtp: That's also the same thing as the provider storage :-)
[14:04] <wrtp> niemeyer: ok, just making sure i understand.
[14:04] <niemeyer> wrtp: Cool
[14:04] <wrtp> niemeyer: so --upload-tools triggers dev mode ?
[14:04] <niemeyer> wrtp: It's a bit unfortunate actually, that it's a common namespace
[14:04] <niemeyer> wrtp: We could have done better than that otherwise
[14:06] <niemeyer> wrtp: Hmm, good question.. what else would the dev mode affect?
[14:06] <wrtp> niemeyer: i can't think of anything else.
[14:06] <niemeyer> wrtp: Maybe we should handle that side of it as a feature on its own then
[14:06] <wrtp> niemeyer: i think --upload-tools *is* dev mode for all intents and purposes
[14:06] <niemeyer> wrtp: Just always check the provider storage before $PUBLIC on deployments
[14:07] <niemeyer> wrtp: and join the versions found for purposes of deployment.. then, pick the right version considering "exact" vs. "latest", and deploy the right one wherever it is
[14:09] <wrtp> niemeyer: i'm not sure i understand. if you've just uploaded the tools, why do you need to check anything other than provider storage for an exact match?
[14:09] <wrtp> niemeyer: or are you suggesting that normal user deplyments check their provider storage too?
[14:10] <niemeyer> wrtp: The fact the tools were uploaded sounds orthogonal to whether it is used, yeah.. When we don't upload the tools, what do we want to happen?
[14:10] <wrtp> niemeyer: that's a good question.
[14:10] <wrtp> niemeyer: i think that the tools should be chosen once, and then stored in the zk state
[14:10] <wrtp> niemeyer: (to be changed later if we want to upgrade)
[14:11] <niemeyer> wrtp: I'm not sure, only because the matrix is wider
[14:11] <niemeyer> wrtp: It's quite possible that different Ubuntu releases and architectures may be forced onto a specific version based on availability
[14:11] <wrtp> niemeyer: ah, but if we're uploading to the same URL each time, we have a problem, because we haven't got a good handle on the unchanging tools archive.
[14:12] <wrtp> niemeyer: hmm, that's true. but what should --upload-tools do in that case?
[14:13] <wrtp> niemeyer: if we can't use the version we're trying to upload, that is
[14:13] <niemeyer> wrtp: That's the thing, it feels like it's orthogonal.. it'd just cause the version in use to be sent to the environment storage
[14:13] <wrtp> s/we'retrying to upload/we've just uploaded/
[14:13] <niemeyer> wrtp: Everything else works the same
[14:13] <niemeyer> wrtp: Then we have to define that everything else to be sensible, of course
[14:15] <wrtp> niemeyer: i'm not quite sure what you're suggesting here. that --dev-mode triggers exact version matching?
[14:17] <niemeyer> wrtp: No, I'm suggesting that this is orthogonal to the storage provider.. there are two different things: whether to upload the tools, and whether to enforce specific version matching or be lax
[14:18] <niemeyer> wrtp: So, just for the sake of understanding: bootstrap --upload-tools vs. bootstrap --exact-version vs. bootstrap --upload-tools --exact-version
[14:19] <wrtp> niemeyer: would there ever be a case where you'd want to do --upload-tools without --exact-version?
[14:19] <niemeyer> wrtp: Yes, in the cases where I'm happy for juju to pick a different version to enable me to work with other architectures, for example
[14:20] <wrtp> niemeyer: even though the version you've uploaded might well be ignored?
[14:20] <wrtp> only if there's a later uploaded version, i suppose
[14:21] <wrtp> i'm slightly nervous about having multiple deployed units all with different versions
[14:21] <wrtp> but i suppose it's an inevitable consequence of our versioning strategy
[14:22] <wrtp> *maybe*
[14:22] <niemeyer> wrtp: I understand and agree.. it's not even a consequence of our versioning strategy.. both of these aim at solving the problem which is supporting software for half a decade in multiple releases of the OS
[14:22] <niemeyer> wrtp: and in multiple architectures
[14:22] <niemeyer> wrtp: Practical example:
[14:24] <niemeyer> wrtp: 12.10 ships with juju 2.0.0.. then, we find an important bug, and release 2.0.1.. do we want the guy that is using the client of 2.0.0 because he happened to stumble upon the CD to deploy 2.0.0 or 2.0.1? I'd prefer if the servers were running 2.0.1, even if the version doesn't match
[14:26] <wrtp> niemeyer: yes, i agree. however, the scenario we were talking about was in development mode. i *think* i'd prefer --upload-tools to force my current version, even if it might not succeed on some architectures.
[14:27] <niemeyer> wrtp: Fair enough, I'm happy to start from there, with --upload-tools implying --exact-version
[14:29] <wrtp> niemeyer: so we give bootstrap a new exactVersion argument?
[14:29] <niemeyer> wrtp: +1
[14:30] <wrtp> niemeyer: and Startinstance, presumably
[14:30] <niemeyer> wrtp: Actually, why don't we just start from there and ignore the other behavior for the moment?
[14:30] <wrtp> niemeyer: just use a given version; no compatibility comparisons?
[14:30] <TheMue> niemeyer: Beside an updated https://codereview.appspot.com/6120045/ I just proposed https://codereview.appspot.com/6111053/ containing only the NeedsUpgrade change (based on the trunk this time ;) )
[14:31] <niemeyer> wrtp: Yeah, I *think* it'd be easy to get going with that, and then once the straightforward works, increment with a non-exact feature
[14:31] <niemeyer> wrtp: We can even switch the default without much pain, I suppose
[14:31] <wrtp> niemeyer: sounds good.
[14:32] <niemeyer> wrtp: Otherwise we'll end up stumbling upon several issues before we even have anything working
[14:32] <niemeyer> TheMue: Awesome, will try to review that now before lunch
[14:33] <wrtp> niemeyer: so, what should i do about the versions package? it pretty much implements semantic versions as specified on semver.org, so perhaps i should just take out the Compat func (which is juju-specific) and leave the rest, and use it just for the parsing and not the comparison.
[14:33] <TheMue> niemeyer: Great, thx
[14:33] <niemeyer> wrtp: IMO, it should be greatly simplified
[14:34] <wrtp> niemeyer: ok. you don't think it's useful having a standard semantic versions implementation?
[14:34] <niemeyer> wrtp: What we need is type Version stuct { Major, Minor, Patch int }
[14:34] <wrtp> niemeyer: ok, no pre-release, patch etc
[14:35] <niemeyer> wrtp: and a version.Parse that returns it
[14:35] <wrtp> i might just put the original onto rog-go.googlecode.org, as it's potentially useful for someone.
[14:35] <wrtp> niemeyer: sounds good.
[14:35] <niemeyer> wrtp: Agreed, not disagreeing with your generic design of semantic versioning itself
[14:36] <wrtp> niemeyer: it *is* pretty darn complex for what it gives you :-)
[14:36] <niemeyer> wrtp: Yeah
[14:37] <niemeyer> wrtp: func (v Version) IsDev() bool <= might be useful
[14:37] <wrtp> niemeyer: +1
[14:38] <wrtp> niemeyer: (although i still think the odd-numbered versions will seem odd to people: "We've just released version 2.0.0 of juju" "But what happened to 1.0.0?!")
[14:39] <niemeyer> wrtp: odd/even is not so uncommon, and as long as we have the proper mechanisms in place in terms of code, no real damage can happen I suppose
[14:40] <niemeyer> wrtp: e.g. upgrade-juju shouldn't jump from stable to dev without a flag
[14:40] <wrtp> niemeyer: yeah, it's just a bit weird from a PR perspective. but if it's not uncommon, that's fine.
[14:41]  * TheMue loves LGTMs
[14:41] <niemeyer> wrtp: http://en.wikipedia.org/wiki/Software_versioning#Odd-numbered_versions_for_development_releases
[14:41] <niemeyer> TheMue: ;)
[14:45] <wrtp> niemeyer: i can't see anything that does that on odd-numbered major releases.
[14:46] <wrtp> niemeyer: case in point: http://en.wikipedia.org/wiki/GNOME#Versions
[14:47] <niemeyer> wrtp: That doesn't bother me too much.. the main point of the odd major is being able to test the major upgrades before releasing them
[14:48] <wrtp> niemeyer: i'm sure it'll work out
[14:57] <TheMue> niemeyer: I would like to move all watchers into a new file "watchers.go" and rename "watch_test.go" to "watchers_test.go". OK for you?
[14:59] <wrtp> TheMue: one though: i think singular works just as well as plural, if not better. i'd suggest "watcher.go" and "watcher_test.go".
[14:59] <wrtp> s/though/thought/
[15:00] <TheMue> wrtp: I think you have the better language feeling than me, so it would be ok for me to take "watcher", yes.
[15:04] <niemeyer> TheMue: Review delivered, cheers
[15:05] <niemeyer> TheMue: Yes, fine to move them elsewhere, as long as its in a branch by itself
[15:05] <niemeyer> TheMue: Hard to review moving code
[15:05]  * niemeyer => lunch, biab
[15:05] <TheMue> niemeyer: Thx for the power reviewing. :D
[15:05] <TheMue> niemeyer: Yes, it will be an own branch.
[15:06] <TheMue> niemeyer: Enjoy
[15:57] <wrtp> niemeyer: i've updated the version CL taking into account our discussions above: https://codereview.appspot.com/6082044
[16:14] <niemeyer> wrtp: Done
[16:21] <wrtp> niemeyer: submitted. thanks a lot.
[16:27] <niemeyer> wrtp: np!
[16:31] <wrtp> pwd
[16:37] <niemeyer> wrtp: I now realize that ClientVersion is probably not correct.. this should be version.Current I think
[16:37] <wrtp> niemeyer: +1
[16:37] <wrtp> niemeyer: will do
[16:37] <niemeyer> wrtp: Thanks!
[17:29] <wrtp> fwereade: ping
[21:29] <fwereade> wrtp, pong


[13:57] <slobby> Anyone here able to help me install a tar file
[13:57] <slobby> i got it extracted
[20:25] <genii> They finally added the Global event for 14.10 Release Parties, here's the Toronto one now: http://loco.ubuntu.com/events/ubuntu-ca/2920-ubuntu-1410-toronto-release-party/


[18:17] <zaki> hey pavlushka
[18:17] <pavlushka> hello zaki
[18:42] <pavlushka> zaki: downloading the arduino source using git
[18:44] <pavlushka> zaki: a pain in the ass on a flaky net connection
[18:46] <pavlushka> zaki: since yesterday
[18:47] <zaki> pavlushka, how is the internet price there ?
[18:47] <pavlushka> zaki: 700 BDT for 1 Mb
[18:48] <zaki> ah.
[18:48] <zaki> you use public IP?
[18:48] <pavlushka> zaki: connection setup cost is on user
[18:49] <pavlushka> zaki: nope, if I did I would have setup a private webpage by now :p
[19:27] <zaki> pavlushka, that's too much price I think
[19:28] <zaki> এখানে কে কার চাইতে বেশি দিবে এই প্রতিযোগিতা শুরু করে দেয় মাঝে মাঝে
[19:29] <pavlushka> zaki: lucky you
[19:29] <zaki> he he
[19:29] <pavlushka> একটা মুভির নাম
[19:30] <pavlushka> zaki: অনেক সুন্দর :p
[19:30] <zaki> :D
[19:31] <pavlushka> zaki: আমার পছন্দের Drew Berrymore আছে সেটাতে
[19:32] <zaki> মজার মানুষ
[19:33] <zaki> pavlushka, webmin need X window system ?
[19:34] <zaki> cause My one is minimal setup
[19:34] <zaki> whole os is just 300MB
[19:34] <pavlushka> zaki: nope
[19:35] <pavlushka> zaki: I guess I am wrong
[19:36] <zaki> pavlushka, about what?
[19:36] <zaki> pavlushka, you trie ISP config/
[19:36] <pavlushka> zaki: I tried webmin on ubuntu server once and then it installed the whole GUI system
[19:36] <zaki> ?
[19:37] <zaki> ah.
[19:37] <pavlushka> zaki: no, I quit that without even trying
[19:37] <zaki> oh.
[19:45] <pavlushka> zaki: assuming that it is designed to use the localhost:10000 by default, so it needs a web-browser, so it needs a GUI
[19:45] <pavlushka> zaki: but here you can check out the dependencies, https://aur.archlinux.org/packages/webmin/
[19:46] <u-la-la> [ AUR (en) - webmin ] - https://aur.archlinux.org
[19:46] <zaki> tried with command line browser
[19:46] <pavlushka> zaki: and?
[19:46] <zaki> nothing
[19:46] <zaki> login not working
[19:46] <zaki> with no error
[19:47] <pavlushka> zaki: what is the "netstat -lntp | grep 10000" ?
[19:47] <zaki> that's okay , I cheeked
[19:47] <zaki> now no way to check that again. removed everything
[19:48] <pavlushka> tcp        0      0 <IP_ADDRESS>:10000           <IP_ADDRESS>:*               LISTEN      2802/perl
[19:48] <pavlushka> tcp6       0      0 :::10000                :::*                    LISTEN      2802/perl
[19:49] <pavlushka> zaki: that's my RPI3b's result of "sudo netstat -lntp | grep 10000"
[19:49] <zaki> yea.
[19:50] <zaki> I had similar
[19:51] <pavlushka> zaki: you should run an nmap scan over that ip to check the open ports also
[19:52] <pavlushka> zaki: or zenmap, the frontend of nmap
[19:52] <pavlushka> zaki: oops
[19:53] <pavlushka> zaki: you got the interface already, so no issues with the port I guess
[19:54] <zaki> yes pavlushka
[19:54] <zaki> ক্ষান্ত দিছি আপাতত
[20:01] <pavlushka> zaki: there's a #webmin channel
[20:02] <pavlushka> zaki: and you are there, ha ha ha
[20:02] <pavlushka> zaki: have you tried to ask anything there yet?
[20:02] <zaki> pavlushka, yeas. :D
[20:03] <zaki> no one answered
[20:04] <pavlushka> zaki: https://sourceforge.net/p/webadmin/discussion/600155
[20:04] <u-la-la> [ Webmin / Discussion / Discussion ] - https://sourceforge.net
[20:05] <pavlushka> and http://www.webmin.com/mailing.html
[20:05] <u-la-la> [ Webmin ] - http://www.webmin.com
[21:12] <zaki> pavlushka, good night


[14:51] <Iamthehuman> OvenWerks: I tried the hack you kindly suggested to line 355 of /usr/bin/convert-studio-controls and now it runs briefly, but exits with a "IndexError: string index out of range". This was for the problem of having some device with too short handle, and I think I recall there was a duplicate and a unnamed entry
[14:54] <Iamthehuman> I think I may be interested in a clean reinstall. I've some scripts that I've collected that rip the manually installed apts, snaps, flatpaks, but I was thinking of splashing 20€ for a pro-solution for migrations-into-clean-install from the same guy who wrote Timeshift.
[15:00] <Iamthehuman> hey, I noticed the line it was complaining about was 406 (after addition of one line, because I always comment out with ### if some line used to exist and was replaced with a modified copy of it
[15:01] <Iamthehuman> After changing line 406 to '            if not (device[0:3] == 'USB' and device[2].isdigit()):' (it used to be was device[3]) the convert-studio-controls ran fine after this change
[15:02] <Iamthehuman> I mean that must be checing if item number 4 is a digit and I changed it to evaluate item number 3
[15:02] <Iamthehuman> .. in an array or string if it works like an array
[15:03] <Iamthehuman> Danke. I'll reboot now and see if I can get JACK up
[15:09] <Iamthehuman1> And JACK is up, internal audio card not outputting to speakers, but bluetooth connects and works ok, so this is massive progress.
[15:11] <Iamthehuman1> OvenWerks: I changed the line 355 as you suggested and line 405 After changing line 406 to 'if not (device[0:3] == 'USB' and device[2].isdigit()):' (it used to be was device[3])). After theses two changes the convert-studio-controls ran fine and after reboot JACK and Studio Controls are up and running. Vielen danke für hilfe!
[15:14] <Iamthehuman1> *line 405 in the old file /usr/bin/convert-studio-controls
[16:42] <rgh> pulseaudio/bluetooth question : my bluetooth headset works fine in 21.10 but in 20.04 it only functions as  a headphone, so no mic
[16:42] <rgh> currently I have the backports ppa, disabled
[16:43] <rgh> does enabling the ppa update pulse so my headset works in 20.04 ?
[19:35] <Eickmeyer[m]> rgh: The PPA has no update or configs for pulse.
[19:36] <Eickmeyer[m]> It's intended to be application updates only.
[21:22] <rgh> Gotcha
[21:22] <rgh> I decided to not much around with something such trivial and just wait patiently for the next lts
[21:24] <rgh> *muck around
[23:33] <OvenWerks> Iamthehuman12: that sounds wrong... I will check.
[23:34] <OvenWerks> Iamthehuman12: I think I have to break the if statement in two.
[23:35] <OvenWerks> In c, if the first param in an "or" is true the second is not even looked at. Maybe python does not work that way


[00:51] <keithzg> Huh, rebooted and no signal was going out to my lone monitor on this system over DisplayPort, had to manually stop and start the SDDM service before the GUI was accessible again . . . journalctl shows identical lines for the automatic startup and my manual startup so ¯\_(ツ)_/¯
[01:34] <magic_ninja> is there a reason I would be getting a 60Hz refresh rate on one monitor and 75Hz on an identical monitor. The closest reason I can come up with is the cable.
[02:18] <keithzg> magic_ninja: Could be cable, could be the card weirdly having differences between the outputs, I've seen that happen before oddly enough. Of course if it's the cable that's easy enough to test, swap the cables around as see what happens :)
[14:11] <BluesKaj> Hi folks
[15:05] <magic_ninja> herro
[15:05] <BluesKaj> hi magic_ninja
 We've made a group for casual tech talks , hop in
 t.me/opensxurce
[15:12] <samuel> I just installed kubuntu
[19:15] <user|10> I'm new to Kubuntu, now I want to mount my NAS and dont know how to.
 Is the NAS attached to your computer or over the network?
[19:28] <user|10> over the network
 Apologies for the delay <user|10> (stepped away for lunch...)
 This guide here should work.... let me know if further clarification is needed... https://askubuntu.com/questions/46183/how-to-map-a-network-drive
[20:57] <user|10> not working
[21:04] <user|10> Uploaded file: https://uploads.kiwiirc.com/files/339f797128e74a9091c7fb2c410b1718/pasted.txt
[21:14] <uel> I'm getting constant and anoying kdeinit5 crash notification, seems like it's related to thumbnails on kubuntu 20.04; how can I troubleshoot this?


[06:02] <rogpeppe> davecheney: mornin'
[06:12] <davecheney> rogpeppe: hello hello
[07:31] <rogpeppe> davecheney: review delivered.
[07:31] <davecheney> thank you good sit
[07:31] <davecheney> sir
[07:31] <davecheney> i'll polish that up now
[07:32] <davecheney> re types
[07:32] <davecheney> I agree, we should have more of them
[07:32] <davecheney> i'm getting tired of typing []*state.Machine
[07:38] <rogpeppe> davecheney: with slices, i don't agree actually.
[07:38] <rogpeppe> davecheney: i think type MachineList []*state.Machine would be worse.
[07:39] <rogpeppe> (and it's the same length)
[07:39] <rogpeppe> ish
[07:40] <davecheney> Machines
[07:51] <davecheney> rogpeppe: do I owe you any reviews ?
[07:52] <davecheney> i don't feel that i'm in the best timezone to assist, gustavo has usually got to them before me
[07:53] <rogpeppe> davecheney: i'm about to submit https://codereview.appspot.com/6299073/; but you might want to glance over https://codereview.appspot.com/6299082/
[07:53] <rogpeppe> davecheney: yeah, but another pair of eyes is always good
[07:56] <davecheney> ok, sam just came home, but i'll check it out after dinner
[08:00] <rogpeppe> davecheney: np. it's pretty much code-grind anyway.
[10:25] <Aram> morning
[10:31] <fwereade> hey Aram
[10:37] <TheMue> Aram: moin
[10:37] <TheMue> Somehow my 1.0.2 has troubles with gozk and goyaml.
[10:40] <Aram> ah, new release
[10:46] <Aram> works here
[10:48] <TheMue> Aram: Maybe I just have to clean up the 3rd party libs and re-get.
[10:48] <TheMue> rogpeppe: ping
[10:48] <rogpeppe> TheMue: pong
[10:48] <rogpeppe> i haven't tried 1.0.2 if that's what you're gonna ask :-)
[10:49] <TheMue> rogpeppe: Ah, is AssignUnit() in unit.go by you?
[10:49] <TheMue> rogpeppe: No ;)
[10:49] <rogpeppe> TheMue: i've touched it recently...
[10:49] <rogpeppe> TheMue: although it was fwereade's originally
[10:49] <rogpeppe> i think
[10:49] <TheMue> rogpeppe: OK, thx.
[10:49] <fwereade> rogpeppe, TheMue: yeah, I think so
[10:50] <rogpeppe> TheMue: is there a problem with it?
[10:50] <TheMue> fwereade: I just wondered because it's a func taking a State as first arg.
[10:50] <TheMue> fwereade: We mostly put this as method to State.
[10:50] <fwereade> TheMue, that's at niemeyer's request, he didn't like having it on Unit
[10:51] <fwereade> TheMue, I guess it could go on State, that is true
[10:51] <TheMue> fwereade: And internally you used u.st, the state of the unit.
[10:51] <Aram> TheMue: gozk and goyaml use cgo, maybe it's your gcc at fault, or you lack some dumb lib.
[10:51] <fwereade> TheMue, heh that's just me being stupid
[10:51] <rogpeppe> +1 on making it a state method
[10:51] <fwereade> TheMue, I recommend a little CL fixing it on its own and seeing what niemeyer thinks, I can't see a problem
[10:52] <TheMue> rogpeppe: thx
[10:52] <TheMue> fwereade: Will you do it or shall I?
[10:52] <fwereade> TheMue, would you please? I'm still trying to figure out why I can't talk to launchpad properly... :/
[10:53] <TheMue> fwereade: Check if you're a member of the gophers group.
[10:53] <TheMue> fwereade: That has been the problem for me.
[10:53] <TheMue> fwereade: Same kind of error yesterday.
[10:53] <fwereade> TheMue, looks like that's the trouble
[10:54] <fwereade> TheMue, tyvm
[10:54] <TheMue> fwereade: np
[11:07] <TheMue> Ah, found my missing package/file for ZK. I'm wondering why this happens now. OK, it's the first rebuild after switch to 12.04.
[11:12] <rogpeppe> TheMue: i think you should hold off on the tags until we get some feedback from niemeyer.
[11:12] <rogpeppe> TheMue: if we agree it's good to change them, i'll do them all in that CL.
[11:12] <TheMue> rogpeppe: Great, and it has been a good hint.
[11:13] <rogpeppe> TheMue: also, about the error message - i'd like to keep that CL as only about the go vet fixes. error message fixing needs to happen more generally in another place.
[11:13] <rogpeppe> s/another place/another CL/
[11:13] <TheMue> rogpeppe: I'm doing the state error messages right now file by file.
[11:14] <TheMue> rogpeppe: And in this context I only found your prefix for ec2
[11:23] <fwereade> rogpeppe, just looking at presence_test; you added the "+ a little bit for scheduler glithes" to the longEnough var
[11:24] <fwereade> rogpeppe, can you explain what that's about?
[11:26]  * rogpeppe looks
[11:27] <rogpeppe> fwereade: things can happen after they are expected to.
[11:27] <rogpeppe> fwereade: it's not a real-time language
[11:27] <fwereade> rogpeppe, what does go have to do with this at all?
[11:27] <rogpeppe> fwereade: so it's best to allow some slack in timings
[11:28] <rogpeppe> fwereade: go is firing the watch
[11:29] <fwereade> rogpeppe, isn't allowing double the pinger period for detecting timeout good enough already?
[11:30] <fwereade> rogpeppe, ah, hmm, I see what you mean in this context
[11:30]  * fwereade thinks a bit
[11:30] <rogpeppe> fwereade: no, because as the comments say, the time out might legitimately occur after 99ms
[11:31] <rogpeppe> fwereade: it doesn't matter if we add some slack, but it does matter if we get test failures on a heavily loaded system
[11:34] <TheMue> fwereade, rogpeppe: Move of AssignUnit() is in as https://codereview.appspot.com/6298081
[11:34] <rogpeppe> TheMue: LGTM
[11:34] <TheMue> rogpeppe: That's fast. ;)
[11:34] <rogpeppe> TheMue: quickest review ever!
[11:35] <TheMue> rogpeppe: Definitely. Cheers!
[11:35] <rogpeppe> 29s...
[11:40] <Aram> mramm: 15:00 GMT is fine with you?
[11:42] <mramm> I believe that is my one not-free hour
[11:42] <Aram> 16:00 GMT?
[11:43] <mramm> that works
[11:43] <Aram> good
[12:07]  * TheMue is out of the office this afternoon, will continue work later.
[12:22] <rogpeppe> fwereade: is there a reason why in the python version some parameters are passed as env vars not flags?
[12:22] <rogpeppe> (to agents, that is)
[12:22] <fwereade> rogpeppe, I don't think so; IIRC niemeyer agreed to drop those
[12:22] <rogpeppe> fwereade: cool, thanks
[12:23] <fwereade> rogpeppe, (well the reason, I think, was to make python testing more convenient, so it shouldn't aply any more ;))
[12:24] <rogpeppe> fwereade: thanks
[12:35] <rogpeppe> fwereade: i'm just looking in juju/machine/unit.py; it seems a bit odd that the provider type is overloaded to be "subordinate" sometimes. i'm thinking that unit deployment really needs only one argument: whether to put the unit agent in a container.
[12:35] <rogpeppe> fwereade: does that sound reasonable?
[12:36] <rogpeppe> when i say "only one argument" obviously there are other args, but i don't think it needs to know the provider type
[12:45] <fwereade> rogpeppe, sorry, went for a ciggie
[12:45]  * fwereade reads back
[12:47] <fwereade> rogpeppe, yeah, that makes sense to me... didn't we determine that SubordinateContainerDeployment was actually identical to UnitMachineDeployment anyway?
[12:47] <rogpeppe> fwereade: that it is
[12:48] <fwereade> rogpeppe, it crosses my mind that, long-term, we need to promote the concept of container somehow
[12:48] <fwereade> rogpeppe, as it is we make inferences about containers in a range of places
[12:48] <rogpeppe> fwereade: i think that's what i'm doing by making it a bool argument to deploy.
[12:48] <rogpeppe> fwereade: but i'm probably missing something important
[12:49] <fwereade> rogpeppe, as it is a unit "is" a container, except when some other unit "is" its container, and it confuses me
[12:50] <rogpeppe> fwereade: it seems to me that we'd need a bool "containerise" field in the principal unit. but maybe not much more
[12:50] <fwereade> rogpeppe, hold on, how does this interact with deploying into local containers? a subordinate needs to be deployed into an existing container...
[12:50] <fwereade> rogpeppe, feels like there's something missing
[12:50] <fwereade> rogpeppe, but I'm not really up on the context
[12:50] <rogpeppe> fwereade: subordinates are deployed by the principal's unit agent
[12:50] <fwereade> rogpeppe, ah, cool
[12:51] <fwereade> rogpeppe, your perspective seems fine to me then :)
[12:51] <rogpeppe> fwereade: i *think* that it'll all just fall out naturally, including the local provider stuff
[12:52] <rogpeppe> fwereade: cool, the crack is not with me today then
[12:53] <fwereade> rogpeppe, btw, https://codereview.appspot.com/6298082
[13:37] <niemeyer> Guten tag!
[13:38] <niemeyer> fwereade: Heya, yeah, sorry for the gophers team issue
[13:40] <Aram> moin.
[13:45] <niemeyer> Aram: Heya
[13:58] <fwereade> niemeyer, no worries :)
[13:58] <fwereade> niemeyer, that had me *utterly* foxed for a while though :)
[13:59] <niemeyer> fwereade: I figured that yesterday, but I wasn't sure if I should move the branch to another team and forgot to add you to ~gophers, which should be done no matter what
[14:01] <rogpeppe> niemeyer, fwereade: here's a sketch for a possible new package (proposed name launchpad.net/juju-core/juju/service) http://paste.ubuntu.com/1040813/
[14:02] <rogpeppe> niemeyer, fwereade: it will encapsulate much of the logic in juju/machine/unit.py
[14:03] <fwereade> rogpeppe, in essence, LGTM, but I think we should be careful about Destroy :)
[14:03] <rogpeppe> fwereade: careful how?
[14:03] <rogpeppe> fwereade: you mean avoid rm -rf / ?
[14:03] <fwereade> rogpeppe, IIRC, that's the idea
[14:04] <rogpeppe> fwereade: yeah, i'll do my best not to trash your machine or mine :-)
[14:04] <fwereade> rogpeppe, nah, it's the same issue as automatically terminating machines
[14:04] <fwereade> rogpeppe, we don;t d that because we feel people might want a change toretrieve their data even if they're no longer running the service
[14:05] <fwereade> rogpeppe, deleting containers falls under the same category I think
[14:05] <fwereade> niemeyer, is theabove broadly accurate?
[14:05] <niemeyer> rogpeppe: I'm not sure.. in isolation, that interface doesn't seem very appealing
[14:06] <niemeyer> rogpeppe: We have a bunch of things that "represent a deployed service", and we have a very special and well defined meaning for what a "service" is
[14:07] <rogpeppe> fwereade: ok. my first thought was a package called "deploy"
[14:07] <rogpeppe> oops
[14:07] <rogpeppe> niemeyer: ^
[14:07] <niemeyer> rogpeppe: The parameters of New() feel like a bag of unrelated attributes
[14:07] <rogpeppe> yeah, "service" is not a great name
[14:07] <rogpeppe> niemeyer: another thought was to put those attributes in a struct
[14:08] <niemeyer> rogpeppe: I don't know.. it's hard to suggest something in isolation in this case. In my mind what we need is a function that creates the container
[14:08] <rogpeppe> niemeyer: what do you think to the basic division of functionality (leaving all setup of directory structure to the unit agent)?
[14:08] <niemeyer> rogpeppe: Not an interface, not a struct
[14:09] <rogpeppe> niemeyer: ok, so how do we then destroy the container?
[14:09] <niemeyer> rogpeppe: Thinking
[14:12] <niemeyer> rogpeppe: Ok.. the API is mostly sensible I guess
[14:12] <niemeyer> rogpeppe: Maybe the proper name for this is Container
[14:13] <niemeyer> rogpeppe: With something along the lines of Create, Start, and Destroy methods
[14:13] <rogpeppe> niemeyer: i suppose so. but it's going to be used for starting things that aren't in a container too. at least that was the idea
[14:13] <niemeyer> rogpeppe: I'm thinking about Container in a more abstract way.. it's a unit container
[14:13] <niemeyer> rogpeppe: (rather than an *LXC* container)
[14:14] <rogpeppe> niemeyer: hmm, maybe
[14:14] <niemeyer> rogpeppe: That's how we've been referring to it all along, I think
[14:14] <niemeyer> rogpeppe: We have relations with scope of "container" for example
[14:14] <niemeyer> rogpeppe: Despite the fact they're not deployed via LXC in some cases
[14:14] <rogpeppe> niemeyer: i'm slightly uncomfortable because in the default case it doesn't "contain" anything
[14:15] <niemeyer> rogpeppe: Uh.. how so?
[14:15] <niemeyer> rogpeppe: Maybe I misunderstand what this is about
[14:15] <rogpeppe> niemeyer: we're just starting a process and adding an upstart entry for it, if container==false
[14:16] <niemeyer> rogpeppe: It contains a unit
[14:16] <niemeyer> rogpeppe: That's its reason of existence
[14:17] <rogpeppe> niemeyer: starts a unit, really.
[14:17] <niemeyer> rogpeppe: Contains, unless I misunderstand what you mean
[14:17] <niemeyer> rogpeppe: The Dir there is the root of that container
[14:17] <rogpeppe> niemeyer: i suppose it comes down to what we mean by "contain"
[14:17] <niemeyer> rogpeppe: Yes, that's what I've been trying to point out :)
[14:18] <rogpeppe> niemeyer: we can have several "containers" that all have the same root.
[14:18] <rogpeppe> niemeyer: (in the subordinate case)
[14:18] <niemeyer> rogpeppe: By definition, all containers will always be in the same root.. we don't have filesystem management today
[14:18] <rogpeppe> niemeyer: LXC containers have different roots from one another, no?
[14:19] <niemeyer> rogpeppe: Ok, hold on, so I really misunderstand what you mean
[14:19] <niemeyer> rogpeppe: Subordinates all live within *one* container
[14:19] <rogpeppe> niemeyer: yeah
[14:19] <niemeyer> rogpeppe: I don't know what we're discussing then
[14:19] <rogpeppe> niemeyer: but the idea behind this API is that a machine agent or a unit agent can start another unit without worrying too much about if it's contained or not.
[14:20] <niemeyer> rogpeppe: The machine agent has to create a container (the container I'm talking about)
[14:20] <niemeyer> rogpeppe: and start a process within that container
[14:20] <niemeyer> rogpeppe: That's a different procedure from what a unit agent must do
[14:20] <rogpeppe> niemeyer: yup, and that's what i want this API to do
[14:21] <niemeyer> rogpeppe: Okay, that's a Container interface
[14:21] <niemeyer> rogpeppe: That's not what a unit agent must do
[14:21] <niemeyer> rogpeppe: A unit agent has to simply put a file on the upstart directory, and run "start whatever".. done
[14:21] <rogpeppe> niemeyer: however, in the future, the MA must be able to do both things, i think
[14:21] <niemeyer> rogpeppe: Why?
[14:22] <rogpeppe> niemeyer: because we want it to be able to start a unit both in or out of a container
[14:22] <niemeyer> rogpeppe: Nope
[14:22] <rogpeppe> niemeyer: so we can avoid LXC overhead if necessary
[14:22] <niemeyer> rogpeppe: It's always within the abstract concept of a container that I'm talking about
[14:23] <niemeyer> rogpeppe: A unit container may use LXC or not, but it's still a unit container
[14:23] <rogpeppe> niemeyer: ah!
[14:23] <niemeyer> rogpeppe: We call it "scope: container" even when there's no LXC involved
[14:24] <rogpeppe> niemeyer: so perhaps we have a global variable in the container package which is "Current"
[14:24] <rogpeppe> niemeyer: as in the container we're currently in.
[14:24] <niemeyer> rogpeppe: I don't know.. that's an implementation detail that went over my head at the moment
[14:25] <rogpeppe> niemeyer: the difficulty i'm having is that when the MA is deploying a unit without LXC, it's not creating a container.
[14:26] <niemeyer> rogpeppe: It is.. it's just a very trivial container
[14:27] <niemeyer> rogpeppe: That runs without isolation
[14:27] <niemeyer> rogpeppe: Container has Create, Start, Destroy: Create the container itself, Start makes it run now and whenever the machine boots; Destroy gets rid of it all
[14:28] <niemeyer> rogpeppe: That's doable both with and without LXC
[14:28] <niemeyer> rogpeppe: (and we'll need both)
[14:30] <niemeyer> rogpeppe: The other problem you mentioned, starting another unit from the point of view of a unit that is already running, is trivial
[14:30] <niemeyer> rogpeppe: It can literally be done in a very short function that dumps an upstart script and starts it
[14:31] <niemeyer> rogpeppe: Because we've already agreed that the unit is responsible for itself (downloading charm, etc)
[14:33] <rogpeppe> niemeyer: here's what i've got currently: http://paste.ubuntu.com/1040866/
[14:33] <rogpeppe> niemeyer: i'm not sure about the command args to Create though
[14:34] <rogpeppe> niemeyer: i'm not sure i want the code outside of container to know about how upstart works.
[14:35] <rogpeppe> niemeyer: a few typos rectified: http://paste.ubuntu.com/1040871/
[14:38] <rogpeppe> fwereade: about destroying containers, i'm not sure. the current python code destroys containers when their units disappear from the machine. we'd need a new "terminate-unit" command, i guess.
[14:39] <fwereade> rogpeppe, I don't really have a position on this: I'm not really happy with either approach :)
[14:39] <rogpeppe> fwereade: if in doubt, follow the existing implementation, right?
[14:40] <fwereade> rogpeppe, not sure; depends how soon ubiquitous containerisation arrives really
[14:40] <fwereade> rogpeppe, I'm not sure it's even terminate-unit so much as it is terminate-container
[14:41] <rogpeppe> fwereade: i don't think the user has any concept of containers,
[14:41] <niemeyer> rogpeppe: I was thinking about something along these lines: http://paste.ubuntu.com/1040880/
[14:43]  * rogpeppe thinks.
[14:44] <niemeyer> rogpeppe: Will actually need an extra "Start() error" method
[14:44] <niemeyer> Due to LXC.. Create > Deploy > Start
[14:45] <rogpeppe> niemeyer: i'm thinking that if we're passing in Unit (i was originally trying to build a low level package without state dependency), we can make the package know whether to deploy as LXC or not, because it can tell from the Unit itself.
[14:45] <niemeyer> rogpeppe: No, it can't
[14:45] <niemeyer> rogpeppe: This is part of the environment configuration
[14:46] <niemeyer> rogpeppe: In fact.. there's no point in having Create and Deploy, I believe..
[14:46] <niemeyer> So it's really just Deploy and Destroy
[14:47] <rogpeppe> niemeyer: DeployLXC(*Unit) (Container, error)
[14:47] <rogpeppe> niemeyer: or we could just call the package "deploy"
[14:47] <niemeyer> rogpeppe: Then you don't have a Container interface to pass around and allow the implementation to vary anymore
[14:47] <rogpeppe> niemeyer: deploy.LXC(*Unit) (Container, error)
[14:48] <rogpeppe> niemeyer: ? that's what it's returning
[14:48] <rogpeppe> niemeyer: what's your "dir" arg?
[14:48] <niemeyer> rogpeppe: The directory for the container (!?)
[14:49] <rogpeppe> niemeyer: doesn't the LXC subsystem choose that?
[14:49] <niemeyer> rogpeppe: I don't know..
[14:49] <rogpeppe> niemeyer: the python code looked like it did
[14:50] <rogpeppe> niemeyer: but that may be just the way they've chosen to do it
[14:51] <niemeyer> This is the direction I would go: http://paste.ubuntu.com/1040898/
[14:52] <niemeyer> But it sounds like we're simplifying quite a bit, which is great.
[14:52] <rogpeppe> niemeyer: what can we usefully do between calling LXC and calling Deploy?
[14:52] <niemeyer> So it may turn out to be a single function :)
 rogpeppe: Then you don't have a Container interface to pass around and allow the implementation to vary anymore
[14:52] <rogpeppe> niemeyer: i don't understand that
[14:52] <rogpeppe> niemeyer: you mean for testing?
[14:52] <niemeyer> rogpeppe: Ok, don't worry.. it really depends on the implementation.
[14:53] <niemeyer> I'm happy to see real stuff happening around that, whatever it is
[14:54] <niemeyer> rogpeppe: Just don't name the method as "deploy" please.. you won't want to have a destroy function within a deploy method
[14:54] <niemeyer> s/method/package
[14:54] <rogpeppe> niemeyer: this is what i was thinking: http://paste.ubuntu.com/1040905/
[14:54] <rogpeppe> oh, ok
[14:55] <rogpeppe> niemeyer: this, perhaps: http://paste.ubuntu.com/1040908/
[14:56] <rogpeppe> niemeyer: or even: http://paste.ubuntu.com/1040910/
[14:56] <niemeyer> rogpeppe: How to destroy a container that wasn't created in the current process run?
[14:56] <rogpeppe> given that LXC is really an implementation detail
[14:56] <rogpeppe> niemeyer: i'm not sure we ever want to do that.
[14:56] <niemeyer> rogpeppe: Yes, we do
[14:56] <rogpeppe> niemeyer: when?
[14:57] <niemeyer> rogpeppe: Sorry, I'm missing what you're missing
[14:57] <niemeyer> rogpeppe: Every time?!
[14:57] <niemeyer> rogpeppe: Processes are restartable
[14:58] <rogpeppe> oh yeah
[14:58] <rogpeppe> niemeyer: i'm not sure how to do it though.
[14:58] <niemeyer> rogpeppe: The interface I suggested!? :)
[15:01] <rogpeppe> niemeyer: i'm wondering how the Simple and LXC functions know what they're attaching to
[15:01] <niemeyer> rogpeppe: What does "attach" mean?
[15:02] <rogpeppe> niemeyer: if you restart, how do you get a Container that refers to a container created in a previous process run?
[15:02] <rogpeppe> niemeyer: i'm thinking that they might take a name as argument
[15:02] <niemeyer> rogpeppe: With LXC(...) or Simple(...)..
[15:03] <rogpeppe> niemeyer: yes, but how do you tell LXC what container you want it to talk to?
[15:03] <niemeyer> rogpeppe: With the arguments to LXC(...)
[15:03] <rogpeppe> niemeyer: i.e. what arguments does LXC have
[15:03] <niemeyer> rogpeppe: I'd have to implement it to tell you :)
[15:04] <niemeyer> rogpeppe: There is existent logic in the Python tree to serve as inspiration
[15:04] <rogpeppe> niemeyer: i'm thinking that we'd probably do it by name; so it'll be the name of the unit, most likely, so perhaps my interface would work after all.
[15:04] <niemeyer> rogpeppe: I'm sure you can make any interface work
[15:05] <rogpeppe> niemeyer: i'm not :-)
[15:05] <niemeyer> rogpeppe: It doesn't mean it will look good, necessarily :)
[15:06] <rogpeppe> niemeyer: i'm thinking that if the container already exists for a unit, Simple would return it
[15:07] <rogpeppe> niemeyer: but yeah, maybe we want to distinguish between create and reattach
[15:07] <niemeyer> rogpeppe: deploying an LXC container as a side-effect isn't a great idea
[15:08] <rogpeppe> niemeyer: wouldn't LXC() attach to an LXC container, or create it if it didn't exist?
[15:08] <rogpeppe> niemeyer: or maybe it doesn't do anything until you call Deploy
[15:08] <niemeyer> rogpeppe: We're starting to go in circles.. my suggested Container interface has a Deploy method
[15:09] <rogpeppe> niemeyer: i'm wondering what the LXC function actually *does*.
[15:09] <niemeyer> rogpeppe: Return an LXC Container implementation
[15:10] <rogpeppe> niemeyer: so it's just a factory. i see.
[15:10] <rogpeppe> niemeyer: hence the lack of an error return, doh!
[15:10] <rogpeppe> niemeyer: sorry, i hadn't appreciated that.
[15:11] <niemeyer> np
[15:12] <fwereade> TheMue, btw, I like errorContextf :)
[15:23] <rogpeppe> niemeyer: https://codereview.appspot.com/6299082/ should be good to go now, i hope.
[15:29] <niemeyer> rogpeppe: Done
[15:34] <fwereade> TheMue, ping
[15:35] <rogpeppe> niemeyer: thanks a lot.
[15:35] <rogpeppe> niemeyer: submitted.
[15:36] <niemeyer> rogpeppe: Thank you! Really glad with how readable these watchers have become
[15:37] <rogpeppe> niemeyer: i still can't help thinking if there's a way to factor out some common pattern from them... but i agree, it's easier to follow than the python logic.
[15:38] <niemeyer> rogpeppe: Crosses my mind too, but I also realize that we've already been doing some of that
[15:39] <rogpeppe> niemeyer: e.g. stopWatcher
[15:39] <niemeyer> Yeah
[15:39] <rogpeppe> niemeyer: i don't mind too much. they're similar enough that it's quite easy to look at them side-by-side and see differences.
[15:40] <niemeyer> rogpeppe: Yeah, don't see as an immediate issue we need to worry about either
[15:40] <niemeyer> rogpeppe: This may even change significantly if Aram's research turns out well
[15:40] <niemeyer> Aram: Btw, when do you plan to start pushing some trivial branches?
[15:41] <niemeyer> Aram: To get us started on the mstate stuff
[15:41] <Aram> niemeyer: today, I started to work on mstate, let me create the launchpad project so I can have a place to push them
[15:41] <niemeyer> Aram: I think there are easy first steps to get us going with something concrete and get the momentum going
[15:42] <niemeyer> Aram: Woah what?
[15:42] <Aram> yes.
[15:42] <niemeyer> Aram: The Launchpad project is "juju-core" :-)
[15:42] <Aram> ah, so I should push mstate there?
[15:42] <niemeyer> Aram: and it should be pushed in very small steps that feel solid, so we can see the experience flowing
[15:42] <fwereade> niemeyer, btw, if you have a moment to take a look at https://codereview.appspot.com/6298082/, it should be quick
[15:42] <Aram> yes, of course.
[15:43] <Aram> so niemeyer, the mstate directory should be in juju-core/juju? I used an out of tree directory for now.
[15:43] <fwereade> niemeyer, I'm just updating it now such that it includes the error checks you suggested in the unit-relation-watcher review but that shouldn't affect how good it looks
[15:44] <niemeyer> Aram: Yeah, side by side with the real state
[15:44] <Aram> niemeyer: ok, understood.
[15:46] <Aram> btw niemeyer, we use only a limited subset of the state api: http://paste.ubuntu.com/1040999/ that listing is about 90% accurate.
[15:46] <Aram> I generated it to prioritize work.
[15:46] <niemeyer> Aram: Yes, because TheMue has been rocking solidly porting the real API
[15:47] <niemeyer> Aram: The API is entirely used assuming we finish the port of juju to Go using similar logic to Python
[15:47] <niemeyer> Aram: I suggest starting with the easy wins, to get our feet wet
[15:49] <rogpeppe> niemeyer, Aram: i wonder whether we should do some watcher stuff early on, because that's where our state stuff differs most from conventional mongo usage
[15:50] <niemeyer> fwereade: Reviewed
[15:51] <niemeyer> rogpeppe: As I just said, I'd prefer to start with some easy stuff first, to get our feet wet
[15:51] <fwereade> niemeyer, good point, thank you
[15:51] <niemeyer> rogpeppe: The mstate package doesn't exist, we have zero infrastructure working, we don't know even the basic patterns we want to use
[15:52] <niemeyer> rogpeppe: Thinking about watches when we miss all of that will be messy
[15:52] <rogpeppe> niemeyer: definitely. just we shouldn't get too far into implementing juju structures and then realise they're incompatible with the way we need to implement watchers
[15:52] <niemeyer> rogpeppe: The state package is not too far, in its entirety
[15:52] <rogpeppe> niemeyer: but gotta start with something!
[15:53] <niemeyer> Let's just get something going, slowly and solidly
[15:57] <rogpeppe> niemeyer: BTW sometime it would be great if you could do that goamz resilience stuff, so i can run -amazon tests more reliably.
[15:58] <rogpeppe> niemeyer: (another "handshake error"...)
[15:58] <niemeyer> rogpeppe: Sounds good
[15:58] <niemeyer> First, I'll have lunch!
[15:58] <niemeyer> :)
[15:58] <niemeyer> See you guys soon
[15:58] <rogpeppe> niemeyer: enjoy!
[16:13] <TheMue> fwereade: pong
[16:13] <fwereade> TheMue, NoRelationError is starting to feel a little bit redundant
[16:14] <fwereade> TheMue, I was thinking of replacing it with a bare-faced "relation doesn't exist"
[16:14] <fwereade> TheMue, and trusting the clients' errorContextf~s to give necessary context
[16:15] <TheMue> fwereade: Sounds reasonable, now with errorContextf.
[16:16] <TheMue> fwereade: Btw, it has been niemeyers idea.The trick with using pointers inside is cool.
[16:17] <fwereade> TheMue, regardless of initial source, it's cool; thank you for implementing it :)
[16:18] <TheMue> fwereade: ;)
[17:06] <rogpeppe> niemeyer: i've gotta go now, but this is what i'm looking at currently: http://paste.ubuntu.com/1041100/
[17:13] <niemeyer> rogpeppe: Looks nice!
[17:19] <fwereade> niemeyer, btw, I've been meaning to ask
[17:20] <fwereade> niemeyer, can you precis your ideas for multi-endpoint relations?
[17:20] <fwereade> niemeyer, I can see how they make sense for peer relations
[17:20] <fwereade> niemeyer, but beyond that my brain breaks
[17:21] <fwereade> niemeyer, (where "multi" means "more than we currently accept for a given relation kind")
[17:22] <niemeyer> fwereade: Hmm
[17:23] <niemeyer> fwereade: My brain doesn't break.. it simply stops thinking.. :-)
[17:23] <niemeyer> fwereade: I'm not foreseeing all kinds of relations we may come up with
[17:23] <niemeyer> fwereade: It may well turn out that we need none other than what we have
[17:24] <niemeyer> fwereade: The concerns I raised in terms of the architecture are mainly to leave the door open, since we can, rather than preparing for a specific feature that I have in mind
[17:25] <fwereade> niemeyer, ok, cool, thanks
[17:25] <fwereade> niemeyer, as and when we add them I imagine we'll need to take a fine-tooth comb to the existing relation code anyway, so I probably shouldn't worry *too* much about them now
[17:26] <niemeyer> fwereade: Agreed, not too much
[17:26] <niemeyer> fwereade: The sensible and simple will likely be a good step no matter what we need in the future
[17:27] <fwereade> niemeyer, as always :)
[17:27] <fwereade> niemeyer, I've re-proposed https://codereview.appspot.com/6303060/
[17:27] <niemeyer> fwereade: +1 :)
[17:27] <niemeyer> fwereade: Thanks a lot
[17:28] <fwereade> niemeyer, it's much smaller than it looks really
[17:28] <fwereade> niemeyer, and I'm not quite sure ServiceRelation is sane, but fixing that is definitely a job for another CL
[17:28] <niemeyer> fwereade: +1
[17:29] <niemeyer> fwereade: Wow, 6 days
[17:29] <niemeyer> fwereade: Was it in the review list?
[17:29] <fwereade> niemeyer, I took it out
[17:29] <niemeyer> fwereade: Aha, phew, ok
[17:29] <niemeyer> I'm not crazy then
[17:30] <fwereade> niemeyer, that pipeline was going in a bad direction, but I think I've found the right one now
[17:30] <niemeyer> fwereade: Superb
[17:33] <fwereade> off for now, gn all
[17:34] <niemeyer> fwereade: Night man
[17:40] <TheMue> fwereade: Bye
[18:29] <niemeyer> robbiew: call time?
[18:34] <niemeyer> Maybe not.. :)
[18:37] <robbiew> niemeyer: yep..just running late
[18:39] <robbiew> niemeyer: still around?
[18:39] <niemeyer> robbiew: Yo
[18:41] <niemeyer> Creepy.. the phone rings with the hangout before the laptop sees it
[20:29]  * niemeyer steps out for a nice coffee break
[20:29] <niemeyer> Back later for more reviewing
[21:34] <fwereade> rogpeppe, ping
[21:36] <fwereade> rogpeppe, if you happen to get this, please let me know what the purpose of the unused state.Unit.isPrincipal field is :)
[22:51] <niemeyer> fwereade: Tells if the unit is a principal unit or not?
[23:02] <niemeyer> davecheney: Morning
[23:02] <davecheney> niemeyer: hello
[23:02] <niemeyer> davecheney: Sorry for not having gotten through your branches yet
[23:03] <davecheney> niemeyer: that is ok, i know everyone is busy
[23:03] <niemeyer> davecheney: I have a meeting right now, but will still try to clean things up a bit tonight
[23:03] <davecheney> niemeyer: for f in $(seq 1 5); do go test launchpad.net/juju-core/juju/store ; done
[23:03] <davecheney> ^ fails 1 in 5 times for e
[23:03] <davecheney> me
[23:03] <niemeyer> davecheney: Okay, always the same test I suppose
[23:04] <davecheney> [LOG] 35.45727 Socket 0xf841bf5900 to <IP_ADDRESS>:50017: killed again: read tcp <IP_ADDRESS>:50017: use of closed network connection (previously: Closed explicitly)
[23:04] <davecheney> OOPS: 25 passed, 1 FAILED
[23:04] <davecheney> yup
[23:04] <davecheney> actually it's,     c.Errorf("counter sum for %#v is %d, want %d", key, sum, expected)
[23:04] <davecheney> ... Error: counter sum for []string{"charm-info", "oneiric", "wordpress"} is 0, want 1
[23:06] <niemeyer> davecheney: Okay, that's shaky
[23:06] <niemeyer> davecheney: Knowingly shaky, that is
[23:06] <davecheney> yeah, i didn't think it was a big deal, i just rerun it
[23:29] <niemeyer> davecheney: Should definitely fix it, though
[23:30] <niemeyer> davecheney: WIll have a look it


[11:14]  * CyberKing is away from keyboard: Gone away for now.
[11:39]  * Ekushey-AFK is back.
[14:12] <boredandblogging> there are 2 locobots in #ubuntu-us-ga, locobot_4 and locobot_5, can one of them be removed?
[14:16] <jpds> boredandblogging: best poke smurf in -locoteams, he maintains the locobots, I believe
[14:17] <boredandblogging> jpds: thanks
[16:56] <emgent> hello, someone can join ubot in #ubuntu-hardened ?
[16:58] <jpds> hmm, /me has no admin powers anymore
[16:58] <jpds> stdin, jussi01 ^
[16:59] <jussi01> ubottu: join #ubuntu-hardened
[16:59] <jussi01> emgent: ^
[16:59] <jpds> hehe
[17:00] <emgent> gh
[17:00] <emgent> thanks
[19:22] <dantalizing> anyone having issues with nickserv?
[19:23] <ompaul> dantalizing, it was upgraded a couple of days ago but should work ok now
[19:23] <dantalizing> i keep getting bad password
[19:24] <Pici> dantalizing: If you cant login, make sure you are using the password of your master nick
[19:24] <Ekushey> is there any launchpad channel here?
[19:24] <dantalizing> Pici: master nick? i have only 1
[19:24] <jpds> Ekushey: #launchpad
[19:24] <Myrtti> dantalizing: perhaps the folks at #freenode know better?
[19:24] <Pici> dantalizing: Did your password have a % in it?
[19:24] <dantalizing> Pici: yes
[19:25] <dantalizing> Myrtti: they're my next stop
[19:25] <Pici> dantalizing: Ask in #freenode, I believe there was a bug with that
[19:25] <dantalizing> Pici: thx
[19:26] <Ekushey> thanks jpds
[19:26] <jpds> Ekushey: welcome.
[19:29] <PriceChild> dantalizing: replace the % with a *
[19:31] <dantalizing> PriceChild: thx
[19:31] <dantalizing> i hate having up arrow access in irc :(
[19:31] <dantalizing> but i love it
[19:32] <dantalizing> 'up arrow' being my technical term for history


[00:31] <akgraner> IdleOne, what is the difference in these 2 wiki's http://wiki.ubuntu-women.org/Fr/Evenement and http://wiki.ubuntu-women.org/Fr/Basededonnée
[00:32] <akgraner> I put both headers on one wiki so you can see them
[00:32] <akgraner> http://wiki.ubuntu-women.org/test
[00:36] <akgraner> oh NEVER MIND ME I GET IT  - DOH!
[01:46] <akgraner> http://wiki.ubuntu-women.org/PagesNeedingTranslated - ok *now* I think it's ready :-)
[03:01] <IdleOne> akgraner: PagesNeedingTranslated looks awesome :)
[03:04] <akgraner> thanks hope that helps I need to rearrange some of the columns in a better priority
[03:04] <akgraner> but it's a start
[03:10] <IdleOne> I like it
[03:12] <IdleOne> also created a Fr/ImpliquéVous/UbuntuWomen == GetInvolved/UbuntuWomen
[03:13] <IdleOne> keeping track of all these links in my head is making me dizzy :)
[03:13] <pleia2> gosh, I really need to go through this
[03:13] <pleia2> Robin hasn't been the planet contact for years
[03:15] <pleia2> there, fixed
[03:17] <pleia2> I am not sure the Ideas page should be translated per se
[03:17] <pleia2> maybe an Ideas page for each language would be useful
[03:19] <pleia2> Events is one we we need to fix up too
[03:19] <IdleOne> hehe your killing me
[03:19] <pleia2> sorry :\
[03:19] <IdleOne> lol
[03:20] <nigelbabu> IdleOne, she can be a slave driver sometimes :D
[03:20] <pleia2> Events is on the to be fixed page!
[03:20] <pleia2> nigelbabu: aww, give me a break, I was at work when akgraner put this page together :)
[03:20] <nigelbabu> pleia2, j/k
[03:20] <IdleOne> where is the to be fixed page?
[03:21] <pleia2> http://wiki.ubuntu-women.org/WeShouldFix
[03:21] <pleia2> in progress
[03:21] <pleia2> we should also hold off on translating Translators
[03:22] <akgraner> lyz shoot me which pages to hold off on
[03:22]  * pleia2 removes link to defunct goog group
[03:22] <akgraner> I'll color code them with some obnoxious color
[03:22] <nigelbabu> whats wrong with the mentors page btw?
[03:22] <akgraner> not up to date
[03:22] <pleia2> nigelbabu: it doesn't reflect reality, we've never used that
[03:22] <akgraner> needs to be reworked
[03:23] <pleia2> it's a maverick goal :)
[03:23] <nigelbabu> meaning, you want more people listed offering services?
[03:23] <akgraner> pleia2, I am still editing the all pages page
[03:23] <akgraner> once I am finished can you makes some notes on there
 we should also hold off on translating Translators. OK blocked off
[03:24] <pleia2> I think GetInvolved/UbuntuWomen is ok now
[03:24] <akgraner> as I complete stuff I will just comment it out but have it for history
[03:24] <pleia2> Ideas should be per-language probably, not translated directly
[03:24] <akgraner> give me like an hour I am on the "G's" tight now
[03:24] <pleia2> shouldn't PagesNeedingTranslated be PagesNeedingTranslation? :)
[03:26] <pleia2> I guess I'll hold off on this
[03:27] <IdleOne> pleia2: on Translators page Please Contact Us, and I will add you to the [[http://groups.google.com/group/i18n-mentor|i18n-mentors]]...  the Contact Us should have an email link or link to mailing list??
[03:27] <pleia2> IdleOne: I removed that
[03:28] <IdleOne> oh ok ##
[03:28] <IdleOne> I see
[03:28] <IdleOne> never mind
[03:28] <pleia2> yeah
[03:28] <pleia2> this was written ages ago by a woman who is no longer involved
[03:29] <IdleOne> Fr has 4 pages completed :)
[03:30] <pleia2> oh, I remember these GetInvolved/ pages
[03:30] <pleia2> I wrote all these when I was hoping we could move http://ubuntu-women.org/getinv.html to the wiki
[03:30] <pleia2> before I had web access
[03:31] <pleia2> if you notice, GetInvolved/UbuntuWomen is almost a duplicate of the bottom of http://ubuntu-women.org/getinv.html
[03:31] <pleia2> the website was actually updated, the wiki was not
[03:31] <pleia2> that's why the wiki was out of date, it wasn't really being used
[03:31] <pleia2> we replaced all the other GetInvolved/ pages with a link to the official Ubuntu documentation
[03:32] <pleia2> anyway, the GetInvolved pages should either be deleted, or linked to the main website
[03:32] <pleia2> (I vote most of them being deleted, duplicating the work of the official docs is silly)
[03:34] <IdleOne> so no getInvolved?
[03:35] <pleia2> we can probably keep GetInvolved/UbuntuWomen - but it should be renamed to something else, maybe just GetInvolved
[03:35] <pleia2> and remove all the GetInvolved subpages
[03:35]  * pleia2 does this
[03:38] <pleia2> ok, all we have now is http://wiki.ubuntu-women.org/GetInvolved
[03:39] <pleia2> which has questionable usefulness, but we can keep it for now :)
[03:40] <IdleOne> ready for translation?
[03:40] <pleia2> sure
[03:40] <pleia2> not changed much from GetInvolved/UbuntuWomen
[03:41]  * pleia2 goes to see about food
[03:43] <elky> <3 the wiki
[03:43] <nigelbabu> elky, ah, just the person I was lookin for :)
[03:44] <elky> eep!
[03:44] <nigelbabu> elky, do you mind a PM?
[03:44] <elky> go for it
[03:58] <akgraner> pleia2, Chrome just crashed and none of my changes on the All pages saved
[03:58] <akgraner> I am callin it a night
[03:58] <akgraner> just add notes for me and I'll look at in the morning
[04:04] <akgraner> oh crap the IRC Purpose needs to be fixed as well - looks like it is still all the ideas
[05:01] <pleia2> akgraner: doh :( will do - have a good night!
[05:17] <nhandler> pleia2: Thanks for adding the Ubuntu Women team reports. You might want to follow this guide https://wiki.ubuntu.com/BuildingCommunity/TeamReporting/HowTo and switch to the newer method of using <Include()> tags for the reports
[05:18] <pleia2> nhandler: we can't include, we're on a different wiki
[05:18] <pleia2> sorry :(
[05:18] <pleia2> wiki.ubuntu-women.org isn't at all linked with wiki.ubuntu.com
[05:18] <nhandler> Hmm...Let me double check. I thought there was a way
[05:19] <pleia2> I would have done it properly months ago if I knew of a way (I already converted a bunch of teams to that new way)
[05:22] <nhandler> Let me think about this. I believe my script that prepares the reports would handle the <<Include tag properly, but the wiki doesn't want to display it.
[05:24] <pleia2> ok, thanks :)
[06:03] <akgraner> Good Morning :-)
[06:03] <maco> akgraner: why are you awake again already?
[06:03] <maco> akgraner: it's still sleepy time in our timezone!
[06:03] <pleia2> +1
[06:03] <rww> the IRC addiction is starting to take hold of akgraner!
[06:04] <akgraner> i have no idea - I only take naps these days - maco - haha what are you awake
[06:04] <maco> akgraner: im a student. im always up late
[06:04] <pleia2> akgraner: I worked on AllPages lots
[06:04] <akgraner> rww, IRC Intervention
[06:05] <akgraner> sounds like a great idea for a blueprint
[06:05] <rww> akgraner: I think I need one of those.
[06:05] <maco> me too
[06:05] <akgraner> pleia2, oh cool thank you!!!
[06:06] <akgraner> hehe bekabug that's cool - we call my daughter BeccaBug :-)
[06:06] <maco> akgraner: have you checked that your daughter's actually asleep?
[06:06] <akgraner> maco, hehe
[06:07] <akgraner> yeah - between wrestling, colorguard and gardening she is tired these days
[06:07] <maco> wow
[06:08] <akgraner> oh and performing - she is going to be performing at the Goat Festival  that invited me to set up the ubuntu Booth
[06:08] <akgraner> should be a really fun time and a great new way to introduce people to open source via ubuntu
[06:10] <akgraner> pleia2, WOW!
[06:10] <akgraner> you weren't kiddin were ya
[06:10] <pleia2> :)
[06:12] <maco> the goat festival?
[06:21] <akgraner> pleia2, 39 Languages  - I left of Slovenian, Swedish , and Spanish somehow :-/
[06:21] <akgraner> maco, yep the American Dairy Goat Farmers have a headquarters in Spindale NC
[06:21] <pleia2> doh
[06:21] <akgraner> (of all places)
[06:22] <akgraner> and they raise goats to give to women in Africa
[06:22] <akgraner> well one of the things they do is that
[06:22] <akgraner> and show give them a way to make a living with goats
[06:23] <akgraner> and when they found out about "ubuntu" the philosophy, spirit, and the OS and that is has it's roots in Africa - they said "You have to have a booth at the Festival"
[06:24] <akgraner> to which Pete replied - talk to my wife - she is the community person and she can help you with your computer  (I was a little touched by the fact he told them to talk to me)
[06:25] <maco> hehe sorry i gotta laugh at the kernel hacker saying that the still-calls-herself-NTEU is the one that can help with the computer
[06:26] <akgraner> yeah well about that  - yeah I think I will always call myself and NTEU for some reason..  me looks around for nigelbabu (he said he was going to kick me everytime I call myself that :-P )
[06:26] <akgraner> an not and
[06:28] <akgraner> so now the music store where Becca, Pete and Matt take lessons from all their computers are Ubuntu, the wireless provider we have runs Ubuntu Servers, the Goat Festival People are trying it out and I have a meeting with our economic planning board to see where the city can start using open source
[06:28] <akgraner> so yeah kinda cool
[06:28] <akgraner> out of the box kinda stuff
[06:28] <maco> wow
[06:29] <maco> YOU ROCK HARDCORE!
[06:29] <maco> um...or gospel...if you prefer
[06:29] <akgraner> hehe
[06:29] <akgraner> it's all good
[06:29] <akgraner> now if I could only make money doing all this I would be golden :-)
[06:29] <maco> my brain just went "wait! catholic! easter! Devils Music doesnt it!"
[06:30] <maco> s/it/fit/
[06:30] <akgraner> HAHA
[06:30] <akgraner> nah time and place for everything :-)
[06:31] <akgraner> I haven't been teaching much lately - 45 mins to get to the church or the school here so... I have gotten lazy and don't want to drive places unless I *have* too these days
[06:32] <akgraner> but I did find out there is a whole group of Ubuntu Users who are working to get the Catholic Church to use Ubuntu and or any Open Source OS and/or applications
[06:32] <maco> Ichthus?
[06:33] <maco> (cant spell...stupid word)
[06:33] <akgraner> I dunno - I haven't looked into really
[06:33] <akgraner> someone just sent me links - and well I have enough to do atm  - figured that could wait
[06:34] <akgraner> I added it to my "this would be cool to look into when I have nothing else todo" folder
[06:35] <maco> icthus used to be "christian edition"
[06:35] <maco> the i-word i cant spell is christian edition
[06:36] <maco> the s-word i cant spell is muslim edition
[06:36] <akgraner> nah - I that's not it - but last year when I was talking about parental controls I saw something about it though
[06:36] <akgraner> they have some interesting parental controls
[06:36] <maco> dansguardian?
[06:37] <akgraner> yep
[06:37] <akgraner> well one of the things they use
[06:37] <maco> i put that on my cousin's laptop before giving it to her
[06:37] <maco> though iirc theres no gui to configure it?
[06:37] <akgraner> there is not any *one* thing but a series of things they recommend iirc
[06:37] <akgraner> it's been over a year now - kinda foggy on the details with that these days
[06:38] <akgraner> yeah I can't remember off the top of my head now
[06:38] <akgraner> and too lazy to switch desktop windows and google it
[06:38] <akgraner> so sad
[06:39] <akgraner> dang it  - this enter key and I  -  I meant   - so sad I am so lazy :-P
[06:39] <akgraner> anyone use inkscape?
[06:40] <maco> i do
[06:40] <akgraner> oh cool
[06:40] <maco> what did i just sign up for?
[06:40] <akgraner> you'll be at SELF right?
[06:40] <rww> I can kinda use it.
[06:40] <maco> yes i will
[06:40] <maco> i *may* have figured out carpool/hotel-room-share too
[06:40] <akgraner> I still can't figure it out well enough to use just inkscape and hope back to pages when I get stuck trying to do something
[06:41] <maco> oh
[06:41] <maco> ive never used inkscape for like....a newsletter
[06:41] <akgraner> hop I mean
[06:41] <maco> just to make individual images to use in other stuff
[06:41] <maco> i use scribus for desktop publishing type stuff
[06:42] <akgraner> yeah  - GIMP and I are BFF's these days and I want to learn to use and open source desktop publisher
[06:42] <rww> akgraner: inkscape isn't really a desktop publisher
[06:42] <akgraner> and well neither scribus or inkscape are working for me (learning curve issues I am sure)
[06:43] <rww> well, I guess it is. I just use it for vectory stuff.
[06:43] <akgraner> rww - hmmm then I wonder why I keep getting told to use inkscape
[06:43] <maco> akgraner: will you be at OLF? i intend to submit a talk thats an overview of inkscape
[06:43] <akgraner> yep - I'll be there too
[06:43] <maco> it *can* be used for publishing. thats how FCM is done
[06:43] <akgraner> I submitted 3 talks to OLF hoping 1 would get picked up
[06:43] <maco> FCM had a howto on how they did it
[06:44] <rww> I've never used scribus, I should try it out some time
[06:44] <akgraner> maco, oh cool - I'll have to look for that - I'll have some samples of things I do in Pages - and maybe we can figure out how to help me understand how to do them in inckscape
[06:45] <akgraner> well if ya have time to help me that is  - I am assuming a lot aren't I :-/  sorry about that
[06:46] <akgraner> rww, I tried scribus and inkscape last last Feb - March ('09)  and  well  - it was painful and very frustrating
[06:47] <akgraner> so I just used open office for some simple stuff I was working on
[06:47] <rww> akgraner: yeah.  It is hard :(
[06:47] <maco> akgraner: remember the vine i made? that was in inkscape
[06:47] <akgraner> rww is that what was used for the CD covers
[06:48] <maco> akgraner: it took like 3 days i think
[06:48] <rww> akgraner: yeah
[06:48] <akgraner> maco, vaguely
[06:48] <maco> akgraner: http://wiki.ubuntu-women.org/Ideas/TShirtDesigns
[06:49] <rww> I guess those CD sleeves are desktop publishing, come to think of it. So yeah, I'm crazy, it is a DTP tool :S
[06:49] <akgraner> rww, yeah after OSCON last year I revisited inkscape  because I want to modify the CD cover to use  and well as you can see I don't have a modified one sooo...
[06:50] <akgraner> maco, now I remember
[06:50] <akgraner> that is cool
[06:51] <akgraner> I would really like to learn to use those 2 applications
[06:52] <akgraner> maco, just added SELF - Maco - inkscape to my Calendar :-)  hehe
[06:52] <maco> akgraner: hehe ok. we'll do an in-person tutorial thingy and then that'll help me figure out how to explain at OLF if i get to speak there again
[06:52] <maco> though ooooh id also LOVE to show off MyPaint
[06:53] <akgraner> There should be time  - will be coming to SC on Friday?
[06:53] <maco> last OLF when she got off the stage i grabbed ebeth to tell her about how awesome mypaint is. then at the party that night i handed her my laptop and wacom to play
[06:53] <akgraner> ubucon from 1-6 on Friday and 9-noon on Sunday
[06:53] <maco> thats the plan
[06:53] <maco> but not by 1!
[06:54] <maco> i have school around noon i think
[06:54] <akgraner> no worries I will be there Thursday through Sunday
[06:54] <maco> alrighty
[06:54] <akgraner> rww, you going to make it Portland for OSCON this year?
[06:55] <akgraner> make it to
[06:55] <rww> akgraner: I haven't decided yet.
[06:55] <akgraner> dang it - sorry you have to read my mind
[06:55] <akgraner> ahh ok - I'll be there for CLS and OSCON - doing the Linux Pro/Ubuntu User booth again
[06:57] <akgraner> Gareth and I submitted a talk to OSCON - well he submitted it - I just helped with it - so we are waiting to see how that goes
[07:00] <akgraner> I think I have had entirely too much caffeine in the last 24 hours
[07:01] <akgraner> sorry y'all for babbling
[07:56] <akgraner> HaHa you mean there really is more than one Linux Distribution - http://www.linuxtoday.com/infrastructure/2010040300735OSCY
[08:19] <Mamarok> hm, Carla seems to change distro quite often lately, I remember a post of her about switching to PCLinuxOS
[08:19] <Mamarok> not so long ago
[08:19] <maco> probably gives 'em all a shot to see whats new so she can report on t
[08:24] <czajkowski> aloha
[12:10] <melissawm> hi folks, anyone around?
[12:33] <elky> melissawm, kinda. 'sup?
[12:37] <melissawm> hi! :) i just wanted some little help with the translation of the wiki
[12:38] <melissawm> in the "how to translate" page, the instruction is to create a translated page right away. is that what i should do? even if the translations are not 100% complete?
[12:50] <Dolasilla> Hi Melissawm! to solve issue with uncomplete translations you can copy the existing english page to the new one, so for the untraslated part you can leave the english text
[12:50] <Dolasilla> to copy the page you can use the "actions" on the top of the page. One of the available actions is to perform the copy of the page
[12:52] <melissawm> Dolasilla: great! thanks :) another small question though: in the translations project, we use pt_br as our language code. in the page that is linked in the how to translate wiki, there is no such language code, though
[12:52] <melissawm> but if i use pt (for portuguese) i'll be trampling over portuguese (from portugal) as opposed to pt_br which is portuguese from brazil
[12:54] <Dolasilla> :( sorry melissawm, I can't help on this, I thought you could simply set
[12:54] <Dolasilla> #format wiki
[12:54] <Dolasilla> #LANGUAGE it
[12:54] <Dolasilla> on top of page
[12:54] <Dolasilla> sorry:
[12:54] <Dolasilla> in place of it, pt_br
[12:55] <Dolasilla> but I don't know if it works
[12:55] <melissawm> ok. i can always do this now, and if it's wrong i can fix it later, right?
[12:55] <Dolasilla> of course! :)
[12:55] <melissawm> great :) thanks!
[12:55] <Dolasilla> your welcome! :) gotta go now, bye! :)
[12:55] <melissawm> i have to go now but thanks for your help!
[14:10] <czajkowski> .c
[14:27] <AlanBell> .py
[14:51] <jussi01> .h
[15:34] <akgraner> http://wiki.ubuntu-women.org/PagesNeedingTranslated  If someone is looking to translate the wiki pages - please direct them to this table 1st :-)  I'll add it to the mail wiki page as well
[17:09] <popey> maco: http://img708.yfrog.com/i/o8j.jpg/
[17:10] <popey> Doctor Who biscuits!
[17:25] <maco> popey: i made blue TARDIS biscuits once. crimsun has a photo somewhere
[17:25] <popey> :)
[20:04] <crimsun> they're on my pc; do you want me to post them?
[20:14] <akgraner> biscuits as in cookies or biscuits as in southern style breakfast ones?
[20:19] <crimsun> former-
[20:22] <maco> akgraner: "biscuits" as in "popey said it, so go with the british meaning"
[20:24] <akgraner> that is so strange to me :-/  some southern things are just en-grained  and sound so funny with any other meaning  - :-p
[20:24] <popey> biscuits over there are like muffin things arent they?
[20:25] <popey> i recall hearing KFC do chicken, biscuits and gravy? whereas in the UK it's chicken, chips, beans
[20:25] <popey> er, thats french fries :)
[20:26] <popey> gah, I'm hungry now :)
[20:29] <popey> maco: http://www.guardian.co.uk/tv-and-radio/tvandradioblog/2010/apr/03/doctor-who-eleventh-hour - note- contains spoilers