/srv/irclogs.ubuntu.com/2011/01/05/#ubuntuone.txt

karniCardinalFang: beuno: aquarius: I added Brainstorming section, and some content. Please review and leave any comments https://wiki.ubuntu.com/mkarnicki/u1f01:10
czajkowskimuffinresearch: Thanks11:41
muffinresearchczajkowski: np. We will get someone to investigate as soon as we can.11:43
czajkowskimuffinresearch: no bother as long as I've my music I'm fine, just confusing for folks.11:44
=== teknico is now known as teknico_away
gordhi all, does anyone happen to remember the name of that awesome little tool that lets you monitor what ubuntu one is doing? (not u1sdtool)12:30
nessitagord: you mean the indicator? or the desktop app?12:36
gordnessita, it was a desktop app12:37
nessitagord: maybe magicicada?12:37
gordthats the one, thanks very much :)12:37
nessitahttps://launchpad.net/magicicada12:38
nessitagord: the PPA is a bit outdated, we're planning on making a release soon12:38
gordnessita, on natty, its in the repos ;)12:38
nessitagord: yeah, but that version is kinda old... we really need to do a new release (<- facundobatista), you can join #magicicada on freenode if that version doesn't work for you12:39
nessitagord: I can give you a new .deb if needed12:39
gordah yes the version in natty doesn't work, but i grabbed the latest source and that works fine12:43
nessitagord: good. Last source has public files in it!12:44
facundobatistanessita, when people starts to using trunk, is a good indication that releases are needed, :p12:55
nessitafacundobatista: yeah...12:56
ralsinagood morning everyone13:13
nessitahi ralsina13:13
CardinalFanghi13:13
ralsinaI'm feeling really sick today. Since my stomach hurts the same whether I am on IRC or not I will be around, but don't expect me to be very smart :-(13:14
nessitaralsina: ouch13:19
alecuhello all13:21
ralsinahola alecu!13:22
nessitahola alecu, how are you feeling today?13:22
alecuhi nessita, ralsina: much better13:22
ralsinaalecu: great! As a welcome... remember bug #650671 ?13:23
ubot4`Launchpad bug 650671 in ubuntuone-client (Ubuntu) (and 3 other projects) "UbuntuOne "out of space" dialog is broken (affects: 11) (dups: 1) (heat: 40)" [High,Triaged] https://launchpad.net/bugs/65067113:23
alecuralsina, I do13:23
alecu(heat: 40) !13:23
ralsinait hit beuno yesterday13:23
* beuno shows alecu his scar13:24
ralsinathere is a SRU for the patch that removes the notification. I was wondering if we could think maybe of a less drastic fix, if it is doable without much effort13:24
ralsinaIf it takes real effort, we just kill it and that's it13:25
alecuralsina, I{13:26
alecuralsina, I'll take another look.13:26
ralsinaalecu: cool. I was thinking something like not showing that more than once every couple of minutes or something, but be creative :-)13:27
beunoralsina, alecu, we need to be careful not to annoy users13:38
beunoso I'd avoid a notification every few minuters13:38
beuno*minutes13:38
beunoor allow a "don't tell me about this again" option13:38
alecubeuno, nice. But that would mean more strings to i18n and I believe that is out of the SRU scope13:39
ralsinabeuno, alecu: yes, that can't go in, IIRC.13:39
* beuno hms13:41
ralsinaAnd just not telling the user he's out of quota EVER is probably annoying too13:41
beunoralsina, yeah, what I want to avoid is us being percieved at hassling people into buying more storage13:42
alecuralsina, also: this same dialog is also shown when a folder shared by another user runs out of space while you try to upload something to it.13:43
ralsinaalecu: that's an official ouch13:43
alecuralsina, and the logic for what message to show is in the syncdaemon13:43
alecuralsina, as we have previously discussed with nessita, the logic to rate-limit should be in the syncdaemon as well13:44
ralsinaalecu: yes, agreed in principle. I just want a fix we can actually implement. If rate-limiting is not it, then it's not it.13:45
alecuralsina, I can surely implement rate limiting in the gsd plugin. But it will blindly rate limit all out of space notifications (for the user account and for shared folders(13:46
nessitaalecu: when ralsina said "there is a SRU for the patch that removes the notification" he means that the bug was nominated for maverick by me and that we need a branch from you doing the removal13:46
ralsinaalecu: you don't have information about what path is out of space, right?13:46
ralsinanessita: I thought the branch was done. Sorry.13:47
nessitaalecu: the branch of the removal should be targeted to stable-1-413:47
nessitaralsina: :-)13:47
nessitaralsina: the out of space is not per path, but per account...13:47
ralsinaIn any case it should be a small branch at least ;-)13:47
nessitaI think so, yes13:47
ralsinanessita: but when it's on a shared folder from another user, you know it?13:47
nessitaralsina: yes, the notification from syncdaemon sends the 'share_id'13:48
nessitaralsina: the gsd plugin definitely knows, since a different legend is shown in each case13:48
ralsinanessita: ok, then we COULD separate the logic and still display it for shared folders13:48
nessitaI think so, yes. But, from my POV, there is no gain on putting effort for natty on this13:49
ralsinanessita: I meant in the SRU branch13:49
nessitasince we're supposed to show that quota exceeded error using the ZG events13:49
alecunessita, why not?13:49
nessitaalecu: since we're supposed to show that quota exceeded error using the ZG events13:49
ralsinaagreed that for natty this is dead code anyway13:49
alecuralsina, I see that we have that path, yes.13:49
alecunessita, we won13:49
alecuhmmm13:50
nessitaalecu: and the new notifications in unity doesn't use gsd, AFAIK13:50
alecunessita, that makes sense.13:50
alecunessita, but zeitgeist is not the best place to put oospace notifications13:50
nessitaalecu: from my POV, ZG will store that notif and the aggregator will aggregate them... right?13:51
alecunessita, we would still need something like the gsd plugin if we want for those events to be shown up.13:51
alecunessita, right. But aggregation is a scheduled event that happens every x minutes, so you won't find out immediately about the out of space problem.13:51
nessitaalecu: I disagree, I thought that the aggregator was not an scheduled event but a notification process that will aggregate info properly, but will show up a notification when relevant13:53
nessitaalecu: anyways, if it was an scheduled event, a delay of minutes is totally acceptable13:53
=== teknico_away is now known as teknico
nessitaas long as minutes < 3? 5?13:53
alecunessita, well, if it's something that needs to be running all the time, then it's just like the gsd plugin.13:54
alecunessita, I thought we don't want yet another "resident" python process13:55
nessitaalecu: even if is not another resident process, the quota notif will be shown eventually, in the next 5 minutes, let's say13:56
nessitathat's good, 5 minutes will not change the user preception, I think13:56
nessitaperception*13:56
ralsinayes, 5 minutes for out of quota in the cloud is not a problem, I think13:58
ralsinaThe user will just assume it was syncing and run out of space at the moment he saw the notification.13:59
nessitayeah13:59
thisfredme14:00
nessitame14:00
ralsiname14:00
alecuok, we should discuss this further, because I'm not happy with the way aggregation is supposed to work. (or I'm not getting the full picture)14:01
alecume14:01
vdsme14:01
mandelme14:01
dobeyme14:01
nessitathisfred: go!14:02
thisfredDONE: helped teknico and JamesTait with a missing feature in desktopcouch, landed a fix for bug #696972 TODO: desktopcouch bug triage | update server code to work with new desktopcouch | prepare for platform rally BLOCKED: no14:02
ubot4`Launchpad bug 696972 in desktopcouch "Wrong import path in bin/desktopcouch-get-port (affects: 1) (heat: 6)" [High,In progress] https://launchpad.net/bugs/69697214:02
thisfrednessita: you go!14:02
nessitaDONE: worked on bug #693879, bug #693798, and bug #696782. Tried to coordinate with dobey how to make the transition preferences -> control panel, need to ping him about this. Submitted merge for bug #697211, still need a re-review before landing it. Made a review for mandel.14:02
ralsinanessita: please handle the standup, I'm on mumble :-(14:02
nessitaTODO: finish aforementioned bugs, talk with dobey re preferences migration14:02
nessitaBLOCKED: nopes14:02
nessitaNEXT: ralsina14:02
ralsinaDONE: started looking for windows contractor, team leads meeting, 3rd party API meeting, discussed bindwood's future, reviewed no-more-gobject , reviewed really-errback-on-error, reviewed/helped a bit on load_test_according_to_platform, chased people around as usual.14:02
ralsinaTODO: more reviews, management stuff, have HR fix things for me, someday actual coding ;-)14:02
ralsinaBLOCKED: no14:02
ubot4`Launchpad bug 693879 in ubuntuone-control-panel (Ubuntu) "The package lacks a .desktop file (affects: 1) (heat: 302)" [High,Triaged] https://launchpad.net/bugs/69387914:02
ubot4`Launchpad bug 693798 in ubuntuone-control-panel (Ubuntu) "u1cp should recommend u1cp-gui, and u1cp-gtk should provide it (affects: 1) (heat: 276)" [High,Triaged] https://launchpad.net/bugs/69379814:02
ubot4`Launchpad bug 696782 in ubuntuone-control-panel (Ubuntu) (and 1 other project) "Start DC service in backend to make that op asynch (affects: 1) (heat: 6)" [Medium,Triaged] https://launchpad.net/bugs/69678214:02
ubot4`Launchpad bug 697211 in ubuntuone-client (Ubuntu) (and 1 other project) "Provide a specific login D-Bus service (affects: 1) (heat: 6)" [Medium,Triaged] https://launchpad.net/bugs/69721114:02
ralsinaalecu!14:03
alecuDONE: sick day14:04
alecuTODO: look again at bug 650671, change desktopcouch to start up a test db, setup a vm for bindwood tests14:04
alecuBLOCKED: not at all14:04
ubot4`Launchpad bug 650671 in ubuntuone-client (Ubuntu) (and 3 other projects) "UbuntuOne "out of space" dialog is broken (affects: 11) (dups: 1) (heat: 40)" [High,Triaged] https://launchpad.net/bugs/65067114:04
alecucoming up: vds14:04
vdsDONE: discussed APIs work, selected a list of list of tasks, discussed with aquarius, beuno, chad and pedronis14:04
vdsTODO: come up with better specs for the APIs work14:04
vdsBLOCKED: nope14:04
vdsmandel: please14:04
mandelDONE: Reviewed facundobatista branch. Found bug 697636 and bug 697661. Fixed both. Added tests for dc that mock db access for the deprecated API.14:04
mandelTODO: Finish rest of mocked tests of dc. Add skip decorators for dc.14:04
ubot4`Launchpad bug 697636 in desktopcouch "Trash record id is not correctly generated (affects: 1) (heat: 6)" [Medium,In progress] https://launchpad.net/bugs/69763614:04
ubot4`Launchpad bug 697661 in desktopcouch "The trash db object is recreated everytime there is a record to dele (affects: 1) (heat: 6)" [Medium,Confirmed] https://launchpad.net/bugs/69766114:04
mandelBLOCKED: no14:04
* mandel looks at dobey14:05
dobeyλ DONE: more work on bug 69696814:07
dobeyλ TODO: bug pitti about backports, finish 696968 tests14:07
dobeyλ BLCK: None.14:07
ubot4`Launchpad bug 696968 in desktopcouch "Pairing fails (affects: 1) (heat: 6)" [Undecided,New] https://launchpad.net/bugs/69696814:07
nessitaany closing comments?14:07
alecuralsina, what about "discussed bindwood's future" ?14:07
ralsinaalecu: I talked with thisfred, and it came up in the team leads call14:08
ralsinaalecu: that it seems bindwood is in trouble and needs help14:08
thisfredalecu: we're running out of time quickly, and have not made much progress unfortunately14:08
alecuexactly14:09
ralsinaIt's understandable, it's like it's coding in a parallel universe14:09
alecubut I understand that there's a whole more month allocated to it at the end of the cycle14:09
ralsinaI had a few very bad hours reading code last night14:09
ralsinaalecu: yes, but Chipaca estimates there's more than that needed to finish it14:09
ralsinaSo, we are trying to get help. If we overestimate the effort, I am sure we will find things for you guys to do with the free days ;-)14:10
alecuI won't argue with that :-)14:10
thisfred:)14:11
ralsinaOn the 3rd party APIs work, I just talked with stuart and we'll go with dbus apis in principle.14:11
ralsinaDepending on how long that takes we may try to create something else, but dbus is language agnostic14:11
thisfredalecu: I would like to take a little time this week somewhere to discuss what I need to know for next week, if anything14:11
nessitadobey: any idea why https://code.launchpad.net/~nataliabidart/ubuntu-sso-client/really-errback-on-error/+merge/45016 is not landing? it has commit message, proper approves14:11
ralsinaOf course, that leaves windows outside of it, but I am sure mandel and I can find a solution that doesn't suck on that platform :-)14:12
nessitaralsina, alecu, thisfred: I think having the unity notifications in place is much more important for this cycle, so if there is any spare time we should dedicate it to that14:12
alecuthisfred, sure. Regarding the zg/aggregation stuff, right?14:12
thisfredright14:12
dobeynessita: it says merged14:13
nessitahum, right14:13
nessitadobey: your computer was turned off, right?14:13
nessitadobey: it merged when you boot your computer :-)14:13
nessitaany other stand up comments?14:14
ralsinanessita: yes, notifications have time allotted, though.14:14
alecunessita, by "unity notifications" you mean the stuff that appears on the "mail" icon on the indicator applet?14:14
dobeynessita: no, but my server apparently fell asleep this morning, so i guess it was merged after i woke it up so i could use the internets again14:14
nessitaralsina: yeah, thought I foresee some potential delays on that, so we should be prepared14:15
ralsinanessita: indeed.14:15
ralsinaeom?14:16
dobeyi really wish i knew why my server was going to sleep though14:16
nessitaalecu: not really, I call "unity notifications" the thing we have to implement on unity for showing status and activity of Ubuntu One for natty. That covers making the Ubuntu One icon sping when necessary, and show messages on the messaging system14:16
nessitaspin*14:16
nessitaalecu: the Ubuntu One icon in the launcher, that is14:16
nessitaralsina: eom for me14:17
alecuwe'll make it spin? puaj!14:17
nessitaalecu: we talked about this on UDS...14:17
nessita"we all" agree :-)14:17
dobey...14:17
vdsCardinalFang dobey ralsina back to the APIs work, no work needed for 14 - 17 -21 so I have 11 - 13 - 15 - 16 left, anyone else decided what to pick?14:18
alecunessita, I think I missed *that* session.14:18
nessitadobey: next request, could you please re-review https://code.launchpad.net/~nataliabidart/ubuntuone-client/auth/+merge/45116 ? it shouldn't take long and I can't land it even if someone else approves14:18
ralsinaone last comment... desktopcouch is not released yet!14:18
nessitaralsina: really? where? what version?14:18
ralsinafor natty14:19
CardinalFangvds, I added a column to the doc.14:19
dobeyalecu: are you sure? it's the one where i consistently told everyone they were wrong14:19
dobeyyou know, i wish people would review *my* branches14:19
ralsinadobey: bug me, I will14:19
nessitadobey: shoot14:19
nessitaalecu: you were there, also attended Chipaca, John Lea, a few more unity-experts14:19
* ralsina will review anyone's branches, just ASK14:19
vdsCardinalFang: thanks14:20
dobeyhttps://code.edge.launchpad.net/~dobey/ubuntuone-client/fix-674876/+merge/4309314:20
dobeyhttps://code.edge.launchpad.net/~dobey/libubuntuone/srcdir-signing/+merge/4366814:20
dobeyhttps://code.edge.launchpad.net/~dobey/libubuntuone/python-srcdir/+merge/4383014:20
dobeyhttps://code.edge.launchpad.net/~dobey/ubuntuone-client/fix-657850/+merge/4397614:20
dobeyhttps://code.edge.launchpad.net/~dobey/ubuntuone-client/fix-657850-stable/+merge/4397714:20
alecunessita, I missed one session, and I think it was that one.14:20
dobeyhttps://code.edge.launchpad.net/~dobey/ubuntuone-client/fix-692566/+merge/4424314:20
dobeyhttps://code.edge.launchpad.net/~dobey/rhythmbox-ubuntuone-music-store/fix-translations/+merge/4451114:20
nessitaalecu: ouch14:20
ralsinadobey: maybe you should ask for reviews more often. I will try to get them all today ;-)14:21
vdsCardinalFang: 22 will need some discussion probably, as we are storing subsonic style playlist and I have no idea what format other apps will use14:21
nessitadobey: https://code.edge.launchpad.net/~dobey/ubuntuone-client/fix-674876/+merge/43093 is not approved14:21
nessitadobey: is *now*14:22
nessitaalso is https://code.edge.launchpad.net/~dobey/ubuntuone-client/fix-657850/+merge/4397614:23
ralsinawho was doing the natty upload of desktopcouch before the break?14:23
dobeyralsina: i thought CardinalFang was14:23
ralsinadobey: thanks.14:24
dobeybut we are going to need another release/upload anyway :(14:24
ralsinaCardinalFang: are you? That really needs to be done very soon14:24
CardinalFangralsina, dobey, yes, I have a branch ready.  It depends on python-couchdb update, which has conflicts.14:24
alecudobey, how should I test https://code.edge.launchpad.net/~dobey/rhythmbox-ubuntuone-music-store/fix-translations/+merge/44511 ?14:24
CardinalFangralsina, I'm trying to get it done today.14:24
ralsinadobey: oh, right, the pairing bug?14:24
ralsinaCardinalFang: cool14:25
alecudobey, should I just open rhythmbox with a different locale?14:25
ralsinaCardinalFang: keep me posted, please14:25
dobeyalecu: install the plug-in and open it with spanish i guess14:25
nessitaI need to run a quick errand, bbiab14:25
dobeyralsina: the "desktopcouch doesn't work at all" bug14:25
dobeyi guess i need to file a bug about it, now that i understand more though14:26
ralsinadobey: how did you test to see if your fix worked?14:26
ralsinadobey: indeed that deserves a bug ;-)14:26
dobeyralsina: my fix works, but can't really test it because of the other problems14:26
ralsinadobey: ok14:27
dobeyand i got tired of trying to fix all the other problems in my branch and not getting any further really, so i'm about to push up my fixes for the plug-in issues and propose that14:27
dobeyjust need to figure out how to override __import__ so i can make the unit test for load_plugins work14:28
dobeynessita: i'm pretty sure "constants" don't exist in python.14:28
ryedobey, hi, happy new year btw, but do you know why natty's ubuntuone-client is at 1.5.0-r777 while other releases have  1.5.1+r785 ?14:29
dobeyrye: yes, because of the gir api versioning change to the package names that debian made. and i haven't figured out the best way to fix it yet14:31
ryedobey, is there a bug report about that so that i could mark my one as duplicate?14:31
dobeyrye: i didn't file one. but i haven't kept up on the deluge of u1client bugs, and nobody has assigned one to me14:32
ryedobey, ok, i will assign that one then14:33
dobeyok14:33
dobeyralsina: do you know how to override __import__ for testing?14:34
ralsinadobey: no. But I can figure it out ;-)14:34
ralsinahttp://docs.python.org/library/imp.html#examples-imp14:34
dobeythat would be great, because google was horribly unhelpful last night, and i havn't been able to make __import__ = fake_import work14:35
dobeyi saw that, but i don't think that's an example for overriding __import__, but rather simply an example of how __import__ itself is implemented internally14:36
dobeyie: this is how you might use imp.find_module/load_module14:36
ralsinaok, let me try a couple of things. be back in 5'14:37
dobeyi suppose i could change the code to just use the imp module instead and do all the harder work myself instead of doing __import__14:37
dobeyi even tried doing FOO_IMPORT = __import__, and changing FOO_IMPORT in the test, to no avail :(14:38
ralsinaweird, __import__ = whateverfunc works for me14:38
ralsinacan you pastebin me a small example of it not working?14:39
dobeyhttp://pastebin.ubuntu.com/550658/14:40
dobeywith that, the _fake_import never gets called14:40
dobeynor does doing plugins.__import__ = _fake_import14:40
Chipacadobey: __builtins__.__import__ = whateverfunc14:41
kklimondadobey: try __builtins__.__import__14:41
kklimondaright14:41
ralsinaThat's because you are replacing __import__ in the local scope, not in the plugins module14:41
dobeyah14:41
ralsinaTry plugins.__import__ = _fake_import14:41
dobeyexceptions.AttributeError: 'dict' object has no attribute '__import__'14:42
Chipacadobey: or if you want to be nice to the world, you could do module.__import__ and override it by injecting it into the right namespace :)14:42
dobeyChipaca, kklimonda: ^^ builtins gives that14:42
Chipacadobey: but the latter needs more chumminess with the code you're testing, which might not be what you want14:42
Chipacadobey: imp is a pain14:42
dobeyand plugins.__import__ doesn't work either, same results as trying to just use __import__14:42
ralsinadobey: well, you *could* replace __import__ in __builtins__14:43
ralsinaJust don't expect anything to work afterwards ;-)14:44
dobey*how*?14:44
ralsina__builtins__.__import__=_fake_import14:44
ralsinaThat's where the module is getting it from14:45
dobeyi get the AttributeError with that14:46
ralsinaoh, wait a second14:46
kklimondadobey: it has to work - I did use it at some point ;)14:46
ralsinaYou got exceptions.AttributeError when doing plugins.__import__?14:46
ralsinaTry desktopcouch.application.__import__ = _fake_import14:47
dobeyno, when doing __builtins__.__import__14:47
ralsinadobey, what do you get with print __builtins__ ?14:47
dobeya big unreadable mess of a dict14:47
ralsinaok, I get a module :-)14:48
ralsinaYou can try __builtins__['__import__']=_fake_import14:48
ralsinaBut then I suppose it depends on the python version14:48
dobeyyes, using the string works14:50
kklimondadobey: what python version?14:50
dobey2.714:50
kklimondaweird, does this fail: http://pastebin.com/FBcrEpRm ?14:51
nessitadobey: what do you mean with "nessita: i'm pretty sure "constants" don't exist in python"?14:51
kklimondaa.py is just import sys14:51
ralsinadobey: that's really weird14:51
ralsinain any case, you can import __builtin__ and do __builtin__.__import__ = _fake_import14:52
ralsinaHere's a full example of reimplementing __import__: http://www.etsimo.uniovi.es/python/dev/src/py/html/knee_8py-source.html14:53
kklimondayeah, that's an even nicer (or rather less CPython-specific) way of abusing Python ;}14:53
* nessita is back14:53
ralsinakklimonda: oh, I can abuse any version of python ;-)14:53
kklimondaheh ;)14:55
dobeynessita: i mean the language is dynamic, and there are no such things as actual constants14:57
ralsinakarni: the APIs are not secret, I just got sidetracked :-)14:57
karniralsina: ^ ^14:57
nessitadobey: so how would you do the APP_NAME deprecation thing?14:57
dobeynessita: one second, i'll pastebin15:00
nessitadobey: thanks15:00
designduanehello all15:08
kklimondao/ designduane15:08
designduaneHey! it is kklimonda15:08
designduane:)15:08
karnihi duanedesign !15:08
nessitallohe designduane!15:08
designduanehey. I am not interupting a stand up or anything.15:09
nessitanopes15:09
designduane:) ok15:09
designduaneI am on my *cough* Windows machine15:09
kklimondait happens ;)15:09
designduaneI tried to use Purtty15:10
designduanePuTTY15:10
designduaneto log into my server running irssi. But forgot I had a ssh key set up.15:11
alecudobey,  I'm reviewing lp:~dobey/libubuntuone/python-srcdir, and I'm getting this while trying to build trunk: http://pastebin.ubuntu.com/550670/15:11
alecudobey, it complains that "No package 'libsyncdaemon-1.0' found", but I have 'libsyncdaemon-1.0-1' installed15:12
kklimondaalecu: do you have libsyncdaemon-dev ?15:13
alecuahhh15:13
kklimondaor even libsyncdaemon-1.0-dev15:13
alecuthanks kklimonda15:13
alecuthat was it.15:13
dobeynessita: http://pastebin.ubuntu.com/550676/15:16
* nessita looks15:17
ralsinadobey do you have the URL for the API spreadsheet at hand? Can you mail it to me?15:17
dobeyalecu: yeah you need the -dev. 'apt-get build-dep $project' with nightlies added15:17
nessitadobey: code looks good, though I don't see the gain of having that instead a global warning, since the deprecation warnings are printed the same15:20
nessitadobey: don't you think is better to have the global warning and import ubuntuone.credentials to fill the APP_NAME and related values?15:21
dobeynessita: because otherwise if i import something else, like say GETTEXT_PACKAGE, then i still get the warning, with your code. this way, the warning is only emitted when using those variables that are actually deprecated15:22
nessitadobey: according to my test, no...15:22
nessitadobey: if you import other constant, the deprecation warning is shown the same15:22
nessitadobey: to your code, I added a TEST = 'bla'  and run:15:23
nessitafrom <my faked sacript> import TEST15:23
nessitaand all the deprecation warning appeared, which makes sense since python will read and interpret the whole clientdefs file15:23
nessitathe deprecated is executed at import time, for each constant15:24
kklimondayou should make that into a decorator15:25
nessitakklimonda: wanna share a snippet? I gave it a try yesterday and failed :-)15:25
kklimondanessita: hmm.. give me a sec :)15:26
dobeynessita: hrmm15:26
nessitaand I still think this is too much trouble for the value gained in showing the deprecation code, since I'll be migrating all the APP_NAME clients anyways15:26
dobeynessita: oh, it seems python2.7 doesn't print deprecation warnings at all :(15:26
nessitadeprecation warning*15:26
nessitadobey: that's in ubuntu, I think, there were hidden becasue... something15:27
nessitabecause*15:27
dobeybah15:27
nessitathere was an email about it, I wish I knew where that is15:27
dobeywell i'm not developing software on fedora15:27
nessitadobey: so, shall I remove the deprecation warning and leave a nice warning comment?15:28
nessitadobey: I'll be migrating the client anyways...15:28
nessitayes, known clients, but I don't think we have unknown clients15:29
nessitaand if we had, API  will not be broken, so I think we can settle?15:29
dobeywell, why not just break the API then?15:31
nessitadobey: because you hate breaking APIs, and I do too.15:31
nessitaI don't think breaking APIs is a good idea.. see what happend with aptdaemon.defer15:31
karniCardinalFang: What's your opinion on direct sqlite db use in Android applications instead of using the ContentProvider itself? I know the ContentProvider is used to specifically expose data, but it also enables to make those inserts/queries in a more elegant way. However, it turns out it's relatively slow.15:32
dobeywell, aptdaemon.defer was a bad idea, yes15:32
karniCardinalFang: Yesterday (didn't commit that yet) I optimized the initial sync by ~8x, using transactions and raw SQL15:32
dobeynessita: why not just 'break' it by removing the current variables and just importing them from credentials then15:32
dobeynessita: just add from ubuntuone.credentials import (...)15:33
nessitadobey: right, that was my proposal at (12:21:24 PM)15:33
nessitalet's do that /me fixes15:33
dobeynessita: well i don't want the global warning15:34
nessitaright\15:34
nessitaI'll add a commnet15:34
dobeyand i disagree with testing the script being impossibly hard15:34
dobeywe were already doing it anyway15:35
dobeyand i hate it when people put code only meant to be run by one script, into public python libraries15:35
karninessita: aquarius: Is the files publishing API used by the desktop-client documented anywhere? (If it exists, I'd prefer that over source-as-docs)15:36
nessitadobey: that code can be used from some other places if needed. I can make a single module instead of a package, if that helps15:36
dobeynessita: the dbus service really should not be used directly from other places15:36
nessitadobey: the constants might, and we may add more func to that package15:37
dobeykarni: i think the source is the only docs, but the source is pretty obvious if you know what to look at15:37
karnidobey: ack15:37
dobeynessita: i'm not saying ALL the code should be in the script15:37
aquariuskarni, no, it isn't, yet. It will be.15:37
dobeynessita: the 'constants' should obviously be in a publicly importable library15:37
* karni nods15:38
nessitakarni: I think not, but you can take a look to the Dbus API which is very clear, IMHO15:38
karniok, thanks all :)15:38
dobeynessita: but i think all the "only should be used by *our* script code" should be in the script itself (or alternatively in a private library, but that is a pain in python)15:38
karni*thanks everybody (that's more grammatically proper I think)15:38
ralsinadobey: if there's anything specific that you think should not be "public" that can be mangled, or we can use __all__ and hide it15:39
dobeykarni: everyone would be more appropriate than everybody there15:39
karnidobey: thank you :)15:39
karniok, gotta commute back home. later everyone15:39
nessitadobey: all that logic will not go into a script, because it makes the testing and reading of the code harder.15:40
ralsinaIn fact, I would like a policy of ALWAYS having __all__ defined so everything starts as hidden and only is shown when it's deemed useful15:40
dobeyralsina: i don't see how that helps us here15:40
kklimondanessita: ah, you are trying to deprecate values, it won't work with decorators (and even if it did you would get the same result as with dobey's code - i.e. the warning would show up at the import time for all values that are "wrapped" in deprecate function)15:40
nessitakklimonda: right :-)15:40
ralsinadobey: I was talking about your generic "hate it when people put things in public libraries" (paraphrasing)15:41
dobeyralsina: right, but if we hide something, and it's not in __all__ how does that help us use the hidden things in our own scripts?15:41
ralsinadobey: then that has to be public15:41
ralsinathe idea is that only "useful" stuff gets exposed, instead of relying on everyone not using everything that's in the module15:42
dobeyralsina: right, so __all__ is pretty much useless :)15:42
ralsinadobey: nope15:42
ralsinadobey: __all__ makes you expose things intentionally and not by accident. I am not saying it has anything to do with the specific current argument.15:43
dobeyralsina: so if DBusServer is hidden by not being in __all__, how do we use DBusServer in our script?15:43
ralsinadobey: read the above15:43
dobeyright i know what __all__ does. i just think it's generally useless for us15:43
dobeysince we're always using all our new code15:43
kklimondanessita: it is still possible to do, but not that straightforward15:44
dobeythere might be a few places where it's useful to hide a few globals15:44
dobeyit would be better if it were __hidden__15:44
dobeyso you only list the things you want hidden, which is probably a shorter list than the things you want public15:45
nessitadobey: we can't move the ubuntuone.credentials import to clientdefs since it will generate a circular import dependency, since ubuntuone.credentials import clientdefs to use the GETTEXT_PACKAGE value. I'll revert to the initial version of my branch, and propose a few more branches were clients of those values are migrated to new credentials module15:45
ralsinadobey: whatever, I am not being useful for the current problem.15:45
dobeynessita: ugh. right. :(15:45
dobeyi guess that means my code would break too15:46
dobeybah15:46
nessitadobey: why?15:46
dobeynessita: because it imports the new values to return the proper value15:46
kklimondanessita: you would have to create a proxy for the module - funny stuff, but if your approach work then there is no need to dig into that :)15:47
dobeymeh, instead of fixing python 2.7, someone changed bzr to just hardcode python2.6 in the hashbang it seems :-/15:47
CardinalFangkarni, One of my goals is to give Ubuntu One Publish as an option on file entries from other apps.15:49
CardinalFangkarni, Hooking to the "Share with..." facility, and an Intent should do it, I think.  Do you foresee me hitting any problems?15:50
nessitadobey: change revert to client defs pushed to revno 78415:51
dobeyralsina: https://code.edge.launchpad.net/~dobey/desktopcouch/fix-696968/+merge/4525215:54
ralsinadobey: will test it in 15'15:55
dobeycool15:58
dobeyi am going to need to put on warmer clothing if i'm going to go outside :-/15:59
dobeynessita: approved the auth branch, reluctantly; i still don't like the lack of separation of concerns there16:03
nessitadobey: would you prefer a single module instead of a python package?16:03
dobeyi would prefer things that clients should be using, to not be in $PYTHONPATH16:05
dobeyerr, should not be16:05
nessita:-)16:05
nessitadobey: well, thanks for the approval16:06
nessitadespite where that code lives is a very  good thing to have16:06
nessitadobey: so, there is one more thing I need your input in, and that is how to handle the "migration" preferences -> control panel. I have a packaging branch where the .desktop file is installed, and that desktop file is the same as the preferences. I want to avoid conflicts, and I'm not sure how to do that. Shall we release a new version of u1client without installing the .desktop file for preferences and make u1cp conflict with any previous version of u16:09
dobeyis the .desktop file not in the source?16:09
dobeythe desktop file should be a different filename16:10
nessitadobey: for the u1cp, the .desktop file is indeed in the source. It is a different filenam16:10
nessitabut the both define the app for GNOME;GTK;Setting for Ubuntu One16:10
dobeyright16:11
nessitadobey: wouldn't be a conflict when a .desktop file define the same as other .desktop file?16:11
dobeyi guess the real question is how we handle the dependencies16:11
nessitanot sure what you mean with that, but please say more16:11
dobeywell, right now, the "sign up for ubuntuone" bit is a process somewhat contained in ubuntuone-client16:12
dobeybut with ubuntuone-control-panel being a separate package, that's not true16:12
nessitaI don't (yet?) see a problem16:13
dobeyhow do i change file sync preferences, without having the control panel installed?16:14
nessitadobey: well, the control panel will be installed16:14
nessitaunless you explictely uninstall it16:14
dobeythat does not answer the question16:15
nessitais the same question as 'how do i change file sync preferences, without having u1-client-gnome installed?'16:15
ralsinalunch break16:15
dobeyit is uninstallable, so people *will* uninstall it16:15
=== ralsina is now known as ralsina_lunch
nessitadobey: right, same for current approach. I still don't see a problem.16:15
dobeyu1-client-gnome is not an entirely separate project16:16
nessitaand?16:16
dobeyi give up16:16
nessitawe're talking packages here16:16
dobeyno we're not16:16
nessitaoh, sorry, I was16:16
nessitaso, from a package point of view, what I'm concerned about is how the collision in providing the same Settings -> Ubuntu One feature by 2 different .desktop files can be handled16:17
nessitaI think I can propose a branch in u1client packaging branch removing the install of the preferences .desktop file16:17
nessitaand then propose the u1cp packaging branch?16:18
nessitaand make that u1cp branch depend on the u1client's (new) version16:18
=== beuno is now known as beuno-lunch
dobeymy point was that packages are always going to be broken until the separation of concerns at the project level is fully understood16:24
dobeyif you intend to remove stuff from u1client, i guess you should propose a branch to remove those things16:25
dobeyand then go from there16:25
nessitaok then16:27
nessitadobey: do you have a planned u1client natty release?16:27
dobeyno16:28
dobey'when it is appropriate to do so'16:28
dobeybut right now, i must get some lunch16:28
dobeybbiab16:28
karniCardinalFang: Not forseeing any problems. If volumeId+nodeId is the only data we need to use the publishing API, then the 'Share wit..' is a 20-30 minute work :) It's good that you're saying it now, we'd be duplicating some work (I had it planned, too). However -- first I need to implement the publishing part of the service (which I planned for 3-4 weeks from now, unless I shuffle the order of things)16:30
karniCardinalFang: How about the photo-sync you've been on some time ago?16:31
karniCardinalFang: I'm curious were you ended up when I blocked you with my work16:31
CardinalFangkarni, I'll touch it again soon.  I think it's pretty much done, as it's small.16:32
karniCardinalFang: I'm curious how you tapped in. Was it the ACTION_MEDIA_SCANNER_FINISHED? What did you use?16:32
CardinalFangkarni, no, just listened on a Cursor with a media Observer.16:33
karniCardinalFang: doesn't that assume an open db and open cursor? where you'd put it? (if you're busy now, it's ok. excuse my questions)16:35
karniI thought it was more of an async nature, or broadcast based or the like.16:35
CardinalFangkarni, it's in a Service.  It's idle until the system starts the Observer when something changes.16:36
CardinalFangkarni, a Cursor is in a Service.  The Service is idle until the system starts the Observer when something changes.16:37
karniCardinalFang: It it a Broadcast intercept? I'm sure you're aware that the Service doesn't actually run all the time (not even being idle).16:37
karniCardinalFang: Ok, excuse my curiosity. I'll let it be, we'll be in touch :)16:37
CardinalFangkarni, it doesn't have to run all the time to get things in synch eventually.  Any change after a Cursor is Observer-ed will scan the media index.16:39
karniCardinalFang: Sounds great!16:39
karniCardinalFang: What's your opinion on direct sqlite db use in Android applications instead of using the ContentProvider itself? ContentProvider is used to specifically expose data to other apps, but it also enables to make those inserts/queries in a more elegant way. However, it turns out it's relatively slow, and not suitable for heavy db traffic (as opposed to direct access and raw SQL).16:42
=== alecu is now known as alecu-lunch
karniCardinalFang: I'm asking to know beforehand if you'll have nothing against raw SQL in future commits :)16:43
CardinalFangkarni, I have no opinion.  If you're accessing your own, then it's fine.  If you're accessing system DBs, then I say use ContentProvider.16:43
karniCardinalFang: Definitely our own. Ok, thanks.16:44
* nessita -> lunch17:05
=== alecu-lunch is now known as alecu
=== ralsina_lunch is now known as ralsina
karnibeuno-lunch: Bon apetit! | It's sometimes hard to come up with user-understandable error messages ("Failed to sync content meta" already sounds complicated, not to mention "Failed to sync volume meta" - volume? meta?) -- I'll just keep on coding, and we'll leave the strings for later brainstorming, is that ok? Maybe the design team will also have some comments on that.18:48
=== beuno-lunch is now known as beuno
beunowow18:48
beunoI haven't been eating for hours!18:48
beunokarni, yeah18:49
beunoI would just say "Something went wrong, please report this error"18:49
beunoor not report it18:49
beunobut more generic as a user-facing error18:49
karnibeuno: right. is soo easy to forget about eating while coding/working18:49
karnihmm18:49
karnibeuno: how about: Show a non-persistent notification 'Something went wrong.. subtitle: Please report this error', which after being tapped would take the user to an activity that would explain what happened, turn on Debug logging, and ask the user to send the logs next time?18:53
karnibeuno: there might be some unexpected errors that happen really rarely - we could handle them the way I suggest here ↑18:54
karnifor example, I don't expect to go something wrong with the sync - but if the servers or the protocol fails, the app should handle these problems gracefully, too.18:55
=== teknico is now known as teknico_away
=== alecu is now known as alecu-away
=== alecu-away is now known as alecu
beunokarni, yeah, agred19:50
karnibeuno: ack19:50
kklimondakarni: there shouldn't be "Please report this error" if you can't report it immediatelly, and only after you enable debug and recreate the error.20:03
karnikklimonda: yes, that makes sense. I'm thinking about it. We don't want everyone to have verbose debugging on.20:04
karnikklimonda: Got it. I think I know how to report the problem immediately :>20:04
kklimondakarni: I don't know - it could enable verbose debugging for the remainder of the session (or 10 minutes, or something like that) and display only "Something went wrong.." for the first time, and then if user generates another error it could display "Something went wrong.. would you like to report it?"20:05
kklimondaoh, cool20:05
karnikklimonda: Nevertheless, good idea!20:06
karnikklimonda: I recalled a neat idea I once saw20:06
karnikklimonda: Since I've got the Throwable that was thrown near the problem source, I could make a http GET/POST and contain the error/stack trace in the url params / the POST contents. We'd have to set up a server for that (it's a php few-liner), and we can collect even single throwables (if the user wishes to 'Report the problem.')20:08
karniThis 'trick' is really neat. No need to enable anything or mail anything.20:09
beunokarni, we can do that on our servers20:10
beunowe already have the infrastructure for it20:10
beunoso we'll talk about it soon  :)20:10
karnibeuno: great :) I'll definitely think about that :)20:10
karnibeuno: ok! cool20:10
beunothis is what we call "oopses"20:10
karnibeuno: aha =) !20:11
karnibeuno: and the trick is to minimize the number of oops'es I imagine hahaha20:11
beunoexactly  :)20:11
karniI have to work on making smaller changes per commit..21:32
dobeyeveryone needs to do that :)21:33
karnidobey: I'm way over resonable limit of changes without a commit today. It's not a problem only because I'm working heavily on it on my own (yet!), but that'll probably change quite soon.21:37
dobeykarni: i was in a similar situation yesterday. realized the additional problem was getting to be too big to fix in one branch, so cleaned up and got the original intent of the branch proposed, and filed a bug for the additional problems to fix in another branch or 321:38
karnidobey: uhm, that's resonable approach21:39
dobeyexactly :)21:39
karni:)21:40
karnidobey: oops.. bzr diff|wc -l returned 1798. I will definitely watch out for those lines-per-commit next time.21:42
karniit'd be impossible to review that if I was to propose a merge (I'll just push happily push to trunk, this time).21:43
dobeyfewer lines == less likely to have error in review. i wouldn't say 1800 lines is impossible, but it is tedious, and software engineers get bored easily :)21:44
karnidobey: right =)!21:44
karnibeuno: if you're still here - U1 has slowed down really, again. it's even similar hour. - what was the reason of the previous slowdown?21:59
karnihour = I meant time of the day22:00
beuno__lucio__, ping22:01
beuno^22:01
beunoare things slow?22:01
karniinstead of auth ~4-5s and ~7s sync from scratch, it's running over 2-3 minutes (I re-run it few times)22:02
karnioh, the download's slow, too. 27KB over wifi is quite often <2s, it's been 15+s maybe22:04
karnibeuno: I'm not complaining, just wondering what slows down the whole thing from time to time.22:04
karni:)22:04
beunoyeah, we need to keep an eye out22:05
kklimondabzr doesn't have something like git add -i?22:09
kklimondait's the best thing since the sliced bread22:10
kklimonda(it makes it possible to select chunks of diff to be commited so you can split huge changes into small commits)22:10
karnikklimonda: aha. don't know really, i'm few months new to bzr, but I'll know it sooner or later, with my tendency to overdo the number of lines changed ;)22:12
kklimondakarni: that's why I'm asking - I haven't seen it so I assume that there is either some obscure option or plugin I can use :)22:13
karni:)22:13
beunoit does not22:13
beunoit has shelve22:13
beunothat allows you to hide changes22:13
beunowhich you bring back after committing22:14
beunoalso22:14
beunoI just commit all the crazy code22:14
kklimondabeuno: ah, it's like stash - not what I'm talking about :)22:14
karniright, that I saw in the manual ^ ^22:14
beunoI prefer keep an accurate history of what I did rather than lying!22:14
karnibeuno: true :D hahahaha22:14
* karni laughs laudly22:14
kklimondabeuno: I just hate commiting hundreds of changes with messages like "heh, big pile of changes - fixed bugs, added new features, closes bugs 1, 2, 3, [7-10] ;)22:15
karnikklimonda: :D that's what I'll have to do this time (my bad)22:15
kklimondatoo much coding, not nearly enough self control ;)22:15
karnibeuno: we're back on speed.22:17
beunokarni, I'll look at our graphs tomorrow, figure out if there's a cron job running at this time or not22:17
karnibeuno: uhm :)22:17
beunothings seem stable in general, but maybe there's one db server being annoying22:17
alecudobey, ping22:18
karnibeuno: Please never tell me when you finish work at work days. I'll have an excuse to bother you any time of the day ;)22:19
beunokarni, I'm around 24/722:19
karni158KB in <2 seconds, now that's what I like!22:19
beuno\o\22:19
karnibeuno: cool, I won't hesitate to write from time to time :)22:19
beuno(speed)22:19
dobeyalecu: hi22:19
karnihahhahaha :D22:19
karnibeuno: (cool !) \o\22:19
alecudobey, hi! one question: where should I store settings for the u1-gnome-settings-plugin? gconf? some .ini?22:20
alecudobey, I've been adding some code so the out of space dialog is not shown repeatedly, but I'd also like to add some way to turn it off.22:20
alecudobey, I believe the nautilus plugin uses gconf, right?22:21
dobeysettings?22:21
dobeyi don't know if the nautilus extension has settings or not22:22
dobeythere shouldn't be any reason for the gsd plug-in to have settings22:22
alecudobey, I see that the nautilus has two settings, and that they are stored in gconf22:25
alecudobey, for the gsd plugin, I want a way to turn off the "out of space" dialog completely.22:27
alecudobey, because there's a bug in the way that "out of space" are being sent from the syncdaemon, and it'22:27
alecuit's being shown repeatedly.22:27
dobeythe way to fix a bug is not to add a setting that is "[] hide the bug"22:28
alecudobey, well, I agree it's not the way to go forward, but it's the quickest way to fix what's currently run by the users.22:29
nessitadobey: any idea what's wrong when making distcheck that I'm getting cp: cannot stat `./ubuntuone-icons.rendercache': No such file or directory?22:29
dobeyalecu: it's probably not the quickest way to fix it. it's adding a feature, and we can't add new features to maverick :)22:30
dobeynessita: do you not have inkscape installed?22:31
nessitadobey: maybe... let's see22:31
alecudobey, well, for that broad definition, every line of code is a feature :-)22:31
nessitadobey: is installed, Version: 0.48.0-1ubuntu222:32
dobeyalecu: adding new configuration is a new feature. i presume you're also adding new UI to be able to use the feature22:32
alecudobey, I'm not adding any UI for this22:32
dobeynessita: hrmm, then not enough info.22:33
alecudobey, this is only affecting a small number of users, so we can point them at gconf-editor when it nags them.22:33
nessitadobey: ok, thanks22:33
dobeyalecu: if i's affecting a small number of users, and unimportant enough to have a solution that is "tell the users to upgrade, and then tweak some random setting in gconf-editor, which is not installed by default"; then i think it is appropriate to say it is not a high or critical bug, and we can take the little extra time to fix it properly22:34
dobeyalecu: if the answer is to add code and tell people to just disable the extension, then i think a safe workaround is "sudo rm /usr/lib/gnome-settings-daemon-2.0/ubuntuone.gnome-settings-plugin"22:35
alecudobey, but that would break if we release any update to the u1 client package, right?22:37
alecudobey, I agree it's a nice workaround, tho.22:37
alecuralsina, ping22:37
dobeyalecu: hopefully an update to the package would include the proper fix22:40
nessitaok, I'm off22:42
nessitabye all!22:42
dobeyme too22:43

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