tag:blogger.com,1999:blog-20364376557364030242024-03-05T16:40:15.554-08:00Kittin NinetailsKittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-2036437655736403024.post-3649302786746545922016-11-17T13:24:00.000-08:002016-11-17T13:24:04.328-08:00More Updates ComingI've several more updates planned for my Second Life products. Today, I've been re-working the puddle in the Tinkler. There's a feature that's been requested many times that I'm adding, but it's making me re-think how the whole clean-up system works. It's cumbersome and has far too many permission requests.<br />
<br />
And finally, I figured out how to make one for men! I'm not sure how popular that'll be, but I thought I'd try it out.<br />
<br />
The bucket needs work. I still have to fix the 'hover height' by allowing the sitter to adjust their height. I'll likely purchase AVsitter and get rid of the antiquated SitTarget solution I have.<br />
<br />
RLVibe needs a lot of work and I'm wondering whether or not I should bother keeping it. Every since Windows 8, there have been problems installing the USB driver portion of it. I've also found the menus in the toys are intrusive if you don't have RLVibe. I'm not sure yet what I'll do. I don't know if many people use it.<br />
<br />
I've a new collar project in mind. It'll be kind of similar to iControl, but not meant to compete with them. I'm hoping to make it a part of a much larger project.<br />
<br />
No more poseballs! If I'm buying AVsitter, I will be updating everything to get rid of the poseballs. I've a love/hate relationship with them anyway.<br />
<br />Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-38452090779995998212016-10-25T12:43:00.001-07:002016-10-25T12:43:50.284-07:00Tempus Fugit!Wow, how time flies. It's been forever since I've updated a post here. What have I been up to?<br />
<br />
I spent some time away from Second Life, playing <a href="http://elderscrollsonline.com/" target="_blank">Elder Scrolls Online</a>. I've been keeping my products up to date, but haven't really created anything new recently. I'm hoping to have a new internet service provider soon, so I won't have to suffer with data caps anymore.<br />
<br />
I've recently converted to mesh with the <a href="https://eveavatar.wordpress.com/" target="_blank">EVE avatar</a>. I haven't tried the others, but I really like EVE so far. There are a few oddnesses (is that a word? it is now!) but they may be because I'm using my own shape, not the one provided.<br />
<br />
I'm back to working in <a href="https://www.blender.org/" target="_blank">Blender</a> and <a href="http://blog.machinimatrix.org/avastar/" target="_blank">Avatstar</a>. I've a bit of re-learning to do, since I've been away from it for a bit. I've a number of things in the works there, but I need to understand more about <a href="http://wiki.secondlife.com/wiki/Mesh/Rigging_Fitted_Mesh" target="_blank">fitted mesh</a> and the SL standard shapes vs. the various creators.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-45127114396881067672014-07-02T13:01:00.000-07:002014-07-02T16:01:54.159-07:00LSLEditor on a Mac!<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRzKim_5q-dxU9XZWDanMcLb0_Ae_3MLJyq6XqS5EnPHdiyxowYDiQRa5FbYL1IpxlrePPg1Et0WVwTaxWwasjaazqQx6F9UtQF1YVhdrroC55dx8UtHrtjoSbcsk4emtZEeYuoG6Ty4s/s1600/Screen+Shot+2014-07-02+at+12.49.57+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRzKim_5q-dxU9XZWDanMcLb0_Ae_3MLJyq6XqS5EnPHdiyxowYDiQRa5FbYL1IpxlrePPg1Et0WVwTaxWwasjaazqQx6F9UtQF1YVhdrroC55dx8UtHrtjoSbcsk4emtZEeYuoG6Ty4s/s1600/Screen+Shot+2014-07-02+at+12.49.57+PM.png" height="286" width="400" /></a></div>
Finally! I've managed to get <a href="http://sourceforge.net/projects/lsleditor/" target="_blank">LSLEditor</a> to run properly on a Mac!<br />
<br />
By using <a href="http://wineskin.urgesoftware.com/" target="_blank">Wineskin Winery</a> with the wrapper Wineskin-2.6.0 and the engine WS9Wine1.7.21, I was able to make this work. I told it not to use Mono, but instead installed .NET 2.0 with Winetricks.<br />
<br />
And it's working! So far, the only odd bit I've found is that when autocomplete is turned on, as soon as you type the first l in llSay(), the app steals your focus away and you have to click to regain your focus and continue typing. That's rapidly going to become annoying. But still, it works! The other big drawback is that LSLEditor.app is 500mb. That's a lot of fat.<br />
<br />
After that, I installed the command-line version of <a href="http://www.winehq.org/" target="_blank">Wine</a> with <a href="http://www.macports.org/" target="_blank">Mac Ports</a>. Some people prefer <a href="http://brew.sh/" target="_blank">Homebrew</a>, but I don't know if it really matters as long as the tool does the job you're after. When it was finally done, I had Wine 1.6.4 installed. I then installed winetricks with ports, and added dotnet20. I did not install Mono.<br />
<br />
From there, I could run: wine LSLEditor.exe<br />
<br />
I had to run it twice, but it ran just fine after that.<br />
<br />
I should also point out I'm on OSX 10.9.3 and before I'd always tried on 10.8.x, but I don't know if that has anything to do with it. And this version is 274mb, but it doesn't have to be the only Windows app in the Wine installation.<br />
<br />
<a href="http://winebottler.kronenberg.org/" target="_blank">WineBottler</a> does a similar trick, reusing Wine configurations, including the .wine one I just created in my home directory. And it has the added benefit of letting you run .EXE files directly from Spotlight. In my experience, it's also done a great job of extracting the correct icon for the app. It's my favorite setup, but can be difficult to configure. Wineskin's configuration tools are a lot clearer to understand.<br />
<br />
=^.^=<br />
<br />Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com1tag:blogger.com,1999:blog-2036437655736403024.post-66441235078989054282013-12-16T10:43:00.002-08:002013-12-16T10:43:35.855-08:00Need to learn Blender...I've decided I need to spend some time learning Blender in order to make this chair the way I want. I was hoping I'd have it done by the end of this month, but I don't think so. I'd considered using a product I sort of already know, but it's an off-the-wall 3D editor that if I get stuck with, I'm not going to find any help.<br />
<br />
I think I can put together the wearable RLVibe script and make a product by the end of the month even while continuing to learn Blender.<br />
<br />Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-90645923304050843782013-11-25T10:45:00.000-08:002013-11-25T10:45:00.828-08:00Supporting Tantra Total Woman HUD 3.0<br />
Hiya, just a quick announcement to say that both my Tinkler and my Female Pheromone Detector now support the Tantra Total Woman HUD, version 3.0 as well as Mama Allpa. My Early Pregnancy Test does, also, but because the one Tex makes with his Tantra HUD is much nicer, I'm not going to put the Tantra logo onto it unless I improve the product.<div>
<br /></div>
Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-83824891329988118202013-08-22T13:53:00.002-07:002013-08-22T13:54:33.668-07:00Roleplaying - Empathy and Viewpoint<h4>
Empathy</h4>
When you're roleplaying, you're assuming a role and acting it out. Those of us who are <a href="http://en.wikipedia.org/wiki/International_Thespian_Society" target="_blank">Thespians</a> identify with this right away. We're playing a part, and our character may or may not be similar to the person sitting at the keyboard. But these typists must identify with the character, or we won't be believable characters. My own character has aspects to her that are straight out of my Real Life. But there are many things about her that are purely fantasy. Some are my own, some are the fantasies of others that I cater to.<br />
<br />
So what about empathy? Empathy is doing just that. It's understanding your own avatar and how it will react to given situations -- which may or may not be how you would react if it was you in a Real Life situation. It also means identifying with other people you are role-playing with. If you can't "click" somehow, then roleplaying a scene is going to be difficult if not just impossible.<br />
<br />
Here's an example of a role-play session that totally failed to get off the ground for me. As you should probably know by now, <a href="http://kittin-ninetails.blogspot.com/2011/12/whats-in-name.html" target="_blank">Kittin</a> is neko. Neko is the Japanese word for cat. In Second Life, and in Cosplay, nekos have become sort of half-human/half-cat creatures who live in derelict urban areas. Whether we're post apocalyptic or just futuristic evolutions of the feral cat, I'm never quite sure. <a href="http://en.wikipedia.org/wiki/Cat_(Red_Dwarf)" target="_blank">The Cat from Red Dwarf</a> would fit this category. Myself, I'm a product of genetic engineering out of the basement of Gina Corporation in Dark Alley. Never mind the fact my avatar is older than the Dark Alley sim, that's just messy details. ;) So, given that, this is how this session started:<br />
<br />
(This isn't the exact text, I'm paraphrasing from what I remember)<br />
<br />
<b>Anonymous</b>: Last month you were issued a traffic citation for a moving violation. Rather than pay the fine, you elected to receive corporal punishment.<br />
<b>Kittin</b>: Um...? Excuse me? I don't understand. I think there must be some mistake. I don't drive.<br />
<b>Anonymous</b>: There is no mistake. You were supposed to report to my office ten minutes ago.<br />
<b>Kittin</b>: No, really. I think there's some mistake. I'm a cat. I don't drive.<br />
<br />
And that was it... It died there. Either this other RP'er didn't know how to address this and clearly hadn't read my profile before starting or the RP wasn't going in a direction they wanted. Either way, something didn't "click" if you see what I mean.<br />
<br />
What should have happened? I don't know. I can think of several possibilities. He -- I assume it was a he, this was with the Sin Tracker messaging system, so I've no idea who it was -- could have continued to insist I show up at some landmark. Or, he could have teleported directly to me and kidnapped me and I would wake up in an interrogation cell or something. There are lots of ways this could have gone.<br />
<br />
<h4>
Viewpoint</h4>
There's something about this scene that irks me. Can you see what it is? I walk into a crowded room and it's mostly silent. There are avatars standing near each other, looking off in odd directions and no one except one couple is saying anything in local chat:<br />
<br />
<b>Boy</b>: *smiles at u*<br />
<b>Girl</b> smiles back and waves hello to you, feeling her heart race at the sight of you.<br />
<b>Boy</b>: *hugs u*<br />
<b>Girl</b> wraps my arms around his neck, turning her face up to kiss you warmly, "missed you."<br />
<br />
Aiigh!!! Ok, I can't even type any more of that!<br />
<br />
Let me back up. I'm a snob. I freely admit it. I love the English language. I've nothing against other languages; if I could speak another, I would love it, too. And I know this comes from my personal dream of being a published author someday.<br />
<br />
So what is it that's irritating me about the above? Is it the fact that 'u' is a letter, not a pronoun? Is it that Boy hasn't learned how to emote? Is it that Girl doesn't know a sentence begins with a capital letter, even in dialog? Those all bug me, yes, but it's not what makes me face-palm.<br />
<br />
Two things drive me nuts more than anything else. First, the use of 'you'. There are other people here! Which 'you' are they talking about? Every reader of these sentences should identify with being addressed as 'you' because that's what makes it an intimate conversation. But it isn't 'me' either of them are talking to -- they're talking to each other. In group context, they should be saying him/her and maybe interjecting their names in there once in awhile for clarification.<br />
<br />
The second thing that's driving me absolutely batty in this is the sudden omniscients of knowing what her heart is doing? How am I supposed to know that? I don't have a finger on her pulse, I don't have a tricorder from Star Trek, and I'm not in her head.<br />
<br />
When you're role-playing, you're writing. You're participating in the telling of a story. And while it's good to know what's going on inside your character's head, don't just blurt it out. It's the old rule of "Show, don't tell!" How can she demonstrate that her heart rate increased at the sight of him? One thing she could do is a sharp intake of breath, her hand to her cheek which flushes with pink. Get some empathy in there! What does it really feel like? Now express that in description.<br />
<br />
It's hard. I'll be the first to admit that. It takes practice and I don't presume to be an expert and flawless with it. But I'm aware of it. It reads better. It's more enjoyable for the reader. At the same time, you have to balance it with how long it takes you to write that sentence. No one wants to wait twenty minutes while you compose. The more you try, however, the better you'll read and the more fun you'll be to play with. And I hope you'll enjoy it more as well.<br />
<br />Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com1tag:blogger.com,1999:blog-2036437655736403024.post-25177335299080519892013-08-05T13:54:00.000-07:002013-08-05T13:54:44.927-07:00Roleplaying - Some Basics<b id="docs-internal-guid-7e0c05a8-503b-e0a4-b90e-7898a1b9b103"></b><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-7e0c05a8-503b-e0a4-b90e-7898a1b9b103"><span style="background-color: white; color: #181818; font-family: Georgia; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">“Opinions are like assholes; everyone's got one.” </span></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-indent: 36pt;">
<b id="docs-internal-guid-7e0c05a8-503b-e0a4-b90e-7898a1b9b103"><span style="background-color: white; color: #181818; font-family: Georgia; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">-P. T. Barnum. </span></b></div>
<b id="docs-internal-guid-7e0c05a8-503b-e0a4-b90e-7898a1b9b103"><br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">I wanted to write a couple of blog entries on roleplaying. And these articles are my opinion. Everyone has their opinions on the right and wrong ways to do it. So, what makes me an expert? I’ve been roleplaying for as long as I can remember. Starting with Dungeons & Dragons in my pre-teens, MUDs in their heyday in the 90’s, various MMOs (Everquest, Anarchy Online, Neverwinter Nights), and Second Life. I’ve seen most styles in my 25 years or so on the ‘Net.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><h4>
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">What’s Your Type?</span></h4>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">There are a few different types of roleplayers out there. For the most part, I’ve only seen three major categories.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><h4>
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Mmmm...</span></h4>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">We’ve all run into them. The Mmmm’ers. The masters of monosyllabic communication. If you’re lucky, you might get a “oh baby u so good”. I don’t know if they’re so busy with their other hand that typing is just too difficult for them, or what’s going on. I like to think I was never this bad, but I may have been. It’s my hope that they just don’t know and want to learn. Sadly, many don’t seem to improve over time.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><h4>
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Para-RP’er</span></h4>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">What on earth is a para-RP’er? Let’s break it down. We know what RP is. But what’s the definition of para?</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 3pt; margin-left: 15pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: white; color: #333333; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">• </span><a href="http://www.audioenglish.org/dictionary/para.htm#noun" style="text-decoration: none;"><span style="background-color: white; color: #ff6600; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">PARA</span><span style="background-color: white; color: blue; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: white; color: #7ebe00; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">(noun)</span></a></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 3pt; margin-left: 15pt; margin-top: 0pt;">
<span style="background-color: white; color: #333333; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;"> The noun PARA has 5 senses:</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 3pt; margin-left: 30pt; margin-top: 0pt;">
<span style="background-color: white; color: #333333; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">1. (obstetrics) the number of liveborn children a woman has delivered</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 3pt; margin-left: 30pt; margin-top: 0pt;">
<span style="background-color: white; color: #333333; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">2. 100 para equal 1 dinar in Yugoslavia</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 3pt; margin-left: 30pt; margin-top: 0pt;">
<span style="background-color: white; color: #333333; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">3. a soldier in the paratroops</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 3pt; margin-left: 30pt; margin-top: 0pt;">
<span style="background-color: white; color: #333333; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">4. an estuary in northern Brazil into which the Tocantins River flows</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 3pt; margin-left: 30pt; margin-top: 0pt;">
<span style="background-color: white; color: #333333; font-family: Verdana; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">5. port city in northern Brazil in the Amazon delta; main port and commercial center for the Amazon River basin</span></div>
<br /><span style="background-color: white; color: #333333; font-family: Arial; font-size: 13px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">I doubt they mean #1. #2 is highly unlikely. #3, hmm...maybe. Not #4 and certainly not #5.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Digging a little deeper, I found:</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Verdana, sans-serif; font-size: x-small;">As an English prefix, para-, may have any of these senses; it is also productive in the naming of occupational roles considered ancillary or subsidiary to roles requiring more training, or of a higher status, on such models as paramedical, and paraprofessional:, paralegal; paralibrarian; parapolice</span></span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Does a para-rp’er have more training than the rest of us? No, that’s not it either. What it means in this case is paragraph. These folks like a lot of text in their RP. They are a bit of an elitist group and I personally feel they go too far with this theme. Rather than typing something like:</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span><i>Kittin waves. “Hello! How are you?”</i></span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">a para-RP’er is more likely to type:</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><span class="Apple-tab-span" style="white-space: pre;"> </span><i>Kittin takes a sip from the cup of tea she had sitting on the table beside her. Her eyes move from the book and spy you. With a smile, she quickly puts down the cup and marks her place in the book with a finger, folding it and standing up. She smiles and offers a hug. “Hello! How are you?”</i></span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">While the second example is far more interesting to read and adds life to a scene, if the typist is a hunt’n’pecker, you may wait 5 minutes to see it. And since they start everything with an emote, you don’t always get that “Kittin is typing...” message. </span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">TIP:</span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"> If you’re using Firestorm, turn on the option to use : as your emote character. It has the advantages of being shorter to type (just ‘:’ instead of ‘/me’) and it will show the “Kittin is typing...” message. Firestorm also lets you do chat bubbles when typing, but not have to show the final message in the bubble. That way you can see people typing, but your screen doesn’t get cluttered with chat bubbles everywhere.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><h4>
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Everyone Else</span></h4>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">So that leaves the rest of us. I place myself in this category. I like to borrow a little from the Mmm’ers when appropriate. I also like to spend the time the para-RP’ers do. Mostly, I try to keep a balance between the two so that the dialog keeps going. A typical stream of text from me looks something like this:</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><i><span class="Apple-tab-span" style="white-space: pre;"> </span>Kittin looks up from her book and sees you.</i></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><i><span class="Apple-tab-span" style="white-space: pre;"> </span>Kittin: Hello! How are you?</i></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"><i><span class="Apple-tab-span" style="white-space: pre;"> </span>Kittin marks her place and puts her book down, standing and offering you a hug.</i></span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">I’ve found this style to be more interactive. The drawbacks are you sometimes step on another’s toes if you dont’ strictly follow the exchange of you say something / they say something. Overall, I think it’s worth it because no one likes to think they’re being ignored.</span></div>
<br /><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;"></span><span style="font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">In my next article, I’m going to talk about Empathy and Viewpoint.</span></b>Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com2tag:blogger.com,1999:blog-2036437655736403024.post-45566730465745926592013-02-09T22:39:00.001-08:002013-02-09T22:39:35.417-08:00Writing LSL in Emacs<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzL_AeygnZamS7ur2O03nJzMwhIpWXjmf5YqU3N91y-Ap4TmfqYMHJKf_z_kyQfU0xXfQRLAq9omTBRdBA97ybNzcHYRCRmUMCBMnAh5_M_sUSxT7ZSDf-8O3rY0g-eqVm6HKcadZVTio/s1600/Screen+Shot+2013-02-09+at+10.26.33+PM.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzL_AeygnZamS7ur2O03nJzMwhIpWXjmf5YqU3N91y-Ap4TmfqYMHJKf_z_kyQfU0xXfQRLAq9omTBRdBA97ybNzcHYRCRmUMCBMnAh5_M_sUSxT7ZSDf-8O3rY0g-eqVm6HKcadZVTio/s320/Screen+Shot+2013-02-09+at+10.26.33+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">LSL Editing in Emacs with ECB and lslint</td></tr>
</tbody></table>
<div style="text-align: center;">
Recently, I've moved from working mostly in Windows to being on a Mac. I'm mostly enjoying it, but I miss my favorite LSL editor, aptly called LSLEditor.</div>
<br />
The problem is LSLEditor is written in C# and it uses several things that don't play nice in Wine, so it just won't work on my Mac.<br />
<br />
LSLPlus is dead, and LSLForge appears to be continuing the effort. But, I don't like Eclipse.<br />
<br />
There's a VI mode for LSL. And a lsl-mode.el that's woefully out of date on the Second Life wiki.<br />
<br />
And then there's Emacs, which most of the time I shy away from. Yet, for some reason, I fell in love with CEDET and ECB. The screenshot is my effort to get something similar to a working environment in UNIX, specifically Mac OSX. But this also works fine in any Linux environment or Cygwin.<br />
<br />
I can't debug like I could with LSLEditor. And because of that, I may give this up and instead see how hard it would be to port LSLEditor to Java. But I'm pretty happy with what I see here so far.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com2tag:blogger.com,1999:blog-2036437655736403024.post-31728496335225511972013-01-15T11:37:00.001-08:002013-01-15T11:37:52.341-08:00Calamari - yum!<div class="separator" style="clear: both; text-align: center;">
<a href="http://upload.wikimedia.org/wikipedia/en/b/b7/Squid-cache_logo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://upload.wikimedia.org/wikipedia/en/b/b7/Squid-cache_logo.jpg" /></a></div>
For years, I've been using <a href="http://www.nsl.tuis.ac.jp/xoops/modules/xpwiki/?sl_proxy%20%28E%29&ml_lang=en" target="_blank">sl_proxy</a>. But lately, it doesn't work so great with Third Party Viewers. I've been forced to not only use <a href="http://www.firestormviewer.org/" target="_blank">Firestorm</a>, but have to compile my own special version to force Firestorm to think I'm on the main grid rather than an OpenSim grid.<br />
<br />
Now, I like Firestorm, but I don't like being forced to use any particular viewer because of my <a href="http://www.verizonwireless.com/" target="_blank">lame ISP</a>.<br />
<br />
Why do I use sl_proxy? Because of the texture cache. I have limited bandwidth and slower network speeds than most people. Since textures don't change, I want to be able to keep them locally. If I can do that, then I can load them quickly if I revisit a place I've been to before.<br />
<br />
The other day, I was browsing around and came across <a href="http://wiki.phoenixviewer.com/squid_proxy_cache" target="_blank">this article</a> and decided to try it out. So far, it's working great! And it seems much faster than sl_proxy. The big test comes with Mesh, tho. I have had nothing but trouble trying to see mesh with sl_proxy. I can see it fine when I connect directly.<br />
<br />
RealLife's been too busy for me to really test it yet. So, I'll update this post once I have a chance to see someone decked out in a mesh avatar.<br />
<br />
=^.^=<br />
<br />Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-39615157429122277472012-12-27T15:12:00.003-08:002012-12-27T15:28:22.300-08:00Lumiya - My second favorite Second Life ViewerI can't believe I haven't blogged about this already. For about the last six months, I've been mostly living in SL with <a href="http://www.lumiyaviewer.com/" target="_blank">Lumiya</a>, an Android-based Third Party Viewer. I love this app. It has quite literally changed my Second Life because I can be there more often.<br />
<br />
Lumiya is written by my dear friend Alina Lyvette. She's done some real magic here, tackling that huge Second Life viewer and making it work on a smartphone. I mean, real magic. Lumiya runs on devices as old as my original Droid from Motorola. I just recently upgraded to a Droid RAZR M, and Lumiya purrs along, smooth as silk. <br />
<br />
<a href="http://nwn.blogs.com/nwn/2012/10/lumiya-.html" target="_blank">New World Notes</a> has a nice article on it, with some recent screenshots as well as a video clip so you can see how animations look. New World also links to <a href="http://modemworld.wordpress.com/2012/10/08/lumiya-2-3-1-avatars-animations-outfits-and-more/" target="_blank">Inara Pey's blog on Lumiya</a>.<br />
<br />
Lumiya doesn't do everything, yet. It doesn't show group invitations, for example. You can't voice with it. But, you can stream media. Alina is actively working on it, making it better with each release. And, it's just her! No one else works on it. Simply amazing.<br />
<br />
If you have an Android smartphone, and you like to be in SL when you're away from your normal viewer, get Lumiya. <br />
<br />
If you have a QR scanner, you can just scan this to get your copy! Otherwise, look for it on Google Play. If you need help with Lumiya, please email <a href="mailto:support@lumiyaviewer.com">support@lumiyaviewer.com</a> and join the Lumiya Support Group in SL.<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://v.aimg.us/system/assets/apps/android/001/146/666/qr_codes/qr_code.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="http://v.aimg.us/system/assets/apps/android/001/146/666/qr_codes/qr_code.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Lumiya Viewer on Google Play</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com7tag:blogger.com,1999:blog-2036437655736403024.post-70029232345323940752012-07-01T16:51:00.004-07:002012-07-08T13:14:14.828-07:00OpenCollar - Fixing the Longfall Cuffs - ChainsI love the Longfall 8cuff set. But any of us who've used them know that the chains won't work right. At least, not with LockGuard. It's unfortunate, but easy to fix if you're comfortable editing prims. They're no-transfer, so you have to do this yourself. But it's not that hard. Here's how:<br />
<br />
First, your cuffs must be unlocked. You can't edit them if they're locked. If you don't own the keys, you'll have to get permission to have them unlocked while you do this.<br />
<br />
Second, sit on a toy that will use them. Or, I suggest you at least turn off your AO so your avatar doesn't move around much as you try to click on prims.<br />
<br />
If you sit on a toy, you'll see that the right wrist works.<br />
<br />
Let's start with fixing the left wrist. Right click on the left wrist cuff and choose edit. It should get a haze around it and the Edit dialog box comes up. You might see one prim that's yellow. That's the root prim. We don't care which is the root prim in this case, so ignore it.<br />
<br />
Around the cuff are four little U shaped attachment points. We need to edit one of those. So, in the edit dialog box, choose the "Edit Linked" checkbox. Now, you can select individual pieces of your cuff. Select one of the attachment points now.<br />
<br />
Find the name under the "General" tab of the Edit dialog. We're looking for the one named "ollac". Next, choose the Contents tab. Inside you'll find a notecard called "Lockguard V2 Config". Open it and change the contents to be what I have below. You're after the ID lines, which I've bolded.<br />
<br />
<span style="background-color: white; font-family: 'Courier New', Courier, monospace;"><b>ID leftwrist</b></span><br />
<span style="background-color: white; font-family: 'Courier New', Courier, monospace;"><b>ID wrists</b></span><br />
<span style="background-color: white; font-family: 'Courier New', Courier, monospace;"><b>ID allfour</b></span><br />
<span style="background-color: white; font-family: 'Courier New', Courier, monospace;">texture 245ea72d-bc79-fee3-a802-8e73c0f09473</span><br />
<span style="background-color: white; font-family: 'Courier New', Courier, monospace;">size 0.07 0.07</span><br />
<span style="background-color: white; font-family: 'Courier New', Courier, monospace;">life 1</span><br />
<span style="background-color: white; font-family: 'Courier New', Courier, monospace;">gravity 0.3</span><br />
<br />
Congratulations! You've just fixed your left cuff! Now chains will properly attach to it. If you're sitting on a toy, cancel the animation and re-sit. You should now see chains.<br />
<br />
Now you need to do the same thing with the other cuffs. Even though the right one seems to be working, open it and edit it to have the lines I have below.<br />
<br />
<h4>
Right Wrist</h4>
Prim Name: rcuff<br />
<u>Notecard</u><br />
<br />
<b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">ID rightwrist</span></b><br />
<b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">ID wrists</span></b><br />
<b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">ID allfour</span></b><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">texture 245ea72d-bc79-fee3-a802-8e73c0f09473</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">size 0.07 0.07</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">life 1</span><br />
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">gravity 0.3</span><br />
<div>
<br /></div>
<h4>
Right Ankle</h4>
<div>
Prim name: rllc</div>
<div>
<u>Notecard</u></div>
<div>
<div>
<b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">ID rightankle</span></b></div>
<div>
<b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">ID ankles</span></b></div>
<div>
<b><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">ID allfour</span></b></div>
<div>
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">texture 245ea72d-bc79-fee3-a802-8e73c0f09473</span></div>
<div>
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">size 0.07 0.07</span></div>
<div>
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">life 0.5</span></div>
<div>
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">gravity 0.3</span></div>
</div>
<div>
<br /></div>
<br />
<h4>
Left Ankle:</h4>
Prim name: lllc<br />
<u>Notecard:</u><br />
<span style="font-family: 'Courier New', Courier, monospace;"><b>ID leftankle</b></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><b>ID allfour</b></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><b>ID ankles</b></span><br />
<span style="font-family: 'Courier New', Courier, monospace;">texture 245ea72d-bc79-fee3-a802-8e73c0f09473</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">size 0.07 0.07</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">life 0.5</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">gravity 0.3</span>Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com3tag:blogger.com,1999:blog-2036437655736403024.post-29335552627820012552012-06-13T09:17:00.002-07:002012-06-13T09:17:24.303-07:0032,767 views!I admit, this is a totally geeky thing for me to post, but my blog hit 32,767 views today. =)<br />
<br />
What's so great about that number? Well, back in the days of DOS, it was the highest number that you could store in an variable. I'm oversimplifying, but it's a nerdy thing. Now, you can store HUGE numbers. But, I've a certain fondness for this one.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-14285478206008979272012-02-09T13:29:00.000-08:002012-02-09T13:29:59.355-08:00MLPv2 Chains Plugin done!Yay! I finished it last night. Well, maybe "finished" is too strong of a word. I got all the planned features working and there doesn't appear to be any big problems with it. I'm sure there are bugs and I'll have to figure those out. It's a little more chatty than I like and I'm hoping to reduce that.<br />
<br />
Next, I'll be adding some <a href="http://wiki.secondlife.com/wiki/LSL_Protocol/RestrainedLoveAPI" target="_blank">RLV</a> support and sounds. The <a href="https://marketplace.secondlife.com/p/d-devPose-v23-BDSM-Set-A/73458" target="_blank">devPose</a> toys I've seen have a nice little chain sound when poses are changed. I made one for mine, too.<br />
<br />
I might be able to use the <a href="http://wiki.secondlife.com/wiki/MLPV2_RLV_Plugin" target="_blank">RLV plugin</a> for <a href="http://wiki.secondlife.com/wiki/MLPV2" target="_blank">MLPv2</a>, but I haven't really reviewed it yet. It looks pretty complete at a glance, so that's encouraging.<br />
<br />
After that, it's off to spend money on animations and build in a couple of toys. The first two will be a pair of suspension poles for one and probably a <a href="http://en.wikipedia.org/wiki/Saint_Andrew%27s_Cross_%28BDSM%29" target="_blank">St. Andrews Cross</a>. Once those are done and I decide how I'm going to handle updates, I'll put my Pocket Dungeon up for sale.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-43866660560863489662011-10-10T15:33:00.000-07:002011-10-10T15:33:02.485-07:00Prim Count Halver - COOL!My friend Sei and her pet Angel have released one of the coolest things I've seen in SL. It's a <a href="https://marketplace.secondlife.com/p/Prim-Count-Halver/2768660">Prim Count Halver</a> that does some really neat voodoo magic and can cut a linkset's prim count down by up to half.<br />
<br />
The script Sei sell is copy, no-trans. You simply drag a copy of the script into your build and *POOF* it's about 1/2 the prims on your land.<br />
<br />
Sounds too good to be true? Well, everything has a catch, unfortunately. Two things happen to the linkset that are unavoidable.<br />
<ul>
<li>The linkset becomes phantom. The root prim can be set non-phantom, but the rest of the build is phantom.</li>
<li>No scripts may exist in the object. None. Zip. Zero.</li>
</ul>
Another thing to note is that the prim savings you won't see in the object. The library chair, for example, reports it's 21 prims before and after. But, if you look at the land use of prims, that's the number that magically goes down.<br />
<br />
This script is perfect for those who are trying to save prim counts on static objects, such as walls or store fronts. Remember, the root prim can be set non-phantom, so it's possible to put an invisible solid box around whatever you've made to keep people from walking thru it.<br />
<br />Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-38541792892276536202011-10-04T17:08:00.000-07:002011-10-04T17:08:41.529-07:00Just some random thoughts<ul>
<li>I really need to move to some adult land. I'm working on some furniture that will use RLVibe and my little in-world place is rated Mature. It's ...unwise... to even think of demoing any products at my current in-world store. But it's so expensive! :(</li>
<li>Having a cold sucks! And I think I just might suffer from <a href="http://en.wikipedia.org/wiki/Seasonal_affective_disorder">SAD</a>. It's starting to rain again and I'm really, really dreading the upcoming weeks without sunshine.</li>
<li>I need to get back to work on RLVibe. I've kind of stalled because I've too many things I want to do and can't seem to focus on just one.</li>
<li>I can't wait for <a href="http://www.nanowrimo.org/">NaNoWriMo</a>. I'm also dreading it.</li>
<li>My other love, <a href="http://www.anarchy-online.com/">Anarchy Online</a>, seems to be dying. I logged in after being away for a bit and it was a ghost town. So sad...</li>
</ul>
Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-37540081337499524652011-09-09T14:33:00.000-07:002012-03-05T14:22:18.151-08:00RLV Scripting - Determine RLV version<b>Updated 9/15 - Thanks, Sei!</b><br />
<br />
As I start to work with LSL a bit more, specifically with RLV, I thought I might share some scripts. <br />
<br />
These first scripts will be for objects that are owned and worn by the avatar. Interacting with furniture requires a relay and a slightly different way of doing things.<br />
<br />
First thing, you should learn how to determine if RLV is present and enabled on the client. The quickest way for one avatar to ask another avatar if they have RLV is to IM them "@version" (without the quotes). If they have RLV on, they will auto-respond with the version number -- it won't even show up on their client. If they don't have RLV, they're going to see that you sent them that message and probably ask what you're doing.<br />
<br />
Scripts do this the same way, but they use <i>llOwnerSay("@version=<channel>");</i> where <i>channel</i> is a channel your script is listening on.<br />
<br />
<br />
This first script I call <i>rlvCheck </i>and it's meant to be called by another script wishing to know whether or not RLV is enabled and what version. NOTE: This is an <i>example</i> script. Bundle this into a larger script, or do more in just a single script to keep script counts down.<br />
<br />
<blockquote>
<span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">integer RLV_VERSION = 24767;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">integer RLV_VERSION_REQUEST = 24768;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">integer rlvCheckCount = 0;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">integer rlvMaxCheck = 3;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">float rlvCheckDelay = 30.0f;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">integer rlvHandle;</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">checkRLV()</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">{</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> rlvCheckCount = 0;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> rlvHandle = llListen(RLV_VERSION, "", llGetOwner(), "");</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> llSetTimerEvent(rlvCheckDelay);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> llOwnerSay("@version=" + (string)RLV_VERSION);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">}</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">default</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">{</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> state_entry()</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> {</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> checkRLV();</span> // Do this to announce the RLV version to listening scripts in the same object<br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> }</span></span><br />
<blockquote>
<div style="text-align: left;">
<span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">timer()</span></span><br />
<span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">{</span></span><br />
<span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> if (++rlvCheckCount >= rlvMaxCheck)</span></span><br />
<span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> {</span></span><br />
<span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> llListenRemove(rlvHandle);</span></span><br />
<span style="font-family: "Courier New",Courier,monospace; font-size: small;"> llSetTimerEvent(0.0f);</span><br />
<span style="font-family: "Courier New",Courier,monospace; font-size: small;"> }</span><br />
<span style="font-family: "Courier New",Courier,monospace; font-size: small;"> else</span><br />
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;"> </span></span><span style="font-family: "Courier New",Courier,monospace; font-size: small;">llOwnerSay("@version=" + (string)RLV_VERSION);</span><br />
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">}</span></div>
</blockquote>
<span style="font-size: small;"><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> listen(integer channel, string name, key id, string message)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> {</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> if (channel == RLV_VERSION)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> {</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> llListenRemove(rlvHandle);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> llSetTimerEvent(0.0f);</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span><span style="font-family: 'Courier New',Courier,monospace;"> string version = llList2String(llParseString2List(message, [" "], []), 2);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> list lTemp = llParseString2List(version, ["."], []);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> string major = llGetSubString(llList2String(lTemp, 0), -1, -1);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> string minor = llList2String(lTemp, 1);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span><span style="font-family: 'Courier New',Courier,monospace;"> llMessageLinked(LINK_THIS, RLV_VERSION, major + minor, NULL_KEY);</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span><span style="font-family: 'Courier New',Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> attach(key attached)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> {</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> if (attached != NULL_KEY)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> checkRLV();</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> link_message(integer sender, integer msgType, string message, key id)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> {</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> if (msgType == RLV_VERSION_REQUEST)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> checkRLV();</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span><span style="font-family: 'Courier New',Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;">}</span></span></blockquote>
A caller script that would use this might do something like:<br />
<blockquote>
<span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">integer RLV_VERSION = 24767;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">integer RLV_VERSION_REQUEST = 24768;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span><span style="font-family: 'Courier New',Courier,monospace;">integer rlvCapable = FALSE;</span></span></blockquote>
<blockquote>
<span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">default</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">{</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> state_entry()</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> {</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> </span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">llMessageLinked(LINK_THIS, RLV_VERSION_REQUEST, "", NULL_KEY);</span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> link_message(integer sender_num, integer num, string message, key </span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">id)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span><span style="font-family: 'Courier New',Courier,monospace;"> {</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> if (num == RLV_VERSION)</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"> {</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> rlvCapable = TRUE;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> llOwnerSay("Restrained Love v." + message + " detected");</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> restoreRestrictions(); // a function to re-apply any restrictions</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> return;</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> </span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> }</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"></span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;"> </span></span><span style="font-size: small;"><span style="font-family: 'Courier New',Courier,monospace;">}</span></span></blockquote>
Now at this point, the script will know if RLV is available after one and a half minutes. What I usually do is cause RLV restrictions to be restored as soon as I know what the version is.<br />
<br />
And the numbers I chose for the communication channel are just random ones I thought of -- there's nothing special or reserved about them. I did found out that they can't be negative.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com0tag:blogger.com,1999:blog-2036437655736403024.post-63268841242324675062011-07-28T12:45:00.000-07:002011-11-02T14:02:09.586-07:00How to turn on RLV in Firestorm Several people have asked me how to turn on RLV in Firestorm. It isn't on by default. There are a couple of ways to do it.<br />
<br />
If you find this page helpful, please click the +1 button at the bottom. =^.^=<br />
<br />
<b>Quick</b><br />
From the menu, Avatar -> Preferences -> Firestorm -> General -> Allow Remote Scripted Viewer Controls (RLVa), then restart Firestorm.<br />
<br />
<b>Advanced</b> <br />
<ol>
<li>Turn on your Advanced menu. You can turn them both on by going to Avatar -> Preferences -> Advanced and then check "Show Advanced Menu"</li>
<li>On your Advanced menu, near the bottom, tick "RestrainedLove API (RLVa)".</li>
<li>Near the middle is a section for RLVA and if you expand out that menu you can:</li>
</ol>
<ul>
<li> List restrictions</li>
<li>Enable objects to give to your #RLV folder (great for traps, being forced to wear items, etc.) -- some traps will give you an outfit and force you to wear them. One that comes to mind is in Kitten's Castle where you're turned into a marble statue.</li>
<li>Show debug messages - this is really useful when writing RLV scripts. It's also nice to have on just so you know when something RLV is being done to you by either a person or object.</li>
</ul>
A quick and easy way to check if you've got RLV enabled is to ask someone to IM you with just the text: "@version" (without quotes). If RLV is enabled, you won't see it, but they'll see something like:<br />
<i>Kittin Ninetails (busy response): RestrainedLove viewer v2.7.0 (Firestorm 3.0.1.22566 - RLVa 1.4.0)</i><br />
<br />
<br />
Remember, you'll need a relay to interact with objects. Take a look at my <a href="http://kittin-ninetails.blogspot.com/2011/04/rlv-quick-tutorial.html">Quick RLV tutorial</a>. And if you want to try something really fun, go to <a href="http://slurl.com/secondlife/Zhora/52/154/56/?title=Kelley%20Park&msg=Find%20the%20secret%20cave">Marine's maze</a> and try to find your way out. And don't cheat! =^.^=<br />
<br />
Also, here's a link to a video for <a href="http://www.youtube.com/watch?v=3WF6r4gkmZA">Installing and Activating RLV in Various Third Party Viewers</a>. The first part of the video covers installing Marine's RLV on Windows and how to copy the voice files over. If you install my Linux or Mac builds, these are installed for you. At about 7 minutes into the video, Trix explains how to turn on RLVa in Phoenix and Imprudence. Trix has another good <a href="http://www.youtube.com/watch?v=J9vgrOeoESM">video on the #RLV folder</a>. Actually, Trix has quite a lot of good videos, but those are the two I saw that relate to this page.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com2tag:blogger.com,1999:blog-2036437655736403024.post-66815941704082904192011-07-08T15:41:00.000-07:002011-09-01T15:01:03.744-07:00Thief!!Ok, I don't normally like to point fingers. It degrades into a "he said she said" useless argument that no one can prove. But, I've been scammed and I want to warn everyone I can about it so they're not ripped off, too.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKKmEXbIWExk12XowdiswNTHWlC3YPNI8_zdCLdlpN0HYB8y8x1pCPHNk6ADA0CxXV4cU9OtyC-xwEp5mMkZ0tm5YH4xrUqeyR7ORRxAvmDJQ8JRdWAeH4KgKcazyTUrcnsXSIkTtBjD4/s1600/sal1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKKmEXbIWExk12XowdiswNTHWlC3YPNI8_zdCLdlpN0HYB8y8x1pCPHNk6ADA0CxXV4cU9OtyC-xwEp5mMkZ0tm5YH4xrUqeyR7ORRxAvmDJQ8JRdWAeH4KgKcazyTUrcnsXSIkTtBjD4/s320/sal1.jpg" width="275" /></a></div>
<br />
In April, 2011, I asked this guy to do some graphic work for me. We did some discussion of design and price and we agreed on L$3000 to come up with a heart-shaped locket I could use for a logo for my Ninetails products. He asked for 50% up-front, which I thought was reasonable. Needless to say, he never delivered. My dear friend Sei ended up making the logo for me, where I showed it off in <a href="http://kittin-ninetails.blogspot.com/2011/06/makeover.html">A Makeover</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvHsl512S4aTGbi7_eduTOFL9gDe3nADL1NU7iYgBEWWq38w8rTQj3Uw3IQshgzzgpOXswYIVphk87p072DuFBggJ2qTk01BKqc4lKZ-Qedfj4SWSDln4-6mljoXud67nhCHqrgdaf52I/s1600/sal2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvHsl512S4aTGbi7_eduTOFL9gDe3nADL1NU7iYgBEWWq38w8rTQj3Uw3IQshgzzgpOXswYIVphk87p072DuFBggJ2qTk01BKqc4lKZ-Qedfj4SWSDln4-6mljoXud67nhCHqrgdaf52I/s320/sal2.jpg" width="275" /></a></div>
<br />
I wouldn't even bother mentioning it, except Sal has returned to SL and, after defriending me, has made it pretty clear he does not intend to return the money -- but moreover comes to the areas I go (specifically <a href="http://maps.secondlife.com/secondlife/Fivepenny/177/11/1501">Shy Submissives</a>) to and wants to "play" with me as a Dom.<br />
<br />
I think not.<br />
<br />
Well, it's only my word against his and it's my own damned fault for giving him any money. But I wanted to post this so others would be, at least, made aware that there is a dodgy situation regarding him. Please don't get taken like I did.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com2tag:blogger.com,1999:blog-2036437655736403024.post-24292875170177717862011-05-20T07:56:00.000-07:002011-05-20T07:58:24.434-07:00Unable to connect to Second Life. DNS could not resolve the host name.<blockquote>Unable to connect to Second Life.<br />
DNS could not resolve the host name.<br />
Please verify that you can connect to www.secondlife.com<br />
web site. If you can, but continue to receive this error,<br />
please go to the support section and and report this problem.</blockquote>Are you seeing this error? Well, the good news is there's nothing wrong with the viewer you downloaded. The bad news is that the Domain Name Service (DNS) you use can't figure out the internet address of some URL inside the viewer that it's trying to access.<br />
<br />
LL has a wiki page on it here that is marginally helpful. <a href="http://wiki.secondlife.com/wiki/Troubleshooting_DNS_login_issues">http://wiki.secondlife.com/wiki/Troubleshooting_DNS_login_issues</a><br />
<br />
Anubis Vlad Tepas left a comment on my 2.6.1 posting that is very helpful. It's sort of buried now, so I wanted to bring it back up to the forefront.<br />
<br />
<blockquote>Anubis Vlad Tepas said...<br />
<br />
For those who have DNS errors, there's a solution that worked (for me, at least).<br />
<br />
Go the System Preference -> Network -> Airport (if you're using Airport, otherwise I guess it should be the same with Ethernet) -> DNS.<br />
There, add two adresses :<br />
208.67.222.222<br />
208.67.220.220<br />
I have no idea why this new version of SL messes with DNS servers. And I don't like playing with these settings. But oh well, it's likely to be temporary only.<br />
<br />
Hope it works for you as well.<br />
</blockquote><br />
On Linux, you'd add these to your /etc/resolv.conf file like this. The part with the # is just a comment, don't include it.<br />
<br />
<b><i>sudo cp /etc/resolv.conf /etc/resolve.conf.pre-kittin</i></b> # Make sure you back it up first!<br />
<b><i>sudo echo "nameserver 208.67.222.222" >> /etc/resolv.conf</i></b> # Add the first DNS<br />
<b><i>sudo echo "nameserver 208.67.220.220" >> /etc/resolv.conf</i></b> # Add the second DNSKittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com3tag:blogger.com,1999:blog-2036437655736403024.post-47468943602561977502011-04-09T19:16:00.000-07:002011-11-02T14:04:17.047-07:00RLV - A Quick Tutorial<b>(updated 9/8/2011)</b><br />
<br />
If you find this page helpful, please click the +1 button at the bottom. =^.^=<br />
<br />
<br />
<b> </b><br />
<b>What is RLV? </b><br />
RLV stands for Restrained Love Viewer, which is <a href="http://realrestraint.blogspot.com/">Marine Kelley</a>'s enhancements to the <a href="http://www.secondlife.com/">Second Life</a> Viewer. A few years back, she wrote a great overview <a href="http://realrestraint.blogspot.com/2007/11/so-what-is-that-restrainedlife-thing.html">here</a>. RLV features are also in Phoenix, Firestorm, Imprudence, and several other viewers. Marine is the owner of the <a href="http://wiki.secondlife.com/wiki/LSL_Protocol/RestrainedLoveAPI">Restrained Love API</a> and, naturally, her viewer will always have the latest RLV features. The other viewers may or may not choose to implement the latest RLV specification.<br />
<b><br />
</b><br />
<b>What do I need to run RLV?</b><br />
First, you need a viewer that has RLV (or RLVa) built into it. You can only get this in TPVs (Third Party Viewers) such as Marine's, Phoenix, Firestorm, Impurdence, etc. Be sure you look to see if the viewer you choose has it.<br />
<br />
Second, unless you're using Marine's RestrainedLove Viewer, You will need to turn RLV on. I've written a short guide on <a href="http://kittin-ninetails.blogspot.com/2011/07/how-to-turn-on-rlv-in-firestorm.html">How to Turn On RLV in Firestorm</a> and at the bottom of the page is some information on how to do it for other viewers.<br />
<br />
Once you've gotten this far, some RLV things will work. Specifically, any RLV item that you own can place restrictions on you. Collars fit into this category.<br />
<br />
But the real fun comes when you add in a Relay. Without a relay, the viewer won't listen to objects in the world. It's the job of the relay to pass on requests from in-world objects to your viewer to apply or remove restrictions. Your relay will typically give you all sorts of choices here as to whether to trust the landowner, to ask first before imposing a restriction, etc. A relay is needed for if you want to be able to be trapped by something such as a cage or tied to some piece of furniture. There are several free items in Second Life that will do the job of an RLV relay. The ones that immediately come to mind are:<br />
<ul>
<li>OpenCollar - The collar has a relay script inside of it. Just turn it on.</li>
<li>ThinkKink - They offer a free relay HUD.</li>
<li>Susan's RLV Relay Ring - One place to get this is to find Marine's little shop in my profile picks. Susan's shop is just behind Marine's. You could wear the ring on your finger, or use it as a HUD.</li>
</ul>
<b>Who should run RLV?</b><br />
Submissives who would like to get an extra thrill by feeling the restrictions is "real" in the context of Second Life. Dominates should learn how to use the RLV tools that exist for them in Second Life.<br />
<br />
<b>But I'm scared!</b><br />
Don't be. There is nothing anyone can do to you that you can't undo. Sometimes, it may take a bit of clever thinking to get out of your situation. Often, a friend can help you because you're locked out of a menu byt they may not be. Many relays and collars support the idea of a 'SAFEWORD' that will instantly remove all restrictions.<br />
<br />
But, I have to ask you...where's the fun in that? Personally, I love to
be tied up and role-playing the situation. The only time I break out
of my bonds unfairly is when someone has caught me and tied me up for
some ridiculous amount of time -- like setting a timed lock for a month.<br />
<br />
If all else fails and you don't want to be under the restriction anymore, simply turn off RLV in your viewer or log in with the official Second Life viewer which doesn't support RLV. I think only once in three years did I ever get caught in something so badly I had to turn off RLV to get the thing off of me.<br />
<br />
There is a RestrainedLove Support group that's free to join that you can ask questions in.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com4tag:blogger.com,1999:blog-2036437655736403024.post-90734859147017616002011-01-30T13:01:00.000-08:002011-01-30T20:56:45.679-08:00Patch for sl_proxy 1.9.3 for Mac and CygwinIf you're comfortable with patch and make, you shouldn't have much trouble installing this. The instructions to compile are the same on both Mac and Cygwin. Linux users shouldn't have to make any changes, since this software was originally written for linux.<br /><ol><li><a href="http://www.nsl.tuis.ac.jp/xoops/modules/d3downloads/index.php?page=singlefile&cid=4&lid=1&ml_lang=en">Download sl_proxy-1.9.3</a> from Network Solutions Laboratory. It's the little 3.5" floppy disk icon.</li><li>Extract the sources to a temp folder. I do this from a terminal command prompt:</li><ul><li>mkdir -p ~/tmp/slproxy</li><li>cd ~/tmp/slproxy</li><li>tar xvzf ~/Desktop/sl_proxy-1.9.3.tar.gz</li></ul><li><a href="http://cid-6a2f42d7b470f408.office.live.com/browse.aspx/Public/Second%20Life">Download my sl_proxy-1.9.3-mac-cygwin.patch from here.</a> (The .patch extension might be hidden)</li><li>Test applying the patch, just to be sure you're in the right spot.</li><ul><li>cd ~/tmp/slproxy</li><li>patch --dry-run --strip=1 -i ~/Desktop/sl_proxy-1.9.3-mac-cygwin.patch<br /></li></ul><li>If that works, apply the patch.</li><ul><li>patch --strip=1 -i ~/Desktop/sl_proxy-1.9.3-mac-cygwin.patch</li></ul><li>Make the junkbox library.</li><ul><li>cd ~/tmp/slproxy/junkbox_lib-1.2.4</li><li>autoreconf -f && ./configure && make<br /></li></ul><li>Make the sl_proxy programs.</li><ul><li>cd ../sl_proxy-1.9.3</li><li>autoreconf -f && ./configure && make<br /></li></ul><li>Install them. On Mac, remember to 'sudo' the install command.<br /><ul><li>make install</li></ul></li></ol>Assuming that all worked, next you start the processes up. These apps are designed to be running as services or 'daemons' all the time. I haven't bothered to do that under Mac and it's more trouble than it is worth under Cygwin, so I simply start them by hand. If you want to explore them running as a service, feel free.<br /><br />I recommend using 'screen' to run them. At the least, you'll probably want 3 terminal sessions. I set up some bash aliases to run them in my .profile, so I can just type sl1, sl2, and sl3 -- one in each terminal session. The sl_cache process, sl2 in my aliases, takes a bit to start up. It takes longer each time as you collect more and more textures. This is why I recommend screen if you leave your PC or Mac on most of the time -- because you can detach the session and log out and the apps will keep running.<br /><br /><span style="font-weight: bold;font-size:130%;" >Starting the apps by hand</span><br />On the Mac, you'll need to prefix each of these with 'sudo' because they run as privliged processes.<br /><ol><li>sl_info -v0 -l -f1 -d</li><li>sl_cache -v0 -l -lx -xpr 90 -d</li><li>sl_relay -v0 -ci -cs -d</li></ol>You should read the Network Solutions Laboratory's website for what each of the parameters mean.<br /><br />In my .profile (or .bashrc, depending), I set up aliases as follows:<br /><ul><li>alias sl1="sl_info -v0 -l -f1 -d"</li><li>alias sl2="sl_cache -v0 -l -lx -xpr 90 -d"</li><li>alias sl3="sl_relay -v0 -ci -cs -d"</li></ul> <span style="font-size:130%;"><span style="font-weight: bold;">Pointing the Second Life client to your proxy</span></span><br />In order to start caching textures, you need to have your Second Life client talking to sl_proxy, and not directly to the Second Life servers.<br /><br /><span style="font-weight: bold;">Windows:</span><br />You can do this by putting the IP of your sl_proxy computer in the shortcut. Just copy your Second Life shortcut and perhaps rename it "Second Life - cache". Change your target to add the --loginuri parameter outside the quotes of the exe. For example: "SecondLife.exe" <span style="color: rgb(204, 51, 204);">--loginuri http://computer:8100/cgi-bin/login.cgi</span><br />Make sure you replace 'computer' with the IP of the sl_proxy machine or use 'localhost' if it's on the same pc you'll run Second Life from.<br /><br /><span style="font-weight: bold;">Mac:</span><br />(instructions shamelessly stolen from the Opensimulator site)<br /><ul><li> Make a 'secondlife.sh' file, and put this in it: </li></ul><blockquote>#!/bin/bash<br />/Applications/Second\ Life.app/Contents/MacOS/Second\ Life -loginuri http://computer:8100/cgi-bin/login.cgi</blockquote><ul><li> set it to executable </li><li> run it </li></ul>Good luck and I hope this app helps you out as much as I have. Those of you with FiOS and super-fast connections probably won't get anything from this. But people with slower connections will see things quicker as they move around in places they frequent.Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com3tag:blogger.com,1999:blog-2036437655736403024.post-1938848136141632812011-01-27T10:52:00.000-08:002011-01-27T15:15:43.621-08:00SL_Proxy 1.9.3 on Mac and CygwinIn my old blog, I talked about this app a lot. It really saves my butt with my ISP. I just upgraded it yesterday and needed to patch the source again. So, I thought I'd write up what I needed to do.<br /><br />First, here are my old posts on the subject:<br /><ul><li><a href="http://corysia.wordpress.com/2009/06/25/saving-private-bandwidth/">Saving Private Bandwidth</a> (good background, but out of date)<br /></li><li><a href="http://corysia.wordpress.com/2010/03/21/saving-private-macbandwidth/">Saving Private MacBandwidth</a> (no longer needed in 1.9.3)</li><li><a href="http://corysia.wordpress.com/2010/08/25/upgrading-to-sl_proxy-1-9-1/">Upgrading to sl_proxy 1.9.1</a> (sort of the same stuff below)</li><li><a href="http://corysia.wordpress.com/2010/09/09/compiling-sl_proxy-for-cygwin/">Compiling sl_proxy for Cygwin </a>(again, more of what's below)<br /></li></ul><br />This gets a little technical, so I apologize to those who don't quite follow along. Making a patch file for these is pretty easy, but the last time I did it, I didn't put in the version number. Unfortunately, my old patch file won't work on this source. I plan to make a new patch file this weekend, but I thought I'd write down what I did first.<br /><br /><span style="font-weight: bold;">For Mac:</span><br /><ul><li>Edit each of these Makefile.am files, changing all the instances of 'chown' from "chown nobody.$GRP" to "<span style="color: rgb(204, 102, 204);">chown nobody<span style="font-size:130%;"><span style="font-weight: bold;">:</span></span>$$GRP</span>"<ul><li>sl_proxy-1.9.3/sl_info/Makefile.am</li><li>sl_proxy-1.9.3/sl_relay/Makefile.am</li><li>sl_proxy-1.9.3/sl_proxy/Makefile.am</li><li>sl_proxy-1.9.3/sip_forwarder/Makefile.am</li></ul></li><li>autoreconf && ./configure && make</li></ul><span style="font-weight: bold;">For Cygwin:</span><br />The problem is there's no yp headers in Cygwin. All one has to do is remove the checks, surrounding them with #ifndef __CYGWIN__ blocks.<br /><ul><li>junkbox_lib-1.2.4/Lib/password.h @ line 38<br /></li></ul><blockquote><span style="font-size:85%;"><span style="color: rgb(204, 102, 204);">#ifndef __CYGWIN__</span><br />#include <rpcsvc/ypclnt.h><br /><span style="color: rgb(204, 102, 204);">#endif // __CYGWIN__</span></span><br /></blockquote><ul><li>junkbox_lib-1.2.4/Lib/password.c</li></ul> @line 58<br /><blockquote><span style="font-size:85%;"><span style="color: rgb(204, 51, 204);">#ifndef __CYGWIN__</span><br />// for NIS<br />pw = getnisnam(user_id);<br />if (pw!=NULL) {<br /> strncpy(pass, pw->pw_passwd, LPASS);<br /> free_pw(pw);<br /> return pass;<br />}<br /><span style="color: rgb(204, 102, 204);">#endif // __CYGWIN__</span></span></blockquote>@line 74-164<br /><span style="font-size:85%;"></span><blockquote><span style="font-size:85%;"><span style="color: rgb(204, 102, 204);">#ifndef __CYGWIN__</span><br /><br />/**<br />struct passwd* getnisnam(char* usrid)<br /><br />(lots of code)<br /><br /> free(nis);<br /> return pw;<br />}<br /><br /></span><span style="color: rgb(204, 102, 204);font-size:85%;" >#endif // __CYGWIN__</span><br /><span style="font-size:85%;"><br />/**<br />void free_pw(struct passwd* pw)<br /></span></blockquote><br />These processes won't auto-start on boot, even if you run 'make install'. It will place the executables into /usr/local/bin and make some inet.d changes in /etc, but they aren't honored on boot. I always start them by hand, using 'screen' so I can easily disconnect or reconnect to see the logs. Like I wrote in my earlier posts, I create a screen console for each process and run these commands (on cygwin, you don't need to 'sudo'):<br /><blockquote style="color: rgb(204, 102, 204);">sudo /usr/local/bin/sl_info -l -v0 -d -f1<br />sudo /usr/local/bin/sl_cache -l -v0 -lx -xpr 90 -d<br />sudo /usr/local/bin/sl_relay -v0 -cs -ci -d</blockquote>Kittinhttp://www.blogger.com/profile/13351553427172111912noreply@blogger.com1