https://wave.google.com/a/wavesandbox.com/#restored:wave:wavesandbox.com!w%252BmO3w_w9KA
[CLOSED] Office Hours: December 10, 2009 Welcome to API office hours! *Please top post your question or comment about the robot, gadget, or embed API to make sure we see it. You can do so by replying to this blip.* *A transcript of this wave will be made publicly available. If you don't want to appear in the transcript, delete your blip after getting a response. Be careful not to remove neighboring blips.* *And don't add robots to this wave!* Reply Edit Dec 9 Pontus Leitzler: To get this kind of more on-topic :).. Austin talked about some new features for active robots in the group. Have any more info about what will be possible to do with it? I know you can't give a ETA but it would be nice with some more hints about features ;) Reply Edit Dec 9 Pamela Fox: Basically, you can perform operations at any time, without having to be triggered by an event. What specific ability are you looking for? Reply Edit Dec 9 Pontus Leitzler: Well as I see it now kind of everything is triggered using events (in AppEngine) or cronjobs that triggers events. How does this active thing work? Reply Edit Dec 9 Pamela Fox: The robot cron mechanism doesn't really work now. (It's quite flaky). With this API, you could use normal App Engine cron jobs. You authenticate your robot using Oauth, and after storing the oauth info, you are allowed to perform operations. Reply Edit Dec 9 Pontus Leitzler: Ah, sweet, kind of a external API then. Speaking about OAuth, I asked for a more.. user firendly documentation (or examples) of how to use OAuth a few office hour's ago. Know anything about it there are new examples coming up too? I find it a bit complicated to get it working (for google docs in this case). Reply Edit Dec 9 Pamela Fox: Are you trying to authenticate a user to their gdocs account in a gadget popup or such? Reply Edit Dec 9 Pontus Leitzler: No I want a robot on app engine to access my private calendar (only my own) without having to put my username & password in plain text in the source files. Reply Edit Dec 9 Pamela Fox: Ah, I see, so ClientLogin is out. Let me see if there's some sample code out there that does that. Java/Python? Reply Edit Dec 9 Pontus Leitzler: Java Reply Edit Dec 9 Pamela Fox: Looking-- Did you already checkout the Oauth Java sample in the SDK? Reply Edit Dec 9 Pontus Leitzler: Hm, I've been reading a few pages but I guess my understanding is a bit.. lacking.. I don't know if I've read the specific SDK samples. I've started out with the access Calendar using GData "guide" but I can't connect those to the generic "using OAuth" guide.. Hm.. Reply Edit Dec 9 Pamela Fox: I have to admit, I usually take the ClientLogin route as it's a bit easier, but there are a few Oauth/Authsub samples- AuthSub: http://code.google.com/p/googleappengine/source/browse/#svn/trunk/java/demos/contactsapi/src/com/google/appengine/demos/contactsapi My colleague says AuthSub would be simpler, and that sample looks easier to look through than the other one, so maybe you would be better taking a look @ that. Reply Edit Dec 9 Pontus Leitzler: Oh thanks.. I'll check it out :) Reply Edit Dec 9 Pamela Fox: I'm guessing you'll want to adapt that so that there's an admin interface for just grabbing and storing your token, and you can either hardcode the token or store it in your datastore. Colleague also recommends this article: http://code.google.com/apis/analytics/docs/gdata/gdataAppEngine.html Reply Edit Dec 9 Pontus Leitzler: Yeah, I'll give it some time when I'm not at work ;).. When we are a bit off topic already. There are a few different feeds to access in calendar (default, allcalendars, owncalendars). Are there any documentation on all those and the difference? I only see them in different samples and so far I've had to do the trial-and-error coding :) Reply Edit Dec 9 Pamela Fox: http://code.google.com/apis/calendar/data/2.0/reference.html#Calendar_feeds That link looks like the thing I was looking for! Thanks a bunch, give him/her a hug from me! Reply Edit Dec 9 Pamela Fox: Nick is quite huggable, will let him know. Reply Edit Dec 9 Vikram Dhillon: I can help out with documentation but one question where should it go to ? Is there a page for community based docs. Reply Edit Dec 9 Pamela Fox: There's no formal place. You could post a link to a wave in the group, write blog posts, etc. Reply Edit Dec 9 Guoqian Jiang: Pamela, we mentioned DataBlip idea in this group. We assume to map external data structure e.g. a tree strucutre into wave blips and have a UI layer to access the data in some way. Is it possible? What do you think? Reply Edit Dec 9 Pamela Fox: Ah yes, that was a good discussion. You could store some XML in a datadocument, and use a robot/gadget combination to visualize that. Would that work? Reply Edit Dec 9 Guoqian Jiang: Is there a link or document about the schema of the xml data document? Reply Edit Dec 9 Pamela Fox: We expose the data documents in the API as simply a key/value has map, where each of those is strings. But you could make some XML, serialize it, and store it in a doc. I think the question is whether you need some collaboration on that data. Remind me of the use case again? Reply Edit Dec 9 Guoqian Jiang: Yes, we need collaboration of that data. The use case is to collaboratively curate a tree structure Reply Edit Dec 9 Pamela Fox: Okay, and what was the reason for not storing it in gadget state? (Security?) Reply Edit Dec 9 Guoqian Jiang: I think the core question is how to fully leverage the built-in wave feature to resolve the conflicts. Reply Edit Dec 9 Pamela Fox: Well, so, what do you want to happen if, for example, 2 people move the same node at the same time? Reply Edit Dec 9 Guoqian Jiang: Yes, that is a typical use case. What I want to say is that the UI layer code may not need worry about the potential conflicts if we get the data mapped to blips. Reply Edit Dec 9 Pamela Fox: The thing is that Wave isn't going to resolve conflicts on structural data - it's good at merging insert/delete operations on text from humans, but you don't want it to do insert/delete on data structure attributes. What I suggest, however, is figuring out how to split up your data into the parts that you want people to be able to modify independently, and create keys in the data structure that map to those. For example, a tree structure might be: treeitem-ID1234-title treeitem-ID1234-parent treeitem-ID1234-color treeitem-ID4567-title ... Then, people can change each of those attributes separately, and not run into eachother. If two people try to modify the color at the same time, the last change would be the one that counted. Or, you could track when each change was made, and take that persons change. (If doing that, you should do a map with participant name in the key). Reply Edit Dec 9 Guoqian Jiang: Thanks. This is very helpful. Reply Edit Dec 9 Pamela Fox: Sure. This might be how the mind map gadget stores its state. I haven't looked at it's code, but I would recommend you check it out. Reply Edit Dec 9 Douglas Linder: you might be able to use a private wavelet to get wave to resolve this for you. Reply Edit Dec 9 Pamela Fox: How so? Reply Edit Dec 9 Douglas Linder: Vaguely; push the tree structure into blips and make a robot post blips as you get changes in the gadget, then back propogate the blip structure that results into the gadget. ... although, I guess you'd need multiple robots to duplicate the multiple users. Reply Edit Dec 9 Pamela Fox: I see- you're using blips as basically keys in a hash map. I think you would be better off using data documents or gadget state, as blips are a bit heavyweight. Reply Edit Dec 9 Douglas Linder: True; just saying, you probably could do it that way... Reply Edit Dec 9 Pamela Fox: Robots can't actually create private wavelets right now, by the way. In the future, it would be possible. Reply Edit Dec 9 Douglas Linder: oh. ^_^! well, woops. Ignore me then. Reply Edit Dec 9 Pamela Fox: FYI, for both of you, here are instructions on storing data docs, if you want to do it with a robot instead of a gadget: http://wave-api-faq.appspot.com/#datadocs Reply Edit Dec 9 Guoqian Jiang: Thanks, another quesiton is about adding meta data for a blip. I can see wave support Tags in wave level. Does this work in lower level? Asking this is because users may want to make some queries against blips. Reply Edit Dec 9 Pamela Fox: We don't actually expose tags in the API yet, but it sounds like you want per-blip tags? Reply Edit Dec 9 Guoqian Jiang: Just ask the possibility. I think its good to have this kind of functionality. Reply Edit Dec 9 Pamela Fox: There apparently has been some discussion of having per-blip tags in the Wave data model. In the time-being, you could use a gadget to have users set tags in a blip (or a robot, I suppose). Reply Edit Dec 9 Guoqian Jiang: I think I would like to see the per-blip tags in the wave data model in the future. Reply Edit Dec 9 Pamela Fox: Okay, I would suggest joining the wave-protocol group and discussing it there. Reply Edit Dec 9 Alexandro Jimenez: Coming in a little late, but just real quick, I recently saw this screen shot of the Extension Installer for Tweety, and David Byttow was the one that had created that wave, I was just wondering if the Extension Installer Reply Edit Dec 9 Pontus Leitzler: Good morning (at least here), nice to see familiar faces ^^ Reply Edit Dec 9 Alexandro Jimenez: yeah faces :D getting really late over here for Tweety was the same as on the Google Wave Resources page, so: http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/robots/java/tweety/war/_wave/extension.xml or if it was stored in the app engine itself? Reply Edit Dec 9 Pamela Fox: It seems to be in both places: http://tweety-wave.appspot.com/_wave/extension.xml Reply Edit Dec 9 Alexandro Jimenez: Great that one is much shorter, just fyi, it doesn't have a picture on the Extension Installer any more, and it's also lacking who the owner is, but no biggie, might be that bug that is not letting the robots be showing the contact info Reply Edit Dec 9 Pamela Fox: I think it's using an older version of our installer format. I'll ask author to upgrade. Reply Edit Dec 9 Alexandro Jimenez: great thanks :D Reply Edit Dec 9 Alexandro Jimenez: Just another simple one, are the robots on the Preview video going to be working soon, like Rosy Etta (where doesn't respond) Bloggy (which doesn't seem to work like it shows on the preview), and well I think that's all the ones I remember Reply Edit Dec 9 Pamela Fox: Rosy is still under development. Bloggy was using an annotation that is no longer supported. It didn't actually output to Blogger, by the way, so not quite as useful as you might think. But maybe we'll find time to upgrade it Reply Edit Dec 9 Alexandro Jimenez: Alright, just wanted to know if there would be some updates, great job really! I understand there isn't time to update some things, but it really shows the effort when you see a nice list of bugs that have been fixed :D Reply Edit Dec 9 Pamela Fox: We're attempting to prioritize fixes. Thanks for giving us feedback. Reply Edit Dec 9 Vikram Dhillon: Hi all, how's everyone doing Reply Edit Dec 9 Pamela Fox: Good. :) Reply Edit Dec 9 Vikram Dhillon: Pamela, for some reason i don't have a wave account on the preview servers why is that Reply Edit Dec 9 Pamela Fox: Did you sign up? Reply Edit Dec 9 Vikram Dhillon: It says my account hasn't been activated Reply Edit Dec 9 Vikram Dhillon: Yup "Your Google Account has not yet been activated for Google Wave." Reply Edit Dec 9 Pontus Leitzler: Morning ^^.. I had the same message before I got the invite too. Might be something like that? Reply Edit Dec 9 Pamela Fox: The help articles I see about that error mention problems with having multiple Google accounts or a Google apps account. Have you tried all your accounts? Reply Edit Dec 9 Vikram Dhillon: I only have one gmail account and no google apps account Reply Edit Dec 9 Pamela Fox: Did you click on the invite email? Reply Edit Dec 9 Vikram Dhillon: See that's the main problem I never got one, I check all waves and couldn't find it Reply Edit Dec 9 Pamela Fox: So, you signed up to receive one with your gmail account? Reply Edit Dec 9 Vikram Dhillon: Yes :) I got the invite in my gmail account Reply Edit Dec 9 Pamela Fox: What happens when you click the link in your invite? Reply Edit Dec 9 Vikram Dhillon: It takes me to the sandbox sigin page Reply Edit Dec 9 Pamela Fox: That's the sandbox invite, which is unrelated. You need to request Google Wave Preview access separately, and you'll get a separate invite. Reply Edit Dec 9 Vikram Dhillon: ahh, thanks :) so what should I do to get the preview access Reply Edit Dec 9 Pamela Fox: Go to wave.google.com. There should be a link here. Reply Edit Dec 9 Vikram Dhillon: Thanks you are awesome :) Reply Edit Dec 9 Pontus Leitzler: What's your email? I have a few invites to spare on the preview server so I can give you one. Still takes a few days before you get the invite since it's "nominations". Reply Edit Dec 9 Pontus Leitzler: Sent :) Reply Edit Dec 9 Vikram Dhillon: I should have recieved the invite in my email right Reply Edit Dec 9 Cookie Monster: There can be a delay... "they have a lot of stamps to lick". :) It may not be received immediately, as they stagger even those invites that people issue to you. Reply Edit Dec 9 Vikram Dhillon: alright thanks for the info :) Reply Edit Dec 9 Pontus Leitzler: The other friends I've invited had their mail in about 1-4 days. Reply Edit Dec 9 Vikram Dhillon: Thanks, you guys are all awesome :) Reply Edit Dec 9 Guoqian Jiang: Hello, Pamela and everyone, Reply Edit Dec 9 James Purser: Hrmm right now, I'm talking in about 4 waves each connected to a stream at a real world conf, so that's a plus. However I still can't add my fedone account to this wave properly so that's a minus. About average I think -- You received this message because you are subscribed to the Google Groups "Google Wave API" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-wave-api?hl=en.
