User:Zero Linden/Office Hours/2007 Apr 03

From Second Life Wiki
Jump to navigation Jump to search

Transcript of Zero Linden's office hours:

[13:03] Kelly Linden: Not necessarily khamon - if you generate your avatars textures on this sim, then go to another sim, anyone that sees you there will end up getting your textures from here.
[13:03] Khamon Fate shouts: Hey Zero
[13:03] Jonash Vanalten: hiya
[13:03] Khamon Fate: Oh ah yes well that's something I didn't know.
[13:03] Zero Linden: hello all
[13:03] Kelly Linden: So we have a fixed amount of disk space for avatar baked textures and routinely clean out the old ones.
[13:03] Khamon Fate: How come we don't have a user account server that stores our av bakes?
[13:04] Khamon Fate: because people change so often?
[13:04] Kelly Linden: But Zero is here! Hi Zero, didn't mean to hijack.
[13:04] Zero Linden: Ah, sure ya did!
[13:04] Zero Linden: But welcome
[13:04] Zero Linden: I see that Donovan is going to come hijack too!
[13:04] Khamon Fate: Hijacker Kelly, at a machinima cinema near you!
[13:05] Zero Linden: Wow - light turn out today....
[13:05] Zero Linden: I suppose we'll wait a little bit more
[13:05] Donovan Linden: I'm lurking
[13:05] Jonash Vanalten: hi, I'm not sure if this is the right forum, but I've got a few technical problems
[13:05] Zero Linden: Jonash- this isn't actually
[13:05] Khamon Fate: Hi Donovan
[13:05] Zero Linden: The purpose of these office hours
[13:05] Zero Linden: is to discuss the technical architecture of SL
[13:06] Zero Linden: we discuss both how the current system is put together
[13:06] Zero Linden: how Linden Lab is thinking of changing it in the future
[13:06] Zero Linden: and how architecture can help what residents whant to accomplish in SL
[13:07] Zero Linden: Each week, we usually tackle two or three topics in depth
[13:07] Zero Linden: exploring where things are now, and where they might be
[13:07] Jonash Vanalten: ok
[13:08] Zero Linden: If you came to find out why some problems are the way they are or what is root cause of them -- great -- we just won't be able help in the short term
[13:08] Zero Linden: Now
[13:08] Zero Linden: Nomally, this group is focused on infrastructure, messaging (between software processes) and large architeture --
[13:08] Zero Linden: -- since that is what I do at Linden Lab
[13:09] Jonash Vanalten: ok, I may have some input as I run the busiest region in SL at the mo
[13:09] Zero Linden: Today we have a two guests - Kelly and Donovan
[13:09] Zero Linden: Perhaps, they should intorduce themselves and say a little about what areas of the system they work on
[13:09] Zero Linden: And
[13:09] Zero Linden: as always.....
[13:09] Zero Linden: the transcript will posted publically on the wiki -- speak freely, speak in the open
[13:09] Zero Linden: .
[13:10] Zero Linden: Kelly?
[13:10] Kelly Linden: I'm Kelly!
[13:10] Kelly Linden: ;)
[13:10] Zero Linden passes a baton to Kelly
[13:10] Khamon Fate: You move like the wind Dnate.
[13:11] Kelly Linden: I've been working at LL for 3 years (as of last friday). I've done development for many parts of our system but mostly backend stuff. Lately I have been concentrating on scaling efforts.
[13:11] Dnate Mars: :) Spelling any better, Khamon?
[13:11] Donovan Linden: I'm Donovan, I work with Zero in Studio Icehouse on the message system changes
[13:11] Khamon Fate: Yet
[13:11] Khamon Fate: s
[13:11] Kelly Linden: Which is to say, improvements with how and where we store data on the databases so that we can handle higher and higher concurrent user counts.
[13:12] Zero Linden: Kelly- what's the most recent
[13:12] Zero Linden: change you did for scaling?
[13:12] Donovan Linden: And we're working on the protocol so it recovers better from network congestion and generally pushes more bits through wires
[13:12] Zero Linden: oops, didn't mean to step on Donovan's typing...
[13:13] Donovan Linden: It's a concurrent conversation
[13:13] Kelly Linden: Well, we have multiple databases, specifically we have several user or inventory databases and each user has their inventory, IMs and other misc data stored on them. However we were storing which DB your stuff was on in our central DB.
[13:13] Vitis Obviate smiles at the irony
[13:14] Kelly Linden: My most recent change was to move that data - which DB has your stuff - over to the scalable webservices.
[13:14] Kelly Linden: Cut about 5million queries per day off the central db.
[13:14] Zero Linden: now, that data is still in the central DB, it is just cached in these web servers?
[13:15] Kelly Linden: Yup, thats true.
[13:15] Donovan Linden: and those queries are now going to web services distributed across multiple machines (the "backbone" architecture)
[13:15] Zero Linden: It is, ultimately, a global piece of state
[13:15] Kelly Linden: The actual count was 5million+ queries per day to 28k queries per day
[13:15] Khamon Fate: 5 million is what percentage of the All Hail The Central Datatbases load
[13:15] Khamon Fate: Sorry, old habits die hard.
[13:16] Kelly Linden: Yup exactly. I did a similar thing for user names but that won't go out until 1.14.1
[13:16] Kelly Linden: Hm, Peak load is around 2k QPS
[13:16] Zero Linden: So, this brings up a good future architecture issue....
[13:16] Khamon Fate: good heavens
[13:17] Zero Linden: As the system gets bigger, we need to distribute the load of where we store things across multiple servers
[13:17] Kelly Linden: Khamon - I cut roughly 56 qps. so ... relatively small.
[13:17] Zero Linden: In some cases, like presence, we can simply divide the key space (in that case avatar ID) up and parcel it off to separate servers
[13:18] Khamon Fate: It's good to know the context though, thanks.
[13:18] Khamon Fate: And it will add up over time.
[13:18] Zero Linden: each requesting service "knows" the division and can ask the right server for the answer it seeks:
[13:18] Vitis Obviate: hardwired, or DNS like?
[13:18] Zero Linden: "I want 1234s' info, I'll go ask When I want 5678's and 5999's I'll ask"
[13:18] Khamon Fate: one service after another
[13:19] Zero Linden: But, some things, like which inventory server an agent is on, can't be done like that... there needs to be central list, it isn't computable, and it changes (as we move agents from one inventory server to another)
[13:19] Zero Linden: In these cases
[13:19] Zero Linden: we're doing what Kelly just did, putting a layer in front with a well known partitioning
[13:20] Zero Linden: In general, for things avatar releated, ONCE we know which partitioned service to talk to for a given avatar
[13:20] Zero Linden: then we can scale as far as we need to
[13:20] Zero Linden: but answering that first question, efficeintly, is the crux of the problem
[13:21] Zero Linden: we will have the same issue with regions ....
[13:21] Zero Linden: Kelly, how many partitions do we have now for that query?
[13:22] Kelly Linden: hm? The inventory host query? I think 4 - it exists on the same partitioning as the agent presence service
[13:22] Donovan Linden: yes 4
[13:22] Zero Linden: So 4 servers to reduce the query load down by a factor of 178....
[13:23] Zero Linden: not bad....
[13:23] Khamon Fate: Are you segueing into presence not working properly?
[13:23] Zero Linden: well, we can play the division game for a long time
[13:23] Zero Linden: right now, each partitioned server is seeing about 250 requests/second for agent presence
[13:24] Zero Linden: and Kelly's new service adds another 14
[13:24] Zero Linden: We believe that those servers can handle perhaps 500 or 600 /second
[13:24] Donovan Linden: they still have tons of headroom
[13:24] Zero Linden: but, we can simply divide again - and go from 4 to 8 to 16 servers easily
[13:24] Donovan Linden: I checked when there was some unknown fire yesterday
[13:24] Khamon Fate: Yet Jarod and I can't see each other online, even in the same sim.
[13:24] Kelly Linden: And I keep adding to em muahahah.
[13:25] Kelly Linden: The name cache will go there too.
[13:25] Donovan Linden: you sure you've granted him the permission to see your presence?
[13:25] Zero Linden: There is somthing currently not quite right going on with friendship visibility
[13:25] Khamon Fate: Yes we've checked that.
[13:25] Donovan Linden: the store is stable -- anything built on top of it I can't guarantee :)
[13:25] Zero Linden: if it isn't gotten right at sign on, then you'll be out of luck until they change state (meaning go off line), by which time it is obviously too late!
[13:26] Khamon Fate: Is it just a bug then, not a database overload issue?
[13:26] Dnate Mars: I have seen that same problem before, usaually it can be fixed by re-freinding
[13:26] Vitis Obviate: yes...friendship visibility is definately borked sometimes...inworld...yet on the website seems accurate. Can u comment on why they'd be different?
[13:26] Khamon Fate: ha ha that's like saying when enough people are logged out, the world stabilizes, problem solved ha ha
[13:26] Dnate Mars: It seems that some people I will never see on line even if they are, and other I never have a problem with
[13:26] Jarod Godel: Hence the need for a Refresh button
[13:26] Zero Linden: The website queries the state of each of your friends each time you open it
[13:26] Donovan Linden: visis: because the website asks the store directly, which is accurate, as I just mentioned
[13:27] Donovan Linden: but the sim obvioulsy has a bug where it's keeping a bad cached copy
[13:27] Zero Linden: The sim/viewer dance tries to only ever send you updates
[13:27] Khamon Fate: Actually, the website list is always current, the inworld list is not.
[13:27] Zero Linden: What you are seeing is a symptom of the initial state transfer from the sim to the viewer gone awry
[13:27] Khamon Fate: Ah okay so my list is bad because the sim transmitted it that way.
[13:28] Zero Linden: Then, once your viewer has the wrong state for your friend, since you friend is still on line, there is no more updates
[13:28] Donovan Linden: sounds like a bug, yes
[13:28] Khamon Fate: Hence the need for a refresh button.
[13:28] Dnate Mars: Is it a factor of the name cards? Because it always seems to be the same people I have trouble with
[13:28] Zha Ewry recalls this topic from last week
[13:28] Donovan Linden: no, we should just fix the bug
[13:28] Khamon Fate: Should we just throw out our old namecards?
[13:28] Dnate Mars: lol, I like your thinking Donovan
[13:28] Zero Linden: Well, I don't know where in the chain the initial friends list got borked.... but yes, somewhere
[13:28] Khamon Fate: We *did* talk about this last week yes never mind.
[13:28] Zero Linden: Khamon - no, this list get retransimitted on log in - so
[13:28] Zha Ewry: /fwiw I always see *everyone* on ot *nobody on*
[13:29] Zero Linden: that won't really help
[13:29] Zha Ewry: *or*
[13:29] Zero Linden: refriending helps the current session, as it is a set of updates
[13:29] Zero Linden: (defriend, add friend)
[13:29] Zero Linden wonders if "defriend" is a verb...
[13:29] Zero Linden likes the symetry of "defriend" and "befriend"
[13:29] Khamon Fate: Well yeah because that prompts the sim to generate and transmit a "new" list
[13:30] Jarod Godel: Yes, it is.
[13:30] Jarod Godel: At least to Livejournalers
[13:30] Zha Ewry: /sometimes an IM exchange gets SL to notice firinds. Sometimes not
[13:30] Donovan Linden: Khamon: You probably did the friending operation during a time where there was a bug in it. Or something.
[13:30] Zero Linden: Ah, welcome Hiro and Zha - though you were out today
[13:30] Zha Ewry:
[13:30] Zha Ewry: is my friend at the moment
[13:30] Hiro Market nods, missed the time :-)
[13:31] Khamon Fate: Thanks Zha, I'll try just refriending everyone and see if that works.
[13:31] Zha Ewry: (heh. it takes longer to drive from PA to NY... then I'd like, Icky RL traffic. and TP was down)
[13:31] Vitis Obviate smiles at Zha and hiro -- didn't realize they were online
[13:31] Jarod Godel: You should totally make that page RSS accessible.
[13:31] Donovan Linden: the web page hits the partitioned central agent presence store, so it should be accurate
[13:31] Jarod Godel: err, XML
[13:32] Khamon Fate: Demanding much Jarod?
[13:32] Donovan Linden: excellent idea... we'll be exposing more data over llsd web services sometime soon hopefully
[13:32] Zero Linden: Jarod - though to be honest, we are a bit scared of that page and/or RSS feed getting hit so heavily it kills us.....
[13:32] Jarod Godel: Zero, cache it
[13:32] Donovan Linden: I'd like to see every piece of sl data available over services
[13:32] Zha Ewry nods.. Cache
[13:32] Zero Linden: And yes, the queries from the web server to the agent presence service is cached (squid), but
[13:32] Donovan Linden: people hit the normal friends web page with robots over and over and it's all cached
[13:32] Zero Linden: it doesn't seem to help too much...
[13:32] Jarod Godel: Or put a limit up and block IP's that kit more than once every few minutes
[13:32] Khamon Fate: Zero, that was easy, why don't we perpetrate more of that kind of education on the users
[13:33] Jarod Godel: I think does that
[13:33] Jarod Godel: You can only hit their rss every 30 min. or they block your ip
[13:33] Khamon Fate: Teach them that the software has limitations and they'll have to live within those limits if they want their experience to be pleasant
[13:33] Jarod Godel: Demand much, Khamon?
[13:33] Zha Ewry: Well. Heh. Users *hate* that lesson
[13:33] Zero Linden: though, see, for RSS of news (or link lists), 30 min. is probably fine
[13:33] Donovan Linden: we already have some of that with the script "charge" system
[13:33] Donovan Linden: we should do that more
[13:33] Zero Linden: for friends on line, you really need minute level accuracy
[13:34] Zha Ewry nods... yeah.. or better..
[13:34] Jarod Godel: Zero, yeah, but... Setup a second server
[13:34] Zha Ewry: since the social networking is key
[13:34] Vitis Obviate: abosolutely
[13:34] Jarod Godel: when someone logs on, have it ping that server, same when they log off
[13:34] Zero Linden wonders how accurate Skype's presence info is....
[13:34] Jarod Godel: maybe 2
[13:34] Jarod Godel: it's one MySQL table
[13:34] Khamon Fate: good question, who skypes?
[13:35] Jarod Godel:
[13:35] Kelly Linden: Skype always screws up my presence
[13:35] Kelly Linden: Usually says I'm not online when I am
[13:35] Zha Ewry: Sounds to me... as if you need a proposal for a robust web page. for presence. and we can offfer critique, if you'd like
[13:36] Jarod Godel: Zha, not a web page, a web service.
[13:36] Zero Linden: well - at present, that one isn't super high on our lists....
[13:36] Zha Ewry: Wel.. yeah
[13:36] Zha Ewry: But, a URL mediated enpoint
[13:36] Zha Ewry: with whatever you care backing it up
[13:36] Zero Linden: So - I thought I'd spill some beans on small pile of coding that went on last Friday....
[13:36] Zha Ewry: And we can throwe darts at it
[13:36] Donovan Linden: uh oh :)
[13:37] Donovan Linden: don't get their hopes up!
[13:37] Donovan Linden: hehe
[13:37] Jarod Godel: I've abandoned all hope.
[13:37] Jarod Godel: No worries
[13:37] Zero Linden: Friday was end of quarter, and all Lindens were supposed to be doing quartery reviews and setting quarterly goals
[13:37] Dnate Mars: lol, like HAVOK 2 and sppedtree?
[13:37] Zero Linden: then aftewards there was an afternoon of food and games
[13:37] Khamon Fate: wrong button
[13:38] Zero Linden: a few of us decided our idea of a network game was....
[13:38] Zero Linden: ...coding!
[13:38] Zha Ewry giggles. Hackers.
[13:38] Jarod Godel: Core Wars?
[13:38] Zero Linden: So, internally, there is already a branch to support fetching textures from the asset server to the viewer via HTTP
[13:38] Zero Linden: Donovan here was one of the main coders on that effort....
[13:39] Zero Linden: So we though, how easily could we subvert that code base to get externally hosted textures????
[13:39] Donovan Linden: I <3 http
[13:39] Jarod Godel: Quite easily?
[13:39] Khamon Fate loves this line of conversation
[13:39] Zero Linden: 150 lines of code later we had a working version
[13:39] Hiro Market: lol
[13:39] Jarod Godel: llSetTexture2Url(string url, int type);
[13:39] Zero Linden: So there is a grid at Linden now where you can do exactly that Jarod
[13:39] Zero Linden: no
[13:39] Zero Linden: wait
[13:39] Zero Linden: it is easier
[13:39] Zero Linden: llSetTexture(url, face)
[13:39] Donovan Linden: jarod: it's actually just overloaded on the normal texture setter
[13:40] Jarod Godel: face is an int
[13:40] Zha Ewry leans toward Zero.. listening intently.. while... looking to see if Donovan starts twitching
[13:40] Zero Linden: Indeed, it works with all the LSL texture setting cals
[13:40] Khamon Fate: you're fracin me
[13:40] Zero Linden: no, really - it works
[13:40] Jarod Godel: but it has to be jpeg2000?
[13:40] Jarod Godel: (well, not but, sorry)
[13:40] Donovan Linden: at the moment the texture has to be j2c
[13:40] Dnate Mars: wow
[13:40] Zha Ewry can get atexture into any format
[13:40] Jarod Godel: That's cool. It's a superior format anyway.
[13:41] Jarod Godel: /em clap
[13:41] Zha Ewry: xforms are easy
[13:41] Khamon Fate: That's reasonable for now
[13:41] Donovan Linden: but I was working on another web service which takes a url as input, downloads it, and converts it to j2c on the output
[13:41] Khamon Fate: That's even better, maybe
[13:41] Jarod Godel: Donovan, server or client side?
[13:41] Donovan Linden: I didn't finish that friday, though
[13:41] Vitis Obviate checks...and it appears today is another friday
[13:41] Khamon Fate: gotta be client side jarod
[13:41] Donovan Linden: server-side -- a web service
[13:41] Zero Linden: So, this feature is far from finished
[13:41] Khamon Fate: the whole point is to not have to go through the server
[13:41] Zero Linden: Khamon - I think donovan means external server side
[13:42] Donovan Linden: right
[13:42] Donovan Linden: no, the point in this case is the service which coverts to j2c is not run by linden
[13:42] Zha Ewry: But... proof of concept... and all.. Should push people towards getting it done
[13:42] Zero Linden: There are some design issues to design - so here's a quick list:
[13:42] Donovan Linden: the whole point here is to distribute load
[13:42] Zha Ewry nods... Yes. Yes. Load spread.
[13:42] Donovan Linden: well one point
[13:42] Khamon Fate: Oh I thought you were writing the converter into the client code
[13:42] Zero Linden: 1) Who fetches? external server -> sim host -> viewer or external server -> viewer
[13:42] Zha Ewry: Happy, unloaded sim.. :-)
[13:43] Zero Linden: 2) Formats? j2c only, or... what do we need......
[13:43] Zha Ewry: 2) start simple.. add function later...
[13:43] Zero Linden: 3) Limits? can you put a 4kx4k texture on a prim...
[13:43] Jarod Godel: PNG, JPEG, BMP at least
[13:43] Donovan Linden: anyone here working wiith the open source client and libjpeg?
[13:43] Zero Linden: 4) LSL only? or edit panel UI to set it as well?
[13:43] Zha Ewry: Jarod... long term or short... ?
[13:43] Jarod Godel: wait. (1) server->viewer, best distribution of load.
[13:44] Jarod Godel: (2) anything PHP's gd library can generate
[13:44] Zha Ewry: 4) LSL first...
[13:44] Jarod Godel: (3) yes
[13:44] Zha Ewry: I'll wait for a panel.
[13:44] Zero Linden: 5) Caching? The viewer caches a texture forever... do we need to support Expires: Reload? user-choosen reload?
[13:44] Jarod Godel: (4) if it ends up with the url as a database uuid, does it matter?
[13:44] Zha Ewry: Long term, I agree with Jarod.. Short term I'll take function
[13:44] Jarod Godel: 5) lsl reload, client caching
[13:45] Zero Linden: 6) Exposure? External server can see viewer's IP? Viewer can see external server URL
[13:45] Zero Linden: okay there's list
[13:45] Khamon Fate: ditto Zha's mostly ditto of Jarod
[13:45] Jarod Godel: 6) viewers can already see that with Quicktime
[13:45] Zha Ewry: 5) You want to keep caching consisent with other textures.. else you'll end up having odd resynch issues
[13:45] Hiro Market: how about moding client so the web texture can be pulled and merged with the existing texture
[13:45] Zha Ewry: 6) Visibitlity is ok..
[13:45] Hiro Market: multitexturing on the cheap
[13:45] Khamon Fate: Gee whiz Jarod you talk like the viewer *is* the world.
[13:45] Zero Linden: Hiro- that wold be more work than this simple functionality
[13:46] Jarod Godel: Hiro, i think that should be done on the user's server's side -- PHP, ImageMigick, .NET have libraries for that.
[13:46] Zero Linden: And I'm glad to see that so far no one is concerned about visibility, since if we do the better for load direct fetch, we've got that
[13:46] Hiro Market: true, but H is just trying to push in that direction
[13:46] Zero Linden: of course, due to reload / time / etc.... that gives more opportunity for folks to be seeing different views of the same prim
[13:46] Jarod Godel: well, thank you guys.
[13:46] Jarod Godel: /em clap
[13:47] Jarod Godel: Zero, you mean, like qith QuickTime, web pages, podcasts...
[13:47] Khamon Fate: Why would we be concerned about visibility. If we want to "protect" the texture, we can upload it so people have to "steal" it from their cache rather than directly off our servers.
[13:47] Jarod Godel: ...City of Heroes graphics, particles, blog feeds...
[13:48] Zero Linden: Sure - if I set a face to be ""
[13:48] Zero Linden: where that updates every minute
[13:48] Khamon Fate: We already see different views of the same prim, we have a myriad of settings that determine what we see individually.
[13:48] Zero Linden: you and I will see different images - the image that was fetched when our viewer grabbed it
[13:48] Jarod Godel coughs: particles.
[13:48] Khamon Fate: particles, trees, avatar details, shiny, water ripple
[13:48] Dnate Mars: Having the texture from the web, how do you get around the bandwidth form the website that is hosting the image? And what do you do if the image is not availible?
[13:48] Khamon Fate: you want the whole list
[13:49] Zero Linden: True enough - in the absolute sense, but the design of SL generally has paid great attention to making the differences be below a certain threshold
[13:49] Khamon Fate: The same thing you do when people leave plywood lying around, assume their slacking and move on
[13:49] Zero Linden: I'd really hate to be arguing with you over the pattern on this rug - it would break the spell
[13:49] Zero Linden: none the less
[13:50] Khamon Fate: I wouldn't argue. If you wanted to see a pink rug and I coloured it yellow in my viewer, we'd both be happy.
[13:50] Zero Linden: another aspect of the current design is that if you use the same URL for serveral faces, it will ony be fetched once... which is what I think you'd expect
[13:50] Khamon Fate: Unless one of us a raging control freak that insists everyone see exactly the same thing all the time
[13:51] Zero Linden: well Khamon - just point it at static textures - and control away.....
[13:51] Kelly Linden: Caching may make things interesting though - we currently cache based entirely on name - it could be arbitrary when you will get an updated image, even logging in and out might not help.
[13:51] Zero Linden: Exactly- the caching semantics of HTTP are much richer than the caching semantics of our asset server
[13:51] Khamon Fate controls
[13:52] Jarod Godel: Zero, about the cache.
[13:52] Zero Linden: It is quite a bit more than 150 lines of code to support them in our viewer's texture system
[13:52] Jarod Godel: If we all have The Same View, does that mean I won't be able to view a personalize HUD?
[13:52] Donovan Linden: zero: support "them"?
[13:52] Zero Linden: "them" = HTTP caching semantics
[13:53] Donovan Linden: ah. yes
[13:53] Zero Linden: Jarod - the right way to do that would be for the HUD object to set it's texture to a URL that includes the AV id
[13:53] Kelly Linden: Or an unguessable URL
[13:53] Zero Linden: not to have them all set to the same URL and somehow serve different images to different viewers
[13:53] Jarod Godel: Right now, I have QuickTime setup so I could use a public terminal and see my Flickr feed and someone else could see theirs. If we all See The Same View, will I have to use Quicktime for such things?
[13:54] Jarod Godel: (Not a HUD, but the same idea)
[13:54] Zero Linden: remember - there will be NO way for the external server to authenticate which AV 's viewer is making the request
[13:54] Khamon Fate: Sorry, to answer your question Dnate, my builds having textures supplied by an inferior source is the same as one of my web links or pics being broken. It's sloppy and lazy of me to not maintain it and that says something about me, not the platform or the world.
[13:54] Zero Linden: Jarod - well, no you could do sort of the same thing... but how does the quick time feeder know which IP is which AV?
[13:54] Jarod Godel: Zero, avatar key
[13:55] Khamon Fate: Having missing textures all over is no worse than having missing textures, or plywood all over the world is now.
[13:55] Donovan Linden: jarod: if you apply a url to a face, everyone will fetch that url. if the server reutrns the same data every time, everyone will see the same thing
[13:55] Kelly Linden: It is possible via LSL to send a different URL for a feed to each viewer
[13:55] Khamon Fate: Yeah Jarod for most building applications, we're just talking about static texture application.
[13:55] Kelly Linden: I don't think that will be possible with the external textures
[13:55] Donovan Linden: we could put the avatar id header in the http texture fetches
[13:55] Jarod Godel: I'm not complaining (or asking for a change) just confirming that in some cases, QT will be preferable over llTexture2Url
[13:56] Zero Linden: Kelly- really? oh
[13:56] Dnate Mars: But if the server is down for a short time, won't it cache the not found? How will it know to try again for that imagae?
[13:56] Khamon Fate: No, it would have to be done with QT and that only works for one texture on a parcel.
[13:56] Hiro Market imagines tho sections of SL would decay as external textures went offline and the builds not maintained
[13:56] Donovan Linden: jarod: I can't think of any cases
[13:56] Kelly Linden: Yeah Zero, little known feature I put in when implementing the LSL hooks.
[13:56] Zero Linden: Dnate - those are indeed possibly problems
[13:56] Zero Linden: like, we'll need a, ick, "reload" button ?
[13:57] Khamon Fate: Yeah caching will have to be forced from the server by the builder "refreshing" the texture if they want another one applied under the same name.
[13:57] Dnate Mars: There would have be to a way to know when the image changes on the site
[13:57] Jarod Godel: Donovan, there are some. Without going into it, i'm working on a project now where QT would be preferable -- barring drastic interface changes.
[13:57] Khamon Fate: That's not a problem, it just puts the odus on the builder.
[13:57] Zero Linden: Khamon - another design consequence is taht using llSetTexture(URL, face) to set it to the same URL will NOT cause a refresh
[13:57] Zero Linden: you'd have to alter the URL somehow....
[13:58] Jarod Godel: But I can live with that. Hey, if I can build my Batcomputer with multiple screens, I can life with having to use QT for one. :)
[13:58] Zero Linden: Jarod -
[13:58] Dnate Mars: I have to run, but I also must ask, Donovan, do you have a Linden Bear?
[13:58] Khamon Fate: Well that's true; but I don't see that as a problem as I'm talking about pulling static textures, not dynamic applications.
[13:58] Zha Ewry grins, and thinks a few linden bears might be nice :-)
[13:58] Vitis Obviate: llRefetchTexture(URL,face)?
[13:58] Zero Linden: another question is, for objects in world, should they really look different for different folks - or rather should each copy of the bat computer be set to show a particular folks
[13:59] Khamon Fate: If I want to change a texture now I have to edit the build and apply a new one. Why should that be different just because the texture is grabbed from an external web server?
[13:59] Zero Linden: the later is the HUD solution ( we all have different HUDs, so they all ahve different texture URLs)
[13:59] Jarod Godel: Zero, if I setup a Bat-world where the batcomputer is giving out missions, yes.
[13:59] Jarod Godel: If Jarod is fighting the joker and has to get info, I don't want to interrupt Khamon's research on Catwoman
[13:59] Khamon Fate: bye Dnate
[13:59] Zero Linden: Khamon - it isn't ... but at present there is no way to say "that URL ... which was down 10min ago... it's up now - all viewer's please referesh it...."
[13:59] Donovan Linden: no no bear yet
[13:59] Dnate Mars things he is away
[13:59] Zero Linden: but perhpas that is the simple solution....
[14:00] Khamon Fate: Oh I see
[14:00] Zero Linden: add llRefreshTexture(URL)
[14:00] Zero Linden: but then there all sorts of issues withthat....
[14:00] Zero Linden: hmmmm
[14:00] Khamon Fate: hm, can the viewer just check ever so often, on a timer that we can set in our preferences
[14:00] Zero Linden: well, as long as we limit it to textues used in the prim (object?)
[14:00] Khamon Fate: so it stays in a reasonable frame
[14:01] Zero Linden: Khamon - that gets into implemetnting the full HTTP caching semantics....
[14:01] Zha Ewry: Just as long a we keep it sane, on the prim faces...
[14:01] Khamon Fate: yet gives the option of prolonging it if we don't care to devote much processing time to it
[14:01] Zero Linden: which we may not be able to avoid....
[14:01] Jarod Godel: /em clap
[14:01] Jarod Godel: Good show, guys!
[14:01] Zero Linden: okay - well - that was my little item for the day!
[14:01] Jarod Godel: /em clap
[14:01] Zha Ewry: /nice item
[14:01] Zha Ewry claps
[14:01] Zero Linden: It is 2pm ...
[14:01] Vitis Obviate: /cool
[14:01] Khamon Fate: Yeah even if it's just static LSL for now, that's gotta help lighten the load as we start using it.
[14:01] Zero Linden: anything that folks would like to get on the discussion schedule?
[14:02] Khamon Fate: I'm loving llSetLinkTexture()
[14:02] Zero Linden: Also, I want to thank Kelly and Donovan for being here today
[14:02] Khamon Fate: It works great for the trees.
[14:02] Zha Ewry: yes. Yes.!
[14:02] Zha Ewry: Cool to see you folks
[14:02] Jarod Godel: Arrays? Would still love for LSL to have those.
[14:02] Zha Ewry: We don't bite yous ee
[14:02] Khamon Fate: Thank You Kelly and Donovan, exciting news all around.
[14:02] Vitis Obviate nods thanks to Kelly and Donovan
[14:02] Hiro Market chips in thanks too
[14:02] Zha Ewry: Even if we do beg for bears :-)
[14:03] Khamon Fate: Somebody bonk Jarod on the head with that hammer.
[14:03] Zero Linden: Jarod - I'll see if I can entice Babbage to come to one of these and discuss the development trajectory for languages
[14:03] Jarod Godel: w00t!
[14:03] Jarod Godel: /em clap
[14:03] Zha Ewry: Yes. yes.. Please, please.
[14:03] Zha Ewry: We'll be nice
[14:03] Hiro Market: seconded
[14:03] Vitis Obviate: is Baggage also working on the revised Search?
[14:03] Vitis Obviate doesn't promise anything
[14:04] Zero Linden: Vitis, no, I don't think so
[14:04] Jarod Godel: Zero, mind if I ask a question? It might be Babbages territory, though...
[14:04] Zero Linden: Sure if it is quick - I've got to run
[14:04] Jarod Godel: How hard would it be to implement something like #include in LSL?
[14:04] Zero Linden: Jarod - right now - hard!
[14:04] Khamon Fate: Maybe Daniel can come talk about the new land management tools too?
[14:04] Jarod Godel: I figured so. Thanks!
[14:04] Jarod Godel: /em clap
[14:05] Vitis Obviate: we we lobby for more fridays per week?
[14:05] Jarod Godel: llTexture2Url!!!
[14:05] Zero Linden: all right all - thanks for coming
[14:05] Zero Linden: I've got head out.....
[14:05] Zha Ewry: Thank you, as always
[14:05] Zha Ewry: for having us
[14:05] Vitis Obviate: ty Zero - good meeting
[14:05] Zha Ewry: This just gets better and better
[14:05] Hiro Market: thanks
[14:05] Zha Ewry: You're like an tech amassador now