It's all in the wrist.. http://baddabean.com LSL Scripter and virtual business owner ELQ Homewood blogs about Second LifeŽ. Copyright 2010 Baddabean.com Geeklog Wed, 11 Aug 2010 12:56:51 -0700 en-gb http://baddabean.comfavicon.ico It's all in the wrist.. http://baddabean.com Wifi Blues http://baddabean.com/article.php?story=20100811123944658 http://baddabean.com/article.php?story=20100811123944658 Wed, 11 Aug 2010 12:39:44 -0700 http://baddabean.com/article.php?story=20100811123944658#comments It's all in the wrist.. <p>Wifi leaves a lot to be desired when it comes to heavy internet usage. I know mobile internet access is a great thing, but you try typing a blog post on a phone..</p> <p>Users of virtual worlds such as myself are also very left out when required to depend on mobile devices and wifi. I'm not saying they aren't very useful and important, just that it would be nice if there were some way to use the mobile/wifi technology for everything. I know, I'm dreaming.</p><p>Still, I won't stop hoping it could happen. I'm outta here, I hate typing on this little screen..</p><p>Remember, <b>it's all in the wrist..</b></p>~ELQ~ http://baddabean.com/trackback.php?id=20100811123944658 An Exciting Time to be a Virtual World http://baddabean.com/article.php?story=20100618123959889 http://baddabean.com/article.php?story=20100618123959889 Fri, 18 Jun 2010 12:39:59 -0700 http://baddabean.com/article.php?story=20100618123959889#comments It's all in the wrist.. <p>Summer is certainly being good to the OpenSim virtual world InWorldz&trade;!<br> They are increasing in numbers rapidly, in part due to the user-base losing<br> faith in Second Life&reg;, but most users I've spoken to are trying them out<br> because InWorldz has a very strong and supportive community and they are<br> improving the technology rapidly.<br> <br>This month has seen 100+ new users in InWorldz per day. They had 2000 registered users<br> on the last day of April 2010. At the end of May they had 3000. On June 11 - 11 days! - InWorldz<br> reached 4000. They are poised to hit 5000 registered users sometime tomorrow, Saturday<br> June 19, 2010. One of the founders projects nearly 6000 registered users by the end of June.<br> You may think these numbers look small, but think of the exponential growth represented. <br> This is not usual for an OpenSim grid. The amazing thing is, the founders are keeping up<br> technologically, and improving on the OpenSim technology each and every day. It's a very<br> exciting time, for a number of reasons.</p> <p>It's no secret I live in both worlds, and I don't want to compare them, really - <br> here or anywhere else. Second Life is heading into some exciting times themselves.<br> This is not really a comparison so much as showing differences in focus, as worlds single<br> out separate portions of the market. InWorldz focuses very much on<br> improving the technology, creating new things and pushing the envelope in order to<br> create a more enjoyable and friendly experience for their users. Having changed their<br> focus recently <a href="http://www.prnewswire.com/news-releases/linden-lab-restructures-to-generate-efficiencies-and-support-investment-in-new-platforms-95982564.html">per the Linden Research CEO Mark Kingdon</a><br> to include a platform accessible from browser-based technology, SL&trade; seems to be going the<br> other way. They may be leaning toward utilizing technologies that have before now been seen as<br> competitors to SL, such as <a href="http://www.onlive.com/">OnLive</a>&reg;, possibly even incorporating other<br> previously competitive technologies such as <a href="http://3di.biz/en/">3di&reg; OpenSim</a>.<br> 3di Inc. has announced the release of a secure solution to logging in with third party<br> (such as <a href="http://facebook.com">Facebook</a>&reg; and <a href="http://twitter.com">Twitter</a>&reg;?) credentials. See their <a href="http://3di.biz/en/news/2010061501.html">press release here</a><br> and a very good report on it by <a href="http://www.hypergridbusiness.com/author/maria-korolov/">Maria Korolov</a> on <a href="http://www.hypergridbusiness.com/2010/06/3di-opensim-allows-third-party-logins/">Hypergrid Business</a>&trade;.</p> <p>Regardless what the future plans of Linden Research are, the differences in focus are<br> tangible. This is where the "rubber meets the road" as it were, according to many of the folks<br> I've been speaking to who are making a transition. Most are not leaving SL, but rather adding<br> InWorldz to their virtual world routine. No longer is one limited at the VW Buffet, one can<br> partake of many, and enjoy the flavors and blending of each. This is not a bad thing, for<br> Second Life, InWorldz, or any of the other virtual worlds involved. As the grids evolve, they<br> will of necessity come to points where they must target a portion of the market - let's face it, the<br> market for virtual worlds is..the planet's population! There ARE many subsets. To be honest,<br> for my own experience of Second Life, I'm not thrilled on their new position - but that's just me<br> being selfish. I love SL, and I love many people in SL - they are the reason, more than my<br> business, that I will remain in SL. However, the new focus IS a good one, for their business.<br> They may lose a large portion of their current user-base. This may be unavoidable at this point.<br> There is a market for technologies like OnLive and 3di OpenSim, which even if Linden Lab<br> doesn't specifically USE those companies, they will most likely use these types of technology.<br> The fact is, Second Life may get one hell of a facelift - until it's unrecognizable to an old fart <br> like me. However, IF they are truly focusing once again on the users, even users in the market<br> for browser-based and third-party access, they will not only survive - I believe they will thrive.</p> <p>No doubt we'll all be watching to see how things pan out. Either way, <strong>it's all in the wrist..</strong></p> ~ELQ~ http://baddabean.com/trackback.php?id=20100618123959889 A New Home? Inworldz Moving Forward http://baddabean.com/article.php?story=20100614080912829 http://baddabean.com/article.php?story=20100614080912829 Mon, 14 Jun 2010 08:09:12 -0700 http://baddabean.com/article.php?story=20100614080912829#comments It's all in the wrist.. <p>With so many disenfranchised and dissatisfied virtual world users out there,<br> in great part due to decisions made by Linden Lab&trade; of Second Life&reg; recently<br> and in the last couple of years, many have been grid-hopping for some time. Others have just<br> begun their journey, looking for a new home. <a href="http://inworldz.com">Inworldz</a> is an OpenSim<br> grid which is advancing quickly on the tech front as well as in the aspect of community.</p> <p>They are gaining numbers daily, concurrency seems to be going up (at least<br> when I'm logged in), and their economy is growing as well. Here's the one to watch,<br> without a doubt. Personally, I've taken more than an interest there and become involved<br> in the community, which is to say the least quite refreshing, and have begun branching<br> H&amp;S Originals there. Baddabean.com will be arriving there shortly ;o)</p> <p>People look at their stats and say, "Oh, I see 70 logged in lmao", thinking they are<br> being witty, and that's okay - with a response like that I personally would rather not see them<br> there anyway, to be quite frank. Others look at the fact that roughly 2 weeks ago they had 3000<br> registered users and as of this writing are sporting 4383. Not bad growth, particularly when<br> compared to others out there, with far more employees, and far more time in development.</p> <p>It's a place for pioneers, with a community spirit that refuses to take a back seat to other<br> concerns. If something needs done, somebody does it, and the founders actively participate<br> in the community and pay attention to its members. They are users and members as well as<br> employees/employers - this is key.</p> <p>As for tech concerns, they are an OS grid with all that implies. No, it's not Second Life&reg; and<br> that's okay. That's actually far more than okay with me. Being an OS grid, certain scripting<br> functions do not work yet, there are fewer established businesses, and there are definitely<br> glitches. Many of us enjoy the glitches, however, and do not let them hamper us. We<br> report them and they get put on the list to be dealt with. We're all working toward the betterment<br> of this world, and this spirit is a very tangible thing here.</p> <p>Upcoming tutorials will most probably be including scripting techniques and functions which work<br> in <a href="http://inworldz.com">Inworldz</a> as well as <a href="http:/secondlife.com">Second Life</a>.Others may include<br> more than one version. If you are currently grid-hopping, or are considering<br> looking around, stop in at <a href="http://inworldz.com">Inworldz</a>, there's always fun conversation<br> going on and we're always glad to see new faces.</p> <p>Remember, no matter what grid you prefer, <strong>it's all in the wrist..</strong></p> ~ELQ~ http://baddabean.com/trackback.php?id=20100614080912829 Lindens get the axe, time for Exit Strategy? http://baddabean.com/article.php?story=20100610002255814 http://baddabean.com/article.php?story=20100610002255814 Thu, 10 Jun 2010 00:22:55 -0700 http://baddabean.com/article.php?story=20100610002255814#comments It's all in the wrist.. Well, as everybody knows, Linden Research, Inc. laid off 30% of their<br> Linden employees yesterday. Taco Rubio was one of those let go, and he<br> posted a letter so everybody could see it. No doubt, those who are still<br> Lindens will get it taken down as soon as they can. For this reason, I wanted<br> to post his letter here, so it can be seen as he wanted.</p> <pre><code> Originally Posted by Taco Rubio I am really sad about this. I sat for a couple years on an email address, and today SL officially died to me, so I used it. I wrote to the email address you use as a Linden when you leave LL. I talked a bit to Cristiano, and he encouraged me to post this, so I'm going to. here is what I wrote to that address The subject line was "so long, and thanks for all the shit". Hello, and goodbye, As you know, we've had a major restructuring this week. By that I mean the new CFO has fired* a bunch of people so that the shareholders (I will not capitalize that word) can make more money off our blood, sweat, and tears; their ball of confusion is a higher priority than ours. for the tl;dnr crowd, save your time, I'm simply saying management has been fucked, is fucked, and will always be fucked, because they don't understand the product and will never care about the people who make it. For those who like to read, have fun! Sadly, I am among those cut for the greater good - which I think makes me not the greater good. I would like to thank you all for these glorious 6 years, except I'm far too pissed off to do so. Instead, for my departure letter, I'd like to single out some gentlemen who's particularly poor leadership caused this in the first place. Here come some shoutouts! *Philip - I was super-sad(tm) when you couldn't get your head around what you tried to create, much less take any responsibility for it. . *Mark - You are a penis. And not in a good way. *Bob - The balls you have to do this cut after having a job in which you have never actually interacted with your product are enormous, and I admire that. There is a special room in hell for you, and if I'm lucky, the devil will let me off my "mow this lawn, with your teeth" job for a few hours every day to punch you in the face, while I get lemonade. If I'm unlucky, I will get no lemonade. As the wheels on the bus failed to go round and round, I can only shake my head and think "told you so". From the early days through the lunch menu and on into the future**, we have constantly provided a substandard product with no accountability for it, despite the best efforts of many of the people that got shit-canned today. I'd be able to make a strong argument that the people laid off today were the people who kept the fucking waterlogged boat afloat, and that the executives named above are the entire problem. Time will tell. For those of you who still have a job, I have nothing but admiration and a strong advisement that you GTFO. This isnt a huggy situation, this is a corporate situation in which your work is judged by managers who don't understand wtf you're even doing, and sadly, don't care. Nothing you ever paid me for was worth this, you jerkoffs. Since this won't go to the people you actually liquidated/fired/terminated/torleyated/whatever I will be posting this elsewhere so that everybody will have the opportunity to understand what you just did. I'd like to close with this wonderful quote, which I think sums up how we all feel: "I've labored long and hard for bread, For honor, and for riches, But on my corns too long you've tread, You fine-haired sons of bitches." - Black Bart, 1877 Love, Peace, and Hair Grease, Taco Fucking Rubio AKA _Linden, AKA KGB Linden AKA Fink Linden, AKA Spy Linden AKA CIA Linden *Firing people sucks. Make other people do it. **There is no future. You blew it. P.S. if you are reading this, you still have a job there. I understand that you probably have survivor's guilt - "why do i have my job when so many good people don't!?!" - please do not dwell on that and understand that you have your job because some shitty manager who is trying to save his/her job made some decisions on how to best do that, so that a director trying to save his/her job could say "look i'm shaking things up". Don't dwell, just let today be a wake up call to you as a reminder that this is a company, not a family, and the rich eat themselves. You aren't rich, start looking for a new job now, you will be next. Love you guys! </code></pre> <p>So, is it time to implement the exit strategy? This has been a topic of conversation<br> for the last year, but I've always said no. Yes, I have an exit strategy, but I've not felt the need<br> to seriously consider an exit until today. Yes, the Lindens have spelled out their destruction for<br> quite some time now, but not as clearly or loudly as this. It's clearly financial, regardless what<br> their so-called leader says in PR documents. Oh, I'll be in SL&trade; until they unplug the<br> servers, but I'm already setting up elsewhere as well. We'll see what happens, and everybody<br> has to answer the question about their exit strategy on their own terms.</p> <p>Remember, no matter if you are in SL or Inworldz, <strong>it's all in the wrist..</strong></p> ~ELQ~ http://baddabean.com/trackback.php?id=20100610002255814 HUDbert glitch fixed! Back online! http://baddabean.com/article.php?story=20100608012258193 http://baddabean.com/article.php?story=20100608012258193 Tue, 08 Jun 2010 01:22:58 -0700 http://baddabean.com/article.php?story=20100608012258193#comments It's all in the wrist.. <p>There was a glitch in HUDbert that kept some people from using it, it was on the server side though, so all HUDberts work now. Sorry about the confusion, and please give it another go!</p> <p>H&amp;S Originals and Baddabean.com introduce HUDbert! HUDbert&trade; is a<br> web-integrated HUD for use in the virtual world Second Life&reg;, which attaches<br> horizontally across the bottom (or top) of the wearer's screen. Use HUDbert to find a job,<br> find the right employee, advertise an event, or get great deals on inworld items. Click the<br> listing being displayed and receive the slurl or url that is attached to the listing. Best of all<br> it's FREE!</p> <p>The Second Life&reg; grid is a big place. Seems like it should be small doesn't it?<br> Still, there are tools which can help you find what you need. Search is okay, but you<br> probably aren't going to find a job by searching on 'jobs' - and don't even think about<br> searching on 'Sale' LOL.</p> <p>HUDbert&trade; takes care of his small part. If you are looking for a job, HUDbert can<br> help you do that. If you just like to happen on a great deal, sale, or new release,<br> HUDbert can help make that happen. Looking for something new or fun to do tonight?<br> Keep an eye on HUDbert, he'll probably have some suggestions</p> <p>HUDbert's in beta for just about another week, but loads of people are using it right now!<br> Lots of features are being added at the moment, but there's lots already to explore:<br> <ul><li>The HUD is free, so is a web account if you want to put listings on it.</li> <li>Listings are only L&#36;20!</li> <li>Account Mangement dashboard</li> <li>Specials for Lists, Groups, and Membership offers</li> <li>Location-based Specials - Check in at your location with HUDbert!</li> <li>Free Distribution vendor - make sure your specials get seen by your customers!</li> <li>Filterable - Full Control Panel by clicking the HUDbert icon on the left of the HUD</li> <li>No need to chase down a kiosk - pay HUDbert directly while wearing it!</li> <li>Full web access</li> <li>LOTS MORE - coming soon: Bulk Listings - Save by buying listings in advance!</li> </ul></p> <p>Get your free HUDbert today! Check out HUDbert and HUDbert products at<br> <a href="https://www.xstreetsl.com/modules.php?lang=en-US&amp;name=Marketplace&amp;SearchKeyword=HUDbert&amp;searchSubmitImage.x=0&amp;searchSubmitImage.y=0&amp;SearchLocale=0&amp;SearchPriceMin=&amp;SearchPriceMax=&amp;SearchRatingMin=&amp;SearchRatingMax=&amp;sort=&amp;dir=asc">XStreetSL</a>!<br> Check out the HUDbert website at <a href="http://hudbert.baddabean.com">http://hudbert.baddabean.com</a><br> or click the HUDbert logo on the top right of the baddabean.com home page!</p> <p>Remember, <strong>it's all in the wrist..</strong></p> ~ELQ~ http://baddabean.com/trackback.php?id=20100608012258193 Live Music at Market Day: Victorian Seaside http://baddabean.com/article.php?story=20100528064203524 http://baddabean.com/article.php?story=20100528064203524 Fri, 28 May 2010 06:42:03 -0700 http://baddabean.com/article.php?story=20100528064203524#comments It's all in the wrist.. <p>Rock Doghouse kicked ass yesterday evening! Nuff said! Tonight we've got Mack Humbridge performing live at Market Day: Victorian Seaside!</p> <p>If you don't know Mack, here's a bit from his bio:</p> <p>Mack Humbridge comes to us from the Central USA using several different<br> guitars both acoustic and electric to perform a live blend of classic, modern and bluesy<br> rock. Mack performs instrumentals that sing to your soul. His own originals are energizing,<br> uplifiting and amazingly well written. Mack's shows are full of guitar rock that will get<br> your feet tapping, your body moving and your blood pumping.</p> <p>Yes, I'm working on another tutorial, as well as another article. AND I've just begun<br> transferring some products over to <a href="http://inworldz.com">Inworldz</a>, and I'm<br> gonna have to rescript a lot of stuff, and there's really gotta be an answer soon to that JIRA about<br> adding 15 more hours to a standard RL day.</p> <p>I'm around - say hi if you see me. Until then, remember, <strong>it's all in the wrist..</strong></p> ~ELQ~ http://baddabean.com/trackback.php?id=20100528064203524 Rock Doghouse LIVE at Market Day! http://baddabean.com/article.php?story=20100527084604242 http://baddabean.com/article.php?story=20100527084604242 Thu, 27 May 2010 08:46:04 -0700 http://baddabean.com/article.php?story=20100527084604242#comments It's all in the wrist.. <p>Rock Doghouse will be performing live this evening at Market Day: Victorian Seaside in the lovely sim of Rosenthal in Second Life&reg;.</p> <p>Rock Doghouse began his musical career at a very young age as a third<br> generation performer, rapidly achieving major recognition regionally. At 17 he began<br> attending the prestigious Berklee College of Music in Boston on full scholarship.<br> While at Berklee he began his formal training as an arranger, composer and songwriter<br> under such luminaries as Robert Freeman (Billy Joel), Phil Wilson (Miles Davis),<br> John Aldrich, Gary Burton, Pat Patterson and many others.Aftrwards, Rock honed his<br> craft through extensive writing and performing. He spent many years exploring the world and<br> developing his sense of style and unique view of relationships between people, things, events -<br> with multiple viewpoints most people cannot even imagine.</p> <p>Beginning in the early 90s he went on to perform in bands with or open for many<br> of the top names in Country music including Travis Tritt, Neil McCoy, Lorrie Morgan,<br> Daryl Singletary, Merle Haggard, Ricochet, Jeff Carson, Alabama, 38 Special,<br> Bad Company David Kersh, Lynyrd Skynyrd, Sawyer brown, Keith Urban, Tim Briggs<br> (Alabama), many others.</p> <p>Rock continues today to perform and write prolifically, also working now as producer,<br> lead engineer, arranger, writer and studio owner at a private invitation only studio where he<br> confidentially works with some of the best emerging and known artists today. He performs<br> live on stage usually 3-6 times per week in his 1st life. He enters Second Life ready to extend<br> these performance with many first time and exclusive performances of acoustic songs, his<br> own and others, ready to share the gift of songs and story.</p> <p>Be sure to come by, there's nearly 30 quality vendors, beautiful scenery, and<br> Rock Doghouse! We'll see you there!<br> Until then, remember - <strong>it's all in the wrist..</strong></p> ~ELQ~ http://baddabean.com/trackback.php?id=20100527084604242 Gregg Huett Live at Market Day! http://baddabean.com/article.php?story=20100526064247992 http://baddabean.com/article.php?story=20100526064247992 Wed, 26 May 2010 06:42:47 -0700 http://baddabean.com/article.php?story=20100526064247992#comments It's all in the wrist.. <p>Last night's performance from Kevin M Thomas was awesome. He really shows versatitility<br> and great style. Tonight, we showcase Gregg Huett in live performance on the stage<br> at Market Day: Victorian Seaside, and hope to see you there!</p> <p>If you're not familiar with Gregg, this is what his bio says about him:</p> <p>Gregg Huet has been a musician most of his life and has played just about every<br> genre you can think of. Born near Philadelphia, Pennsylvania in the 60's it was clearly<br> natural for a young guitarist to cover famous local bands. Probably the most prominent<br> band to influence Gregg's style is the infamous Rock Band, Boston.</p> <p>His Second Life setlist includes classic rock hits as well as some alternative rock hits.<br> Easy listening, power ballads and love songs can all be heard at Gregg's concerts all<br> over SL. His crystal clear voice has been described as an honest, sincere voice that<br> captures an audience.</p> <p>Gregg has been performing regular shows at various venues in SL since<br> April 2008 and has become quite popular with his fanbase as well as the patrons<br> to those venues.</p> <p>More information on Gregg can be found at <a href="http://www.myspace.com/gregghuet">http://www.myspace.com/gregghuet</a>.</p> See you there! Until then, remember, <strong>it's all in the wrist..</strong><br> ~ELQ~ http://baddabean.com/trackback.php?id=20100526064247992 Market Day: Victorian Seaside http://baddabean.com/article.php?story=20100525042358939 http://baddabean.com/article.php?story=20100525042358939 Tue, 25 May 2010 04:23:58 -0700 http://baddabean.com/article.php?story=20100525042358939#comments It's all in the wrist.. <p>Market Day: Victorian Seaside begins today! We've got great vendors and live<br> concerts all week on a lovely victorian seaside sim! We've all been busy putting<br> things together, I know H&amp;S Originals has some brand new releases out, not to mention the beta release of HUDbert.</p> <p>Every day from 6pm to 7pm SLT we've got live music! Today it's KevinMThomas Carpool! If<br> you've never heard Kevin M Thomas, here's a little bit about him:</p> <p>Kevin M. Thomas, an acoustic rock artist influenced by Sting, Steve Perry and Bruce Dickinson, is <br> from Washington, D.C. Formerly signed to indie label Red Galaxy Records from Hollywood, <br> California. His music has been featured in 2 MTV/Spike TV Productions entitled, "Tripped Out" and <br> "10 Things Every Guy Should Experience". His music reached international audiences in the popular<br> British television series, "Distant Shores" and the Brazilian made for television movie<br> "Studio 54" and many more!</p> <p>We've got shopping, scenery, music, and Kevin M Thomas at Market Day: Victorian Seaside!<br> I'll look forward to seeing you there!</p> <p>And of course, <strong>it's all in the wrist..</strong></p> ~ELQ~ http://baddabean.com/trackback.php?id=20100525042358939 Scripting for Viewer Compatibility http://baddabean.com/article.php?story=20100523123309262 http://baddabean.com/article.php?story=20100523123309262 Sun, 23 May 2010 12:33:09 -0700 http://baddabean.com/article.php?story=20100523123309262#comments It's all in the wrist.. <p>There was a question on the Scripters Email list last week about how<br> to tell the viewers apart.Yeah, there were some suggestions of using php,<br> getting header information with a server.I think the best and most reliable way<br> is to ask the user. So that's exactly what we're going to do!</p> <p>Viewers 1.23 and 2 are very different in more than just the interface.<br> Shared Media, use of server-side technologies, scripting methods, are all<br> part of it. However, serving a webpage is not one of these, only the method<br> of delivery.</p> <p>In today's tutorial we'll ask the user what viewer they are using, and based<br> on that answer, we'll serve a webpage using the data uri rather than contacting<br> an external server. Both viewers are capable of this, they simply each have a<br> different delivery method ;o)</p> <p>First, the code:</p> <pre><code> key pg_req; key toucher; integer channel; integer handle; string myurl; integer viewer; string strReplace(string str, string search, string replace) { return llDumpList2String(llParseStringKeepNulls((str = "") + str, &#91;search&#93;, &#91;&#93;), replace); } old(string myurl) { llLoadURL(toucher,"Please open page.","data:text/html,&lt;form method='POST' action='"+myurl+ "'&gt;Please enter your avatar name:&lt;br&gt;&lt;input type='text' name='name'&gt;&lt;br&gt;"+ "&lt;input type='submit' name='submit' value='Say'&gt;&lt;/form&gt;"); } new(string myurl) { string html = "data:text/html,&lt;form method='POST' action='"+myurl+ "'&gt;Please enter your avatar name:&lt;br&gt;&lt;input type='text' name='name'&gt;&lt;br&gt;"+ "&lt;input type='submit' name='submit' value='Say'&gt;&lt;/form&gt;"; llSetPrimMediaParams(3,&#91;PRIM_MEDIA_AUTO_PLAY,TRUE, PRIM_MEDIA_CURRENT_URL,html, PRIM_MEDIA_HOME_URL,html, PRIM_MEDIA_HEIGHT_PIXELS,512, PRIM_MEDIA_WIDTH_PIXELS,512&#93;); } default { state_entry() { llClearPrimMedia(3); //starting with a clean slate llRequestURL(); } touch_start(integer total_number) { toucher=llDetectedKey(0); channel=(integer)llGetGMTclock()*-2; handle=llListen(channel,"",toucher,""); llDialog(toucher,"Please tell us which viewer you are using.",&#91;"Viewer 2","Viewer 1.23","Cancel"&#93;,channel); } listen(integer ch,string name,key id,string msg) { if(ch==channel){ if(msg=="Viewer 2"){ llListenRemove(handle); viewer=2; llSetPrimitiveParams(&#91;PRIM_FULLBRIGHT,3,TRUE&#93;); new(myurl); } else if(msg=="Viewer 1.23"){ llListenRemove(handle); viewer=1; old(myurl); } else if(msg=="Cancel"){ llListenRemove(handle); } } } http_request(key id, string method, string body) { if(method==URL_REQUEST_GRANTED){ myurl=body+"/"; } if(method=="POST"){ if(viewer==1){ llHTTPResponse(id,200,"Thanks! You may close your browser now, or you could get a"+ "real viewer at http://www.kirstensviewer.com/Downloads/Public%20Viewers/ !"); } else if(viewer==2){ llHTTPResponse(id,200,"Thanks for playing!"); llSleep(1.5); //no sense doing a response if they can't see it llSetPrimitiveParams(&#91;PRIM_FULLBRIGHT,3,FALSE&#93;); llClearPrimMedia(3); //always clean up your own mess } string name=strReplace(llGetSubString(body,llSubStringIndex(body,"=")+1,llSubStringIndex(body,"&amp;")-1),"+"," "); llOwnerSay(name); llResetScript(); //bah why not we aren't using the info later } } } </code></pre> <p>Ok, as you can see from the touch_start() event we're beginning our user's experience in the usual<br> way, with a llDialog. We'll use it to ask them which viewer they are using. as you can see in the listen()<br> we'll take the answer to that question and determine the path for our application to take.</p> <pre><code> touch_start(integer total_number) { toucher=llDetectedKey(0); channel=(integer)llGetGMTclock()*-2; handle=llListen(channel,"",toucher,""); llDialog(toucher,"Please tell us which viewer you are using.",&#91;"Viewer 2","Viewer 1.23","Cancel"&#93;,channel); } listen(integer ch,string name,key id,string msg) { if(ch==channel){ if(msg=="Viewer 2"){ llListenRemove(handle); viewer=2; llSetPrimitiveParams(&#91;PRIM_FULLBRIGHT,3,TRUE&#93;); new(myurl); } else if(msg=="Viewer 1.23"){ llListenRemove(handle); viewer=1; old(myurl); } else if(msg=="Cancel"){ llListenRemove(handle); } } } </code></pre> <p>Based on the user's answer, we'll set the variable 'viewer' to the proper integer and move to the<br> proper function for that viewer, passing our application's URL which was requested and received during state_entry().<br> <pre><code> old(string myurl) { llLoadURL(toucher,"Please open page.","data:text/html,&lt;form method='POST' action='"+myurl+ "'&gt;Please enter your avatar name:&lt;br&gt;&lt;input type='text' name='name'&gt;&lt;br&gt;"+ "&lt;input type='submit' name='submit' value='Say'&gt;&lt;/form&gt;"); } new(string myurl) { string html = "data:text/html,&lt;form method='POST' action='"+myurl+ "'&gt;Please enter your avatar name:&lt;br&gt;&lt;input type='text' name='name'&gt;&lt;br&gt;"+ "&lt;input type='submit' name='submit' value='Say'&gt;&lt;/form&gt;"; llSetPrimMediaParams(3,&#91;PRIM_MEDIA_AUTO_PLAY,TRUE, PRIM_MEDIA_CURRENT_URL,html, PRIM_MEDIA_HOME_URL,html, PRIM_MEDIA_HEIGHT_PIXELS,512, PRIM_MEDIA_WIDTH_PIXELS,512&#93;); } </code></pre> <p>Here, you see the functions. In old(), the llLoadURL() function is used to bring up the 1.23 viewer's<br> browser and serve a webpage directly from our script. No external server is used. This is accomplished<br> with the data: uri rather than http, and including the html inline. To be honest, old() will work with either<br> viewer, but shared media is more fun :oP</p> <p>In new(), the same html is used - and to be more efficient you could set this entire data: line to a variable<br> in the listen() event and pass it to the functions rather than put it in there twice. However, for this tut I wanted<br> to stress the use of it. In this function we use llSetPrimMediaParams() to serve our generated page on the prim<br> face rather than in the browser.</p> <p>As you can see from the html, the page is a simple form, in which the user will type their avatar name.<br> Or, the user could type anything they want, it really doesn't matter in this script, but in yours it will probably<br> make a big difference. Use whatever methods you like in your script to validate your user's input.</p> <pre><code> http_request(key id, string method, string body) { if(method==URL_REQUEST_GRANTED){ myurl=body+"/"; } if(method=="POST"){ if(viewer==1){ llHTTPResponse(id,200,"Thanks! You may close your browser now, or you could get a"+ "real viewer at http://www.kirstensviewer.com/Downloads/Public%20Viewers/ !"); } else if(viewer==2){ llHTTPResponse(id,200,"Thanks for playing!"); llSleep(1.5); //no sense doing a response if they can't see it llSetPrimitiveParams(&#91;PRIM_FULLBRIGHT,3,FALSE&#93;); llClearPrimMedia(3); //always clean up your own mess } string name=strReplace(llGetSubString(body,llSubStringIndex(body,"=")+1,llSubStringIndex(body,"&amp;")-1),"+"," "); llOwnerSay(name); llResetScript(); //bah why not we aren't using the info later } } </code></pre> <p>Here, we see the response to the user's input. Based on the original answer to the viewer question, we'll<br> respond to the input. For viewer 1.23, we'll llHTTPResponse a thank you with an offer to get a real viewer (LOL)<br> from <a href="http://www.kirstensviewer.com/Downloads/Public%20Viewers/">KirstenLee Cinquetti</a>, all in the browser.<br> For viewer 2, we'll llHTTPResponse a thank you, clear the media from the prim, and then for both<br> version of the client, our script will say the name of the user to the owner of the object.</p> <p>Not a real complicated application, but hopefully your wheels are starting to turn. With HTTP-In there's<br> some real inworld use for the data: uri and we've had options such as pointing a webform back to our script<br> for some time now. Things like on-the-fly webforms and user interfaces are key to many apps. The ability<br> to use your object face as a browser window helps your application along in that the user never has to<br> open their browser - yet another window to open. With viewer 2, they only interface with your object<br> application and that's always preferable, to them and to you.</p> <p>Until next time! <strong>Remember, it's all in the wrist..</strong></p> ~ELQ~ http://baddabean.com/trackback.php?id=20100523123309262