ACHUB

Writing by admin on Thursday, 10 of May , 2007 at 10:48 am

ACHUB

The ACHUB is a community, a not-for-profit community founded within SecondLife in 06. The original idea was to have an “in-world” group which was an extension of Audiocourses.com distance learning school, a group where our students and staff could share and plan and organise sophisticated pool parties, and of course conduct serious things too, if we had too.

The ACHUB quickly became more than just an extension of the school, it became a community in its own right, a vibrant collective of people with very similar interests and attitudes, with a strong flavour of openness and sharing, which I am 100% in support of.

To date, the ACHUB has conducted a variety of events in SecondLife which have included a vast amount of people registered on the SLED list, and it has been wonderful meeting so many new people and getting to know some of them personally.

I now see the ACHUB growing to the next stage, and that is “open-sourcing” the concept, putting it out to you, so you can use the ACHUB, the spaces “in-world” (for free), you can organise events under the banner of the ACHUB on our SIM.

But it gets better, the ACHUB is also “reaching-out” beyond the virtual walls of SecondLife and extending into Real Life (oh no, so scary). Yes the ACHUB, as a not-for-profit community, is now actively engaging in establishing events in SL and RL, no matter how large or small, no matter who comes or doesn’t.

The concept for any ACHUB event is drawn very heavily from the Barcamp and unconference concept, in that YOU, WE, US, the community, organise, run, attend, participate in the events. We share, and we reach out to new people building new relationships and share practise.

We have some SL events coming up soon, but we have a cracker planned for Oct 07 in the UK, called MediaCamp BUCKS, you can see the links to this on the ACHUB wiki, it’s shaping up to be a very rich event and a real shindig!

I hope you do get involved, I hope you do consider running an event yourself, I hope you do take the motion we already have going and touch people in your community.

ACHUB WiKi

You want to run an event right? Do tell me your thoughts.

Leave a comment

Category: Chris Hambly, ACHUB

03. Literature Alive In SecondLife

Writing by admin on Wednesday, 25 of April , 2007 at 1:29 pm

#03. Podcast featuring Beth Ritter-Guth Location: Lehigh County, Pennsylvania, US.

Download Direct Here

Leave a comment

Category: Chris Hambly, Podcasts

Transparency Is Working Hide at Your Peril

Writing by admin on Tuesday, 10 of April , 2007 at 1:21 pm

I made a post on my personal blog last month about the importance of transparency in a relationship, this was inspired from one of my friends Christopher Penn.

I’ve always been a fan of openness particularly in educational circles, yet still I find many educators are more closed than people working outside of the sector. This is worrying and should be addressed at many levels.

We are now operating in a new-media world, the old school mentality of “knowledge is power” in so much as “it’s mine, I have it and you don’t” has gone. Academics who hold on to this will fall beside the wayside and simply get left behind. The reason being that nobody will trust you, nobody will believe you, you will not develop a medium of reaching your audience in the new-world.

Old fashioned media was based on the concept of large print houses, the commercial value being the physical size of the print house and the physical size of the distribution network it could maintain, based on the physical size. If they wanted to reach more people, they needed more print house space for more copies, more staff, more delivery people.

This is changing and changing fast.

We no longer need the big print houses to distribute, you can distribute yourself right now, you can tell the world, you can voice your opinion more easily that ever before.

BUT, you must build your network well, you must build your own network(s) of believers, people who trust you, and follow you, if you are not transparent it will not work.

This then is a call to being as transparent as possible in all your endeavours, if you give give give, you will get get get. Why are you spending so much time writing an academic paper for a closed audience, when you could be publishing on a blog and multiplying your audience, AND, having them comment on your work easily. You never know you may even make a new friend, and learn something.

Are you lecturing a subject, why not blog it too? Practise it, share share share.

I recently attended a podcamp un-conference, and this is the best get together I have ever been on, this blows academic conferences right out of the water. And why? Because people were open, transparent, I trusted them, they shared knowledge openely and willingly.

Check out that conference report here (it is SecondLife related)

Comments encouraged

Leave a comment

Category: Chris Hambly

2. James Hayton On People, Innovation and Entrepreneurship

Writing by admin on Tuesday, 3 of April , 2007 at 12:06 pm

Episode #2 of the SLEDucating Podcast

James Hayton is Assistant Professor Bocconi University Milan, Italy. His research focuses on people, innovation and entrepreneurship.

http://James-Hayton.com
http://stream.sdabocconi.it/tedplus/research.html

DOWNLOAD EPISODE #2 HERE

Comments (2)

Category: Chris Hambly, Podcasts

1. CC Chapman Discusses Why Colleges Should Be Podcasting

Writing by admin on Monday, 2 of April , 2007 at 1:44 pm

Episode #1 of the SLEDucating Podcast.

Show notes

Hi there this is Chris Hambly, director of audiocourses.com and your host for the Sleducating Podcast. Welcome to the first episode of Sleducating, a podcast for academics and new-media people operating in SecondLife.

The podcast will be as frequent as I can manage and/or as frequent as you the listeners wants, I really want this to be your cast, so do get involved. Each episode will be fairly short and will usually feature an interview along with voice comments from anyone that has something to say.

The voicemail numbers can be found on the “About” page at sleducating.com and they are:

USA/world: +1909-313-4254

UK/Europe: +44-207-8714760

My email is chambly AT gmail.com

To kick off the first episode we have CC Chapman, VP of Crayon Marketing discussing why colleges and universities should podcast.

Have fun and see you in-world soon.

DOWNLOAD EPISODE 1 HERE

Leave a comment

Category: Chris Hambly, Podcasts

SecondLife Traffic Figures

Writing by admin on Saturday, 31 of March , 2007 at 11:38 am

I was inspired to create a post about this topic following a recent discussion on the SLED list concerning quoted traffic numbers. This post is not meant in any way to shame anyone, but it is intended to indicate exactly what “traffic”, in the context of a SecondLife land parcel, actually means.

All land in SecondLife has what is known as a “traffic” figure which can be found be going to Land Properties as you can see in the diagram below. I shot this early in the SecondLife day and already is says 309. But that’s not 309 avatars having visited, oh no!

Second Life Traffic

The land figure is actually a Linden Labs method of determining the popularity of a parcel, albeit a very crude method. The idea is that the calculation is equated to the amount of visitors on that land combined with the amount of time they spend on that land in relation to the time they spend actually online in that day.

“Traffic is a number for each parcel which is based on the amount of Residents who visited, and the time spent on that parcel out of their total time in world that day. It’s calculated using a complex algorithm.” See here.

So if you log-in, immediately teleport to my land, and stay there for the duration of your SecondLife time for that day, my traffic figure will be much higher than had you frequented many places during that same time period.

This then is a warning shot, when traffic figures are mentioned in the context of land parcels, as they have little relativity to unique people landing on a parcel. This is in fact exactly why some land owners have such things as camping chairs in order to have avatars do nothing but “camp” on the land in order to inflate the figures (this has benefits for the search system rankings).

In order to appropriately determine unique visitors (which are the only real concern when discussing obtaining SecondLife exposure) you would employ a script which actually head counts unique visitors.

Various scripts do exist for such counting, I personally use one made by the avatar SpankMe Pinkerton (have to love the names).

The script features are listed as:

* Two data lists (individual visits & unique visitors)
* Collects date, length of stay, and average stay data
* IM guests (separate message for first time visitors)
* Owner IM notification (online only & timing options)
* Ten detection sound options or set your own via uuid
* Adjustable range and scan intervals
* Owner land filtering (neighbor friendly)
* Automatic owner filtering

Fairly comprehensive method of tracking I would say!

So do be careful on your travels in SecondLife if you are seeking new customers and clients for your educational activities and are basing your advertising on traffic figures.

So next time someone says “how’s your traffic”, look at them in a puzzled manner first and then ensure they understand the question themselves, most do not!

Comments (3)

Category: Chris Hambly

SecondLife Blogging Script

Writing by admin on Tuesday, 20 of March , 2007 at 1:42 pm

Lots of people have been asking for a blogging solution, a way of being able to blog from “in-world” either a text or notecard directly to their personal blog.

The following two scripts when placed in a prim will do exactly that.

You can change the subject title, the blog address, the email, and choose between blogging the text chat, or a notecard.

You call this script “blogger”.

The basic premise is that the script sends an e-mail, so you need your blog software set up to process an email, which is fairly simple on most blog apps.

// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

// Written by Gypsy Paz
// Version Beta 0.3

string blog_email;
string blog_url = "http://blogger.com";
string blog_msg = "Visit my Blog";
string blog_subj = "Post from SecondLife";
integer isadmin;
integer on = FALSE;

string dcapt;
list dbutt;
integer dchan;
key duser = NULL_KEY;

integer i;

integer dlistener;
bluemenu(){
llDialog(duser,dcapt,dbutt,dchan);
dlistener = llListen(dchan,"",duser,"");
llSetTimerEvent(60);
}

integer clistener;
string listenfor;

unlisten(){
llListenRemove(dlistener);
llListenRemove(clistener);
listenfor = "";
llAllowInventoryDrop(FALSE);
duser = NULL_KEY;
}

default{
touch_start(integer num_detected){
if ( ( duser == NULL_KEY ) || ( duser == llDetectedKey(0) ) ){
duser = llDetectedKey(0);
dchan = (integer)llRound(llFrand(1)*5000000);
if ( llDetectedKey(0) == llGetOwner() ){
isadmin = TRUE;
dcapt = "Admin Menu

Blogger Address: "+blog_url+"
Blogger Email: "+blog_email+"
Blogger Subject: "+blog_subj;
dbutt = ["Chat Blog", "Blog Note", "Goto Blog", "Subject", "Set Email", "Set URL"];
bluemenu();
}
else{
isadmin = FALSE;
dcapt = "User Menu";
dbutt = ["Chat Blog", "Blog Note", "Goto Blog"];
bluemenu();
}

}
else{
llInstantMessage(llDetectedKey(0),"In Use, please try again in a minute.");
}
}

listen(integer channel, string name, key id, string message){
if ( channel == dchan ){
if ( isadmin ){
if ( message == "Subject" ){
unlisten();
llInstantMessage(id,"Say /1 followed by the subject you wish for each blog post");
listenfor = "subject";
clistener = llListen(1,"",id,"");
llSetTimerEvent(60);
}
if ( message == "Set Email" ){
unlisten();
llInstantMessage(id,"Say /1 followed by the email address that accepts blogger posts.");
listenfor = "setemail";
clistener = llListen(1,"",id,"");
llSetTimerEvent(60);
}
if ( message == "Set URL" ){
unlisten();
llInstantMessage(id,"Say /1 followed by the blogger web addres to your blog.");
listenfor = "seturl";
clistener = llListen(1,"",id,"");
llSetTimerEvent(60);
}
}
if ( message == "Chat Blog" ){
unlisten();
llMessageLinked(LINK_THIS,0,"chatblog",id);
llInstantMessage(id,"Say your blog post in chat within 60 seconds.");

}
if ( message == "Blog Note" ){
unlisten();
llAllowInventoryDrop(TRUE);
llSetTimerEvent(60);
llInstantMessage(id,"Drop your notecard into this object within 60 seconds.");
}
if ( message == "Goto Blog" ){
llLoadURL(id,blog_msg,blog_url);
unlisten();
}

}
else if ( channel == 1 ){
if ( isadmin ){
if ( listenfor == "setemail" ){
blog_email = message;
llInstantMessage(id,"Blogger email address set");
llMessageLinked(LINK_THIS,0,"setemail",blog_email);
unlisten();
}
else if ( listenfor == "subject" ){
blog_subj = message;
llInstantMessage(id,"Subject is set");
llMessageLinked(LINK_THIS,0,"subject",blog_subj);
unlisten();
}
else if ( listenfor == "seturl" ){
blog_url = message;
llInstantMessage(id,"Blogger url set");
unlisten();
}
}

}
}

timer(){
unlisten();
}

}

You call this script “mailer”


string blog_email;
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.

// Written by Gypsy Paz
// Version Beta 0.3

string blog_subject = "Post from SecondLife";
string post;
integer listener;

string qName;
integer qLine = 0;
key qID;

mailit(){
llEmail(blog_email, blog_subject, post);
post = "";
}

clean(){
list types = [INVENTORY_TEXTURE, INVENTORY_SOUND, INVENTORY_LANDMARK, INVENTORY_CLOTHING, INVENTORY_OBJECT, INVENTORY_NOTECARD, INVENTORY_BODYPART, INVENTORY_ANIMATION, INVENTORY_GESTURE];
integer i;
integer ii;
string iname;
for ( i = 0; i < llGetListLength(types); i++ ){
for ( ii = 0; ii < llGetInventoryNumber(llList2Integer(types,i)); ii++ ){
if ( iname = llGetInventoryName(llList2Integer(types,i), ii) ){
llRemoveInventory(iname);
}
}
}
}

default{
state_entry(){
// llAllowInventoryDrop(TRUE);
}

link_message(integer sender_num, integer num, string str, key id){
if ( str == "setemail" ){
blog_email = id;
}
else if ( str == "subject" ){
blog_subject = id;
}
else if ( str == "chatblog" ){
listener = llListen(0,"",id,"");
llSetTimerEvent(60);
}
}

timer(){
llListenRemove(listener);
llSetTimerEvent(0);
}

listen(integer channel, string name, key id, string message){
llListenRemove(listener);
post = message + "\n\n" + llKey2Name(id);
llSetTimerEvent(0);
mailit();
}

changed(integer change){
if(change & (CHANGED_ALLOWED_DROP | CHANGED_INVENTORY)){
qName = llGetInventoryName(INVENTORY_NOTECARD, 0);
if ( llStringLength(qName) > 0 ){
qID = llGetNotecardLine(qName, qLine);
}
else{
clean();
}

}
}

dataserver(key query_id, string data){
if (query_id == qID){
if (data != EOF){
post = post + “\n” + data;
++qLine;
qID = llGetNotecardLine(qName, qLine);
}
else{
mailit();
clean();
qLine = 0;
}
}
}

}

Leave a comment

Category: Chris Hambly

TwitterBox Twitter Script

Writing by admin on Wednesday, 14 of March , 2007 at 6:24 pm

Here is the wonderful code by Ordinal Malaprop which will enable you to Twitter from SecondLife as well as recieve Twitter updates in SecondLife.

You simply create a prim and put this script into that prim after editing the script with your own email and password for your Twitter account.

This code also features an animation (you can drop your own animation in named “Twitter”) and a prim “Twitterball” which rezzes and creates particles in the shape of musical notation. The Twitterbox starts the animation and also makes the sound when in “private” mode.


// Twitterbox v0.2
// Post to Twitter and receive updates from within SL

// Ordinal Malaprop
// 2007-03-08
// Free for distribution and use, but if you use it in something else
// I would like at least a mention.

//------------------------------------------------------------------
// Edit these to your own specifications
// The email address you signed up to Twitter with
string EMAIL = "your@emailaddress.com";
// Your Twitter password
string PASS = "123xxx";

// This is the URL of the intermediary script. Don't change it unless
// you are using an intermediary of your own.
string TWITTERPING = "http://ordinalmalaprop.com/twitter/control-0.2.php";

// Leave these alone.
integer gTime = 0;
integer gCode = 0;
string gScreenName = "";
integer gManual = FALSE;

// gNotify defines the type of notification
// 0 = none
// 1 = private sound
// 2 = full animation and public sound
integer gNotify = 2;

//------------------------------------------------------------------

key twitter_send(string action, string subject)
{
if (EMAIL == "" || PASS == "") {
llOwnerSay("No email/password set - edit script and try again");
return NULL_KEY;
}
else {
vector pos = llGetPos();
return llHTTPRequest(TWITTERPING,
[HTTP_METHOD, "POST"],
EMAIL + "\n" + PASS + "\n" + action + "\n" + subject + "\n" + llGetRegionName() + "/" + (string)llRound(pos.x) + "/" + (string)llRound(pos.y) + "/" + (string)llRound(pos.z) + "/");
}
}

menu()
{
llDialog(llGetOwner(), "Please select an option", ["Check Now", "Web", "Help", "About",
"Notify", "Cancel"], 282);
}

string notify_level()
{
if (gNotify == 0) return "Quiet";
else if (gNotify == 1) return "Private";
else if (gNotify == 2) return "Public";
return "** something illegal **";
}

help()
{
if (EMAIL == "" || PASS == "") {
llOwnerSay(
"BEWARE! You have not configured an email and password! " + "Open the object, open the TwitterBox script, and fill in " + "the variables at the top. Make sure string EMAIL = \"your.email@somewhere.com\" and string PASS = \"yourTwitterPassword\".");
}
llOwnerSay(
"To send a tweet, say '/282 ‘, or touch the TwitterBox ” + “HUD for more options.”);
llOwnerSay(”Type the word SLURL (all caps) within the text to insert a TinyURL to the SLurl for your location into your tweet.”);
}

about()
{
llOwnerSay(”A simple SL client for Twitter - http://twitter.com/ ” + “- by Ordinal Malaprop”);
llOwnerSay(
“TwitterBox will automatically check for new tweets from your ” +
“friends every minute, or when you tell it to manually from ” +
“the menu, obtainable by touching the HUD.”);
llOwnerSay(
“To use, you need to have registered with Twitter, and edited ” + “the script to include your email address and password.”);
llOwnerSay(
“For more information or the latest version, visit ” +
“http://ordinalmalaprop.com/twitter/”);
}

twitterball()
{
llStartAnimation(”Twitter”);
llSleep(1.0);
llRezObject(”Twitterball”, llGetPos() + <0.0, 0.0, 1.5>, ZERO_VECTOR, ZERO_ROTATION, 1);
}

//——————————————————————

default
{
state_entry()
{
llOwnerSay(”Initialising…”);
// At the start, get the user’s screen name and ID number
twitter_send(”get id”, “”);
// reset the clock to now
gTime = llGetUnixTime();
// and set up a regular check
llSetTimerEvent(10.0);
// and also start listening for commands
llListen(282, “”, llGetOwner(), “”);
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
llOwnerSay(”Done.”);
help();
}

changed(integer change)
{
if (change & CHANGED_OWNER) {
llResetScript();
}
}

attach(key id)
{
// Don’t do anything if taking it off!
if (id == NULL_KEY) return;
// Get screen name again whenever it is attached,
// as this may change
twitter_send(”get id”, “”);
// Also display the help message
help();
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
}

timer()
{
twitter_send(”check”, “”);
}

touch_start(integer n)
{
// On owner touch, launch a control menu
if (llDetectedKey(0) != llGetOwner()) return;
menu();
}

listen(integer c, string name, key id, string msg)
{
if (msg == “Check Now”) {
llOwnerSay(”Checking latest entries…”);
gManual = TRUE;
twitter_send(”check”, “”);
llSetTimerEvent(60.0);
}
else if (msg == “TestTwit”) {
llSleep(1.0);
twitterball();
}
else if (msg == “Web”) {
llLoadURL(id, “Visit your own Twitter page”, “http://twitter.com/” + gScreenName);
}
else if (msg == “Help”) {
help();
}
else if (msg == “About”) {
about();
}
else if (msg == “Notify”) {
llDialog(llGetOwner(), “Please select an option for notifications - currently ” + notify_level(), [”Quiet”, “Private”, “Public”, “Cancel”], 282);
}
else if (msg == “Quiet”) {
gNotify = 0;
llOwnerSay(”No sound or animation notifications”);
}
else if (msg == “Private”) {
gNotify = 1;
llOwnerSay(”Private sound only for notifications”);
}
else if (msg == “Public”) {
gNotify = 2;
llOwnerSay(”Animations and public sound when twittering, private sound for new tweets”);
}
else if (msg != “Cancel”) {
llOwnerSay(”Twittering…”);
twitter_send(”update”, msg);
}
}

http_response(key id, integer status, list metadata, string body)
{
if (llGetSubString(body, 0, 1) == “OK”) {
// A success
list lines = llParseString2List(body, [”\n”], []);
string firstLine = llList2String(lines, 0);
if (llGetListLength(lines) == 1) {
// A successful update, or an ID check
list bits = llParseString2List(firstLine, [”,”], []);
gCode = llList2Integer(bits, 1);
gScreenName = llList2String(bits, 2);
if (llList2String(bits, 3) == “posted”) {
llOwnerSay(”Successfully Twittered!”);
if (gNotify == 1) {
llPlaySound(”c923f3d9-83a6-99dc-9b7d-bbcdb3c30789″, 1.0);
} else if (gNotify == 2) {
twitterball();
}
}
}
else {
integer f = 1;
integer maxTime = gTime;
do {
string user = llList2String(lines, f);
integer time = llList2Integer(lines, f + 2);
if (user != gScreenName && time > gTime) {
if (maxTime == gTime) {
// First new tweet, play sound
if (gNotify != 0) {
llPlaySound(”c923f3d9-83a6-99dc-9b7d-bbcdb3c30789″, 1.0);
}
}
llOwnerSay(llList2String(lines, f) + “: ” + llList2String(lines, f + 1));
maxTime = time;
}
f += 3;
} while (f < llGetListLength(lines));
if (maxTime == gTime) {
if (gManual) {
llOwnerSay("No new entries");
gManual = FALSE;
}
} else {
gTime = maxTime;
}
}
} else {
if (body == "") {
// SL sends back a blank entry if it can't get in touch
body = "Could not contact intermediary server " + TWITTERPING;
}
else llOwnerSay("Error " + (string)status + " - " + body);
}
}
}

Comments (1)

Category: Chris Hambly

SecondLife Twitter Scripts

Writing by admin on Wednesday, 14 of March , 2007 at 5:14 am

I have recently been using the social networking tool Twitter which is one of the hot hot topics that everyone visiting SXSW seems to be using.

The tool is based on the concept of “what are you doing now?”. A user can type this information into a web form, Googletalk IM, text message in a cell phone and more recently through several scripts available in SL which not only send your current twittering through a private channel, but also enable you to recieve and parse out your twittering friends information “in-world” through chat.

Pretty impressive!

You can “follow” friends on Twitter in order to be notified of what they are doing (or wish you to know) and similarly people can “add” you in order to follow your musings. This really is proving to be a powerful networking tool and even politicians are now dipping their toes into twittering to keep their electorate in touch and up to date, again powerful stuff!

The most recent script I have been using is made by the SL avatar Ordinal Malaprop, which even twitters SLURLS into your Twitter time-line. One other script I have used is made “in-world” by Koz Farina, which is a HUD.

If anyone else is using/making a Secondlife Twitter script do post a comment about it here, or if you are Twitter user tell us how you use your Twitter in conjunction with SL.

Leave a comment

Category: Chris Hambly

Audana of AC Optimized Theme is created by Hostseeq Designer

Welcome

SLEDucating is a collective of individuals blogging their research and insights concerning Secondlife.

  • Calendar:

    September 2008
    M T W T F S S
    « Jun    
    1234567
    891011121314
    15161718192021
    22232425262728
    2930