[02:07] <AJenbo> hi, i have bindwood installed for months, U1 syncs files fine but the bookmarks are nothing a like on my systems, what gives?
[02:08]  * karni wants to ping beuno but thinks it's an unappropriate time to do that..
[02:08] <karni> AJenbo: the whole crew just finished job few hours ago. but maybe someone else will be able to answer your question. (I don't use bindwood myself)
[02:10] <AJenbo> ok cool, I'll just comeback later, it's not critical just anoying
[02:10] <duanedesign> hello AJenbo. Do you have a thread on the forums?
[02:11] <karni> hey duanedesign :)
[02:11] <duanedesign> was just reading the forums earlier and noticed a thread on this topic.
[02:11]  * duanedesign waves at karni 
[02:11] <AJenbo> duanedesign, no is there any specific sektion? and are you refering to ubuntuforums.org?
[02:12] <duanedesign> AJenbo: yeah it was on ubuntuforums. Did not have any insight yet, just a user with an issue about bookmarks not syncing
[02:13] <duanedesign> AJenbo: what version of Ubuntu are you using?
[02:17] <AJenbo> duanedesign, it's 10.10
[02:17] <AJenbo> This machine was upgraded from 10.04 the other was from beta
[02:52] <karni> I don't think I've ever eaten supper at 4AM. that's what happens when you sleep till 4PM !
[03:46] <karni> 80 character line limit is killing me. that may be good for Python, but is just no good for Java :<
[14:47] <dougal_> hey guys, quick Q about the StorageProtocol; should MAKE_FILE always have a parent node?  I was assuming that it would, but easy_client.py seems to be generating them with an empty string.
[14:47] <dougal_> Not sure if that's expected behaviour, or if I've broken something :-)
[14:50] <dougal_> __lucio__ ?
[15:05] <dougal_> weekend probably isn't the best time for this type of question...
[15:34] <karni> dougal_: perhaps I can help
[15:34] <dougal_> hey karni
[15:34] <karni> dougal_: I'm using Java for the protocol stuff, however I have some know-how knowledge
[15:35] <karni> dougal_: hey. so, make_file should always have a parent node, yes
[15:35] <dougal_> cool
[15:35] <karni> dougal_: it tells it where should it create the new file
[15:35] <dougal_> ok, that's what I thought
[15:35] <dougal_> doesn't make sense without one ;-P
[15:36] <karni> you say, easy_client is generating them (files?) with an empty string (for the parent?)
[15:36] <dougal_> I'm using java too, just running the python to see how I should behave
[15:36] <karni> dougal_: the parent is the nodeId of the directory you're creating the file in (I'm sure you know that)
[15:36] <dougal_> yup
[15:37] <dougal_> what I'm seeing is
[15:37] <karni> dougal_: this is my call to makeFile in JAva: final Deferred d = makeFile(volume, parent, filename).getDeferred();
[15:37]  * karni is listening
[15:38] <dougal_> C: get_content node=<root node>
[15:38] <dougal_> s: node_attr
[15:38] <dougal_> s:bytes
[15:38] <dougal_> s: EOF
[15:38] <dougal_> c:make_file
[15:38] <karni> I should warn I haven't played with easy_client.py so I'm not sure what c: and s: stand for
[15:38] <karni> c: command?
[15:39] <karni> right
[15:39] <dougal_> c == client, s == server
[15:39] <karni> (or client)
[15:39] <karni> uhm
[15:39] <dougal_> :)
[15:39] <karni> c:make_file (what's next)
[15:39] <dougal_> the full message the client sends is type: MAKE_FILE
[15:39] <dougal_> make {
[15:39] <dougal_>   share: ""
[15:39] <dougal_>   parent_node: ""
[15:39] <dougal_>   name: "0"
[15:39] <dougal_> }
[15:40] <karni> looks like you're not providing some parameters?
[15:40] <karni> dougal_: where can I get the easy_client from
[15:40] <dougal_> After make_file i'm expecting s:new_file, but that never happens - and I'm guessing it's because the client message is malformed
[15:41] <dougal_> it's in the StorageProtocol/samples directory
[15:41] <karni> yes it is. it should be make { share: "share_id_here" parent_node: "parent_id_here" name: "filename" }
[15:41] <karni> and I can see it's empty
[15:41] <karni> from what you're saying
[15:41] <karni> dougal_: if you tell me where I can find the easy client, I may be able to help.
[15:42] <dougal_> it's part of canonical's StorageProtocol distribution:
[15:42] <dougal_> http://bazaar.launchpad.net/~ubuntuone-control-tower/ubuntuone-storage-protocol/trunk/files/head:/samples/?file_id=protocol-20090314184633-4p25gp4a9he1gq2a-23
[15:43] <karni> oh, I have it. let me see.
[15:43] <karni> there it is
[15:43] <dougal_> my python fu is not up to the task :-)
[15:44] <dougal_> I think the 'twisted' library is well named - it seems pretty twisted....
[15:45] <karni> hmm this fails for me.. port_num = int(open("tmp/ubuntuone-api.port").read())
[15:45] <karni> dougal_: dude.. it's twisted like hell xD
[15:46] <karni> dougal_: so, make_file is calling  self.make_file(request.ROOT, self.cwd_id, name) -- which should provide 3 non-empty parameters
[15:46] <dougal_> I had to set the port manually
[15:46] <karni> dougal_: suggestions?
[15:47] <dougal_> towards the bottom of easy_client.py - just before the call to authenticated client.
[15:47] <karni> yea I know, what should be the port number :)?
[15:47] <dougal_> My line numbers are all messed up now
[15:48] <karni> np
[15:48] <dougal_> oh, I think canonicals server only listens on 443?
[15:48] <dougal_> but I think it'll fail to authenticate against the live server...
[15:48] <karni> oh.. xD I thoguht it was using U1/dbus/stuff and used local port.
[15:48] <karni> yes they are
[15:49] <dougal_> nah - this is the wire protocol stuff,.
[15:49] <karni> and setup tokens argh..
[15:49] <karni> I don't think I have time for this game now :(
[15:50] <karni> Gotta code the android app
[15:50] <dougal_> :-)
[15:50] <dougal_> ok
[15:50] <karni> dougal_: you know there's Java implementation of the storage protocol, right?
[15:50] <dougal_> what's the impl you're working on?
[15:50] <dougal_> I didn't know that no.
[15:50] <karni> U1 for android
[15:51] <karni> let me show you the protocol branch
[15:51] <karni> no wonder, it's non-official yet
[15:51] <dougal_> ahh - cool
[15:51] <dougal_> :)
[15:51] <karni> dougal_: have fun! https://code.launchpad.net/~verterok/+junk/ubuntuone-java-storageprotocol
[15:52] <karni> dougal_: don't let that +junk mislead you. although it's not complete, it's functional.
[15:52] <dougal_> hehe
[15:52] <dougal_> will pull it down and have a play - Thanks for your help!
[15:53] <karni> you're welcome
[17:40] <bobbyj> hello
[19:27] <dougal_> heh: karni - i managed to sort my problem.
[19:27] <karni> dougal_: awesome :)
[19:27] <karni> dougal_: what was wrong?
[19:27] <dougal_> dunno what was _wrong_, but I fixed it by adding some extra logging in easy_client
[19:28] <dougal_> I'm not really sure how twisted works, but:
[19:28] <dougal_>  d.addCallback(is_directory)
[19:28] <dougal_>  d.addCallback(skip_result, log, "is_directory %s returned." %d)
[19:28] <dougal_>  return d
[19:29] <dougal_> without that middle line it sends an empty parent, with it, i get the correct node.
[19:30] <karni> dougal_: whatever whas the d deferred, when it's done, the is_directory will be called, and then skip_result will be called. each one forwards the result to the next one.
[19:30] <dougal_> yeah - so i thought the skipresult would do nothing but log
[19:30] <dougal_> so that middle line should have no effect on execution
[19:30] <karni> dougal_: it's a bit different in python (I see some additional parameters), not sure what they do but looks like plain logging.
[19:31] <karni> I'm not sure, it's a little out of context..
[19:34] <dougal_> it's the is_directory call in easy_client.py
[19:34] <dougal_> I added it to see what was being returned by the is_directory callback - it's supposed to be the directory node we're about to create the new file in
[19:34] <karni> but the d must have came from somewhere :)
[19:34] <dougal_>             d = self._get_content(parent)
[19:35] <karni> i thought we were trying to make a file, not to download a file ;)
[19:35] <karni> anyway, gotta leave, quite busy time for me :<
[19:36] <karni> dougal_: I'm glad you're making progress!
[19:36] <karni> looks like that easy_client is not that easy (at least with no documentation (?) )
[19:36] <dougal_> it's trying to create a file in a specific directory, so it gets the directory to check it actually is a directory...
[19:36] <karni> I see
[19:36] <dougal_> might just be that I'm unfamiliar wit the python
[19:37] <dougal_> but heh - thanks for your help
[19:37] <karni> didn't help much! you managed on your own
[19:37] <dougal_> :-)
[19:37] <dougal_> I look forward to seeing the android storageprotocol client!
[19:39] <karni> dougal_: the Java storageprotocol client works fine on android, it's the whole rest around that :) thank you!
[19:43] <dougal_> Well, i'm really interested, but will stop distracting you.  Thanks again.
[19:44] <karni> dougal_: Have a great day/evening :)
[19:45] <karni> dougal_: You can always ping me on #ubuntuone
[23:21] <VmKid> hi
[23:21] <VmKid> Can someone help me? I didn't get the sign-up e-mail.
[23:24] <arch_is_awesome> Hey, I was wondering why ubuntu one syncs my contacts twice on iPhone.
[23:25] <karni> VmKid: arch_is_awesome: How should I say this. Middle of the weekend is not the best moment to ask :( Try on monday and you'll definitely get some attention!
[23:25] <karni> just a regular user saying.
[23:25] <VmKid> I didn't think so. I'll try signing up again later.
[23:25] <VmKid> I can't blame people
[23:26] <karni> VmKid: sure, try again :)
[23:26] <arch_is_awesome> I see, the problem its this is very important and it needs to be done now.
[23:26] <karni> VmKid: but asking is fine :)
[23:26] <arch_is_awesome> Should I ask in #ubuntu?
[23:26] <karni> arch_is_awesome: Not really, this is the best place to ask.
[23:26] <VmKid> That's how I got Ubuntu set up in the first place. pure stubbornness and a new install disc.
[23:27] <karni> VmKid: :)
[23:27] <karni> arch_is_awesome: Unless you have paid plan and start poking people on the channel, you won't get much help. It's ~0:00 Sat/Sun weekend in Europe, and afternoon in US.
[23:28] <karni> arch_is_awesome: I'm sorry, but I don't think I can help you with the contact sync (I'm not much into Funambol at the moment)
[23:30] <arch_is_awesome> It is about 6:30 EST Now (GMT-5)
[23:32] <arch_is_awesome> Okay then bye
[23:32] <karni> bye bye
[23:38] <arch_is_awesome> bazhang: I am now.
[23:40] <arch_is_awesome> Oh yes, also the ubuntu one music streaming stops in the middle of playing something
[23:41] <arch_is_awesome> bazhang: still there?
[23:41] <bazhang> arch_is_awesome, repeat your question, and be patient
[23:42] <arch_is_awesome> Okay then, when I add a contact via the web interface it works...
[23:42] <arch_is_awesome> but then when I sync the contact using an iPhone it gets downloaded twice...
[23:42] <arch_is_awesome> which makes it so that I have two of the same contact.
[23:42] <arch_is_awesome> btw, thanks for the halp.
[23:42] <arch_is_awesome> halp = help
[23:43] <arch_is_awesome> oop
[23:43] <arch_is_awesome> s
[23:43] <arch_is_awesome> Afterwards I also need help with another thing (if you have the time): The ubuntu one music streaming stops in the middle of playing something
[23:43] <arch_is_awesome> Thanks in advance
[23:45] <karni> CardinalFang: maybe you'll be able to help if that msg survives when you come by ↑
[23:47] <CardinalFang> arch_is_awesome, karni, we have found a problem with the streaming on the server end.  We think we'll have it solved in the next few days.
[23:48] <karni> arch_is_awesome: fire the question about iPhone as long as the dev's here ;)
[23:48] <karni> "Hey, I was wondering why ubuntu one syncs my contacts twice on iPhone."
[23:48] <CardinalFang> It has something to do with the timeout of threads.  Download at full speed works, but a congested connection takes too long and the connection is reaped before it's finished.
[23:48] <karni> looks like he's away.
[23:48] <karni> CardinalFang: thanks for dropping by
[23:48] <arch_is_awesome> Thanks CardinalFang
[23:50] <arch_is_awesome> Phone -> web works fine
[23:50] <CardinalFang> arch_is_awesome, sorry, I don't know anything of the internals of the iPhone app.
[23:50] <arch_is_awesome> I don't like the iPhone anyway, actually it isn't even mine! :/
[23:51]  * arch_is_awesome = :/
[23:51] <arch_is_awesome> So, shouldn
[23:51] <arch_is_awesome> 't it work with fanambol?