User:Mgaved

From The SchomEmunity Wiki
Jump to: navigation, search

Site map - Main Page - Second Life

Hi all

Mark here. One of the students playing in Second Life. Real name: Mark Gaved
Teen Second Life name: Mark Sparker
Main Second Life name: Redmark Hax

Here's my diary

15 June

Hawaiian shirt.jpg

25 March

ooh, nearly a month, not been writing much in my diary. I think it's because I am spending all my time getting on with the work in hand (SchomePark) and there's so much to do I've not had time to write here. I'll try to do more reflection here in future!

Well two weeks into SchomePark and it's ticking over. Lead up into the launch (Friday 09 March) was predictably hectic, lots of people putting in lots of hours. Launch was hindered by Linden Labs messing up the login of all the students, the sub-contractor Fireblade Consulting had to work over the weekend to get a resolution and finally on the Monday the students could get in. Several hiccups in the first week had to be ironed out e.g. permissions on some of the builds not opened up in the scramble to get everything online, free items in the Sch-op couldn't be given away to the Sparkers. Maybe on reflection we needed a shakedown week with just ten picked students in there - however the launch date had backed up and we didn't have the luxury. By the end of the week though things had calmed down and we were into the ongoing running and development of SchomePark. Our idea of formal induction classes hasn't worked as planned, but evolved gracefully into more informal sessions, this seems to be more what the majority of the students are looking for (although maybe the first week was the innovators and early adopters who wouldn't be interested in an induction class anyway). Convenor sessions seem to be ticking over, again, less formally than expected with fewer students than hoped signing up for the wiki. Whether this is a reticence on the part of the students to sign up for the courses or less use of the wiki than we'd planned, who knows. Something to ask the students. We're encouraging the students when we're in world to participate, doing a bit of secondary PR, just in case they aren't picking up on the wiki pages.

A core of regulars has emerged and have been building lots - so much in fact we've had to ask them to build in the sky so the ground area is not over-run. Approximately half of the students ( http://schome.open.ac.uk/wikiworks/index.php/Schome_Park_Research ) have now come into SchomePark. There's a little concern as to why we're only getting half the students in - are the others not able to or do they choose not to? The group who are in though are very active, so much so that already they've created their own projects, and we are talking about devolving authority to some of them, and a 'governance group' has been set up to work out how things could be run. Some of the regulars seem a little bored, and one has asked about when they can get out into the rest of Teen Grid. The general plan is to keep SchomePark separated from the rest of the Teen Grid for a while, there are all sorts of issues due to the contract with NAGTY - we have set up a learning space rather than a social space and technically this is of secondary importance. There's concern about what would happen if one of our students left SchomePark to the rest of the grid and had a bad experience, and vice-versa, what happens if SchomePark was opened up and we had trouble with idiots.

So - starting to ramble - two weeks in and it's pretty successful, lessons learnt all round. Core of highly active students, a number of non-users, lots of musing. But as Trixxiee Schomer (one of the students noted) it is early days yet.

27 February

Thinking about tools we might need. This is a brain dump.

- estate management: keep an eye on SchomePark so it doesn't get random stuff dropped on it. - aerial map so we all know what we've talking about - means of conveners uploading posters to us: in fact a means of conveners dropping us a request

Still working on look and feel and websites layout and info design

09 February

Yes! XYText is now working!!! Due 99% because AngryBeth Shortbread, SL expert and lecturer at Leeds College of Art kindly spent about 3 hours with me in SL this afternoon giving me scripts, bug fixing stuff etc. Schome owes Beth big thanks! I'll now work on documenting it up because frankly, the level of documentation on Second Life is appalling. As you all know and are bored of me ranting about, my belief is because of the in world money focus - people are keeping their knowledge hidden and their scripts locked down so they can try to make money by sharing. Me, I say we should give it all away.

Watch this space for XYText documentation.

Good news: it works, even better news, Beth gave me a Voice activated script which means you can make it work by "touching" the script then just typing on the voice channel.

Bad news: it's prim heavy, so it will only ever be useful for short notices. Bad News #2: This works with the so kind help of Beth. This means what we have works, but I don't really understand the code to any great depth - I can only offer support for the current configuration rather than make radical changes or answer specific code questions "what does this line mean" etc.

Beth showed me round her island - the Leeds College one. It's great. They've got a cinema there, an art gallery for students work, a sandbox, some chill out spaces... well worth a look.

08 February

Found a very cool island with a presence from Bromley College (London).

31 January

Evening - I tried to log in to Second Life (about 9pm). It's down, grrr. I try for an hour or so on and off and then give up for the night. Only tells me this after it asked me to download a new version of SL, I am sure I was asked to download a new version the day before. Note to Linden Labs: not so many new versions please. Once a month I'd accept.

Yes, what is it with this obsessive updating? Tried to go on inthe Digilab at lunchtime. Couldn't because I had to download a new version and only Keren has the computer password to install it and she's away until Friday. Came back to the office, tried to log on at 4pm. Nope, they're upgrading, please come back at 8pm. I only downloaded the last version on Tuesday. What's going on? Rebecca

Editing this wiki: when you login it takes you back to the Main Page and you have to navigate back to the page you were on. Hmm, I am sure you can set up mediawiki so it takes you back to the page you signed in from - must ask Peter to check the the config files.

Sounds like a question for Nigel - I'll email him. PeterT 09:10, 31 January 2007 (GMT)
I asked - not a simple setting option. Could have on the fly breadcrumb trails that show the last few pages you visited - see the discussion re this in the forum. PeterT 06:00, 2 February 2007 (GMT)

30 January

Went on guided tour this morning round SchomeBase. I found myself getting lost a couple of times and not keeping up with the group even though I am pretty experienced now. I think maybe tour leaders need some sort of big tour guide umbrella, or flag, or something to help you follow them. Leading a tour is quite difficult. Also people were slipping between SL and real life names which I found confusing e.g "Andy will be building this" and I had to ask "who is Andy?" - apparently it was Tecula. We need to keep to inworld names. The students will be confused if we unthinkingly say "you need to ask Peter about that" when we actually mean "Schomer"....

Another bash at the noticeboard. My attempts at reverse engineering/ hacking scripts are not working. I think we need to approach this from first principles, alas. Not many online examples or analyses of scripts I can follow. Anybody found a decent script making workshop, leading you through various scripts and explaining how the various LSL commands work?

I suspect you'll get more responses if you post this question in the SL help topic. PeterT 09:14, 31 January 2007 (GMT)

24 January

Further investigation of XYText continuing. A crawl around the web suggests that this is the ur-script from which most other noticeboard solutions in SL derive. Also that it's considered to be a reasonable kludge based on unsatisfactory world conditions and people are hoping future versions of the SL scripting language will allow more elegant solutions. The main complaint is that it uses lots of prims - some versions use 255 prims... so very resource hungry, you wouldn't want too many of those around your island. I'll keep you posted as I learn more...

23 January 2007

oh dear, not so good at keeping up the diary!

Anyhow, I've been trying to get noticeboards to work in SL.

I've found a script: http://rpgstats.com/wiki/index.php?title=XyText

XyText, but arrgh, it doesn't seem to work. I get an error message when I try to run the main script. Anybody out there got it to work? fancy helping me with a bit of bug fixing?

Suggest you post a message asking for help in the Help discussion PeterT 06:58, 24 January 2007 (GMT)
Very cool to have added a script library page. On http://cabooseonline.sopris.net/scriptlib/ wouldn't 'Rotating Banner (set Text)' be a simple way to display text dynamically until we find better? Vladtn 11:02, 24 January 2007 (GMT)
Hi Vlad - check out the latest discussion on the Interactive Noticeboard - I think Peter wants something rather more complex. But thanks, good suggestion, I will be playing with the simpler text displays to see if they help me understand LSL a little more and might lead to inspiration... cheers! --Mgaved 18:40, 26 January 2007 (GMT)

Update: met a librarian in the SL Info Center and Library area and he's given me a working XYText script to play with. Tongight I'll see if I have any luck hacking it.

Also spent 50 Linden dollars on a simple working board, leBoard, I was hoping I could hack into this one and learn from it. Unfortunately in keeping with the SL ethos of making money, it's all locked up and I don't think I'll be able to look at the underlying code. I must admit I really hate this SL philosophy of locking everything and trying to make money out of everything, this really makes SL a less pleasant place for me. I suppose I am from the open source/hacking/ academic ideal of sharing because it benefits everybody. I've looked around on the web for code snippets to help me and again I find a similar situation - a remarkable lack of help documents or free code out there - everybody seems to have bought into this capital-building model. I think this could be the downfall of SL: the reason that the web took off (in my mind) was that it was so easy for people to learn by copying others, looking at the source code of pages, buy cheap books that would help them get their first few pages up. This is all missing in SL, people are jealously guarding their knowledge and selling to the highest bidder...my fear is that this will mean that SL won't reach a critical mass of competent builders, that there will be a division between users and underlying content creators... hmmmm... in the real life people will pay C++ programmers but will there be enough real demand to pay coders in SL? or will the simple GUI based building tools provide enough creative outlet to keep people happy? (rant over :-) ) --Mgaved 09:53, 24 January 2007 (GMT)

It's going to get better and worse. LL have recently made changes to improve script running speeds (yeh!) and it is widely rumoured this is as a forerunner to supporting an improved scripting engine (mega-yeh!). This will of course allow us all to do more, or at least those that have the knowledge. Realistically most people who 'dabbled' in building web-pages built awful ones. I was one of them. Only when I became a full time software developer did I broaden my knowledge enough to take into account everything that was necessary to deliver a functionally correct and user-experience-rich page. SL is no different in my opinion. Ideologically the openness is great, but if you want something doing properly to a high standard you pay someone who knows what they're doing to do it, or you become one of those people yourself. Incidentally, I am such a person, contact me for my rates ;-) --Dan 10:02, 24 January 2007 (GMT)

Cheers for the info Dan! Better scripting - great! Definitely you make a good point about most web pages not being so good, but I think we need to separate out ideology from practical reality. I still stick to my belief that things should be open, to give people the opportunity to improve what they are doing - I think we should encourage a culture of trying to help people do their own scripting and self improving (if they want to) rather than closing it down by encouraging a consumer style market. Of course I realise this doesn't help your nascient business! :-) But then a real world parallel might be home improvements: there are lots of books, tools, evening classes, websites to help people learn a little bit about carpentry or painting. This doesn't reduce the trade for when people need serious work doing though - I might put up my own bookshelves but I'd call in a professional to build a garage for me. I could try to build my own garage but I'd understand it would take a long time and it might not be so good so it would be pragmatic for me to save money and time and get a pro in. Maybe this is a parallel? --Mgaved 10:48, 24 January 2007 (GMT)


Latest version I've found of the script:


////////////////////////////////////////////
        // <b style="color:black;background-color:#ffff66">XyText</b> v1.0.3 Script (5 Face, Multi Texture)
        //
        // Written by Xylor Baysklef
        //
        // Modified by Thraxis Epsilon January 20, 2006
        // Added Support for 5 Face Prim, based on modification
        // of <b style="color:black;background-color:#ffff66">XyText</b> v1.1.1 by Kermitt Quick for Single Texture.
        //
        ////////////////////////////////////////////
        /////////////// CONSTANTS ///////////////////
        // <b style="color:black;background-color:#ffff66">XyText</b> Message Map.
        integer DISPLAY_STRING      = 204000;
        integer DISPLAY_EXTENDED    = 204001;
        integer REMAP_INDICES       = 204002;
        integer RESET_INDICES       = 204003;
        integer SET_CELL_INFO       = 204004;
        integer SET_THICKNESS       = 204006;
        integer SET_COLOR           = 204007;
        
        // This is an extended character escape sequence.
        string  ESCAPE_SEQUENCE = "\\e";
        
        // This is used to get an index for the extended character.
        string  EXTENDED_INDEX  = "123456789abcdef";
        
        // Face numbers.
        integer FACE_1          = 3;
        integer FACE_2          = 7;
        integer FACE_3          = 4;
        integer FACE_4          = 6;
        integer FACE_5          = 1;
        
        // Used to hide the text after a fade-out.
        key     TRANSPARENT     = "701917a8-d614-471f-13dd-5f4644e36e3c";
        // This is a list of textures for all 2-character combinations.
        list    CHARACTER_GRID  = [
                "00e9f9f7-0669-181c-c192-7f8e67678c8d",
                "347a5cb6-0031-7ec0-2fcf-f298eebf3c0e",
                "4e7e689e-37f1-9eca-8596-a958bbd23963",
                "19ea9c21-67ba-8f6f-99db-573b1b877eb1",
                "dde7b412-cda1-652f-6fc2-73f4641f96e1",
                "af6fa3bb-3a6c-9c4f-4bf5-d1c126c830da",
                "a201d3a2-364b-43b6-8686-5881c0f82a94",
                "b674dec8-fead-99e5-c28d-2db8e4c51540",
                "366e05f3-be6b-e5cf-c33b-731dff649caa",
                "75c4925c-0427-dc0c-c71c-e28674ff4d27",
                "dcbe166b-6a97-efb2-fc8e-e5bc6a8b1be6",
                "0dca2feb-fc66-a762-db85-89026a4ecd68",
                "a0fca76f-503a-946b-9336-0a918e886f7a",
                "67fb375d-89a1-5a4f-8c7a-0cd1c066ffc4",
                "300470b2-da34-5470-074c-1b8464ca050c",
                "d1f8e91c-ce2b-d85e-2120-930d3b630946",
                "2a190e44-7b29-dadb-0bff-c31adaf5a170",
                "75d55e71-f6f8-9835-e746-a45f189f30a1",
                "300fac33-2b30-3da3-26bc-e2d70428ec19",
                "0747c776-011a-53ce-13ee-8b5bb9e87c1e",
                "85a855c3-a94f-01ca-33e0-7dde92e727e2",
                "cbc1dab2-2d61-2986-1949-7a5235c954e1",
                "f7aef047-f266-9596-16df-641010edd8e1",
                "4c34ebf7-e5e1-2e1a-579f-e224d9d5e71b",
                "4a69e98c-26a5-ad05-e92e-b5b906ad9ef9",
                "462a9226-2a97-91ac-2d89-57ab33334b78",
                "20b24b3a-8c57-82ee-c6ed-555003f5dbcd",
                "9b481daa-9ea8-a9fa-1ee4-ab9a0d38e217",
                "c231dbdc-c842-15b0-7aa6-6da14745cfdc",
                "c97e3cbb-c9a3-45df-a0ae-955c1f4bf9cf",
                "f1e7d030-ff80-a242-cb69-f6951d4eae3b",
                "ed32d6c4-d733-c0f1-f242-6df1d222220d",
                "88f96a30-dccf-9b20-31ef-da0dfeb23c72",
                "252f2595-58b8-4bcc-6515-fa274d0cfb65",
                "f2838c4f-de80-cced-dff8-195dfdf36b2c",
                "cc2594fe-add2-a3df-cdb3-a61711badf53",
                "e0ce2972-da00-955c-129e-3289b3676776",
                "3e0d336d-321f-ddfa-5c1b-e26131766f6a",
                "d43b1dc4-6b51-76a7-8b90-38865b82bf06",
                "06d16cbb-1868-fd1d-5c93-eae42164a37d",
                "dd5d98cf-273e-3fd0-f030-48be58ee3a0b",
                "0e47c89e-de4a-6233-a2da-cb852aad1b00",
                "fb9c4a55-0e13-495b-25c4-f0b459dc06de",
                "e3ce8def-312c-735b-0e48-018b6799c883",
                "2f713216-4e71-d123-03ed-9c8554710c6b",
                "4a417d8a-1f4f-404b-9783-6672f8527911",
                "ca5e21ec-5b20-5909-4c31-3f90d7316b33",
                "06a4fcc3-e1c4-296d-8817-01f88fbd7367",
                "130ac084-6f3c-95de-b5b6-d25c80703474",
                "59d540a0-ae9d-3606-5ae0-4f2842b64cfa",
                "8612ae9a-f53c-5bf4-2899-8174d7abc4fd",
                "12467401-e979-2c49-34e0-6ac761542797",
                "d53c3eaa-0404-3860-0675-3e375596c3e3",
                "9f5b26bd-81d3-b25e-62fe-5b671d1e3e79",
                "f57f0b64-a050-d617-ee00-c8e9e3adc9cb",
                "beff166a-f5f3-f05e-e020-98f2b00e27ed",
                "02278a65-94ba-6d5e-0d2b-93f2e4f4bf70",
                "a707197d-449e-5b58-846c-0c850c61f9d6",
                "021d4b1a-9503-a44f-ee2b-976eb5d80e68",
                "0ae2ffae-7265-524d-cb76-c2b691992706",
                "f6e41cf2-1104-bd0b-0190-dffad1bac813",
                "2b4bb15e-956d-56ae-69f5-d26a20de0ce7",
                "f816da2c-51f1-612a-2029-a542db7db882",
                "345fea05-c7be-465c-409f-9dcb3bd2aa07",
                "b3017e02-c063-5185-acd5-1ef5f9d79b89",
                "4dcff365-1971-3c2b-d73c-77e1dc54242a"
                  ];
        ///////////// END CONSTANTS ////////////////
        ///////////// GLOBAL VARIABLES ///////////////
        // All displayable characters.  Default to ASCII order.
        string gCharIndex;
        // This is the channel to listen on while acting
        // as a cell in a larger display.
        integer gCellChannel      = -1;
        // This is the starting character position in the cell channel message
        // to render.
        integer gCellCharPosition = 0;
        // This is whether or not to use the fade in/out special effect.
        integer gCellUseFading      = FALSE;
        // This is how long to display the text before fading out (if using
        // fading special effect).
        // Note: < 0  means don't fade out.
        float   gCellHoldDelay      = 1.0;
        /////////// END GLOBAL VARIABLES ////////////
        
        ResetCharIndex() {
            gCharIndex  = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`";
            // \" <-- Fixes LSL syntax highlighting bug.
            gCharIndex += "abcdefghijklmnopqrstuvwxyz{|}~";
            gCharIndex += "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
        }
        vector GetGridPos(integer index1, integer index2) {
            // There are two ways to use the lookup table...
            integer Col;
            integer Row;
            if (index1 >= index2) {
                // In this case, the row is the index of the first character:
                Row = index1;
                // And the col is the index of the second character (x2)
                Col = index2 * 2;
            }
            else { // Index1 < Index2
                // In this case, the row is the index of the second character:
                Row = index2;
                // And the col is the index of the first character, x2, offset by 1.
                Col = index1 * 2 + 1;
            }
            return <Col, Row, 0>;
        }
        
        string GetGridTexture(vector grid_pos) {
            // Calculate the texture in the grid to use.
            integer GridCol = llRound(grid_pos.x) / 20;
            integer GridRow = llRound(grid_pos.y) / 10;
        
            // Lookup the texture.
            key Texture = llList2Key(CHARACTER_GRID, GridRow * (GridRow + 1) / 2 + GridCol);
            return Texture;
        }
        
        vector GetGridOffset(vector grid_pos) {
            // Zoom in on the texture showing our character pair.
            integer Col = llRound(grid_pos.x) % 20;
            integer Row = llRound(grid_pos.y) % 10;
        
            // Return the offset in the texture.
            return <-0.45 + 0.05 * Col, 0.45 - 0.1 * Row, 0.0>;
        }
        
        ShowChars(vector grid_pos1, vector grid_pos2, vector grid_pos3, vector grid_pos4, vector grid_pos5) {
           // Set the primitive textures directly.
             
                       
           llSetPrimitiveParams( [
     PRIM_TEXTURE, FACE_1, GetGridTexture(grid_pos1), <0.25, 0.1, 0>, GetGridOffset(grid_pos1) + <0.075, 0, 0>, 0.0,
        PRIM_TEXTURE, FACE_2, GetGridTexture(grid_pos2), <0.1, 0.1, 0>, GetGridOffset(grid_pos2), 0.0,
     PRIM_TEXTURE, FACE_3, GetGridTexture(grid_pos3), <-1.48, 0.1, 0>, GetGridOffset(grid_pos3)+ <0.37, 0, 0>, 0.0,
        PRIM_TEXTURE, FACE_4, GetGridTexture(grid_pos4), <0.1, 0.1, 0>, GetGridOffset(grid_pos4), 0.0,
     PRIM_TEXTURE, FACE_5, GetGridTexture(grid_pos5), <0.25, 0.1, 0>, GetGridOffset(grid_pos5) - <0.075, 0, 0>, 0.0
                ]);
        }
        
        RenderString(string str) {
            // Get the grid positions for each pair of characters.
            vector GridPos1 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 0, 0)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 1, 1)) );
            vector GridPos2 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 2, 2)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 3, 3)) );
            vector GridPos3 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 4, 4)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 5, 5)) );
            vector GridPos4 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 6, 6)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 7, 7)) );
            vector GridPos5 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 8, 8)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 9, 9)) );                                 
        
            // Use these grid positions to display the correct textures/offsets.
            ShowChars(GridPos1, GridPos2, GridPos3, GridPos4, GridPos5);
        }
        
        RenderWithEffects(string str) {
            // Get the grid positions for each pair of characters.
            vector GridPos1 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 0, 0)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 1, 1)) );
            vector GridPos2 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 2, 2)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 3, 3)) );
            vector GridPos3 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 4, 4)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 5, 5)) );
            vector GridPos4 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 6, 6)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 7, 7)) );
            vector GridPos5 = GetGridPos( llSubStringIndex(gCharIndex, llGetSubString(str, 8, 8)),
                                 llSubStringIndex(gCharIndex, llGetSubString(str, 9, 9)) );                                 
        
              // First set the alpha to the lowest possible.
           llSetAlpha(0.05, ALL_SIDES);
        
            // Use these grid positions to display the correct textures/offsets.
            ShowChars(GridPos1, GridPos2, GridPos3, GridPos4, GridPos5);
        
            float Alpha;
            for (Alpha = 0.10; Alpha <= 1.0; Alpha += 0.05)
               llSetAlpha(Alpha, ALL_SIDES);
                  // See if we want to fade out as well.
           if (gCellHoldDelay < 0.0)
               // No, bail out. (Just keep showing the string at full strength).
               return;
                  // Hold the text for a while.
           llSleep(gCellHoldDelay);
              // Now fade out.
           for (Alpha = 0.95; Alpha >= 0.05; Alpha -= 0.05)
               llSetAlpha(Alpha, ALL_SIDES);
                  // Make the text transparent to fully hide it.
           llSetTexture(TRANSPARENT, ALL_SIDES);
        }
        
        RenderExtended(string str) {
            // Look for escape sequences.
            list Parsed       = llParseString2List(str, [], [ESCAPE_SEQUENCE]);
            integer ParsedLen = llGetListLength(Parsed);
        
            // Create a list of index values to work with.
            list Indices;
            // We start with room for 6 indices.
            integer IndicesLeft = 10;
        
            integer i;
            string Token;
            integer Clipped;
            integer LastWasEscapeSequence = FALSE;
            // Work from left to right.
            for (i = 0; i < ParsedLen && IndicesLeft > 0; i++) {
                Token = llList2String(Parsed, i);
        
                // If this is an escape sequence, just set the flag and move on.
                if (Token == ESCAPE_SEQUENCE) {
                    LastWasEscapeSequence = TRUE;
                }
                else { // Token != ESCAPE_SEQUENCE
               // Otherwise this is a normal token. Check its length.
                    Clipped = FALSE;
                    integer TokenLength = llStringLength(Token);
                    // Clip if necessary.
                    if (TokenLength > IndicesLeft) {
                  Token = llGetSubString(Token, 0, IndicesLeft - 1);
                TokenLength = llStringLength(Token);
                        IndicesLeft = 0;
                        Clipped = TRUE;
                    }
                    else
                  IndicesLeft -= TokenLength;
        
                    // Was the previous token an escape sequence?
                    if (LastWasEscapeSequence) {
             // Yes, the first character is an escape character, the rest are normal.
        
                // This is the extended character.
             Indices += [llSubStringIndex(EXTENDED_INDEX, llGetSubString(Token, 0, 0)) + 95];
        
                // These are the normal characters.
                        integer j;
                for (j = 1; j < TokenLength; j++)
                 Indices += [llSubStringIndex(gCharIndex, llGetSubString(Token, j, j))];
                    }
                    else { // Normal string.
                // Just add the characters normally.
                        integer j;
                for (j = 0; j < TokenLength; j++)
                 Indices += [llSubStringIndex(gCharIndex, llGetSubString(Token, j, j))];
                    }
        
            // Unset this flag, since this was not an escape sequence.
                    LastWasEscapeSequence = FALSE;
                }
            }
        
            // Use the indices to create grid positions.
            vector GridPos1 = GetGridPos( llList2Integer(Indices, 0), llList2Integer(Indices, 1) );
            vector GridPos2 = GetGridPos( llList2Integer(Indices, 2), llList2Integer(Indices, 3) );
            vector GridPos3 = GetGridPos( llList2Integer(Indices, 4), llList2Integer(Indices, 5) );
            vector GridPos4 = GetGridPos( llList2Integer(Indices, 6), llList2Integer(Indices, 7) );
            vector GridPos5 = GetGridPos( llList2Integer(Indices, 8), llList2Integer(Indices, 9) );     
        
            // Use these grid positions to display the correct textures/offsets.
            ShowChars(GridPos1, GridPos2, GridPos3, GridPos4, GridPos5);
        }
        
        integer ConvertIndex(integer index) {
            // This converts from an ASCII based index to our indexing scheme.
            if (index >= 32) // ' ' or higher
                index -= 32;
            else { // index < 32
                // Quick bounds check.
                if (index > 15)
                    index = 15;
        
                index += 94; // extended characters
            }
            return index;
        }
        default {
            state_entry() {
                // Initialize the character index.
                ResetCharIndex();
        
                //llSay(0, "Free Memory: " + (string) llGetFreeMemory());
            }
            link_message(integer sender, integer channel, string data, key id) {
                if (channel == DISPLAY_STRING) {
                    RenderString(data);
                    return;
                }
                if (channel == DISPLAY_EXTENDED) {
                    RenderExtended(data);
                    return;
                }
                if (channel == gCellChannel) {
            // Extract the characters we are interested in, and use those to render.
         string TextToRender = llGetSubString(data, gCellCharPosition, gCellCharPosition + 9);
                    if (gCellUseFading)
                       RenderWithEffects( TextToRender );
                    else // !gCellUseFading
                    RenderString( TextToRender );
                    return;
                }
                if (channel == REMAP_INDICES) {
            // Parse the message, splitting it up into index values.
                    list Parsed = llCSV2List(data);
                    integer i;
                // Go through the list and swap each pair of indices.
                for (i = 0; i < llGetListLength(Parsed); i += 2) {
             integer Index1 = ConvertIndex( llList2Integer(Parsed, i) );
             integer Index2 = ConvertIndex( llList2Integer(Parsed, i + 1) );
        
                  // Swap these index values.
             string Value1 = llGetSubString(gCharIndex, Index1, Index1);
             string Value2 = llGetSubString(gCharIndex, Index2, Index2);
        
             gCharIndex = llDeleteSubString(gCharIndex, Index1, Index1);
             gCharIndex = llInsertString(gCharIndex, Index1, Value2);
        
             gCharIndex = llDeleteSubString(gCharIndex, Index2, Index2);
             gCharIndex = llInsertString(gCharIndex, Index2, Value1);
                    }
                    return;
                }
                if (channel == RESET_INDICES) {
            // Restore the character index back to default settings.
                    ResetCharIndex();
                    return;
                }
                if (channel == SET_CELL_INFO) {
            // Change the channel we listen to for cell commands, and the
                    // starting character position to extract from.
                    list Parsed = llCSV2List(data);
         gCellChannel        = (integer) llList2String(Parsed, 0);
                    gCellCharPosition   = (integer) llList2String(Parsed, 1);
            gCellUseFading     = (integer) llList2String(Parsed, 2);
         gCellHoldDelay     = (float) llList2String(Parsed, 3);             
                    return;
                }
                if (channel == SET_THICKNESS) {
                   // Set our z scale to thickness, while staying fixed
                   // in position relative the prim below us.
                   vector Scale    = llGetScale();
                   float Thickness = (float) data;
                     // Reposition only if this isn't the root prim.
                   integer ThisLink = llGetLinkNumber();
                   if (ThisLink != 0 || ThisLink != 1) {
                       // This is not the root prim.
                       vector Up = llRot2Up(llGetLocalRot());
             float DistanceToMove = Thickness / 2.0 - Scale.z / 2.0;
                       vector Pos = llGetLocalPos();
                       llSetPos(Pos + DistanceToMove * Up);
                   }
                   // Apply the new thickness.
                   Scale.z = Thickness;
                   llSetScale(Scale);
                   return;
                }
                if (channel == SET_COLOR) {
                   vector newColor = (vector)data;
                   llSetColor(newColor, ALL_SIDES);
                }         
            }
        } 


    

23 December

Musings. This week I tried to play a bit with building things in Schomebase - excuse my building work - one yellow floating rectangle and some railings. Dan/Woop gave me a copy of his railings and I played around with them a bit. Hmm, it's quite hard to position things just right. I think I'm still getting used to the building tools.

I know what you mean - I am really struggling with lining up the walkways - those blue semi-transparent things that lead away from the reception area. Any tips? I'm going to try turning on the gridlock ... PeterT 08:26, 29 December 2006 (GMT)

19 December

People have been going great guns with SL, I have rather been left a little behind because of the phd work, so time to get back up to speed. Great stuff guys by the way, great fun reading and chipping in on the forum and wiki in response to your work.

So today we tried to have our group meeting in SL instead of face to face ("f2f"). I think we all learnt some things about how it works.

First of all we went up to the playing field and had a go at my group game- about 7 of us: basically running between the coloured areas of the field and the last one to get there was out. I think that games are good because if they work well, they are fun, and are icebreakers. What did I learn?

1. Schome people are good sports, cheers for joining in folks! 2. Giving instructions is time consuming. A pre-written text I could post up would have been more efficient (a "virtual hand out"). 3. I tried to use chat and this couldn't be heard when I flew backwards to a good position to be the ref. For some reason the "shout" button was showing disabled. So I had to come in amongst everybody, shout a colour for them to run to, then fly up to get an overview. Better method of communication required? 4. Having a second ref. worked well to watch who was last over the line. 5. It will be fun to try it with 20 or 30 people to see if it is more laggy.

Then we flew to the meeting place. Actually I didn't know where it is and lost everybody. Learning outcome: it's easy to lose other people. If we imagine a follow-my-leader situation where a group of school kids are asked to follow a teacher, I can imagine it being very time consuming shepherding them all. We wanted to go as a group and it didn't work. Imagine kids who are not too bothered about following instructions to follow...

I couldn't find the meeting place, it was too high to fly to and somebody had to teleport me up and give me a magic feather which I'd not heard about before. Probably wasn't listening when this was talked about, I wonder when I missed hearing about it?

Meeting place is quite cool, I like the map definitely, and the flip board things. I am not so sure about the brieze block enclosure. I am thinking a lot about what walls are for, reading Avon's paper he wrote in 96 about this stuff (design of virtual reality spaces).

Then we went off to the discussion circle on the little islands. I like the idea of the little islands. The discussion circles kind of worked for me. I didn't like that there were two circles and you couldn't see the people below you (or above). I found myself not liking it when people sat on the circle but facing away from us - maybe the sense of presence stuff does count, it felt 'rude' when somebody had their back to the rest of us.

Chatting, I found myself opening up the chat history window and just working from in that - SL became a background screensaver while I focussed on the chatspace and ignored everything else. 'Presence' became less important as I refocussed into this chatspace. I guess the advantage of working in SL as a chat space is that it's a single tool, so you can flip out of "chatspace mode" and back to "3D shared world mode" without changing software tools.

Another thought on chatting was that rapidly it became like any other chatspace /Internet Relay Chat (IRC) channel - a little confusing with multiple conversational threads, shorthand txting being used, etc. I think with this and many of our other experiences in SL, we can look to previous research work done before to shortcut our learning curve.

It was interesting how we rapidly shifted into "chat" mode rather than "meeting mode" - though this happens in RL as noted by somebody. I'd like to try a formal meeting in SL just to see how it feels like. My general impression is that meetings in SL will take longer as communicating by typing is slower and a less rich medium than f2f meetings.


11 December

Bit of a break as the thesis beckons.

Anyhow, I think I've foudn a little trick. I've been having problems teleporting around sometimes - places are identified as locked off and not available. Not sure why, but if you teleport to Help Island, then you can teleport to the islands you couldn't get to (I'm talking about public ones which are popular like ICT library, etc)

Been hunting for noticeboards. No free ones so far, certainly you can't copy the ones noted by Peter that he'd read about on the SL Educators list. You can buy some here: - Candide LeMay, ICT Shop,Pickerel So my shout is to buy the cheapest then learn to hack it... need some Lindon Dollars off PeterT! time for a smiley email to him....

07 December

Logged in 9pm to go to the OU people meet in SL on Bourton, in the Three Lions Pub. Teleport seems not to be working in SL. I tried teleporting to lots of places, none worked. Logged in and out three times, still didn't work. Finally got to IM to Jackie, only person answering IMs. Jackie tried to teleport me in but no luck.

This is a serious issue with SL if it's going to be this flaky.

This is a known issue (like that's an excuse!) and covered on the official linden blog. The supposed workround is to tp to somewhere on the mainland (.eg. Plum, search for it on your map) and then teleport to your desired destination from there. I was having the same tp problems, but found that this workaround worked. --Dan 13:10, 8 December 2006 (GMT)

Got in eventually, nice chat.

While I was having problems teleporting into Bourton for the OU meet, I was stuck on Spaceport Alpha. Next door there was a cluster of people in (SpaceHab? something like this). They had a big meeting going on and were all sitting in a circle on office chairs. Seems like a 'proper' meeting - as far as I could work out educators involved in space technology - school teachers, NASA people, that sort of thing. I was interested to see their approach was a simulacrum of a real life attempt at a non hierarchical meeting.

I'm interested to see how things shape up in both informal meets like the pub meet last night when people could just chat. and also more formal situations where we agree to meet up to discuss work. I think social protocols may emerge for informal meetings: which way you face, whether you have to prefix conversations with the person's name that you are addressing to reduce confusion in active multiparty discussions (a bit like in IRC). Maybe an interesting experiment would be to have one of our 'Monday schome meetings' in SL to see how it goes. Or do people fear that we wouldn't be able to get enough work done, would the environment be too slow to have a real, rather than playful/experimental meeting?


Rebecca raised the concern that if people moved around too much then their computers wouldn't keep up with it (I suggested we try a group game next time where everybody is moving around). If this is the case, that SL can't deal with much movement (or at least our computers can't if they are not super high spec) then my question is - what is the point of SL? People are talking about "presence" but I am a little concerned they are being too vague about it. Definition folks, definition! If it means "I can see a representation of you being in the space but not moving much" then what's the difference between SL as a space and a multiparty webcam supported text conference with images moving once every five seconds. Why not get rid of SL and use KMi's Hexagon? (http://hexagon.open.ac.uk/kmi/hexagon.php). Is it the opportunity to manipulate in-space objects? Answers on a postcard please folks....

After the meeting I headed off to the Planetarium in Spaceport Alpha.

06 December

Quick play in SL. Met couple of nice people in educational spaces, I need to work out how transfer them into this wiki from the links in SL.

  • I tried to visit the Darfur exhibition in Better World.

http://slurl.com/secondlife/Better%20World/57.25/202.75/21.64 I teleported in and seemed to be stuck in a box full of flames, couldn't walk in any direction. I'm not sure if that was the exhibition but it was stressful. I could only getting out by flying upwards and then looking round the island. Found a couple of nice people in the Centre for Water Studies. They'll be worth investigating in future I think. They told me that NOAA had opened up a place so I went there

  • NOAA (National Oceanic and Atmospheric Administration) and the Earth System Research Laboratory (ESRL) have an island which looks pretty impressive - but I couldn't get in anywhere, it's all blocked off.

http://www.secondlifeinsider.com/2006/08/18/noaa-comes-to-second-life/

Met a British person who could, she had bumped into the owners and they'd given her group rights to access it all, she was very impressed. We need to keep an eye on that space. She recommended Space Station Alpha.

  • Spaceport Alpha Island-

http://slurl.com/secondlife/Spaceport%20Alpha/23/51/22/ you get to ride on a rocket to the International Space Station! very cool. Except when I was there I fell off and a long time later I fell back to Earth. Time for bed.

Still to visit the evolution place, Svarga http://slurl.com/secondlife/Svarga/128.0/128.0

I went to Svarga once. Whilst the island was nicely cultivated/terraformed, I couldn't find a single thing alive, which seemed a bit odd for a supposedly self-sustaining AI ecosystem. Must go back. --Dan 10:33, 07 December 2006 (GMT)

05 December

Wow,even making concentric circles takes time. Mine are the rings I've put on the CETLisland. Back soon. I think I will work outside of SL to get the ideas righr and then use my crib sheets to work in SL. It might be faster.. !

I think I might try to develop the circus cannon idea, ask Olly if I could work with him. Start thinking about the constituent parts at a general level, try to draw up a functional diagram, set of actions that need to happen and be fulfilled. Not sure if I can do the actual coding. The more I think about it the more I realise there's actually a lot in it for it to work well.

For example: the target

  • Need to make a target, alternate doughnuts of colour, with numbers clearly printed on them.
  • Each of the doughnuts needs scripting:
    • If landed on (touched/intersected by another object) then
      • send score marked on doughnut to noticeboard (well likely some text file to start with which allows accumulation by further scores, but is also read by an in-world scoreboard)
      • hold intersected object for brief period of time (3 seconds?)
      • launch visual display at point of impact (e.g. firework display)
      • move intersected object to remote place ("landing zone") - so intersected object then doesn't walk across other areas of the target and trigger multiple impacts and scores.

Quite a lot in there...

I'm thinking my goal could be just making a working target in the time we've got!

03 December

Evening wander around. I'm bored of just wandering now and finding lots of shops. I hate shopping in real life so I am not going to enjoy it here! A few days ago I met somebody who is a history teacher in real life - I think in the USA - and she was in SL again tonight. She mentioned she'd been to a lecture (in SL) on Maslow's hierarchy of needs and how it fitted into SL. She said the lecture had been run very well - I started to chat but she was getting the dinner on in real life so we didn't get much of a conversation - but agreed to meet up and chat further. Interesting, as as couple of you have also been to meetings in SL. Maybe I'll invite her along to chat - I am interested to see what happens in group meetings.

Then I found I couldn't teleport anywhere. I quit the program, and couldn't log back in. I think the system has too many people in it or something (it was saying 16,000). Hmm, my second experience of SL failing as a system.

29 November

The computer asks me to download a new version of SL: I am not given the choice, I have to in order to continue.

Takes about five minutes to install so I read up what everybody else is doing. Actually it's quite a a task just keeping up on everybody else's thoughts and notes in the schome SL group!

As I log in I notice it says 1404 people online now. That feels about right, is that just in the public spaces or does this also include private spaces I can't access? All that talk of a million people using SL doesn't meet up with what I've experienced, most places seem to have between a couple and a dozen or so people in them. So I guess 100 to 150 places with a handful or people in each makes up that 1404. I tend to log on at about 11pm after I've finished working, maybe I should try logging on at other times, I'd love to hear from the others how many people are in SL when they log on.

Ooh, the log on froze, I had to crash the software and start again. First time that's happened to me. Try a few times, I check www.secondlife.com/status and it notes that there has been down time today and according to the blog it should be back up. It's not. So that's it for tonight. Looks like Linden Labs is struggling a bit on the technical side of things. That's an issue, we can't commit to an educational space if it's not 100% guaranteed to be live. THe last time I try to log in it says there are 980 people online. So in the space of 10 minutes it's dropped by 50%, suggested people in SL are having problems and dropping out, it's not just a problem with getting in.

Comments

I tend to log in to SL in the early evening (8 or 9pm UK time) and there is generally hardly anyone around in the places I go (CETLment, Campus). So that fits with your experiences. I'm wondering if you can log how much time folk spend on an island if you own the island - off to ask Jaquie cos she'll know. PeterT 05:13, 30 November 2006 (GMT)

Comments on Peter's comments

It would be great if we could get stats on who visits and when - does this come with having your own island? I think somebody raised this i nthe last f2f meeting --Mgaved 08:39, 30 November 2006 (GMT)

27 November

an hour or so online?

25 November

Came across an article I liked http://nwn.blogs.com/nwn/2006/11/new_world_numbe.html

Particularly I enjoyed the posting: "Posted by: Sativa Prototype | Friday, November 17, 2006 at 02:01 PM"

24 November

23.00 - 00.30

Zipped around, getting bored with it now. Good conversation with Nogbad in CETL.

13.00 - 14.00

Insight: trying to think about SL's learning value - how I could set up something in SL of educational value.

How about SL as a social experiment. Get people into SL to do things, have people reflect on their behaviours in SL to reflect on what happens in RL, e.g. sharing resources, helping, Prisoner's Dilemma games etc. Maybe psychology lessons - group experiments because that's what home learners might miss out on - group experiences.

SL seems empty for most of the time I am there. I'm not seeing a million people online! maybe more like 100. Had one good conversation with somebody from a university in the Netherlands who's set up a medical library and is exploring medical issues. They are trying to put all medical information they find in SL into one place. Again though this seems like optimising SL... for SL users! not for others...

Most people seem clustered in one of 7 ways:

1. Personal conversations: 2 or 3 people having a private conversation. Generally they are accepting of strangers wandering by, they are polite when I say "hi" but there is little common ground so they go back to their private discussion. A little like real life. Embarrassed intermission.

2. Shopping. One or more people grouped together purchasing things. Usually to alter the image of their avatar (clothes, body parts).

3. Making money: zombies dancing, or gambling.

4. Role playing. Often larger dispersed groups of people role playing. You have the option of joining in or moving on.

5. Lonesome explorers. A bit like me, trying to work it out.

6. Group explorers: tend to be students in a group.

7. Lonesome pioneers. In SL, trying to drum up business for their SL brainwave, whether money making or pioneering their line of business (e.g. an online medical library).

Clusters of people seem to be in the following places:

1. Shops 2. Gambling 3. Role playing 4. Sex - flirting


I've been exploring using the map, looking for pin points indicating clusers of people. The map view doesn't seem to give me much detail: often the word "mature" will appear but I am not sure what this means, Reuters is labelled mature. More than once I've found a cluseter of people in "mature" and this seems to mean Shops/gambling/sex-flirting locations. Oops. Lots of teleporting in and out, goodness knows what my history trail says about my character!!!

Comments

PeterT 08:04, 25 November 2006 (GMT) re SL as a social experiment

When Keiron and I were talking about the sorts of things we might get the young folk to do on Schome Park (in the Teen Grid) we came up with a list that looked something like:

  • Getting in (register, download client, login)
  • Introduction to your Avitar (how to change your appearance)
    • Lots of activities around identity - what is it like to be female, disabled, ugly, ... Try changing your appearance and see if people treat you differently
  • Introduction to Schome Park (What’s here, what’s the point, ‘local customs and byelaws’, etc)
  • Introduction to moving around in TeenSL - Treasure hunt (take a picture of ...)
  • How to ...
    • find free stuff in TeenSL
    • use audio chat in SL
    • build things in TeenSL
    • script in TeenSL - through doing a robotics activity for example (a bit like logo)

I like your psychology games idea ... Have you seen Olly's suggestions re activities and simulations related to space/stars etc (which I can't find now but did ask him to add to the SL Projects page) - hmm, I am worried about how much info is in here but isn't accessible/effectively gets lost ...

Comments on Peter's comments ;-)

Some good points Peter. Ok I think you suggest two types of skills students might learn, I feel these need to be teased out.

  1. Skills students can learn that are then applicable outside of SL, e.g. social/economic lessons
  2. SL skills. Students being taught SL specific skills. These I find more problematic. What's the benefit of these? There might be a lot of benefit, I am just a little confused here. My concern is that these are self-referential. Teaching students how to find free stuff in TeenSL is only useful for SL. Now if we presume SL-skills will be beneficial in a wider sense, then this is important to teach. I can see the parallel with teaching people how to use the web on the grounds that the web is a tool to be used for other ulterior purposes. However I think we need to work this one through.

This comes back to my musings about purpose I guess.

A third point is your concern about information already getting lost as we progress as a group - I think this is really well made. I think we need to agree a set of rules/protocols about how we collate and record as a group, and invest in "gardening" or "weaving" time (choose your favourite metaphor) to keep on top of it all.

--Mgaved 13:15, 25 November 2006 (GMT)

Comments on Mark's comments on Peter's comments (lol)

Good points about my good points - one of the things that might come out of learning some 'SL only' skills is scope for reflection on how they learnt or how their learning was recognised/valued (which might inform our thinking about learning outside SL).

We should make sure we include discussion about gardening in our schome SL Players meeting on Monday.

23 November

23.00 - 00.30

Hung out for an hour and a half. Mmm, getting a bit bored now. Trying to work out what SL is good for.

21 November

22.30 - 00.00

Ok, I am spending too much time in here, this could get get addictive!

Flew around a few places, met a couple of nice people in the Reuters place (a student from the UK and one from Belgium I think) who taught me a couple of new tricks. Now I can search for places and move the map around.

I am working out a bit more about the spaces - Reuters looked rubbish to start with, then I realised - it's just taking AGES to load - I mean about 10 minutes on my computer. So important note to schome designers - keep it simple, don't build fancy to show off, you'll just slow down everybody's experience, and they'll miss half of it. I don't have the patience to wait for 10 minutes for goodness sake.

Went to CETL island and chatted to Nogbad.

13.45 - 14.30

A couple of people have asked to be my friend - I got emails in my Open Uni mail box so I thought I'd log in and accept: Woop Superior and Schomer Simpson

Decided to explore. Somebody (Gill?) mentioned Midnight city. One person there and they disappeared, went off to Midnight Reflections. Somebody there. We briefly chatted but it was what I expected - a kind of "bus stop conversation": "hi","hi" "nice to meet you" "where are you from" "ok, see you around". Two people being polite and passing the time but nothing in common. Woop Superior (Olly) came on line, I teleported into CETL island and we chatted briefly. Interestingly while Woop/Olly was in one place, I could IM to him while typing to the person next to me in the virtual space. I wonder if Olly could see what I was saying to the other person or vice versa. I made my first thing, a chair. Pretty crude but I am starting to find my way round the object creation tools. Pretty complex interface I think, could take some time to work out how they all function.

Text based conversational interfaces: well if I don't get a sound card for this computer, my typing speed is gonig to have to improve!

Looks like the loaned computer and 25 quid video card are doing the job.

20 Nov 2006

Couple of hours configuring a windows computer and sticking in a new graphics card so hopefully it will run second life...

22.30 download second life installer

Pretty quick download and installer runs, asks me to log in to Second life

relatively painless.

It decides I have to use one of their Second names. Humph. So I go for Cabaret, seems the least painful option. First name: do I go for something clever? nope, can't be bothered. I could think of some witty jokes but simple is sometimes best, hey, Mark will be fine.

I am given the option of free Linden Dollars if I give them my credit details.

No thanks.

Click through and I get in painlessly enough. Ok I am in. 20 minutes work.

Now I am going to change the way I look.

ok I change some clothes.

Now I click on Teleport to home. Oh dear, now I haven't a clue where I am or how to find CETLspace

CHatted with coupleof people

Double clicked on the map and it gave me a search option, typed in CETL and found I could teleport to CETL island!

Nobody there, checked out the brieze block place on the hilltop. Mmm, nice aesthetic guys. "Brieze blocks, better than school..."

Comments

PeterT 06:01, 21 November 2006 (GMT)

lol - you can see why we wanted help!


Debate on Second Life

Is there a place to have a debate on Second Life?

I've been trying to think critically about the value of Second Life. Some of this is better placed in the discussion boards but I was wondering if we try to draw up the positive and negative aspects and link to any research. On some of the blogs I've come across discussion of the scripting language and the GUI, for example as well as more general discussion about adult orientated content etc. --Mgaved 16:12, 26 November 2006 (GMT)

Comments

There are 'Real World Educator' maillists - but not come across any forums (though I haven't looked hard cos I just don't have time .... Of course we could always start the debate in the schome community forum - maybe we should become the world focal point for academic debate about SL ... And, as you suggested the other day, there does seem to be scope for us to get in quick with an academic paper or two re the use of SL as an educational tool - perhaps building on the mapping that Kieron is currently doing of 'Levels of expertise in SL' onto inworld and realworld competences. PeterT 05:25, 30 November 2006 (GMT)

As you've said the SLED (Second Life Educators mailing list) already offers a lot of support for inworld educators, as well as debating the relative merits of what is done with the environment. I expect the kind of experiences we will have have already been had many times before. I've tried to share via the forums a few papers I've come across reg the use of Second Life, and Pathfinder Linden speaks regularly at conferences about its use for academic purposes. Additionally books have been written for years about the value of games for educational purposes so thats pretty well documented as well. Dan 08:50, 30 November 2006 (GMT)

Main Page - Second Life