User:Babbage Linden/Office Hours/2010 05 05

From Second Life Wiki
Jump to: navigation, search

Transcript of Babbage Linden's office hours:

[03:07] Babbage Linden: Hi everyone

[03:07] Faust Vollmar: Oh hey babbage.

[03:07] Faust Vollmar: /me shuts up now

[03:08] Kaluura Boa: Hi...

[03:08] Cerdita Piek: hi babbage

[03:08] Ardy Lay: Hi

[03:08] Faust Vollmar: After chewing up like half of andrew's OH I think I'm gonna shut my yap for this one. =p

[03:08] Babbage Linden: Today I'd like to talk about good demos for C#

[03:09] Morgaine Dinova: If there a Jira asking that script error messages identify the attachment wearer?

[03:09] Babbage Linden: we're currently working on configuring the sandbox for C# scripts

[03:09] Babbage Linden: and working on the initial C# API documentation

[03:09] Morgaine Dinova: Were those your errors output Babbage? Never see a list that long before

[03:09] Karel Linden: mine I think

[03:10] Babbage Linden: but there are lots of people inside Linden who would like to see some demos of what we're building

[03:10] Sebastean Steamweaver: /me feeds Sierra whelp snacks.

[03:10] Babbage Linden: so, our plan is to test the sandbox and documentation by building some C# demos next week

[03:10] Morgaine Dinova: Neat

[03:10] Babbage Linden: so, question: if you had a week to build some demos to show off C# in SL, what would you build?

[03:10] Sierra Janus: where will the documenation be available? The wiki?

[03:10] Moy Loon: I'd love to help out, with things like arrays I'd be able to do abunch of simple-ish games much easier

[03:11] Faust Vollmar: /me probably wouldn't get anything done in a week, he'd still be figuring things out at that point. XD

[03:11] Sierra Janus: shared secret crypto via chat channels :P

[03:11] Babbage Linden: the plan is to get C# in to beta as soon as possible

[03:11] Jonathan Yap: How about the classic game of Life demo that was also used for LSL2?

[03:11] Babbage Linden: but there is a desire to have some demos build internally

[03:12] Faust Vollmar: Heh Life is a must, just for tradition's sake.

[03:12] Babbage Linden: I'm convinced that once we have it in your hands in beta you'll build a ton of great stuff to show off

[03:12] Babbage Linden: but until then, I think we need to do a round of demos internally

[03:12] Imaze Rhiano: one week? humm... ultimate "hello world" script

[03:12] Babbage Linden: (which will be a good thing, as we should eat our own caviar and test that everything works)

[03:13] Kaluura Boa: For the beginners, some simple scripts showing the basic events (touch, listen) in actions would be nice...

[03:13] Babbage Linden: let me outline where we've got to in our thinking

[03:13] Jonathan Yap: Are the people seeing these demos going to be looking at just the results, or the source, too?

[03:14] Babbage Linden: the biggest benefit of C# is the ecosystem: the tutorials, books, libraries and such

[03:14] Kaluura Boa: The sources are more important than the visual results

[03:14] Babbage Linden: of those the most demoable would be the libraries

[03:14] Babbage Linden: so, looking for C#1 libraries and demos we could port to SL would be good

[03:14] Sierra Janus: Depends on perspective, it can also be a problem (noob question: "why does 'Form' work?"

[03:15] Babbage Linden: there is a silverlight chess demo for example, that we might be able to use the AI from and rewire to move prim pieces around

[03:15] Babbage Linden: (the audience for these demos is mostly non-technical lindens, the engineers are already won over)

[03:15] Babbage Linden: if we could say "we ported this C# demo to SL in a day"

[03:16] Sebastean Steamweaver: So, there are lindens who need to be convinced this is a good thing?

[03:16] Babbage Linden: that would be a good demo of the ecosystem benefit for example

[03:16] Imaze Rhiano: you want to write something visual then - or - it could interact with webpages somehow

[03:16] Sierra Janus: I could port a A* pathfinding class I made

[03:16] Babbage Linden: sebastean, there are always people that need convincing: there are many things that could be done with SL and only a finite number of Lindens

[03:16] Babbage Linden: Sierra, pathfinding would be a great example I think

[03:17] Babbage Linden: (and being able to say "A resident ported this to C# for us" would be great - you don't need us to ship anything for you to start writing C#)

[03:18] Babbage Linden: If any of you could port interesting algorithms to C# 1 and System.Collections that would be super helpful :-D

[03:18] Babbage Linden: So, the big benefit is the ecosystem which we can demo by reusing code

[03:18] Sierra Janus: Depends on how much information is exposed via libs

[03:18] Babbage Linden: Another big benefit is productivity, but that's a hard one

[03:18] Sierra Janus: Raycasting would be a good one to port but unless we have the sim information exposed to do it then it isn't too useful

[03:19] Babbage Linden: Being able to demo that C# is good for complex systems is hard without having time to build a complex system

[03:19] Babbage Linden: which we don't, in a week

[03:19] Babbage Linden: Sierra, assume the same ll* methods exist as in LSL

[03:20] Sierra Janus: hurray....

[03:20] Babbage Linden: but, you can build your own types use C#1 language features and anything in the BCL

[03:20] Babbage Linden: (System.Collections being the most useful)

[03:20] Sierra Janus: I was kinda hoping more information about the environment would be exposed but ok >.<

[03:20] Sebastean Steamweaver: Well, I can do raycasting currently with LSL. If it can be done with LSL I'm sure it could be done with C#.

[03:21] Morgaine Dinova: Surely C# doesn't need selling internally, does it?

[03:21] Babbage Linden: Morgaine, sure, everything does

[03:21] Skills Hak: 'sup

[03:21] Babbage Linden: And C# is harder than a lot of projects as the benefits are subtle (but big)

[03:21] Imaze Rhiano: maybe somekind string search demo?

[03:21] Babbage Linden: It's hard to sell "a better version of what we have" to non-technical Lindens

[03:22] Babbage Linden: and that is what is needed here

[03:22] Babbage Linden: we need to show how it's better

[03:22] Babbage Linden: which is fair enough

[03:22] Sebastean Steamweaver: Arrays, pointers...

[03:22] Chaley May: i think its less of selling it internally and more giving examples of how best to sell it to SL residents..ideas for them to write about on the blog

[03:22] Jonathan Yap: Do you need things that are visually impressive?

[03:22] Babbage Linden: It's both Chaley, I'd like to have some demos to show off externally too.

[03:23] Morgaine Dinova: Babbage: I don't come from that school of thought. It's a technical matter, you TELL them, don't ask. They don't come to you for advice on finance, or on policy. Why are Linden techies inferior when it comes to technical decisions?

[03:23] Karel Linden: Things that are hard or impossible in LSL would be good

[03:23] Sebastean Steamweaver: I think, then, what needs to be focused on is things we -can't- do with LSL, that we can say, "We can do this if we introduce C#"

[03:23] Babbage Linden: Jonathan, that's the trick - visually impressive things are possible in LSL

[03:23] Babbage Linden: We'd like crisp little demos that demonstrate the advantages of C#

[03:24] Babbage Linden: Which is tricky when a lot of the advantages are productivity advantages

[03:24] Sebastean Steamweaver: are* things

[03:24] Sierra Janus: unfortunately most of the stuff I want to do isn't all 'pretty' visually

[03:24] Jonathan Yap: Babbage, you can show them the difference in code size for the routines that let you connect to facebook

[03:24] Sebastean Steamweaver: Sierra: if you can demonstrate how it's superior to trying to do it in LsL in a visual way, that may be a good thing.

[03:24] Jonathan Yap: (or was it twitter?)

[03:24] Skills Hak: ooooo play the facebook card yes :>

[03:24] Babbage Linden: Jonathan, yes that is one demo we're going to use

[03:24] Skills Hak: demo was twitter

[03:24] Babbage Linden: and connecting to external services are good in general

[03:25] Sierra Janus: Right, how do I visually represent that my code is faster and smaller for XYZ crypto implementation compared to LSL? Display it's progress visually? Boring

[03:25] Babbage Linden: reusing a C# google doc client API might work well for example

[03:25] Morgaine Dinova: The benefits of C# are technical. Trying to convince non-techs about the merits of C# is like trying to educate ants in philosophy. Just TELL them it's good, period.

[03:25] Babbage Linden: but we'd need to port it to llHttpRequest

[03:25] Sierra Janus: Morgaine: Tell them via graphs, show the LSL stats as small bars and the C# graphs as BIG bars :P

[03:25] Babbage Linden: Another example we've come up with is a 3D Reflector tool

[03:26] Morgaine Dinova: Sierra: they don't have the background to understand all that.

[03:26] Sebastean Steamweaver: Mirroring?

[03:26] Babbage Linden: that uses System.Reflection to introspect the script and display it in 3D using HTML on a prim

[03:26] Sierra Janus: Don't need to, it's all pretty graphs :P BIGGER is BETTER xD

[03:26] Morgaine Dinova: lol

[03:26] Sebastean Steamweaver: HTML on a prim?

[03:26] Babbage Linden: so, you would copy code in to the script (we don't have library support yet) and the script would look at all of the methods outside it's own class and build a graph of relationships

[03:26] Jonathan Yap: Sebastean, that is part of viewer 2, media on a prim

[03:27] Morgaine Dinova: Well yeah, I guess, you can blind them with pretty graphics. But it's missing the point a bit. You shouldn't need to sell a technical decision to non-techs.

[03:27] Sebastean Steamweaver: Oh, MoaP - I got excited for a sec.

[03:27] Sebastean Steamweaver: I think Morg is saying, they ought to trust you, as their technical developers, when you enthusiastically tell them that it's a great improvement.

[03:27] Morgaine Dinova: Yep

[03:28] Babbage Linden: Other things we've thought about are porting the language shootout benchmarks to C'

[03:28] Jonathan Yap: Will there be memory savings for C# scripts? That could be a selling point

[03:28] Babbage Linden: C#

[03:28] Babbage Linden: which should show improvements as arrarys would speed them up a lot

[03:28] Jonathan Yap: Or a graph of cpu usage compareed to lsl/lsl2 -- saves system resources

[03:29] Sierra Janus: I have another idea, what about porting an A.L.I.C.E C# implementation?

[03:29] Morgaine Dinova: How did Mono/C# do in the shootout vs C/C++ ?

[03:29] Kaluura Boa: btw, is there a place where we can test anything?

[03:29] Babbage Linden: Sierra, yes, AI would be a good example

[03:29] Babbage Linden: like pathfinding

[03:29] Babbage Linden: I was thinking about looking for AI libraries that could be interacted with via chat

[03:29] Babbage Linden: or, even better spatial reasoning AIs that could reason about prims

[03:30] Babbage Linden: ("The red cube is on top of the blue cube")

[03:30] Sebastean Steamweaver: That's the kind of AI I've been working on, but in LSL.

[03:30] Sierra Janus: Yeah, ALICE would be good but will your libs have XML support?

[03:30] Sierra Janus: proper*

[03:30] Babbage Linden: those would be good to show off

[03:30] Babbage Linden: Sierra, yes, System.XML will be available

[03:30] Babbage Linden: and also, for the demos, we can increase the memory limit on the sim

[03:31] Sierra Janus: Goodie, that'll be good for an ALICE implementation

[03:31] Babbage Linden: (effectively demoing Big Scripts in advance)

[03:31] Babbage Linden: so, we could show off an AI demo using 1MB of memory in a single script

[03:31] Gooden Uggla: zabaware has an AI in SL, works on facebook too...

[03:31] Babbage Linden: which should allow much more than is possible in LSL

[03:32] Babbage Linden: Any other thoughts?

[03:32] Sierra Janus: From a quick search zabaware is not OSS

[03:32] Babbage Linden: Things that would be great in LSL, but just aren't quite possible?

[03:33] Babbage Linden: C# libraries that would be really useful in SL?

[03:33] Skills Hak: irc?

[03:33] Sierra Janus: asymmetric crypto :P

[03:33] Sierra Janus: Though frankly I'd just be more happy if more information about the environment were exposed

[03:33] Moy Loon: Will other forms of connections be usefull, as in sockets?

[03:34] Moy Loon: Using http for anything interactive is kinda....lame

[03:34] Gooden Uggla: hacking everything open?

[03:34] Sierra Janus: lol, if we ever get sockets in SL then the rapture will be upon us :P

[03:34] Skills Hak: heheh

[03:34] Babbage Linden: Not initially Moy, there are lots of security considerations there

[03:34] Moy Loon: I guess that's true

[03:35] Babbage Linden: But, I'm hoping that more interactivity will be possible in SL

[03:35] Babbage Linden: and less need to do the heavy lifting on an external server

[03:35] Sierra Janus: Babbage++

[03:35] Sebastean Steamweaver: Babbage++

[03:35] Sebastean Steamweaver: SL scripts need more capacity. Things need to be more interactive, without being dependent on outside servers.

[03:36] Babbage Linden: Agreed, with big scripts and C# they will be

[03:36] Faust Vollmar: Although I'm sure some things will simply always require external stuff like databasing, so not all of us should get our hopes up on that one. =p

[03:36] Babbage Linden: (we may have to improve the scheduler too, but hopefully we'll get to that)

[03:36] Sebastean Steamweaver: With that in mind, being able to print text to a prim face would be a great step in the right direction :D

[03:37] Sierra Janus: Would be nice to do something like Graphics grp = new Graphics(); and apply that to a prim face.... :)

[03:37] Babbage Linden: Sebastean, you can use data URLs and generate HTML already...

[03:37] Sebastean Steamweaver: Sierra: rapture :P

[03:37] Moy Loon: Currently you can't

[03:37] Jonathan Yap: Sebastean, there is a wiki entry on how to hack data urls

[03:37] Sebastean Steamweaver: Babbage, that can't update quickly, and it can't be hosted in-world.

[03:37] Gooden Uggla: if you wish to convince lab non-techs, explain how xstreet commerce and new user retention will be effected

[03:38] Moy Loon: Because it sends as text type only

[03:38] Faust Vollmar: Gooden hit it rihgt there.

[03:38] Faust Vollmar: right*

[03:38] Babbage Linden: Gooden, yes, agreed, so what demos would be good there?

[03:38] Sierra Janus: Adjustable MIME types would be nice

[03:38] Sebastean Steamweaver: Yuo can use plain text with line breaks, and that's it, and llSetPrimitiveMediaPArams has a 1 sec delay attached to it.

[03:38] Gooden Uggla: database and reports for merchants

[03:38] Babbage Linden: In general, demoing "better" stuff in C# would work, but we're not going to get to that in a week.

[03:38] Gooden Uggla: education for n00bs

[03:38] Sebastean Steamweaver: Plus, the page doesn't auto-update if you change info.

[03:38] Moy Loon: I used my website to proxy some data urls, and provide things like simple DNS, and just switched mine types to html, and was able to do a few neat things with http server prims

[03:39] Moy Loon: You could use things like ajax Sebastean

[03:40] Babbage Linden: We're planning to use data urls for the Reflector demo, so that will give us some good experience

[03:40] Gooden Uggla: if you can convince people that applications that will hurry new signups into the classroom or conference room are easier to construct...

[03:40] Gooden Uggla: or that will show the "oohh shiny" to new signups...

[03:41] Babbage Linden: C# will definitely make things like the Immersive Workspace easier to build

[03:41] Babbage Linden: but again, showing that off in a week is hard

[03:41] Gooden Uggla: how about just creating a better inworld jukebox?

[03:41] Gooden Uggla: most of them really suck

[03:41] Babbage Linden: That's not a bad idea

[03:41] Babbage Linden: is there a C# client or similar?

[03:41] Sierra Janus: Shame I haven't order that embeded device I spoke about in AWG which has .NET Micro 4.0 running on it. What better demo than a .NET device that talks with .NET SL ? :P

[03:41] Sierra Janus: ordered*

[03:42] Babbage Linden: /me built a jukebox years ago, but it broke with API changes

[03:42] Sebastean Steamweaver: Bah, disconnected

[03:43] Sebastean Steamweaver: As I was saying, I've been looking for a way to render text, without a delay, that doesn't depend on moap. Some things simply don't need to be that complex.

[03:43] lonetorus Habilis: SVG on a prim!!11

[03:43] Sebastean Steamweaver: Yes Ion, that's the idea.

[03:43] Jonathan Yap: There is that new PRIM_TEXT parameter

[03:43] Sierra Janus: There's a JIRAabout that...

[03:44] Sebastean Steamweaver: Yeah Sierra, I created it lol

[03:44] Babbage Linden: I would prefer to fix existing mechanisms

[03:44] Sebastean Steamweaver: Jonathan that's for float text.

[03:44] Babbage Linden: HTML is a pretty popular way to generate formatted text

[03:44] Faust Vollmar: I'd be pretty happy to have something as fast as llSetText but with much greater size and positioning controls, lmao.

[03:44] Sierra Janus: "existing" mechanisms? What existing mechanism that allows us to draw on a prim without relying on external resources?

[03:44] Sebastean Steamweaver: There is none

[03:44] Babbage Linden: so, I'd prefer to fix the mime types, delays and whatever other road blocks there are

[03:44] Sierra Janus: Unless you allow us to change MIME types

[03:44] Sierra Janus: Aha ok

[03:45] Babbage Linden: HTTP server + MOAP should work

[03:45] Babbage Linden: so let's make it work

[03:45] Sebastean Steamweaver: Well, the other problem is that since it's dependent on the browser, it doesn't update quickly.

[03:45] Sebastean Steamweaver: Even if you use the trick of changing the URL you set it to.

[03:45] Babbage Linden: so, you need to use the long poll

[03:45] Babbage Linden: which is how you'd do dynamic pages in HTML

[03:45] Imaze Rhiano: Youtube jukebox (silverlight) -

[03:46] Sebastean Steamweaver: Well, let me give an example:

[03:46] Gooden Uggla:

[03:46] Babbage Linden: thanks imaze, this is exactly the kind of thing I'm after

[03:46] Sebastean Steamweaver: I have a HUD that works with a system I built. The HUD has a built-in help menu with popups.

[03:46] Chaley May: would it be difficult to put moap on a particle?

[03:46] Sierra Janus: HTTP refresh header?

[03:46] Jonathan Yap: Data URIs don't need to be hosted externally

[03:46] Babbage Linden: good existing demos in C# that we can look at porting

[03:46] Sebastean Steamweaver: BEcause I don't have a way to print to a prim face, I had to create a texture for all of the popups and help pages.

[03:46] Gooden Uggla: a youtube jukebox would be ideal, good find

[03:48] Imaze Rhiano: how is threading going to be handled in SL C#? Is it possible to queue own work items to thread pool?

[03:48] Sierra Janus: Will we even have access to threading?

[03:48] Babbage Linden: Imaze, currently the plan is to have threading work as it is with LSL

[03:48] Babbage Linden: each script is a microthread

[03:49] Imaze Rhiano: Silverlight Tetris -

[03:49] Babbage Linden: it's unlikely we'll be able to give access to the thread pool as they will be hard to schedule with micothreads

[03:49] Gooden Uggla: there's another thing... the ability to watch a home webcam (nanny monitor) inworld

[03:50] Gooden Uggla: the ability for zindra to have camshows inworld would bring in a huge windfall

[03:50] Babbage Linden: these are all great! please keep them coming and I'll take a look at them

[03:50] Babbage Linden: thanks everyone

[03:50] Babbage Linden: this is exactly what I was after

[03:51] Babbage Linden: send me notecards or IMs if you find anythign interesting after the office hour

[03:51] Babbage Linden: ok, so that was a great discussion

[03:51] Babbage Linden: is there anything you'd like to talk about in the last few minutes?

[03:52] Morgaine Dinova: Well the largest impact of C# by far will be its O(1) but effectively zero-time array indexing. A demo highlighting that would show the most impressive gain.

[03:52] Faust Vollmar: Nothing I havent already griped about lmao.

[03:52] Babbage Linden: for performance, yes

[03:52] Gooden Uggla: i'd like to know if there's a timeframe for mono 2.6 please?

[03:52] Babbage Linden: we should see those in the language shootout demos

[03:53] Babbage Linden: gooden, we're waiting for debian mono to hit 2.6

[03:53] Babbage Linden: which should be in the next couple of months

[03:53] Morgaine Dinova: Quite likely to see 1000-times speedup versus list traversal, if not more.

[03:53] Babbage Linden: then we can integrate it and get testing

[03:53] Gooden Uggla: so no idea yet which server that'll go to?

[03:54] Imaze Rhiano: Amazon explorer -

[03:54] Babbage Linden: 1.44 at the earliest

[03:54] Gooden Uggla: good news, thanks

[03:54] Babbage Linden: 1.40 is going to be havok

[03:54] Babbage Linden: 1.42 is going to be TC malloc

[03:54] Babbage Linden: 1.44 might be mono

[03:54] Babbage Linden: if it's available and supported on debian

[03:55] Gooden Uggla: is there a schedule to upgrade the debian?

[03:56] Babbage Linden: I'm not sure what it is

[03:56] Babbage Linden: we normally track stable + backport what we need

[03:57] Gooden Uggla: kelly was talking about needing a newer debian for mono 2.6

[03:57] Babbage Linden: possibly, we'll have to see

[03:57] Gooden Uggla: just wondering how that would schedule

[03:57] Gooden Uggla: ok,

[03:57] Babbage Linden: we have Mono 2.6.4 running on our syste,s

[03:57] Sebastean Steamweaver: Babbage, I do have one request :)

[03:58] Babbage Linden: but, we don't want to have to package and maintain it when running on production machines

[03:58] Sebastean Steamweaver: If we get a delay-less version of llSetPrimitiveMediaParams - let's not call it llSetPrimtiiveMediaParamsFast :P

[03:58] Faust Vollmar: hahahaha

[03:58] Sierra Janus: whisper: Definitely.... we need an ever longer name llSetPrimtiiveMediaParamsQuicker

[03:58] Babbage Linden: what would you call it Sebastean?

[03:59] Babbage Linden: /me is a little sad that the original had a delay

[03:59] Sebastean Steamweaver: llSetPrimMediaParams

[03:59] Babbage Linden: that would break existing scripts that require the delay

[03:59] Sierra Janus: Can't, backwards compatibility problems

[03:59] Faust Vollmar: Isnt the existing on *Primitive* not *Prim* ? =p

[03:59] Sebastean Steamweaver: Yes

[03:59] Sebastean Steamweaver: That's why I was differentiating.

[03:59] Babbage Linden: ok, that might work then

[04:00] Babbage Linden: the real trick is to stop lindens shipping calls with delays

[04:00] Faust Vollmar: good luck. =p

[04:00] Babbage Linden: it will be easier once script limits is finished

[04:01] Babbage Linden: as it will be easier to tie throttles to resource entitlements

[04:01] Sierra Janus: Heh, beat me to it Babbage :P

[04:01] Gooden Uggla: hopefully you'll do that after fixing mono :)

[04:01] Babbage Linden: (1 URL, N KB and M calls to llFoo per second)

[04:01] Chaley May: i thought versioning would make it possible to use the same name and have different behaviours for newer versions

[04:01] Sebastean Steamweaver: /me inserts a shameless plug for llSetPrimParams

[04:01] Babbage Linden: /me needs a bigger team

[04:01] Sebastean Steamweaver:

[04:02] Faust Vollmar: /me made his quota of shameless plugs at Andrew's OH even though they would have been better placed here. XD

[04:02] Babbage Linden: chaley, yes it will, but you need to deprecate compiling to LSO to use versioning

[04:02] Sierra Janus: shameless plugs have no quotas :P

[04:02] Jonathan Yap: Babbage, how many are on your team, about 4?

[04:02] Faust Vollmar: They do when you eat up a good half an office hour discussing what you'd use them for, I think. =o

[04:02] Babbage Linden: right, we're out of OH time, even if there is no throttle on plugs

[04:02] Babbage Linden: thanks for coming everyone

[04:02] Sierra Janus: Hahaha

[04:03] Sebastean Steamweaver: Thanks Babbage

[04:03] Morgaine Dinova: Cyu Babbage, have fun

[04:03] Jonathan Yap: Thank you Babbage

[04:03] Faust Vollmar: Cya Babbage

[04:03] Babbage Linden: and please send me more interesting C# demos for us to port if you find them

[04:03] Babbage Linden: thanks

[04:03] Babbage Linden: see you next week