/srv/irclogs.ubuntu.com/2012/05/08/#ubuntuone.txt

=== mpt_ is now known as mpt
=== mmcc_away is now known as mmcc_hatesitunes
=== mmcc_hatesitunes is now known as mmcc
=== dduffey_afk is now known as dduffey
=== yofel_ is now known as yofel
=== urbanape` is now known as urbanape
mandelmorning all!07:35
=== lisettte` is now known as lisettte
JamesTaitGood morning, folks! :)09:11
=== daker is now known as daker_
=== thisfred_ is now known as thisfred
gatoxgood morning!11:01
mandelgatox, morning!11:39
mandelgatox, how is the fsevents going?11:39
gatoxmandel, hi..... i was reading a lotttttt yesterday, because of the way the lib works, i couldn't find a way to implement it just as in windows, so i was starting another approach... if you want we can have a mumble about that11:42
gatoxmandel, i mean.... filesystem_notifications is going to work in the same way... but i need to change some things in watch and watchmanager11:42
mandelgatox, no worries, I was just curious, take your time11:43
mandelgatox, in my side I managed to get an objective-c and python (with twisted) talking with eachother via the use of objective-c distributed objects11:43
mandelgatox, I'm looking at how to provide security on top of that11:44
gatox_macmandel, cool!!11:45
gatoxtesting testing....11:46
gatoxjeje..... the messages from this client was working.... i could see the message in the other machine, but not hear.... it seems to be working now11:46
gatoxs/was/wasn't11:46
mandel:)11:46
thisfredmandel: there is no way to get credentials without twisted, correct?11:58
mandelthisfred, what do you mean?11:59
thisfredfrom ubuntuone.platform.CredentialsManagement, I mean11:59
mandelthisfred, on windows no, on linux the code uses dbus12:00
mandelthisfred, it might be the case that is has a deferred but that does not mean you need a twisted mainloop12:00
thisfredwell, I need a mainloop12:00
thisfredI can't just call something and get the value, or can I?12:00
thisfredinlineDeferreds?12:01
mandelthisfred, you can ask the keyring to get the creds directly via the dbus api12:01
thisfredyeah, but I'd like to reuse what we have, because that makes more sense, and presumably will make the example code less complex12:02
mandelthisfred, ok, waht are you using to write the app?12:02
thisfredqt12:02
mandelthisfred, then you do have a mainloop, the qt one, so don't worry about it, just use inlineCallbacks to make it simpler to read12:03
thisfredso presumably I already have a mainloop somewhere12:03
thisfredmandel: cool12:03
mandelthisfred, you always have a mainloop with qt, otherwise signals and slots don't work12:03
thisfredanother app infested with twisted dependencies12:03
thisfred;)12:04
mandelthisfred, at some point I mentioned to use the defer module instead for those libs that do not depend on twisted per se12:04
mandelthisfred, I don't know what happened..12:04
thisfredI wish Python would grow some async primitives itself already12:04
mandelthisfred, or just add greenlets to it :)12:05
thisfredyeah, that'll *definitely* make the code simpler ;)12:05
mandelthisfred, simpler to read for sure.. to understand why things brake... that is diff hehe12:05
mandelthisfred, in python-madrid we are always arguing about the two in the pub12:06
thisfredI hate em both12:07
thisfredasync execution and communication between microprocesses need to be separated a la go12:07
thisfredthey are separate concerns12:08
mandelthisfred, go is a modern lang with modern paradigms, we are not in that boat just yet12:09
mandelthisfred, would not be surprised if we just though.. we are sexually abusing python in so many ways..12:10
thisfredI know, but it doesn't seem python is even moving in the right direction in this respect. yield from is not gonna fix it12:10
mandelthisfred, it would be interesting for us 'canonical' to pick a lang and improve it for our use, i understand why apple uses objective-c in a way..12:13
thisfredmandel: they have a few more people to dedicate to such a task12:14
gatoxmandel, interesting....12:14
mandelthisfred, just a few ;)12:14
thisfredI like the idea of having a language that is more widely used. And I also like that we're pragmatical about it. I think go will see some uptake in the next few cycles12:15
mandelthisfred, I'd love to see that happening, I have the feeling we are reaching very fast the ceiling of what can be done12:16
mandelthisfred, performance is important12:16
thisfredI don't think we're hitting performance limits in python (at least not client side) but yeah, some things are easier to make perform if the language is more clueful about concurrency12:18
mandelthisfred, for an implementation of the fs event on mac for example we cannot use python :(12:19
ralsinagood morning!12:21
gatoxralsina, hi12:21
ralsinagatox, mandel, thisfred: I am sending those PDFs now, I didn't get round to it yesterday.12:22
gatoxralsina, ack12:22
thisfredmandel: well yeah, that's mac though.12:22
mandelralsina, no problem, so I have several implementations do do ipc between objective-c and python, I'll be writing a doc about them12:23
ralsinamandel: there are reports that we don't support wpad.dat proxy auto config. That's because we would have to implement the parsing ourselves, or is there something else?12:23
mandelralsina, yes, it will be work we have to do12:23
ralsinamandel: ok, we can just have a standard reply for the moment12:25
mandelok, time for lunch12:35
ralsinamandel: http://code.google.com/p/pacparser/12:53
=== m_conley_away is now known as m_conley
* mandel back13:54
gatoxthis is the case where the last 10% is equal the 90% of the task jeje14:13
mandelralsina, gatox, did you guys get eamil about the tests that I wrote answering mmcc?14:50
* mandel does not trust his email client14:50
ralsinamandel: yep14:50
gatoxmandel, yes......14:50
ralsinamandel: and thanks, I had not noticed a couple of those things :-)14:50
mmccmandel: I got it too. read it super late last night, need to re-read again14:50
mandelall, thx :)14:51
mmccmandel: why don't you trust your cilent?14:51
mandelmmcc, is evolution, and is just a theory ;-)14:52
mandelmmcc, evolution has been misbehaving recently14:52
gatoxmandel, move to thunderbird14:54
ralsinastandup in 6'!14:54
gatoxack14:55
mandelgatox, never! I like my evolution!14:57
gatoxmandel, so stop complaining! jeje14:57
* mandel likes to complain14:58
gatoxmandel, me too...... it's free jejeje14:58
gatoxme15:00
gatoxralsina, mandel mmcc thisfred standup?15:01
thisfredme15:01
mmccme15:01
mandelme15:01
briancurtinwhoops, that snuck up on me. writing now15:01
* mmcc is not actually standing15:01
gatoxbriancurtin, sorry.... you too :P15:02
ralsiname15:02
gatoxDONE:15:02
gatoxKeep working on fsevents for MAC OS, made some changes in filesystem_notifications for MAC OS. Now working on Watch and WatchManager.15:02
gatoxTODO:15:02
gatoxNeed to reimplement some parts of Watch and WatchManager. Fix SSO NetworkDetectionPage issue.15:02
gatoxBLOCKED:15:02
briancurtinme15:02
gatoxNo15:02
gatoxthisfred, go15:02
thisfredDONE: u1todo sync TODO: finish same BLOCKED: no NEXT: mmcc15:02
mmccDONE: continued working on ctypes interface with SCNetworkReachability C API, learned more about dbus and the linux test suite15:03
mmccTODO: need to debug ctype callbacks for network reachability. Follow up with mandel about test suite.15:03
mmccBLCK: none15:03
mmccNEXT: mandel15:03
mandelDONE: Looks at possible ways to communicate between objective-c and python. Got an example application that uses Distributed objects over match ports that allows to send objective-c objects using twisted and the pyobjc reactor.15:03
mandelTODO: Write code that uses a delegate to block connections that try to be evil. Write an XMLRpc example with objective-c and the xmlrpc code from twisted (does not add the need of pyobjc and might allow to use the same delegate idea to block evil clients. Think about an other options for this.15:03
mandelBLOCKED: no15:03
mandelralsina, please!15:03
ralsinaDONE: mailed reviews, did a couple of 1-1s about them, did some code reviews, random bits and pieces, feeling unfocused, need to focus. TODO: focus, finish manager things, fix  bug before I forget how it's done BLOCKED: sleepy15:03
ralsinaI have lag, so amnot sure who(if any) was next15:03
briancurtinDONE: several branches to fix jenkins and a windows issue reported against 3.0.0 (again)15:03
briancurtinTODO: get back to that installer automation branch, fix other windows issues, etc15:03
briancurtinBLOCKED = lambda: None15:03
briancurtinNEXT: ?15:03
ralsinabriancurtin: did 3.0.0 get signed?15:04
briancurtinalso, take care of windows signing if they ever do it. will ping them on #is in a minute since they never responded to email15:04
briancurtini have no idea what they are doing15:04
ralsinabriancurtin: ok15:05
briancurtinis there any trick to communicating in #is, or do i just say my issue and hope someone reads it?15:05
briancurtinno one seemed to be listening yesterday15:06
mandelbriancurtin, if it is about an rt I think you can find in whose q it is15:06
mmccmandel: I was just reviewing the NSDistributedNotificationCenter docs, and it says it's expensive, and might drop notifications if traffic is high… so if we're sending updates from the daemon to the userland listener too fast, we could overflow the notification center queues and lose updates…15:07
mmccmandel: I'm looking here: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Notifications/Articles/NotificationCenters.html#//apple_ref/doc/uid/20000216-BAJGDAFC15:08
mmccwhat a beautiful URL that is15:08
mandelmmcc, I'm nearly done cleaning up an example, give me a couply of mins and I'll push it, I thing distributed objects are different but I'm not sure15:08
mandelmmcc, that way you can also compain about by object-c :)15:09
briancurtinralsina: ChrisS did the signing of the binaries and he's vanguard in #is now, pinged him so we'll see how that works...15:09
mmccmandel ok, I'll have a look15:09
ralsinabriancurtin: I usually ping in their channel every two hours until someone picks it15:09
ralsinabriancurtin: mandel's idea is good see if it's assigned to someone15:09
* mmcc just discovered that pressing 'a' archives the selection in Thunderbird. \o/15:10
ralsinabriancurtin: awesome15:10
briancurtinralsina: ChrisS says it'll get done today, it's on the top of the stack. he tried recently and it broke, but they'll get it15:10
ralsinabriancurtin: ack15:11
=== rye is now known as rye-holiday
* gatox lunch15:16
=== gatox is now known as gatox_lunch
thisfredmandel: I'm not getting the inline callbacks working, could you have a look to see what I'm doing wrong? (Pretty sure I have to somehow communicate that I want it to use the qt mainloop, but no idea how or where) : http://bazaar.launchpad.net/~thisfred/u1db/u1todo-sync/view/head:/u1todo/ui.py#L11215:26
mandelthisfred, sure15:26
mandelthisfred, return =  yield cmt.find_credentials()15:27
mandelthisfred, sorry I meant result =  yield cmt.find_credentials()15:28
mandelthisfred, although there is not real need, can we mumble and I'll tell you better?15:28
thisfredsure 1 sec15:28
mandelthisfred, http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html15:33
mmccmandel, more bad news for distributed objects: - the OS X daemons and services programming guide: https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/DesigningDaemons.html#//apple_ref/doc/uid/10000172i-SW4-106237 says "RPC (remote procedure call) mechanisms such as Distributed Objects should be avoided for communication across security domain boundaries, for example a user process15:38
mmcccommunicating with a system-level daemon, because this creates a security risk. They are appropriate only when you can be certain that both processes involved have the same level of privileges."15:38
thisfredmandel: yay works!15:40
mandel:)15:42
mmccmandel, I'm starting to think this daemon should be in plain C. There don't seem to be any ObjC API that are more appropriate than the C API…15:43
mandelmmcc, dammed! ok, there it goes that idea..15:43
mandelmmcc, ok, so we remove the DO idea, xmlrpc seems stupid too, right? i has the same issue that security is an issue15:44
mmccmandel, why is that an issue? I'm not familiar with xmlrpc…15:45
mandelmmcc, same problem, we need to add a layer for auth otherwise any can connect to us..15:45
mmccmandel, refresh my memory - are we worried about other users listening to updates from the daemon that are intended for a different user?15:47
mmccie, alice and bob are logged in and alice can inappropriately hear about changes bob's making in the filesystem15:48
mmcc-or- are we worried about other processes that bob is running, also snooping on the fsevents traffic we're sending to bob?15:49
mandelmmcc, exactly, I was considering using match ports namespacing to avoid such an issue15:50
mmccmandel, sorry, which one?15:50
mandelmmcc, mach, sorry, extra t15:50
mmccmandel: no, I got that - I didn't get which situation you are worried about (users snooping on each other or one user's processes snooping)15:51
mandelmmcc, both are a problem, more worried about the first since if you added an evil app is kind of your fault15:52
mmccmandel: I agree. for that matter, another app could be using FSEvents to snoop on what you're doing. I think other apps are not a concern15:53
mmccjust wanted to be sure I understood - thanks for bearing with me :)15:53
mandelmmcc, no problem :)15:53
ralsinaapps can snoop on the user's other apps via FSEvents anyway, so only across users15:55
ralsinaok, next time I must read *all* the backlog15:55
mmccralsina: no, I like that - it's like independent confirmation :)15:56
ralsinahehe15:56
mandelmmcc, ralsina, I'm looking at how the namespaces can help us with this, when a mac starts a users session is created for the system and one for each user that logs in the system. For each session the system, in truns, creates a new mach port namespace,. Sessions can create extra namespaces as needed15:57
mmccok, so I'm chasing down the docs now, but I believe that the root daemon can set the uid/gid of a unix domain socket, which then limits who can read from it…15:58
mandelmmcc, ralsina, but in general each app in the session uses the same namespace15:58
mmccmandel, I think mach ports might be lower level than we need for this… that is just a hunch tho15:58
ralsinammcc: if it's as in other unixes, yes, that's just permissions15:58
mmccralsina: at this level, it should be 100% just like BSD15:59
ralsinammcc: easy then15:59
mandelmmcc, ralsina , the way I understand the match arch, the parent namespaces can be accessed by child namespaces but not the other way around15:59
mmccfor example, 'man socket' is in the 'BSD system calls manual'15:59
mandelmmcc, mumble and we talk about how I think it works?16:00
mandelmmcc, I think that by using mach ports we can ignore the cross user problems and such focus on the protocol needed16:00
mmccmandel: just a sec and I'll set up mumble. I unplugged my usb headset because I blame it for yesterday's kernel panic16:01
mandelmmcc, sure :)16:01
=== gatox_lunch is now known as gatox
ralsinalunchtime for me16:15
ralsinabriancurtin: looks like the installer is up!16:16
ralsinabriancurtin: so start pinging l-sas :-)16:16
=== ralsina is now known as ralsina_lunch
briancurtinralsina_lunch: cool, i'm on it now16:17
mandelok, rugby time for manuel!16:29
mandelsee you all tom!16:29
gatoxmandel, bye16:29
mmccok, panini time for michael!16:30
=== salgado is now known as salgado-lunch
ralsina_lunchanyone needs any reviews? I have time.17:46
gatoxnop yet17:47
ralsina_lunchgatox: how's the "disabled" thing going? Is that the one you are working on?17:49
gatoxralsina_lunch, no, i'm waiting for nessita's logs for that one, because i wasn't able to reproduce it.... and the code seems fine17:50
ralsina_lunchgatox: ack17:50
=== ralsina_lunch is now known as ralsina
gatoxralsina, now i'm working with fsevents... and i'll probably fix the one about networkdetectionpage today.....17:51
ralsinagatox: ok, awesome17:51
alecuhola!17:53
gatoxalecu, buenas17:54
alecuhola gatox, how is it going?17:54
alecugatox: how's the mac port coming along?17:54
gatoxalecu, fine..... working on filesystem notificatoins..... i need to do some changes in Watch and WatchManager because the macfsevents lib works different of how these classes expect..... but trying to figure it out that17:55
alecugatox: wait, wait wait!17:56
alecugatox: what?17:56
alecugatox: where are you putting macfsevents?17:56
alecugatox: inside syncdaemon?17:56
gatoxalecu, the darwin part of filesystem_notifications for mac..... have the Watch and WatchManager like windows, to simulate pyinotify api..... but there are some differences on how this is being used.......... i was doing that to get the things working, and then we can focus on ipc.... or do you think that we should focus first in having macfsevents working as a separate process17:59
gatox?17:59
alecugatox: no, I got scared for a minute, since I understood you were putting macfsevents inside the Watch and WatchManager classes.18:01
alecugatox: iirc those two classes were made specially for the windows port.18:01
alecugatox: and I'm not sure if they are used when sd runs under ubuntu18:02
alecugatox: perhaps you can take a look at that; if they are only used in windows they might not make much sense for mac, that seems to provide nicer notifications.18:02
=== salgado-lunch is now known as salgado
gatoxalecu, mmmmm actually..... watchmanager is using the observer of macfsevents..... and the watch class is creating the stream to watch.......  yes, i know..... but i was modifying watch and watchmanager, to adapt they behaviour to mac, but respecting the actual api.... so it's going to be very similar to windows.... only changing the watch and watchmanager implementation..... but FilesystemMonitor and that..... you don't have to change anytih18:04
gatoxng18:04
alecugatox: ack18:05
alecugatox: it sounds like a good idea.18:05
gatoxalecu, either way..... don't worry.... i'm trying to be very careful with this, and i'll ask for some opinions to you and mandel even before proposing18:05
alecugatox: awesome!18:06
alecugatox: make sure to include mmcc in those discussions too18:06
alecuand reviews.18:06
gatoxalecu, yes, of course18:06
* alecu brbs18:10
briancurtinralsina: should we do a 1-1?18:13
ralsinabriancurtin: let's!18:17
thisfredcan I get a review on https://code.launchpad.net/~thisfred/u1db/u1todo-sync/+merge/105102 pretty please?18:22
thisfredit's not C18:22
gatoxthisfred, you have conflicts18:23
thisfredah it has conflicts, one sec18:23
gatoxthisfred, you don't..... the branch :P18:23
thisfredhttps://code.launchpad.net/~thisfred/u1db/u1todo-sync2/+merge/10510318:28
thisfredgatox ^18:28
gatoxthisfred, reviewing....18:28
thisfredthe other branch had something merged in that was not necessary18:28
ralsinathisfred: doing the other review18:31
briancurtinralsina: windows root issue: https://code.launchpad.net/~brian.curtin/ubuntuone-client/fix984407-windows-is_root/+merge/10496718:31
thisfredralsina: thx!18:31
ralsinabriancurtin: got it!18:31
alecuralsina, briancurtin: what's the "root issue"? anything to do with ssl?18:32
ralsinaalecu: no, detecting if the user is an admin18:33
alecuoh, "root" as in "administrator"18:33
gatoxthisfred, how can i run the tests for u1db?18:33
alecuright.18:33
ralsinaalecu: on windows, our best attempt failed every once in a while so we are changing it to "this is not the administrator you are looking for"18:33
alecuralsina, great.18:33
thisfredgatox: make check (install 500 secret build dependencies)18:33
alecuralsina, any news regarding the ssl issue?18:33
gatoxthisfred, ok.... thx!18:34
thisfredgatox: you'll be happy to know this code is 100% untested, so you don't have to :D18:34
alecuralsina, last I knew the 3.0.0 with qt 4.7 was being tested by users...18:34
gatoxthisfred, ahhhh jejej okokk18:34
thisfredgatox  PYTHONPATH=. python u1todo/ui.py18:34
thisfredto look at the ui18:34
ralsinaalecu: it cured itself for some, for other we found the opendns issue, no more reports.18:35
alecuralsina, awesome news.18:35
ralsinaalecu: so, we are rolling out and will try to fix it on a case-by-case basis, and keep a copy of 2.0.3  handy18:35
alecugreat!18:35
alecuralsina, gatox: btw: I've got a crash course of QML by the guys that are making unity2d, and I really liked it.18:37
mmcccatching up on the macfsevents discussion earlier with alecu & gatox - sounds like it's making sense so far. IIRC The watch & watchmanager classes are from pyinotify, and we're having to implement work-alike versions on Windows and MacOS, right gatox?18:37
thisfredgatox: I was in a bit  of a hurry because aquarius has to demo this tomorrow. The good news is, if it all doesn't work, I'll be 1000s of miles away18:37
alecuralsina, now we are making some u1cp mockups in qml, to see how it would look.18:37
gatoxmmcc, yes18:37
ralsinaalecu: AFAICS we can move to QML without *too* much problem, since our UI is decoupled18:37
gatoxalecu, yes..... qml is really niceeeee18:37
ralsinaalecu: it's a lot of fun, really18:37
alecuralsina, right18:37
gatoxalecu, are those talks recorded or something?18:38
alecugatox: all uds sessions are broadcasted live18:38
alecugatox: you can take part of those sessions via irc18:38
* gatox didn't know..... :(18:38
mmccgatox: ok, sounds good. I'm curious about what you mentioned about using macfsevents in a separate process, though. but if you're not doing that right now we can wait to discuss18:38
gatoxmmcc, yes........ i'm not doing that right now, i would like to have this working, and then we can discuss if the other thing is necessary, and how to do it18:39
gatoxthisfred, there is a issue in the delete method of ui.py, line 6418:39
alecugatox: anyway, the qml crash course was just a 1-1 session with the unity-2d guy, so it's only been saved "in my miiiiiiind"18:39
mmccgatox: perfect18:39
gatoxalecu, ahhh18:39
ralsinathisfred: why is the code in lines ~309 the same as in lines ~291 ?18:40
gatoxthisfred, you need to check that the item is not none.... or it will crash if the user didn't select any item in the list18:40
=== zyga_ is now known as zyga
ralsinathisfred: shouldn't that be some method in the task thingie?18:40
thisfredpicky, picky18:40
ralsinathisfred: well, it's called code review not code buy-you-a-beer18:41
alecugatox, mmcc: since syncdaemon already has a twisted main loop, and we want to have a different main loop as the event api needs, we choose to run those two main loops in separate processes.18:41
duanedesigncan one of the Windows people please take a look at this:  https://pastebin.canonical.com/65692/18:41
thisfredralsina: can we rename it? :)18:41
ralsinathisfred: ha!18:41
alecummcc, and have them communicate using some kind of ipc.18:41
ralsinaduanedesign: well, if the user's profile folder is actually c:\SPB_Data then there's no way to fix it until we implement sync-outside-home18:42
gatoxthisfred, did you get my messages?? do you want me to add that to the merge proposal?18:43
ralsinaduanedesign: OTOH, if his profile folder is actually c:\users\adam then maybe this is a fixed bug where if the "HOME" environment vriable is set, we got conused18:43
ralsinaconfused*18:43
mmccalecu, I don't think you need to do that - the macfsevents library has a '.starts()' function that starts the observer in a separate thread18:43
alecummcc, we already have plenty of threads inside syncdaemon. I'm not really keen on having more :-)18:44
thisfredgatox looking18:44
mmccalecu: hmmm.18:44
gatoxalecu, we could do something like rector.callInThread(observer.run).... maybe?18:45
alecummcc, we've traditionally had thread issues when mixing the twisted reactor with some other apis.18:45
mmccgatox: how is that different from observer.starts()18:45
mmccalecu - oh, ok18:45
ralsinathisfred: +1 but see if you can refactor that, and like gatox said, whenever you try to get an item from the list, check that it's not none.18:46
mmccalecu: in general, I like threads :) but since we're going to have to have a separate process to do the sudo root daemon anyway…18:46
alecugatox: it looks like the same as observer.start starting a new thread, like mmcc says18:46
gatoxalecu, mmcc, not sure..... and actually in a stand alone example it didn't work....18:46
alecummcc, right.18:46
mmccalecu: and that will require an IPC protocol definition, anyway - if we can use the same one for both, then that's good18:46
gatoxmmcc, alecu, the thing is, that the macfsevents way to work, seems to be really mixed with threads18:47
alecummcc, gatox: anyway: if you guys want to do some IRL tests to see how SD performs when having the events running in a thread, go ahead.18:47
alecuI understand it would be much easier to start this way.18:47
alecuand if we start having weird issues we can always use the ipc as we will be making for the root process.18:48
gatoxmmcc, alecu, i'll try to have things working using macfsevents as it was intended.... and then i'll write a mail explaining the branch.... so all of you can review it.... and read why i did one thing or another.... sounds ok?18:48
alecugatox, mmcc: does that make sense?18:48
thisfredralsina: gatox: both issues fixed in r27218:48
alecugatox: sure!18:48
gatoxthisfred, great..... checking18:48
duanedesignralsina: what should I tell the user (what info to get)?18:48
gatoxalecu, cool.....18:49
mmccgatox: yes, that sounds good18:49
mmccmy related question about twisted: in the OSX cocoa framework there's a 'main' thread, and a convenient way to synchronize things is to schedule a method call to be called 'later' on the main thread - so you can e.g. guarantee that a shared data structure is only ever modified on the main thread, and avoid locking (you're really just using the framework's locking on the method call queue)18:51
alecummcc, right. On twisted it's similar18:51
mmccis there a similar idiom in twisted - like, schedule this runnable on another (or a "main") thread? Mandel mentioned something like that on my first week but my brain is full…18:51
mmccalecu: cool, that's what I thought18:52
alecummcc, the twisted reactor runs in a main thread, and if you ever need to start a thread, you have a way to run things from the other thread in the main thread.18:52
mmccso from the callback function we give macfsevents , we schedule an insert for the event onto the main thread and we're happy18:52
alecummcc, reactor.callFromThread, and reactor.callInThread18:52
ralsinaduanedesign: you could try opening %profiledir% in windows explorer18:52
ralsinaduanedesign: I am not sure that's the right name18:53
ralsinaduanedesign: or the right variable ;-)18:53
alecummcc, also there's "reactor.deferToThread", but it does not look useful in this case.18:53
gatoxthisfred, +118:53
mmccalecu: cool. I think 'reactor' is one of those names that makes it sound more complicated than it really is :)18:53
thisfredgatox thx!18:53
alecummcc, right :-)18:54
gatoxralsina, IIRC, to see the userhome in windows (if that's what you want) is: %USERPROFILE%18:55
ralsinaduanedesign: what gatox said ^18:55
alecummcc, well, "reactor" is the twisted main loop, and the whole of twisted follows some interesting design patterns from some older C++ framework, and those weird naming conventions came from there.18:56
gatoxralsina, duanedesign yes...... just checked..... that's it %USERPROFILE%18:56
mmccalecu, ah I see18:56
duanedesigngatox: not to be a fool but that goes in the command prompt18:56
briancurtinduanedesign: if you type "echo %USERPROFILE%" in the cmd prompt that'll spit out the directory18:57
alecummcc, gatox: this is what you guys should be using: http://twistedmatrix.com/documents/current/core/howto/threading.html18:57
mmccthanks alecu.18:57
duanedesigngatox: i am pretty noob when it comes to win18:57
gatoxduanedesign, yes18:58
alecummcc, gatox: I think only reactor.callFromThread is needed.18:58
duanedesignthank you sir18:58
gatoxduanedesign, as briancurtin says18:58
gatoxalecu, great! thanks..... i've been reading that..... i'll check how to integrate it with what i'm doing18:59
gatoxeod here!! see you tomorrow20:19
ralsina  I have to go pickup my son from his first ever football practice!20:25
ralsinaI will be doing reviews or whatever later, so just ping me if you need me20:26
briancurtincool, see ya ralsinas20:26
briancurtinor just one ralsina20:26
=== zyga_ is now known as zyga
thisfredralsina: can I have one more fairly trivial review? https://code.launchpad.net/~thisfred/u1db/fix-stupid/+merge/105125 I messed up when doing your suggested refactor and then renaming the method. I'm driving too fast today20:48
thisfredoh he's gone. gatox? :) ^20:49
thisfredoh, also eod, I'll ask #u1db20:50
thisfredanyone here can do a one line review? I changed a method name and missed one call site20:53
thisfredbriancurtin: ^?20:53
briancurtinthisfred: looking20:54
thisfredoh nm done20:54
thisfredbriancurtin: thx solved already20:54
=== m_conley is now known as m_conley_away
=== salgado is now known as salgado-afk
czajkowskialoha22:35
dobeyhi czajkowski22:37
dobeygo back to uds :P22:38
czajkowskidobey: I am here22:39
czajkowskiI've not left22:39
czajkowskiI'm in the leadership summit22:39
dobeyi know you're here :)22:40
czajkowskibah I've not seen you yet22:41
czajkowskinice to put the face to the name22:41
dobeyheh22:41
* dobey goes back to uds22:46
beunoczajkowski, he'll be the one with a 6" laptop22:47

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!