User:Which Linden/Office Hours/2009 May 21
Jump to navigation
Jump to search
Agh this is all messed up for my chat -- I used an old viewer and that confused the wikifier
- [11:07] Morgaine Dinova: 'Morning all :-)
- [11:07] You: Good: morning!
- [11:07] You: Sorry: I'm late
- [11:08] You: Has: anyone gotten the snowglobe viewer running on the mac?
- [11:09] Latif Khalifa: sai is the only mac user here :)
- [11:10] You: ha: ha, yeah, we already did the secret mac user handshake
- [11:11] You: So.....any: more questions about the topics from the last two weeks
- [11:11] You: ?:
- [11:11] Which Linden: suspects everyone is AFK from waiting for him to arrive
- [11:11] ATechwolf Foxclaw: returns
- [11:12] koen3 Bing: not everyyone
- [11:12] ATechwolf Foxclaw: I'me here using the just built RC2 on my linux box.
- [11:12] You: oh: nice -- how's it working?
- [11:12] You: the: "normal" RC is still downloading for me
- [11:13] Mojito Sorbet: I have RC2 on Linux too
- [11:13] Mojito Sorbet: Music streaming broke again
- [11:13] Morgaine Dinova: Don't think we had covered all of SL's forms of messaging, we had lots of "Don't know"s.
- [11:13] ATechwolf Foxclaw: I patch and build a 64 bit version. No gstreamer issues here.
- [11:14] Morgaine Dinova: Oh, one should add OGP's IM to the list ... another "Don't know" :-)
- [11:14] Mojito Sorbet: 32bit 2.23.1 worked when I disabled OpenAL and used FMOD.
- [11:14] Mojito Sorbet: sorry 1.23.1
- [11:14] ATechwolf Foxclaw: I got over 90fps peak. Average 60fps plus. Very high for me. I usally average 40 or below.
- [11:14] You: What: forms of messaging did we not cover morgaine?
- [11:15] Morgaine Dinova: There is no gstreamer issue when you make a 64-bit build. Gstreamer is only an issue when you run a 32-bit build on a 64-bit system under emulation.
- [11:15] You: Wow,: that's a high FPS man
- [11:15] Which Linden: is currently rocking 18 FPS
- [11:15] ATechwolf Foxclaw: Graphics Card: GeForce GTX 260/PCI/SSE2
- OpenGL Version: 3.0.0 NVIDIA 180.51
- [11:16] Aimee Trescothick: oops, was away sorting out my laundry :D I'm running Snowglobe on Mac here too
- [11:17] Morgaine Dinova: Well most were "Don't know" :-)
- [11:17] You: Well: we got answers for 1) 1:1 IM, 2) group/conference chat 3) group notifications and 4) local chat
- [11:17] Morgaine Dinova: Both the group notice and system notification were "Don't know" I think.
- [11:18] You: Oh: system notification, that's just a glorified IM
- [11:18] You: 11: IM that is
- [11:18] You: Same: mechanism.
- [11:19] You: the: online/offline status notifications you get are the same as well, I believe
- [11:20] You: If: I may move on to a new topic
- [11:20] ATechwolf Foxclaw: I need to read up on the snowglobe thing. Is it the http-texture branch or was a new branch started? (/me counts how many brances there is now....)
- [11:21] You: ATechwolf: I think it's http-texture just rebranded
- [11:21] Aimee Trescothick: still http-texture at the moment
- [11:21] You: A: while ago, Sai brought up the notion of collaborative whiteboarding in SL
- [11:21] You: Which: I think is totally awesome
- [11:22] Mojito Sorbet: That would be VERY useful
- [11:23] Morgaine Dinova: I think it should be native in SL.
- [11:23] Xaria Mistwallow: many people this time i see
- [11:23] Xaria Mistwallow: hi all
- [11:23] You: What: I was thinking is that I think there's some sort of generic collaboration algorithm that's possible
- [11:23] You: Hi: Xaria
- [11:24] Xaria Mistwallow: nice talk going on @ Jack's meeting, people complaining about those bots being banned
- [11:24] Latif Khalifa: ludittes
- [11:24] Xaria Mistwallow: they dont even realise its better for everyone and the SL economy
- [11:24] Morgaine Dinova: Who is running a bad AO script? "[11:23
- [11:25] Mojito Sorbet: People COMPLAINING about banning bots??
- [11:25] ATechwolf Foxclaw: Probletty someone over on help island.
- [11:25] Xaria Mistwallow: yup
- [11:25] Xaria Mistwallow: alot of people there
- [11:25] Mojito Sorbet: How many of them ARE bots?
- [11:25] Xaria Mistwallow: angry about LL trying to ban the avitars that serve as bots
- [11:25] Latif Khalifa: yeah new policy: camping chairs are outlawed
- [11:25] Mojito Sorbet: hooray
- [11:26] Latif Khalifa: well soon nothing will be allowed lol
- [11:26] Xaria Mistwallow: they dont even realise those things cause a lot of problems and hurt the SL economy badly
- [11:26] Latif Khalifa: what causes problems?
- [11:26] Mojito Sorbet: I have seen useful bots serving as models in a clothing store, where you can select which outfit they wear. Other than that, dump 'em
- [11:26] Xaria Mistwallow: not to mention that they are grievers while using those
- [11:26] You: ok,: well, not to squelch discussion but land policy isn't really the theme of these OH
- [11:26] Mojito Sorbet: Yes, I wpould like to hear more about this whiteboard thing
- [11:26] Xaria Mistwallow: new players dont ge their chance for lucky chairs most of the time, or camping chairs for that matter
- [11:27] Xaria Mistwallow: let we go talk about Which's topics now
- [11:28] Latif Khalifa: well its kind of silent....
- [11:28] Xaria Mistwallow: I'm Sorry! for that Which, kinda getting annoyed of people that dont realise the truth
- [11:28] Latif Khalifa: lol
- [11:29] You: Hah....sorry: myself...busy day here, I keep getting distracted
- [11:29] Xaria Mistwallow: you aint the only one being busy Which! :D
- [11:29] Matheus Woodford: hello
- [11:29] You: The: thing about the generic algorithm is that I feel, just intuitively, that a lot of these collaboration problems are similar in nature and thus could be solved in a generic way
- [11:30] You: Hi: Matheus
- [11:30] Xaria Mistwallow: I been doing alot of bug tracing today
- [11:30] Aimee Trescothick: puts her feet up and relaxes to watch everyone else get busy
- [11:30] Mojito Sorbet: Collaborative building seems to be just a by-product of the way editing works.
- [11:31] You: In: general, the "collaboration problem" is one of a) getting state changes distributed quickly amongst participants and b) dealing with the fact that everyone's modifications are possibly against an out-of-date copy of the state
- [11:32] You: Mojito: well, in sl it's actually quite deliberate -- the build system was designed as it was specifically to facilitate collaboration
- [11:32] Mojito Sorbet: Is there anything in that that could be taken as a model for collaboration generally?
- [11:32] You: Not: to derail into a discussion of this specifically, but one major problem with mesh import is that it's not clear how to do that collaboratively, if at all
- [11:33] You: Mojito: research has been done in this area
- [11:33] Mojito Sorbet: ok
- [11:33] Morgaine Dinova: But since that collaboration has turned out to be at least an order of magnitude for collaborative 2D whiteboarding, I think this needs a special case, and hence direct support.
- [11:33] Morgaine Dinova: order of magnitde too slow*
- [11:34] You: yeah,: the way we do collaboration in SL is synchronous, and it does 1) ok but 2) not so well
- [11:35] You: There's: some papers on doing state sync when each party is modifying simultaneously
- [11:35] You: http//neil.fraser.name/writing/sync/:
- [11:35] You: is: one that's essentially diff-based
- [11:36] You: there's: this abstract: [1]
- [11:36] Xaria Mistwallow: lol, all to much text for me :p
- [11:36] You: Jupiter: is a name that comes up a lot: [2]
- [11:36] You: ok: last one: [3]
- [11:37] You: It's: linkdump time! :-)
- [11:38] You: I: pretty much see people starting from text editing and then generalizing to larger problems if at all
- [11:38] Xaria Mistwallow: lol, ill keep to translating for the time being, got enough to do for 1.23.4
- [11:38] Xaria Mistwallow: euhm... .3
- [11:40] You: heh: yeah this is pretty high-concept shit
- [11:40] You: but: basically there seems to be a pattern in all this
- [11:40] Mojito Sorbet: It needs to include some kindn of graphics from day 1
- [11:41] Xaria Mistwallow: on my main avi im doing translations for the Dutch language, we ran into alot of problems, some of the windows actually had to be made bigger and changed so it would all fit propperly
- [11:41] Xaria Mistwallow: we still working on that
- [11:41] You: the: pattern is: there's a server or servers which send and receive deltas to/from the clients; and each delta has the property that it can be moved around in the stream and not lose its meaning
- [11:42] You: Xaria: wow, yeah, localization is very hard, mad props for that
- [11:42] Mojito Sorbet: I guess picking the right set of "objects" that the delta is done on is key.
- [11:42] Xaria Mistwallow: besides that, one of the 1.23 bugs has been appearing again, looks like the server isnt taking the fix for it, so that needs to be done aswell
- [11:42] Xaria Mistwallow: 15 new languages if i aitn mistakken
- [11:42] Xaria Mistwallow: mistaken*
- [11:44] You: Mojito: yeah; I think that one could develop a framework that would allow application writers to just focus on the semantics of the state structure and the deltas therof
- [11:45] Morgaine Dinova: So what do you do when one contributor makes a delta with respect to her outdated global state, and then you try to apply that to the current known state and it's different?
- [11:45] You: Morgaine: well that's the trick innit
- [11:46] Morgaine Dinova: Without theoretical backing, yep, that's the trick. :-) But what do those theory papers suggest is the solution?
- [11:47] You: One: of them (don't remember which) proposes that there are mathematically reorderable transformations that you can apply
- [11:47] Morgaine Dinova: Invariant despite reordering?
- [11:48] You: I: don't remember the details of how they actually looked in practice, but I can imagine that they might work a bit like, in a text document, being like "insert the text "New Text" at line 32 position 3"
- [11:48] You: if: some other collaborator adds text at line 32 position 2, then yuor stuff may get interleaved, but at least it's consistent
- [11:49] You: that's: not actually reorderable though
- [11:49] Morgaine Dinova: That's not invariant. There might have been an extra bunch of lines added before line 32 recently.
- [11:49] You: yeah,: so the order matters in that case
- [11:49] You: I: don't understand this very well, obviously!
- [11:50] You: But: basically the overall goal is so that if one client sees updates A,B,C and another sees C,A,B, they both end up with the same resultant state
- [11:50] Xaria Mistwallow: i dont even understand the first thing, but ow well :p
- [11:50] Morgaine Dinova: For the whiteboard, it's actually a lot simpler, because you're not trying to solve everything. Just provide small, randomly interacting updates that can be applied rapidly, and let humans sort out races.
- [11:51] You: it: is easier if the updates are server-mediated, because then you can guarantee that updates are delivered in the same order to all clients
- [11:52] You: but: then you have latency issues, because no client can see their own update without a full round-trip to the server
- [11:52] Morgaine Dinova: Assuming you don't use UDP, yeah :P
- [11:52] Latif Khalifa: lol
- [11:53] You: no: matter what networking technology you use
- [11:55] You: if: I change a text block to say "Which wuz here" and you change it at the same time to say "Morgaine Rulez", if our clients apply those changes without first waiting for the server to mediate, then we could end up seeing different whiteboards on our screens
- [11:55] You: And: that wouldn't be very collaborative
- [11:55] Mojito Sorbet: If the updateable objects are at all non-trivial,, it takles a bit of time to crearte them before they are sent. Like "draw a gren circle here, or radius 3"
- [11:56] Mojito Sorbet: draw a *green cirlce here *of radius 3
- [11:56] You: you: mean render lag? Or just that if your delta is massive data-wise?
- [11:56] Mojito Sorbet: I cant even send it until I have specified that somehow, graphically on my end
- [11:56] Morgaine Dinova: I disagree that it wouldn't be collaborative. It would be collaborative as long as you update everyone to the same consistent state promptly.
- [11:56] You: it: could be that your delta is "paste contents of war + peace into this portion of the board"
- [11:57] Mojito Sorbet: More likely, put texture X there
- [11:57] You: Morgaine: yeah, true, so I guess one way of doing it is the clients do their updates as they are made, and the server sends down "true" state and if that conflicts with the client's state, it would toss the client-generated state
- [11:58] You: So....that: is to say when you change the text box to "Morgaine Rulez" that text shows up on your screen immediately, but if the server decides that the text "Which wuz here" is the ultimate final state, then when that update propagates to your client it clobbers "Morgaine Rulez"
- [11:59] Morgaine Dinova: Yep, and the resulting loss of update wouldn't be perceived as any different to being overwritten by someone else, which is perfectly valid.
- [11:59] You: I: believe this would be called "client side prediction"
- [12:00] Xaria Mistwallow: accepted your inventory offer.
- [12:00] You: That's: how google docs works, I believe
- [12:00] Morgaine Dinova: Don't think it needs prediction.
- [12:00] You: Well,: when the client shows you "Morgaine Rulez" on your screen right away, that's a prediction that the server will say that
- [12:01] You: In: truth the server might decide that your update is naff and no one else will ever see that text, so the prediction could be wrong
- [12:01] You: Same: thing for multiplayer games; they do exactly that
- [12:02] You: They: play the animation that you shot that guy in the head, but oops the server's state showed that he dodged, therefore, he's back alive again
- [12:02] Morgaine Dinova: But it's also an acknowledgement that someone may overwrite it with something else. And if my line never appears at all as a result of conflict resolution, then that exactly equivalent to it having appeared briefly and then been overwritten by another.
- [12:03] Morgaine Dinova: It just needs terminal events (like death on being hit by a bullet) to be deferred for a quantum.
- [12:04] Morgaine Dinova: Since resurrection is not typically a regular event in most systems.
- [12:05] You: Yeah...so: I guess that's one of those application logic things
- [12:06] You: ok....I: should run, thank you all for your patience with my ramblings
- [12:06] Xaria Mistwallow: tnx for this meeting which!
- [12:06] Aimee Trescothick: thanks which :)
- [12:06] Morgaine Dinova: One useful heuristic to apply is update queue reordering: send updates to the most recent updater first, before updating those who haven't sent an update recently.
- [12:06] ATechwolf Foxclaw: I just found Prospero Linden is no longer at LL. See you later Witch.
- [12:07] Aimee Trescothick: oh, another unlinden?
- [12:07] You: Morgaine: yes good optimization
- [12:07] You: ATechwolf: ?!!?!?
- [12:07] You: OK,: that's the final word!
- [12:07] You: -):