User:Babbage Linden/Office Hours/2009 12 09

From Second Life Wiki
Jump to: navigation, search

Transcript of Babbage Linden's office hours:

[3:02] Cerdita Piek: Hello Babbage :)

[3:02] Nock Forager: Hi Babbage

[3:02] Johan Laurasia: Hey Bab

[3:02] Kaluura Boa: Hello

[3:02] Babbage Linden: Hi everyone

[3:02] Imaze Rhiano: hi!

[3:03] Babbage Linden: Let's give people a couple of minutes to turn up

[3:03] Johan Laurasia: got a quick question then

[3:04] Johan Laurasia: I'm trying to make a mechanical binary adder, and I need a decent way to make a physical pivot, any ideas?

[3:04] Gunter Vandyke: hi all

[3:05] Babbage Linden: OK, it's 5 past, so let's start

[3:05] Imaze Rhiano: fake it

[3:05] Johan Laurasia: yeah, was thinking about that using collision and llSetRot()

[3:05] Babbage Linden: This week we got a simulator with C# support deployed internally for evaluation by Lindens

[3:05] Babbage Linden: which is very exciting

[3:06] Babbage Linden: the feedback so far has been very positive

[3:06] Babbage Linden: we're currently setting up a test harness that can compile and run C# scripts at build time

[3:07] Babbage Linden: so as we find bugs we can set up automated regression tests for them

[3:07] Babbage Linden: I've reached out to product to find out when/how we can open the prototype up for evaluation by residents

[3:07] Babbage Linden: so I'll let you know about that

[3:08] Johan Laurasia: any ideas on how long before we can get a crack at it?

[3:08] Johan Laurasia: roughly

[3:08] Babbage Linden: not yet

[3:08] Babbage Linden: there is some more work we need to do on it first

[3:08] Babbage Linden: it's pretty crashy at the moment

[3:08] Babbage Linden: but the feedback we're getting from Linden's is helping find the worst bugs

[3:09] Babbage Linden: we need to move the prototype over to Mono 2 and implement the sandbox for scripts first

[3:09] Babbage Linden: so a few months of work

[3:09] Babbage Linden: but I'd like to make the API available before we have simulators available for test

[3:10] Babbage Linden: so you can look at the API and give feedback

[3:10] Babbage Linden: that should be sooner

[3:10] Pirka Quintessa: is there any documentation that describes the feature set ... for example, will we be to have pre-built libraries of objects that we can reference, that kind of thing?

[3:10] Babbage Linden: there is some very threadbare documentation that we've written for Lindens

[3:11] Babbage Linden: along with doxygen generated API docs

[3:11] Babbage Linden: I'd like to clean those up and make them available

[3:11] Imaze Rhiano: maybe setup somekind webpage that allows free discussion about API? (Discussion forum in - is crappy...)

[3:11] Babbage Linden: but I need to check with product first

[3:11] Pirka Quintessa: any timelines for document release? roughly?

[3:11] Babbage Linden: yes, I'll put them on the public wiki probably

[3:11] Babbage Linden: hopefully in the next few weeks

[3:11] Babbage Linden: but again, it depends on product

[3:12] Pirka Quintessa: nice

[3:12] Babbage Linden: we've also been firming up our plans for efficient scripts

[3:12] Babbage Linden: the minimum feature set will be llSetLinkPrimitiveParamsNoDelay

[3:12] Babbage Linden: llGetLinkPrimitiveParams

[3:12] Johan Laurasia: woot

[3:13] Becky Pippen: yay!

[3:13] Johan Laurasia: finally!!

[3:13] Babbage Linden: and a PRIM_TEXT constant for setting text on a linked prim

[3:13] Gunter Vandyke: this year? ㋡

[3:13] Kaluura Boa: About llSPP-ND.... Will the rotations also be... hmmm... nonsensical?

[3:13] Babbage Linden: early next year hopefully

[3:13] Babbage Linden: along with script limits

[3:13] Gunter Vandyke: great

[3:13] Babbage Linden: kelly wrote a hair resize script with the new functions

[3:14] Babbage Linden: and it uses 16K on LSL instead of 1664K

[3:14] Johan Laurasia: lol

[3:14] Nock Forager: <3

[3:14] Kaluura Boa: =^_^=

[3:14] Johan Laurasia: a tad more efficient then

[3:14] Johan Laurasia: lol

[3:14] Babbage Linden: for a 103 prim resizable hairdo

[3:15] Babbage Linden: so, a couple of orders of magnitude more memory efficient

[3:15] Johan Laurasia: just a few

[3:15] Babbage Linden: and easier to develop too as you only have to use 1 script, instead of managing lots of scripts sprinkled through the linkset

[3:16] Ardy Lay: That might cut down on "I can't teleport!" JIRA issues too.

[3:16] Babbage Linden: hopefully

[3:16] Johan Laurasia: yeah, so how do you get content creators with 50 or 100 hair products to go back and redo the scripts in all their items?

[3:16] Babbage Linden: you introduce script limits

[3:16] Johan Laurasia: I know it's an easy fix, but you're talking about them deleting hundreds of scripts from perhaps hundreds of items

[3:16] Babbage Linden: which limit the size of attached scripts

[3:17] Babbage Linden: and create a market ;-)

[3:17] Johan Laurasia: yeah, also, is there any consideration for some sort of script cost number simlar to ARC?

[3:17] Imaze Rhiano: I think that HUDs are also big user of scripts - like radars and other things like that - any plans to add client side scripting?

[3:17] Johan Laurasia: similar*

[3:17] Babbage Linden: johan, we're introducing script limits

[3:17] Babbage Linden: Imaze, yes, there are plans, but they are a long way off

[3:18] Johan Laurasia: yeah, I guess taht will force the issue.

[3:18] Babbage Linden: HUDs will benefit from the efficient scripts changes too

[3:18] Ardy Lay: SOmeone passed a game HUD to me that had well over 200 scripts in it.

[3:19] Babbage Linden: i've also continued to track down the problem with sim freezes on script rez

[3:19] Babbage Linden: it looks like a stall in the mono runtime

[3:19] Babbage Linden: so I'm now working with the mono developers to track it down

[3:19] Gunter Vandyke: will it be better to recompile all scripts in the region to LSL meanwhile?

[3:19] Babbage Linden: and we're planning to work on multithreading the rez/derez process next year

[3:20] Babbage Linden: which will hide the effects

[3:20] Babbage Linden: gunter, it's only an issue for mobile scripts

[3:20] Gunter Vandyke: ah ok

[3:20] Babbage Linden: if you have static scripts, you're better off using mono

[3:20] Babbage Linden: so, that's what I've been up to, anything you'd like to talk about?

[3:21] Gunter Vandyke: so this terrible lag will stay a while longer?

[3:21] Ardy Lay: Do you forsee needing a new simulator statistic related to multithreaded rez/derez?

[3:21] Babbage Linden: mono rezzing lag is not the only cause of lag

[3:22] Babbage Linden: there are many

[3:22] Babbage Linden: but we have plans to fix most of them

[3:22] Cerdita Piek: I would like to know more details in the progress of the freeze sim bug, as it affects us all.

[3:22] Babbage Linden: well, I have a callgrind profile of the simulator exhibiting the bug

[3:23] Babbage Linden: i need to get that to the mono developers so they can see what the problem is

[3:23] Ardy Lay: Is that stall getting longer as simulator uptime increases?

[3:24] Babbage Linden: I've tracked down the problem to to System.Reflection.Assembly::Load(byte[])

[3:24] Gunter Vandyke: yes ardy, it looks like this on my sim

[3:24] Babbage Linden: the code that implements that is inside the mono runtime

[3:24] Gunter Vandyke: must restart 4 times a day

[3:24] Babbage Linden: I was seeing 203 calls to that function taking 4s

[3:25] Imaze Rhiano:

[3:25] Babbage Linden: I had a single linked object with ~200 default scripts compiled to (different) mono scripts

[3:25] Babbage Linden: and when I rez it the sim would freeze for 4s

[3:25] Babbage Linden: so I'm reasonably sure this is the problem

[3:26] Babbage Linden: I could repro it consistently with a newly started sim

[3:26] Babbage Linden: so I don't think it's a problem that gets worse over time

[3:26] Babbage Linden: that lag may be due to simulator memory bloat

[3:26] Babbage Linden: we are testing the TCMalloc sims on aditi at the moment

[3:27] Babbage Linden: when we get TCMalloc in to production, we will be in a better place to analyse memory use over time in production

[3:28] Cerdita Piek: could it be possible to 'force' an automatic restart of the sim, when it detects that the memory is too laggy and too much, instead to wait a manual restart?

[3:28] Johan Laurasia: Andrew said a new employee with alot of Havok experience has SL running on Havok 7.

[3:29] Babbage Linden: cerditi, yes you could

[3:29] Babbage Linden: but it probably wouldn't be a good idea

[3:29] Babbage Linden: as you don't want it restarting in the middle of an event

[3:29] Babbage Linden: and it would be better if simulators could keep running indefinitely#

[3:30] Babbage Linden: yes, falcon linden has just started in core and has a lot of havok experience

[3:30] Babbage Linden: i didn't know he had sl working with havok 7 though

[3:30] Babbage Linden: very cool

[3:30] Johan Laurasia: I heard he had it running under windows, not Linux yet

[3:30] Cerdita Piek: well, if the event is lagging everybody to a time dialtion lesser than 1.25 and with sim freezes of 30 seconds evert 2 minutes, i think it would be the only solution

[3:30] Cerdita Piek: 0.25, i mean

[3:31] Babbage Linden: cerdita, yes, but i'd like to know why the sim is lagging and fix it

[3:31] Babbage Linden: rather than just let performance degrade and restart

[3:31] Morgaine Dinova waves quietly to all

[3:31] Babbage Linden: don't fret: we are looking at it

[3:32] Babbage Linden: and have more engineer time assigned to lag and freezes next year

[3:32] Cerdita Piek: i was thinking on that as a temporal solution until you can finish the fix. :)

[3:33] Johan Laurasia: it's fairly easy to get LL to reboot a sim that needs it bad enough.

[3:34] Ardy Lay: Support is good at restarting mainland regions when I ask them to do so. I am sure they look it over first to make sure it needs to be restarted.

[3:34] Gunter Vandyke: limitate attached scripts will help, ppl arrive on my sim with 300 scripts in hair and my sim stops for 20 seconds

[3:35] Johan Laurasia: We got them to restart an estate sim once too.

[3:35] Babbage Linden: right, gunter, that sounds like the mono rez sim freeze that I'm looking at

[3:35] Gunter Vandyke: and on my sim every 2 minutes soneone arrive

[3:35] Gunter Vandyke: L ㋡ L

[3:36] Babbage Linden: It's strange as we tested Mono script rezzing when we were developing Mono and it worked fine with no pauses

[3:36] Gunter Vandyke: anything we can do meanwhile?

[3:36] Babbage Linden: we haven't made many changes to that code

[3:36] Babbage Linden: and we haven't upgraded Mono

[3:36] Babbage Linden: so, I don't know what's changed to cause the problem

[3:36] Babbage Linden: possibly some interaction between the runtime and the os

[3:36] Ardy Lay: Did the underlying OS get changed?

[3:37] Babbage Linden: we deploy security patches

[3:37] Babbage Linden: and the simulator hosts have gone from running debian sarge to debian etch since we shipped mono

[3:38] Babbage Linden: anyway, I'll be working with the mono engineers this week to look in to it

[3:38] Imaze Rhiano: How are memory limitis coming together? When we can see script memory usage? :P

[3:38] Morgaine Dinova: Maybe those security patches broke the non-blocking mode of something.

[3:39] Babbage Linden: script limits just needs the UI developing

[3:39] Babbage Linden: which is going to happen in the next couple of weeks

[3:39] Babbage Linden: we have all the analysis we need doing to determine the limits

[3:39] Babbage Linden: but need to discuss them internally

[3:40] Babbage Linden: to try to find the sweet spot between improving sim performance and inconviniencing heavy script users

[3:40] Babbage Linden: once that's done Jack is going to take the job of communicating the limits

[3:41] Babbage Linden: the UI should be available in the next major version of the viewer

[3:41] Babbage Linden: which will be available next year

[3:41] Kaluura Boa: Will we also have Top Scripts on parcel?

[3:42] Babbage Linden: kaluura, the UI will include a top scripts style list of scripts

[3:42] Kaluura Boa: Good

[3:42] Morgaine Dinova: Per parcel?

[3:42] Babbage Linden: that will include functionality for finding and returning scripted objects

[3:42] Babbage Linden: so everyone will be able to find and clean up the scripts they don't need

[3:43] Babbage Linden: before we start enforcing limits

[3:43] Cerdita Piek: Could someone 'return' an attachment?

[3:43] Morgaine Dinova: But Kaluura asked whether "per parcel" or not.

[3:43] SirMartinRJ Lupindo: I think 'returning' an attachment is a feature which only Lindens should be allowed to use.

[3:44] SirMartinRJ Lupindo: that's like pulling some skirt off from a person IRL

[3:44] SirMartinRJ Lupindo: xD

[3:44] Babbage Linden: the scripts you can see depend on who you are

[3:44] Gunter Vandyke: but disable special attached script would be fin

[3:44] Johan Laurasia: yeah, I dont see that happening

[3:44] Babbage Linden: everyone can see their attachments

[3:44] Babbage Linden: no one else can see or return your attachments

[3:44] Babbage Linden: if you are a parcel owner you can see the scripted objects in your parcels in the region

[3:45] Babbage Linden: if you are a region owner you see all scripted objects in all parcels

[3:45] Babbage Linden: if you are an estate owner or manageryou also see all scripted objects in all parcels

[3:45] Babbage Linden: so estate managers can help manage the parcels they rent out

[3:46] Imaze Rhiano: would it be possible to se limitations for avatar attachment usage who is entering to region/parcel? like if your attachments are using more than 1MB - you are not allowed to enter?

[3:46] Babbage Linden: Imaze, we're planning to set an SL wide limit on attachments

[3:47] Babbage Linden: so you don't get stuck unable to TP

[3:47] Babbage Linden: or have some of your avatar attachments disabled when you TP somewhere

[3:48] Babbage Linden: in the future we'd like region owners to be able to trade off number of avatars vs parcel script limits vs physics, but we're not there yet

[3:48] Babbage Linden: i don't want to have variable limits for attachments though

[3:48] Morgaine Dinova: Sims are not fixed in capability nor capacity, they improve as technology improves. Are these limits going to be raised correspondingly with time?

[3:48] Babbage Linden: it would be confusing and frustrating for newbies

[3:48] Babbage Linden: morgaine, there's no reason they shouldn't be

[3:48] SirMartinRJ Lupindo: yes

[3:49] Babbage Linden: as long as we always raise limits, it shouldn't cause any problems

[3:49] Gunter Vandyke: yes, but nerwbies attach all they can find and use 10% od script time on a sim then

[3:49] Babbage Linden: gunter, right so we want to set the avatar script limit to something "reasonable"

[3:49] Babbage Linden: that allows sensible use

[3:50] Babbage Linden: but not 100s of un needed scripts

[3:50] Gunter Vandyke: i think that will help a lot

[3:50] Babbage Linden: I'd like to know what you think reasonable usage would be

[3:50] Babbage Linden: most of the avatars I've seen with 100s of scripts just have them for resizing

[3:50] Babbage Linden: are there any legitimate uses for more than 100 attached scripts?

[3:50] Gunter Vandyke: yes

[3:50] Kaluura Boa: No

[3:50] Gunter Vandyke: or gangsta neacklages with 100 bling scripts

[3:51] Melchizedek Blauvelt: disabled folks maybe

[3:51] Morgaine Dinova: Babbage: are you going to make it easy for your devs to test raised limits, or are the limits going to be compiled in? The latter would act as a disincentive for LL to keep the limits moving upwards as technology improves.

[3:51] Johan Laurasia: I dont think so, no

[3:51] Johan Laurasia: well, plus hair resizers should code so the scripts can be removed once the hair is sized.

[3:51] Babbage Linden: morgaine, the limits will be controlled by settings

[3:51] Cerdita Piek: there are some complex attachments nedded for roleplaying, and combat. but i dont know if they need 100 scripts or less.

[3:51] Morgaine Dinova: Cool

[3:51] Johan Laurasia: make the item copy/no trans, and then keep the original with the scripts, but when worn, after sizing, delete all the scripts.

[3:52] Babbage Linden: johan, efficient scripts should make resizers just require a single script

[3:52] Gunter Vandyke: most have that Johan, but the ppl dont know that and dont delete the script

[3:52] Babbage Linden: so, after that hopefully we won't need to allow 100s of attached scripts

[3:52] Imaze Rhiano: ah.... that is another interesting problem - what is going to happen those items that have scripts over limit and are no mod...

[3:53] Babbage Linden: Imaze, there is going to be a long period where limits will be visible, but not enforced

[3:53] Morgaine Dinova: Lindens will make a refund ... of course.

[3:53] Babbage Linden: people will be able to see that they're over the limit and remove scripts until they are under the limit

[3:53] Gunter Vandyke: that means you will have to walk with a bald

[3:53] Babbage Linden: Jack is going to be communicating this to people

[3:53] Babbage Linden: when the limits are enforced, you will end up with objects being returned

[3:54] Babbage Linden: but hopefully everyone will have enough time to manage their attachments before that happens

[3:54] Pirka Quintessa: what about sales of objects, say via XStreetSL or in an in-game store where somebody doesn't actually see the object before it is delivered to them?

[3:54] SirMartinRJ Lupindo: will there be a nice error message, that tell me which attachment I just got returned

[3:54] SirMartinRJ Lupindo: *s

[3:54] Babbage Linden: i wouldn't buy any object that didn't list its prim count and script usage

[3:54] Morgaine Dinova: Jack is going to have a lot of fun explaining how "Your costly hair whose creator is no longer available is now broken" fits with the "No breaking content" policy.

[3:55] Aimee Trescothick: Xstreet will need another field for it next to prim count

[3:55] Babbage Linden: right

[3:55] Aimee Trescothick: to encourage people to list it

[3:55] Cerdita Piek giggles at Morgaine

[3:55] SirMartinRJ Lupindo: it is not too easy to count the scripts inside a linked object, is it

[3:55] Pirka Quintessa: that might be okay for you and me, but there are lots of SL users that don't "get it" they don't know what prim counts and script usesage are

[3:55] Johan Laurasia: right, content creators (smart ones) will communicate the efficiency of their scripted items

[3:55] Babbage Linden: Morgaine, it might be usable at some point in the future when limits are raised

[3:56] Babbage Linden: ;-)

[3:56] Johan Laurasia: good point Bab

[3:56] Babbage Linden: but, I would hope that most content creators would provide efficient versions of items to purchasers

[3:56] Babbage Linden: that work within the script limits

[3:56] Johan Laurasia: I'm on my 3rd generation scripts for my clocks, working on a 4th

[3:56] Gunter Vandyke: but most of them use old laggy scripts bcs dont know how to script

[3:57] Johan Laurasia: I was a newbie coder when I started, well, new to LSL, and made the usual newbie coding mistakes

[3:57] Babbage Linden: right, so Lindens and content creators need to communicate that there are more efficient ways of doing things

[3:57] Johan Laurasia: but I've continued to improve them, and still continue.

[3:57] Babbage Linden: and that some items can be replaced with more efficient versions

[3:58] Gunter Vandyke: for example put a bling script with ON/OFF llListen into a neckalge with 100 bling prims

[3:58] Johan Laurasia: right, that's because up to this point, resources have been free and limitless

[3:58] Babbage Linden: all objects will be rezzable in to sandboxes

[3:59] Johan Laurasia: so people either outright abuse, or just dont consider efficiency

[3:59] Ardy Lay: Hehehe... "Crash boxes". :-)

[3:59] Morgaine Dinova: Babbage: if your analysis shows that the number of existing attachments caught by the new limits is sufficiently small, I would advise the limits being applied differently to old scripts and new scripts. Breaking old paid+closed content is in a different category to preventing new content being badly written.

[3:59] Johan Laurasia: I avoid public sandboxes

[3:59] Johan Laurasia: like it's the plague

[4:00] Babbage Linden: morgaine, yes, it's worth considering

[4:00] Johan Laurasia: to a point, yeah, but you have to draw the line in the sand at some point.

[4:00] Babbage Linden: right

[4:01] Johan Laurasia: computers (on both ends) have limitations

[4:01] Babbage Linden: another thing to consider is whether to return scripts or attachments

[4:01] Babbage Linden: turn off bling or return bling?

[4:01] Johan Laurasia: or perhaps just disable them?

[4:01] Morgaine Dinova: Babbage: if you add the notion of two categories old and new, you can always elide it later if it proves unworkable. If you don't add it, it'll never happen.

[4:02] Johan Laurasia: rather than return, just selectively disable an object that is too much of a resource hog.

[4:02] Gunter Vandyke: just turn them off

[4:02] Babbage Linden: technically tracking old and new content is unfortunately hard

[4:02] Babbage Linden: disabled scripts still take up memory, so that doesn't help

[4:03] Ardy Lay: I don't see how "disabling" an attachment magically removes the memory requirements of hosting its scripts.

[4:03] Babbage Linden: anyway, it's 4, so I should go

[4:03] Babbage Linden: thanks for the discussion

[4:03] Johan Laurasia: thanks for the time Bab.

[4:03] Becky Pippen: thanks, Babbage

[4:03] Ardy Lay: Thank you Babbage.

[4:03] Gunter Vandyke: maybe somthing like a ban list for bad scripts we dont want to have on a sim

[4:03] Babbage Linden: lots of good points that I will bring up with Jack

[4:03] Imaze Rhiano: Thanks babbie

[4:03] Pirka Quintessa: but isn't the problem with the scripts that they are CPU hogs not memory hogs? Even 200 bling scripts aren't going to use 64K a piece

[4:03] Melchizedek Blauvelt: much appreciated Babbage

[4:03] Babbage Linden: see you all next week hopefully

[4:03] Cerdita Piek: Thanks, Babbage. Take care :)

[4:04] Babbage Linden: which will be my last office hour of 2009

[4:04] Gunter Vandyke: Thanks Babbage

[4:04] Pirka Quintessa: thanks babbage

[4:04] Babbage Linden: as I'm on vacation after that

[4:04] Babbage Linden: see you next time

[4:04] Johan Laurasia: c ya

[4:04] QUTAdmin Queler: oh

[4:04] Nock Forager: Seeya.