User:Babbage Linden/Office Hours/2009 03 11

From Second Life Wiki
Jump to navigation Jump to search

Transcript of Babbage Linden's office hours:

 Notice
 * Office hour schedule will be moved to : 3AM on wednesday morning SLT
 * the mono scheduler changes may unfortunately break some scripts that rely on lucky scheduling. LINK
[8:56] Siann Beck: There he is!

[8:56] JS Uralia: Welcome, Babbage!

[8:56] Babbage Linden: hi everyone

[8:56] Florentin Sideshow: There he is. Hello.

[8:56] Nock Forager: ;_;

[8:56] Fake Fitzgerald: hi babbage

[8:56] Babbage Linden: thanks for coming

[8:56] Nock Forager: Waiting for you almost 1 hour ;-)

[8:57] JS Uralia: we were early, perhaps due to the time change and http://www.google.com/calendar/embed?src=c2g7djaua9j4he8c6d0iu7n7k8%40group.calendar.google.com didn't get updated apparently

[8:57] Babbage Linden: oops

[8:57] Babbage Linden: i had the office hour in my calendar in uk time

[8:57] JS Uralia: of course

[8:57] Babbage Linden: so, it's still 4PM in my calendar

[8:57] Babbage Linden: but not 8AM SLT

[8:58] Babbage Linden: so, sorry about that, i should see if i can set timezones for office hours to the pacific coast

[8:58] Ima Mechanique: need to set up your calendar on your wiki page ;-) and specify UK time

[8:58] Siann Beck: brb I have to relog; I'm not seeing Babbage's chat for some reason, though it shows in chat history.

[8:58] JS Uralia: I'm glad I was early... My list of ways LSL can be extended to save typing and towards C/Javascript compatability is far more exaustive than it otherwise would have been

[8:58] Ima Mechanique: or specify SLT for automatic zone switch in SL

[8:58] Babbage Linden: let me ping the groups to let them know what's going on

[8:59] Florentin Sideshow: Babbage: Id like to talk to you about Turinc Completeness of LSL. This is due to the topic of my bachelor thesis in computer science.

[8:59] Florentin Sideshow: Turing Completeness, sry

[8:59] JS Uralia: (1) compound declarations, "integer i, j;" (2) declaration initialization, "integer i=1;" (3) Brackets for list index access, "l[5]=5;" (4) a pragma which offers synonyms for functions without the "ll" and/or their C or Javascript short common names, if any; (5) double precision floating point; (6) long integers; and Mephistopheles Thalheimer suggests also: (7) function overloads; and (8) classes

[9:00] Babbage Linden: so, the first topic is the timing of this office hour going forward

[9:00] Babbage Linden: as you may have seen, i've had to cancel or shorten my office hour a few times recently

[9:00] WolfPup Lowenhar: i know i was here an hour ago looking for you

[9:00] Babbage Linden: because of meetings with lindens in SF

[9:01] Babbage Linden: in order to avoid that happening in future

[9:01] Babbage Linden: i'd like to move this office hour earlier

[9:01] Babbage Linden: probably to 11AM UK time

[9:01] Ima Mechanique: ouch

[9:01] Babbage Linden: which will normally be 3AM SLT I think

[9:02] WolfPup Lowenhar: when to 7am SLT

[9:02] Babbage Linden: which I understand may be difficult for some of you to make

[9:02] Babbage Linden: 6AM SLT is the only other alternative

[9:02] JS Uralia: are you going to be submitting any internet drafts for the IETF BOF?

[9:03] Babbage Linden: but that's less good for me

[9:03] Babbage Linden: and somehow I imagine more US scripters being up at 3AM than 6AM somehow...

[9:03] WolfPup Lowenhar: 3AM SLT is 6AM EDT for me

[9:03] Babbage Linden: so, going forward I'm going to shift to 3AM SLT

[9:03] WolfPup Lowenhar: and im not even out of bed yet

[9:04] Babbage Linden: i'll update the wiki accordingly

[9:04] Babbage Linden: i understand that some of you may not be able to make it

[9:04] Babbage Linden: but hopefully some of you will

[9:04] Babbage Linden: and that it will be a better time for other residents

[9:04] JS Uralia: I don't have much of a time preference; I've always adjusted my schedule to be able to get the most cycles out of whichever servers wherever in the world I happen to be working with

[9:04] Siann Beck: You may have already said, but why can't you keep it at ths time?

[9:05] Babbage Linden: if you won't be able to come along, then thanks for coming along up to now

[9:05] WolfPup Lowenhar: i would just have to set an alarm clock for 5:30AM my time so i can get out of bed and get my system fired up

[9:05] WolfPup Lowenhar: have to wake them hampsters ya know

[9:05] Babbage Linden: siann, 4PM UK time/8AM pacific is prime UK/SF overlap time for me

[9:05] Nock Forager: (6AM SLT is nothing problem for me from Japan.)

[9:05] Ima Mechanique: 3 AM is a natural time for programmers to be bent over their keyboarsd

[9:06] Babbage Linden: i need to make room for meetings

[9:06] Siann Beck: I see.

[9:06] Siann Beck is a morning person

[9:06] Babbage Linden: i have to do much more co ordination with SF these days

[9:06] Siann Beck: Rather strange for a geek, I know :)

[9:06] Babbage Linden: and i'd like to be able to get home for dinner some days of the week

[9:07] Nock Forager: :)

[9:07] Siann Beck: That's always good :)

[9:07] JS Uralia agrees

[9:07] Babbage Linden: so, sorry if the new time isn't convinient for some of you

[9:07] WolfPup Lowenhar: lol babbage we though you didn't eat any more -*@ ROFL @*-

[9:07] Babbage Linden: and thanks for coming along up to now

[9:07] Babbage Linden: so, anyway, that's the admin done

[9:07] Babbage Linden: is there anything in particular you'd like to talk about this week?

[9:08] JS Uralia: Florintin's question about Turing equivalence was before mine, at least in my chat order.... I believe LSL is Turing equivalent

[9:09] Babbage Linden: yes, LSL is turing complete

[9:09] Babbage Linden: anything that can be computed, can be computed in LSL

[9:09] Babbage Linden: if you don't mind waiting a long time

[9:09] Siann Beck: lol

[9:09] Babbage Linden: and spliting your arbitrary programs over a lot of scripts ;-)

[9:09] Florentin Sideshow: Well most programming languages are, but im wondering about the memory limitations of scripts and notecards

[9:10] Babbage Linden: well, you need an infinite tape for idealised turing machines

[9:10] Florentin Sideshow: right

[9:10] Babbage Linden: so all machines are limited by speed and memory constraints

[9:10] Babbage Linden: but LSL can compute the same classes of problems as turing machines

[9:10] Florentin Sideshow: I cant get one in real world as well, but Gigabytes of memory make a difference computing difficult functions

[9:10] JS Uralia wishes for infinite wishes, or at least a JIRA for http://wiki.secondlife.com/wiki/LSL_Useful_Function_WishList so they can be voted on

[9:10] Babbage Linden: in fact i think some people have built turing machines in LSL

[9:11] Florentin Sideshow: Yes, I know one

[9:11] Florentin Sideshow: But Im wondering what architecture I would apply to simulate an infinite tape in SL

[9:11] Babbage Linden: i don't think you can

[9:11] JS Uralia: (I mean, a JIRA link for each of the wishes on the wish list)

[9:12] Babbage Linden: i think you can build a turing machine, but in some cases it will run out of memory

[9:12] JS Uralia: (I sense an impending volunteer opportunity)

[9:12] Babbage Linden: you could use a web service to provide storage

[9:12] Babbage Linden: but even that won't be infinite

[9:12] Florentin Sideshow: Thanks, Ill leave it with that. Thx for your answers.

[9:12] Babbage Linden: maybe you could use S3 as a back end, then just keep phoning amazon when you need more storage?

[9:12] WolfPup Lowenhar: most basic free web servers limit you to about 10MB

[9:13] Siann Beck: lol

[9:13] Babbage Linden: that might be effectively infinite if you could keep getting amazon to buy hard drives

[9:14] Florentin Sideshow: :-) nice idea. But im analyzing LSL and not common Webservers and regular PL.

[9:14] Florentin Sideshow: But thnx anyway.

[9:14] Babbage Linden: florentin, i think you can analyse the language

[9:14] Babbage Linden: and prove it's turing complete

[9:15] Babbage Linden: but that it has memory limitations

[9:15] Florentin Sideshow: Thats what Im up to.

[9:15] Babbage Linden: thanks for the link to the wish list JS

[9:15] Babbage Linden: you could create JIRAs for each of these to collect votes in the public JIRA

[9:15] Babbage Linden: which may be a useful way of prioritising them

[9:16] JS Uralia: yes, I would love to do that... I just dumped the suggestiosn from the time change meditation period in https://wiki.secondlife.com/wiki/Talk:LSL_Useful_Function_WishList#backwards-compatible_ways_to_save_typing_or_be_more_like_C_or_Javascript

[9:16] Babbage Linden: lots of the other functionality section would be provided by C#

[9:16] JS Uralia: I will try to merge those into the page as I co through and search for JIRA links for the wishes which have JIRA links

[9:16] JS Uralia: go thought*

[9:17] Babbage Linden: which i'm trying to evangelise within the new executive and strategic environment

[9:17] JS Uralia: go through* ... sorry, I've been having keyboard driver problems under vista recently

[9:17] Babbage Linden: JS, using preprocessors can be a nice way to save typing

[9:17] Babbage Linden: i have a personal project which requires several variants of a script

[9:18] Babbage Linden: and use sed to comment in and out blocks of code to create the variants from a single master script

[9:18] Babbage Linden: using the C preprocessor to include library functions and provide syntactic sugar is also possible

[9:19] Ima Mechanique: there's a Eclipse plug-in for LSL that does some of that

[9:19] Babbage Linden: yes

[9:19] Piper Zuhal: oooh, now that's something i haven't seen, do you have a link to the plugin ima?

[9:19] Ima Mechanique: allows includes etc

[9:19] Ima Mechanique: um, lemme look. It was a post to the scripting list

[9:20] Ima Mechanique: still very much a work in progress so I didn't keep it

[9:20] JS Uralia: a preprocessor? I wonder if there's one in m4

[9:20] Piper Zuhal: Ah, shame, it's hard to find a really good out of world set up for lsl

[9:20] Babbage Linden: m4 can also be useful

[9:21] Ima Mechanique: http://lslplus.sourceforge.net/

[9:21] Piper Zuhal: Perfect, thanks hun.

[9:21] Ima Mechanique: I prefer the Byron Star plug-in, although it's way out of date now

[9:22] Babbage Linden: any other topics?

[9:22] Ima Mechanique: however, I conntacted the creator and he wants to update it, when time permits. The age old programmers wail

[9:22] JS Uralia: I copied the link to https://wiki.secondlife.com/wiki/Talk:LSL_Useful_Function_WishList#lslplus_on_sourceforge

[9:23] Siann Beck: Any idea what's up with html-on-a-prim?

[9:23] JS Uralia: oh, an Internet Draft for the IETF with your personal wish list!

[9:23] JS Uralia: or, professional I should say....

[9:23] Babbage Linden: there is some work continuing on media on a prim

[9:24] JS Uralia: I will help you if you want, I've already co-authored an internet draft, but with the new editing support packages it's really easy

[9:24] Babbage Linden: last time i looked in to it we work looking at working with people to transition to webkit from mozilla

[9:24] Babbage Linden: as it's easier to embed

[9:24] Babbage Linden: i helped talk to a uk developer we were going to work with

[9:24] Babbage Linden: but that fell through

[9:24] Siann Beck: I see.

[9:24] Babbage Linden: i think we're working with someone else now

[9:24] Babbage Linden: we're also looking in to other media integration

[9:24] Babbage Linden: but that's mostly viewer work, which i'm not very involved in

[9:25] Siann Beck: If we could just have the viewer pull remote images to put on a prim, that would be great.

[9:25] Siann Beck: Right.

[9:25] JS Uralia: oh, never mind... "The cut off time for the I-D submission was 5 PM (PT), 2009-03-09.

The I-D submission tool will be reopened at midnight, 2009-03-23 "

[9:26] Ima Mechanique: do you mean have a page URI as a property of a face on a prim? Or script controlled like the media stuff now?

[9:26] JS Uralia: -- https://datatracker.ietf.org/idst/upload.cgi -- they close it before face-to-face meetings... I'm glad I didn't convince you to waste any time on that

[9:26] Babbage Linden: i think we have submitted an internet draft for LLSD

[9:26] Siann Beck: Have a URI as the texture.

[9:26] Babbage Linden: as part of the interop work

[9:26] Piper Zuhal: I'm curious, black box put up a JIRA asking for LL to bring back hierarchical linking like SL used to have (I belive it was removed due to problems with interaction with the physics system). Would something like that have any detrimental effect on current code content?

[9:26] Babbage Linden: which is really good

[9:26] Piper Zuhal: I can't think of any off hand.

[9:27] JS Uralia: yes, LLSD is the first of the LL IDs

[9:27] Babbage Linden: i'd like to see heirarchical linking

[9:28] JS Uralia: I think we still have heiarchical linking in the animation system, but not anything more than numbered attachment points if that... do attachment point numbers vary from agent to agent?

[9:29] Babbage Linden: but changing task linking would require lots of changes

[9:29] Babbage Linden: and i can't see that happening

[9:29] Piper Zuhal: I would think with havok 4 decently handling current physics and the advent of mono that the current system LL has in place should support it.

[9:29] Babbage Linden: it would be possible to implement, certainly

[9:30] Piper Zuhal: That's a shame, that was something I was really looking forward to next to zwagoth's and kristies patch for flexi sculpts.

[9:31] JS Uralia: if the attachment point numbers don't vary from agent to agent, then you could impose any hiearchy you like only them

[9:31] JS Uralia: on to them*

[9:31] Babbage Linden: but not something that would be worthwhile

[9:31] Ashira Legien: More attach points .. like for fingers would be nice

[9:31] Babbage Linden: i'm not very familiar with the attachment code

[9:31] JS Uralia: well, I wonder if they want it for relative rotations. The state of the rotation library is .... well, there is room for improvement

[9:32] JS Uralia: I have offered a standing L$5000 upgrade bounty for the rotation library at https://wiki.secondlife.com/wiki/Talk:Rotation#Useful_snippets

[9:32] Piper Zuhal: Well the idea was for non attached prims allowing for better control of rotation and positioning of prims through lsl manual editing.

[9:33] Piper Zuhal: *lsl OR manual editing

[9:34] Ashira Legien: Are we ever going to get a working function to turn an avatar from a script

[9:34] Piper Zuhal: XD it existed for a while Achira.

[9:34] Ashira Legien: the current one is broke and there is not way to turn an avatar

[9:34] JS Uralia: more attachment points would, unfortunately, require a huge undertaking though many different code subsystems, and would break anything that assumes some things which would be pretty easy to assume,probably

[9:35] Babbage Linden: at the moment there is very little developer time to work on scripting extensions

[9:35] Babbage Linden: http-in is in the pipeline

[9:35] JS Uralia: attachment points are usually hardcoded, instead of accessed through an API

[9:35] Babbage Linden: and there will be a beta test of the new mono scheduler after the 1.26 server release

[9:35] JS Uralia: that's why that wish list needs JIRA voting

[9:35] Babbage Linden: but there is little currently planned beyond that

[9:36] Ima Mechanique: any schedule for 1.26 and 1.27 releases?

[9:36] Babbage Linden: as we're all very busy with scalability and stability work

[9:36] Babbage Linden: (which you may have noticed, if you've been in SL at 2PM on Sundays recently ;-)

[9:36] JS Uralia: otherwise there's no community input to help you figure out what the masses are clamoring for; perhaps there's a correlation with people who show up to the office hour, but not sure how strong a correlation

[9:36] Ima Mechanique: um no, I avoid Sundays from PM UK onwards ;-)

[9:37] Babbage Linden: JS, it's very useful to know what the masses are clamoring for

[9:37] Babbage Linden: I think we have a reasonable idea

[9:37] Babbage Linden: and try hard to listen

[9:37] Talarus Luan: llTeleportAgent or similar functionality to PosJump before it gets taken away. :D

[9:37] Babbage Linden: but finding developer time to work on extensions is hard

[9:38] Piper Zuhal: Hmmmm to what end talarus?

[9:38] Babbage Linden: there is a tentative data for 1.26 on aditi tomorrow

[9:38] JS Uralia nods

[9:39] Babbage Linden: and then deploy starting on the 23rd of march

[9:39] Talarus Luan: So we can stop using hacks which are broken / get broken when "fixed", and have canonical functionality which many have come to depend on.

[9:39] Piper Zuhal: My client currently allready supports double click to TP to click point..... assuming there's no telehub.

[9:40] Babbage Linden: we are getting much better at maintaining previous behaviour

[9:40] JS Uralia: when the economy recovers and they let you hire a team the size befitting the cutting edge of communication technologies, I hope that it's at least easier to figure out which of the wishes are already in JIRA; I'll do that if I can

[9:40] Talarus Luan: Andrew reported that PosJump has been fixed internally.

[9:40] Babbage Linden: we now have hundreds of LSL unit tests which are run at build time

[9:40] Babbage Linden: which we didn't have before mono

[9:40] Babbage Linden: and as I said last time, we know have tests for touch behaviour

[9:40] Ima Mechanique: hmm, does that mean only LSO gets broken? ;-)

[9:41] Babbage Linden: so that should both be consistent with previous versions now and should not change in future

[9:41] JS Uralia: oh, someone said passtouches was down, but I didn't hear the details

[9:41] Babbage Linden: all of our tests are run on both LSO and mono

[9:41] Babbage Linden: and now they are run with both normal and infinite timeslices on both VMs

[9:41] Ima Mechanique: ahh, good. Statement kinda implied the test where mono

[9:41] Babbage Linden: so we shouldn't have problems with functionality relying on lucky scheduling

[9:42] Babbage Linden: which was the problem that caused us to have to change the mono scheduler

[9:42] Babbage Linden: so, each time we fix things we make sure we right tests to check for that fix regressing

[9:42] Babbage Linden: so, i think we're getting much better at making sure behaviour is consistent between versions

[9:43] Babbage Linden: the mono scheduler changes may unfortunately break some scripts that rely on lucky scheduling

[9:44] Babbage Linden: which is why we're having the beta

[9:44] Babbage Linden: to give people time to check their scripts

[9:44] Babbage Linden: i urge you to tests all of your scripts that come close to exhausting memory

[9:44] Talarus Luan: What kind of use cases have you seen that use "lucky scheduling"?

[9:44] Nock Forager: hum

[9:44] Babbage Linden: mostly scripts that operate on long lists

[9:44] Babbage Linden: as LSL uses pass by value

[9:45] Babbage Linden: scripts which did things like

[9:45] Babbage Linden: l = doSomethingToList(l)

[9:45] Babbage Linden: sometimes only worked if memory was not checked within the expression

[9:45] Babbage Linden: as during execution, there are 2 copies of l

[9:46] Talarus Luan: Ahh, I see. What about use cases using the old LSL trick of setting the list to empty on the right side?

[9:46] Babbage Linden: now memory usage is checked whenever it might be exhausted

[9:46] Piper Zuhal: Babbage, do you know if current stability issues are causing inconsistancy with say timer event calls? I was working on a project to play music from notecards but noticed that in order to get it to play close to evenly I had to use a loop in place of a timer. I was wondering if that's something that will just get resolved with LL's current work.

[9:47] Babbage Linden: i can't think of why looping would be better than timer calls

[9:48] Babbage Linden: the loop will be interupted if it runs for more than a time slice

[9:48] Babbage Linden: and the time between time slice scheduling can be affected in the same ways that timer event scheduling can be

[9:48] Piper Zuhal: It was, quite a bit actually. on a timer call of every .25 seconds i was noticing up to .4 second to .5 second delays at points and then at points the calls would occur at .1 seconds or less for no reason.

[9:49] Babbage Linden: that could be interaction between time slice scheduling and the timer

[9:49] Babbage Linden: if there is a timer event queued for a while

[9:50] Babbage Linden: the next one may end up being due less than 1 timer interval after the first one is processed

[9:51] Babbage Linden: if you set the timer every time you process a timer event i imagine the next timer event will end up being called after at least 1 timer period has elapsed

[9:51] Babbage Linden: but i'd be interested in seeing some tests looking at that

[9:51] Piper Zuhal: eh, that's odd then that it would process a for loop better. But I have an example of both using for loops and timers and like i said, it's very different.

[9:51] Babbage Linden: more software archeaology required

[9:52] JS Uralia: make sure your region has "Spare Time" in the Ctrl-Shift-1 statistics, Piper, there could be a physics party sucking up CPU cycles

[9:52] Babbage Linden: yes

[9:52] Babbage Linden: timers can be affected by interactions between the timer and the scheduler

[9:52] Babbage Linden: loops will only be affected by the scheduler

[9:52] Piper Zuhal: I was in an empty sim at the time, there was one other avatars and three object.

[9:52] Videlia Yuitza: Babbage thanks for taking the time to help us with things like this

[9:53] Babbage Linden: no problem at all

[9:53] Videlia Yuitza: /bow

[9:53] Piper Zuhal: Absolutely, thank you so much.

[9:53] Babbage Linden: i need togo in a few minutes

[9:53] Babbage Linden: any last thoughts of questions?

[9:53] JS Uralia: maybe timer jitter should be a unit test for sheduler changes

[9:53] Videlia Yuitza: later everyone have a good day/night ^^

[9:53] Ashira Legien: and chance of getting llPointAt function put back into the library

[9:53] Babbage Linden: testing timers in unit tests is hard

[9:53] JS Uralia: I guess you could probably measure the standard deviation of the wall clock for that

[9:54] Babbage Linden: many of the strange behaviours you can are caused by the interaction with the rest of the system

[9:54] JS Uralia: yes

[9:54] Babbage Linden: ok, i'm going to head off

[9:54] Siann Beck: Thanks, Babbage

[9:54] JS Uralia: thank you for your help!

[9:54] Ashira Legien: Thank you

[9:54] JS Uralia: and your hospitality

[9:54] Babbage Linden: remember, from next week, the office hour will be at 3AM on wednesday morning SLT

[9:54] Nock Forager: Thank you for meeting!

[9:54] Ima Mechanique: thanks Babbage, hope you get hom e for dinner

[9:54] Babbage Linden: I hope that some of you will be able to make it

[9:55] Babbage Linden: me too Ima :-D

[9:55] Siann Beck: I'll try to be there!

[9:55] Babbage Linden: see you all next week hopefully

[9:55] JS Uralia: I will send a profile-web-form-note to Torley so he remembers to update the google calendar

[9:55] Siann Beck: lol

[9:55] Babbage Linden: bye!

[9:55] Ima Mechanique: bye all

[9:55] WolfPup Lowenhar: tc babbage