Babbage Linden講演会ログ
2008年10月24日(金曜日)、23時~24時に、Linden Labにおけるスクリプト関係、特にMono関連の開発プロジェクトを担当しているBabbage Lindenさんによるスピーチ セッションが行われました。
このページでは、の時のチャットログを公開しています。
【参考資料】
- Second Life Wiki User:Babbage_Linden (オフィスアワーのログなど)
- Second Life in Japan Mono Howto(Second LifeでのMonoに関する情報)
[7:13] Nock Forager: Hi Babbage. Thanks for comming.
[7:13] Babbage Linden: hi nock
[7:13] MasterPoppy Amat: hi:)
[7:13] Babbage Linden: sorry I'm a bit late
[7:13] Fake Fitzgerald: 居た
[7:13] Kayla Schumann: hello
[7:13] pipinpa Allen: hi Babbage :)
[7:13] SakuraNoel Fayray: hi^^
[7:13] Miya Watanabe: hello
[7:13] makitune Sosa: hello
[7:13] An Ballinger: Greeting
[7:13] Giorno Brando: welcome back, master!
[7:13] Kufu Klees: hi!
[7:13] Tomoneko Mayo: Hello Babbage.
[7:13] Terry Hirvi: どこだーとおもったら目の前だったw
[7:13] Fake Fitzgerald: hi Babbage, welcome here
[7:13] Nock Forager: Take your sheat at the center of circle.
[7:13] SakuraNoel Fayray: w
[7:14] pipinpa Allen: so lovely :)
[7:14] MasterPoppy Amat: おなじくめちゃ探してましたw
[7:14] Nock Forager: Babbage did you already looking around this convention sites?
[7:15] Nock Forager: We have many exhibitions around here.
[7:15] Babbage Linden: nope, i've only just got here
[7:15] Nock Forager: oh. I hope you to take around later :)
[7:15] Babbage Linden: i will do later
[7:16] Babbage Linden: i also don't have anything prepared, what would you all like to talk about?
[7:16] Nock Forager: lol. Maybe new advantage from Mono?
[7:16] Babbage Linden: ok, sure, that seems sensible
[7:16] Nock Forager: yes.
[7:17] Babbage Linden: so, the obvious first benefit from mono is performance
[7:17] Babbage Linden: depending on what you're doing, scripts can run 200 times faster on mono
[7:17] Babbage Linden: we have some demo videos on the blog and wiki
[7:17] Babbage Linden: let me get a good example out for you now
[7:18] Babbage Linden: that is a free, open source fractal explorer
[7:18] Nock Forager: The one you testing before Mono.
[7:19] Babbage Linden: which can calculate dozens of fractals on mono in the time it takes to calculate a single fractal in LSL
[7:19] Fake Fitzgerald: 245 prims.... awesome
[7:19] Babbage Linden: if you click on the display it zooms in on the spot you clicked and redraws the mandelbrot set
[7:19] Tomoneko Mayo: lol
[7:19] pipinpa Allen: ahh
[7:19] Babbage Linden: it's the mandelbrot benchmark from the language shootout
[7:19] SakuraNoel Fayray: lol
[7:19] Babbage Linden: which we were using during development
[7:20] pipinpa Allen: intersting :)
[7:20] Babbage Linden: which i then added to a screen by chance zeta to turn in to a demo
[7:20] Babbage Linden: one of the interesting things about it is that it turns something that took minutes on the LS0 engine
[7:20] Babbage Linden: into something that is interactive when running on Mono
[7:21] Miya Watanabe: hm
[7:21] Babbage Linden: so Mono increases the gamut of interactive application possible in Second Life
[7:21] pipinpa Allen: awesome
[7:21] Babbage Linden: where before you might have generated a 3D object from some data
[7:21] Babbage Linden: you might now be able to interact with that 3D data
[7:22] Babbage Linden: for example to generate 3D graphs that could be manipulated by many people at the same time
[7:22] Babbage Linden: in a similar way to people manipulating 2D databases and seeing charts
[7:22] Babbage Linden: to visualise strategies
[7:22] Giorno Brando: awesome!
[7:22] Babbage Linden: the performance improvement is also useful when you have many trivial scripts too
[7:23] Babbage Linden: which is a more common situation in Second Life
[7:23] Babbage Linden: for example in heavily scripted regions like Abbots Aerodrome
[7:23] Babbage Linden: which runs thousands of scripts concurrently
[7:24] Babbage Linden: in those circumstances even though the performance benefit is not perceivable for any individual script
[7:24] Babbage Linden: on aggregate the simulator might run 20% faster than before
[7:24] Babbage Linden: which reduces lag and makes the region feel more responsive
[7:24] Babbage Linden: so, performance is the main benefit of Mono at the moment
[7:25] Babbage Linden: but it also lays the foundations for further improvements in the future
[7:25] Babbage Linden: as it implements the Common Language Infrastructure
[7:25] Babbage Linden: Mono potentially allows scripting of Second Life in other languages
[7:25] Babbage Linden: such as C#, JavaScript, Python and Ruby
[7:25] pipinpa Allen: so sweet :)
[7:26] Babbage Linden: which you're already starting to see in OpenSim
[7:26] Babbage Linden: it's much harder to do in Second Life
[7:26] Babbage Linden: as we need to run scripts in a trusted sandbox
[7:26] pipinpa Allen: ahh
[7:26] Babbage Linden: so they can't crash our simulators
[7:26] Babbage Linden: or perform denial of service attacks
[7:26] Babbage Linden: or bypass permissions etc
[7:27] Babbage Linden: OpenSim doesn't make any promises about its sandbox
[7:27] Babbage Linden: so if you run untrusted code in OpenSim
[7:27] Babbage Linden: it might mess with your sandbox or system
[7:27] Hidenori Glushenko gave you babbage speach questions.
[7:28] Babbage Linden: however, Mono's sandbox security has become much better recently
[7:28] Babbage Linden: as they are using Mono to build Moonlight - an open source implementation of Silverlight
[7:28] Babbage Linden: as Silverlight apps run in your browser, they need to be sandboxed
[7:28] Babbage Linden: so they can't mess with your system
[7:28] Babbage Linden: the same sandboxing technology being built for Moonlight
[7:29] Babbage Linden: will hopefully allow us to build a secure sandbox for C# and other languages in Second Life in the near future
[7:29] Babbage Linden: once that is fully implemented and robust
[7:29] Babbage Linden: it is relatively easy for us to allow other languages in Second Life
[7:30] Babbage Linden: and it's something we've been making sure we allow in the implementation of LSL on Mono
[7:30] Babbage Linden: when we compile LSL scripts to run on Mono
[7:30] Babbage Linden: they actually use the same interface that we plan C# scripts to use
[7:30] Babbage Linden: the C# scripts would just use that interface directly
[7:31] Babbage Linden: we've been experimenting with C# internally
[7:31] Nock Forager: :)
[7:31] Babbage Linden: and have a C# scriptable simulator running inside Linden Lab already
[7:31] Babbage Linden: which is very nice
[7:31] Hidenori Glushenko: sounds interesting
[7:31] Babbage Linden: C# is a much nicer language to use
[7:31] Babbage Linden: when you're used to having objects, classes, arrays, inheritance and exceptions
[7:32] Babbage Linden: which are features that are often asked for in LSL
[7:32] Hidenori Glushenko: yes
[7:32] Babbage Linden: a lot of people have been asking for more features in LSL
[7:32] Babbage Linden: but the current plan is to keep LSL as a simple language
[7:32] Babbage Linden: and add support for other more advanced languages for people that want to use them
[7:33] Babbage Linden: otherwise there is a danger that we'd make LSL too complex
[7:33] Babbage Linden: and it would lose the advantage of simplicity
[7:33] Towa Noel gave you LSL-ItemDemoTex_TowaNoel.
[7:33] Babbage Linden: which is one of the few things that LSL has going for it ;-)
[7:33] Babbage Linden: as well as adding support for new languages
[7:34] Babbage Linden: we would like to exploit Mono's better memory handling
[7:34] Babbage Linden: by removing the arbitrary memory limit on scripts
[7:34] Babbage Linden: so, instead of having to break a large application in to many 16K scripts
[7:34] Babbage Linden: you could have a single large script
[7:34] Hidenori Glushenko: wow
[7:34] Babbage Linden: that allocated memory from a pool allocated to your avatar (for an attachment)
[7:35] Babbage Linden: or a parcel memory pool (for objects in world)
[7:35] Babbage Linden: although scripts that used a lot of memory would be difficult to move between regions
[7:35] Babbage Linden: for many applications where they stay in the same region there would be no problem
[7:36] Babbage Linden: the first client of this resource pool approach is HTTP In
[7:36] Babbage Linden: which is now available on the preview grid
[7:36] pipinpa Allen: ahh good news :)
[7:36] Babbage Linden: instead of saying that each script could only allocate a single public URL
[7:36] Fake Fitzgerald: yeah, I already tested http-in
[7:36] Babbage Linden: we created avatar and parcel pools of URLs
[7:37] Babbage Linden: and allowed a single script to allocate all of the URLs in its pool if it wants to
[7:37] Babbage Linden: if that makes sense for your application
[7:37] Hidenori Glushenko: the URLs are now very temorally
[7:37] Hidenori Glushenko: temporally*
[7:37] Babbage Linden: yes, that was by design
[7:37] Babbage Linden: in our previous systems for inbound communication
[7:37] Babbage Linden: email and XMLRPC
[7:37] Babbage Linden: we built a router
[7:37] Babbage Linden: which attempted to find an LSL script and send it a message
[7:38] Babbage Linden: but that created a single point in our system
[7:38] Babbage Linden: which wasn't scalable
[7:38] Babbage Linden: if you've used XMLRPC to talk to a script from the outside world recently
[7:38] Babbage Linden: you'll know that it often gets overloaded
[7:38] Babbage Linden: the idea with HTTP In was to use the internet to do that routing
[7:39] Babbage Linden: and avoid any central routing service
[7:39] Hidenori Glushenko: hmm
[7:39] Babbage Linden: and make sure that each simulator added all the resources needed to support the scripts it ran
[7:39] Babbage Linden: so, the common model with HTTP In
[7:39] Babbage Linden: will be that people will build an external routing service
[7:39] Babbage Linden: which provides a static URL for people to talk to
[7:40] Hidenori Glushenko: yes, we just think about it, lol
[7:40] Babbage Linden: their LSL scripts will then communicate with that service to register their URLs
[7:40] Babbage Linden: and then the external service will redirect requests to the known URL
[7:40] Babbage Linden: to the temporary URL
[7:40] Babbage Linden: in a simular way to dynamic DNS
[7:40] Hidenori Glushenko: yeah
[7:41] Babbage Linden: i've been hoping to find time to build a simple example web service for this
[7:41] Babbage Linden: it would only be a few lines of code
[7:41] Babbage Linden: and many scripts could share the same redirection service
[7:41] Babbage Linden: the other common model is that scripts will communicate with external web services which will be able to remember their URL
[7:41] Babbage Linden: so the script will start up
[7:41] Babbage Linden: get a URL
[7:42] Babbage Linden: and then use HTTP Out to tell the external service it's URL
[7:42] Babbage Linden: the script and external web service can then communicate bidirectionally
[7:42] Babbage Linden: without any polling
[7:42] Hidenori Glushenko: hmm
[7:43] Babbage Linden: HTTP In can also be used by scripts within Second Life
[7:43] Babbage Linden: to provide a secure way to communicate between scripts finally
[7:43] Babbage Linden: scripts can broadcast their URL
[7:43] Babbage Linden: and then other scripts can send requests to the URL
[7:44] Babbage Linden: to send messages to the script that cannot be overheard
[7:44] Babbage Linden: in fact you can use HTTP In to build capability based systems within Second Life
[7:44] Babbage Linden: that use the same security machinery that we use to provide the Second Life service itself
[7:45] Babbage Linden: one final thing we hope to use Mono for is to provide proper script libraries
[7:45] Babbage Linden: as Mono has a proper linker
[7:45] Babbage Linden: you could potentially build scripts that have no flow of control
[7:45] Nock Forager: libraries :)
[7:45] Babbage Linden: but provide library types and methods
[7:45] Babbage Linden: that can be used by other scripts
[7:46] Babbage Linden: this would allow people to build OO libraries on top of the ll* library functions
[7:46] Babbage Linden: when using OO languages in Second Life like C£
[7:46] Babbage Linden: C# sorry
[7:46] Hidenori Glushenko: lol
[7:46] Babbage Linden: instead of us having to define a single OO interface to Second Life
[7:47] Babbage Linden: scripters could work together and compete to design OO interfaces
[7:47] Babbage Linden: which could be open source or commercial
[7:47] Babbage Linden: as they would use the full Second Life economy
[7:47] Nock Forager: We need new permission system too to do that.
[7:47] Babbage Linden: and permissions systems
[7:47] Nock Forager: ah :)
[7:47] Babbage Linden: with the current system you could for example sell copy no transfer script libraries
[7:48] Babbage Linden: to have a "site license" equivalent model
[7:48] Babbage Linden: or a no-copy transfer single resellable license
[7:48] Babbage Linden: or a full perms script
[7:48] Babbage Linden: which could include any open source license at the top
[7:48] Babbage Linden: to have open source libraries
[7:49] Babbage Linden: so, those are the things that Mono makes possible
[7:49] Babbage Linden: but there's years of work there
[7:49] Babbage Linden: so please bear with us :-)
[7:49] Nock Forager: yay
[7:50] Babbage Linden: i need to head off soon as I'm giving a talk at another online conference later :-)
[7:50] Babbage Linden: http://www.headconference.com
[7:50] Hidenori Glushenko: wow
[7:50] Babbage Linden: they have a Second Life hub so, maybe I will see some of you there
[7:50] Babbage Linden: but before I go, are there any questions?
[7:50] Babbage Linden: or comments?
[7:50] Nock Forager: Some questions they have..
[7:51] Fake Fitzgerald: yeah
[7:51] Fake Fitzgerald: I strongly want to modify the header of the response in http-in
[7:52] Nock Forager: ah lol. requesting your bear is in the list too.
[7:52] Fake Fitzgerald: currently Conent-Type header is text/plain only
[7:52] Babbage Linden: hehe, let me get it out
[7:52] Fake Fitzgerald: Any plans about that ?
[7:52] Babbage Linden: theres a copyable one I'll leave out for a while
[7:53] Babbage Linden: I imagine text/plain is the most common type
[7:53] Babbage Linden: due to the limitations of LSL and it's memory limitations
[7:53] Babbage Linden: but I could imagine XML or JSON might be useful when scripts can have more memory
[7:54] Babbage Linden: what types would you like to see Fake?
[7:54] Fake Fitzgerald: actual example, text/html
[7:54] Babbage Linden: ok, that makes sense
[7:54] Babbage Linden: for use by web browsers
[7:54] Fake Fitzgerald: currently, access to the URL from web browser
[7:54] Fake Fitzgerald: yes!
[7:55] Babbage Linden: (we hadn't actually thought people would use it to serve HTML much ;-)
[7:56] Babbage Linden: so, you'd like to see that as an option that can be set in the http_request event?
[7:56] Hidenori Glushenko: hmm
[7:56] Fake Fitzgerald: hum, in the http_reqest is suitable I think
[7:57] Babbage Linden: ok, i'll talk to Kelly about it
[7:57] Babbage Linden: nock, you said there were some other questions?
[7:57] Hidenori Glushenko: About the wider user application/scripts, ?the data-storage feature is the biggest needs right now in the LSL built-in feathre, do u have any ideas or suggestions in providing a simple database?
[7:57] Babbage Linden: we don't have any plans at the moment
[7:58] Babbage Linden: currently external HTTP services can be used to store data
[7:58] Hidenori Glushenko: yeah
[7:58] Babbage Linden: which is actually the common model for web applications anyway
[7:58] Babbage Linden: which generally split the application server and data store
[7:59] Miya Watanabe: hmm
[7:59] Babbage Linden: adding database services to our current application would be a whole new business for us
[7:59] Babbage Linden: so there would have to be lots of discussion with the executives before we added that
[7:59] Hidenori Glushenko: thanks
[8:00] Babbage Linden: ok, i need to dash
[8:00] Babbage Linden: thanks for coming everyone
[8:00] Babbage Linden: i hope that was useful
[8:00] Kayla Schumann: thank u
[8:00] Giorno Brando: awesome!
[8:00] Miya Watanabe: thank you for coming
[8:00] Michelle Rall: thank you
[8:00] Nock Forager: Thanks for taking your time. Babbage.
[8:00] Fake Fitzgerald: thanks babbage
[8:00] yoshihiro Obolensky: thank you babbage!!
[8:00] Hidenori Glushenko: nice session
[8:00] An Ballinger: thank you Mr.Babbage
[8:00] Terry Hirvi: thx babbage.
[8:00] Haruka McMahon: Thank you,Babbage
[8:00] Kennt Kidd: thank you
[8:00] ameta Amiot: thanks babbage
[8:00] Nock Forager: Was very usefull!
[8:00] Tomoneko Mayo: thank you Babbage
[8:00] SakuraNoel Fayray: thank you^^
[8:00] Sabro Boucher: thank you
[8:00] Babbage Linden: i hope to see you all at <head>
[8:01] Babbage Linden: or at one of my office hours
[8:01] Haruka McMahon: Very interesting
[8:01] Babbage Linden: which are at 8AM SLT on wednesdays
[8:01] Babbage Linden: where we talk about this stuff every week
[8:01] Nock Forager: ah would you mind if we release this session's log at our web site?
[8:01] Nock Forager: (maybe with some translations)
[8:02] Babbage Linden: sure that's fine
[8:02] Terry Hirvi: おおー
[8:02] SakuraNoel Fayray: ^^
[8:02] Miya Watanabe: great
[8:02] Babbage Linden: np
[8:02] Babbage Linden: bye!
[8:02] Haruka McMahon: Thank you!
[8:02] Nock Forager: thanks. I'll add short link on your wiki page too.
[8:02] Tomoneko Mayo: bye
[8:02] Fake Fitzgerald: cya
[8:02] Terry Hirvi: bye!
[8:02] SakuraNoel Fayray: bye bye
[8:02] Giorno Brando: see you!
[8:02] Miya Watanabe: bye
[8:02] Ramona Forcella: see ya
[8:02] Fake Fitzgerald shouts: \(^o^)/
