User talk:Zero Linden/Office Hours/2007 Mar 06

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.

i found the original transcript a tad hard to read & slapped together this little perl script to reformat into a wiki table:

#!/usr/bin/perl
# Placed into the public domain by IBM Research.

use strict;
use English;

sub eject_header ( );
sub eject_line ( $$$$ );
sub eject_footer ( );

eject_header;
while (<>) {
    if (m/(                         # $1: captures whole lead
           (\[\d{1,2}:\d{2}\]\s+)?  # $2: captures optional timestamp [13:00]
           (\S+\s+[^\s:]+)          # $3: captures Firstname Lastname
           ([\s:])                  # $4: captures (:| )
          )
          \s*                       # gobble up white space
          (.*)                      # $5 captures actual text
         /x) {
	my $timestamp = $2 || " ";
	my $who = $3;
	my $sep = $4;
	my $text = $5;
	eject_line $timestamp, $who, $sep, $text;
	next;
    }
    
    print "??? ", $_;
}
eject_footer;

exit 0;

sub eject_header() {
    printf STDOUT "{|\n";
}

my $last_who = undef;
my $cidx = 0;

sub eject_line($$$$) {
    my $timestamp = shift;
    my $who = shift;
    my $sep = shift;
    my $text = shift;

    my $bg = "";

    if (defined $last_who and $last_who ne $who) {
	$cidx = ($cidx + 1) % 2;
    }
    $last_who = $who;

    if (0 == $cidx) {
	$bg="background-color:#FFFFFF;";
    } else {
	$bg="background-color:#F0F0F0;";
    }

    $text =~ s/%/%%/g;
    $who =~ s/\s+/ /g;

    printf STDOUT "|- style=\"vertical-align:top;$bg\"\n";
    printf STDOUT "| $timestamp\n";
    if ($sep =~ /:/) {
	printf STDOUT "| $who:\n";
	printf STDOUT "| style=\"white-space:normal;\"|" . $text . "\n";
    } else {
	printf STDOUT "| colspan=\"2\"|''$who " . $text . "''\n";
    }
}

sub eject_footer() {
    printf STDOUT "|}";
}

with this as the result:

[13:01] Maxx Duell accepted your inventory offer.
[13:01] Zha Ewry: Hello Zero!
[13:01] Dale Innis: Hi hi!
[13:01] Jason Ayakashi: hi, zero
[13:01] Zero Linden: hello hello
[13:02] Hiro Market: hi zero
[13:02] Dale Innis apologized for suddenly running off in a few minutes. :)
[13:02] Dale Innis: (apologizes)
[13:02] Zero Linden: Welcome all
[13:02] Zha Ewry: Hey Rex, welcome back
[13:02] Rex Cronon: hello everybody
[13:03] Zero Linden: Everyone had a good weekend?
[13:03] Dale Innis: Even slept some. :)
[13:03] Zero Linden: I spent far too much of mine thinking about cross-protocol endpoints.
[13:03] Dale Innis: lol
[13:03] Zha Ewry: eewe
[13:04] Zha Ewry dislkies m*n problems
[13:04] Zha Ewry: Hello Vitis
[13:04] Rex Cronon: the things just started here right?
[13:04] Vitis Obviate: Heya
[13:04] Rex Cronon: hi
[13:04] Zha Ewry: Zero has even done his "ground rules" yet
[13:04] Zero Linden: Yes - and who would have thought that a simple concept like "the sender of this message" could have such a property?!?!?
[13:04] Zha Ewry would :-)
[13:04] Zero Linden: Yes, things are just started, Rez
[13:05] Zero Linden: wow - big turn out today!
[13:05] flying ball whispers: I am ALIVE!
[13:05] Sifu Moraga: Gotta load my cache....
[13:05] flying ball: , you can't sit on me![cd]
[13:05] flying ball whispers: I am ALIVE!
[13:06] Dale Innis: :) yeah some of us will be running of momentarily.
[13:06] Dale Innis: (off)
[13:06] Sifu Moraga: I'll be falling asleep in a moment
[13:06] Zero Linden: Well - as most of you know, but protocol dictate I say....
[13:06] Zero Linden: This is Zero's Techno-Geek-Fest office hours
[13:06] Zero Linden: And it the transcripts will be posted to the SL wiki
[13:07] Sifu Moraga: Oops, a lot of IBMers here
[13:07] Zero Linden: Unlike last session - I have nothing in particular on the agenda to talk about..... though I'll give a brief update
[13:08] Zha Ewry: Good, then I can pester you about in / out blobs
[13:08] C4 (say /5 boom): Ka-Boom
[13:08] Zero Linden: Last Thursday we were walking about a sim where almost all the sim traffice to the viewer went over LLSD, via the event queue, via a capability
[13:09] Zero Linden: That was a good milestone. We hope this week to have a grid up where the only traffic that is UDP are some messages like ObjectUpdate and the rest
[13:09] Zero Linden: of the servers are all talking LLSD over some TCP based transport, as well as the viewer to sim communications
[13:09] josserand Jacobus: Hi very nice place, Zha ! May I sit down ?
[13:09] Zero Linden: That's all from me
[13:09] Zero Linden: So, I'm happy to talk blobs
[13:10] Zero Linden: For those that don't know, there is a Zero Office Hour Discussion page in the wiki
[13:10] Hiro Market: can i just request the wiki for the last session is updated with the diagrams
[13:10] Zero Linden: https://wiki.secondlife.com/wiki/Discussion_Page_for_Zero_Linden%27s_Office_Hours
[13:10] Hiro Market: missing atm
[13:10] Zha Ewry: Good. How much pain would it cause to have bigger than 2K objects come in as blobs?
[13:10] Vitis Obviate: ahh..images are up...ty
[13:10] Zero Linden: Hiro - what? https://wiki.secondlife.com/wiki/ZeroTranscript2007Mar01 has images
[13:10] Sifu Moraga: (and then you'd have to decide how to store them)
[13:10] Zha Ewry: I'm especially keen on the idea, as that gets us out of the LSL data space problems
[13:11] Zha Ewry: As to where Sifu, in inventory, inside the script's prim, is one easy thought
[13:11] Dale Innis: Yeah; get everyone to store the big stuff on their own external srevers! I like that. :)
[13:11] josserand Jacobus: No answer so I sit down
[13:11] Zha Ewry: Because, you don't want them to be live, without some effort on the part of the scripter
[13:11] Sifu Moraga: I currently use notecards for blobs
[13:11] Hiro Market: no, nothing for me, tried opera and ie
[13:12] Zero Linden: So, for others, if you haven't read it, you might want to bop on over to the wiki discussion page and read Zha's proposal
[13:12] Zero Linden: Sifu - right, but notecards arent r/w and aren't likely to be.... ever.
[13:12] Sifu Moraga: yes, notecards are a real pain
[13:12] josserand Jacobus: Zero, what mean LindenVillager please
[13:12] Sifu Moraga: but they were all we could get to work
[13:12] Dale Innis: Hence the desire for more general blobs. :)
[13:12] Zha Ewry: Hmm. Before we dive to far, why aren't notecards writable?
[13:12] Rex Cronon: a link to zha proposal is on you page zero?
[13:12] Sifu Moraga: exactly
[13:12] Zero Linden: Hiro - does this work for you: https://wiki.secondlife.com/wiki/Image:ZeroOfficeHours-20070301-slide1.png ??
[13:13] Zha Ewry: https://wiki.secondlife.com/wiki/Discussion_Page_for_Zero_Linden%27s_Office_Hours
[13:13] Zero Linden: https://wiki.secondlife.com/wiki/Discussion_Page_for_Zero_Linden%27s_Office_Hours#Binary_Blob_in.2Fout_from_SL
[13:13] Zha Ewry: If you use mine, scroll down, Zero's is more precise
[13:13] Zero Linden: So
[13:13] Zero Linden: there are two aspects about blobs I'd like to discuss
[13:14] Zero Linden: First - mechanics of what blobs would look like:
[13:15] Zero Linden: Right now, the inventory of an object is essentially a list of assets and access rights information
[13:15] Zero Linden: A binary blob, especially a r/w one could not be stored in the asset server becuase the asset server
[13:15] Zero Linden: (not a single machine, but logically so), was designed, and is cached, on the assumption that
[13:15] Zero Linden: assets are data that never change once written
[13:16] Zha Ewry: I'd assume you'd take it into a native SL type inbound
[13:16] Sifu Moraga: Hmmm, I see the problem
[13:16] Zha Ewry: So, the mime type of the blob would tell the inbound process how to turn it into an SL object, you'ddump it into the asset server
[13:16] Zero Linden: but nonetheless, we'd have to extend the concept of inventory to include objects that aren't assets.
[13:16] Zha Ewry: and the pass the uuid to the invenotry of the prim running the script
[13:16] Sifu Moraga: yes
[13:16] Zero Linden: Not impossible, but definitely different
[13:17] Zero Linden: And once one wants all the inventory like operations to work on them - you see that we'd be effectively trying to
[13:17] Zha Ewry: thus it becomes a fairly normal SL object, before it gets into the asset server
[13:17] Zero Linden: create a sub-class of an abstract class (inventory item) that doesn't currently exist
[13:17] Sifu Moraga: Since an object is local to a sim, could transitory blobs be stored by the sim server?
[13:17] Zero Linden: Sifu - it would have to be -- so
[13:18] Zero Linden: right now, when we move an inventory item (or copy it), there is no data movement at all, becuase the assent doesn't change or move
[13:18] Sifu Moraga: Ko, so the problem is that an object can reference anything that is not in the asset server
[13:18] Zha Ewry: right, you just move a uuid
[13:18] Zero Linden: for a blob, we'd have to hook all those and do copying and/or moving and/or reference counting.... etc...
[13:18] Zero Linden: none of this is impossible, just more difficult and involves a refactoring of a part of the system
[13:19] Zha Ewry: Well, you actually looked at amore general solution... II won't complain if you do that... mind you
[13:19] Zha Ewry: I'd be happy to have a mim driven way of getting blobbed assets into the asset server, and into the inventory of a local object
[13:19] Zero Linden: So now we have to store that data too... and as Sifu said, it would be on the sim... some of the time
[13:19] Sifu Moraga thinks out loud, could an object store a reference to a transient object?
[13:19] Zero Linden: so - when you take an object into inventory (take or take copy), we are basically saving the state of the object (and scripts), and the inventory list, and writing that into a new asset
[13:20] Zha Ewry: I'd asume you'd be reluctant to do to much of that, as you now have state which is in a bad way, if the sim crashes
[13:20] Zero Linden: So in this case, we'd have to bundle all the data of the blob up into the inventory entry and store that too
[13:20] Zha Ewry: right now, assets either are, or don't exist. Not much inbetween
[13:20] Zero Linden: again, not difficult, but more work to do.... and more data to move
[13:20] Vitis Obviate reflects that we should discuss the "why can't we write notecards" problem also - as Zha suggested - before we dive too deep
[13:20] Zha Ewry: In the asset server, with a uuid, or non-existent
[13:21] Zero Linden: Internally, if the object is rezz'd we'd have to have the data hanging off the inventory item... again not hard
[13:21] Zero Linden: and when the sim state saves, we have to write out all that data with objects in the same way as when sent to the asset server during Take
[13:21] Zero Linden: So these changes wouldn't be that hard.. easier than the inventory operation refactoring, actually
[13:22] Zero Linden: But - then there is the issue of the data and the cost of storing it and moving it around
[13:22] Zha Ewry: Vitis, I think you just got a big chunk of your answer to read/write notecard, btw
[13:22] Zha Ewry: Since the same issiues, roughtly obtain
[13:22] Zha Ewry: (lots of state, and the question of the UUIDs of the notecard in each state)
[13:22] Zero Linden: If... imagine, a region with 1,000 objects that used blobs. And, say, 2 blobs per object (pulling numbers out of thin air)
[13:23] Rex Cronon: but what if i am not interested to save the state of the scripts that in an linked set inventory, if i can use scripts to write to notecard, the script can save its onw state
[13:23] Zero Linden: and say 20k of data per blob
[13:23] Zero Linden: that's 20k x 1k x 2 = 40M
[13:23] Hiro Market: somewhere in the forum there's a reference to LL saying they'd open up a database for scripts to read/write data
[13:24] Hiro Market: seperatly to other mechanisms
[13:24] Zero Linden: and, since we store objects in XML -- you'd have to base 64 this when stored
[13:24] Zha Ewry: So, zero,suppose we assume that we use blobs, just to get objects (current set of SL native ones) into/outof the asset server
[13:24] Zero Linden: Since a typical region runs in 200M of RAM, and we try to keep it under 512M
[13:25] Sifu Moraga thinks that the fact that my blobs are already XML doesn't help
[13:25] Zha Ewry: Which scopes things down a lot
[13:25] Zero Linden: you can see that this would start to put a strain on memory
[13:25] Sifu Moraga: But you could still have a local DB, though
[13:25] Zha Ewry: I'd love the more general solution, mind you, but I'm looking for ways for use to unload the storage issue (and the assembly issues) from SL and the scripters
[13:26] Sifu Moraga: not everything hast too be in memory, does it
[13:26] Zero Linden: Hiro - I don't know what forum post you're referring to -- but perhaps you are thinking about silo.php -- which is my script for storing arbitrary amounts of data on your own web server from LSL
[13:26] Zero Linden: ?
[13:26] Zha Ewry: and let us (the developers who own the binary data) get it to the asset server as neatly as possible
[13:26] Zha Ewry: (and the converse, to get it out)
[13:27] Zero Linden: Zha- if your goal is to be able to add textures / sounds / notecards or even (gasp!) scripts to the asset system under LSL control.....
[13:27] Hiro Market: no, not silo, this is a reference to LL agreeing that not writing to notcards was an issue, and supplying a seperate database mechanism accessible by LSL
[13:27] Zero Linden: or similarly, to read that data out....
[13:27] Hiro Market: quite old, looking for it, caught my eye when I saw it
[13:27] Zero Linden: then perhaps we should talk about issuing capabilities to that information so you can just do it directly
[13:27] Zha Ewry: (and follow the DRM model, as we do it...)
[13:27] Sifu Moraga: Certainly that is not what I need blob transfer for
[13:28] Zero Linden: Oh, Hiro, don't know about there - there isn't a current plan internally that I know of
[13:28] Zha Ewry: Capabitlies, with the right strucfture, linked ot scripting, would get us most of the way.
[13:28] Zha Ewry: to
[13:28] Sifu Moraga: you think so, Zha?
[13:28] Zero Linden: Mind you - web server space that runs PHP is so cheep - seems like a much better solution to just have people store their own data in data stores they manage and pay for (and backup!)
[13:29] Zha Ewry: The question is mostly how to get the data from those servers into SL
[13:29] Zero Linden: Rather than the scaling issue of us managing a big writable store for everyeone...
[13:29] Zero Linden: Zha - this brings up my second question... which is - what do you want to do with the blobs
[13:29] Sifu Moraga: Unfortunatly, I'd rather have a standard-like solution like REST or SOAP (gad, ack)
[13:29] Zha Ewry: Now, to an extent, I'd be happy to bypass an asset server, but I'm stuck on how to do that such that it all works when the script moves across sim lines
[13:30] Zha Ewry: REST, not SOAP, please :-) and that's a personal not corporate preference :-)
[13:30] Zero Linden: and perhaps also notecards and sounds
[13:30] Zero Linden: and I'm sensing it is you want to import lots of textures into SL for autmated builds or catalogs or knowledge bases or some such
[13:30] Zero Linden: Ditto here, Zha --- personally, I don't like the taste of SOAP...
[13:30] Sifu Moraga: I know, I know, Zha, but I don't always decide....
[13:30] Zha Ewry: Well also to drive larger data driven scripts.
[13:31] Zha Ewry: We have lots of use cases where we don't (can't) do the compute in SL, nor do you want us to
[13:31] Sifu Moraga: So, what I;m doing with my notecards is to do some light processing on them and then sending them to an instrumented client
[13:31] Zha Ewry: But we need efficient ways of getting the data in, well beyond the 2048 bytes at a time solutions, and with less load on both the scripting workload
[13:31] Zero Linden: Right - but driving data driven scripts is easy - because since the scripts can't compute that much anyway, you just have the scripts request the data in chunks it can handle, which are going to be small
[13:32] Zha Ewry: and the http requests pounding the sims
[13:32] Sifu Moraga: And then, the instrumented client gives a notecard back and gives it to an object via the AV
[13:32] Zero Linden: Really? Surely you can process 2k worth of, say geometry instructions, in LSL in the 1/2 second it takes to fetch the next 2k
[13:33] Zha Ewry: If I want to texture, as I go, it gets worse, and I can drive a nice class five sim down to a time dialation of oh, .4 or ..3 with just geometry and scripts
[13:33] Sifu Moraga: I don't need to do much processing, except a bit of string replacement
[13:33] Zha Ewry: not even loading texutres. Just rezzing prims, and moving them into place in large numbers
[13:33] Zha Ewry: If I want to load textures, as I rez... its gets painful
[13:34] Zero Linden: Right - but I bet the load from the llHTTPRequest isn't really contributing to that problem
[13:34] Sifu Moraga has seen what Zha is up to :-)
[13:34] Zero Linden: We tested doing several 100 llHTTPRequests per second in a sim with no noticable lag at all.
[13:35] Zero Linden: So, for driving scripts, I doubt getting the data in bigger chunks would be any better
[13:35] Rex Cronon: so zha, u want to build something off grid and upload those objects(or linked sets) into a sim?
[13:35] Zero Linden: Now, notecards and textures are two totally other problems
[13:35] Hiro Market: slightly tangental, but has support for procedural textures ever been considered?
[13:35] Zha Ewry: Hmm. Say, a 5500 prim molecular model? Yeah.
[13:35] Sifu Moraga: The problem I have is that I can't transfer the entire notecard in one piece, so I need to do about 4 transfers
[13:36] Zha Ewry: And then stich them together, and then run out of LSL memory
[13:36] Zero Linden: Righy - but doing the, I dunno, 100 2k data requests for the data for that molecule isn't nearly so much the load on the sim as rezzing and moving 'em
[13:36] Sifu Moraga thinks the molecure is awsome
[13:36] Zero Linden: especially since I bet each of those has a script!
[13:36] Zha Ewry: One problem I see, is we end up with lots of scripts to deal with dataspace
[13:36] Zha Ewry: Not for long. We kill 'em as fast as we can.
[13:37] Zha Ewry: If I leave 5500 scripts listening, the sim is an unhappy place for 2 agents
[13:37] Zero Linden: none the less, the cost of starting a script far outweights the cost of doing one llHTTPRequest
[13:37] Zero Linden: Let's talk notecards -
[13:37] Zero Linden: Sifu - you seem to be wanting to do two things with them....
[13:37] Zha Ewry: Hmm. I'm not surprised. Scripts require lots of context
[13:37] Zero Linden: One is transmit coded data to a specially instrumented browser
[13:38] Sifu Moraga nods
[13:38] Vitis Obviate would use that also
[13:38] Zero Linden: You could, of course, use specially coded IM messages -- (what is that crypto product that works over AIM???)
[13:38] Zha Ewry as well
[13:38] Zero Linden: but i imagine that is slow....
[13:39] Zero Linden: So - why not put the data via llHTTPRequest onto your server, and have the client retrieve it?
[13:39] Sifu Moraga: We thought of that, but still have to get it out to a web service at one point
[13:39] Zero Linden: granted, you have to take up the store of it
[13:39] Zero Linden: right - but the instrumented data is for the viewer, not the human, right?
[13:39] Sifu Moraga: that too
[13:39] Zero Linden: is it larger than 2k?
[13:39] Sifu Moraga: It also needs a bit or processing in-world
[13:39] Sifu Moraga: The data is for a cpu, its all XML, but unreadable
[13:40] Sifu Moraga: it is about 16kb in it's least cryptographicaaly secure form
[13:40] Zha Ewry: A fair bit of crypto/cert stuff ends up bigger than 2048...
[13:40] Zero Linden: We've had requests to have a version fo llHTTPRequest that is issued by the viewer, not the sim
[13:40] Sifu Moraga: easily
[13:40] Zha Ewry: Ah. There's a nice hard number
[13:41] Sifu Moraga: not the same problem, but still of interest for other stuff
[13:41] Zero Linden: so a script on the sim makes the request, the request is sent to the viewer, the viewer makes the call, and teh results piped back up to the
[13:41] Zha Ewry: Thus inside the client's firewall, and access to the local machine?
[13:41] Zero Linden: sim
[13:41] Sifu Moraga: yup
[13:41] Zero Linden: Right - the desire is to allow HUD objects that control things like MP3 players, and other, er, "add-ons"
[13:41] Sifu Moraga: more or less, though the firewall is incidental to what we are doing
[13:41] Zha Ewry: That helps although if its 2048, only a little, as you're still in the data stitching game
[13:42] Zero Linden: This strikes me as more of what you are after in this case, Sifu?
[13:42] Sifu Moraga: important is that we have two completely separate zone we need to access
[13:42] Zero Linden: Well, Zha, if the data has to go through LSL, while we can relax the size a bit (we intend to make it configuratble at some point)
[13:42] Zero Linden: it still won't be useful beyond, say 6k
[13:43] Zha Ewry: Right. Thus the desire to bypass LSL
[13:43] Zero Linden: since LSL execution space is going to be limited to 16k for quite some time
[13:43] Sifu Moraga: 16 kb is the minimum
[13:43] Zha Ewry: I'm looking at how I can move bigger chunks without having them have to land in LSL at all
[13:43] Zero Linden: But - the only thing I think I hear that you'd entirely bypass LSL for is: Textures, and Notecards for users to read
[13:43] Sifu Moraga: It did occure that if we could just send the notecard directly from llHTTPRequest....
[13:43] Zha Ewry: Well, notecards for programs as well
[13:43] Vitis Obviate: yes
[13:43] Sifu Moraga: ...that would bypass the LSL memory restrictions
[13:44] Zero Linden: Right - but where? If not a texture or a human readable notecard, then all other destinations in SL require LSL, yes?
[13:44] Sifu Moraga: I do think the use ofr notecards to be just wrong, somehow
[13:44] Zha Ewry: I'm happy to loop across a long notecard, one line at a time, never getting big chunks into the LSL data space
[13:44] Vitis Obviate nods
[13:44] Zero Linden: Then why not read the data from your web server one line at a time? It is almost as fast, if not faster!
[13:44] Sifu Moraga: umm, you'l be happy until you have tried it like me
[13:45] Zha Ewry: I'm muchg less happoy trying to coordinate that across http gets with all the logic to deal with dropped /oiur of order stuff
[13:45] Sifu Moraga: I get some delay that the users don't like
[13:45] Sifu Moraga: yes, that is worse
[13:45] Zero Linden: Indeed, the notary reads notecards one line at a time (needs to for hashing) and it is a bear
[13:45] Zha Ewry: I also see about 50% of my code space go into the parse/manage packet order problem
[13:46] Zero Linden: Really? Why not just issue your HTTP requests serially, like you'd do for notecards?
[13:46] Sifu Moraga: Also, I can't get llHTTPrequest to add chunking headers
[13:46] Zha Ewry: I understand the 16K problem, so I'm looking for reaosnale ways to bypass it
[13:46] Zha Ewry: I can issue them serially, but I have to have chunking/retry logic and I do end up exercising ti
[13:46] Zha Ewry: it
[13:47] Zero Linden: By the way - I'm not trying to be resistant - just trying to really get at what the user needs are here -- alas, with our highly constrained system, and our opaque implementation, it is hard to know what the crux of a user problem is
[13:47] Sifu Moraga totally understands
[13:47] Zha Ewry: Yes, I get that And having the discusssion is the right way to do it
[13:47] Zha Ewry: I'm totally happy witrh this process, at the moemnt
[13:48] Zero Linden: ah- I think I'm now seeing the bigger issue - here
[13:48] Zha Ewry: Point a number of people at the problem, and get to a good technical answer works for me
[13:48] Zero Linden: I'm wondering then if instead we supported byte-ranges,
[13:48] Sifu Moraga: If I was travelling to SF any time soon, I'd love to have a RL discussion of it
[13:48] Sifu Moraga: (unfrotunatly, I'm not)
[13:48] Zero Linden: and since our requests are squid cached
[13:48] Zero Linden: if that would work - because squid requests the whole thing when you do a byte range request
[13:49] Zero Linden: so once the frist range worked
[13:49] Zero Linden: you'd be getting the rest out of the cache
[13:49] Zha Ewry: Oh, allow us to load a bigger chunk into the squid, and then grab it 2048 at a time?
[13:49] Sifu Moraga thinks
[13:49] Zero Linden: Exactly- if everyone played right by the headers and all....
[13:50] Sifu Moraga doesn't get it
[13:50] Zero Linden: If you do a GET to say http://example.com/foo/bar
[13:50] Zero Linden: but include a byte range header asking for bytes 0-2047
[13:50] Zha Ewry willing to be a very obedient header wreiter
[13:50] Zero Linden: Squid cache will instead ask for the whole thing
[13:50] Zero Linden: and cache the whole resource at that URL
[13:50] Zero Linden: and deliver only the requested bytes
[13:50] Zero Linden: when you then make a second request to the same URL
[13:51] Zero Linden: but with byte range 2048-4095
[13:51] Zha Ewry: with the byterange...
[13:51] Zha Ewry: Yes..
[13:51] Zero Linden: squid just answers out of the cache
[13:51] Vitis Obviate will use whatever incontonation is required
[13:51] Zha Ewry: How big a chunk could the squid handle?
[13:51] Zero Linden: Now, mind you, it is all REST and stateless... so
[13:51] Zha Ewry likes REST and stateless...
[13:51] Zero Linden: in theory, you could have squid drop the resource in the middle and have to refetch
[13:51] Vitis Obviate: fine with me
[13:51] Sifu Moraga thinks REST is good
[13:51] Zha Ewry: Yes, just delay on random fetches if it does
[13:52] Zero Linden: Squid? Oh, I don't know what our maximum cached object size is set to....
[13:52] Zha Ewry: as long as the URL is idempotent, we're ok
[13:52] Zha Ewry smiles
[13:52] Zero Linden: right now it is probably pretty large... 1M or so?
[13:52] Zero Linden: Exactly, Zha
[13:52] Zha Ewry: I can deal with that :-)
[13:52] Zha Ewry: Doesn't help with textures or sounds, but... it would help a lot.
[13:52] Zha Ewry: Be harder to do in the other direction, I'd imagine
[13:53] Zero Linden: Yes - but there there is the much more natural solution - just let you texture an object with a URL to your own image on your own server...
[13:53] Zero Linden: Not that we are doing that right now....
[13:53] Zha Ewry: Yes.
[13:53] Zero Linden: We do have to be careful about opening the flood gates to textures
[13:53] Hiro Market: like the sound of that
[13:54] Zha Ewry: That'd be fine, within reason. How exactly we get the proggramitrc control is interesting, but I can see ways.
[13:54] Zha Ewry: Yes, I'm wiling to hear lots of stories about throttle on textures
[13:54] Zero Linden: Obviously if everyone just uploaded a texture for every surface they needed, under LSL command... we'd see things like
[13:54] Hiro Market: from my perspective one of the biggest restrictions on LSL is not being able to programatically manipulate textures
[13:54] Zero Linden: billboards that uploaded new textures every 15 seconds
[13:54] Rex Cronon: it would be ok to me if instead of html i can use svg
[13:54] Hiro Market: at pixel level
[13:54] Zero Linden: which would be cool from the SL experience point of view
[13:54] Zha Ewry: Yes... throttleing is an issue, of course.
[13:54] Zero Linden: but would really kill the asset server
[13:54] Zha Ewry: Althoug.. if you can have "transient" textures
[13:55] Sifu Moraga: It does sound like you will need the concept of transient blobs stored by the sims
[13:55] Zha Ewry: locally cached, I can come up with a story that only pounds the sim
[13:55] Zha Ewry: And not even that bad.
[13:55] Zero Linden: Hiro - you aren't likely to see things like paramatic textures or pixel level texture control from LSL
[13:55] Zha Ewry: The sim has to fetch/cache the tyextures today
[13:55] Zero Linden: These are memory and process intensive operations that the sim doesn't have the resoruces to do
[13:55] Zha Ewry: Nor should it
[13:55] Zero Linden: what is more likely, what scales much better, is
[13:55] Zha Ewry: Keep as much rendering on the client as possible
[13:55] Hiro Market: again I wonder about procedural textures on the client with shader code on server
[13:56] Zha Ewry nods at Hiro
[13:56] Zero Linden: do the pixel level processing on your own computer or server - and then have a way to put that texture on an object
[13:56] Zero Linden: The servers, the sims, have no graphics hardware at all... so no OpenGL going on there
[13:56] Zha Ewry: I think mosgt of us who have loooked at the scale issues want a smuch rendering as possible on the client
[13:56] Zha Ewry: I don't want the SIMs even thinking about rendering
[13:56] Hiro Market: don't need it, just the shader code on server, rendered on client
[13:57] Zero Linden: don't expect the sims to be doing graphic manipulation or rendering (which is a hint, by the way, as to why the map is such a pain point for us!)
[13:57] Zha Ewry: Among other horrors, you end up with the sim needing to know things like the resolutoin of every client they are talking to
[13:57] Zero Linden: Ah - but Hiro, can you imagine what it would be like if an object could down load arbitrary shader code to your viewer?!?!?
[13:57] Hiro Market: but procedural shader code is simply code, no rendering on server required at all
[13:57] Zero Linden: Talk about griefing!
[13:58] Hiro Market: hmm, point taken, but the advantages must be worth exploring surerly?
[13:58] Zha Ewry: He. Just because sooner or later we'd have all the pron spam in the shader :-)
[13:58] Zero Linden: Alas, OpenGL doesn't have virtualization or sandboxing facilities to make that reasonable
[13:58] Zero Linden: Nor does anyone have shader verifiers as far as I know....
[13:58] Zero Linden: But - one could imagine in
[13:58] Zero Linden: the future
[13:58] Sifu Moraga thinks there might be a case for somre rendering on the server, but it would probably need a different architecture
[13:59] Hiro Market: 3dlabs have one
[13:59] Zha Ewry shudders at what you could get the shader to do.
[13:59] Hiro Market: a verifier that is
[13:59] Zero Linden: private sims that said "If you come here, I will use spiffy special purpose shaders.... allow?"
[13:59] Rex Cronon: talking about griefing, what exactly does the physics engine do to attachements, when the one that wears them is blitzed?
[13:59] Zha Ewry: Hm. That'd be interesting
[13:59] Zha Ewry: In general, the question of private sim behavioir is interesting
[13:59] Zero Linden: Hiro - curious - good to know - though again I wonder if it worries about hostile environments or just makeing sure things won't crash...
[14:00] Sifu Moraga: My cranial CPU is shutting down, and my Powerbook is out of juice, so I'm off early
[14:00] Sifu Moraga: cu all
[14:00] Zero Linden: Yes, it is.... short term, once we start letting estate owners control upgrade times.... we are going to have to deal with
[14:01] Zero Linden: viewers and regions with different feature sets....
[14:01] Zha Ewry: Yes
[14:01] Zero Linden: Well, Sifu - actually it is 2pm so I'm signing off soon too
[14:01] Zero Linden: Shorter term -
[14:01] Zha Ewry: we talked about tadeoffs, between number of scirpts and data spaces and such
[14:01] Zha Ewry: last week.
[14:01] Zha Ewry: So lots of things I'd love to be able to contrrol on the sim :-)
[14:02] Zero Linden: one could easily imagine custome viewers that have special shaders in 'em and then some way for objects
[14:02] Zero Linden: to invoke that shader behavior if running on viewer that has 'em
[14:02] Zha Ewry: Wow. This was incredbly useful Zero. Hope it was for you. I'll try and update my blob comments a bit. and think about some of your comments
[14:02] Zero Linden: Zha - yes - though realize, like all server tuning, the more parameters you have, the better performance you can achieve, but the more compicated it is for people to manage it
[14:03] Zha Ewry: Hey I race saliboats. More strings, more fast. or more slow.
[14:03] Zha Ewry: so, yes.
[14:03] Zero Linden: and - one has to realize that you can only do so much, even with so many knobs
[14:03] Zero Linden: (thinks of tuning squid, or apache, or mysql....)
[14:03] Zha Ewry: Yep. 1 cpu, 512M of memory, etc.
[14:03] Zha Ewry: But, there are cases where we can play those off well
[14:04] Zero Linden: It is great - I'm very happy with my office hours experiences - and have been talking up how good they are inside of LInden
[14:04] Zha Ewry: Thanks again Zero, as always. Really focused discussion today
[14:04] Zero Linden: Thanks all for coming
[14:04] Zero Linden: See you next time.
[14:04] Kooky Jetaime: Thank you Zero
[14:04] Vitis Obviate: very valuable info - ty
[14:04] Drewan Keats: Thanks Zero.
[14:04] Hiro Market: ty zero, aoppreciated
[14:04] Zha Ewry: Thanks everyone, actually, very good discussion today

--Dr Scofield 01:57, 20 March 2007 (PDT)