[08:52] <JamesTait> Happy Star Wars Day! *8OD
[09:39] <mandel> morning all!
[12:39] <ralsina> good morning!
[12:40] <czajkowski> morning
[12:40] <czajkowski> very quiet in here this week
[12:42] <rye> czajkowski: yes, time after time i type something then erase to check whether the ssh session is stale
[12:42] <czajkowski> heh
[12:42] <rye> even though i have byobu with clock
[12:47] <rye> ralsina: O_O
[12:47] <rye> ralsina: i thought it is being unsubscribed
[12:47] <ralsina> rye: nope
[12:47] <ralsina> rye: try it though, I may be wrong about it.
[12:48] <ralsina> rye: but it will have metadata for all the files, and the files will not be there, so it will delete them, IIRC
[12:48] <rye> ralsina:  2012-05-04 15:48:04,455 - ubuntuone.SyncDaemon.AncestorsINotProc - INFO - Got MOVED_FROM on path '/home/rtg/Test', unsubscribing udf <UDF id '4531f4bf-ae1b-40ae-91b9-57257fe023f2', node_id 'f2b7b7fc-01d8-4053-a6fd-c9e2fed47a81', generation 19606L, active True, real path '/home/rtg/Test'>
[12:48] <ralsina> rye: OTOH, II did not RC I just looked very foolish ;-)
[12:48] <ralsina> rye: that is moving, not deleting. So I am only half wrong so far ;-)
[12:49] <rye> ralsina: well....
[12:49] <ralsina> rye: stop syncdaemon, move it, start syncdaemon
[12:49] <rye> ralsina: deleting a folder is impossible w/o deleting all the contents, and these all will propagate to sd through inotify
[12:49] <ralsina> rye: yes, but try moving it while syncdaemon is not running, which is what I described in the mail
[12:50] <ralsina> rye: typically caused by mounting a removable media as a UDF and then failing to mount
[12:51] <rye> ralsina: i understand you
[12:51] <rye> ralsina: this will happen only if the root folder continues to exist
[12:51] <ralsina> ohhhh right
[12:52] <ralsina> rye: you are right, I was wrong
[12:52] <ralsina> rye: I will send a clarification
[12:52] <rye> ralsina: and in this case we need to do some clever checking of the mountpoint, to tell whether it vanished vs everything was deleted
[12:54] <ralsina> rye: I think if everything inside a volume disappeared withouth SD seeing it, we can assume it's dangerous enough that
[12:54] <ralsina> something smarter should be done
[12:54] <ralsina> rye: and thanks for catching that!
[12:54] <rye> ralsina: hm, that would also work
[12:55] <rye> ralsina: that would also work pretty well
[12:55] <ralsina> rye: so, the triggering condition would be "a volume with nothing in it", which is easy to detect
[12:56] <rye> ralsina: a volume that has nothing in it and it used to have something
[12:56] <ralsina> rye: right
[12:57] <rye> ralsina: otherwise all empty volumes will be unsubscribed and I have a test udf which is almost always empty
[12:57] <ralsina> rye: right
[12:57] <rye> oh, windows7 can mount NFS shares
[12:58] <ralsina> rye: yep
[12:58] <ralsina> rye: but it used to be very very flaky
[12:59] <ralsina> rye: at least when it was called unix services or windows it was
[13:05] <dobey> oi
[13:07] <ralsina> hi dobey
[13:08] <dobey> hi
[13:11] <ralsina> rye: maybe you have an answer for this guy http://askubuntu.com/questions/130691/problem-with-file-synchronization-for-huge-amount-of-files-using-ubuntu-one-in-1
[13:16] <rye> ralsina: bug #978903 definitely
[13:16] <rye> ralsina: as per file sync is deactivated - what does that?
[13:16] <ralsina> rye: nothing, AFAIK
[13:16] <ralsina> rye: it may be a crashed SD
[13:16] <ralsina> rye: because of OOMkiller or something
[13:17] <rye> ralsina: when there's no SD control panel shows file sync is stopped
[13:17]  * rye greps
[13:17] <rye> ralsina: also, verterok's tritcask going OOM...
[13:17] <rye> bug #987376
[13:18] <ralsina> rye: could be
[13:41] <mandel> ralsina, buenas!
[13:45] <ralsina> hola mandel
[13:46] <mandel> ralsina, today we have the 1-1 so feel free to let me know when it is ok for you
[13:46] <ralsina> mandel: in a bit!
[13:47] <mandel> ralsina, whenever you want :)
[13:51] <ralsina> mandel: as soon as this Guns'n'Roses playlist ends
[13:51]  * ralsina has priorities ;-)
[13:52] <ralsina> mandel: just kidding, starting mumble
[13:53] <mandel> ralsina, on, starting it :)
[13:53]  * alecu pictures ralsina dressed up as axl rose.
[13:53] <alecu> mandel, ^
[13:54] <ralsina> alecu: ja!
[13:54] <dobey> heh
[13:55] <ralsina> as axl rose in 2012? COmpletely doable.
[13:57] <ralsina> I don't have the hair though: http://cache.blippitt.com/wp-content/uploads/2009/10/axl-rose.jpg
[14:01] <dobey> lol
[14:01] <dobey> ginger with cornrows
[14:01] <dobey> ralsina: if you were going to oakland, we could totally get you hooked up with that hair
[14:01] <dobey> maybe we can get sil drunk and get him some braids
[14:02] <czajkowski> oh lord!
[14:02] <czajkowski> dont know which is funnier *maybe* get him drunk or *braids*
[14:14] <dobey> heh
[14:48]  * ralsina misses Arch package management. It was crap, but it was *fast* crap.
[15:01] <briancurtin> me
[15:01] <mandel> me
[15:03] <mmcc_gone> me
[15:03]  * alecu is not working today
[15:03] <dobey> meh
[15:04] <dobey> thisfred, ralsina: que pasa?
[15:04] <thisfred> me
[15:04] <thisfred> hola
[15:04] <ralsina> me
[15:05] <dobey> briancurtin: i think that's all. alecu/gatox are off today
[15:05] <briancurtin> DONE: some reviews on review day, installer work, sent binaries and installer off for signing
[15:05] <briancurtin> TODO: catch up on some bugs (syncdaemon as root, get_rootdir error)
[15:05] <briancurtin> BLOCKED: None
[15:05] <briancurtin> NEXT: mandel
[15:05] <mandel> DONE: research regarding fevents. FF project. ralsina 1-1
[15:05] <mandel> TODO: more FF. Some reviews.
[15:05] <mandel> BLOCKED: no
[15:05] <mandel> mmcc, please
[15:05] <mmcc> done: finished refactoring, windows VM finally works, started looking
[15:05] <mmcc> at SSO client macos bugs
[15:05] <mmcc> todo: keep looking at sso client bugs. They're packaging related and
[15:05] <mmcc> one is network-sensing
[15:05] <mmcc> blocked: none
[15:05] <mmcc> next: go dobey go
[15:05] <dobey> λ DONE: more backports work
[15:05] <dobey> λ TODO: reviews, more backports work, SRUs, u1db packaging/buildsys
[15:05] <dobey> λ BLCK: none.
[15:05] <dobey> thisfred: go
[15:05] <thisfred> DONE: bug 987412 TODO: adding tags functionality to u1todo BLOCKED: no NEXT: ralsina
[15:06] <ralsina> DONE: fun with SSL debugging, managementastic stuff, weekly call, varied 1-1s, doctor's appointment. TODO: some coding, hopefully, watch the avengers with gatox tonight, ubuntuone-installer debugging. BLOCKED: nop
[15:09] <ralsina> no comments? EOM it is.
[15:13]  * mmcc doesn't get to watch TV anymore, but bug 994254 is making up for it
[15:15] <ralsina> mmcc: we get all the funny ones, yes
[15:21] <briancurtin> haha. Python occasionally gets some good reports like that, and a few from spambots that sell viagra. they usually get closed with "works for me" as a resolution
[15:22] <mmcc> works for me :D
[15:26] <ralsina> briancurtin: now, looking at that bug... "Google (false authentication , go daddy or Thawte instead & there turned off)"
[15:26] <ralsina> rye: do you have a lucid box? Could you check that the SSL certificate in one.ubuntu.com appears as valid? :-)
[15:26]  * ralsina feels like he's reading rabbit entrails though
[15:29]  * briancurtin brb in a few minutes
[15:30] <dobey> mmcc: why did you vote "resubmit" on your branch? https://code.launchpad.net/~mikemc/ubuntuone-client/refactor-platform-event-logging/+merge/104301
[15:31] <mmcc> dobey, I misunderstood what that vote meant, and then didn't see a way to edit it
[15:31] <dobey> mmcc: vote again and change it to "abstain"
[15:31] <mmcc> dobey: ok
[15:32] <mmcc> dobey, done.
[15:32] <dobey> mandel: are you going to review that branch?
[15:34] <mandel> dobey, which one? https://code.launchpad.net/~mikemc/ubuntuone-client/refactor-platform-event-logging/+merge/104301
[15:34] <mandel> dobey, I can if no one else is doing it
[15:35] <mandel> dobey, oh, I was added, sure I'll do it
[15:35] <dobey> mandel: well there is a "Pending" for you on it :)
[15:35] <dobey> thanks
[15:35] <mandel> mmcc, you have conflicts in https://code.launchpad.net/~mikemc/ubuntuone-client/refactor-platform-event-logging/+merge/104301
[15:35] <mandel> mmcc, can you fix those?
[15:36] <dobey> need to run a few errands and get some lunch. bbiab
[15:36] <mmcc> mandel, argh, yes. will fix after 1-1 with ralsina now
[15:37] <mandel> mmcc, sure
[17:03] <dobey> hmm
[17:27] <dobey> mandel: can you check mmcc's branch again? looks like he fixed the conflict
[17:31] <dobey> ugh, and why is this sso branch 1200 lines
[17:33] <dobey> ugh i think this quantal vm is not usable. will have to re-do an upgrade from precise later
[18:00] <dobey> la la la
[18:00] <dobey> well blah
[18:14] <thisfred> ralsina: what is the best way to iterate over the items in a QListWIdgets? There is items() but that expects a QMimeData argument, which I don't know what to pass in for, because huh what?
[18:15] <ralsina> thisfred: uh... give me 1'
[18:16] <ralsina> thisfred: .item()
[18:17] <thisfred> thx
[18:17] <ralsina> for i in range(listwidgetthingie.count()): whatever.item()
[18:17] <ralsina> for i in range(listwidgetthingie.count()): whatever.item(i) // I mean
[18:18] <thisfred> that is mildly unpythonic ;)
[18:18] <thisfred> but it works
[18:18] <ralsina> thisfred: there is an iterator thingie but it's C++ to the core :-)
[18:20] <ralsina> thisfred: you could even do a all_items = listWidget.findItems('', QtCore.Qt.MatchRegExp)
[18:21] <ralsina> thisfred: or create the obvious generator that yields the items. All caveats about the universe imploding if you add/remove items apply
[18:23] <thisfred> ralsina: yeah, and of course that's what I need to do :)
[18:25] <SpamapS> Question about lp:ubuntone-storage-protocol .. it has no release-3_0_0 tag .. was it branched before 3.0.0 was released?
[18:30] <mmcc> mandel, dobey's right. check it at your convenience…
[18:30] <mmcc> mandel, that is: https://code.launchpad.net/~mikemc/ubuntuone-client/refactor-platform-event-logging/+merge/104301
[18:30] <dobey> SpamapS: huh?
[18:30] <dobey> SpamapS: oh, yes, the tags are on the stable-3-0 branch
[18:31] <dobey> SpamapS: we are branching the stable series at the beginning of the cycle, and make all releases from the stable series
[18:31] <dobey> mmcc: i think he's gone to the pub or something :-/
[18:32] <mmcc> dobey, yeah I guess it's just past beer thirty over there
[18:33] <dobey> yeah, it's 20:33 in Espana
[18:33] <briancurtin> i wish 1:30 was beer thirty
[18:33] <briancurtin> rather, 13:30
[18:36] <mmcc> briancurtin: heh. the rangers-capitals game tomorrow is 12:30, that's gotta be close enough…
[18:36] <SpamapS> dobey: yeah, I see that. It made it fairly hard to determine that a certain merge into 3.0.0 was released or not
[18:36] <SpamapS> I would expect trunk to have all the tags :-P
[18:37] <dobey> SpamapS: why? LP has the stable-3-0 branch linked for the precise release, doesn't it?
[18:38] <dobey> SpamapS: is this for the SRUs I did?
[18:38] <SpamapS> Yeah I found that later
[18:38] <SpamapS> dobey: yeah, they're releasing now :)
[18:39] <dobey> cool
[18:39] <SpamapS> well, the oneiric ones anyway
[18:39] <dobey> right
[18:39] <dobey> i haven't done any others yet :)
[18:40] <SpamapS> dobey: what I mean by the confusion though, is that it seems odd that trunk wouldn't have all of the tags from the stable 3.0.0 branch, plus more.
[18:41] <dobey> SpamapS: yeah i understood what you meant
[18:42] <dobey> i don't think there's any solution to that though
[18:42] <rye> yay! 2.0.1 is in oneiric!
[18:42] <rye> joshuahoover: ^
[18:42] <joshuahoover> hurray!
[18:46] <mmcc> wrt. ralsina's email from earlier today, can someone catch me up on what UDF means? from context it sounds like a secondary synced folder? is it "user-defined folder"?
[18:46] <ralsina> mmcc: exactly
[18:46] <ralsina> mmcc: we always sync ~/Ubuntu One, but the user can choose other folders to sync, those are UDFs
[18:46] <mmcc> ralsina: aha thanks.
[18:46] <ralsina> mmcc unless they are folders he gets from another user, those are "shares"
[18:49] <mmcc> ralsina: so that I understand this removal issue, the problem is it's hard to know whether a directory is empty because it's a vanished mount point or it's just been cleaned out while we weren't watching?
[18:49] <ralsina> mmcc: exactly
[18:50] <mmcc> ralsina, ok. I think on macos we could do the right thing for removable storage… at least for 99% of users.
[18:51] <ralsina> mmcc: cool, we need to think about those things
[18:51] <ralsina> mmcc: anyway, currently it's not possible to sync outside the user's home, so it's not as bad (unless you can mount things arbitrarily in mac?)
[18:52] <mmcc> ralsina - you can definitely do whatever mounts you want in macos, but *I expect* 99.9% of people don't.
[18:53] <mmcc> and the system handles removable storage and always puts it in /Volumes/
[18:53] <ralsina> mmcc: so if we are in there, we can assume it's a removable device
[18:53] <ralsina> mmcc: on linux that usually would be /media, too, so same idea
[18:53] <mmcc> yes, to be exact - if it's in there (and it's not a symlink to /) then we know it's not the boot drive…
[18:55] <dobey> oh man
[18:55] <dobey> the internet is full of lulz
[18:56] <dobey> ralsina: well, we can use the proper API to dtermine if something is local or not
[18:56] <dobey> ralsina: remote filesystems don't go in /media, for example
[18:58] <dobey> or mounted zip files
[19:04] <rye> An error has occurred during the check: Success
[19:04] <rye> ^ my windows kvm images are corrupted
[19:05] <dobey> -ESUCCESS is my favorite error
[19:06] <dobey> Error: faild to fail!
[19:07] <rye> they are bootable but cannot be cloned or converted
[19:07] <rye> i guess i have hit the bug with qemu-img
[19:07] <rye> and qcow2
[19:09] <ralsina> dobey: yes, we can examine the path looking for mountpoints
[19:09] <ralsina> dobey: and flag the volume as "on a removable device, treat carefully"
[19:10] <dobey> ralsina: or we could just use the simple glib or gio API which does everything already :)
[19:10] <rye> ok, this is definitely bad, deleted snapshot - disk became truncated
[19:10] <ralsina> dobey: sure :-)
[19:11] <mmcc> ralsina, dobey, from apple's docs, there is plenty of API to check if a given path is on a volume that is removable / ejectable / local, etc
[19:12] <dobey> right
[19:12] <mmcc> much smarter than my first thought to just make assumptions about /Volumes :)
[19:12] <ralsina> I wonder how syncdaemon reacts to unmounting while it's running
[19:13] <ralsina> "hey a lot of files disappeared but I got no delete events!"
[19:13] <mmcc> ralsina me too - that's actually easier to solve (again on macos), since we can register callbacks for eject / unmount events
[19:14] <ralsina> mmcc: on linux too, but they are async, so there is a good chance of weirdness
[19:20] <mmcc> this actually leads into something I wanted to discuss - it looks like the most straightforward way to get good mac integration is to write some C (or ObjC) extension modules. Is there any reason I should be trying to avoid that?
[19:21] <mmcc> building them right can be a little tricky but it's not a huge deal… just wondering if there were any reasons I wasn't thinking of…
[19:23] <dobey> what do you mean by "good mac integration" there?
[19:23] <dobey> to get the notifications of mount points?
[19:24] <mmcc> dobey, right now, I mean to access the equivalent of NetworkManager
[19:24] <mmcc> but the device add/eject callbacks are in C, and the volume info API is ObjC (although there is a 'bsd layer' C API too)
[19:25] <dobey> hmm. what are we doing exactly for network on windows right now? just acting like there is always network and failing when things fail?
[19:27] <mmcc> that's what the darwin code does now. it looks like on Windows, it accesses windll.wininet.InternetGetConnectedState
[19:28] <mmcc> which looks like the right thing
[19:28] <dobey> ah
[19:28] <dobey> so it's basically using some magical ctypes stuff
[19:29] <mmcc> thatis, ctypes.windll.
[19:29] <mmcc> yes
[19:29] <mmcc> so I guess at least for now I might be able to do the same thing and avoid building my own extension modules…
[19:29] <dobey> we'll probably need to do that on osx too, but i guess there isn't API in Python that already wraps it
[19:30] <mmcc> sorry, already wraps what?
[19:31] <dobey> already wraps the NSWhatever API
[19:34] <mmcc> ah, ok. so if we're OK adding a dependency on PyObjC, we can get all the Cocoa frameworks bridged for us, then we just do "from Foundation import NSWhatever" and we're off
[19:34] <mmcc> I've written a couple apps like that, it's not bad.
[19:36] <dobey> we'll probably need to do that. ralsina?
[19:41] <mmcc> well, it's something to think about. It depends on the number of times we need to call ObjC api. C api should be easy with ctypes
[19:43] <mmcc> and although PyObjC is continuously developed and used for a few shipping products, no one maintains it full-time.
[19:43] <ralsina> dobey: reading backlog
[19:43] <ralsina> mmcc: yes ctypes is fine
[19:44] <dobey> mmcc: so it's about time for pyobjc to make it into the core library? :)
[19:48] <mmcc> dobey: hmm. if that means Ronald would get some donations to spend time on it, then sure :)
[19:48] <dobey> heh
[19:49] <dobey> it means Python core library is where good modules go to die :P
[19:54] <briancurtin> in the same vein, i'd eventually like to put pywin32 in as well
[19:55] <ralsina> briancurtin: is there any chance of we ever getting a pywin32 egg?
[19:55] <ralsina> briancurtin: I never managed to build it because it needs the full VS (not the express one)
[19:56] <briancurtin> ralsina: i could look into building one if it would help
[19:56] <ralsina> briancurtin: would make it possible to skip one manual step in the env setup, maybe
[19:57] <ralsina> briancurtin: so, not important, now that we all have it setup ;-)
[19:57] <thisfred> ralsina: one more fun question: can I prevent a qlistwidget from selecting the first row automatically?
[19:58] <briancurtin> true. it is unfortunately one of the harder installers to find for python projects
[19:58] <ralsina> thisfred: of course
[19:58] <ralsina> thisfred: in fact, it only does that if the list has kbd focus
[19:58] <ralsina> thisfred: you want it to be selectable still?
[19:58] <thisfred> maybe I did something stupid to cause it, but it always does it on startup
[19:58] <thisfred> ralsina: yeah it should be selectable
[19:59] <ralsina> thisfred: setCurrentItem(None) IIRC
[19:59] <thisfred> ralsina: ah
[19:59] <thisfred> ralsina: but when do I do that: the selection seems to happen after my __init__ is executed
[20:00] <thisfred> is there an onLoaded signal?
[20:00] <ralsina> thisfred: ok, do you have any other widgets visible?
[20:00] <thisfred> yep
[20:00] <thisfred> give t
[20:01] <thisfred> hem focus?
[20:01] <ralsina> thisfred: no, there isn't
[20:01] <ralsina> right
[20:01] <ralsina> change the tab order so another widget is focused
[20:01] <ralsina> you can do that from designer
[20:02] <thisfred> ralsina: awesome, works
[20:03] <ralsina> thisfred: try it first. I have been known to lie.
[20:03] <thisfred> I did :)
[20:05] <ralsina> hehe
[20:06] <ralsina> Nice to know my devs know me.
[20:12] <mandel> mmcc, dobey approved
[20:14] <mmcc> hi mandel, thanks
[20:18] <thisfred> ralsina: for all your help, I give you: ONE FREE REVIEW! Limited time offer. Void where prohibited. May cause drowsiness and prolonged vomiting. Patent pending.
[20:18] <thisfred> https://code.launchpad.net/~thisfred/u1db/u1todo-4/+merge/104802
[20:18] <ralsina> thisfred: I have to skip in about 12 minutes to take my son to see The Avengers ;-)
[20:18] <thisfred> ralsina: fair enough :)
[20:18] <ralsina> thisfred: so it will be there for you on MONDAY
[20:18] <thisfred> ralsina: no hurry
[20:19] <thisfred> maybe dobey can tear me a new one in the meantime
[20:21] <dobey> thisfred: you are a miserable human being.
[20:21] <thisfred> dobey: I try
[20:22] <dobey> thisfred: no i take that back, you're not human. you're dutch.
[20:22] <dobey> :)
[20:22] <thisfred> dobey: In that case, please pay extra close attention to the XML! :P
[20:23] <thisfred> dobey: I'd ask gatox, but he's argentinian, so he doesn't work on days that end in 'day'
[20:24] <thisfred> or however they determine public holidays there ;)
[20:25] <dobey> haha
[20:29] <ralsina> thisfred: he's on swap today. And also coming to see the avengers with me ;-)
[20:29] <dobey> 548 lines? crikey
[20:29] <thisfred> dobey: chill, half of that is XML you can skip
[20:30] <thisfred> ralsina: have fun!
[20:30] <dobey> and the other half is python i can skip? :)
[20:30] <thisfred> dobey: sure, rubber stamp it. It won't come back to haunt you some day. Probably.
[20:31] <dobey> isn't this supposed to be a well documented demo app?
[20:31] <thisfred> dobey: ehhh, I didn't want the diff to get overly long? :D
[20:32] <thisfred> dobey: working on that for my next branch
[20:32] <thisfred> also, it's python, so fairly self explanatory.
[20:32]  * thisfred hides
[20:33] <dobey> eh whever
[20:33] <dobey> pronounced with a Harvard wh
[20:35] <thisfred> I'm still hearing your inner valley girl
[20:36] <dobey> it's too ghetto to be valley girl
[20:57]  * mmcc has a spike with ctypes-based macos network detection working
[20:58] <ralsina> EOW for me. Have fun people!
[21:00] <mmcc> bye ralsina, have a great weekend
[21:01] <dobey> that was no 12 minutes!
[21:38] <dobey> later all. have a good weekend!
[21:42] <briancurtin> see ya dobey
[21:50] <thisfred> dobey: since you asked: https://code.launchpad.net/~thisfred/u1db/u1todo-whats-up-doc/+merge/104811
[21:50] <thisfred> oh nm: have a great weekend!
[21:50]  * thisfred off too
[22:05] <mmcc> bye everyone