[08:43] <JamesTait> Good morning all! :)
[09:11]  * mandel re-booting for testing
[10:04] <ralsina> good morning!
[10:08] <mandel> ralsina, morning!
[10:08] <mandel> ralsina, you were looking for me, right?
[10:08] <mandel> ralsina, and we forgot the 1-1
[10:14] <ralsina> mandel: let's do that later, everyone is still sleeping here ;-)
[10:14] <mandel> ralsina, sure no problem
[10:14] <mandel> ralsina, what did you need from me?
[10:39] <ralsina> mandel: nothing urgent it can wait
[10:39] <mandel> ralsina, but, I'm just curious :)
[10:39] <ralsina> just wanted an update on whether you could catchup with alecu
[10:39] <ralsina> that kind of thing
[10:43] <mandel> ralsina, oh, we can do that in the 1-1
[10:44] <mandel> ralsina, right now I'm trying to understand how to create a new preview for u1 payment sine alecu already did some of the work in vala
[10:44] <ralsina> ok cool
[10:44] <mandel> ralsina, I also got to understand the arch of the lenses.. so far they have given us a basic skeleton that does nearly nothing.. I wonder how is the preview and the lens connected..
[10:45] <mandel> ralsina, do you know the internal irc room to talk about this?
[10:46] <ralsina> mandel: not really, sorry
[10:47] <mandel> ralsina, ok, no worries, I'll play around.. by the way, cpp looks horrid
[10:47] <mandel> :)
[10:47] <ralsina> ok, school run
[10:47] <ralsina> mandel: good luck with that :-)
[12:14] <ralsina> mandel: mumble?
[12:15] <mandel> ralsina, give me 5 mins, is that ok?
[12:15] <ralsina> sure
[12:15] <mandel> ralsina, I need a pit stop :)
[12:15] <ralsina> change your oil!
[12:18] <mandel> ralsina, lets mumble :)
[12:33] <dobey> the world didn't fall apart without me, did it?
[12:43] <mandel> dobey, I little, I'm reading c++
[12:43] <mandel> dobey, which is as bad as falling apart
[12:43] <ralsina> dobey: it did, but we had an ample stock of duct tape
[12:43] <ralsina> dobey: just don't try to cross the equator dragging a cutter
[12:44] <mandel> ok, I'm off to have lunch :)
[12:46] <j0nr> hey folks...
[12:47] <dobey> hi
[12:47] <j0nr> i don't suppose.....anyway to...when listening to music via the U1 website (which I do most of the time) I can scrobble to last.fm??
[12:48] <dobey> no, there isn't
[13:11] <alecu> hello all!
[13:13] <ralsina> hello alecu1
[13:13] <dobey> hmm
[14:16] <popey> my u1 on ios 6 is a bit crashy :(
[14:16] <popey> i have to kill it to get it to upload new photos
[14:16] <ralsina> popey: looks like urbanape is not here yet
[14:17] <popey> ah, will poke him later
[14:17] <beuno> popey, hop on to the private channels
[14:17] <popey> O_O
[14:22] <mmcc> Hi folks.
[14:22] <ralsina> hi mmcc!
[14:23] <briancurtin> ralsina: before i get too far on this, we have the ability to package or somehow otherwise include Antoine Pitrou's twisted port for Python 3, correct?
[14:23] <ralsina> briancurtin: no
[14:24] <ralsina> briancurtin: we can use it by installing it manually though
[14:25] <briancurtin> ralsina: because i'm working in that twisted port right now - i talked to Antoine on friday and dev-tools is touching a bunch of areas that he hasn't ported outside of a simple 2to3 run, so i'm fixing bytes/str stuff (only touching parts along the function call path that we need)
[14:26] <ralsina> briancurtin: ouch
[14:26] <briancurtin> ralsina: so, yeah, that's not really great
[14:27] <ralsina> briancurtin: what you need is trial, right?
[14:27] <briancurtin> ralsina: this is in actual twisted.http.client, in devtools txsocketserver
[14:28] <ralsina> ugh
[14:28] <ralsina> ok, no ideas there
[14:28] <ralsina> :-(
[14:29] <briancurtin> ralsina: well i already fixed two or three small twisted parts to get it further along. i'm hoping this doesn't jump around to 100 functions or something. i will update
[14:35] <mmcc> ping mandel re https://code.launchpad.net/~mandel/ubuntuone-fsevents-daemon/commserver-tests/+merge/117393
[14:35] <mandel> mmcc, pong!
[14:35] <mandel> mmcc, hello hello
[14:35] <dobey> these apple icon requirements are insane
[14:36] <mmcc> hi mandel :) so, how important is it that processName be tested in testInitWithStruct there?
[14:36] <briancurtin> ralsina: although it would be blocking, i guess i could just rewrite it to use urllib to avoid twisted.web.client.getPage all together, maybe with a TODO to change it when its ported
[14:36] <mmcc> mandel (in FSEventTests.m)
[14:36] <ralsina> briancurtin: could be
[14:36] <mmcc> dobey: which parts? can I help?
[14:36] <briancurtin> ralsina: i'm writing to exarkun now, unless he has something immediately i'll try that route
[14:36] <dobey> mmcc: all the @2x junk
[14:36] <ralsina> briancurtin: ok, that's a plan
[14:37] <mandel> mmcc, not very.. it was a test to ensure that we do get called.. I think and assertion of it not being null will be more than good enough
[14:37] <mmcc> mandel: sounds good. I'm still not totally sure why the process name is different on mine, but if it's not critical it might be worth a tweak to avoid that issue
[14:38] <mandel> mmcc, yes.. how busy are you.. I mean I need to work on the dash stuff, can you overtake those branches fix what is appropiate and do an MP
[14:38] <mandel> mmcc, I can find time for reviews.. but coding is a diff story
[14:39] <mmcc> mandel: yeah, sure, no prob
[14:39] <mandel> mmcc, thx a lot, really appreciate it :)
[14:40] <dobey> briancurtin: if that testcase code in devtools could just not use twisted at all, it would probably be best to go that route. the less twisted we use there, the better.
[14:43] <briancurtin> dobey: sounds good
[14:52] <ralsina> Looks like I have to go do something really quick. Please have the standup without me, I'll read it when I get back.
[15:00] <mandel> me
[15:00] <dobey> me
[15:00] <briancurtin> me
[15:02] <mandel> alecu, mmcc ?
[15:02] <mandel> thisfred, ?
[15:02] <mmcc> me
[15:03] <alecu> me
[15:03] <dobey> mandel: go
[15:03] <mandel> DONE: Compiled and installed unity from source to get a grip on how things are done. Read lots of code to understand how we lenses and dash previews interact.
[15:03] <mandel> TODO: More playing around with code. Talk with alecu about dealing with the password.
[15:03] <mandel> BLOCKED: no
[15:03] <mandel> dobey, please
[15:03] <dobey> DONE: holiday, reviews, started icon generation work, started music store poking
[15:03] <dobey> TODO: icon magic, music store
[15:04] <dobey> BLCK: None.
[15:04] <dobey> briancurtin: go
[15:04] <briancurtin> DONE: holiday, ported some of the path we need in t3k to finish dev-tools porting...but we're not going that way
[15:04] <briancurtin> TODO: port twisted.web.client.getPage usage to a urllib-based function, removing twisted from the equation. this should be the end (i really, really hope...)
[15:04] <briancurtin> NEXT: mmcc
[15:04] <mmcc> DONE: holiday, pyobjc, reviews
[15:04] <mmcc> TODO: daemon branches, menu icons, pyobjc?
[15:04] <mmcc> BLCK: no
[15:04] <mmcc> NEXT: alecu
[15:04] <alecu> DONE: started with dash work, misc mumbles
[15:04] <alecu> TODO: more dash and music-lens
[15:04] <alecu> BLOCKED: no
[15:06] <alecu> briancurtin: the porting of getPage to urllib, is that on devtools?
[15:06] <alecu> briancurtin: or on sso?
[15:06] <briancurtin> alecu: devtools
[15:06] <alecu> ok
[15:08] <thisfred> me? :S
[15:08] <alecu> briancurtin: are you also replacing ubuntuone.devtools.testing.txwebserver.HTTPWebServer ???
[15:08] <thisfred> oh whew, no ralsina :D
[15:09] <thisfred> DONE: u1db basic auth TODO: u1db-servers get_all_docs | u1db playlists BLOCKED: no
[15:10] <briancurtin> alecu: i didn't have plans to since it hasn't yet affected anything, but should i do so? doesn't look like it'd be hard to replace with stdlib
[15:17] <dobey> briancurtin: it might be harder than it looks. there are a few annoying differences between BaseHTTPServer in 2 and 3 that i ran into when trying to make the example code for python-oauth work on both
[15:18] <alecu> briancurtin: the thing is that txwebserver.HTTPWebServer will block if you try to use urllib to read from it.
[15:18] <dobey> grr
[15:18] <briancurtin> nice...
[15:18] <alecu> briancurtin: and you can't easily replace txwebserver.HTTPWebServer without changing all the tests on sso that use it
[15:19] <alecu> briancurtin: unless you make urllib run in its own thread... but this opens a bigger can of worms.
[15:25] <mandel> joshuahoover, ping!
[15:25] <joshuahoover> mandel: pong
[15:26] <briancurtin> dobey: how annoying were those differences? like unworkable, or do-able but annoying?
[15:26] <mandel> joshuahoover, is there some way to do 'testing' music purchases?
[15:26] <mandel> joshuahoover, or do I have to search for free music?
[15:27] <joshuahoover> mandel: right, you'll want to search for free tracks on 7digital's site and then find those in the music store to test a full loop
[15:27] <mandel> joshuahoover, ok, thx..
[15:34] <dobey> briancurtin: doable, but i was unable to get it working such that the client and server could run under the different versions; both had to be running under 2 or 3 together
[15:34] <dobey> mandel, joshuahoover: you may have difficulty finding free tracks in stores other than the US store, though :)
[15:34] <briancurtin> dobey: interesting. thanks
[15:35] <joshuahoover> dobey: ah, i guess i've never looked for stores other than the US :)
[15:35] <mandel> dobey, yes, there are very very few..
[15:35] <mandel> joshuahoover, racist!
[15:35] <joshuahoover> mandel: clearly
[15:36] <dobey> briancurtin: maybe i missed something and it was doable, but it was definitely a high point of frustration in that respect. possibly not so much an issue here though, as the trial script will only ever run that code under one version of python at a time
[15:37] <briancurtin> dobey: that's what i was thinking. making it cross-version could probably come later, as long as it 2 works with 2 and 3 works with 3
[15:39] <dobey> actually
[15:40] <dobey> oh, no; the poauth tests don't use an http server or client at all
[15:42] <mandel> whoever though a bulldozer should have an annoying siren is an asshole..
[15:42]  * mandel wants to go out and swear at the workers..
[15:44] <dobey> ok, need to get lunch and stuff. bbiab
[16:38] <mandel> alecu, I managed to crash unity
[16:38] <alecu> mandel: doesn't sound too difficult :-)
[16:38] <mandel> alecu, hehe
[16:39] <mandel> alecu, tell me, I think I'm getting grips with this, at least getting a preview with useless info
[16:39] <alecu> mandel: I'm about to go have lunch... shall we mumble for a bit?
[16:39] <mandel> alecu, by the way is there a way to get back the shortcut to kill x, it would be kind of useful
[16:39] <mandel> alecu, sure, I was about to eod, lets do it :)
[16:40] <alecu> mandel: sure: there's an option in xorg.conf about that...
[16:41] <mandel> alecu, can you hear me in mumble?
[16:51] <karni> alecu: oh man.. thanks for the comment. that sucks :( how does SD work around the per process limitation on the number of registered observers?
[16:52] <ralsina> karni: we fail, and then support tells the user to raise it :-/
[16:52] <karni> ralsina: hahahahhaha :D (sorry, that.. was kinda funny :) ). Too bad..
[16:52] <karni> ralsina: So we basically hope we're under the limit, eh?
[16:53] <karni> ralsina: There was a user asking about sync in U1F for Android, and one of possible ways is to use inotify, so we're brainstorming.
[16:53] <chaselivingston> ralsina, mmcc: when do you guys expect a new mac build to be out?
[16:53] <karni> I have already looked into that, but the fact that its non recurisive makes it much less appealing option.
[16:57] <ralsina> karni: yes, basically.
[16:57] <ralsina> chaselivingston: a bit under two weeks
[16:57] <karni> ralsina: ack
[16:57] <ralsina> chaselivingston: maybe a little earlier
[16:58] <chaselivingston> ralsina: cool thanks, looking forward to getting it working on my mac :)
[16:58] <ralsina> karni: it's possible to intercept the problem because it fails with a clear error, but it's not a setting users can actually change easily :-(
[16:58] <ralsina> karni: OTOH the limit is crazy high so it doesn't fail all that often
[16:58] <karni> ralsina: I see. At least it doesn't fail silently.
[16:59] <ralsina> chaselivingston: I would love to have you try the version with the root daemon
[16:59] <ralsina> mmcc: how far are we from a test build that packages the root daemon?
[16:59] <karni> ralsina: Hasn't the number of watches been a potential memory hog/CPU eater in the history of U1 desktop client? I haven't researched the footprint yet.
[16:59] <chaselivingston> ralsina: I'm up for trying anything, what exactly is the root daemon?
[17:00] <ralsina> karni: not that I recall
[17:00] <karni> cool, thank you
[17:00] <ralsina> karni: limit right now here is 128 per user, that shouldbe enough on a phone
[17:00] <ralsina> chaselivingston: it's another implementation of the code that watches for file changes
[17:00] <chaselivingston> ralsina: ah, gotcha
[17:00] <ralsina> chaselivingston: uses a different API that can only be accessed as administrator, so it needs to be run as root
[17:01] <chaselivingston> ralsina: ah ok, that makes sense
[17:01] <karni> ralsina: Basically, we can't watch more than 128 folders? On one hand it sounds scary, OTOH I have no clue how many folders I store in U1.
[17:01] <karni> That sounds kinda little.
[17:01] <ralsina> karni: see? ;-)
[17:01] <ralsina> karni: sorry, saw the wrong file. Make that 524288
[17:01] <karni> ralsina: AHAHHAHAHAHAAH
[17:01] <karni> ralsina: that is BETTER! :D
[17:02] <karni> That indeed sounds much better.
[17:02] <ralsina> karni:  there is a max_user_instances  and a max_user_watches I don't really recall the meaning of each in detail
[17:02] <mmcc> ralsina, sorry, was afk for a bit there, the root daemon is packaged now, installs and runs, but it doesn't connect correctly, mandel was looking at it but now I'm going to pick it up. Not sure what the issue is yet…
[17:03] <ralsina> mmcc: ok, so let's say a couple of couples of days?
[17:03] <karni> ralsina: I see. I'll look into that if necessary. Thanks!
[17:03] <ralsina> chaselivingston: so "a few days" is my scientific estimate :-)
[17:04] <mmcc> ralsina: sure. either one or several days…
[17:04] <chaselivingston> ralsina: haha, sounds good
[17:04] <ralsina> mmcc: up to an integer number of them, I assume :-)
[17:04] <ralsina> mmcc: could be a fraction > 1 though!
[17:44] <dobey> hmm
[18:02] <briancurtin> wow, this is much deeper than i thought. fun.
[18:08] <dobey> how do you open a directory as a file handle in python?
[18:08] <dobey> os.open() hates me :(
[18:09] <dobey> maybe i should just do subprocess.call(['touch', 'directory'])
[18:11] <ralsina> dobey: good question. let me google
[18:11] <briancurtin> dobey: doesn't os.open("yourdir", os.O_RDONLY) do it?
[18:12] <dobey> briancurtin: no
[18:12] <dobey>   File "./setup.py", line 103, in run
[18:12] <dobey>     with os.open(iconsdir, os.O_RDONLY) as f:
[18:12] <dobey> AttributeError: __exit__
[18:12] <dobey> that's what happens :-/
[18:12] <briancurtin> oh, we'll it's probably working but just not as a context mgr
[18:12] <briancurtin> or at least that call by itself seems to work for me
[18:13] <dobey> oh, it just doesn't work with 'with' then?
[18:13] <dobey> boo :-/
[18:13] <briancurtin> dobey: yep
[18:14] <ralsina> dobey: you'll have to close your descriptors manually. LIKE A CAVEMAN.
[18:17] <dobey> ah, i guess because os.open returns an int
[18:18] <dobey> but it's working at least
[18:29] <mmcc> no comment: control panel backend calls "sd_client.get_current_status", which just returns "SyncDaemonTool.get_status", which makes a remote call to "SyncdaemonStatus.current_status", which just returns _get_current_state.
[18:29]  * mmcc starts a patch to add "contemporaneous_disposition()"
[18:34] <ralsina> mmcc: ubuntu-sso is a maze of twisted little passages, all alike.
[18:34] <mmcc> ralsina: that's all in control-panel and u1-client, but that's not to say I disagree with you :)
[18:36] <ralsina> mmcc: well, the IPC in general
[18:42] <dobey> i wonder what the best way to deal with getting this new project into ubuntu and replacing existing stuff, is
[18:54] <dobey> ralsina: did you get any design comments on bug #974637?
[18:54] <ralsina> dobey: yes
[18:55] <ralsina> dobey: I have a working fix, it just needs a bit of feedback about where to put the links
[18:55] <ralsina> dobey: so, no worries
[18:55] <ralsina> ok, my fix is a bit light on tests, but after I get design feedback, it's a 4-hour fix.
[18:55] <dobey> right. just asking if you got that yet, and if the strings are 100% already. was just preparing the ffe request
[18:55] <ralsina> no, no strings yet, probably tomorrow
[18:56] <dobey> hopefully we can re-use existing strings
[18:56] <dobey> although, i guess those strings in question are in the control panel, and not sso
[18:56] <ralsina> hopefully, but I saw none that really fit. Perhaps from somewhere else in the translations :(
[18:57] <ralsina> these have to go in SSO, do we have those strings in the gtk version?
[18:58] <dobey> there were, yes
[18:58] <dobey> don't know where exactly they were defined though. i thought there was a shared .py file for them
[19:01] <ralsina> dobey: that wouldbe ubuntu_sso/utils/ui.py but I don't see those strings there. Maybe they went away
[19:02] <ralsina> Oh wait, there they are
[19:03] <ralsina> dobey: thanks, sent design the old strings for reapproval
[19:04] <dobey> awesome
[19:06] <dobey> ralsina: I see the "Sign in with existing" label, but which constant is the "register a new thing" label?
[19:07] <ralsina> dobey: LOGIN_BUTTON_LABEL
[19:07] <ralsina> oops EXISTING_ACCOUNT_CHOICE_BUTTON
[19:08] <ralsina> so one or the other depending on the pag
[19:08] <dobey> ralsina: those both mean the same thing
[19:08] <ralsina> haha
[19:08] <ralsina> yeah
[19:08] <ralsina> I am not at my smartest today
[19:09] <ralsina> dobey: JOIN_HEADER_LABEL
[19:09] <ralsina> dobey: or SET_UP_ACCOUNT_CHOICE_BUTTON
[19:09] <ralsina> SET_UP_ACCOUNT_CHOICE_BUTTON = _('I don\'t have an account yet - sign me up')
[19:09] <dobey> ah
[19:09] <dobey> that one works better, yeah; though lengthy it is
[19:12] <ralsina> well we have horizontal space for it
[19:12] <ralsina> however the help text for Ubuntu One on SSO is so long it's cutoff.
[19:24] <mmcc> so, earlier I took over a daemon branch that mandel proposed a long time ago that needed a minor tweak, and re-proposed it. Is there any easier alternative to manually creating my own branch of everything after it in the pipeline, merging and pushing, and re-proposing?
[19:24] <mmcc> I have four more branches of his to review, branch/merge/repropose, and it'd be nice if there were a faster way
[19:26] <ralsina> mmcc: no alternative that I know
[19:27] <dobey> mmcc: if it's made with bzr pipelines, it might be a pain
[19:27] <dobey> mmcc: maybe you could make a new branch and only merge in the relevant changes you want to propose, and just leave the rest out
[19:27] <mmcc> dobey: I believe it was. oh well.
[19:28] <dobey> although, the changes in the other branches shouldn't be in the one branch you're fixing up, i don't think
[19:28] <dobey> i thought you could just merge his branch, make your changes, push, propose, and when your branch is approved/landed, his will be as well, and the proposal should get marked as merged
[19:29] <dobey> and then the later branches with the prerequisite on it, should be able to merge just fine
[19:29] <dobey> save for the first try that launchpad somehow always manages to lie about the prereq status for
[19:30] <mmcc> interesting. well, let's see if that works.
[19:30] <ralsina> I'm gone for school run, will do reviews at night, so ping me for those
[19:32] <mmcc> dobey: I think the way I did my new proposal means his won't merge - I 're-proposed' his original proposal, so his is now marked as superseded
[19:34] <dobey> mmcc: then you didn't propose your branch, you reproposed his
[19:35] <dobey> mmcc: if you have separate branch under your username, you need to propose it separately
[19:35] <mmcc> dobey: when I re-proposed his, I edited the source branch to be my branch… see https://code.launchpad.net/~mikemc/ubuntuone-fsevents-daemon/commserver-tests-2/+merge/122741
[19:36] <mmcc> note that I also approved it, per discussion with mandel and ralsina either today or yesterday about moving these branches along with just one review
[19:36] <dobey> oh, didn't know lp let you do that
[19:36] <dobey> ok
[19:37] <dobey> i don't know if it updates the prerequisites that depend on that branch though, when you do that
[19:37] <dobey> so it may cause a problem
[19:37] <dobey> brb, gotta run for a few
[19:38] <mmcc> right, that was the problem I was asking about. now that I've tweaked his proposal, the downstream proposals need to also be changed to point to new prereq branches. looks like I was right, gonna be a pain
[19:38] <mmcc> ok
[20:08] <mmcc> that wasn't too bad.
[20:17] <dobey> right; if you had just proposed your branch separately, rather than doing the tweakery that i'm surprised lp let you do anyway, it would have 'just worked' :)
[20:20] <pavolzetor> hi guys,
[20:20] <mmcc> bummer. well, at least doing it wrong only led to busywork… and a learning experience :)
[20:20] <pavolzetor> is it planned to make ubuntu one startup faster?
[20:21] <pavolzetor> now it takes 1 minute to start, which is horrible and slows down ubuntu experience
[20:22] <pavolzetor> I have windows 8 too, and there is not that issue, so it has to be possible to fix
[20:22] <dobey> pavolzetor: it starts pretty much isntantly for me. how many files do you have synchronized in Ubuntu One on that computer?
[20:22] <pavolzetor> tons
[20:22] <pavolzetor> I can check number
[20:22] <pavolzetor> hold sec
[20:23] <dobey> is the same number being synced on win8 where you say you don't have the problem?
[20:23] <pavolzetor> on windows there is a lot photos too
[20:23] <pavolzetor> but probably less
[20:24] <pavolzetor> because I have documents here too
[20:25] <pavolzetor> it should be aroun 1200
[20:26] <dobey> pavolzetor: how are you getting the time of "1 minute" exactly?
[20:26] <pavolzetor> counting in head
[20:27] <pavolzetor> but it takes some time to launch iotop
[20:27] <dobey> from what points though?
[20:27] <pavolzetor> so I log in
[20:27] <pavolzetor> launch terminal
[20:27] <pavolzetor> run iotop
[20:27] <pavolzetor> and 99% is used by ubuntuone-syncdeamon
[20:27] <dobey> ubuntuone isn't actually started until 30 seconds after logging in on ubuntu
[20:28] <pavolzetor> I am going to try it again than, but I am pretty sure it is
[20:28] <pavolzetor> brb :)
[20:28] <dobey> and yes, ubuntuone has to rescan all of your synced directories, every time it starts, to see if there are any changes
[20:30] <dobey> so the more files and folders you have in ubuntuone, the slower it will get.
[20:32] <pavolzetor_> okay
[20:33] <pavolzetor_> you were right
[20:33] <pavolzetor_> at startup it is at first ubuntuone-launch
[20:33] <pavolzetor_> than ubuntuone-syncdaemon
[20:33] <pavolzetor_> it together takes about minute to load
[20:33] <pavolzetor_> also gwibber slows it down too
[20:34] <pavolzetor_> but not that much
[20:37] <mmcc> time for lunch here.
[20:38] <pavolzetor> parents disabled wifi :)
[20:39] <pavolzetor> also u1 control panel is slow to load (probably loading QT libraries)
[20:39] <pavolzetor> how can I help to speed this up?
[20:39] <mmcc> while I'm out - when does control-panel-backend get run? I need to tweak how it adds its status listener and I can't find any code actually launching it…
[20:40] <dobey> mmcc: yes; it's activated by dbus
[20:40] <dobey> mmcc: deja-dup uses it
[20:43] <pavolzetor> anyway, can somebody post link to blueprint or something
[20:43] <pavolzetor> ?
[20:44] <dobey> pavolzetor: there is no blueprint for speeding things up. there has been work on reducing memory usage and such, but it's a general thing we always have to work at, and not something we can just make a goal for and then say we're done
[20:45] <pavolzetor> I see
[20:45] <pavolzetor> these daemons should not start if Ubuntu one is disconnected at startup till it will be faster
[20:47] <pavolzetor> I think checking folders for changes is o(n) (sadly I have not SSD), I think, there should be some interface so, every app like nautilus, can after adding file submit it to ubuntu one
[20:47] <pavolzetor> otherwise, there is probably no way to do it without checking
[20:55] <dobey> whatever scans the files, will at some point, have to actually scan the files
[20:56] <pavolzetor> so why scan files each startup?
[20:56] <pavolzetor> we can make some dbus service called ubuntuone-daemon or so
[20:56] <pavolzetor> com.canonical.ubuntuone sorry
[20:56] <pavolzetor> and other apps can add, remove, update fiels
[20:57] <pavolzetor> file
[20:57] <pavolzetor> ss
[20:57] <pavolzetor> like zeitgeist works
[20:57] <dobey> because if something changed in the files that are synced in u1, while u1 wasn't running, it won't be known without rescanning the directories
[20:57] <dobey> ubuntuone-syncdaemon has a dbus interface
[20:57] <pavolzetor> hmm
[20:57] <dobey> but it really shouldn't work like zeitgeist works
[20:57] <dobey> they are two extremely different problems
[20:58] <pavolzetor> I thought, if e.g. nautilus change file, it can let know u1 (it will start automatically)
[20:58] <pavolzetor> .service file
[20:58] <dobey> no, and nautilus doesn't really change files
[20:59] <dobey> ubuntuone has to be running all the time
[20:59] <pavolzetor> Copying
[20:59] <dobey> well the kernel tells us when new files appear in u1 folders, while u1 is running
[20:59] <dobey> so that's not an issue
[20:59] <pavolzetor> I see
[20:59] <pavolzetor> so issue is startup than
[20:59] <pavolzetor> then
[21:06] <pavolzetor> can you make ubuntuone running all the time? (ignoring adding files from other OS)
[21:06] <dobey> it does run all the time
[21:06] <pavolzetor> [22:57] <dobey> because if something changed in the files that are synced in u1, while u1 wasn't running, it won't be known without rescanning the directories
[21:06] <pavolzetor> so this is not an issue
[21:07] <pavolzetor> (if you do not copy from other OS)
[21:07] <pavolzetor> edit
[21:07] <pavolzetor> move
[21:07] <pavolzetor> delete
[21:07] <briancurtin> hm, i have HTTPWebServer replaced...now for HTTPSWebServer :/
[21:08] <dobey> pavolzetor: well it is an issue. there are many ways you can edit files on the local computer without having u1 running
[21:09] <pavolzetor> I think, for basic users
[21:09] <pavolzetor> they do not edit it other wat
[21:10] <pavolzetor> way
[21:10] <dobey> but we have to handle all the situations in the most general way possible
[21:10] <dobey> if we optimized for people who never edit their files, we wouldn't be a sync service at all :)
[21:10] <pavolzetor> also, you can edit other files (/usr/ etc.), so with this approach, system should check all files for changes, if they are not broken :)
[21:11] <pavolzetor> I would love to have this simple mode
[21:11] <pavolzetor> I know :)
[21:11] <pavolzetor> but most cases are editing on ubuntu (service running)
[21:11] <dobey> the system does check; if you break those system files, the system will break.
[21:12] <pavolzetor> I meant some app
[21:12] <pavolzetor> in /usr/share
[21:12] <pavolzetor> at least for mine it was not checked ;)
[21:12] <dobey> your what?
[21:12] <pavolzetor> I created PPA with my app, and then installed it via APT
[21:13] <pavolzetor> later edited file in
[21:13] <pavolzetor>  /usr/share
[21:13] <pavolzetor> to test something
[21:13] <pavolzetor> and I haven't got any warning from system
[21:13] <dobey> yes, and had you broken the syntax of that file, the app would have broken
[21:14] <dobey> whether it be in a subtle or perhaps not so subtle way
[21:14] <pavolzetor> yes, but my point is
[21:14] <pavolzetor> u1 should be some kind of key part
[21:14] <pavolzetor> layer of ubuntu
[21:15] <pavolzetor> so everybody runs u1
[21:15] <pavolzetor> if they have default installation
[21:15] <pavolzetor> and I would not care about modifications from other distros (win is not an issue)
[21:15] <pavolzetor> so if I connect my camera
[21:15] <pavolzetor> or it would be even better to hide files/folders layer
[21:16] <pavolzetor> shotwell pops up (no nautilus choice)
[21:16] <pavolzetor> and shotwell is synced via u1
[21:16] <pavolzetor> so user do not handle files
[21:16] <pavolzetor> does
[21:16] <ralsina> pavolzetor: and you can only have 5GB of files without paying.
[21:17] <pavolzetor> and then u1 scanning should not be an issue (i know, somebody special can modify these files from e.g. fedora, but)
[21:17] <pavolzetor> I have 25 gb
[21:17] <ralsina> pavolzetor: not just from fedora.
[21:17] <pavolzetor> ralsina: there could be choice about selecting particular pictures
[21:18] <ralsina> pavolzetor: root has permission for changing files
[21:18] <pavolzetor> ralsina: you can get 25 gb for free
[21:18] <ralsina> pavolzetor: you have to cheat or get 40 friends to sign up
[21:18] <ralsina> pavolzetor: system processes can change files when you are not logged, too
[21:18] <pavolzetor> ralsina: but as dobey pointed out, they can see from kernel
[21:19] <ralsina> pavolzetor: I am leaving for some parenting work, but trust me, if it were that easy, we would have done it ;-)
[21:19] <pavolzetor> ralsina: I suggest to have some layer (u1), handling storage and every app has to use it
[21:19] <ralsina> pavolzetor: and we have to modify all apps...
[21:19] <dobey> i tried to write software that behaved that way once. then it went off and sent some guy back in time to kill john conner
[21:20] <ralsina> pavolzetor: sounds like an interesting idea that is only remotely related to what u1 is :-)
[21:20] <pavolzetor> ralsina: that's true, it was not cheating, it was accident and I reported bug (not fixed probably yet)
[21:20] <ralsina> pavolzetor: it is fixed but we are letting you guys keep it ;-)
[21:20] <pavolzetor> ralsina: u1 can be file storage layer, so you can plug sky drive or so later
[21:20] <ralsina> pavolzetor: how do you accidentally create 40 throwaway subscriptions?
[21:20] <pavolzetor> ralsina: thanks :)
[21:21] <pavolzetor> ralsina: it wasn't by subscriptions
[21:21]  * ralsina is not speaking in behalf of Canonical whom may decide to cut that off anytime
[21:21] <ralsina> pavolzetor: anyway
[21:21] <pavolzetor> ralsina: I am not aware of this bug, mine was, I registered u1 music trial and canceled it
[21:22] <ralsina> pavolzetor: yes, u1 could be a layer above storage which synced to the cloud. However, syncing everything ijust doesn't work.
[21:22] <pavolzetor> ralsina: and 25 gb stayed, you can check if it is fixed
[21:22] <pavolzetor> ralsina: I would let user to decide what to sync
[21:22] <ralsina> pavolzetor: for example, if you sync a sqlite database and you use it heavily on two devices, you will generate conflicts faster than you can upload the changes
[21:22] <ralsina> pavolzetor: then it's not a thin layer over storage
[21:23] <pavolzetor> ralsina: there can be some policy, so layer check, if changes are made often and block it
[21:23] <pavolzetor> ralsina: I believe for future it is essential to have something like that
[21:23] <ralsina> pavolzetor: the odds of gettting that to work for a majority of users is null
[21:23] <ralsina> pavolzetor: if you figure out how to do it, you will make a ton of money
[21:24] <ralsina> So far, we couldn't :-)
[21:24] <pavolzetor> ralsina: how to do what, I am a little lost
[21:24] <ralsina> pavolzetor: how to create something that transparently syncs what the user tells it but blocks the problematic files, is easy to use, doesn't require a ton of maintenance, provides enough storage to be useful and works crossplatorm
[21:25] <ralsina> pavolzetor: if you hit those points, you have it made
[21:25] <ralsina> Currently we have: works crossplatform, doesn't require a ton of maintenance, is easy to use and sycs transparently.
[21:26] <pavolzetor> ralsina: I think majority does not use two devices at once
[21:26] <ralsina> pavolzetor: phone and pc
[21:26] <ralsina> pavolzetor: phone, tablet and pc
[21:26] <ralsina> pavolzetor: phone tablet pc and website
[21:26] <pavolzetor> ralsina: I see, but you need low latency only for one
[21:27] <ralsina> pavolzetor: you want low latency too? Ok, let's add it to the requirements :-)
[21:27] <pavolzetor> ralsina: I mean, when I am on phone, I do not use pc at same time
[21:27] <pavolzetor> ralsina: so phone can be slower
[21:28] <ralsina> pavolzetor: slower doing what? Syncing only once in a while?
[21:28] <pavolzetor> ralsina: the problem would be race condition
[21:28] <ralsina> that actually makes the conflicts harder to resolve
[21:28] <ralsina> if we knew every device is *always* connected, we could just use locking
[21:28] <dobey> pavolzetor: the phone app doesn't do synchronization
[21:29] <ralsina> that too
[21:29] <pavolzetor> dobey: what phone app? you mean u1?
[21:30] <dobey> pavolzetor: yes
[21:30] <pavolzetor> dobey: doesn;t it sync files?
[21:30] <dobey> pavolzetor: no. you can download files to your phone, though; and it can auto-upload new photos you take. but it does not keep them in sync
[21:32] <pavolzetor> ralsina: for that disconnected, I still assume user uses one device at particular time, so I would record changes and sync it
[21:32] <ralsina> dobey: you have a strange 4 day request from 9/10/12 to 12/10/12 is that an error?
[21:32] <pavolzetor> dobey: I see
[21:32] <ralsina> pavolzetor: I could draw you a diagram showing how that doesn't work :-(
[21:32] <dobey> ralsina: no. why is it strange?
[21:32] <ralsina> because you also asked for the 12th?
[21:33] <ralsina> so you are asking for it twice?
[21:33] <dobey> ralsina: eh? i also asked for the 8th
[21:33] <ralsina> columbus day is the 8th? Ok then :-)
[21:33] <dobey> 8th is national holiday, 9-12 regular holiday
[21:33] <pavolzetor> ralsina: why? could you send me a link, I meant something like "journal"
[21:33] <ralsina> dobey: there you go!
[21:34] <dobey> thanks
[21:34] <ralsina> pavolzetor: let's assume there are two devices A and B and a single file called F
[21:34] <ralsina> Both devices start disconnected
[21:34] <dobey> let's not asusme anything
[21:34] <dobey> assuming == broken software :)
[21:34] <ralsina> Edit in A.
[21:34] <ralsina> Edit in B.
[21:34] <ralsina> Connect B
[21:34] <ralsina> Connect A
[21:34] <ralsina> What is the true, valid version?
[21:35] <pavolzetor> ralsina: later one I would say
[21:35] <ralsina> dobey: I am trying to show that this software would not wrk, so allow me ;-)
[21:35] <ralsina> pavolzetor: then what happens to the changes you made in A?
[21:35] <pavolzetor> ralsina: I would discard it
[21:35] <ralsina> pavolzetor: ok, you just pissed off half the users :-)
[21:36] <pavolzetor> ralsina: :), I like to do that, or just allow editing when user is online
[21:36] <dobey> that's what conflicts are
[21:36] <pavolzetor> ralsina: did I piss other half?
[21:37] <pavolzetor> dobey: so you have to be online to avoid them right?
[21:38] <pavolzetor> dobey: or ask user to resolve them
[21:38] <dobey> pavolzetor: no. in the situation ralsina just described, it should result in a conflict when the two computers try to sync
[21:39] <pavolzetor> dobey: but there is no way for computer to decide, how to resolve them
[21:39] <dobey> right, the user will have to decide that
[21:41] <pavolzetor> dobey: hmm, I do not know then how do I fix
[21:42] <pavolzetor> dobey: I would like to have at least offline reading, but there is no way to decide if user read it or not if it is online
[21:42] <dobey> i don't understand what you mean
[21:42] <pavolzetor> dobey: e.g. I have app on phone
[21:43] <pavolzetor> dobey: I read something (like article), and if it is cachced offline and I turn my pc, I do not see I read it
[21:43] <pavolzetor> dobey: so I assume best solution is to require for app to be online
[21:44] <pavolzetor> dobey: how other apps solve tihs?
[21:45] <dobey> in ubuntu one?
[21:45] <pavolzetor> dobey: yes, or google reader
[21:45] <dobey> ubuntu one doesn't care if you read articles. and you can't know if some other device read the same article or not, unless both are connected somehow (typically via some service like google, u1, etc)
[21:46] <dobey> but both devices have to connect and synchronize to know what's what
[21:46] <pavolzetor> I see
[21:46] <pavolzetor> thnkas guys for your time, I will think about it, gotta go to bed :)
[21:46] <pavolzetor> this is one issue I need to solve for my app too
[21:47] <ralsina> dobey: we are either getting old, or they are getting too young.
[21:52] <dobey> heh
[21:53] <dobey> oh, look at the time. i think i need to gtfo :)
[22:01] <ralsina> hahaha
[22:03] <mmcc> hey, looks like I missed quite a conversation
[22:04] <dobey> later all
[22:04] <mmcc> bye dobey
[22:06] <mmcc> so the dbus interface to dbus_service - It looks like it's a separate process and will thus always create its own ControlBackend object, even though it first checks whether it has one before it creates it…
[22:07] <mmcc> the reason I'm looking at this is that I stumbled on the cause for bug 1044197
[22:07] <mmcc> there's one backend with one variable for a status changed callback, and both indicators set that variable
[22:07] <mmcc> so it needs to be a list of callbacks
[22:09] <mmcc> and I'm looking at the places that set it, and this dbus backend checks if the callback is none before setting it, even though it should always be none…
[22:11] <ralsina> mmcc: interesting
[22:12] <ralsina> mmcc: I don't remember enough of that code to follow it right now
[22:12] <ralsina> mmcc: maybe mail? I can try to assist a little tomorrow, maybe
[22:13] <mmcc> ralsina if you're curious, it's ubuntuone/controlpanel/dbus_service.py:281 where it checks it, and starting at line 596 is the init…
[22:13] <mmcc> ralsina: sure, I'll just propose what i think is the right solution and mail you the proposal…
[22:13] <ralsina> mmcc: I'll try to take a look tonigh
[22:13] <ralsina> t
[22:13] <ralsina> awesomer
[22:14] <mmcc> looking at annotate to see if I can figure out why that code was there