/srv/irclogs.ubuntu.com/2011/09/19/#ubuntuone.txt

achianghello anyone about? i'd like to figure out the best way to solve this situation. parent folder A contains N subfolders, B, C, D, ...04:20
achiangC and D are individually marked to be synced04:21
achiangi would simply like to sync A now, to get all the subfolders04:21
achiangbut i can't, at least not via the nautilus interface04:21
* achiang tries "stop synchronizing this folder" on the subfolders and then syncing the parent04:24
jo-erlendhmm. I thought desktopcouch in Oneiric had been fixed?07:37
jo-erlendI still get couchdb.http.Unauthorized: ('unauthorized', 'Authentication required.') when I try to connect to it.07:37
jo-erlend... or is it just me? I upgraded from Oneiric, and then it stopped working.07:51
jo-erlendfrom Natty, to Oneiric, I mean.07:51
mandelmorning all!08:37
JamesTaitMorning all!08:51
karniHi everyone :)09:05
gatoxhi everyone09:26
=== teknico_ is now known as teknico
karnihi gatox \o10:12
gatoxkarni, hi!! this friday i'm receiving a phone with meego (i told you about a while ago), so i'll be doing (if i can :P) a port of ubuntu one mobile to that phone :D10:13
karnigatox: wo-hooo \o/ sweet!10:15
gatoxkarni, so i'll be asking you some stuff if i have doubts :P10:15
karnigatox: of course! :)10:16
karniMy pleasure to help.10:16
Chipacagatox: when you think it and you can take it, let us know and we'll tweet about it so you get some extra hands on it :)10:22
Chipacagatox: (from the Ubuntu One account, which has a bunch of followers)10:23
gatoxChipaca, awesome! thanks!! It also is going to appear in Qt pages, so more publicity there :D10:24
Chipaca:)10:25
ChipacaHLQP, etc :)10:25
ralsinamorning!10:26
gatoxralsina, morning!10:27
karnihiya ralsina !10:34
ralsinahi karni, gatox10:37
mandelgatox, that is assuming I bring the phone with me buahahahahahaha11:01
gatoxmandel, jejejejee pleaseeeeeeeeeeeee :P11:02
mandel:p11:03
mandelralsina, ping11:04
gatoxralsina, can i have a quick review? :P https://code.launchpad.net/~diegosarmentero/ubuntu-sso-client/verification-code/+merge/7575511:06
ralsinamandel: pong11:07
ralsinagatox: sure11:07
gatoxralsina, thanks11:07
mandelralsina, I have a logistics question, shall I ask for conference days for the days I'm travelling to pyconar? aslo, has alecu mentioned the sprint of sugar labs?11:09
ralsinamandel: conference days for travel, I don't know but I expect yes11:11
ralsinaAnd yes, I know about the sugar labs sprint. Why?11:11
ralsinagotta take the kid to school, I'll be back in 1 hour or so11:13
mandelralsina, 'cause I was going to take part :P11:13
mandelralsina, ok, latars!11:13
mandels/latars/laters11:13
ralsinamandel: ok, you take part. So? ;-)11:13
ralsinaok, really leaving now. See you guys in a bit11:14
mandelralsina, I dont know, I though I had to let you know hehehe11:14
mandelgatox, can you do me a favour?11:29
gatoxmandel, shoot11:29
mandelmandel, can you run the tests on windows for ubuntuone-windows-installer and tell me if you get any failures?11:30
mandelfuck, QEventReactor does not have defer to thread? what the fuck!11:31
gatoxmandel, just the last u1 installer in trunk or any branch in particular?11:31
mandelthat was no a ? it is a statement, stupid irc client :(11:31
mandelgatox, trunk please :)11:31
gatoxmandel, ok...... on iit11:32
gatoxmandel, everything is ok here11:33
mandelgatox, ok? I'll see what I screwed up11:34
gatoxmandel, do you know where is located this ui?? https://launchpadlibrarian.net/79356411/Screenshot-Create%20Ubuntu%20One%20account.png (it is from gtk)11:34
gatoxi can't find it11:34
gatoxmandel, i'm trying to look for the strings but it's not working11:35
mandelgatox, let me take a look11:37
mandelgatox, in sso, right?11:37
gatoxmandel, i think...11:37
mandelgatox, I'm pulling trunk, but I think I know where it is :)11:38
mandelgatox, ubuntu_sso/utils/ui.py11:39
mandelgrep "I agree" ubuntu_sso/ -Rn11:39
mandelhehe11:39
mandelgatox, the app_name is a parameter, that is why you probably did not find it :)11:40
gatoxmandel, thanks!11:41
mandelgatox, no worries :)11:43
* mandel walking dog11:55
edinnycan I get help with ubuntu one here?12:05
edinnyWhen I try to create a new address book on my new natty machine, ubuntu one is not an option12:06
FxIIIhi all12:11
FxIIIi'm using python and oauth2 to upload files to the cloud but i have a problem when i create a file12:12
FxIIIi got "file upload conflicted with another transaction"12:15
beunoFxIII, hi!  that's interesting, we've seen some of those spuriously12:33
beunoFxIII, those this happen consistently?12:33
FxIIII think so12:34
beunoFxIII, are you uploading files in parallel or serially?12:35
FxIIIbeuno: im on interactive interpreter but for now it will do it over and over12:35
FxIIIbeuno: one at time12:35
FxIIIhttps://files.one.ubuntu.com/content/~/Ubuntu%20One/test.txt12:36
FxIIIi get /content/~/Ubuntu%20One by calling the api12:37
FxIIIhttps://one.ubuntu.com/api/file_storage/v1/~/Ubuntu One12:37
FxIIIhttps://one.ubuntu.com/api/file_storage/v1/~/Ubuntu%20One12:37
ralsinamandel, alecu, gatox: after friday's mailing we are up to over 400 windows users connected12:38
gatoxralsina, wow! awesome!12:38
beunoFxIII, on a call, let me hand you over to vds12:38
ralsinagatox: do you have 30 minutes free today so I can walk you through building an installer?12:39
* ralsina wants the project to be bus-proof12:39
gatoxralsina, jejej yes! also.... i would like to ask you something about the network detection12:39
ralsinagatox: cool12:39
gatoxralsina, and have another really quick review if you have the time cof cof jeje12:39
ralsinagatox: in a few minutes, I haven't done the other one yet12:40
gatoxralsina, ok!12:40
FxIIIbeuno: vds?12:40
* mandel back12:42
mandelralsina, how is the release being done?  mean, we are sending emails etc...12:42
mandelralsina, I've been ask by several people about the new client :)12:43
ralsinamandel: joshua has a list of people who used the old beta, and we are mailing them in batches, we are up to 10K now12:43
ralsinamandel: you can't give them the URL but I'd say "google for it" is not a bad advice, and it does work ;-)12:43
beunoFxIII, yes, but he may be at lunch12:44
ralsinagatox: don't remove the blank line in line 88 of the diff. It's PEP-compliant.12:44
* gatox looking....12:45
gatoxralsina, really?? most of the classes don't have that line12:46
FxIIIah ok beuno i didn't understand12:46
FxIIIbeuno: if it can be usefull i saw the file are actually stored12:46
ralsinagatox: because they are not PEP-compliant12:46
gatoxralsina, ok, changing it back12:47
mandelralsina, ah, nice :)12:47
ralsinamandel: quick mumble re: pyconar?12:48
mandelralsina, so, the 400 uses, how many people are out of the number of email we have sent?12:48
mandelralsina, ok12:48
ralsinamandel: about 4%12:48
mandelralsina, out of the sent emails or out of all users...12:48
ralsinamandel: about 4% of the mails sent12:48
ralsinamandel: OTOH, that was sent on friday so I expect it to raise fr a day or two more12:49
mandelralsina, ok12:49
ralsinaOTOOH I ust noticed this is the public channel. OOPS.12:49
mandelme12:59
ralsiname12:59
ralsinaalecu, gatox, dobey, standup13:00
gatoxme13:00
=== mandel is now known as standup
standupme13:01
=== standup is now known as mandel
mandelhehehe13:01
gatoxjeje13:01
ralsinaok, mandel, go13:01
mandelDONE: Improve tests and code for auto-updater.13:01
mandelTODO: Commit those ^ changes and ask for reviews. Create migration script from old beta to new13:01
mandelBLOCKED: no13:01
mandelCOMMENTS QEventReactor those not implement deferToThread that is an utter crap13:01
* ralsina sends dobey and alecu to the corner13:01
mandels/those/does13:01
mandelups13:01
ralsinaDONE: release, packaging, last-minute fixes, bug triaging, IRL testing. TODO: bug triaging, bugfixing, cleanup packaging for merge, reviews. BLOCKED: no13:02
ralsinagatox?13:02
gatoxDONE:13:02
gatoxBug #834152, and some fixes in friday branches.13:02
gatoxTODO:13:02
gatoxMore UI bugs.13:02
gatoxBLOCKED:13:02
gatoxNo13:02
ubot4Launchpad bug 834152 in ubuntu-sso-client "The agreement checkbox shouldn't be checked by default (affects: 1) (heat: 6)" [High,In progress] https://launchpad.net/bugs/83415213:02
alecuhello!13:02
gatoxalecu, standup! :P13:02
ralsinamandel: but but but we already are using deferToThread with qt4reactor in sso?13:02
ralsinamandel: or is it something else?13:02
=== teknico_ is now known as teknico
ralsinagatox: the agreement box is *not* checked by default! Or is it?13:03
gatoxralsina, not checked13:03
alecuwe surely are using deferToThread with qt4reactor13:03
ralsinagatox: can I throw bug #853794 to you as high?13:03
ubot4Launchpad bug 853794 in ubuntuone-client "Password recovery on Windows client gives error (affects: 1) (heat: 6)" [Undecided,New] https://launchpad.net/bugs/85379413:03
mandelralsina, deferToThread, I think we are not? I got that error when trying to run u1trial with eactor=qt413:03
mandelreactor* sorry13:03
ralsinagatox: at least triage it, i it's a server error, kick it to web+mobile13:03
gatoxralsina, ok!13:03
mandelralsina, I'll take a look again, maybe I'm wrong (very possible)13:04
ralsinamandel: let me check. We are using an equivalent at leasr :-)13:04
mandelralsina, 'cause if it is then we do reactor.deferToThread(subprocess.call, args)13:04
mandelralsina, that would make everything a lot nicer :D13:04
alecuDONE: worked on unicode fixes on sso and sd13:04
alecuTODO: finish that, and work on unicode fixes in control panel13:04
alecuBLOCKED: no13:04
ralsinamandel: check ubuntu_sso/main/windows.py13:05
dobeyλ DONE: bug #83877813:05
dobeyλ TODO: more bugs, freeze exceptions13:05
dobeyλ BLCK: None.13:05
ubot4Launchpad bug 838778 in ubuntuone-control-panel (Ubuntu Oneiric) (and 2 other projects) "After installing Ubuntu One, there are 2 Ubuntu One launchers in System Settings (affects: 51) (dups: 13) (heat: 228)" [High,Triaged] https://launchpad.net/bugs/83877813:05
mandelralsina, the worst thing is that I wrote that, hay que joderse!13:05
alecuubuntu_sso/main/windows.py:from twisted.internet.threads import deferToThread13:05
alecuubuntu_sso/keyring/windows.py:from twisted.internet.threads import deferToThread13:06
alecubut13:06
ralsinamandel: you should take your morning pills13:06
alecuubuntu_sso/networkstate/windows.py:from threading import Thread13:06
alecuso, we are using both twisted threads and standard python threads13:06
ralsinaalecu: ubuntu_sso is open minded and willing to try everything13:06
alecuralsina, yeah, sometime it looks like it was coded in the 60's13:06
mandelalecu, I thin using the twisted thread is nicer, right? I think network was writen without knowing that we could use twisted threads13:07
mandelralsina, hehe I should :P13:07
alecumandel, yup, but I wouldn't worry too much about that13:07
alecumandel, unless we are having some issue with it.13:08
alecuare we?13:08
mandelalecu, no, we are not13:08
alecugreat13:08
mandelok, I'm off to lunch and will finish that autoupdate no blocking code :)13:08
alecumandel, "autoupdate non-blocking code"?13:10
* alecu looks for the backlog13:10
dobeyhmm13:10
mandelalecu, the auto-update.exe is the one that performs the check and since we use subprocess.call it blocks, which is crap, so I want to block in a thread and the get the retcode from a deferred13:11
alecumandel, let's not use threads for that. There's something similar to subprocess in twisted, too.13:11
alecumandel, let me find it13:11
alecuhttp://twistedmatrix.com/documents/current/core/howto/process.html13:12
mandelalecu, that I knowm but doing a process protocol just to check if the process returns 0 is a little to much, right?13:12
nbfis ubuntu one ever going to provide an app store like feature13:12
gatoxREALLY small review: https://code.launchpad.net/~diegosarmentero/ubuntu-sso-client/834152/+merge/7602613:13
nbfwhat I'd like to see is the ability to "save" certain apps to a list on ubuntu one13:13
ralsinagatox: in verification-code branch, are there tests for the code in lines 48-50?13:13
nbfso you could install ubuntu, log into your ubuntu one account and automatically install your favorite apps with one click13:14
mandelnbf, I think onecon was for that, but I'm not sure13:14
nbfonecon?13:14
ralsinaoneconf13:14
ralsinabut it's not for that13:14
alecuhttp://www.omgubuntu.co.uk/2010/06/oneconf-wants-to-reinstall-your-applications-settings-on-a-fresh-ubuntu-install/13:15
nbfactually it does look similar13:15
nbfawesome thanks guys :)13:15
ralsinathat's just for settings, won't install the apps themselves. Or maybe it will, haven't used it myself :-)13:15
nbf"Designed to  save a list of installed programs, their settings, configurations and preferences; OneConf aims to synchronize this information with Ubuntu One - Canonical’s cloud storage service."13:16
gatoxralsina, i think not....13:16
nbfsounds like what I'm asking for13:16
alecunbf,  I saw a lot of work was happening during the Oneiric on OneConf, so you should check it out13:16
ralsinanbf: cool then :-)13:16
nbfoenierc is out in a few weeks isnt it13:16
mandelralsina, done with the registration, or so I believe, I've used my @canoincal.com email for it13:16
=== m_conley_away is now known as m_conley
ralsinamandel: cool13:16
gatoxralsina, i'll add test for that and fix the pep8 thing13:17
gatoxralsina, now i have to leave for a while....... brb!13:17
=== gatox is now known as gatox_brb
alecumandel, from what I read, I would implement an empty class that inherits from ProcessProtocol, and that only redefines .processEnded(status):13:17
ralsinahow about using subprocess correctly and not doing anything with threads? ;-)13:18
mandelalecu, I'll give it a try to see if it works with the Qt reactor, should be very easy13:18
alecumandel, sorry: twisted.internet.utils.getProcessValue13:18
alecumandel, http://twistedmatrix.com/documents/current/core/howto/process.html#auto613:18
alecumandel, "If you only need the final exit code (like commands.getstatusoutput(cmd)[0]), the twisted.internet.utils.getProcessValue function is useful"13:19
ralsinaalso: if we start u1cp first, this is ust useless13:19
ralsinas/ust/just/13:19
mandelalecu, superb!13:19
mandelralsina, and also true :)13:19
* ralsina reminds people that while nice code is fun, moving lines around is cheap13:19
mandelralsina, alecu I'll go for lunch and will make the code nicer, it should be very easy13:19
alecuralsina, like "paehc si dnuora senil gnivom" ?13:21
ralsinaalecu: lines, not columns13:21
alecudoh13:21
ralsinacolumns are expensive!13:21
ralsinaall the marble, the carved leafs13:21
ralsinaalecu: have 5' for a quick mumble?13:43
alecuralsina, sure. give me a minute13:44
ralsinaalecu: cool. Talk loudly when you get there :-)13:44
* mandel back13:44
FxIIIi saw that there is the need to have at least the DISPLAY environment variable to use ubuntuone at commandline13:51
FxIIIthis is a problem if one does not have access to X or does it using SSH13:51
ralsinaFxIII: ubuntuone also uses dbus so it's not trivial to get it running over ssh13:53
FxIIIralsina: in ssh an export DISPLAY=:0 works13:54
ralsinaFxIII: if you have a session on :0 sure :-)13:54
dobeythe cli tools do not need DISPLAY13:54
dobeythey need dbus13:55
FxIIIthe problem arise when there is no session :D13:55
FxIIIso ubuntuone cant be used without X?13:58
ralsinaFxIII: it should be possible to create a dbus session without X, it's just very very annoying.13:58
FxIIIi see13:59
dobeyFxIII: it cannot be used without dbus13:59
FxIIIthe X requirement is quite strong13:59
dobeynot really14:00
ralsinaYou can use Xvfb14:00
FxIIII'm on a arm w/o display at all :D14:01
=== gatox_brb is now known as gatox
ralsinagatox: can you do some IRL testing of bug #851094 please?14:24
ubot4Launchpad bug 851094 in ubuntu-sso-client (and 1 other project) "When reset password request fails, poor error message is shown (affects: 1) (heat: 6)" [Critical,Triaged] https://launchpad.net/bugs/85109414:24
ralsinagatox: I have a user reporting it as bug #853794 and he claims he pasted the code correctly and still failed14:25
ubot4ralsina: Error: Bug #853794 not found.14:25
gatoxralsina, ok, on it14:26
ralsinagatox: are you fixing bugs in gtk now? :-D14:26
gatoxralsina, about building the installer.... can it be before 3pm?? i have to study later14:26
ralsinahttps://code.launchpad.net/~diegosarmentero/ubuntu-sso-client/834152/+merge/7600814:26
gatoxralsina, just one :P14:26
ralsinagatox: it can be now if you want14:26
gatoxralsina, let me do the IRL testing... and i'll let you now after that, ok?14:27
ralsinagatox: get yourself bitrock installbuilder professional trial installed in the meantime, then ping me14:27
ralsinagatox: +1 on the checkbox branch14:29
gatoxralsina, ok :P14:30
gatoxralsina, the irl testing...... should i do it with the installer.... or can i do it with the code in trunk?14:39
ralsinagatox: trunk should be enough14:40
gatoxralsina, ok14:40
ralsinamandel: can you take a quick pass through these old bugs when you have a minute? https://bugs.launchpad.net/ubuntuone-windows-installer/+bugs?field.assignee=&field.bug_reporter=&field.has_no_package=&field.has_patch=&field.omit_dupes=on&field.searchtext=&field.status%3Alist=CONFIRMED&field.status%3Alist=FIXCOMMITTED&field.status%3Alist=INCOMPLETE_WITHOUT_RESPONSE&field.status%3Alist=INCOMPLETE_WITH_RESPONSE&field.14:42
ralsinastatus%3Alist=INPROGRESS&field.status%3Alist=NEW&field.status%3Alist=TRIAGED&orderby=-datecreated&search=Search&memo=150&start=15014:42
gatoxralsina, bug reproduced :S14:47
ralsinagatox: with correct code and everything? Please tell pindonga on #ids14:48
gatoxralsina, yep......14:48
ralsinaand move the bug to "triaged" if it is not14:48
ralsinaand add a note about it in the bug14:48
mandelralsina, of course, give me a few mins and I'll look into that14:49
ralsinamandel: thanks14:49
ralsinamandel: no rush, just some housecleaning when you have a bit of time to relax :-)14:49
mandelralsina, what do you want me to do, double check that are fixed?14:49
ralsinamandel: if they are for the old beta just say something like "please expect a new release in your email soon"14:50
ralsinamandel: if they are for the new one, we should look into them :-)14:50
mandelralsina, ok14:51
mandelwe should start doing this: http://en.wikipedia.org/wiki/Uberman%27s_sleep_schedule#Uberman.27s_sleep_schedule14:58
mandelit would solve all the schedule problems we have, we just need to agree on when to sleep :P14:58
mandelralsina, ping15:03
ralsinamandel: pong15:03
mandelralsina, when running the tests of ubuntuone-windows-installer it gets stuck 'til timeout in test_total_size_udf, do you experience this?15:04
ralsinamandel: didn't last time I checked15:04
ralsinamandel: let me re-check15:05
mandelstupid vm...15:05
ralsinamandel: probably a timing issue on the tests. That code is tricky15:05
edinnyis this for developers or users?15:06
ralsinaedinny: developers and users. If you need help with anything... we will help you15:06
ralsinamandel: confirmed it's not timing out for me15:07
edinnyI have 2 contact related issues15:07
mandelralsina, dammed, can I push a branch for you to test?15:07
edinnyfirst, I started using ubuntuone without opening an account by name15:07
mandelralsina, I think it is due to the share_folders from vmware15:08
edinnylater I openened and account and added that computer.15:08
ralsinaYou are running it in one of those? Yes, that doesn't work.15:08
edinnyI seem to have lost my addressbook15:08
ralsinamandel: you have to set TMPDIR or something like that15:08
edinnydid it replace my old account with the new one?15:09
mandelralsina, yes, that I have done, you have to set the test_trial in the cmd vars? it happens just with that method in both my branch and trunk, so is the vm, its fucked15:09
ralsinaedinny: could be. You can only be logged into one account at a time15:10
ralsinaedinny: you could try logging in with the old account to see if things come back15:10
edinnythere was no loging with the old site.15:11
ralsinaedinny: I am not sure I understand that15:11
edinnyif I use ubuntuone and don't sign up for an account, does it get stored on U1?15:11
ralsinaedinny: no15:12
ralsinaedinny: if you are not signed in, you are not using ubuntu one at all15:12
edinnymy other problem is my new natty install.  Evo does not have an option for a new addressbook on U115:13
ralsinaedinny: yes, we have that bug reported and a fix was committed very recently15:14
edinnyjust "on this computer", ldap, and webdav and google15:14
ralsinaedinny: no, wait, I am confused with oneiric15:14
edinnyyes?15:14
ralsinaedinny: if you don't have it in natty, you are probably missing a package, let me check the name15:15
edinnyfile>new>addressbook15:15
ralsinadobey: do you remember the name of the package to provide evolution <-> u1 integration?15:15
dobeyevolution-couchdb15:15
edinnyinstalling now15:16
dobeyralsina: it's not installed by default since natty, as we pulled the couchdb stack off CD to save space15:17
ralsinadobey: right15:17
edinnydo I have to specify the remote couchdb server?15:17
edinnyor just give it a name15:18
dobeyedinny: if you restart evolution, it should create the Ubuntu One address book automatially15:18
dobeyrodrigo_: ^ right?15:19
edinnydid not do it15:19
edinnyI shut evo, did apt-get, started evo15:19
dobeyhrmm15:20
dobeyedinny: quit evo, run evolution --force-shutdown from a terminal, then start evolution, perhaps15:20
edinnygot it.  thanks15:21
edinnyNext I have to figure out how to move an old adressbook.db over15:21
dobeyyou mean inside couchdb?15:22
mandelralsina, gatox, alecu can I get a review for https://code.launchpad.net/~mandel/ubuntuone-windows-installer/auto-update-python-only/+merge/76047 It just adds the python code so that we later add the xml once ralsina branch has been landed to trunk15:22
gatoxmandel, on it15:22
ralsinamandel: will check!15:22
mandelsuper! thx!15:23
mandelralsina, shall I make a branch from your that contains just the xml? that way there won't be merge issues15:23
ralsinamandel: yes15:24
ralsinamandel: then I can merge that one with mine, cleanup, and merge to trunk15:24
mandelralsina, that is the plan :)15:24
mandelralsina, will do that, then some bug and next the update script, which I shall add in a similar way to the auto-update in the installer15:25
ralsinamandel, alecu: either of you actually understands how oauth+lazr works on sso?15:26
mandelralsina, I might add some ugly ui for that script15:26
ralsinamandel: cool. You could also add a command to the setup.py t build it15:26
rodrigo_dobey, yes, right15:26
alecumandel, I'm reviewing your branch. Q: why the "+def start_control_panel(with_icon=False):15:26
alecu"?15:26
ralsinaalecu: That's mine! I need to file a bug and fix it!15:27
ralsinaOTOH, the fix is there ;-)15:27
mandelalecu, is that in the diff? I did not do that :P15:27
mandelein?15:27
alecumandel, that's what LP shows on the last line of the diff!15:27
alecuhttps://code.launchpad.net/~mandel/ubuntuone-windows-installer/auto-update-python-only/+merge/7604715:27
ralsinamandel: you got that because you branched from mine, and I did it there15:27
mandelralsina, alecu ok, le me fix that, sorry15:28
ralsinaI wonder why you didn't get the rest of it, though15:28
dobeyrodrigo_: it seems like if e-addressbook-backend is already running when it got installed, it doesn't just work though. :(15:28
dobeyanyway, i need to get me some lunch15:28
dobeybbiab15:28
rodrigo_dobey, the creation of the U1 addressbook is done on an evo plugin, so it's evo that needs to be restarted, not e-a-f15:29
mandelralsina, 'cause I try to be smart with a diff so I did not base the code in your brache and failid :(15:30
ralsinamandel: ja!15:30
dobeyrodrigo_: but it only creates it if the address book is available in the backend right?15:30
rodrigo_dobey, hmm, maybe15:31
ralsinaARGH, oauth library supports changing timestamps but lazr hides it!!!!!15:31
dobeyrodrigo_: in which case the backend also needs to be restarted :-/15:31
* ralsina SMASH15:31
dobeyanyway lunch :)15:31
FxIIIbye15:35
mandelralsina, alecu fixed :)15:40
* ralsina is about to find who wrote lazr and send him a strongly worded email15:48
mandelralsina, hahaha, add me in the signature of the email ;)15:50
ralsinaI just can't find where the frak it's calling the oauth method that adds the timestamp15:51
ralsinait's like it's written using a damn obfuscator. It doesn't do a single import the straight way, everything is in namespaced packages and imported via __import__15:52
ralsinaoauth = __import__('oauth.oauth', {}).oauth mis polainas!15:53
mandelhahahahaha15:53
mandelsorry, but I have to laught :P15:53
ralsinaI mean what the heck does that even DO15:53
ralsinaHaha! I *think* I found it by grepping for from_consumer_and_token15:55
mandelralsina, I just did this for you: https://code.launchpad.net/~mandel/ubuntuone-windows-installer/add-updater-xml/+merge/7605315:55
ralsinamandel: cool, thx15:55
* mandel is the first time that he proposes a merge to a branch that is not trunk15:55
ralsinamandel: did you actually see the diff? ;-)15:55
mandelnop, let me see15:56
mandelralsina, hahaha, mamon!!!15:57
mandelralsina, why did you tell me to do it then ;-)15:57
ralsinamandel: reject it, then :-)15:57
mandelI agree hehe15:57
ralsinamandel: I thought you had other stuff in it15:57
mandelralsina, nah, I'll do that later after bugs and the upgrade script witch is more urgent, right?15:58
ralsinayes15:59
gatoxralsina, do you want to build the installer now?? or you are about to eat?16:01
ralsinagatox: let's do it16:01
ralsinagatox: mumble?16:01
ralsinagatox: please branch lp:~ralsina/ubuntuone-windows-installer/fix_80987316:02
mandelok, EOD for me, catch you tom!16:02
ralsinabye mandel!16:02
mandelhave a good afternoon/evening!16:02
gatoxralsina, branching16:02
gatoxmandel, we have a problem! :P16:10
gatoxmandel, ohh...... eod....... sorry16:12
mandelralsina, ping16:14
mandelgatox, dime!16:14
ralsinamandel: pong16:14
mandelgatox, I'm 'merendand' I guess like is having tea in an eng version hehe16:14
gatoxmandel, merendando :P...... your tests are failing: http://paste.ubuntu.com/693147/16:15
mandelralsina, this bug https://bugs.launchpad.net/ubuntuone-control-panel/+bug/845659 do they want me to implement this in control panel too?16:15
ubot4Launchpad bug 845659 in ubuntuone-control-panel "Windows: implement the "there is a new version available" notifications (affects: 1) (heat: 6)" [High,Triaged]16:15
ralsinamandel: the original plan was to do it on u1cp16:15
mandelgatox, hum, que raro, looking16:15
ralsinamandel: since it seems to work well in -installer, I think you should just change the project16:15
mandelralsina, I'll set it as a duplicate then16:16
mandelgatox, which revno do you have?16:17
gatoxmandel, 7016:17
mandelgatox, look at the diff, line 21816:18
gatoxmandel, yes?16:18
gatox218+    def debug(self, message, *args, **kwargs):16:19
mandelgatox, and the owner is FakeLogger...16:19
gatoxmandel, yes....16:19
mandelgatox, can you try with Z:\Projects\ubuntuone-windows-installer\auto-update-python-only>python C:\Python16:20
mandel27\Scripts\u1trial ubuntuone_installer\gui\qt\utils\tests\test_windows.py16:20
mandelgatox, no need to set the reactor in this case since there is no qt in that module16:20
gatoxmandel, ahhhhhhhhh ok!16:20
gatoxmandel, wait......16:20
gatoxmandel, but i'm running it with. run-tests.py16:21
gatoxsorry16:21
gatoxrun-tests.bat16:21
mandelgatox, ah, I know the issue? let me try to fix it. Looks like a weird import somewhere16:22
karniAny DROID3 users here?16:24
ralsinaOk, so I found how to patch the timestamp. Alecu, can I show you something, and you tell me if it's a very bad idea?16:27
dobeyralsina: are you doing the hack to get the timestamp from the server?16:29
ralsinadobey: yeah16:30
ralsinaI am wondering if I can block for a bit inside SSO or need to make it async16:30
mandelgatox, let me finish my food and I'll take a closer look, I'm getting issue with the defers now :(16:33
gatoxmandel, obvio!! vaya!16:33
gatoxralsina, can you reproduce this bug? https://bugs.launchpad.net/ubuntuone-windows-installer/+bug/828938 (i can't)16:46
ubot4Launchpad bug 828938 in ubuntuone-windows-installer "Error on test_forgotten_password_controller_error (affects: 1) (heat: 6)" [Medium,Triaged]16:46
* ralsina looks16:47
ralsinagatox: used to, since I reported it ;-)16:47
ralsinagatox: anyway, that's not urgent, since it only affects tests16:47
ralsinagatox: and doesn't even make the tests fail...16:47
gatoxralsina, ok..... but i think that maybe is fixed already16:47
gatoxralsina, i'll return to network detection16:48
ralsinagatox: if you run the tests and is not there, mark as fix-committed16:48
gatoxralsina, ok16:48
gatoxlunch....... brb in 20 min!16:52
=== gatox is now known as gatox_lunch
=== beuno is now known as beuno-lunch
ralsinaalecu: ping16:56
karniAnyone with Samsung Galaxy SII ?16:57
karniI suspect it's storing pictures in a folder rooted somewhere else than /mnt/sdcard16:57
nhaineskarni: some Android phones also use internal storage.  My coworker's Droid Incredible is like that.17:02
karninhaines: is it DROID3 by any chance? (I don't know all the phones to be honest;) )17:03
karninhaines: Yes, SII has internal 16GB17:03
nhainesnhaines: it is a Droid Incredible.  :)17:04
nhaineskarni: ^^17:04
nhaineskarni: I can find out what folder that one stores pictures in internally, if you like.17:04
karninhaines: ah ok :)17:04
karninhaines: That would be great, yes please :)17:04
karninhaines: Eventually, we should simply let the users pick it.17:05
nhaineskarni: okay.  It might have to wait a couple hours until lunch.  :)17:05
karninhaines: Whoa, that's still pretty fast!17:05
karninhaines: I'll be away soon, but please leave me a message, I've got IRC session up.17:06
nhaineskarni: will do!17:06
karninhaines: Thank you :)17:06
alecuralsina, pong17:07
ralsinaalecu: I have a fix for the timestamp problem17:07
alecuralsina, nice!17:07
ralsinaalecu: BUT I don't know if I am doing it right :-)17:07
ralsinaalecu: basically, I am doing a blocking call in sso17:07
ralsinaalecu: care to take a look at the code and tell me if that's ust bad?17:08
alecuralsina, sure17:08
=== gatox_lunch is now known as gatox
ralsinaalecu: http://pastebin.ubuntu.com/693185/17:08
ralsinaalecu: the AutoStampAuthorizer class17:09
ralsinaAutoTimestampAuthorizer17:09
ralsinaauthorizeRequest is basically the exact same thing as is in lazr, except I pass the oauth_timestamp parameter to the underlying oauth library. But the urllib stuff is blocking17:10
alecuralsina, I like that solution. And since this is using lazr -which is blocking-, it is already being run in a thread.17:15
alecuralsina, But I have a couple of questions:17:15
ralsinacool17:15
ralsinaask away :-)17:15
alecu * what about the file sync servers and api calls from the control panel?17:16
ralsinaAFAIK, they all sign their request through here17:17
ralsinaoh, wait, they don't. I may have to do something similar in ubuntu_sso.utils17:18
alecu * is this only used on is_validated and validate_email? if not, it can be really expensive to do this call each time.17:18
ralsinaalecu: I thought about doing a time diff and using that, but then it will break completely if the user *fixes* the time17:19
ralsinaI don't see it used elsewhere, though17:19
alecuralsina, I like that approach. In any case we can cache the "time difference" for some given amount of time, and if the clock is adjusted we would discard the cached value.17:21
ralsinaalecu: it gets much more complex that way...17:22
alecuralsina, right. But the control panel is already slow when doing webservice calls, and if we add a "time" call per each webservice call it would be insanely slow.17:23
ralsinaone compromise: we could, on start, use this to validate time.time() (check if there are less than, say, 300 seconds difference). If the difference is too high, we set a flag and use the slow version (and show a warning)17:23
alecuralsina, sounds like an interesting hack17:24
ralsinaand on every call to figure out time, we re-validate the diff, and set/reset the flag17:24
ralsinaso, if the local time improves, we stop using the slow version17:24
alecuralsina, also syncdaemon uses webservice calls to publish files and such... they are not so much time sensitive operations, but anyway17:24
ralsinaargh17:25
alecuralsina, I see that those operations (publish, create shares) are oauth signed in ubuntuone/syncdaemon/action_queue.py17:27
alecuralsina, but I don't see them using the timestamp17:27
ralsinaif they don't pass a timestamp it uses int(time.time())17:28
ralsinamaybe we should monkeypatch oauth.pauth17:29
ralsinaoauth.oauth that is17:30
ralsinainstead of chasing everywhere we use it17:30
alecuralsina, they are using oauth.OAuthRequest.from_consumer_and_token17:30
ralsinaalecu: yes, that's the one where everything happens :-)17:30
ralsinaalecu: and the only place where you can specify the timestamp17:30
ralsinaalecu: if we monkeypatch that we fix it for everyone17:31
alecuralsina, hmmm... it seems oauth.oauth is also used *inside* the storage protocol code.17:34
ralsinaalecu: so, I think we can go for the minimalistic solution. On startup, validate time and warn the user that machines with bad time don't work with u117:35
alecuralsina, yeah, and suggest installing http://www.timesynctool.com/17:35
ralsinaalecu: on windows you don't need any tools17:35
ralsinawindows 7 has an embedded NTP client17:36
alecuralsina, well, the default ntp client on windows updates daily17:36
ralsinaalecu: or when you click the button17:36
alecuralsina, right17:36
ralsinaif your computer moves more than 15 minutes daily, it's broken :-)17:36
alecuralsina, well that small tool updates every 15 minutes, and that's what I have running inside vbox, because vbox is so broken!17:37
alecuralsina, but is the win7 ntp client enabled by default?17:37
ralsinaalecu: yes17:37
alecuralsina, cool. in any case, we may recommend that tool when the user is on a previous version17:37
ralsinaright17:39
ralsinaI hate this solution though17:39
alecuralsina, """The Windows Time Service in Windows 7 is also configured by default to not start automatically each time the system is started - the user interface reports that Windows is configured to automatically update the system time, but it doesn't unless the user manually starts the Windows Time Service either through the Services Control Panel applet, or by requesting a manual sync. Unless the user reconfigures the Windows Time Service17:39
alecuto start automatically, it will be effectively disabled every time the system is restarted"""17:39
alecu(from the homepage of that tool)17:40
ralsinahahahahahahaha17:40
ralsinasnif snif snif17:40
alecuOn the plus side, this timesynctool.exe is developed on sourceforge, and bsd licensed, so we may be able to include it in our installer.17:42
ralsinaalecu: how about implementing a subclass of oauth.OAuthRequest that does that whole "validate time / use slow version if it's broken" in ubuntu-sso-client and changing the rest to use that?17:44
ralsinait only will be broken when the time is good at first and later diverges17:45
ralsinabut that happens already17:45
ralsinaand that fails silently already too17:45
alecuralsina, afaict oauth.OAuthRequest is used by the storage protocol, and that's twisted code.17:46
alecuubuntuone/storageprotocol/client.py -> oauth_authenticate()17:47
ralsinaoh, crap. How many different ways do we sign rquests?17:47
alecuralsina, so we should not make oauth_authenticate block on the urllib call17:47
alecuralsina, that seems to be the only place the storage protocol signs a request, when starting the connection.17:48
ralsinaso blocking there is bad? If it's only once...17:48
alecuand the other parts where it signs oauth request are the -dirty- bits where it makes webclient calls we found above: creating a share, publishing a file.17:52
alecuralsina, it might not be *bad* to block there, but it certainly looks dirty17:52
ralsinasince all those fail currently, I would consider fixing it in sso and when starting the connection an improvement17:53
alecuralsina, perhaps we should ask for facundobatista's input on how this issue may be fixed for SD17:53
ralsinaalecu: good idea17:54
ralsinafacundobatista: ping17:54
facundobatistaralsina, pong17:54
ralsinafacundobatista: I am trying to figure out what needs fixing to handle bad time in the client which makes SSO fail17:54
ralsinaor rather oauth fail17:54
facundobatistaralsina, what?17:55
ralsinafacundobatista: if the client's time is off by 15 minutes, oauth fails17:55
alecufacundobatista, the thing is that we are finding a lot of windows machines where the time is not set to the right gmt time, so the clocks are different from our servers17:55
facundobatistaalecu, ralsina, ok17:55
ralsinafacundobatista: so, there are 3 places in u1-client where oauth requests are signed, and would need to be fixed17:56
alecufacundobatista, right now it fails on sso, so the user is not even to create a new account nor sign in with an existing one17:56
ralsinaalecu: you go on, you understand it better than I anyway :-()17:56
ralsina:-)17:56
facundobatista...17:57
alecufacundobatista, the fix that ralsina has found involves doing an http HEAD request to the webserver, and getting the server timestamp, and using that instead of the client's timestamp when signing oauth17:57
facundobatistaalecu, ok17:58
alecufacundobatista, we can do it as a blocking url call in the sso and probably in control panel17:58
facundobatistaalecu, ok17:58
alecufacundobatista, we might even do it as a blocking call in the webcalls inside syncdaemon (create new share, publish file)17:58
alecufacundobatista, but should we do it as a blocking call before the protocol authenticates?17:59
alecumy guess is "no"17:59
karnialecu: to be precise, do one HEAD request and apply the server-client difference to all following request.17:59
alecukarni, ralsina had some concerns with that17:59
karniralsina: ↑ ?18:00
karnialecu: you want a HEAD before every request?18:00
alecukarni, ralsina says " it will break completely if the user *fixes* the time"18:00
facundobatistaalecu, I don't have a clue about authentication, but why not every time?18:00
alecufacundobatista, from a performance point, I don't like "every time" either.18:01
alecufacundobatista, my question was one of blocking or async web call18:01
facundobatistaalecu, but if you don't do it, it will fail, right?18:02
karnialecu: that's why we do HEAD just during every app launch18:02
ralsinakarni: difference is, our app runs all the time18:02
=== beuno-lunch is now known as beuno
alecukarni, that sounds bad :-)18:02
alecukarni, "doing head", I mean :-)18:03
karnialecu: hahahh18:03
gatoxok... eod for me... i'll be back when i get bored from studying! bye18:03
karniralsina: I beleive (and I have no metrics) that it is minority of users who do not turn their computers off18:03
alecugatox, have fun!18:04
ralsinakarni: agreed, but it may be 12 or 16 hours between starts18:04
dobeypeople turn computers off?18:04
alecukarni, what about suspend?18:04
dobeywhat is this, the 90s?18:04
karniralsina: Also, there's another solution. If you receive HTTP UNAUTHORIZED or such* (to be defined), only *then* you get server time, apply the difference, and try again.18:04
karniralsina: that won't give you 15+minutes of lag18:04
alecukarni, that sounds like the most reasonable solution. It also sounds like a complicated fix right now.18:05
ralsina+1 on complicated, because I need to find every place where a request is done, and add an if18:05
karnialecu: how about doing head (again.. ;D) every few hours then?18:05
alecukarni, that's my proposal: caching the time difference for an hour or so.18:06
karniralsina: Can't you override an OAuth library method that generates the timestmap? (somewhere "higher" than fixing all the places that sign?)18:06
karnior, actually, lower18:06
ralsinakarni: yes, we can18:06
karnialecu++18:06
ralsinakarni: it's somewhat filthy though :-)18:07
karniAll your Anroids are belong to filthy karni!18:07
karniandroids as well ;d18:07
ralsinaalso, on Linux we can't patch system libraries. It would have to be a monkeypatch18:08
karnialecu: FYI if someone uses files REST API, they have to use the same fix.18:08
ralsinaor inherit that class, and replace it everywhere we use it18:08
facundobatistaralsina, you won't be put blocking code unless you do it in a separate thread, right?18:10
ralsinafacundobatista: the idea is not to add any blocking code except on some "initialization" somewhere18:10
facundobatistaralsina, you won't be put blocking code unless you do it in a separate thread, right?18:10
ralsinafacundobatista: the idea is not to add any blocking code except on some "initialization" somewhere18:10
ralsinaonce more and it's a tie in chess :-)18:11
facundobatistaralsina, so, don't do it18:11
facundobatistaralsina, don't add blocking code in the main thread, doesn't matter the stage18:11
dobeyralsina: tie? i think you lost :)18:11
ralsinafacundobatista: don't write code that doesn't work for a % of users18:12
ralsina;-)18:12
ralsinagiving orders is fun! ;-)18:12
ralsinaYes, I don't intend to make things block. I also intend to make it work.18:13
alecufacundobatista, ralsina: so, if we do it such as "oauth.OAuthRequest.from_consumer_and_token" will sometimes block, we should fix ubuntuone/storageprotocol/client.py->oauth_authenticate() so it calls "oauth.OAuthRequest.from_consumer_and_token" in a thread18:14
ralsinaalecu: if we do it by keeping an offset, it doesn't block18:14
alecuralsina, that is only if the offset is calculated on startup. If we "cache" the offset, that function *may* block at some point.18:15
ralsinaalecu: no, it will fail, not block18:15
ralsinathen, we trigger a recalculation of the offset in a thread18:15
alecuralsina, then it's a more complicated change, because we would be changing the signature of from_consumer_and_token18:16
ralsinaalecu: hmmm18:17
alecuralsina, by adding a new possible exception to that function, that we would have to catch everywhere18:17
ralsinafrom_consumer_and_token never sees the failures, it just creates headers18:18
ralsinathe failure would have to be caught when the request is actually sent18:18
alecuralsina, probably most places are already handling those errors. I know SD retries on auth failures. But some other places may drop the credentials from the keyring or such18:20
alecuralsina, because the error is the same18:20
ralsinathis is all, of course, much more complicated than expected.18:21
alecuralsina, My proposal is to make a class that derives from OAuthRequest, where .from_consumer_and_token() or .sign_request()  may block, and to make storageprotocol use it inside a thread.18:22
alecufacundobatista, ^18:23
alecuralsina, that way all the other places where oauth signatures are done won't need to be changed.18:23
ralsinaalecu: it's doable18:23
* ralsina is scared to even think of sideeffects18:23
alecuI'll check the webclient in control panel.18:24
facundobatistaalecu, why not issuing the thread inside .from_consumer_and_token ?18:24
facundobatistaalecu, other question: are you doing this extra call always? or when you detect (somehow) that the machine's hour is wrong?18:25
alecufacundobatista, because .from_consumer_and_token is not async, so it does not return a deferred18:25
facundobatistaalecu, ok18:25
alecufacundobatista, only when it's wrong on startup18:25
facundobatistaalecu, ok18:26
alecuralsina, also we should at some point publish this OAuthRequest derived class on the u1 developers api, because as karni pointed out it will be very useful for devs using our webservices.18:27
ralsinaalecu: agreed18:27
dobeyalecu: we should fix python-oauth18:28
ralsinadobey: python-oauth is doin the right thing18:31
ralsinadobey: it even lets you pass it a timestamp if you don't want to use the system's18:32
dobeyit's not doing the right thing on the server18:32
ralsinadobey: it's within the spec18:33
dobeyralsina: the timeout isn't, is it?18:34
ralsinadobey: yes it is18:34
ralsinadobey: how the server processes the nonces is not spec'ed. Or at least it's not spec'd so much that this is out of spec :-/18:34
dobeywhere?18:34
dobeythe nonce is not particularly relevant to the issue at hand18:36
ralsinadobey: yes it is. The time window is so that there is no need to keep track of all nonces ever received.18:37
ralsinaSo, if the timestamp is too old, it just assumes it's a replay attack on an old nonce18:37
dobeythat is a matter of convenience, rather than part of the spec though. it is not specified for the server to behave that way18:38
ralsinait's not specified that they shouldn't18:38
dobeyno, but python-oauth really shouldn't be implementing any unspecified behavior18:39
ralsinaanyway. Alecu: I agree that is the better solution. I will try to start implementing it tomorrow morning, but it's a much better idea if you do it instead :-/18:40
achianghello, i uploaded some *.m4a to U1Music yesterday. they appear in the web gui under "files" but not on the android music app18:40
achiangi have refreshed the android music app several times18:40
alecuralsina, sure. I'll be bugging you with OAuth questions, though :-)18:41
ralsinaalecu: happy to help within my limited knowledge of it :-)18:41
dobeyachiang: non-DRM files from iTunes?18:41
dobeyachiang: or are they DRMed? :)18:41
achiangdobey: yes, aiui, *.m4p are DRM, and *.m4a are non-DRM18:42
achiang<- willing to be corrected, though18:42
dobeyachiang: ok; beuno ^^ achiang is having some issues with m4a files too it seems :)18:42
achiangdobey: beuno: let me download a file from the web and make sure banshee can play it18:43
achiangdobey: beuno: verified that banshee can play it18:45
beunoachiang, thanks, this is already on my plate18:45
achiangbeuno: sweet, thanks18:46
achiangif only i could sync from an external drive, all my U1 warts would be cured. ;)18:46
achiangas it is, it rocks more and more every day18:46
nigelbduanedesign: Hey, around?18:57
ralsinaI have to do my evening school run19:06
ralsinawill work a bit more late tonight. Mail me if you need me19:07
mandelif anyone needs me, Im around :P20:34
dobeythat's what she said20:39
mandelhehehe20:54
=== m_conley is now known as m_conley_away
dobeylater all21:10

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