[00:35] jblount, I figured it out. I was never unsubscribing that button from the action, so every time you click it, it adds on more subscribers. === mr_ian_ is now known as mr_ian [04:24] all better now [13:46] jblount: fixed the extra event subscribers. Pushing now [13:47] question: If a file is public, should its URL that we expose in the file table be its public URL? === gnomefreak is now known as thunderstrck === thunderstrck is now known as gnomefreak === gnomefreak is now known as gnomefreak76 === gnomefreak76 is now known as gnomefreak === gnomefreak is now known as gnomefreak76 === gnomefreak76 is now known as gnomefreak [14:06] urbanape: Is there a good reason for that? Swapping the urls out seems like extra complication for little benefit. [14:07] no, no particular reason, just asking [14:07] consistency, really. [14:07] then, you could just right-click on the URL, copy it, paste it into IM or whatever [14:07] if the file is public, always deal with its public URL. [14:07] Yeah. I'd actually prefer it becuase it exposes the url closer to top level... [14:09] * jblount takes note that public files probably need to be indicated as such somewhere in the ui other than just in the details overlay [14:09] also a good idea [14:09] I had these questions for johnlea yesterday, but he was away [14:09] if he wants to chime in ^^ [14:13] urbanape: what's the question? [14:13] should we decorate the file table entries in any way when they're available as a public file? [14:17] urbanape: the file table is not exposed through the UI? [14:17] ? [14:17] urbanape: what is the file table? [14:17] in the /files/ ui [14:18] in the web UI, if a file is public, should we decorate it any way so that the user can see at a glance? [14:18] ahhh, you are talking about the files page on the website [14:18] yes [14:19] we need to design how published files are going to be indicated on the desktop, and then when that is agreed use that as the basis for modifying the website [14:20] so, nothing right now. that's fine [14:21] my todo list is: 1. file sync (UDFs) 2. file share 3. file publish [14:22] My machines are not sync'ing at the moment. Is this a common problem for anyone? [14:23] johnlea, does that mean we shouldn't have the publish capabilities exposed in the web ui yet? [14:25] urbanape: No. We're not going to wait to expose this feature until it's ready on the desktop. [14:25] Overtone_: You are the second person I've heard report it, and I know we're having some database related issues. [14:26] Is there anything I can do to help debug it? [14:28] Overtone_: I don't believe so, all of our db hackers are working on it right now. [14:28] OK, I'll wait a while and try again later! [14:33] Overtone_: Thanks, sorry for the trouble! [14:37] hrmm [14:40] urbanape, yes hold off exposing the publish capabilities in the web interface until we have designed how it will work on the desktop [14:40] johnlea, jblount, and anyone else involved: Please work out a consistent story. [14:43] heh [14:43] this one time... [14:43] urbanape: Keep hacking, I'm pretty sure statik wouldn't want us to slow down on this and doesn't want to wait to expose the feature, but he's a little busy with the db weirdness. [14:44] this calls for Thunderdome. [14:44] * dobey goes over to the xbox and puts in Borderlands [15:00] urbanape, jblount: I'm not sure it is worth implementing a feature that without a design when it is due to be designed in the near future. You can implement something, but it after the design work is done the required functionality is different the work may be wasted. [15:00] if [15:01] * johnlea going into meeting [15:01] johnlea: do you and otto have a few minutes for a call today? [15:09] Desktop+ MEETING BEGINS (although a little late) [15:09] Say "me" to document your status, we're doing DONE / TODO / BLOCKED today. [15:09] me [15:09] me [15:09] me [15:09] me [15:10] me [15:11] me [15:11] me [15:12] Ready? [15:13] CardinalFang: I'm ready ! [15:13] DONE: Found bug/test-failure in merged Tomboy/Notes code. Half sick-day [15:13] TODO: File bugs and blueprints. Fix that Tomboy/Notes bug. [15:13] BLOCKED: None. [15:13] jblount, what do you see, from there on the summit of Mount Dora? [15:13] DONE: Got my stupid cranky server fixed in the morning, worked on layout bugs [15:13] TODO: Keep hacking on https://bugs.edge.launchpad.net/ubuntuone/+bugs?field.searchtext=&orderby=-importance&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_supervisor=&field.bug_commenter=&field.subscriber=&field.omit_dupes.used=&field.omit_dupes=on&field.has_patch.used=&field.has_cve.used=&field.tag=gd&field.tags_combinator=ANY&search=Search [15:13] BLOCKED: None [15:13] teknico: YOU! [15:13] DONE: more fighting with funambol_cared (#506898); worked on a user's problems accessing the contacts web IU (#506584); started implementing the mobile sync REST API for client app (#504689) [15:13] TODO: land a branch for configuring funambol for sending sms messages (#418048); more work implementing the mobile sync REST API for client app (#504689) [15:13] BLOCK: ubuntuone-storage-protocol misbehaving (#506974) [15:13] next: aquarius [15:13] ⚀ DONE: spec file delivery downloader daemon; many design discussions [15:13] ⚁ TODO: redo music store URLs; have music library page send message to downloader daemon and row to database; make workitems of outstanding todo items; make tomboy first-sync experience nicer [15:13] ⚂ BLOCKED: [15:13] rodrigo__, go [15:14] • DONE: Contacts picker design discussions with John and Otto. Checked with Ken status of music store packages. Retrieve oauth credentials from keyring in music store widget. Fixed JS code in music store widget. On-call review. CouchdbAuth object in couchdb-glib [15:14] • TODO: Conflict resolver tool in pair tool. Look at becoming a MOTU (https://wiki.ubuntu.com/UbuntuDevelopers). Make sandy's snowy test suite work with our server (http://git.gnome.org/cgit/snowy/tree/api/tests.py). Discuss with jdo and aquarius about oauth token per app, not per machine? [15:14] • BLOCKED: no [15:14] go dobey [15:14] i thought it was jblount's turn again, since he said me twice :P [15:14] ☺ DONE: More testing code for login script [15:14] ☹ TODO: More new UI code and tests [15:14] ☹ BLCK: None. [15:16] (Sorry I'm confusing did everyone get a chance? ) [15:17] e'run dat's hur [15:18] well, EOM === CardinalXiminez_ is now known as CardinalFang [15:23] * johnlea is back from meeting [15:25] oh, damn. me: [15:25] DONE: Finished the green/red flash for the public files UI. Who knows its current state? [15:25] TODO: Back to Bindwood - migration and subsequent client code paths. [15:25] BLOCK: None [15:25] hey jblount i updated my contacts error 500 bug (#506584) with the oopsid , [15:26] gourgi: Nice, thanks for the update! [15:26] gourgi, thanks, I'll have a look [15:27] jblount teknico you welcome, tell me if anything more needed [15:33] clearly gweather is confused about what the weather is [15:33] because it is most definitely not raining here. [15:34] at least it's supposed to break 50F today [15:41] adiroiban, I've added the CouchdbAuth object, now for basic auth, you just need to add an 'Authorization' HTTP header, right? === rodrigo__ is now known as rodrigo_ [15:42] rodrigo_: thank. I will change my code. [15:42] adiroiban, well, wait, we need to define how the auth will be done [15:42] if you just need to add an HTTP header, a 'gchar *add_http_header ()" virtual method would be enough [15:43] my path uses the libsoup authentication api [15:43] yeah, I was thinking about just not doing the SoupAuth stuff [15:43] and it can be used for basic or digest [15:44] hmm, ok, I guess we'll have to add SoupOauth then [15:44] or other http auth [15:44] if we want to only support Basic auth [15:44] we can have a simple hack [15:44] and add the headere [15:45] with username and plain text password [15:45] but since this is a generic couchdb lib [15:46] yeah, we should support them both [15:46] I assume other http auths will be welcomed [15:46] you can't only support basic auth, since you can't use that for desktopcouch. But supporting basic *and* oauth would be fine, I think [15:46] for desktopcouch, oauth is all we need [15:46] aquarius, yes, we are adding basic http auth, oauth already supported [15:47] rodrigo_, oh right gotcha :) [15:47] just trying to find a good API to support all auth mechanisms [15:47] rodrigo_: is simle [15:47] use the libsoup api [15:48] yeah, but not sure yet how to fit oauth there [15:48] and let developers provide the username and password [15:48] will talk to the libsoup developers [15:48] and define a list o prefered auth methods [15:48] something like in ssh [15:49] rodrigo_: what about oauth + libsoup? [15:49] dobey, yeah, that's what I'm thinking, adding oauth support to libsoup directly [15:49] rodrigo_: i mean, what's the problem? [15:49] it doesn't support it right now, couchdb-glib just adds an Authorization header [15:49] rodrigo_: basicaly my basic http auth code can also be used for the other methods [15:49] dobey, no problem :) [15:49] just change the name of the functions [15:49] :) [15:50] well, aside from oauth :) [15:50] adiroiban, yeah, but we can't remove oauth support if we use SoupAuth right now [15:50] no [15:50] there is no oauth support in libsoup [15:51] so we need libsoup + custom oauth handling [15:51] but handling http auth in libsoup is simple [15:51] as you will only need to connect to „authenticate” signal [15:52] yeah, but the "problem" is I want a single auth API, so that you do: [15:52] auth = couchdb_auth_new_oauth|http|whatever.... [15:52] couchdb_session_set_auth (session, auth); [15:53] and thus support all auth mechanisms in one call [15:53] ok [15:53] and what is the current problem [15:53] the CouchDBAuth structure [15:53] sure. i'm not totally sure that OAuth fits into SoupAuth though. also, ross burton was looking at this a long time ago and may have done something (possibly in librest?) [15:54] could have a : type , user, pass, and auth fields [15:54] adiroiban, yeah, I guess we'll have to do our CouchdbAuth-based stuff [15:54] we already have the oauth fields [15:54] so we only need to move them in a dedicated structure / class [15:55] adiroiban, yeah, but then what the interface of CouchdbAuth would be, or are you saying to have your soupauth-based code in CouchdbAuth and just have a separated CouchdbOAuthAuth for oauth? [15:56] http://burtonini.com/bzr/soupoauth/ [15:56] rodrigo_: nope. let me paste the idea [15:56] :) [15:56] ok [16:00] rodrigo_, have you run jslint on the embedded javascript in your oauth-credentials-from-keyring branch? [16:00] statik, no [16:02] rodrigo_, i'm just nervous about how to test the js, and the long term maintenance of it. what would you think about storing the js in a datafile, and reading it in from the file when you need it? then it would be easier to test changes to the js [16:05] statik, yes, that's what I was thinking [16:05] statik, it's in the code right now for easier testing, so that you don't need to install the code anywhere and just run it in the source tree [16:06] statik, but yeah, I'll move it to a file in the next branch, and add jslint tests to the makefile, then, right? [16:06] is there not a good way to run unit tests on js? [16:06] dobey: there is, but this branch has javascript embedded in string constants in C files [16:06] there are semi-good ways -- jsunit, for example -- but it's more complex in the context of JS that expects to be running against a DOM but that isn't in a browser. [16:06] which complicates it somewhat [16:06] rodrigo_: for client i split lint and test into separate rules, and added them as dependencies to the check: rule [16:07] dobey, ok [16:07] rodrigo_: so you probably want a jslint rule for jslint, and have check depend on it [16:12] rodrigo_: http://etherpad.com/fuhKLBwxMH [16:13] basicaly I envisioned a CouchDBAuth class that extend SoupAuth [16:13] extends [16:14] in SoupAuth we don't have SoupCredentials as it only needs user and password [16:15] adiroiban, I see we might not need CouchdbAuth then, just the credentials, [16:15] the "authenticate" signal can be in CouchdbSession [16:16] well [16:16] in this case [16:16] implementors will not be able to choose fallbacks [16:17] of we need to implement an api for fallback [16:17] or we will not support fallbacks :) [16:18] and then, how do you pass the correct data to SoupAuth? it only understands username and password [16:18] exposing an proxied SoupAuth will allow implementations to behave different based on Realm, but mostly on scheme-name [16:19] hmm [16:19] but maybe nowadays [16:20] there are not to many apps using Realm and scheme-name [16:22] there is one thing that needs to be changed in the current couchdb-glib logic [16:23] we need to have make it „react” to couchdb server auth requrest [16:23] right now it is pretty dumb [16:23] yes, an "authenticate" signal when there is a 401, right? [16:23] if oauth is enabled by the user [16:23] oauth will be always used [16:23] even if the server does not requires authentication [16:23] yes [16:24] well, that code assumes it's desktopcouch [16:24] the change should be done in couchdb_send_message [16:24] verterok: ping [16:24] dobey: pong [16:25] rodrigo_: oauth is a standard auth method in couchdb? [16:25] adiroiban, yes, not sure if standard, but it comes by default, not enabled though, AFAIK [16:25] ok [16:25] verterok: hey. i'm confused about how to make a test fail in the callbacks from dbus [16:26] aquarius, does couchdb support other auth mechanisms by default? [16:26] verterok: i can make it time out, but that's not a useful failure message [16:26] rodrigo_, only basic auth [16:26] rodrigo_, and oauth [16:26] dobey: please elaborate :) in which callback from dbus? the error_handler? [16:27] verterok: the signal handler for NewCredentials for example [16:27] adiroiban, ok, so let's see if the whole picture makes sense: [16:27] dobey: could you pastebin the code? or is there a branch I can pull? [16:27] jblount, well, in any case, I slightly modified it to update the URL both in the fileTable and in the information overlay depending on its status. [16:28] verterok: my test-login branch in tests/test_login.py [16:28] I've pushed it to lp:~urbanape/ubuntuone-servers/public-files-webui [16:28] verterok: d.callback(False) doesn't do what i thought it did :) [16:28] dobey: ok, gimme 1' to pull [16:28] couchdb tries to send_message and get a 401, in which case it emits a "authenticate" signal? [16:28] and calling d.errback() causes a timeout [16:29] adiroiban, or should it already have a CouchdbAuth associated to it the 1st time it sends_message? [16:29] adiroiban, and call the "authenticate" signal on CouchdbAuth? [16:30] rodrigo_: if couchdb will only support basic auth and oauth, we can have the libsoup signal implemented in couchdb-glib and not expose it [16:30] dobey: you want to fire the oauth_denied? [16:30] adiroiban, yes, I'd like to not expose libsoup API in couchdb-glib [16:30] verterok: no, i want to make the test fail if i don't get the signal i'm expecting to get [16:31] rodrigo_: then just have CouchDBCredential structure [16:31] dobey: oh, so I you get other signal, e.g: auth_denied is called, you want it to fail? [16:31] that can be created both _with_username_and_password and _with_oauth [16:31] verterok: yes [16:31] dobey: d.errback(twisted.python.failure.Failure(Exception('Oops, wrong handler called!'))) [16:32] rodrigo_: and have couchdb_session_authenticate(CouchDBSession session, CouchDBCredential credentials) [16:32] hmm [16:32] dobey: the other option is to: d.addCallback(lambda r: self.assertTrue(e)) [16:32] adiroiban, and when should that be called, when the app using couchdb-glib gets a 401? that is, no management of 401s in couchdb-glib itself? [16:33] dobey: you still call d.callback(False), but check for the callback result [16:33] verterok: the errback just gets me a timeout [16:33] rodrigo_: is should be called instead of the current couchdb_enable_oauth [16:33] dobey: could you paste the line of the errback call? [16:33] rodrigo_: maybe we can call it couchdb_session_set_authentication(CouchDBSession session, CouchDBCredential credentials) [16:34] verterok: i copied and pasted your paste, into the signal handler method :) [16:34] dobey: hehe, probably a syntax error :) [16:35] adiroiban, and no "authenticate" signal in CouchdbSession? [16:35] dobey: change it to: d.errback(False) [16:35] dobey: in the meantime I'm getting a copy of the branch [16:35] ok that works [16:35] rodrigo_: yes. no exposed „authenticate” signal [16:36] but we will need to expose a „authentication-failed” signal [16:36] dobey: quite probably a syntax error. you might need to do: from twisted.python import failure and d.errback(failure.Failure()) [16:37] adiroiban, yeah, ok [16:37] probably [16:37] dobey: but you can pass anything to an errback, but usually it's a Failure instance :) [16:37] adiroiban, and CouchdbAuth then disappears? [16:37] yeah [16:38] rodrigo_: yes [16:38] ok, makes sense to me now, we would just use SoupAuth for the non-oauth mechanisms internally in CouchdbSession [16:39] rodrigo_: yes. the implementation should be similar to my code for basic aouth [16:39] yes [16:40] just modify couchdb_send_message to also „cry” when oauth is not working [16:40] verterok: thanks again :) [16:41] dobey: np, :) [16:43] rodrigo_: yep. it looks a nice API for me. We can call it couchdb_session_enable_authentication [16:44] adiroiban, yes, sounds better than authenticate [16:44] rodrigo_: i have updated the ehterpad [16:44] adiroiban, yeah, I can see you typing :D [16:49] adiroiban, instead of _new_with_username_password/_new_with_oauth, wouldn't it look better if we had CouchdbCredentials be username/password based, and then have a separated CredentialsOAuth class? [16:50] rodrigo_: I am not sure if we are going to see more authentication schemes, so maybe we can get rid of CouchDBCredential and have couchdb_session_enable_auth_with_user_and_pass and [16:50] ouchdb_session_enable_auth_with_oauth [16:50] and enable_auth_with_oauth, yes [16:50] I guess it makes things a lot easier [16:51] and couchdb just supports basic and oauth, so we won't be missing any auth mechanisms [16:51] the purpose for CouchdbCredentials is to allow us to add other auth schemes, without changing the existing api [16:52] so if couchdb is planned to support other auth schemes [16:52] right, that would make the api be prepared for extension, so maybe it's a good idea after all [16:52] it would make sense to have CouchDBCredential [16:52] if not couchdb_session_enable_auth_with_user_and_pass and couchdb_session_enable_auth_with_oauth should be fine [16:54] I assume oauth and user/password should be fine by now [16:55] HTTP Digest and NTML can be implemented using the user and pass api [16:57] adiroiban, yes, let's go with ..Credentials object then [16:57] adiroiban, but the interface between it and ..Session is not clear to me [16:58] adiroiban, should the ...Session object know what to do with each type of credentials? that is, SoupAuth, just add an oauth header, etc? [16:58] rodrigo_: yes [16:59] rodrigo_: if couchdb will have Kerberos, I would like couchdb-glib to handle kerberos auth for me [16:59] rodrigo_: same for an auth scheme based on PKI [16:59] rodrigo_: just like it does now for oauth [17:00] well, what I mean is if it the ..Credentials object should do that [17:00] rodrigo_: I see Credentials just like an „cached for credentials” [17:01] ok, let's try writing some code... [17:01] the session should to the hard work [17:01] adiroiban, I'll add the _oauth stuff and then you can update your branch to add the http stuff, ok [17:01] ? [17:01] sure [17:04] rodrigo_: regarding the debug branch. I will change the coding style. [17:04] but what are the coding convetions? [17:04] adiroiban, gnome-style is called, afaik :) [17:04] do you use emacs? [17:04] :) [17:04] nope [17:05] gedit + vim [17:05] but I will look for gnome coding converions [17:05] then, just try to see the rest of the code, and just mimic, I'll shout when you deviate from it :) [17:05] for the #undef g_debug [17:06] if --disable-debug-messages is pass to ./configure [17:06] ah, right [17:06] ok, update the branch and I'll merge it [17:06] g_debug will be defined to Nothing [17:06] to avoid wasting some some cpu cycled [17:07] it is somehow an „extreme” code optimization [17:08] for a simple desktop app with 1000 coucdb docs, it will not make a big difference [17:09] if you don't want it, I will remove it [17:11] verterok: bug #506559 looks like something for you? [17:11] Launchpad bug 506559 in ubuntuone-client "Ubuntu1 just opens apport whenever I click on the applet" [Undecided,New] https://launchpad.net/bugs/506559 [17:11] dobey: the apple? :) [17:12] dobey: looking [17:12] verterok: it's crashing in _load_pickle in syncdaemon :) [17:12] ouch [17:12] dobey: probably a broken metadata :( === teknico_ is now known as teknico [17:20] * dobey wonders about this keyring mess a bit [17:58] rodrigo_: do we still need DEBUG_OAUTH ? [17:59] adiroiban, yes, I think so [17:59] since we have a general DEBUG_MESSAGES [18:00] adiroiban, well, if you replace it with that, yes we can get rid of DEBUG_OAUTH [18:00] rodrigo_: I will replace it :) [18:36] * CardinalFang is afk to see dentist, today. Sheesh. [18:38] CardinalFang: Yuck. Good look. [19:04] jblount, give my branch a look-see and let me know what you think [19:04] (if you get a few moments) [19:10] urbanape: Yessir, I'll pull it down now. [19:11] rodrigo_, ping? [19:12] you the man now, dog [19:14] Hi. Beginner's question I guess, but the FAQ and google didn't help, so here it is: Using ubuntu 9.10, my "Ubuntu One" folder shows different files from the web interface. Q) How can I tell what user account the applet is using? [19:21] I'll add some more info if you don't mind: deleted file in /home/(username)/.config/ubuntuone ; restarted ubuntuone; files in the folder are not synced with the web-displayed folder. I've reloaded the web page (several hours after the applet told me everything was up to date). Is there a common reason for this? [19:26] Hey, sorry for wasting your time. It just started working again, although I'm sure I did exactly the same thing as earlier. Anyway, never mind. (NB probably just deleting that file fixed it, along with removing all currently shared files from the "Ubuntu One Folder). Thanks for your help! [19:28] iainhaslam: You are a hero, I'm glad your problem is sorted! [19:28] jblount: :) Me too [19:31] urbanape: This branch seems to work like we talked about, although I'm still seeing a red flash between clicking "make public" and the page reload. [19:33] dobey, ping [19:35] weird. I don't get any red flashes at all. [19:35] just glorious green [19:36] even repeatedly clicking the button [19:36] although, I forgot to make the appropriate changes to the wording, &c. [19:37] is dobey not around today? [19:37] he was around earlier [19:38] urbanape: Yeah, I can adjust that stuff. I need to do a bit of css to give things the proper padding and what not. [19:38] jblount, also, you shouldn't be seeing the page reload [19:38] it should do it ajaxically [19:38] urbanape: Hrm. I was hoping you would say that. [19:39] * urbanape fires up the ol' Firefox. [19:39] Are you pushing to lp:~urbanape/ubuntuone-servers/public-files-webui ? [19:39] I'd been testing it in Chromium [19:39] yup [19:39] lemme make sure I've pushed it all. [19:39] Yeah, that might be it. [19:39] yeah, it's all there [19:41] urbanape: Wow, this looks great in Chrome! [19:41] gah [19:41] yeah, I see the same thing in Firefox. [19:41] dubya tee eff [19:45] debugging [19:45] great, now we're living in a world where Firefox is the throwback. [19:47] how the mighty are fallen, etc [19:47] Psh, I've been living in that world ever since Safari got awesome. [19:47] well, when they bring out a Safari port for Ubuntu... [19:47] ...I still won't run it. :) [19:48] Chromium's niceness, though [19:48] aquarius: Fair enough :) [19:49] Chromium is super nice. I like that they're brining the focus back to speed. [19:50] I wish Flash crashed less, although tbh if youtube moved to html5 video and that JavaScript flash port works for noddy games like physicsgames.net and Canabalt, I wouldn't need flash [19:52] figured it out [19:52] jblount, the href for the anchor tag needed to be "#", not just "" [19:52] * urbanape guesses [19:52] anyway, seems to work now. I'll commit and push. [19:53] Sweetness. [19:54] pushed. give it a shot. [19:57] urbanape: This thing rocks like a hurricane. Well done. [19:58] noice [19:58] danke [19:58] there's some sort of nice refactoring that can come out of that [19:58] but I'm not sure what, just yet. [20:00] So from here, I'll take it and adjust the copy stuff and css stuff and put that noise up for review. [20:00] If we need to put it on zed (currently non-existent) before getting public we cand decide that then. [20:01] That way johnlea + statik + the internet will all be happy and live in harmony. [20:02] harmonious is good [20:02] :) [20:07] aquarius, still around? [20:07] yep [20:07] do you have a few minutes to talk about db replication? [20:07] yep [20:08] so, one thing that bit me quite a bit was u1's version coming back down and imposing itself on my local db. [20:08] during testing [20:08] so, I'm embarking on this migration path for existing users [20:08] ok... [20:09] * CardinalFang returns triumphant. [20:09] apart from live testing it thoroughly with my own data, I'm wondering if I can understand what it will try to do a priori [20:09] yay, CardinalFang! no cavities? [20:10] so, if I perform a migration, and change a bunch of records, what's the replication behavior in that case? does it go by sequence number? Since I'll have a boat load of new sequences, will u1 pull those and not try to push back old data? [20:10] urbanape, 34 years, still zero cavities. [20:11] u1 shouldn't have any changes that aren't local [20:11] if u1 has changes that your machine doesn't, *and* you have changes that U1 doesn't, then it's conflict city [20:12] so, I guess what I'd been seeing was a result of me deleting my local db, and starting from scratch, in which case, u1 had some revs that were newer? [20:12] and getting it into a weird state? [20:12] yes, or at least I should say that was the problem [20:13] yeah, okay. cool. so, basically, in a replication network, whichever host has newer sequences will flow to the others? and then what happens with conflicts? one local host has a sequence 55 where one thing changed and another has 55 where something else changed? [20:14] basically, yeah [20:20] it's not quite done on sequence numbers, it's done with _rev, but that's the basics of it [20:21] gotcha [20:21] that makes sense, since sequence numbers are probably only really pertinent to any given host [20:21] yep [20:22] much like the accursed itemIds I deal with inside Firefox [21:12] Hi all, anyone know or point me in the right direction of where i can find a way of integrating ubuntu one/couchdb contacts with thunderbird ? [21:13] hi diplo: aquarius or thisfred or chad can tell you all about that. theres a record format defined on freedesktop.org I think, and you could look at launchpad.net/bindwood to see a firefox plugin that talks to desktopcouch [21:14] hey diplo [21:15] okay thanks, will go take a look, was already thinking of writing a app in python to add contacts as a project as i'm really not a fan of evolution so might as well go the whole hog [21:16] diplo, the way to do it is to have the Thunderbird addressbook talk to desktopcouch, the user-specific couchdb. As statik says, bindwood is a Firefox extension that talks to desktopcouch (to sync bookmarks), so using similar code would be good -- thunderbird extensions are all XUL and JavaScript the same as firefox ones are [21:17] Great thanks, not created an extension for TB/FF before so will be a good experience [21:17] diplo: also, the desktopcouch mailing list is a good place to discuss such a project, and to ask questions (here is fine too, of course) [21:18] * thisfred looks up url [21:18] heh will do, not even thought about signing up to mailing list [21:18] diplo: http://groups.google.com/group/desktop-couchdb [21:18] thanks very much [21:19] np, it's a very exciting project, I'm sure people will be glad to help. As a thunderbird user, I know I will ;) [21:19] till: Are you there ? [21:20] till: Where can I find qjson sources [21:20] brb sons just got up [21:20] diplo, the two people who know the most about this area are urbanape (who wrote bindwood, and therefore knows about talking to desktopcouch from inside XUL and with JS) and rodrigo_ (who wrote evolution-couchdb and therefore understands about storing contacts in desktopcouch) [21:20] diplo, but any of thisfred, CardinalFang, or I can help too :) === ubottu is now known as ubott2 [21:29] diplo, I'd be happy to talk about it [21:29] especially the XPCOM stuff [21:30] Great, sorry just got back... I'm away on a course this week but i think i'll start by going through looking at the other sources first and see how much work is involved [21:31] One other thing i really want is to be able to start integrating this into windows clients as well as with my work 90% of my day has to be on a windows box at the moment [21:31] if you want to check out bindwood, I'd suggest you look at the stuff I'm doing now. lp:~urbanape/bindwood/manifest [21:31] there's been a bit of exploration into getting a desktopcouch on Windows [21:31] yeah was reading up on that yesterday [21:41] Seems like there is some good documentation for the couch side, i think the hardest part for me will be doing the FF side :) [21:54] diplo, keep in touch. I'll try to help as much as I can [21:54] thank you, just having a look through everyones code at the mo [21:55] Will spend some time on it this weekend i think [22:23] * jblount may have to stop watching American Idol while working. At least not the try out episodes. === kenvandine_ is now known as kenvandine [22:48] ok, so what is the best way to resolve u1conflicts? I'm not sure I understand when they are generated either. [22:50] thisfred, aquarius and urbanape, thanks for all your input and help, spent the last hour or so reading up and it looks good. Will add the channel in favs and try and make a start. Off to bed now though :) [22:50] gn [22:53] later diplo! === mattgriffin1 is now known as mattgriffin === jamalta_ is now known as jamalta