User:Babbage Linden/Office Hours/2010 05 05

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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# last.fm 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 last.fm 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) - http://www.codeproject.com/KB/silverlight/SilverlightYouTubeJukeBox.aspx

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

[03:46] Gooden Uggla: http://www.un4seen.com/bass.html

[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 - http://www.codeproject.com/KB/silverlight/silverlight_tetris.aspx

[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 http://www.codeproject.com/KB/audio-video/cameraviewer.aspx

[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 http://packages.qa.debian.org/m/mono.html

[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 - http://www.codeproject.com/KB/applications/amazonportal.aspx

[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: http://jira.secondlife.com/browse/SVC-5329

[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