User:Zero Linden/Office Hours/2008 June 05

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
  • [8:35] Zero Linden: hello all
  • [8:35] Harleen Gretzky: Hi Zero
  • [8:35] Sheet Spotter: Good morning!
  • [8:36] Rex Cronon: hello everybody
  • [8:36] Saijanai Kuhn: non-stop errors with groupies IM
  • [8:37] Sheet Spotter: chuckles at the pile up over Harleen.
  • [8:37] Zero Linden: well - I'm only running on one cup of coffee..... so no promises
  • [8:38] Elric Ember: lol
  • [8:38] paulie Femto:  :)
  • [8:38] Zha Ewry: winces at a lightly caffeinated Zero
  • [8:38] Saijanai Kuhn: scary
  • [8:38] Sheet Spotter: slips a few chocolate covered espresso beans onto Zero's desk.
  • [8:39] Zero Linden: Well - Welcome to my office hours
  • [8:39] Saijanai Kuhn: spam accomplished
  • [8:39] Zero Linden: Now clearly running on summer time!
  • [8:39] paulie Femto: thanks!
  • [8:39] Zero Linden: As a reminder - transcripts are posted to the public wiki - speak freely - speak in public
  • [8:39] Zero Linden: We are here, as always, to talk about the architecture of SL - present and future (and past if you buy me a beer...)
  • [8:40] Vide Szondi: I'm just here 'cuz of the "spam" (tnx) and my beach is being rolling restarted....
  • [8:40] Courtesan DeCuir: good morning Zero
  • [8:40] Zero Linden: Well, we're happy to have you here, Vide
  • [8:40] Irah Anatine: Hello all:)
  • [8:40] Saijanai Kuhn: o! Good Morning Teacher
  • [8:40] Saijanai Kuhn: is a creature of habit
  • [8:40] Rex Cronon: hiii
  • [8:40] Aria Eichel: Hello
  • [8:40] Zero Linden: Agenda items? We had one from Tuesday: 1) OGP and object formats
  • [8:41] Saijanai Kuhn: Last i heard, Enus still hadn't gotten licensing approval for the test harness.
  • [8:42] Vide Szondi: Well, if you'd be entertained by a stupid question - what's the state of an iPhone client (he asked trying to be topical and current)?
  • [8:42] Zero Linden: 2) Phone clients
  • [8:42] Saijanai Kuhn: several organizations have announced their own, if you check google
  • [8:42] Zero Linden: true
  • [8:42] Zero Linden: that is about all there is to say
  • [8:42] Zero Linden: wait ... i have a link....
  • [8:42] Zha Ewry: 3) Region Handles and location conflation
  • [8:42] Zero Linden: rummages through e-mail
  • [8:43] Vide Szondi: ok, tnx...just thought there might be news given the master's voice happening Monday
  • [8:43] Zero Linden: [1]
  • [8:43] Saijanai Kuhn: and if we ever get the test harness working, a script-based lightweight client is kinda built into the whole thing
  • [8:43] Zero Linden: LL isn't working on an iPhone client
  • [8:43] Zero Linden: though I would use one if there was one
  • [8:43] Vide Szondi: Kewl - thanks!
  • [8:44] j3rry Paine: doesn't have a phone
  • [8:44] Zero Linden: but - I doubt the graphics support in the iPhone is good enough for a full 3D experience rendered directly
  • [8:44] Vicero Lambert: hope it works on windows mobile :-p
  • [8:44] Vide Szondi: (I'm contemplating my first iPhone after years as a Danger addict)
  • [8:44] Zero Linden: but, doing some form of render-on-server-send-compressed-video might work
  • [8:44] Zero Linden: or perhaps some form of limited access client (IM and voice only?)
  • [8:44] Saijanai Kuhn: was thinking that a mini-map with your location marked would be about as good as it gets for a realtime interface
  • [8:45] Stephen Posaner: wants one of these [2]
  • [8:45] Vide Szondi: indeed - that's the kind of thing I hoped for...please - don't let me kidnap the meeting!!
  • [8:46] Saijanai Kuhn: ZSro that's been demonstrated for the iPhone about a 1FPS it looked like
  • [8:46] Dahlia Trimble: has a fujitsu lifebook u10 but the frame rate is kinda low
  • [8:46] j3rry Paine: most sl'ers can't type with their thumbs and anyway, at least one hand is needed for ... other things
  • [8:46] Stephen Posaner: if you text on a smart phone you can do any thing
  • [8:46] Zero Linden: I've met the oqo folks - really smart people and very pleasant to hang out with - not your typical silicon valley geek
  • [8:47] Zero Linden: (mind you, I am more the typical silicon valley geek, myself....)
  • [8:47] Zero Linden: Okay - '
  • [8:47] Zero Linden: well
  • [8:47] Saijanai Kuhn: says the guy who majored in computer music
  • [8:47] Zero Linden: Let's go
  • [8:47] Zero Linden: topic 1 was OGP and object formats
  • [8:47] Zero Linden: SO
  • [8:47] Zero Linden: The first thing that comes to my mind (and what I said on Tuesday)
  • [8:48] Zero Linden: is that OGP should just use some content-negotiation like sequence to agree on
  • [8:48] Zero Linden: MIME-type between any two
  • [8:48] Zero Linden: parts of the dialog (viewer and region, viewer and agent domain, agent domain and region)
  • [8:48] Saijanai Kuhn: OGP ==> https://wiki.secondlife.com/wiki/SLGOGP_Draft_1
  • [8:49] Zero Linden: The only question comes- at what scale do you do this negotiation
  • [8:49] Zero Linden: at start up?
  • [8:49] Zero Linden: for each object transferred?
  • [8:49] Saijanai Kuhn: I'd say, at the point where AD starts talking to current grid about rezzing avatar
  • [8:49] Zero Linden: If they are assets - as we expect assets to be transferred as standard HTTP resources
  • [8:49] Zero Linden: there is already content negotiation built in
  • [8:50] Zero Linden: "current grid" ?
  • [8:50] Saijanai Kuhn: region domain
  • [8:50] Zero Linden: So - you're saying - when a viewer connects to a region, the viewer and the region content negotiate acceptable object formats?
  • [8:50] Zero Linden: seems reasonable
  • [8:52] Saijanai Kuhn: part of the optimal aspect of getting onto the grid. AD asks: anything special? And the grid replies: I handle this object forma, this extra IM format, etc...
  • [8:52] Zha Ewry: With some oddities about adjacent regions
  • [8:52] Zha Ewry: Its going to be really hard, if the set of child agents and content is coherent
  • [8:53] Zero Linden: s/if/unless/ ??
  • [8:54] Zero Linden: So, in some cases
  • [8:54] Zero Linden: format can be handled by cap request
  • [8:54] Zero Linden: for example
  • [8:55] Zero Linden: I'd imagine that we'd define an initial IM set of resources
  • [8:55] Zero Linden: If later we had "augmented-IM" with more features that couldn't be done via direct extension of the current protocol
  • [8:55] Zero Linden: that we'd do it by saying - well, ask for resource IM2 from the seed cap
  • [8:55] Zero Linden: and if you don't get that, then fall back to IM
  • [8:56] Zero Linden: I think the only times we'd prefer a content type negotiation separate from the resource cap request
  • [8:56] Zero Linden: is when the protocol is sufficiently involved... and where the protocol doesn't really change at all due to the content following over it
  • [8:56] Zero Linden: So, for example
  • [8:57] Zero Linden: Object data -- initial parameters and update messages -- squarely fall into this camp
  • [8:57] Zero Linden: Texture data too --
  • [8:57] Zero Linden: Animations and Sound
  • [8:57] Zero Linden: but - I'm not sure what else
  • [9:00] Zero Linden: okay - we seem in silent understanding
  • [9:00] Zero Linden:  :-)
  • [9:00] Zero Linden: so - moving on
  • [9:00] Zero Linden: 2) was phone clients and I think we handled that
  • [9:00] Zero Linden: so
  • [9:00] Zero Linden: 3) Region Handles and location conflation
  • [9:01] Zero Linden: Zha?
  • [9:01] Morgaine Dinova: Good word, "conflation". Can mean anything you want ;-)
  • [9:02] Sheet Spotter: thinks it means Zha needs more coffee too.
  • [9:02] Sheet Spotter: [3]
  • [9:02] Zha Ewry: Ahh
  • [9:02] Zha Ewry: No
  • [9:02] Zha Ewry: It means I'm deep in code
  • [9:02] Tao Takashi: Hi
  • [9:02] Zha Ewry: so...
  • [9:02] Zha Ewry: When we do a place_avatar
  • [9:03] Zha Ewry: the region hands the client back a location_x, locatoin_y
  • [9:03] Zha Ewry: the region hands the client back a location_x, locatoin_y
  • [9:03] Zha Ewry: And.. from this the client builds a region handle
  • [9:03] Zha Ewry: thus locking together the handle creation scheme and the current x/y map
  • [9:04] Zha Ewry: conflating, what it, in many ways, a private issue between the sims in a grid (handles) and the map (which might also be a private issue in a grid)
  • [9:04] Zero Linden: Hmmm.... that is a good catch
  • [9:04] Zha Ewry: chuckles
  • [9:04] Zha Ewry: turns out opensim builds handles differently
  • [9:04] Zha Ewry: Sort of hits you in the face with a 2x4 when you get into the code
  • [9:04] Zero Linden: I actually quested the region info being in the place_avatar message and have suggested that we have a region_info cap that returns such stuff on demand
  • [9:04] Zero Linden: demand
  • [9:04] Zero Linden: SO
  • [9:05] Zha Ewry: Well, we could just as easily
  • [9:05] Zero Linden: In one view of a grand glorious world - there is ONE MAP TO RULE THEM ALL
  • [9:05] Zha Ewry: pass the region handle back
  • [9:05] Zha Ewry: Even if there is one map
  • [9:05] Zero Linden: which means that all region domains would need to be registered somewhere
  • [9:05] Zha Ewry: you still don't want the handle to be calculated
  • [9:05] Zha Ewry: That REALLY constrains the use of it as an opaque token
  • [9:05] Zero Linden: and then --- I suppose it would be up to the agent domain to enforce that the region coord's returned by the region were within its
  • [9:05] Zero Linden: registered region domain's area
  • [9:06] Zero Linden: Ah - you mean within the client itself? gotcha
  • [9:06] Zero Linden: so - the client kinda wants to know if it has a connection, handle, whatever to a particular region already
  • [9:06] Zero Linden: if it relied on each region to announce to it the Cartesian neighbors
  • [9:07] Zero Linden: then - well, what if they didn't agree?
  • [9:07] Zero Linden: the viewer might end up with two handles to two to regions that occupy the same area
  • [9:07] Zha Ewry: Well.. I think.. and we can bat this about a bit
  • [9:07] Zha Ewry: The question is pretty much how we think of the handle
  • [9:08] Morgaine Dinova: Zero: that almost philosophy, but a good point. In a virtual universe, do locations all have absolute locators, or are they inherently granular, with inner (hidden) locators that require querying a node in the tree for local access?
  • [9:08] Zha Ewry: Is it opaque, or does it convey specific meaning?
  • [9:08] Morgaine Dinova: In RL, everything has an absolute locator
  • [9:08] Zha Ewry: If it has implicit structure (and the message of URIs and the web, is NO!) then you have to document it, and live with it. Which is generally bad
  • [9:10] Sheet Spotter: I assumed a region had a URI to describe its location, and an agent had a URI to describe its relative position within the region.
  • [9:10] Morgaine Dinova: The concept of documentation is broken. Everything has to self-document, or the documentation scale.
  • [9:10] Morgaine Dinova: doesn't scale*
  • [9:11] Zha Ewry: There are these lovely handles
  • [9:11] Zha Ewry: 64 bits
  • [9:11] Saijanai Kuhn: but we're talking about CAPs here, no?
  • [9:11] Tao Takashi: what's in this handle anyway? and what is it used for?
  • [9:11] Tao Takashi: I am not so much in the code right now ;-)
  • [9:11] Zero Linden: the handle is a reference to the information the viewer has about a region
  • [9:12] Zero Linden: So -
  • [9:12] Zero Linden: for example
  • [9:12] Morgaine Dinova: Sheet: if that URI refers to the region, then the URI is not an absolute locator, it's a relative one
  • [9:12] Zero Linden: the viewer stores internally, after TP to a region at 100,100
  • [9:12] Zero Linden: Handle(100,100) --> region URL, region IP/Port, queues, terrain ......
  • [9:12] Tao Takashi: ok, but that's more an implementation issue then?
  • [9:13] Zero Linden: then when it sees into the region to the north
  • [9:13] Zero Linden: it constructs handle(100,101)
  • [9:13] Zero Linden: Now
  • [9:13] Zero Linden: when you TP (or cross) into that region
  • [9:13] Zero Linden: the viewer says
  • [9:13] Tao Takashi: so 100,100 is the position of a region on the map then
  • [9:13] Zero Linden: "hey - I can see into the region to the south)
  • [9:13] Zero Linden: (yes, Tao)
  • [9:13] Morgaine Dinova: Personally, I don't think that absolute locators have a future in virtual worlds. So, all locators must contain a region reference, using the widest possible meaning of "region"
  • [9:13] Zha Ewry: And, this bakes in some pretty deep map assumptions
  • [9:13] Zero Linden: And that is at 100,100
  • [9:14] Zero Linden: let's see if Have info about Handle(100,100)
  • [9:14] Zero Linden: Oh - look - there it is
  • [9:14] Zero Linden: In other words, it doesn't ask the current region for what is the region to the south - because it bakes the map assumption into it
  • [9:15] Tao Takashi: does it need to know the x,y-coords? can't it just ask for some URLs of regions to some direction?
  • [9:15] Morgaine Dinova: Zero: baking is bad, unless bakes have a TTL
  • [9:15] Sheet Spotter: I assumed the client would ask the region for the adjacency information.
  • [9:15] Zero Linden: yeah - it could - and it could test for URL equivalence
  • [9:15] Zero Linden: though that can be a non-trivial problem
  • [9:15] Zero Linden: Another idea is that each region has a region ID (a UUID)
  • [9:16] Tao Takashi: I just wanted to say that ;-)
  • [9:16] Tao Takashi: why not ask some URL for some UUID
  • [9:16] Tao Takashi: and compare this
  • [9:16] Zero Linden: and the viewer could ask the current region for the URLs of the neighbors, then ask those URLs for the region IDs
  • [9:16] Tao Takashi: what does it need the ids for?
  • [9:16] Tao Takashi: why does it need to compare it?
  • [9:16] Tao Takashi: (with what?)
  • [9:16] Zero Linden: and if they matched existing region data in the viewer, the viewer could say ("oh, cool, I'm already connected there and have the water height, parcel map, etc...)
  • [9:16] Morgaine Dinova: Zero: yes, the name of a region should be just a friendly tag, but the UUID should be the real thing
  • [9:17] Zero Linden: Tao - because when you walk over a sim boundary, you don't want to have to refetch the region data for the region you just left
  • [9:17] Zero Linden: you sort of want to say "I know that the region I was just connected to is the region to the south of the region I just walked north to enter"
  • [9:17] Zha Ewry: Yeah, you clearly want to keep as much context as possible
  • [9:18] Zero Linden: Well, yes, I don't think we should consider names to be the "true id"
  • [9:18] Zha Ewry: you just really would prefer not to keep it based on the current x/y fixed map
  • [9:18] Zero Linden: but perhaps the URL is sufficient
  • [9:18] Tao Takashi: and you cannot simply remember that URL?
  • [9:18] Morgaine Dinova: In the wider metaverse, regions can create their own UUID names ... and only very rarely will a clash dispute be need to be resolved.
  • [9:18] Tao Takashi: or do you want to make sure that it really is the same?
  • [9:18] Zero Linden: well - there is the question of do we need to do URL canonicalization before comparing
  • [9:18] Tao Takashi: like you enter a new region, ask for the neighbors, get back the URLs and UUIDs and compare if the one you left is really the one this region thinks is the neighbor?
  • [9:18] Zero Linden: but it is probably reasonable to expect that within a region domain, it will use consistent URL forms for any given region
  • [9:19] Zero Linden: Tao - yes
  • [9:19] Tao Takashi: we can demand from a region domain to serve the same URL when it's the same region
  • [9:19] Zero Linden: but do you get the regionID, the regionURL, or both from the current region (as an answer to "who are my neighbors?")
  • [9:19] Tao Takashi: we can also demand to provide some UUID, I guess that does not cost too much
  • [9:19] Tao Takashi: well, if there's an id, why not simply returning both directly
  • [9:20] Tao Takashi: it's not a web service used that often anyway (I guess)
  • [9:21] Zero Linden: right - just worrying about "out-of-sync'ness"
  • [9:21] Sheet Spotter: Which is a more scalable identifier for a region: UUID or URL?
  • [9:21] Morgaine Dinova: Sheet: UUID
  • [9:22] Zero Linden: Now - I think it is reasonable for use to expect that if I walk north from sim A into sim B
  • [9:22] Zero Linden: that sim B MUST report sim A as the south neighbor
  • [9:22] Zero Linden: if it is doesn't - I'm fine with the viewer FREAKIN OUT
  • [9:22] Sheet Spotter: "You have entered a maze of twisty passages"
  • [9:22] Morgaine Dinova: Zero: unless it's changed during the transfer.
  • [9:22] Zero Linden: If this is the case, and we consider global region coordinates to be really only global to the region domain
  • [9:23] Zero Linden: then the region coordinates, coupled with the region domain, become a possible reasonable handle within the viewer
  • [9:23] Zha Ewry: I think the viewer can freak out if the land doesn't follow it's expected rules
  • [9:23] Zero Linden: Good point, Morgaine...
  • [9:23] Morgaine Dinova: Zero: region adjacency may be quite static in LL grids, but it WONT be in the wider gridverse. The client should not freak out when the universe changes
  • [9:23] Zha Ewry: I'm not, sure, long term, this is always simple gridded cartesian,but I agree
  • [9:23] Zero Linden: In fact there is existing protocol to handle changes in neighbors while you're in world
  • [9:24] Zero Linden: (always amazed that it works, too....)
  • [9:24] Tao Takashi: we also should add a z-coordinate though ;-)
  • [9:24] Zero Linden: SO perhaps your current location DOES define your view of reality
  • [9:24] Morgaine Dinova: I was amazed that SL worked in year 1. Not amazed that it works *less well* in year 4.
  • [9:25] Zero Linden: Is anyone here planning on building a viewer that could handle regions that were above or below other regions?
  • [9:26] Saijanai Kuhn: You'd need to talk to relXtend or Openviewer about that
  • [9:26] Cane Janick: assumes the answer is no
  • [9:26] Tao Takashi: well, I would like to have space :)
  • [9:26] Zero Linden: for example- I'd be hard pressed right now to get my camera in a position that would view regions above or below
  • [9:26] Tao Takashi: and underground
  • [9:26] Morgaine Dinova: Zero: I'm planning (in my mind at least) to build a viewer with no prior assumptions about topology.
  • [9:27] Tao Takashi: and as I am not sure what people will experiment with I wonder if adding a z-coord will hurt
  • [9:27] Zero Linden: Morgaine - I'd love to find out how you construct the management of space for both rendering and motion
  • [9:27] Zero Linden: *motion
  • [9:27] Zha Ewry: I think, we can assume, in the next 2-3 years, that the plain flat 2d grid assumption is going to break, but I agree it's non trivial
  • [9:27] Morgaine Dinova: Zero: fortunately Newton (and Einstein) can be ignored in VWs :-)
  • [9:28] Tao Takashi: but maybe not understood by people if you make it too fancy ;-)
  • [9:28] Tao Takashi: but up/down should be understood at least
  • [9:28] Zero Linden: point taken
  • [9:28] Zero Linden: but we must also accept that I can't think of a viewer for any 3D system that handles such a thing
  • [9:29] Morgaine Dinova: We still have to deliver "WHAT THE PEOPLE WANT" though ... even though we're not limited by that, in theory.
  • [9:29] Zero Linden: I have a 9:30 meeting all, so I'm going to have to wrap
  • [9:29] Zero Linden: thanks all for coming
  • [9:29] Morgaine Dinova: Ty Zero
  • [9:29] Elric Ember: ty
  • [9:29] Rex Cronon: bye zero
  • [9:30] Cane Janick: ty
  • [9:30] Sheet Spotter: Thank you for this hour, Zero.
  • [9:30] Courtesan DeCuir: thank you Zero
  • [9:30] Morgaine Dinova: Philip needs an OH
  • [9:30] Zha Ewry: This was good, Zero, and I think we need to look for similar assumptions lurking in the protocol
  • [9:30] Morgaine Dinova: Zha: what are you hacking currently?
  • [9:31] Saijanai Kuhn: thanks zero