[11:08] <ubuntuone> hey guys
[11:09] <ubuntuone> Anyone is using the web interface to ubuntu one?
[11:10] <ubuntuone> I'm having issues with deleting folders.
[11:14] <ubuntuone> any one?
[11:17] <aquarius> er, hello, ubuntuone
[11:18] <aquarius> that's confusing :)
[11:18] <ubuntuone> what's confusing? :P
[11:18] <aquarius> ubuntuone, there is, I believe, a known issue with deleting files through the web interface. You can get at the old web interface at https://one.ubuntu.com/files/old
[11:18] <aquarius> CardinalFang, you're up early. Or late. :)
[11:19] <ubuntuone> aquarius: can you provide me a link to this issue in the launchpad bug area? I can't find it
[11:19] <ubuntuone> aquarius: thanks for the link of the old web ui
[11:19] <CardinalFang> aquarius, 0600.  Early, most def.
[11:20] <aquarius> ubuntuone, https://bugs.edge.launchpad.net/ubuntuone-servers/+bug/422890
[11:20] <ubuntuone> thanks!
[11:20] <aquarius> you may want to say that this bug affects you too
[11:21] <aquarius> CardinalFang, I was highly relieved that you guys confirmed that design docs don't work under oauth. I thought I was going mad :)
[11:21] <aquarius> assuming that that doesn't reveal anything else weird, I believe my dc-records-oauth branch will be ready for merging and review, which is coolness
[11:22] <CardinalFang> Well, let's don't be hasty.  You may still be mad.
[11:22] <aquarius> at that point, dc.records will seamlessly handle oauth-required couchdb
[11:22] <ubuntuone> aquarius: yes, that's why I asked for the bug link :) thanks aquarius
[11:22] <aquarius> well, yeah, but now I can go back to my normal mad things rather than delusions about couch :)
[11:23] <aquarius> CardinalFang, what are you working on today? we are pretty darn close to being ready with DC, once all the outstanding branches get merged
[11:23] <aquarius> I'll re-review the branch with the error now I know that it requires your other branch :)
[11:24] <CardinalFang> aquarius, Yay, code.  I hope we can get it properly tested today.  Maybe we can get it packaged before too late in the day.
[11:24] <aquarius> hope so
[11:24] <CardinalFang> I am working on:.
[11:24] <aquarius> that gives the gang all of Monday to get it into a package and so on and then we can test it installed
[11:25] <CardinalFang> * requiring authentication.  Writing a new INI file somewhere.
[11:25] <aquarius> ah, cool, I was going to look at that if no-one else was. I'm not sure how to do it in the test environment...
[11:26] <CardinalFang> * testing replication
[11:26] <CardinalFang> ** new code needs to test against edge for its new API call to get db-name prefix
[11:27] <CardinalFang> ** reconciling unpaired machines.  I'm sure I've written this code, I just don't remember if I've included it yet.
[11:28] <CardinalFang> ** replication daemon is moved in to the desktopcouch-service.  I hope this is good enough.  Should it be more proactive?
[11:28] <CardinalFang> ...about starting.
[11:29] <aquarius> no. It shouldn't start unless DC itself is started; dc-service does the starting
[11:29] <aquarius> question: does the replication daemon notice newly added pairings after it's started? or does it only read the paired list on startup?
[11:31] <CardinalFang> Okay.  So, there's no case for replicating before another app wants to access desktopcouch records.  Got it.
[11:31] <CardinalFang> Weird.
[11:31] <CardinalFang> "Okay.  So, there's no case for replicating before another app wants to access desktopcouch records.  Got it."
[11:33] <CardinalFang> aquarius, replication-daemon gets fresh information as soon as it can.  The only place it does not is in advertising the port number.  If that changes, it does not notice and destroy the zeroconf adverts and start new ones.  ..yet.
[11:33] <aquarius> the core-dev team were very, very firm about how DC should not be eating any time or memory at all if someone doesn't use it. :)
[11:33] <aquarius> hence the existence of desktopcouch-service at all
[11:33]  * CardinalFang nods.
[11:34] <aquarius> I would imagine that said proclamation applies to the replication daemon too :)
[11:34] <aquarius> how does the daemon get fresh info? does it watch _changes?
[11:34] <CardinalFang> Makes sense.  I do rather like the dbus service firing it up.
[11:35] <CardinalFang> aquarius, on a timer, it iterates through everything occasionally.  It's not pretty.
[11:36] <aquarius> oh. OK. We shoudl make it watch _changes on the management DB instead, although that can certainly wait :)
[11:37]  * aquarius teaches his grandmother to  suck eggs. ;)
[11:38] <CardinalFang> aquarius, It's not doing continuous replication, so I don't think it's worthwhile to watch for new pairings to come and go.  Nearby hosts will come and go hundreds of times more often than pairing a new host.
[11:39] <CardinalFang> aquarius, Now, firing up replication when data changes in a data database, that's worthwhile.
[11:39] <aquarius> yeah, but if you've never paired anything then the replication daemon should basically be dormant; if it wakes up and polls every so often then it won't be dormant.
[11:40] <aquarius> if I could think of a way of doing it I'd have the daemon shut down if you've never paired anything, but then I can't think of a way of firing it up when you*do* pair something except by having a daemon watch _changes. Reductio ad infinitum :)
[11:41] <CardinalFang> aquarius, Er, I see.  They've accessed d-c once for something, they have no pairings.  That makes the d-c service program that's running connect to couchdb every 5 minutes and ask for a (empty) list of records.
[11:41] <aquarius> indeed.
[11:42] <CardinalFang> aquarius, File a bug, if you don't mind.  it's a good idea.
[11:42] <aquarius> whereas if you watch _changes instead, and they never pair anything, the daemon basically waits forever and never does anything.
[11:42]  * aquarius files bug :)
[11:44] <CardinalFang> I'm tickled to hear the grandmother saying.  I thought it was a local (to me) regional expression that was becoming rare.
[11:44] <aquarius> bug #427792 filed
[11:45] <aquarius> it *is* becoming rare, I think. But I have a duty to keep stuff like that alive :)
[11:45] <aquarius> I need to use the word "cockamamie" more as well.
[13:33] <CardinalFang> aquarius, try  https://code.edge.launchpad.net/~cmiller/desktopcouch/pair-with-oauth  again.
[13:34] <CardinalFang> aquarius, I think it's close to good enough.  I have some state problem at the end, and twisted really wants me to shut down the connection another way.
[13:34] <thisfred> aquarius: CardinalFang: statik: the eagle^H^H^H^H^Hpatch has landed, I repeat, the patch has landed!
[13:35] <CardinalFang> thisfred, rawk.
[13:35] <aquarius> thisfred, the fix-the-design-docs-with-oauth patch?
[13:35] <thisfred> yep
[13:35] <aquarius> I owe you guys beer for confirming that, btw :)
[13:35] <CardinalFang> You owe thisfred two beers.  I did nothing.
[13:36] <thisfred> the problem was that the / gets encoded, and the authentication was checked against the unencoded url, or somesuch
[13:36] <aquarius> I am sure he will not look at all smugly at you as he drinks his two beers and you go thirsty then :)
[13:36] <thisfred> I'll give CardinalFang the coaster
[13:36] <thisfred> to chew on
[13:36] <CardinalFang> So generous.
[13:36] <thisfred> I'm not all bad
[13:36] <CardinalFang> You guys see if you can pester statik into a new release today.
[13:37] <thisfred> I'll push his guilt button... ;)
[13:37] <CardinalFang> 08:35.  AFK for 40 min.
[13:41] <aquarius> CardinalFang, pair-with-oauth doesn't show existing paired local servers in the already-paired box. Is it supposed to?
[13:41] <aquarius> er, you've gone, I'll wait until you get back ;)
[13:41] <aquarius> I've lost track of where the code to do that is :)
[13:56] <statik> good morning
[13:59] <thisfred> morning statik, the patch for the problem aquarius discovered yesterday has just landed
[14:00] <statik> thisfred, awesome! i'll get that packaged up today, is there an Ubuntu (couchdb) bug for it proposed for karmic? if not, can you make one?
[14:00] <thisfred> I will
[14:01] <thisfred> aquarius: we didn't yet make a bug for this, correct?
[14:01] <aquarius> correct, I think
[14:01] <thisfred> Ok, I'm on it
[14:07] <thisfred> statik: bug #427860, should I assign it to you?
[14:08] <thisfred> correction: I have assigned it to you,reassign where appropriate ;)
[14:20] <CardinalFang> aquarius, hi!  I'll look.
[14:27] <CardinalFang> thisfred, did you remove the desktopcouch magic for making a new couchdb in tests?
[14:28] <thisfred> CardinalFang: no, I certainly hope not
[14:28]  * CardinalFang tries harder to find it.
[14:29] <thisfred> CardinalFang: desktopcouch/tests/__init__.py
[14:30] <thisfred> It's magic
[14:30] <thisfred> a little. As unmagical as I could make it
[14:30] <thisfred> tests that want to use it, should import something from that
[14:31] <thisfred> CardinalFang: what I have done is import xdg_cache, and then in Setup() assert_(xdg_cache).... Ugly, but less so than telling pylint the unused import is not a problem...
[14:31] <CardinalFang> Ah!  My tests still  "from desktopcouch.records.tests import get_uri"
[14:31] <thisfred> ah
[14:32] <CardinalFang> So, now, just import that and it does enough?
[14:32] <thisfred> you shouldn't have to do *anything* special in the tests themselves anymore
[14:32] <thisfred> yep
[14:44] <aquarius> and I've poked one of my branches to reimport local_files
[14:47] <statik> hey dobey, after the standup i have some UI changes to ask for, which will certainly involve requesting to break the freeze
[14:56] <dobey> hrmm
[14:56] <dobey> ok
[14:56] <urbanape> argh, stomp stomp stomp
[14:57] <dobey> urbanape: agreed
[14:57] <verterok> urbanape: hi!
[14:58] <verterok> urbanape: I have a bug that might interest you :) #427622
[14:58] <verterok> Bug #427622
[14:58] <verterok> urbanape: HUGE = 2.6GB :)
[14:59] <urbanape> disk is cheap
[14:59] <verterok> urbanape: heh
[14:59] <urbanape> but yeah, that seems a bit silly.
[14:59] <urbanape> how many bookmarks do you have?
[14:59] <verterok> urbanape: and the .bookmarks_design/ folder is around 300MB
[15:00] <verterok> urbanape: let me check
[15:01] <verterok> urbanape: in the FF bookmark ~34
[15:01] <verterok> urbanape: fwiw, I have the delicious extension installed
[15:02] <jblount> MEETING BEGINS
[15:02] <jblount> The drill, you know it.
[15:02] <jblount> me
[15:02] <aquarius> me
[15:02] <statik> me
[15:02] <teknico> me
[15:02] <vds> me
[15:03] <urbanape> me
[15:03] <jblount> dobey, CardinalFang ?
[15:03] <jblount> DONE: Start conversation with teknico about contacts front end stuff, got tabs up for review (and in line with trunk), got through some move to 2a weirdness
[15:03] <jblount> TODO: I seem to still be having some trouble with the move to 2a, need to make a few small changes to tabs branch for jdo and get that landed, review day, a bit of css for teknico
[15:04] <jblount> BLOCKED: Nope
[15:04] <jblount> aquarius: tag, as it were.
[15:04] <aquarius> ⚀ DONE: discover bug in couchdb for fetching design docs under oauth; give thanks to thisfred and cardinalfang for chasing it for me (bug #427860)
[15:04] <aquarius> ⚁ TODO: get dc-records-oauth tested and merged into trunk (bug #415375); fix UnknownLoginError and make it be known (bug #376087); turn on oauth for desktopcouch by default (bug #416413) unless CardinalFang is doing it; test android phone sync
[15:04] <aquarius> ⚂ BLOCKED: well confused by the big bzr format change thing for ubuntuone
[15:04] <aquarius> ⚃ BUG COUNT:https://bugs.edge.launchpad.net/~sil/+assignedbugs?field.tag=ubuntuone-karmic - 4
[15:04] <aquarius> go go gadget statik
[15:04] <CardinalFang> me
[15:04] <statik> DONE: bug #402736 and bug #424023, along with some other couchdb fixes. Walked mattgriffin through desktop UI for Ubuntu One and realized what we have now is not acceptable for Karmic launch.
[15:04] <statik> DONE: Redo fixes for bug #402736 and bug #424023. The new couchdb snapshot should also fix bug#427860. Talk to dobey and propose some UI changes and figure out the process for requesting a freeze break.
[15:04] <statik> BLCK: Nope. https://bugs.edge.launchpad.net/ubuntuone/+bugs?field.tag=ubuntuone-karmic  has a lot of bugs though!
[15:04] <statik> teknico, your turn
[15:04] <teknico> DONE: asked on #rhinos about js widgets for dynamic form handling, talked with jblount and markgsaye about the new contacts web ui (#399664), work on adding and editing contacts (#406315)
[15:04] <teknico> TODO: more work on adding and editing contacts
[15:04] <teknico> BLOCK: none
[15:04] <teknico> next: vds
[15:04] <vds> DONE: still investigated log problems, a lot of code review
[15:04] <vds> TODO: still try to fix log problems, more review
[15:04] <vds> BLOCKED: no
[15:04] <vds> urbanape: your turn
[15:05] <urbanape> DONE: Worked more on bug #404193, bug # 396183, and bug #396186
[15:05] <urbanape> TODO: See about running some of this in batch mode
[15:05] <urbanape> BLOCK: None
[15:05] <urbanape> CardinalFang is next.^C
[15:05] <dobey> meh
[15:05] <aquarius> statik, excellent, 427860 (the new patch from jasondavies) will be available soon?
[15:05] <CardinalFang> DONE: Work on pairing and replication bugs.
[15:05] <CardinalFang> TODO: Make pairing and replication work for desktopcouch.  Like, today.
[15:05] <CardinalFang> BLOCKED: couchdb package is buggy, but we're getting that fixed.
[15:06] <aquarius> CardinalFang, is there anything I can do to help with what you're doing?
[15:06] <CardinalFang> aquarius, if you want to take the bug of setting auth to be forced on, that would help.
[15:06] <aquarius> CardinalFang, no worries
[15:07] <dobey> la la la
[15:07] <aquarius> CardinalFang, wouldn't mind a brief discussion with you and thisfred about how, if you have time
[15:07] <statik> dobey's turn?
[15:07] <dobey> ☺ DONE: Finished #403243 #419365, Fixed #397331 #420964
[15:07] <dobey> ☹ TODO: Finish complicated rollout, Release 0.95.0
[15:07] <dobey> 〠 BLCK: None.
[15:07] <jblount> dobey: Thanks!
[15:07] <statik> man i need better icons for my bullet items
[15:07] <jblount> MEETING ENDS
[15:07] <dobey> heh
[15:07] <aquarius> urbanape, did you see verterok's bug about his bindwood DB being 3GB? :)
[15:08] <CardinalFang> Rawk.
[15:08] <statik> aquarius, can I call you real quick about the bzr 2a stuff? dobey, can i call you a bit later about these depressing UI changes?
[15:08] <dobey> the postal face character is kind of big
[15:08] <aquarius> statik, yes, absolutely
[15:08] <thisfred> aquarius: I don't want to sound slutty, but I'm available
[15:08] <dobey> sure
[15:08] <statik> CardinalFang, yes, you will have a new couchdb package today that has whatever is in 0.10.x svn
[15:08] <dobey> assuming 'later' is 'when i'm actually awake'
[15:08] <thisfred> aquarius:  although: we have a skype thing in 7 mins right?
[15:08] <aquarius> thisfred, s'pose we do, yeah
[15:09] <aquarius> CardinalFang's not in that though
[15:10] <urbanape> aquarius, yes, were you not here in in channel when we were talking about it?
[15:10] <urbanape> seems kinda crazy.
[15:10] <CardinalFang> aquarius, I think it's just a matter of making a new file and  updating setup.py to install it, yes?
[15:10] <urbanape> for ~34 bookmarks.
[15:11] <urbanape> verterok, are you making modifications to your bookmarks? Like, a lot?
[15:12] <verterok> urbanape: no, *but* I have the delicious extension (I don't know what that thing is doing :) )
[15:12] <urbanape> I wonder if it creates local copies of your delicious bookmarks.
[15:13] <thisfred> I think it does
[15:13] <thisfred> still. 3GB
[15:13] <verterok> urbanape: I don'y see the delicious bookmarks in the FF bookmarks
[15:13] <verterok> *don't
[15:13] <urbanape> are they in the bookmarks menu?
[15:13] <aquarius> CardinalFang, not quite, because we need the tests to pick it up too
[15:14] <verterok> urbanape: no
[15:14] <aquarius> CardinalFang, thisfred, and that's the bit where I'm not sure of the best way to do it.
[15:14] <verterok> urbanape: I moved the bindwood couchdb to a bigger partition, let me know if I can help getting some info from it
[15:14] <urbanape> k, I'm installing it locally and I'll see if it pumps mine up.
[15:14] <aquarius> CardinalFang, thisfred, we could obviously have the code which constructs the couch exec line be different if you're running the tests, but I really don't like having tested code not be live code :(
[15:15] <verterok> urbanape: I installed it ~ 1 week ago (maybe 2)
[15:15] <urbanape> verterok, do you see more than your 34 bookmarks in your local couch db web view?
[15:15] <verterok> urbanape: how do I view my local couchdb view? :)
[15:16] <thisfred> aquarius: me either but it's not always avoidable
[15:16] <thisfred> and if it's the same file, the location doesn't matter that much right?
[15:16] <CardinalFang> aquarius, We can make the INI creator write the same details.  Write INI to a temp file.  Concat them both to make the user's config file.
[15:17] <CardinalFang> I have no better idea.
[15:17] <aquarius> CardinalFang, but then that code will get run even if you're *not* running the tests
[15:17] <CardinalFang> Yes?  We always want auth on.
[15:17] <urbanape> verterok, if there's nothing personal in it, would be you willing to send your bookmarks.couch to me?
[15:17] <aquarius> verterok, xdg-open $HOME/.local/share/desktop-couch/couchdb.html
[15:18] <urbanape> I haven't (yet) seen anything bloating from installing the delicious extension
[15:18] <verterok> urbanape: np, only my bookmarks?  but it's 2.6GB :)
[15:18] <verterok> aquarius: thanks
[15:18] <aquarius> I bet it'll gzip fantastically though ;)
[15:18] <verterok> aquarius: I'll try :)
[15:20] <teknico> aquarius, it's still going to be 30MB at least :-)
[15:20] <aquarius> mm, true enough :)
[15:20] <urbanape> put it in UbuntuOne and share it with me
[15:20] <aquarius> ha!
[15:20] <verterok> jej
[15:20] <urbanape> I hear it's good for that kind of thing
[15:21] <verterok> aquarius: looks like my local couchdb isn't running
[15:21] <aquarius> verterok, dbus-send --session --dest=org.desktopcouch.CouchDB --print-reply --type=method_call / org.desktopcouch.CouchDB.getPort
[15:22] <aquarius> although bindwood should have started it up for you, weirdly
[15:22] <verterok> aquarius: I uninstalled bindwood :/
[15:22] <aquarius> sensible :)
[15:23] <verterok> aquarius, urbanape: ok, I'm looking my local couchdb bookmarks view
[15:23] <verterok> 532 rows
[15:23] <urbanape> so, the display view will filter the contents to only show those with valid URIs
[15:23] <urbanape> wow
[15:23] <urbanape> and I'm willing to bet each of those has a couple revisions?
[15:24] <verterok> urbanape: the info the main view: size=2.6Gb, num of docs=532, update seq=61530
[15:25] <urbanape> yeah, 61530 revisions
[15:26] <urbanape> wowzers.
[15:26] <urbanape> aquarius, do we want to hold onto all revisions?
[15:26] <urbanape> is there a pack gesture you can make for Couch?
[15:26] <aquarius> yes (couch cleans them up). We do not want to create extra revisions when we don't need to though :)
[15:26] <CardinalFang> Erh, how many revisions are exactly the same?
[15:27] <urbanape> aquarius, yeah, I'm trying to suss out using batch operations for our bookmark manipulations.
[15:27] <verterok> urbanape: I have a lot of docs for "toolbarFolder" that are deleted
[15:27] <urbanape> to also keep down on the amount of round-tripping.
[15:28] <aquarius> batch ops won't help -- it sounds like we're overwriting a doc with the very same identical doc if it hasn't changed :)
[15:28] <urbanape> but it's a no op when we push bookmarks when the bookmark already exists
[15:28] <aquarius> do we actually make it a no-op? or are we expecting couch to do so? because it sounds like it doesn't
[15:29] <aquarius> verterok, try going to http://localhost:(couchport)/bookmarks/_compact ?
[15:29] <verterok> ok
[15:29] <urbanape> we only save the doc to couch if it doesn't exist already.
[15:30] <urbanape> we do a query on its local uuid.
[15:30] <urbanape> if it's found we skip.
[15:30] <urbanape> did you make a copy first?
[15:30] <aquarius> urbanape, I suspect that that's what we *think* we do :)
[15:30] <verterok> aquarius: {"error":"method_not_allowed","reason":"Only POST allowed"}
[15:31] <urbanape> well, if you view the bookmarks database itself, there's a link for Compact Database...
[15:31] <verterok> aquarius: I have a "Compact Database.." link in _utils/database.html?bookmarks
[15:31] <verterok> urbanape: exactly :)
[15:31] <verterok> ooh, taht's better, 0.6MB!
[15:32] <aquarius> rawk
[15:32] <verterok> *that's
[15:32] <urbanape> but did you make a copy first?
[15:32] <urbanape> I wouldn't mind dissecting it a bit
[15:32] <verterok> urbanape: errr... no :/
[15:32] <urbanape> hrm.
[15:32] <aquarius> verterok, right, file a bug which says: desktopcouch should add a cron job to compact its databases. :)
[15:32] <verterok> urbanape: I can install bindwood again :)
[15:32] <urbanape> heh
[15:32] <urbanape> what aquarius said, though.
[15:33] <verterok> urbanape: I'll install it an let you know when it grows again
[15:34] <verterok> aquarius: instead of compacting, shouldn't this be avoided or at least minimize the noop changes?  (my contacts db is ~1MB)
[15:34] <aquarius> verterok, yes. :)
[15:34] <aquarius> but we should compact too
[15:35] <verterok> ok
[15:35] <urbanape> so, part of it is we should be doing these records creations in a batch, otherwise we get a separate revision for bookmark creation and every subsequent property change.
[15:35] <urbanape> and I'll double check the no-op
[15:36] <urbanape> batch ops will help at least in that regard. One record for a newly created bookmark.
[15:37] <aquarius> mm, true
[15:39] <verterok> aquarius: filed Bug #427905
[15:39] <verterok> thanks guys!
[15:39] <aquarius> glad someone noticed that. pitti would have had us executed ;)
[15:40] <CardinalFang> aquarius,  https://bugs.edge.launchpad.net/desktopcouch/+bug/404087  What's left to do?
[15:40] <aquarius> CardinalFang, I think, once everything's landed, nothing?
[15:41] <CardinalFang> aquarius, you assigned it to me, and I have no idea.
[15:41] <aquarius> ok, CardinalFang, thisfred, what code are we still *writing* as opposed to code that's written and not merged?
[15:41] <aquarius> I need to do the ini file turn-on-oauth stuff
[15:41] <aquarius> I think maybe we should concentrate on getting everything outstanding merged?
[15:42] <CardinalFang> aquarius, thisfred, I'm using "Fix Committed" to mean committed to trunk.
[15:42] <thisfred> right
[15:42] <aquarius> that's useful
[15:43] <CardinalFang> http://bit.ly/rZRVe
[15:43] <thisfred> aquarius: so you're going to do that for server an desktopcouch both, or just dc?
[15:44] <aquarius> thisfred, just DC, because I'll be putting files in /etc and so on
[15:44] <thisfred> I'm doing the server side only, but we should coordinate,  obviously
[15:44] <aquarius> I am assuming that the server will have differences in the ini files
[15:44] <thisfred> aquarius: yeah, so that was what I meant on the call: I'm working on having the cloud end authenticated only and adding an admin user there
[15:44] <aquarius> *nod* gotcha
[15:45] <CardinalFang> So, Bug #397663 and Bug #404087  -- I'm on it.  There's the bug of paired not showing up in the list.  Once that's fixed in trunk, I'll mark both  Fix Committed .
[15:46] <thisfred> ok, ubuntu insist that I reboot after upgrade, back in a sec
[15:49] <aquarius> kenvandine, ping
[15:49] <aquarius> CardinalFang, are you knowledgeable about the desktopcouch deb packages?
[15:52] <urbanape> aquarius, is our desktop couch actually replicating out to the cloud yet?
[15:52] <aquarius> urbanape, not yet
[15:52] <urbanape> verterok, did you manually set up replication with another instance?
[15:53] <verterok> urbanape: no, I not even touched anything related to  desktopcouch, just installed it and bindwood
[15:53] <urbanape> k
[15:55] <CardinalFang> aquarius, yes.
[15:55] <kenvandine> aquarius, pong
[15:56] <CardinalFang> aquarius, that is to say, I know .deb, and I'm responsible for the packaging.  I don't know if I'm actually knowledgeable yet.
[15:56] <urbanape> verterok, you said some of those bookmarks represent bookmarks that you'd deleted previously?
[15:56] <urbanape> I think I see a spot ripe for that kind of churn in the code.
[15:56] <verterok> urbanape: no, not me. looking at the document attributes they are deleted
[15:56] <aquarius> CardinalFang, kenvandine: couple of questions for you on packaging, then. If I want to add a new file which will end up as /etc/desktopcouch/auth.ini when installed, where should I put it in our source tree? Which changes shoudl I make to the packaging branch to include it? Should it live in /etc/desktopcouch, or somewhere else when installed?
[15:57] <urbanape> well, they only get marked deleted if you delete them locally
[15:57] <verterok> urbanape: and also a lot of duplicates
[15:57] <kenvandine> aquarius, you need to put it anywhere and make sure setup.py knows how to install it
[15:57] <urbanape> duplicates are interesting. That would suggest that the uuids are getting ignored/not found/skewed
[15:57] <CardinalFang> aquarius, yes, /etc/desktopcouch/
[15:57] <kenvandine> now that we have reverted to the old school distutils :)
[15:58] <aquarius> kenvandine, right, so you don't care where it is in the source tree, I just pick somewhere and then tell setup.py about it? winner. :)
[15:58] <kenvandine> yes
[15:58] <kenvandine> :)
[15:58] <CardinalFang> aquarius, Everything is driven by setup.py, as kenvandin- said.
[15:58] <verterok> urbanape: I have "{    "Firefox": {;        "uuid": "{4f428ff6-2a16-4a92-aae5-94723135c896}",;        "list": "toolbarFolder";    }" more than once
[15:58] <aquarius> and I should be using /etc/desktopcouch rather than /etc/default/desktopcouch or /etc/xdg/desktopcouch or similar?
[15:58] <verterok> urbanape: all deleted=true
[15:59] <CardinalFang> not /etc/default!
[15:59] <aquarius> see, this is why I'm asking ;)
[15:59] <CardinalFang> aquarius,  /etc/desktopcouch/default.ini  is best,
[15:59] <aquarius> /etc/xdg/desktopcouch would be interesting, actually. We could have it load all ini files in XDG folders for desktopcouch.
[15:59] <verterok> urbanape: I can send you the compacted DB if it helps you to debug this
[16:00] <aquarius> and then the tests would just add an extra folder from the source tree to the xdg folders
[16:00] <CardinalFang> aquarius, I don't know enough about the philosopy of XDG to answer about it.
[16:00] <aquarius> that's the way I'm going to do it, I think, unless someone has a big reason for me to not do it that way?
[16:00] <CardinalFang> aquarius, I know  /etc/desktopcouch/  is right.
[16:02] <CardinalFang> There may be something else that is just as right, but I do not know about it.
[16:03] <aquarius> *nod*
[16:03] <aquarius> I think the xdg folders are a good idea
[16:09] <aquarius> thisfred, where you check for a couch version and then do different chaining flag things depending on what the version is...why?
[16:09] <thisfred> aquarius: we no longer need that, actually: this was for when we had different versions on the server and in the developer deps
[16:10] <thisfred> the -C was for 0.9
[16:10] <thisfred> let's kill it
[16:12] <aquarius> ok, I'll kill it in my branch
[16:13] <urbanape> kenvandine, you got a sec?
[16:13] <kenvandine> sure
[16:14] <urbanape> so, you were one who reported early on about the not-quite-all-the-way-there bookmark records.
[16:14] <urbanape> how do you normally make bookmarks?
[16:14] <urbanape> bookmark this page?
[16:14] <kenvandine> yes
[16:14] <urbanape> or create a new, blank bookmark
[16:14] <urbanape> okay
[16:14] <kenvandine> i did both i think
[16:14] <urbanape> yeah, that's why. I see it now.
[16:14] <kenvandine> woot
[16:14] <kenvandine> ok
[16:14] <kenvandine> :)
[16:14] <urbanape> so, Firefox does different things for the different ways you can create a bookmark.
[16:14] <urbanape> I kinda want to throw it off the room.
[16:14] <urbanape> roof.
[16:15] <urbanape> okay, I think I've sussed out the extent to which need belt, suspenders, and maybe some double-sided tape. And maybe staples.
[16:16] <kenvandine> :)
[16:16] <kenvandine> cool
[16:41] <verterok> urbanape: oh, I forgot to mention thet I use two profiles in FF
[16:51]  * aquarius pushes lp:~sil/desktopcouch/load-many-ini-files for review :)
[16:53] <urbanape> verterok, how many bookmarks in each profile? Or was the 34 total for the two?
[16:54] <urbanape> aquarius, do we anticipate making schemas for things like folders and separators?
[16:54] <urbanape> they seem common enough motifs for bookmark management
[16:54] <verterok> urbanape: don't know, let me check
[16:54] <urbanape> Guess I can come up with faky record types in the mean while.
[16:54] <aquarius> every record needs a record type; every record type should have a schema. So, yes, if separators get stored in the DB
[16:55] <urbanape> If we're going to preserve the real structure of bookmarks, we'll need to account for them, yes.
[16:56] <aquarius> are they firefox-specific?
[16:56] <aquarius> folders may not be -- separators might be, though.
[16:57] <urbanape> Conceptually? I don't think so.
[16:57] <urbanape> dunno, though. Safari support separators of some sort
[16:57] <urbanape> I'm sure Opera does
[16:57] <aquarius> i.e., should there be a separator document, or should some bookmarks have an application_annotations.Bindwood.separator_after_me = true ?
[16:57] <urbanape> I'd say former
[16:57] <aquarius> kk, sounds good
[16:57] <urbanape> since it has its own index (at least as far as Firefox is concerned)
[16:58] <aquarius> every time I think "create a new record type" I am trying to teach myself to think "is this something that other people will use" just so I don't forget :)
[16:59] <aquarius> kenvandine, CardinalFang, I'd appreciate a review from one of you two on lp:~sil/desktopcouch/load-many-ini-files to confirm that I've done the setup.py stuff correctly, because I don't know how to test that
[16:59] <verterok> urbanape: default bookmarks, plus the ones that bindwood synchronized :)
[16:59] <urbanape> yeah, because it doesn't know (yet) about multiple profiles
[17:00] <urbanape> but I wonder if that accounts for some of the duplicates.
[17:02] <verterok> possibly
[17:12] <CardinalFang> aquarius, revno 60 doesn't do what it says on the tin.
[17:12] <CardinalFang> aquarius, I mean, 59.
[17:12] <CardinalFang> aquarius, Ah!  Nevermind.  I found it.
[17:12] <aquarius> CardinalFang, it does, doesn't it? what does it do then?
[17:14] <CardinalFang> aquarius, I'd be happier if the setup saver-of-XDG-files found the location the same way as the loader of files does.
[17:14] <aquarius> CardinalFang, not sure I understood that
[17:14] <CardinalFang> aquarius, How do you know that  xdg.BaseDirectory.load_config_paths()  loads from /etc/xdg/... ?
[17:15] <aquarius> because that's defined by Ubuntu
[17:15] <CardinalFang> Is there no way to use  xdg.BaseDirectory  in setup.py?
[17:15] <aquarius> there is, but that doesn't help.
[17:16] <aquarius> because it will tell you what xdg_config_paths is set to on the build machine, not the installation machine
[17:16] <aquarius> deb packages don't have a good way, as far as I know, of saying "install this file in the system xdg folder, even if the lunatic who runs this computer has changed where the system xdg folder is"
[17:17] <aquarius> because you are Not Supposed To Change It
[17:17] <aquarius> in the same way, you can rename /etc to /Settings if you're a nutter, but it'll break deb installation :)
[17:17] <CardinalFang> setup.py is bigger than Ubuntu.
[17:18] <aquarius> hang on, just so I understand this -- setup.py gets run at build time, yes? not installation time?
[17:18] <dobey> setup.py is run to do builds and installs
[17:18] <aquarius> or ar eyou thinking that people will grab the package and use setup.py to install it on random platforms?
[17:18] <aquarius> does XDG even exist on other platforms?
[17:19] <dobey> not really
[17:19] <dobey> i mean, using XDG on other platforms is doable
[17:19] <aquarius> I mean, yeah, it's XD, for cross-desktop, but it ain't X enough to work on Windows, I don't think
[17:19] <dobey> but doesn't necessarily make sense
[17:19] <dobey> it'll work on windows
[17:19] <dobey> well, it'll work on cygwin
[17:19] <dobey> i don't know about windows without cygwin
[17:20] <aquarius> I'm happy to change setup.py to dynamically pick up the system XDG folder rather than hardcode it, if people think it's a good idea.
[17:20] <urbanape> aquarius, I don't think we need (just yet) specs for folder and separator.
[17:20] <dobey> but why would you need it during setup.py anyway?
[17:20] <urbanape> I'm happy coming up with generic records for that. If it comes up, we can migrate later on, yeah?
[17:21] <dobey> aquarius: hrmm, i think the spec is broken
[17:21] <dobey> (xdg basedir spec)
[17:22] <dobey> what a mess
[17:22] <aquarius> dobey, CardinalFang's issue is: at the moment, setup.py hardcodes the system XDG folder (/etc/xdg/desktop-couch) rather than working it out, which will break if you use setup.py on another platform which defines the XDG base folder to be something else
[17:22] <dobey> aquarius: no. the spec is broken
[17:23] <dobey> aquarius: (and distutils/setuptools not providing a way to do sysconfdir is also broken)
[17:23] <aquarius> I think: that's just the same with all our other setup.py stuff, which merrily hardcodes /usr/share/dbus-1/services and so on, and so it is not worth changing
[17:23] <aquarius> dobey, sysconfdir would be /etc
[17:23] <CardinalFang> aquarius, my complaint is that you're using two different ways of referring to a file.
[17:23] <dobey> well /usr/share isn't hardcoded. distutils/setuptools supports using a different prefix for that
[17:24] <aquarius> CardinalFang, so your proposed solution is, instead of hardcoding '/etc/xdg/desktop-couch/' in setup.py, use xdg.BaseDirectory.load_config_paths{"desktop-couch")[-1] ?
[17:24] <Claudinux> someone can help me? ubuntuone-client don't connect to my account
[17:24] <dobey> aquarius: anyone who breaks their system by saying XDG_CONFIG_DIRS doesn't include /etc/xdg deserves what they get... which is a broken system
[17:24] <aquarius> dobey, ah, people on Windows, for example, won't include /etc/xdg.
[17:24] <CardinalFang> aquarius,  zdg.BaseDirectory.save_config_path()  is what you want.  It's the sister of the load_config_paths() that you're using.
[17:24] <dobey> Claudinux: what version of the package?
[17:25] <dobey> aquarius: people on windows, for example, don't use XDG :)
[17:25] <aquarius> CardinalFang, nope. save_config_path is for finding a user-writable folder to put config in.
[17:25] <dobey> aquarius: XDG spec is broken on windows anyway, because it requires : be the path spearator
[17:25] <dobey> aquarius: which doesn't work when your paths include :
[17:26] <dobey> aquarius: setup.py should install to /etc/xdg/whatever
[17:26] <aquarius> CardinalFang, It finds one, and only one, path, i.e., $HOME/.config/programname (or on my machine $HOME/Applications/Settings/programname), and creates it if it doesn't exist. It's not for finding all the config folders on your machine; that's exactly what load_config_paths is for
[17:26] <Claudinux> 0.94.0 on karmic alpha 5 dobey
[17:27] <aquarius> and what I want to do is iterate through all the config paths
[17:27] <CardinalFang> aquarius, Alright, you win.
[17:27] <dobey> aquarius, CardinalFang: you are never going to find where to put the file during install, by parsing an env var that is a list.
[17:27] <aquarius> I admit that setup.py hardcodes /etc/xdg/desktop-couch and *assumes* that later on load_config_paths will find that path, but that's an invariant on Ubuntu. Off ubuntu it might be a problem, though. I'll add a comment.
[17:28] <dobey> aquarius: it's a problem because the spec is broken.
[17:28] <dobey> (as is setuptools/distutils)
[17:28] <aquarius> how is it broken?
[17:29] <dobey> Claudinux: the firefox window never pops up?
[17:29] <dobey> aquarius: because the spec says to only use /etc/xdg when the env var is not set
[17:29] <aquarius> dobey, what should it say?
[17:29] <dobey> aquarius: when what it should say, is that /etc/xdg is ALWAYS THE LAST PLACE TO LOOK
[17:29] <dobey> (it should do similar for XDG_DATA_DIRS as well)
[17:30] <Claudinux> dobey i can use ubuntuone with web interface without problems
[17:30] <dobey> Claudinux: yes. but when you click on the ubuntu one icon, you never get the "authorize my computer" window in your browser?
[17:31] <Claudinux> no dobey it don't work, don't do nothing
[17:32] <dobey> Claudinux: does "grep 301 ~/.cache/ubuntuone/log/oauth-login.log" give you a bunch of output?
[17:32] <dobey> Claudinux: i suspect so
[17:33] <dobey> Claudinux: this is a known issue, due to our moving the domain to one.ubuntu.com from ubuntuone.com, and is fixed in the beta builds already, and will be fixed in 0.95.0 when it is uploaded for karmic later today, after we deploy a new server
[17:35] <Claudinux> dobey, http://pastebin.ubuntu.com/269263/
[17:35] <dobey> Claudinux: as i suspected :)
[17:37] <dobey> Claudinux: you can either install the update from the beta PPA by adding it to your sources, or you can wait for the 0.95.0 release/update to show up in karmic sometime within the next 24 hours or so
[17:37] <dobey> ok, must go get lunch myself
[17:37] <dobey> bbiab
[17:37] <Claudinux> thanks dobey
[17:38] <CardinalFang> aquarius, Okay:  my review:  remove those "chain =" lines at the top of couch_chain_ini  .  sort the output of os.listdir() and add a space after the comma.  Use  ini_files.extend() instead of adding.
[17:38] <Claudinux> i think i wait the release/update dobey :)
[17:39] <aquarius> I didn't sort the output of os.listdir because I'm not sure that loading files in alphabetical order is a worthwhile thing to do. YOu think it is?
[17:39] <aquarius> also, isn't somelist += [other, list] just the same as somelist.extend([other, list]) under the covers?
[17:40] <CardinalFang> Well, order seems to matter, yes?   I can't imagine random is good.
[17:41] <aquarius> yeah, I just couldn't think of a good order :) but you're right
[17:42] <aquarius> pushed
[17:42] <CardinalFang> aquarius, as for l.extend()  I do not know the internals.
[17:43] <aquarius> I changed it, anyway; I'm not wedded to += :)
[17:46] <CardinalFang> aquarius, do you have a problem with me combining those two views in finding the paired servers?
[17:47] <aquarius> CardinalFang, oh, byserver and byservicename? Not if you think it'll be less confusing. How are you planning to do it?
[17:48] <leftyfb> I have installed ubuntuone on karmic ... it never asked to add a computer. How do I do that after the fact?
[17:48] <leftyfb> and it keeps saying it crashed
[17:48] <leftyfb> although it's still running
[17:48] <CardinalFang> leftyfb, there are two programs.  Are both still running?
[17:48] <leftyfb> leftyfb   3431     1  1 12:46 ?        00:00:01 /usr/bin/python /usr/bin/ubuntuone-client-applet
[17:48] <leftyfb> leftyfb   3433     1  1 12:46 ?        00:00:01 /usr/bin/python /usr/lib/ubuntuone-client/ubuntuone-syncdaemon
[17:49] <CardinalFang> Yep.
[17:49] <leftyfb> well, this time when it crashed I picked to restart it
[17:49] <leftyfb> no crash again so far
[17:49] <leftyfb> but I still can't add my computer
[17:49] <leftyfb> shouldn't this option be in the preferences or menu?
[17:50] <verterok> leftyfb: what version do you have installed?
[17:51] <leftyfb>  0.94.0-0ubuntu1
[17:52] <verterok> leftyfb: this is a known issue, due to our moving the domain to one.ubuntu.com from ubuntuone.com, and is fixed in the beta builds already,  and will be fixed in 0.95.0 when it is uploaded for karmic later today, after we deploy a new serve
[17:52] <verterok> *server
[17:52] <verterok> as dobey said ^
[17:52] <verterok> leftyfb: he also pointed: "you can either install the update from the beta PPA by adding it to your sources, or you can wait for the 0.95.0 release/update to  show up in karmic sometime within the next 24 hours or s
[17:53] <leftyfb> I just got here, missed anything dobey said
[17:53] <leftyfb> ok, i'll try the ppa
[17:53] <verterok> leftyfb: that's why I'm copying it :)
[18:09] <aquarius> CardinalFang, are you fixing the problem where already-paired local servers don't show in the already-paired box inside the existing pair-with-oauth branch, or in a new branch?
[18:09] <aquarius> CardinalFang, if you're doing it in a new branch, then I'll approve pair-with-oauth -- I don't want to leave it as need fixing and then leave, meaning that you can't merge it
[18:15] <CardinalFang> aquarius, I am just testing it now.  Give me 3 minutes, please, and then pull pair-with-oauth
[18:15] <aquarius> CardinalFang, no worries, I shall wait :)
[18:20] <CardinalFang> aquarius, pushed
[18:21] <aquarius> hrm, still isn't showing paired servers in the bottom pane :(
[18:22] <aquarius> I'll wait a little in case the push hadn't taken effect
[18:23] <thisfred> aquarius: we need to make some changes to desktopcouch: once again it will break the server if deployed as is,
[18:23] <aquarius> thisfred, kk
[18:23] <thisfred> aquarius: the OAuthCapableServer uses local_files
[18:23] <thisfred> I think
[18:24] <aquarius> thisfred, it does, to find the oauth tokens
[18:24] <thisfred> aquarius: right, that will not work on the server, I think
[18:24] <thisfred> so we maybe need to initialize that with an oauth_get function
[18:25] <thisfred> or make a different OAuthCapableServer, and make that class configurable in CouchDatabase
[18:25] <aquarius> thisfred, that code will be totally different on the server, though?
[18:25] <thisfred> not sure
[18:25] <thisfred> aquarius: o wait we subclass couchdatabase anyway
[18:25] <aquarius> CardinalFang, aha, it works now. Why does it show the zeroconf ID in the pane? Users don't have to care about that, do they?
[18:26] <aquarius> thisfred, we do indeed
[18:26] <thisfred> We do not call the super __init__ so we can do it there
[18:26] <thisfred> never mind me
[18:26] <thisfred> :)
[18:26] <thisfred> eh no
[18:26] <thisfred> we do call super
[18:27] <CardinalFang> aquarius, no, I just have nothing else to show.  Want just a hostname?
[18:27] <aquarius> CardinalFang, I think so, yeah. User-visible stuff should only be things that are relevant to users
[18:27] <aquarius> I wonder about even removing the .local off the end?
[18:27] <aquarius> so it's just the computer name
[18:28] <aquarius> thisfred, we need to call super, otherwise it ain't a couchdatabase ;)
[18:28] <urbanape> aquarius, I know you've got your hair on fire with stuff but fixing Bindwood is raising questions about some of our assumptions. If you get a spare minute later today before you sign off, I'd like to bend your ear a bit.
[18:28] <thisfred> aquarius: yeah, so we need to modify couchdatabase's ini to take a server class
[18:28] <thisfred> I think that
[18:28] <thisfred> s the easiest
[18:28] <aquarius> urbanape, go for it.
[18:29]  * thisfred makes trivial branch
[18:30] <thisfred> and once again I was tricked into doing dc stuff
[18:33] <urbanape> aquarius, so, two things off the bat: Should we promote uuid to a top-level bookmark attribute? Seems like any consumer/producer is going to want/need to uniquely resolve bookmark records.
[18:34] <aquarius> urbanape, is uuid generated by bindwood? top-level attributes need to be shared by Bindwood and some Bindwood-equivalent that some other dude writes for Chrome, for example
[18:34] <urbanape> yes, but the uuid standard is, well, pretty standard.
[18:35] <urbanape> saying "Each bookmark will have a unique id. If your system does not provide one with the granularity of uuid, we suggest you create one to use as a foreign key."
[18:35] <thisfred> ok, that was easy. You might want to merge this into your branch, aquarius: https://code.launchpad.net/~thisfred/desktopcouch/configurable-server-class/+merge/11615 and fix the inevitable conflict
[18:35] <thisfred> also CardinalFang trunk is broken, correct? with that get_uri import?
[18:35] <urbanape> but in answer to your question, yes, Bindwood establishes the uuid for bookmarks, albeit with Firefox's uuid service.
[18:35] <kenvandine> aquarius, setup.py looks fine
[18:36] <aquarius> urbanape, it needs to be clear that you must not use an ID which is generated by the browser itself, is the thing
[18:36] <kenvandine> but i think you need to add the ini file to MANIFEST.in
[18:36] <kenvandine> aquarius, yeah... you do
[18:36] <urbanape> yeah, I agree. Unless the browser does The Right Thing and actually internally identifies things that way, and won't reuse ids between profiles/instances.
[18:37] <urbanape> aquarius, it's probably not a big deal, but I did think it was worth chatting about.
[18:37] <aquarius> urbanape, more that if you assume that the unique ID is your browser internal ID, you'll be screwed if you try in BindChrome to load a bookmark that was saved by Bindwood, becaus eit'll already have a unique ID set and you don't get to change it
[18:38] <aquarius> this is why I think that IDs should be browser-specific
[18:38] <aquarius> rather than a top-level attribute
[18:38] <aquarius> so each browser can attach its own ID to a given bookmark
[18:38] <urbanape> fair enough
[18:38] <urbanape> the other question that's arisen is about preserving hierarchy and ordering.
[18:39] <urbanape> the somewhat braindead (although beneficial (more on which later)) behavior of Firefox when you move a bookmark is to generate a notification only for the bookmark being moved. However, all other bookmarks that were between, before, or after the bookmark in question also get their indexes updated.
[18:40] <aquarius> kenvandine, I've put the file in the source tree as etc/xdg/desktop-couch/compulsory-auth.ini. Do I add it to MANIFEST.in as "include etc/xdg/desktop-couch/compulsory-auth.ini", or "include etc/*"?
[18:40] <urbanape> so, what I wondered about was treating all bookmarks as leaf-level objects in Couch, but also persisting a manifest reflecting the hierarchy.
[18:40] <kenvandine> "include etc/xdg/desktop-couch/compulsory-auth.ini"
[18:40] <kenvandine> aquarius, ^^
[18:41] <aquarius> cheers, kenneth :) pushed.
[18:42] <thisfred> aquarius: what branch of dc should I use to ensure that I'm not writing code that will break?
[18:42] <urbanape> among the downsides in that case (redundancy, more traffic of larger document payloads) is where in Couch would we store it? As a top level document, like the view? Even though it's also only pertinent to each browser.
[18:42] <CardinalFang> thisfred, I have it fixed here.  I'll be merging soon.
[18:42] <aquarius> thisfred, erm. This is a question I am not totally sure about myself
[18:42] <thisfred> I was afraid of that :)
[18:42] <urbanape> unless we also want to preserve ordering and hierarchy between browsers as well (assuming they support folders and separators)
[18:43] <aquarius> urbanape, maybe store as a tree? so each folder maintains an ordered MergeableList of its children?
[18:45] <dobey> hrmm
[18:45] <aquarius> thisfred, best place to work from is whatever CardinalFang's most recently touched, in my opinion. :)
[18:45] <CardinalFang> (Not generally, natch!)
[18:47] <thisfred> aquarius: ok, well, let's agree that CouchDatabase.__init__ has a new default argument server_class, with default value the Server (OauthCapable on your branch, regular on trunk) of your choice
[18:47] <CardinalFang> aquarius, I pushed new revision.
[18:48] <urbanape> aquarius, yeah, I'd represent it as just a JSON object tree
[18:48] <CardinalFang> aquarius, Now, I'm storing the time we paired with the other end, and display it.
[18:48] <aquarius> thisfred, clever
[18:48] <aquarius> CardinalFang, clever
[18:48] <urbanape> maybe a top-level "meta" document that had its own application_annotations object?
[18:48] <aquarius> you're both clever :)
[18:48] <aquarius> urbanape, hrm
[18:49] <aquarius> urbanape, I'm not sure I like the idea of storing the structure separately from the bookmark records
[18:49] <CardinalFang> aquarius, does your machine show itself in the listening-host list?
[18:49] <aquarius> because then if you delete a bookmark you have to poke two documents
[18:49] <CardinalFang> Mine does, and I don't yet know why.
[18:49] <aquarius> CardinalFang, yes. (because I changed it to allow local.)
[18:50] <leftyfb> does ubuntu one just go out on port 80?
[18:50] <urbanape> yes, but if you delete a bookmark, you'd also need to update the index property of every other bookmark that came after it
[18:50] <aquarius> CardinalFang, dbus_io.discover_services(add_service_to_list, remove_service_from_list, show_local=True)
[18:50] <urbanape> 2 is better than N
[18:50] <CardinalFang> Ah.
[18:50] <aquarius> CardinalFang, in desktopcouch-pair. Change it to show_local=False, once we're happy :)
[18:50] <CardinalFang> aquarius, Rgr.
[18:50] <aquarius> urbanape, ah, that's what I mean, you don't store an index property
[18:51] <urbanape> how else do we preserve ordering?
[18:51] <aquarius> urbanape, actually, hm. My way means that if you delete a bookmark you have to edit the bookmark record *and* its parent folder record.
[18:51] <urbanape> you mean store the actual bookmarks in a tree in COuch?
[18:51] <aquarius> nah, I meant that a bookmark-folder record contains a list of _ids of its children
[18:52] <aquarius> (ids of the records of its children)
[18:52] <aquarius> but I'm not sure that actually buys you much
[18:52] <aquarius> and it makes it harder to reconstitute the tree
[18:52] <aquarius> compared with your idea of One Tree Record To Rule Them All
[18:52] <aquarius> good argument. I am convinced.
[18:53] <CardinalFang> aquarius, thisfred, Okay, I'm almost happy with the pairing tool.  Review this branch, and I'll work on the network state machine closing later.
[18:53] <urbanape> well, it's good to talk it through. Ta
[18:53] <CardinalFang> https://code.edge.launchpad.net/~cmiller/desktopcouch/pair-with-oauth/+merge/11576
[18:53] <aquarius> bindwood has to become quite a lot cleverer at watching changes in that document, though :)
[18:53] <urbanape> well, has to become clever at all. Currently it doesn't deal with any structure.
[18:53] <aquarius> :)
[18:54] <urbanape> well, here's one thing:
[18:54]  * aquarius approves pair-with-oauth
[18:54] <urbanape> if we have a handy-dandy JSON object comparator, we can make the pullBookmarks only pull the manifest and check it against a cached local copy.
[18:55] <urbanape> then we only have to pull one document + any that have changed
[18:55] <urbanape> versus all of them.
[18:55] <aquarius> can't do that, because the manifest won't change if you change the title of a bookmark
[18:55] <urbanape> good point
[18:55] <aquarius> because the manifest records structure, and the structure hasn't altered
[18:55] <urbanape> yup
[18:55] <aquarius> which is a shame because that was a good idea :)
[18:57] <urbanape> okay, I think I've got a handle on this now. Thanks
[18:58]  * urbanape goes heads-down again
[19:02] <CardinalFang> thisfred, new desktopcouch trunk for you.
[19:02] <thisfred> wicked
[19:03] <aquarius> thisfred, remember that the OAuthCapableServer stuff is from dc-records-oauth, which won't work until we have a new Couch with the design-docs fix.
[19:03] <aquarius> but! once we have that new couch, dc-records-oauth should Just Work, I think
[19:03] <aquarius> (it is difficult to test this)
[19:04] <aquarius> and then load-many-ini-files turns on compulsory oauth
[19:04] <thisfred> aquarius: yeah, I won't propose my cloud server branch quite yet
[19:04] <thisfred> CardinalFang: Using saved parent location: bzr+ssh://bazaar.launchpad.net/~ubuntuone-control-tower/desktopcouch/trunk/
[19:04] <thisfred> No revisions to pull.
[19:04] <thisfred> you lied :'(
[19:05] <thisfred> or bazaar did
[19:06]  * CardinalFang shrugs.
[19:06] <CardinalFang> It's in the intertubes.
[19:07] <thisfred> why I oughtta! (wrings intertubes)
[19:13] <CardinalFang> thisfred, it just took 10 minutes.
[19:13] <thisfred> CardinalFang: yep, goddit
[19:13] <thisfred> lazy pigeons
[19:14] <thisfred> my next venture is going to be TCP over lightning
[19:19] <dobey> i tried that once
[19:20] <dobey> but i ended up in 1955 with a HOST_UNREACHABLE error
[19:20] <thisfred> whatever you do, don't kiss her, dobey! ;)
[19:21] <thisfred> also, if you ever end up going the other way, bring me back one of those floating skateboards
[20:00] <causasui> All right, funny question. I installed ubuntu one. Now how the heck do I run it?
[20:03] <jblount> causasui: It may already be running, what does 'ps aux | grep ubuntuone' in a terminal reveal?
[20:04] <causasui> nothing
[20:04] <jblount> causasui: Do you have a 'Ubuntu One' item in your menu under Applications > Internet ?
[20:05] <causasui> no :|
[20:05] <causasui> what's the name of the package in the repository?
[20:06] <jblount> 'ubuntuone-client-gnome'
[20:06] <jblount> Are you running Jaunty or Karmic?
[20:09] <aquarius> dobey, can I get a re-review of lp:~sil/desktopcouch/load-many-ini-files? I've moved the etc/xdg folder a bit, as requested.
[20:12]  * dobey stabs launchpad with a glowing red branding iron
[20:12] <dobey> aquarius: in 5 years when launchpad is done updating itself, i'll look at it again, yeah :)
[20:13] <aquarius> :)
[20:13] <dobey> causasui: how did you install ubuntu one?
[20:13] <causasui> jblount: jautny
[20:13] <causasui> jaunty8
[20:13] <causasui> well what do you know, it wasnt installed weird
[20:16] <jblount> causasui: dobey made some rocking insta-installer packages for Jaunty, you can get the low down here: http://ubuntuone.com/support/installation
[20:17] <jblount> It basically amounts to 1. install ppa, 2. install software, 3. be awesome.
[20:17] <causasui> jblount: I just installed it from the repo and it worked. I guess I was hallucinating the last time I did that
[20:19] <jblount> causasui: Happens to the best of us :)
[20:21] <causasui> all right, how do I sync this thing
[20:27] <leftyfb> ok, there needs to be some other way to get to the preferences window. By default, after you get it all going, it sets itself to not show the icon unless changes are being update. Other than that, there's no way to get to the preferences.
[20:31] <jblount> leftyfb: Agreed, any ideas for a way to make this work?
[20:32] <leftyfb> maybe if it's already running, clicking the icon from the internet menu would bring up preferences. Or put a second icon in the preferences menu.
[20:32] <leftyfb> also, a totally separate idea for installations, add link to the folder to the places menu might be nice
[20:33] <leftyfb> %s/link/a link/
[20:35] <jblount> leftyfb: That's a good thought. I think we have a bug describing a similar interaction, and I agree that it's irritating to not be able to get at the prefences (although I like that the icon hides itself when inactive)
[20:35] <jblount> leftyfb: There was a link in the places menu when the software was running before, I'm not sure if that was taken out on purpose, or if it was a regression.
[20:35] <jblount> dobey: ^^ ?
[20:35] <dobey> que
[20:36] <jblount> dobey: places link for ubuntu one folder?
[20:36] <leftyfb> oh, I see it, it's in bookmarks
[20:36] <dobey> it's still there
[20:37] <leftyfb> hm
[20:37] <leftyfb> maybe add it as it's own?
[20:37] <dobey> if you have a lot of bookmarks though, they get compacted into a subfolder
[20:37] <jblount> dobey: I thought so, but didn't want to speak out of turn.
[20:37] <leftyfb> ah
[20:37] <dobey> leftyfb: we're not a "disk" so we don't show up as a "Place" as you're thinking of
[20:38] <aquarius> thisfred, bah, dc-records-oauth *still* fails, even with the new couch, with couchdb.client.ServerError: (500, ('unknown_error', 'function_clause')), whatever the hell that is. :(
[20:38] <leftyfb> well, you sort of are. Instead of local disk or removable disk, you're a cloud disk :)
[20:39] <thisfred> aquarius: ouch
[20:39] <aquarius> thisfred, yeah, exactly. :(
[20:39] <jblount> leftyfb: One of the things we really like about Ubuntu One is that your stuff isn't stored in some weird one-off format. It's just a folder on your computer that we magically sync up to the storage space you have on our servers.
[20:39] <thisfred> that sounds like they didn't test very well. OAuth sucks for testing... :(
[20:39] <causasui> all right, I got files in the Ubuntu One folder, how do I sync this thing?
[20:39] <aquarius> thisfred, I agree entirely
[20:40] <thisfred> aquarius: lemme see if jasondavies is there
[20:40] <aquarius> thisfred, how much will you hate me if I leave you in charge of this? :(
[20:40] <thisfred> and that would be a no.
[20:40] <thisfred> on both counts :)
[20:40] <jblount> causasui: There isn't a 'sync' button, if you copied files into ~/Ubuntu One/ they should start syncing.
[20:40] <jblount> causasui: Do you see the logo in the notification area?
[20:40] <dobey> leftyfb: but we're not a disk to the system. we're a regular folder
[20:40] <aquarius> dobey, oi! what are you still not happy about? although I appreciate the approve :)
[20:40] <thisfred> aquarius: I'll see what I can do
[20:40] <aquarius> thisfred, cheers, pal
[20:41] <dobey> aquarius: empty directories
[20:41] <aquarius> dobey, which empty directories?
[20:41] <dobey> aquarius: config/ is empty. it contains only a subdirectory
[20:41] <dobey> aquarius: but i see why it's that way, as the code looks in foo/desktop-couch/
[20:41] <aquarius> dobey, that's the way xdg works; you give it the CONFIG_DIR and then it looks in it for an "appname" dir.
[20:41] <dobey> well that's the way your code works
[20:42] <aquarius> to avoid that I'd need to monkeypatch xdg.BaseDirectory.
[20:42] <dobey> you're abusing xdg to make your tests work, yes
[20:42] <dobey> :)
[20:42] <aquarius> I certainly am not abusing it :)
[20:42] <aquarius> that's how it's meant to be used ;)
[20:42] <aquarius> your point is noted, mind :)
[20:42] <dobey> it's not meant to be used in tests like that, really
[20:42] <leftyfb> dobey: I agree that it's a nice feature to not show up unless there's activity, but I do think there should be an easy way to get at the preferences menu if you want to change things... without having to throw a tmp file to get it to show up
[20:43] <dobey> it's meant to be used by active-running systems, and wasn't designed around unit testing code in source trees :)
[20:43] <dobey> leftyfb: yeah it's a bug
[20:43] <aquarius> not really, I admit, but if you have code that reads things from the xdg folders, then unless you do something like that in tests, it's going to read from your *actual* xdg folders, which makes testing impossible.
[20:43] <dobey> aquarius: you should be mocking xdg
[20:43] <dobey> that's what mocker is for :)
[20:43] <leftyfb> dobey: how does this work on headless systems? Can you add a machine on the command line?
[20:44] <aquarius> dobey, I did an assessment, and it turns out that mocking xdg is exactly 2.8 million times more work ;-)
[20:44] <dobey> leftyfb: not exactly, since oauth requires browser interaction
[20:44] <dobey> aquarius: then in 3 years when you finishe, you would have gotten paid really well for it :)
[20:44]  * aquarius grins
[20:44] <aquarius> go team!
[20:45] <aquarius> right, I'm going away now. Have a good weekend, all
[20:46] <thisfred> aquarius: you only tested with our package right, not the 0.10 branch?
[20:46] <aquarius> thisfred, with the latest package
[20:46] <aquarius> which is up to date, I believe, with the 010 branch
[20:46] <thisfred> right, I'll test with the branch to make sure our packaging didn't break anything
[20:47] <thisfred> before I start stamping my foot in #couchdb
[20:47] <dobey> leftyfb: and i don't think gnome-keyring works without X
[20:48] <aquarius> thisfred, cheers
[20:48] <aquarius> ttfn, all
[20:48] <leftyfb> dobey: so are there any plans to come up with alternate solutions to use ubuntuone on servers?
[20:49] <dobey> leftyfb: there is upstream work on having a cross-desktop keyring, which would solve most of the issues
[20:49] <dobey> leftyfb: we'd just need a way to do the auth and get the token in the keyring, without X
[20:50] <causasui> jblount: yeah I see the logo
[20:51] <jblount> causasui: That probably means something is going on, does hovering over it give any further info?
[20:52] <causasui> jblount: "Updating files..." so I guess this thing runs automatically?
[20:52] <jblount> causasui: u1sdtool --current-transfers
[20:52] <jblount> ^^ that may also prove useful
[20:52] <jblount> causasui: Yeah, basically you put stuff in ~/Ubuntu One/ and the client software keeps it in sync on our servers. You may already be able to see some stuff at http://ubuntuone.com
[20:53] <causasui> jblount: Spiffy, thanks. Now when I get this integrated with conky it will rock
[20:54] <jblount> causasui: :)
[21:12] <statik> causasui, please blog some screenshots if you get that working with conky
[21:13] <dobey> causasui: if you left-click on the tray icon, it says "Updating M of N files."
[21:20] <urbanape> ARGH
[21:20] <urbanape> answers lead to questions!
[21:21] <urbanape> so, trying to handle the profile - it occurs to me: Without prior syncing of profiles, there's no easy way to ensure that profiles on different machines correspond with each other.
[21:22] <urbanape> they (ff) have removed the ability to get the profile's human-sensical name.
[21:22] <urbanape> You can still get access to the randomly named directory where your profile exists, but that's, well, random. And isn't likely to be the same between machines.
[21:23] <urbanape> however, I've streamlined the initial push of bookmarks, so they at least all get pushed correctly and intact now.
[21:31] <stlsaint> hello?
[21:33] <dobey> hi
[21:36] <stlsaint> just wanted to check up on the latest news about ubuntu one!
[21:36] <stlsaint> is there a final release date non beta
[21:37] <CardinalFang> stlsaint, Well, we have about ten stages of stuff we want to do with it.  It's not like we have a hard-and-fast destination in mind
[21:38] <CardinalFang> We'll be working on it for a while.
[21:38] <CardinalFang> We have some stage-one stuff we hope will be ready for the release of Karmic release.
[21:40] <stlsaint> CardinalFang, care to elaborate some?