User:Babbage Linden/Office Hours/2009 07 22

From Second Life Wiki
Jump to navigation Jump to search

Transcript of Babbage Linden's office hours:

[3:01] Phantom Ninetails: I detect Babbage

[3:01] Phantom Ninetails: Greetings, Babbage

[3:01] Latif Khalifa: the force is strong with him

[3:01] Latif Khalifa: hehe

[3:01] Phantom Ninetails: lol

[3:01] Kopilo Hallard: mmm my kind of environment

[3:01] Nock Forager: many one shows up in same time.

[3:01] Babbage Linden: Hello everyone

[3:01] Babbage Linden: I'm actually on time nearly ;-)

[3:01] Kopilo Hallard: greetings

[3:01] Nock Forager: hello Babbage.

[3:02] Phantom Ninetails: Heh

[3:02] Babbage Linden: let's wait a few minutes for people to turn up

[3:02] Opensource Obscure: thanks.

[3:02] Opensource Obscure: :D

[3:02] Opensource Obscure: hello evrrrrybody

[3:02] Phantom Ninetails: Greetings

[3:03] Gunter Vandyke: Hi all

[3:03] Opensource Obscure was watching a video .. 'A second (life) take on the Apple iPod silhouette ads and Daft Punk's Technologic track.'

[3:03] Opensource Obscure:

[3:03] Opensource Obscure: ^__^

[3:03] Babbage Linden: heh, that was a while ago :-D

[3:03] Babbage Linden: the video was great

[3:04] Babbage Linden: the music was one of my first attempts at making a track out of creative commons samples

[3:04] Opensource Obscure: hah!

[3:04] Babbage Linden: so, while we're waiting, is there anything people would like to talk about today?

[3:04] Gunter Vandyke: bulk permission problem?

[3:04] Gunter Vandyke: any news?

[3:04] Xugu Madison: C#, again, but in a we-have-news way

[3:05] Opensource Obscure: .. http-in scripts

[3:05] Latif Khalifa: c# in objects ;)

[3:05] Saijanai Kuhn: client side scripting ;-)

[3:05] Xugu Madison: Ooooh, client side scripting

[3:05] Xugu Madison: llTextBox() :-D

[3:05] Latif Khalifa: and does helping mono project with metadata verifier really help us get c# sooner

[3:06] Babbage Linden: ok, that gives us a pile of stuff to work through

[3:06] Babbage Linden: and it's 6 past, so let's get going

[3:07] Xugu Madison: Can I suggest we start with Latif's question, as it leads to my next bit....

[3:07] Babbage Linden: i don't know much about the bulk permissions problem

[3:08] Babbage Linden: there is a server fix that should be in 1.27.1

[3:08] Babbage Linden: which is planned for this week

[3:08] Gunter Vandyke: ah ok, thx

[3:08] Babbage Linden: anda viewer fix that can go out in 1.23.5

[3:08] JB Hancroft: Sorry was late :(... went to the wrong place

[3:08] Babbage Linden: that's the status as of 4 hours ago

[3:08] Lucian Collas: when is llInputBox going to be supported by the client?

[3:09] Babbage Linden: latif, c# in objects is waiting on the completed mono verifier

[3:09] Babbage Linden: which hopefully xugu can tell us about...

[3:10] Latif Khalifa: so helping mono project with it helps us get c# sooner?

[3:10] Babbage Linden: yes

[3:10] Latif Khalifa: cool

[3:10] Xugu Madison: Imaze has been leading a group to work with the Mono people. Basically, they need more test cases before they can call it "done". We're currently identifying what needs testing, and will start with writing up tests to match ASAP

[3:10] Babbage Linden: excellent! thanks!

[3:10] Saijanai Kuhn: I've got a notecard from Imaze about it if anyone needs it

[3:11] Xugu Madison: However, the impression I get from the Mono people is it's fairly much done, if you want to start talking to LL about getting you some time to work on this, Babbage, it should be in a state where you can test internally or even on preview...

[3:11] Babbage Linden: let's get that on the wiki too

[3:11] Xugu Madison: and we've got our own Wiki too for the curious:

[3:11] Babbage Linden: this is all excellent, thanks everyone!

[3:12] Babbage Linden: i wrote 400 test cases for the bytecode verifier serveral years ago which i know rodrigo used to build that

[3:12] Xugu Madison: I think the only real problem cases is where it's not permissive enough, and is blocking code obfuscators that .Net allows

[3:13] Babbage Linden: so, i'm sure any test cases that you can help write will be useful

[3:13] Latif Khalifa: yeah, we're highly motivated, to get a real programing language for object scripting, which has such advanced features as arrays :*gosh* :D

[3:13] Babbage Linden: heh, yes i know

[3:13] Babbage Linden: i'm really keen to expose mono fully

[3:13] Xugu Madison: I'm building a time machine to go back in time and stop Cory inventing LSL, who's with me? :)

[3:13] Latif Khalifa: Xugu, count me in :D

[3:14] Babbage Linden: at the moment we have an advanced vm, that supports modern languages, and hide it behind LSL ;-)

[3:14] Gunter Vandyke: L ? L

[3:14] Lucian Collas: i just use lsl for basic tasks, i send the messages etc to php which does the rest then sends back the variable

[3:14] Latif Khalifa: Babbage, travesty!

[3:14] Babbage Linden: cory did actually look at embedding the JVM at the time

[3:14] Latif Khalifa: uh oh, jvm to kill the server hosts

[3:14] Babbage Linden: but it would have been a ton more work than actually building the LSL VM

[3:15] Babbage Linden: and it wasn't properly open source at the time

[3:15] JB Hancroft: Is it now?

[3:15] Babbage Linden: and lots of lindens had horror stories with late nineties java

[3:15] lilmama Pearl: hi

[3:15] Babbage Linden: to be fair, embedding Mono was a similar amount of work

[3:15] lilmama Pearl: were am i

[3:16] Babbage Linden: and it took me much longer than it took cory to build the LSL VM

[3:16] Saijanai Kuhn: Babbage Linden's office

[3:17] Babbage Linden: an interesting option i've come across recently would have been to use squeek

[3:17] Babbage Linden: which is much more reflective than mono or java

[3:17] Saijanai Kuhn: .me has been learning squeak

[3:17] Xugu Madison: Oh, and I'm ready for you to scream in response Babbage... any thoughts on letting scripts deserialise/serialise their own state for region crossings? Half my stuff can pack itself into 20-30 bytes if it needs to...

[3:17] Babbage Linden: so might have made the moving running scripts stuff easier

[3:17] Babbage Linden: but anyway, we have mono, it works, let's expose it's functionality :-D

[3:18] Saijanai Kuhn: we've got a couple of cobalt developers in Groupies working under an NSF grant on it (Cobalt)

[3:18] Lucian Collas: can i offer a quick idea for the next patch for the client, just to save some piece for the time being..... have a shortcut key CTRL+ALT+R or somthing to reset scripts in selection...

[3:18] Latif Khalifa: yey!

[3:18] Babbage Linden: xugu, that's interesting

[3:18] JB Hancroft: Xugu - 20-30 bytes?

[3:19] Babbage Linden: once you are inheriting from LindenLab.SecondLife.Script, you probably can just overrise serialize...

[3:19] Xugu Madison: JB - yeah, half the variables in global are for state tracking while doing config, and aren't needed once "active"

[3:19] Latif Khalifa: i guess when we have c# that would be easy to expose, where your lsl could protected override Serialize...

[3:20] Babbage Linden: so, our new product manager of platform is starting in the next couple of weeks

[3:20] Saijanai Kuhn: who is that?

[3:20] JB Hancroft: excellent!

[3:20] Babbage Linden: i'll be delighted to talk about this effort

[3:20] Xugu Madison: Where do we send sympathy cards/do you have next of kin contact details? :)

[3:20] Babbage Linden: and it's great to see it happen

[3:21] Babbage Linden: good work everyone

[3:21] JB Hancroft: Babbage - some background on where this person is coming from?

[3:21] Babbage Linden: have you sent it around to the scripters list?

[3:21] Xugu Madison: Yeah, went to the scripters list last night

[3:21] Babbage Linden: i will be sure to invite them to this office hour as soon as they are on board

[3:21] Babbage Linden: and we can do introductions then

[3:22] Latif Khalifa: cool

[3:22] Babbage Linden: thanks for sending it round xugu

[3:22] Babbage Linden: i haven't caught up on all my mail for today yet, so didn't spot it

[3:22] Xugu Madison: No problem :)

[3:23] Babbage Linden: so, there was a question about client side scripting

[3:23] Babbage Linden: the status there is that we've built a prototype client that embeds mono

[3:23] Saijanai Kuhn: ah just an offhand remark. I'm working on a sideways connection to Squeak to teh client

[3:23] Babbage Linden: you can write python in the chat bar and it gets run via ironpython

[3:24] Babbage Linden: in the client

[3:24] Babbage Linden: but, the viewer is almost completely missing a scriptable object model

[3:24] Babbage Linden: so, the plan is to build that out

[3:24] Babbage Linden: and expose it internally for test automation

[3:24] Xugu Madison: It would really help a lot with HUD objects, and also reduce server-side load as well I hope

[3:25] Babbage Linden: then (one day, eventually) make it available to residents

[3:25] Mojito Sorbet: A translator interface seems an obvious thing to put in the client

[3:25] Babbage Linden: i'm going to have a meeting with Howard who heads up the viewer engineering soon to talk aboutit

[3:25] Opensource Obscure: Mojito: Philip Linden asked for it to be included in Snowglobe

[3:25] Babbage Linden: that will probably be when the product manager starts now

[3:26] Mojito Sorbet: I hope they survey all the existing translators so as to offer a reasonable set of options

[3:26] Babbage Linden: but the eventual goal is that you can download some scripts to the viewerr

[3:26] JB Hancroft: Apologies if everyone knows this but me, but ... timeline for Snowglobe release?

[3:26] Babbage Linden: where they can control UI

[3:26] Babbage Linden: or do prediction of object movement for games

[3:26] Babbage Linden: and simulation

[3:27] Xugu Madison: Leads to interesting ideas like being able to have HUD objects hover over residents and show additional info, for example

[3:27] Saijanai Kuhn: /.me wishes he was more competent. Squeak + viewer has more potential than mono + viewer IMHO

[3:27] Babbage Linden: yes, for things like carbon goggles it would be excellent

[3:27] Babbage Linden: the HUD could download completely to the viewer

[3:28] JB Hancroft: Obviously the security issues of running someone else's scripts client-side... need to be looked at carefull

[3:28] JB Hancroft: *y

[3:28] Babbage Linden: and run there downloading data from

[3:28] Kopilo Hallard: it would be nice just to be able to be able to keybind viewer functions...

[3:28] Opensource Obscure: JB: Snowgloble has already been released since months, maybe you refer to SLviewer2009 ?

[3:28] Mojito Sorbet: I assume most of the System namespecae would not be avaiulable to a script, either Server or Viewer

[3:28] Kopilo Hallard: which would align with both the objectives of Accessibilty and functionaliyu...

[3:28] Babbage Linden: doing the perspective distortion transformation on the server and then moving prims on the HUD adds lots of latency

[3:29] Babbage Linden: to those kind of VR/AR application

[3:29] Babbage Linden: squeak has it's own issues Saijanai, it doesn't have any kind of sandbox

[3:30] Phantom Ninetails: If you do llRequestPermissions(llGetOwner(),8); you'll get a dialog asking if you want to let the script remap your controls.

[3:30] Babbage Linden: I had some interesting discussions with Gilad Bracha about it

[3:30] Saijanai Kuhn: I know. But, the way I'm doing it, its just another OGP service that talks to the client, NOT embedded in the client

[3:30] Xugu Madison: Mojito, I'd assume it would all be avaiable, but some parts would throw security exceptions of some variety, much like controlled code running under Java

[3:30] JB Hancroft: Sorry... I was reading this above: "Opensource Obscure: Mojito: Philip Linden asked for it to be included in Snowglobe"

[3:30] Babbage Linden: he doesn't believe that bytecode verification is the way to go

[3:30] Mojito Sorbet: I was thinking System.IO in particular

[3:30] Babbage Linden: (and he was in charge of Java for sun for a long while)

[3:30] Babbage Linden: but he didn't have an alternative proposal ready

[3:31] Babbage Linden: so, squeak + security is a long way off I think

[3:31] Mojito Sorbet: JB, Snowglobe is not a product. It is a testbed

[3:31] Kopilo Hallard: Phantom: controls in lsl is highly limited

[3:31] Saijanai Kuhn: Doesn't java use a different mechanism than byte code verification?

[3:31] Latif Khalifa: Mojito, we want System.Collections and System.Collections.Generic ;)

[3:31] Babbage Linden: no Java uses verification

[3:31] JB Hancroft: Thanks, Mojito

[3:31] Phantom Ninetails: Kopilo, I know, that's why I find this permission request interesting.

[3:31] Babbage Linden: (the CLI is very inspired by Java)

[3:31] Kopilo Hallard: *nods*

[3:31] Imaze Rhiano: If someone want to help getting mono sandbox done - and things like C# scripting and client side mono scripting possible - please IM for me :)

[3:31] Babbage Linden: *cough*

[3:32] Saijanai Kuhn: OK was listening to some MIT/Standford guy mentioning a new way of handling java security on mobile devices must have misunderstood

[3:32] Mojito Sorbet: System.Windows.Forms would be interesting

[3:32] Babbage Linden: please do help Imaze!

[3:32] Latif Khalifa: Imaze, thanks for spearhading that effort :)

[3:32] Imaze Rhiano:

[3:32] Xugu Madison: and rather you than me, Babbage, getting to decide network access :-D

[3:32] Babbage Linden: object capabilties are an interesting way to do security within WMs

[3:32] Latif Khalifa: too bad my MSIL understanding is almost 0

[3:32] Saijanai Kuhn: have you ever looked at E, babbage?

[3:32] Babbage Linden: but again, not widely used

[3:33] Imaze Rhiano: Currently no need for understanding of MSIL - just reading looooong specification :)

[3:33] Babbage Linden: yes, E and E-monkey and Java-E are interesting

[3:33] JB Hancroft: capabilities-based security are interesting, but there have been very few actual deployments of it, AFAIK, outside of the IBM AS/400s

[3:34] Saijanai Kuhn: one guy in groupies wrote a MUD in E a while back

[3:34] Babbage Linden: you may find this interesting:

[3:34] Babbage Linden: an object capabilities based 3D virtual world

[3:34] Saijanai Kuhn: ah think I've seen that under a different URL. THat one won't let me in

[3:34] Xugu Madison: Oh, another one for you, Babbage. Any chance of IM from client to object? So rather than object IM showing up in local chat we get a tab, and can type directly without channel numbers?

[3:35] Babbage Linden: it's an interesting approach

[3:35] Jim Gustafson: link is only available with a login

[3:35] Babbage Linden: but a long way from SL

[3:35] Babbage Linden: with its permissions spaghetti

[3:35] Saijanai Kuhn:

[3:35] Babbage Linden: (SL gets lots of digs in that thesis, quite rightly)

[3:35] Phantom Ninetails: Object to object IM would be nice too..

[3:35] Babbage Linden: but, we're improving it!

[3:36] Latif Khalifa: Babbage, the link you posted asks for login

[3:36] Saijanai Kuhn: Here's a direct link

[3:36] Xugu Madison: Phantom, I think e-mail/http is meant to take that role...

[3:36] Babbage Linden: and, you can actually build many of those things with HTTP-In now

[3:36] Phantom Ninetails: But that's throttled, Xugu.

[3:36] Babbage Linden: have a scripted object in world that chats its root capability

[3:36] Xugu Madison looking at using http to establish URLs, and then HTTP for fast communication

[3:36] Babbage Linden: other scripts send auth information over HTTPS

[3:37] Xugu Madison: using e-mail to establish URLs, even

[3:37] Babbage Linden: then get granted caps as new URLs

[3:37] Babbage Linden: :-D

[3:37] Saijanai Kuhn: one thing we were talking aboiut in groupies was to overload the descricption field with a metadata url for the client

[3:38] Saijanai Kuhn: ^V^<URL> signals a proxy to intercdpt the object data packet and shunt it aside for further processing by some plugin

[3:38] Babbage Linden hasn't kept up with AWG, sorry

[3:38] Babbage Linden: so, last thing on the list, i think

[3:39] Babbage Linden: llTextBox()

[3:39] Saijanai Kuhn: ah, well Dahlia Tribmle created a jabber plugin for gridproxy that intercepts IM and sends it to a jabber room. The same model would work for any service, local or remote

[3:39] Babbage Linden: we should have some discussion about that internally I think

[3:39] Babbage Linden: the model of firing up scripted bits of GUI that chat to objects is pretty nasty IMHO

[3:40] Babbage Linden: as the in world object can dissapear

[3:40] Lucian Collas: LL have been taking about it for ages

[3:40] Babbage Linden: or you can walk away from it

[3:40] Babbage Linden: and then you end up with some dumb, broken bit of UI on your screen

[3:40] Babbage Linden: that doesn't work

[3:40] Saijanai Kuhn: would be OK for HUDS though, right?

[3:40] Kopilo Hallard: autoclose?

[3:40] Mojito Sorbet: That presumable NOTICE when the object they were talking to fails to respond

[3:41] Babbage Linden: yes, it works for HUDs

[3:41] Phantom Ninetails: llDialog seems to work pretty well

[3:41] Babbage Linden: but it would be better to get the scripts running the GUI on the client

[3:41] Xugu Madison: I'd love to hear ideas for better ways of doing guided configuration of a script...

[3:41] Lucian Collas: llDialog is not the dame thing..., llTextBox would allow you to luturally type into the dialog box

[3:41] Lucian Collas: *same

[3:41] Phantom Ninetails: Yeah, that's pretty much the only difference

[3:41] Kopilo Hallard: dialogue is predefined input as opposed to undefined input

[3:42] Babbage Linden: llDialog and llTextBox are OK, but not the best

[3:42] Phantom Ninetails: So llTextBox could be based on llDIalog

[3:42] Xugu Madison would love to see a full widget set usable from SL scripting

[3:42] Babbage Linden: and having a combination of HUDs and bits of canned GUI is a bit nasty

[3:42] Xugu Madison: Phantom, it kinda is... at least now...

[3:42] Kopilo Hallard: so have input on a prim?

[3:42] Babbage Linden: while I think llTextBox could be useful in the short term

[3:42] Phantom Ninetails: Now? So llTextBox is already out there?

[3:43] Babbage Linden: i'd like to have the new PM look in to sorting out how we should actually do scripted GUIs going forward

[3:43] Babbage Linden: no llTextBox isn't out there

[3:43] Babbage Linden: I've just been hearing about it at these office hours

[3:43] reddot99 Republic: theres the patch for it out,

[3:43] Saijanai Kuhn: in order for GUIs to be scriptable in any practical way, lots of the GUI has to be factored

[3:43] Lucian Collas: Why not make it so you can directly IM the prim, like we do with other avatars?

[3:44] Xugu Madison: llTextBox() created a strange looking dialog with !!TextBox!! or something as it's only button, when I tried a while back...

[3:44] reddot99 Republic: yes, its awaiting proper veiwer support

[3:44] Kopilo Hallard: iming an object... so we could actually do crossregion communication without a server or two people...

[3:44] Babbage Linden would have liked to have found out about it internally...

[3:45] Lucian Collas: or worse llemail :-(

[3:45] Babbage Linden: kopilo, can't you do that with HTTP-In?

[3:45] Kopilo Hallard: not really because the script will change the url on teleport

[3:45] Kopilo Hallard: because the script intantisates a http "server" everytime the script is run

[3:46] Kopilo Hallard: so the url is not static as opposed to a uuid

[3:46] Lucian Collas: that is what mysql is for :)

[3:46] Babbage Linden: so, you should have the scripts register their URL with an external service

[3:46] Phantom Ninetails: I think the script's key changes too when it changes region, so you wouldn't be able to IM it again in that situation either

[3:46] Phantom Ninetails: Er, object's key

[3:46] Xugu Madison: Lucian, and we're layering complexity on top of complexity...

[3:46] Babbage Linden: kelly was saying someone had built a service to do that

[3:46] JB Hancroft: a layer of naming/finding services is needed

[3:46] Kopilo Hallard: which is why I said W/O AN EXTERNAL SERVER|

[3:46] Babbage Linden: it doesn't need to be your external server

[3:46] reddot99 Republic: objects keys dont change

[3:46] Kopilo Hallard: exactly

[3:47] Babbage Linden: i was thinking of building a service to do that registration

[3:47] Phantom Ninetails: Hmm, I heard they did.. /me shrugs

[3:47] JB Hancroft: Liandra is working on one

[3:47] Opensource Obscure: I'm using a very simple solution based upon APIs. Another, I think better solution has been suggested in the official forums and it's now on the wiki: HTTP_Post_request_to_a_PHP_server. And a static URL service for HTTP-Server with API (under development) can be found here:

[3:47] Lucian Collas: oh lord we need a w-hat for http-in, LOL

[3:47] Latif Khalifa: i made one: :P

[3:47] Babbage Linden: see, there you do

[3:47] Babbage Linden: go

[3:47] Opensource Obscure: links are here: please provide your feedback there

[3:47] Babbage Linden: people have done it

[3:47] Babbage Linden: you can use their services

[3:48] Babbage Linden: linden doesn't need to do it

[3:48] Babbage Linden: and has done a terrible job in the past with XML-RPC and email routing

[3:48] Latif Khalifa: there is also python source you can install on your own google app

[3:48] Kopilo Hallard: nothing like outsourcing problems like name2key

[3:48] Latif Khalifa: which is recommended way of doing it

[3:48] Babbage Linden: HTTP-In avoids the problems of having central services to do routing

[3:48] Latif Khalifa: and google apps are free

[3:49] Babbage Linden: right, HTTP-In and out let us do things like this

[3:49] Dyson Burt: trinity coulter has done a cool HTTP-in box that uses external services

[3:49] Babbage Linden: you can have external services for storage, or mapping

[3:49] Babbage Linden: which is a good thing

[3:49] Babbage Linden: when we don't have engineer time to build them internally :-D

[3:49] Kopilo Hallard: so use http-in to send the feedback from llInputbox...

[3:50] JB Hancroft: and then.. a services directory/services finder... ?

[3:50] Babbage Linden: sure, go for it :-D

[3:50] Latif Khalifa: I use http-in for delivery messages from

[3:50] JB Hancroft: :)

[3:50] Xugu Madison: Oh, yeah, that's a point. Can we PLEASE have MIME types for HTTP-in responses, so I can spit out UIs that way? :)

[3:50] Babbage Linden: if you want to build an ontology for all services running on SL, then go for it

[3:50] Latif Khalifa: now from when you click on a prim, until you get inventory offer in world <1sec

[3:50] Xugu Madison: as it as, I believe everything goes out as text/plain

[3:51] Babbage Linden: xugu, I agree, we should fix HTTP-In and out so we can actually use these services

[3:51] Saijanai Kuhn: Kelly Linden did that deliberately

[3:51] Latif Khalifa: Xugu. its meant for data exchange, not for browsing really

[3:51] Babbage Linden: i think it's a better use of our time to get HTTP-In and Out working with external services

[3:51] Kopilo Hallard: ...

[3:51] Babbage Linden: than try to build all of the external services

[3:51] Saijanai Kuhn: though, he says that there's plans for allowing the client browser to handle things more intimately

[3:52] Babbage Linden: xugu, UIs will proabbly not happen

[3:52] Babbage Linden: as we don't want people to be able to phish with email addresses

[3:53] Xugu Madison: Good point

[3:53] Babbage Linden: but, we should be able to support richer formats than text/plain to allow easier hooking up to external services

[3:53] reddot99 Republic: ike flash?

[3:53] Babbage Linden: i can't see that phishing with application/xml would be too successful

[3:54] Babbage Linden: or json

[3:54] Xugu Madison: Babbage, XML with directions to an XSLT could provide something almost indistinguishable from an HTML page...

[3:54] Babbage Linden: right, so we'd have to be careful

[3:55] Xugu Madison would be inclined to shuffle the grid onto a different domain, or consider it an exercise in darwinism

[3:55] Babbage Linden: register and use that ;-)

[3:55] Latif Khalifa: haha

[3:56] Xugu Madison: You say that, but my bank actually uses the domain - by the time you've merrily clicked through that, I think people will click anything!

[3:56] Babbage Linden: ok, i think we've got through everything on the agenda and i need to head off to another meeting

[3:56] Babbage Linden: thank you all _SO_ much for helping out with Mono

[3:56] reddot99 Republic: can i ask something sorta random?

[3:56] Lucian Collas: Babbage, one quick thing, what would be the chance of having a shortcut key to reset scripts. I do it so oftern going hunting in the menus does get somewhat annoying all the time.

[3:56] Xugu Madison: Thanks for hosting Babbage!

[3:57] JB Hancroft: Thanks, Babbage :)

[3:57] Dyson Burt: thanks babbage for your time! :D

[3:57] Xugu Madison: (Imaze really gets the credit for the C# stuff, as she's doing all the work)

[3:57] Imaze Rhiano: thanks Babbage

[3:57] Babbage Linden: i hope i'll see you all next time

[3:57] Babbage Linden: bye¬

[3:57] Xugu Madison waves

[3:57] Kopilo Hallard: bye

[3:57] Nock Forager: seeya Babbage.

[3:57] Phantom Ninetails: Fare well Babbage

[3:58] Imaze Rhiano: I hope that someone have chat log :)

[3:58] Gunter Vandyke: bye