User:Which Linden/Office Hours/2008 Apr 17

From Second Life Wiki
Jump to: navigation, search

Initial part of this office hours turned into "storytime with Sai"; I didn't include this in the transcript because I don't want to (potentially) violate Sai's privacy.

  • [11:55] Saijanai Kuhn: anyway, did you have something to talk about, WHich? ;-)
  • [11:55] Which Linden: ha ha ha
  • [11:56] Which Linden: Not really, the most exciting thing we did was decide whether to return 4xx or 2xx from a web service on failure
  • [11:56] Saijanai Kuhn: ah kol. Let me make a note of that ;-)
  • [11:56] Which Linden: Ha ha, I think this is in the SLOGP document that Zero put out
  • [11:56] Which Linden: Maybe, anyhow
  • [11:57] Saijanai Kuhn: KK.,. I asked him if we could make it prettier. Like list the attributes in a two tone table like MS uses for its docs
  • [11:57] Arawn Spitteler: Pronounced SlogP?
  • [11:57] Saijanai Kuhn: SLGOGP actually
  • [11:57] Which Linden: But the rule of thumb that I came up with is: try to return 200 if the application undedrstood the request
  • [11:57] Which Linden: Yeah, there was much anxiety about choosing a horrible acronym for that. I guess, uh, we just gave up on having a good one
  • [11:58] Arawn Spitteler: Wha'it stand for?
  • [11:59] Which Linden: So, the example we had, the web service that transfers L$ from one agent to another returns with a 4xx if you leave out a parameter, but a 200 if the source doesn't have enough of a balance for the transaction to succeed.
  • [11:59] Which Linden: The body of the 200 reports on the failure, but, the 200 indicates that the client request was not malformed
  • [11:59] Which Linden: Second Life Grid Open Grid Protocol is the full expansion, I believe
  • [11:59] Arawn Spitteler: Ah, trying to manage Money, without the Vendors having any.
  • [12:00] Saijanai Kuhn: makes sense
  • [12:00] Which Linden: I totaally reversed course on this -- my previous opinion was that you should not return 200 unless everything succeeded. Zero is pretty persuasive
  • [12:01] Saijanai Kuhn: your request was in valid form, but you still can't do what you want
  • [12:01] Arawn Spitteler: would like Sales Events, to avoid Money Events: Wouldn't -1 be "ALL_TRUE"
  • [12:02] Which Linden: Yeah, I'd like to build towards a more comprehensive LSL api
  • [12:03] Arawn Spitteler: MONO is too close, for such an upgrade, but reserving money before trying to pay the stuff, might be a good idea
  • [12:03] Which Linden: What do you mean?
  • [12:04] Saijanai Kuhn: mono doesn't change the LSL API at all at this point
  • [12:04] Arawn Spitteler: If an object tries to pay money, and the money isn't there, the owner gets an IM later, but I don't know how he's supposed to sort what he owes.
  • [12:04] Which Linden: Oh, I see
  • [12:05] Arawn Spitteler: MONO is supposed to manage a byte-code format, and what that bytecode should be able to do, would have room to upgraded from curent LSL capacity.
  • [12:06] Saijanai Kuhn: mono's byte code is ste in stone though. Its standard .net CLR psuedo-VM byte code
  • [12:06] Arawn Spitteler: Some way to complain about Crooked Camping Chairs would also be nice, but I guess an AR is the way on that.
  • [12:06] Which Linden: Yeah, you can't really do anything programatically about liars
  • [12:06] Which Linden: I'm still thinking about the "L$ reservation"
  • [12:07] Which Linden: Doesn't that just move the failure out one more level?
  • [12:07] Which Linden: I.e. the object will fail to reserve the L$, and will then leave its owner in as much of a lurch as before?
  • [12:08] Arawn Spitteler: It should ear-mark some linden$, as with a letter of credit, that the Owner wouldbn't be able to spend, until the visitor was done camping.
  • [12:08] Which Linden: I see
  • [12:08] Which Linden: Hm
  • [12:08] Arawn Spitteler: Before the Sploder offers money, it would reserve the money, and all moneys added, so the Owner wouldn't go broke, in the time of the game
  • [12:08] Saijanai Kuhn: but how do you pove that it didn't make a mistake?
  • [12:09] Saijanai Kuhn: in other words, a deliberately coroked chari could reserve the cash and then reverse itself
  • [12:09] Which Linden: Yeah, this definitely doesn't protect you against crooked operators, it just makes it easier for legit operators to do the right thing
  • [12:10] Saijanai Kuhn: say, "oops, didn't mean to do that, gimme it back"
  • [12:10] Arawn Spitteler: The object has its own key, and should be alowed some banking. Likewise, we should have better tracking of Properties, by which to shut down chairs and Sploders, when not fundable.
  • [12:10] Which Linden: You'd want to be damn sure that the reserved L$ is freed up at some point, since you wouldn't want the object/script to go away and lose that stuff forever
  • [12:11] Arawn Spitteler: The owner would be the receiver of failed transactions. I don't know how that compares with... Excrow
  • [12:11] Arawn Spitteler: Escrow
  • [12:12] Which Linden: The excrow used to be a crow, but got fired.
  • [12:12] Saijanai Kuhn: BEEP used to be called BXXP. Wonder what that was about
  • [12:12] Arawn Spitteler: i guess I'm talking something like Escrow, where they money is there, when the person starts camping, or buying, and is only paid on completion.
  • [12:13] Which Linden: Yeah, a long-running Escrow transaction could handle the reservation, but at the moment the system isn't really designed for lots of long-running transactions
  • [12:13] Saijanai Kuhn: seems that Which's APIhandles that situation anyway
  • [12:13] Saijanai Kuhn: ah
  • [12:13] Which Linden: IT could do it, make no mistake
  • [12:13] Which Linden: But it wouldn't be terribly efficient
  • [12:14] Arawn Spitteler: Handle locally, on the Sim?
  • [12:14] Which Linden: Yeah, possibly
  • [12:14] Which Linden: I mean, you could do this right now, by using a mule as your "escrow"
  • [12:14] Arawn Spitteler: Local Banking vs Federal Reserve.
  • [12:14] Which Linden: Just transfer L$ to the mule, get the mule to pay the debt when it's due
  • [12:15] Arawn Spitteler: What's a Mule?
  • [12:15] Which Linden: An alt that just exists for this purpose
  • [12:15] Saijanai Kuhn: once the rez_avatar goes into place, you could have a non-rezzed mule to do it
  • [12:15] Which Linden: Yeah
  • [12:15] Which Linden: Well, hell, you don't need to have the mule logged in at all. Just two scripts, with debit permissions on each av
  • [12:16] Arawn Spitteler: wonders if an open sim could be contained in AD
  • [12:16] Saijanai Kuhn: I raised an important point, I thought, that Tes and Zero came up with laternate mthods to handle: right now its login to Agent DOmain. Agent Domain returns stuff. Tell agent DOmain to rez avatar. Sim returns stuff to agent domain which returns it to client
  • [12:16] Saijanai Kuhn: BUT,what about grid-secific parts of the process? LIke grid-specific IM or inventory or money?
  • [12:17] Arawn Spitteler: Does IM even have to go through the Grid?
  • [12:17] Which Linden: Those things are part of the agent-domain, not part of the region domain though
  • [12:17] Saijanai Kuhn: yeah, but the grid might have a specific thing that the LL Agent Domain doesn't know about.
  • [12:17] Which Linden: I think they are postponing the discussion of what to do when you have multiple inventories on multiple ADs
  • [12:17] Which Linden: Yeah, that is a challenge
  • [12:18] Saijanai Kuhn: Zero suggested a phantom rez while Tess suggeseted you could have a transfer to a new Agent Domain, or seek assitance from such a domain while retaining control
  • [12:18] Which Linden: Both possibilities
  • [12:19] Which Linden: Most things wouldn't need that, though, would they? If your region has some new functionality, it just grants a cap directly to the viewere
  • [12:20] Saijanai Kuhn: yeah, but the whole idea of Rez avatar is to allow somethings to go BEFORE rez avatar. Rez avatar talks to the region domain, and gets teh rez info and you're rezzed (as it stands now)
  • [12:20] Saijanai Kuhn: so login gives you access to invetnory, L% and IM before rez avatar
  • [12:20] Which Linden: I see
  • [12:21] Saijanai Kuhn: but if there is grid specific inventory, IM and money, there's no way to specifiy it before rezzing, which creates the problem of ruthed avatars yet again
  • [12:21] Which Linden: I get it, that's interesting
  • [12:21] Saijanai Kuhn: so both Zero and Tess have solutions to it. I'm just not sure if its a robust solution to arbitrary things, rather than just my specific examples
  • [12:22] Which Linden: Yeah, well, try and come up with more examples!
  • [12:22] Saijanai Kuhn: I was thinking more like rez_grid coming between login and rez-avatar
  • [12:22] Which Linden: Who would th rez_grid capability go between?
  • [12:22] Arawn Spitteler: Where does an avatar get Ruthed? Isn't the pre-animated image uploaded by the Client?
  • [12:22] Saijanai Kuhn: which could accomindate both solutions I guess
  • [12:23] Saijanai Kuhn: yeah, but that assumes that the clinet has imaging capabilities. Your IM client on a smart phone might not
  • [12:23] Arawn Spitteler: Textures must be added after upload, just as animations and Sounds.
  • [12:23] Which Linden: The avatar gets ruthed because the file containing the actual avatar appearance doesn't get transmitted to the client
  • [12:24] Which Linden: Ruth is the avatar equivalent of a NULL
  • [12:24] Arawn Spitteler: Avatar[0]
  • [12:24] Saijanai Kuhn: yeah, but that file is actually created by the client. That's "baking". If the client doesn't bake its own avie's image at login, and send it to the server, you get Ruth
  • [12:24] Which Linden: Oh, yeah, but that's a good point -- there's no reason the viewer/simulator couldn't support progressive download
  • [12:25] Saijanai Kuhn: client gets teh raw textures and avie model, bakes them, and sends the image back tot eh server
  • [12:25] Which Linden: Which they do right now, I think
  • [12:25] Which Linden: Baking is kind of just an artifact of the fact that we don't have GL renderers on the server side
  • [12:25] Arawn Spitteler: GL?
  • [12:25] Saijanai Kuhn: but again, if you have an ultra-light weight client, like my python script, you don't want to burden it with image baking
  • [12:26] Saijanai Kuhn: hence the login => rez_avatar stages
  • [12:26] Arawn Spitteler: thinks the ISPs would like to offer some services, once the protocol is stable.
  • [12:27] Saijanai Kuhn: login gives you access to things like IM and invetnory and L$ that don't require textures and other massive downloads/uploads/hlibraries
  • [12:27] Which Linden: GL as in OpenGL
  • [12:27] Saijanai Kuhn: my only concern was that this is an assumption that all IM, inventory and money is universal. There needs to be a grid-specific step that establishes grid presence before sim presence
  • [12:28] Which Linden: No, no, I think the assumption is that those things are AD-specific
  • [12:28] Saijanai Kuhn: even if its only astub for SL-compatible grids
  • [12:28] Which Linden: And that the regions shouldn't even know about them
  • [12:28] Which Linden: Uh, I guess except for inventory, when it's rezzed
  • [12:28] Which Linden: But not when it's unrezzed
  • [12:29] Saijanai Kuhn: but some grids, like a WoW type game, ight have game-specific IM which isn't spposed to be available unless you're a member fo the game. If any ole avatre could get access to it before logging intot that game
  • [12:29] Arawn Spitteler: If the key is not displayed, the item can't Rez?
  • [12:29] Which Linden: The key?
  • [12:30] Arawn Spitteler: UUID
  • [12:30] Which Linden: Sai: yeah, but then either implement some sort of AD for that game, or implement it via caps granted by the regions
  • [12:31] Saijanai Kuhn: IBM's sub-grid no-doub thas private IM which shouldn't go across the grid. They contorl it manually with firewalls, I think. But there should be a provission in teh client-server protocols to allow for that in a more elegant way
  • [12:31] Which Linden: Hm, that is a decent use case.
  • [12:32] Arawn Spitteler: Private IM? I thought they were going to be a fully trusted server, with TP capacities
  • [12:32] Saijanai Kuhn: but, rez avatar, at least in its current incrnation, is the catch all for showing the avatar on the grid. There needs to be substages within rez avatar to get tose caps and make them available BEFORE the avatar gets drawn
  • [12:32] Which Linden: I am definitely willing to believe that there are some use cases that warrant modification of the AD, but don't require creation of a new AD
  • [12:33] Saijanai Kuhn: its one-way trust, Arawn. They don't want people eavesdropping on corporate conversations
  • [12:33] Saijanai Kuhn: things and IM can come in, but not go out
  • [12:33] Arawn Spitteler: AD might have different dialects for different grids, or might simply require seperate ADs for different grids.
  • [12:34] Arawn Spitteler: Linen Labs wouldn't be able to eaves drop on conversations between IBM and Microsoft?
  • [12:34] Which Linden: Depends on which servers they use
  • [12:34] Saijanai Kuhn: sure, I just think that with relatively slight modifications, the current agent domain model could handle many special cases.
  • [12:34] Which Linden: Yeah, I will think on that some more, Sai
  • [12:35] Saijanai Kuhn: The sub-grid IBM has its behind its own firewall. Authorized folks can TP in and out, but anything they say/make on teh IBM side stays on the IBM side
  • [12:35] Arawn Spitteler: They'd be using Linden Level Privileges, without any more than Contract Constraint from Linden Labs.
  • [12:36] Saijanai Kuhn: As I see it, unless its a REALLY complicated protocol, the Agent DOmain could just query the grid for "special cases" and pass those caps on to the viewer, which might be able to use them before the fully rezzed avatar appears
  • [12:36] Which Linden: I'd like to see some more use cases for the special cases; right now we have special IM, special avatar inventory... what else
  • [12:36] Saijanai Kuhn: so I guess its part of the rez_avatar process, just an optional substage
  • [12:36] Saijanai Kuhn: well, I think, unless its really complicated, the agent domain doesn't need to know anything about it. Just provide a list of optional caps, and let the viewer decide if its really able to handle them
  • [12:37] Arawn Spitteler: In hte event of international disruptions, large grid areas could be isolated.
  • [12:37] Which Linden: I guess the question is: should we wait until there's a use case waiting to go before we implement it? The risk of adding it now is that it might never be used.
  • [12:37] Which Linden: (and the spec would be complicated by it)
  • [12:37] Saijanai Kuhn: OpoenSim is already working on local currency implementations
  • [12:38] Arawn Spitteler: Recent Outages have resulted from single facility failures, which DARPANET designed around.
  • [12:38] Saijanai Kuhn: and IBM is already using local group IM, but enforced by the firewall.
  • [12:38] Saijanai Kuhn: there should be a provision for gorup IM the avatar can get to without rezzign inworld
  • [12:38] Which Linden: Totally
  • [12:38] Arawn Spitteler: Friends conferences could be run outside of Sim awareness.
  • [12:39] Saijanai Kuhn: so during the rez avatar process, the agent domain does its thing, but there could be a "special case" list of CAPs that are grid specific.. no, that wont work. The Agent DOmain shoudl NOT get that list security violation
  • [12:39] Which Linden: Ha ha ha, good to see your thought process
  • [12:39] Saijanai Kuhn: IBM would never release that list to Joe BLow's agent domain, thoughit might to a known avie hosted by Joe's domain
  • [12:40] Arawn Spitteler's: been wanting to walk about with IM History Active: I'm in favor of having IMs in entirely different clients, at least until I learn better.
  • [12:40] Which Linden: That would be nice, Arawn
  • [12:41] Saijanai Kuhn: I have huge IM logs. Its helpful when going back and finding chat transcipts that havent been posted
  • [12:41] Saijanai Kuhn: I have recorded chats with Danial LInden in my local chat log
  • [12:42] Which Linden: Ha ha, those are pretty old
  • [12:42] Saijanai Kuhn: huge...
  • [12:42] Which Linden: Hey, I should probably go. Work calls and I need food
  • [12:42] Saijanai Kuhn: It can bite you though. I was looking at home movies I made of the neighbor's kid, and I found a 46 GB file on my disk
  • [12:43] Saijanai Kuhn: left the webcam recording for 7 hours nonstop
  • [12:43] Which Linden: ha ha
  • [12:43] Saijanai Kuhn: nothing on it except me leaving the room
  • [12:43] Which Linden: I'll keep thinking about the special cases, Sai.
  • [12:43] Saijanai Kuhn: so recording all local chat could pick up some pretty uninteresting stuff. Like login/logout of all yoru friends
  • [12:44] Which Linden: See you next week!
  • [12:44] Saijanai Kuhn: thanks. It was just something that kept nagging me while I was lookign at rez_avatar
  • [12:44] Saijanai Kuhn: take care
  • [12:44] Which Linden: Yeah, thanks for bringing it up