Content Creation/Scripting User Group/Transcripts/2011 12 12

== List of Speakers ==
Agent Tairov
flexi campfire
Ima Mechanique
Liisa Runo
Vincent Nacon
== Transcript ==
[08:59] Kallista Arliss (kallista.destiny): Hey Kelly!!!!
[08:59] Koli Contepomi (sahkolihaa.contepomi): Hey kelly.
[08:59] Mumbles (charlar.linden): hey Nal
[08:59] Nal (nalates.urriah): I plan to upgrade to a quad core next week. It will be a while before I can upgrade the MB.
[09:00] Nal (nalates.urriah): Hi Charlar!
[09:00] Koli Contepomi (sahkolihaa.contepomi): What CPU you planning to get?
[09:00] Liisa Runo: hiyas everybody
[09:00] tehKellz (kelly.linden): Good morning.
[09:00] Kaluura (kaluura.boa): Evening...
[09:00] Nal (nalates.urriah): It has to fit in my existing MB so a quad core2
[09:00] Koli Contepomi (sahkolihaa.contepomi): Ahh.
[09:00] Vincent Nacon: best to get new Mobo with new CPU to avoid slot type requirement in upgrading
[09:00] Jonathan (jonathan.yap): Another great improvement you can make is to get a good SSD
[09:00] Koli Contepomi (sahkolihaa.contepomi): Yeeeah, I did what Vincent said.
[09:01] Vincent Nacon: instead of one at a time
[09:01] Nal (nalates.urriah): I agree Vin, its a matter of money.
[09:01] Koli Contepomi (sahkolihaa.contepomi): AMD X4, new motherboard, 8GiB RAM = Â£242.
[09:01] Vincent Nacon: then save up and wait
[09:01] Vincent Nacon: :P
[09:01] tehKellz (kelly.linden): Kaluura: Good morning (UGT) http://thinkmoult.com/ugt.html
[09:01] tehKellz (kelly.linden): ;)
[09:01] Vincent Nacon: morning
[09:01] Nal (nalates.urriah): lol... wait me wait... I don't need no stinking wait!
[09:01] Vincent Nacon: yeah but it'll save you money
[09:02] Koli Contepomi (sahkolihaa.contepomi): And you'll get more performance doing so.
[09:02] Nal (nalates.urriah): Its total expenditure vs cash flow.
[09:03] tehKellz (kelly.linden): Okay! Scripting user group time
[09:03] Kaluura (kaluura.boa): Yay!
[09:03] Nal (nalates.urriah): \o/
[09:03] Vincent Nacon: be sure to check in for Newegg.com's sales
[09:03] Nal (nalates.urriah): ty
[09:03] tehKellz (kelly.linden): Hope everyone had a good weekend. I think the plan is to get LeTigre's server-maintenance promoted to server-release tomorrow.
[09:04] Koli Contepomi (sahkolihaa.contepomi): Hopefully no sex beds will break.
[09:04] Nal (nalates.urriah): That can be soooo embarassing
[09:04] Vincent Nacon: yeah, quit breaking sex beds!
[09:04] Vincent Nacon: :P
[09:04] Kallista Arliss (kallista.destiny): That depends on how they break
[09:04] Kaluura (kaluura.boa): Sex beds... The most vital component of SL... -.-
[09:04] Koli Contepomi (sahkolihaa.contepomi): Haha
[09:05] Nal (nalates.urriah): Hey its how we get new users
[09:05] tehKellz (kelly.linden): After this week there is a 2 week "no change window" so no new releases until next year I believe
[09:06] Vincent Nacon: so asking for new features before christmas isn't going to happen? awwww...
[09:06] Kallista Arliss (kallista.destiny): Le Tiger has SVC-5927 right?
[09:06] flexi campfire: http://jira.secondlife.com/browse/SVC-5927
[#SVC-5927] Temp on Rezzed objects get queued
[09:06] Kaluura (kaluura.boa): Nope... List to Santa is closed!
[09:06] tehKellz (kelly.linden): we won't be stopping coding Vincent, will see how crowded the release pipe gets come new years
[09:07] Vincent Nacon: yup
[09:07] tehKellz (kelly.linden): Kallista: it looks like it does.
[09:07] Kaluura (kaluura.boa): I hope LR are in the pipes for 2012...
[09:07] tehKellz (kelly.linden): (although that said, vincent, it is a popular time to take vacation)
[09:08] Vincent Nacon: oh I know, just figured to poke about it
[09:08] tehKellz (kelly.linden): I believe we are still working out the details on that Kaluura. I will be sure to bring it up as soon as I have news about it.
[09:08] Kaluura (kaluura.boa): I just want TP on collision... I don't ask much...
[09:08] Vincent Nacon: TP on collision?
[09:08] Vincent Nacon: like... death?
[09:09] Koli Contepomi (sahkolihaa.contepomi): nah, teleport to location, like for stargates.
[09:09] Kallista Arliss (kallista.destiny): no, to the cornfield
[09:09] Liisa Runo: on collisions, or what ever event, just llTPAgent
[09:09] Kaluura (kaluura.boa): Yes, being able to TP somebody on collision... Which means llTeleportAgent() or whatever name it will have.
[09:09] tehKellz (kelly.linden): Yeah that one is going to be tricky, as we all know.
[09:09] Vincent Nacon: yeah
[09:10] Ima Mechanique: tricky? tad of an understatement
[09:10] Nal (nalates.urriah): I'veheard the idea of only allow those functions for Premium users. Is that possible Kelly?
[09:10] Kaluura (kaluura.boa): To me, that's pretty much the only thing visible in LR... The rest I can do with all the existing functions.
[09:10] tehKellz (kelly.linden): Anything is possible Nal, but I haven't heard that yet.
[09:10] Vincent Nacon: oh, I've been meaning to ask Falcon... which is SL using now? Havok 2011.2 VS2010 or VS2008?
[09:10] Jonathan (jonathan.yap): Will TpAgent also work on avatar(s) on a vehicle, or is that something else?
[09:11] Liisa Runo: it will
[09:11] Liisa Runo: but vehicles will not get TP
[09:11] tehKellz (kelly.linden): We still compile the server on windows with 2005. However all production is linux.
[09:11] Kaluura (kaluura.boa): I like your confidence, Liisa... hehehe
[09:11] Vincent Nacon: ah ok
[09:11] tehKellz (kelly.linden): Jonathan: I'm not sure how it works there.
[09:11] Vincent Nacon: been trying to read up some of the library source in Havok's engine
[09:12] Jonathan (jonathan.yap): I guess we'd need the official version of warpPos for the vehicle condition
[09:12] Liisa Runo: also, when you got the permission system done for the TP and attach like in LR, would also be very usefull to get scripted sit on object
[09:12] Kallista Arliss (kallista.destiny): Without having to have RLV
[09:13] Vincent Nacon: not fond with kinky part, eh? I see.
[09:13] tehKellz (kelly.linden): The official warppos may not be able to cross region borders.
[09:13] Vincent Nacon: and why should it?
[09:13] Kaluura (kaluura.boa): That would be real pity....
[09:14] Liisa Runo: so we need to check if we are attempting to go over the border, before every lil movement, lots of wasted resources there
[09:15] Ima Mechanique: Kelly, would that drop the move entirely, or stop at the border?
[09:15] Kaluura (kaluura.boa): Sure... The official version won't be used if it doesn't do all that the unofficial one does.
[09:15] tehKellz (kelly.linden): Thats why I mentioned it, to get some feedback. There is benefits internally to making it same-region only.
[09:16] Liisa Runo: i guess LL know better if those benefits are worth the trouble of doing the checks in LSL side
[09:16] tehKellz (kelly.linden): Ima: If it takes absolute positions it may drop the move entirely? I'm not sure. Remember that this is a theoretical and not promised future feature. :)
[09:16] Kallista Arliss (kallista.destiny): I'm sure that it is simpler to be intraregion.
[09:16] Kallista Arliss (kallista.destiny): but interregion is , in the end, more useful.
[09:16] Ima Mechanique: makes sense for absolute coords
[09:16] Kaluura (kaluura.boa): Any way, no need to rush anything on PosJump... llTeleportAgent() is much more interesting....
[09:17] tehKellz (kelly.linden): However if being same region-only is a dealbreaker, what would work? How far must you be able to get into the neighboring region.
[09:18] Liisa Runo: i dont need to go very far, as long as i can go there, i can spam it more once im in
[09:18] Ima Mechanique: Kelly, are we assuming it will be limited to the same owners land?
[09:18] tehKellz (kelly.linden): Part of the problem is sorting out parcel options for the parcels in the neighboring region to know if the move can succeed before the object changes regions
[09:18] tehKellz (kelly.linden): Ima: No, but the object must be able to enter and stay on the destination parcel.
[09:18] Nal (nalates.urriah): If one can cross a region boundary, what happens if one tries to cross multiple regions?
[09:19] tehKellz (kelly.linden): A single call won't work for multiple region cross, there is too much overhead in sorting out any kind of object transfer that isn't to a neighboring region
[09:19] Kaluura (kaluura.boa): Good question... Never tested to jump over regions... yet!
[09:20] Liisa Runo: i have tested, works as good as warp, llSetPos might be lil more reliable, but all nonphys moves over the border is better done with helmet
[09:22] Liisa Runo: and what comes to the parcel permissions, only test that makes any difference is the check if the agent can enter the parcel, object restrictions never worked anyway
[09:22] tehKellz (kelly.linden): We would rather they did work. :)
[09:23] Liisa Runo: you only work here, you dont live here ;)
[09:24] Kallista Arliss (kallista.destiny): lol
[09:24] Kallista Arliss (kallista.destiny): Remember "Thou shalt not break existing content."
[09:24] tehKellz (kelly.linden): Ah speaking of - yesterday was my 9 year rez day for my alt! \o/
[09:24] Ima Mechanique: congrats
[09:25] Kallista Arliss (kallista.destiny): Happy rez day
[09:25] Liisa Runo: Happy late Rezday
[09:25] Kaluura (kaluura.boa): 9 years! Gaaaah! A veteran!
[09:25] Liisa Runo: i forgot the name of your ALT though
[09:25] tehKellz (kelly.linden): Ama Omega, it is in my profile.
[09:25] Jonathan (jonathan.yap): Wow, you cannot have a rezz day much earlier
[09:25] tehKellz (kelly.linden): It was pretty early beta.
[09:25] tehKellz (kelly.linden): Though I have some friends who were in alpha.
[09:26] tehKellz (kelly.linden): The world was a (much smaller) different place then. :p
[09:26] Jonathan (jonathan.yap): Philip is 2002-03-14
[09:26] Koli Contepomi (sahkolihaa.contepomi): Andrew is probably old too.
[09:26] Jonathan (jonathan.yap): Andrew: 2002-06-04
[09:27] Liisa Runo: Anddrew has sexy UUID
[09:27] Vincent Nacon: I've met a really old resident with the name "a Apple", too bad he's not search-able because of the requirement of letters to make the search.
[09:27] Kaluura (kaluura.boa): I'm having a hard time imagining SL with only 16 regions...
[09:27] Jonathan (jonathan.yap): heh, yes, you could pick your UUID back then
[09:28] tehKellz (kelly.linden): I think doug got the 0001 uuid though.
[09:28] tehKellz (kelly.linden): I think when I joined we didn't even have 16.
[09:28] tehKellz (kelly.linden): Though we did shortly after.
[09:29] tehKellz (kelly.linden): It was a big deal when they brought the 'color' regions online - doubling the size of the grid!
[09:29] Kaluura (kaluura.boa): =^_^= You're starting to show your SL age...
[09:29] Vincent Nacon: and that's bad?
[09:29] tehKellz (kelly.linden): At that point in beta the grid wasn't even open 24hours.
[09:29] Vincent Nacon: muhaha!
[09:30] tehKellz (kelly.linden): It closed at night, though they just blocked logins so you could stay logged in as long as they weren't pushing out new code / restarting regions.
[09:31] Koli Contepomi (sahkolihaa.contepomi): I think it was Wednesday.
[09:31] Kaluura (kaluura.boa): I was there too... Black wednesdays...
[09:31] Jonathan (jonathan.yap): I once signed on after a reboot Wednesday and the whole grid had about 800 people on it
[09:31] tehKellz (kelly.linden): Well, I could remenice for the next half hour, unless anyone has any scripting topics they'd like to discuss?
[09:31] Kallista Arliss (kallista.destiny): And you had to download a new viewer every wee
[09:31] Vincent Nacon: how about sounds and particles?
[09:31] tehKellz (kelly.linden): I remember when 800 peak concurrency was a big deal.
[09:32] Ima Mechanique: it was wednesday, I used to stay offline all Thursday just to let the grid recover ;-)
[09:32] tehKellz (kelly.linden): We used to log in (internally) and jump around the grid trying to cause the caches to preload before we let 'normal' users in.
[09:32] tehKellz (kelly.linden): bet you didn't know that.
[09:32] Ima Mechanique: lol
[09:33] Kaluura (kaluura.boa): =^_^=
[09:33] Liisa Runo: we are all scripters, we know lots of things ;)
[09:33] Ima Mechanique: one semi related thing kelly, script load/save is making it's way through QA, should make it into the viewer soon
[09:33] Kallista Arliss (kallista.destiny): Teh good old days of hair and boot up your rump
[09:34] Koli Contepomi (sahkolihaa.contepomi): I've ... -never-, experienced that.
[09:34] Vincent Nacon: ahh 2007, don't remind me that
[09:34] Kaluura (kaluura.boa): I really don't miss that and the Ruth av...
[09:34] Vincent Nacon: Ruth is still around
[09:34] tehKellz (kelly.linden): Great Ima, I was watching your code reviews on the mailing list. That is a good feature.
[09:34] Ima Mechanique: I had a gallery of mt ruthed avatars. I was a cute ruth
[09:35] Ima Mechanique: Kelly, I'd like to add it at the Build/Upload level, but that may take some doing ;-)
[09:35] tehKellz (kelly.linden): Yeah.
[09:36] Ima Mechanique: messing with inventory directly is a minefield
[09:36] Jonathan (jonathan.yap): I have been saving VWR-25835 to look at some day, but don't understand how some of those switches would work
[09:36] flexi campfire: http://jira.secondlife.com/browse/VWR-25835
[#VWR-25835] Support more %x options for debug setting externalEditor
[09:36] Jonathan (jonathan.yap): Ima, feel free to take that on if you are looking for something to do
[09:37] Ima Mechanique: looking at it now Jonathon, wasn't aware of it before ;-)
[09:38] Jonathan (jonathan.yap): Probably a low-use case, not worth the effort
[09:38] Vincent Nacon: yeah
[09:38] Kaluura (kaluura.boa): I wouldn't mind being able to export my scripts directly from inventory... Opening them one by one might turn out to be a real PITA
[09:38] Jonathan (jonathan.yap): You want a SaveAs type button?
[09:39] Kallista Arliss (kallista.destiny): Have you talked to the Firestone/Phoenix team about this?
[09:39] Kaluura (kaluura.boa): I'd like that...
[09:39] Ima Mechanique: Kaluura, in that case try Radegast viewer
[09:39] Jonathan (jonathan.yap): Oz is recruiting patches from TPVs, maybe bring it to his attention
[09:40] Agent Tairov: Heyas.
[09:40] Vincent Nacon: heya
[09:40] Kaluura (kaluura.boa): Too many TPVs! No enough time///
[09:40] Vincent Nacon: No time!
[09:40] Agent Tairov: Hey, can I ask some questions about the underlying list implementation in mono?
[09:40] Liisa Runo: yes, ask
[09:41] Kaluura (kaluura.boa): Yay! A script topic! heehehe
[09:41] Kallista Arliss (kallista.destiny): Speaking of whch is there a different external LSL editor than Alphon's
[09:41] Ima Mechanique: yes, but I'd not bet against the answer being "it's slow, clunky and a mystery"
[09:41] Agent Tairov: Previously, I was under the impression that lists are immutable, both from LSL's perspective and from the VM's perspective.
[09:42] Ima Mechanique: Kalista, sevetal external editors. Any reason you want one other than LSLEdiotr?
[09:42] Agent Tairov: Thus, every time you changed the list, the whole thing was discarded and a new one was made.
[09:42] Kaluura (kaluura.boa): Not very far from the truth...
[09:42] tehKellz (kelly.linden): Oh hey Argent. Mono has had optimizations in that regard for a long time to help address some performance and memory size issues it has.
[09:42] Agent Tairov: I was running the memory profiler, however, and it seems that either this is no longer the case, or the script memory profiler doesn't track data that's sitting around, waiting for GC.
[09:43] Agent Tairov: Sweet.
[09:43] tehKellz (kelly.linden): The profiler only tracks memory assigned to the script, but this is the same as what we track for triggering 'stack-heap collision' errors.
[09:43] Agent Tairov: What kind of optimizations are we talking about here? I'd like some perspective on how much the various list functions currently cost.
[09:43] tehKellz (kelly.linden): So it is also true that there could be memory waiting for GC that isn't counted by your script.
[09:44] tehKellz (kelly.linden): It varies by function call.
[09:44] tehKellz (kelly.linden): Many of the list functions were re-implented entirely in C#/mono to handle memory better than if we had to convert to the c++ type and deal with it then pass the result back.
[09:45] Agent Tairov: I ended up with almost no extra memory usage when constructing a list of random integers via appending, but putting them at the start left me with a much larger used memory that went back down a few seconds later.
[09:45] tehKellz (kelly.linden): Also to be higher performance.
[09:45] tehKellz (kelly.linden): appending to the end will be faster and more memory efficient.
[09:45] Agent Tairov: Yaay.
[09:46] Agent Tairov: So, when I call llListReplaceList on the mid-section of a list, how much data am I causing to be discarded?
[09:47] Agent Tairov: (or llDeleteSubList, etc)
[09:47] tehKellz (kelly.linden): Technically we must duplicate the list since you can use a different src list than you are assigning to
[09:48] tehKellz (kelly.linden): list new_foo = llListReplaceList(old_foo,replace,index); // would be bad to change old_foo
[09:48] Agent Tairov: Hm.
[09:48] tehKellz (kelly.linden): operators like += get to be special.
[09:49] Agent Tairov: My colleague has been worried about using large lists too heavily, out of concerns about generating mounds of garbage data for the GC.
[09:49] tehKellz (kelly.linden): I would not worry about the GC in general.
[09:50] Agent Tairov: I heard once upon a time that the backend was a linked list. Is that true?
[09:50] tehKellz (kelly.linden): It will do what it will do, and won't usually count against your script.
[09:51] tehKellz (kelly.linden): The lists are ArrayList objects in mono, or singly linked lists in LSO - however any time the list has to pass into a C++ function (one that hasn't been converted to be entirely in mono or one that can't be like llSetPrimitiveParams) it gets converted.
[09:52] Agent Tairov: Ah, very interesting. OK, that would make appending far more efficient.
[09:52] Agent Tairov: And, most of the ll*List functions still duplicate the list?
[09:53] tehKellz (kelly.linden): They must, yes.
[09:53] Agent Tairov: aw~
[09:53] Agent Tairov: And, I guess there's no way for me to tell them not to. :p
[09:53] tehKellz (kelly.linden): Nope.
[09:54] Agent Tairov: Some of this is because we were looking at memory usage, related to a system we intend to rebuild to replace one in a current product.
[09:55] Liisa Runo: All the talk about lists make me dream of more script mem.... When we get it? and dont say "after we get script limits". Griefers already dont have limit and still they raraly use mem to grief, they use phys cubes from 2005. The rest of us would end up using less total mem and scripts if we could get more mem. It is super annoying to ping pong data between scripts just to get access to lil more mem.
[09:55] Agent Tairov: It's a weapons targetting manager. It has various weapons banks, and each of them can have different targets in them, although they may be the same targets as others.
[09:56] Agent Tairov: We were thinking of giving each target key an integer id in a parallel list, then putting those in the list of banks.
[09:56] tehKellz (kelly.linden): Actually Liisa you are incorrect in one thing. Griefers *are* using memory to grief, in a recent new method of attack.
[09:56] tehKellz (kelly.linden): (that is a modified version of a previous method we blocked)
[09:57] tehKellz (kelly.linden): Agent: I think it will take some experimenting on your end to figure out which algorithms are the most efficient for what you need to accomplish.
[09:57] Agent Tairov: We realized this could also be used for other data, including nested lists, if we included another parallel list of integers - starting indices.
[09:57] Liisa Runo: ok ok, maybe couple griefers actually learn new tricks, but still. They will fool around no matter what limits we have, is it really worth lagging the rest of the grid with stupid ping pong mess to get lil more mem
[09:58] Agent Tairov: But, if that means discarding or duplicating lots of lists, that could be troublesome for the sim. :p
[09:59] tehKellz (kelly.linden): Liisa: We can't just give a blanket amount of more ram, the hardware won't support it.
[09:59] Agent Tairov: Is that list optimization in mono something the underlying VM is doing?
[09:59] Jonathan (jonathan.yap): Hi tansiel
[09:59] tehKellz (kelly.linden): Liisa: What we can give is a better way to decide where script memory will be used by the content creators and land owners.
[10:00] Liisa Runo: so, now hardware can handle 10000 scripts, but cant handle one script with qarter megabyte of mem
[10:01] Agent Tairov: I think he means it can't handle 10,000 scripts with a quarter megabyte of memory. :p
[10:01] tehKellz (kelly.linden): What agent says.
[10:01] Agent Tairov: Without the limiter system in place, there's nothing to prevent just requesting tons of memory for all your scripts.
[10:02] Kallista Arliss (kallista.destiny): Yeh 10K * 256K is still a lot of memory
[10:02] tehKellz (kelly.linden): only what, 2.6g?
[10:02] tansie1234567: yes its still a lot
[10:02] Jonathan (jonathan.yap): Kelly, do you have any feelings on how much help a sim gets from shared bycode?
[10:02] Liisa Runo: only asshats try to use 10000 scripts anyway, and they will do what ever to get attention, i dont think it is worth ruining the fun for everyone else
[10:02] Jonathan (jonathan.yap): *bytecode
[10:02] tehKellz (kelly.linden): Jonathan - probably not as much as you expect.
[10:02] Kallista Arliss (kallista.destiny): ^ 4(7) regions per machine
[10:03] tehKellz (kelly.linden): the bytecode is usually a realtively small portion of the memory.
[10:03] Agent Tairov: Oh?
[10:03] Agent Tairov: It seems like many of my scripts are using more than half their memory for bytecode.
[10:04] tehKellz (kelly.linden): Okay, it will vary by script, and no I don't have a great feeling on how much it is helping.
[10:04] tehKellz (kelly.linden): BUT!
[10:04] Agent Tairov: We've been attempting to consolidate them, however, so we should be able to start lowering memory requirements in the "client" scripts throughout our starships.
[10:04] tehKellz (kelly.linden): The hour is up! (4 minutes ago)
[10:04] Liisa Runo: also, LL makes 500million dollars of pure profit every year, i dont mind if LL buy better hardware
[10:04] tehKellz (kelly.linden): And I need to run to another meeting. :) Thanks everyone for coming.
[10:04] Koli Contepomi (sahkolihaa.contepomi): See you Kelly & Mumbles.
[10:04] Vincent Nacon: yeah I was wondering if you noticed that
[10:04] Nal (nalates.urriah): Thx Kelly
[10:04] Vincent Nacon: muhaha!
[10:04] Agent Tairov: Thanks for answering my list question. Should be helpful.
[10:04] Mumbles (charlar.linden): by folks!
[10:04] Liisa Runo: thanks everybody
[10:05] Kallista Arliss (kallista.destiny): Thank you Kellly and Mumbles
[10:05] Ima Mechanique: bye Kelly, tc
[10:05] tehKellz (kelly.linden): Liisa: I have doubts about your numbers. ;) Take care everyonne.