👩‍💻 Scripting changes coming soon

News from the Second Life Team – January 2024 Edition

 

Happy New Year! We’re off to a great start to the year at the Lab and happy to share more Second Life updates with you. You’ll find news on scripting additions, PBR Materials, Project Viewers, and an update on the Second Life Mobile Private Alpha program. Enjoy!

A handful of new, useful scripting features will be getting released in the coming weeks:

llComputeHash

LSL’s old llMD5 function has a significant flaw: it always adds a “:” character to the input string. This makes it useless for most hashing purposes. Enter: llComputeHash! This new function can generate a hash of an input string using any of the following hashing algorithms: md5, md5_sha1, sha1, sha224, sha256, sha384, and sha512.

 
default {
touch_start(integer count) {
string message = your-test-message-here;
 
list algorithms = [md5, md5_sha1, sha1, sha224, sha256, sha384, sha512];
 
integer algorithmCount = llGetListLength(algorithms);
llOwnerSay(message=’ + message + );
 
integer i = 0;
for (i = 0; i < algorithmCount; ++i) {
string algorithm = llList2String(algorithms, i);
string hash = llComputeHash(message, algorithm);
llOwnerSay(algorithm + = + hash);
}
}

llGetNotecardLineSync

You know how it takes an incredible amount of time for your furniture to boot up after resetting its scripts? Argh! Yeah, it’s annoying, and likely due to your sofa/throne/maypole reading configuration from one or more notecards in its inventory.

The new llGetNotecardLineSync function makes loading data from notecards in object inventory much faster by providing a synchronous access method with the caveat that the notecard must be in the region’s asset cache.

 
string NOTECARD_NAME = notecard;
key gLineCountId;
 
default {
state_entry() {
// Request number of notecard lines.
gLineCountId = llGetNumberOfNotecardLines(NOTECARD_NAME);
}
 
dataserver(key id, string data) {
if (id != gLineCountId) { return; }
 
integer count = (integer)data;
integer i;
for (i = 0; i < count; ++i) {
string line = llGetNotecardLineSync(NOTECARD_NAME, i);
if (line == EOF) {
llOwnerSay(—EOF—);
}
else if (line == NAK) {
llOwnerSay(—NAK—);
}
else {
llOwnerSay(line);
}
}
}

BTW, if you’re interested in knowing more about the scripts that power a huge amount of Second Life’s furniture, vehicles and more check out the open source AVsitter project. 🪑

llGetCameraAspect, llGetCameraFOV, and llWorldPosToHUD

Several functions have been added to help content creators position HUDs:

  • llGetCameraAspect – Returns the aspect ratio of the wearer’s screen as a float (width/height)
  • llGetCameraFOV – Returns a float value for the current camera’s field of view
  • llWorldPosToHUD – Returns HUD position of an in-world object
 
integer gHasPerms = FALSE;
 
function printCameraInfo() {
float aspect = llGetCameraAspect();
float fov = llGetCameraFOV();
llOwnerSay(aspect = + (string)aspect + FOV = + (string)fov);
}
 
default {
on_rez(integer a) {
llResetScript();
}
 
state_entry() {
llRequestPermissions(llGetOwner(), PERMISSION_TRACK_CAMERA);
}
 
run_time_permissions(integer perms) {
if (perms & PERMISSION_TRACK_CAMERA) {
gHasPerms = TRUE;
printCameraInfo();
}
}
 
touch_start(integer count)
{
if (gHasPerms) {
printCameraInfo();
} else {
llRequestPermissions(llGetOwner(), PERMISSION_TRACK_CAMERA);
}
}

Scripting roadmap

Status of these upcoming changes and more are visible on Second Life’s new public road visible at feedback.secondlife.com. If you have ideas or feedback on the scripting system check out the Scripting Features and Scripting Bugs boards.

🧪 Project Viewers

😀 Emoji

This viewer is also in RC and is based on a contribution by Kitty Barnett, and adds the ability to insert emojis in text chat.

Maintenance W

This Viewer brings many fixes (see list here), including a fix to a long standing issue with voice failing after quickly restarting your viewer

Maintenance X

This Viewer brings many usability improvements, including:

  • Saving you some clicks by allowing the deletion of folders containing worn items. 
  • In case you only wish to detach, Alt+Shift+R will now detach selected attachments so you can remove those less fashionable items at rapid speed.
  • The time format has been changed to show the more superior SLT instead of PDT.
  • The group join fee will be shown when leaving a group so you can be extra sure you want to leave it.
  • Shift+Alt+N will now open the Notifications floater 
  • Group notices can now be accessed directly from the People floaters Groups tab. Hover that mouse cursor over the group name for access.
  • Group notices will now default as being sorted by date with the newest first 

Maintenance Y

With this Viewer, you can now preview your outfit photos when hovering your cursor over outfits in the Outfit floater. You can also now remove locations from history via the context menu located in the Places floaters Visited tab.

image4.png

See the list of additional fixes here.

Default Viewer

🎨 GLTF PBR Materials

At the end of November, we announced in this blog post that PBR became available grid wide! The PBR Materials project brings increased realism and enables bringing GLTF content into Second Life with expected results. Now you can create scenes with real reflections which mimic how our eyes have learned to identify that a surface is metal, plastic, or some other material. Whether you create objects in Second Life or simply enjoy seeing and wearing them, PBR Materials will provide a big step up in the appearance of the Second Life world.

Individually faceted disco ball reflections
image1.png

As of January 8th, 2024, the PBR Materials Maintenance 1 viewer became the default viewer for Second Life. See Release Notes here. There are 17 new Materials available in the Library so you can start building with PBR today!

📱 Mobile Update

On December 12th, we announced our Mobile Private Alpha, bringing the richness of the Second Life virtual world to your Android or iOS mobile device. Qualifying Premium Plus members can apply now for the Private Alpha. If you are Premium Plus, you can learn more at this link.

Check out this video if you haven’t already!

We’ve had an incredible amount of interest, so if you’ve applied but haven’t been added yet, you’re still on our list. Future testers will be added and notified as the Private Alpha continues to expand. Thanks again for your patience as we process the ongoing demand and we look forward to your participation!

Have A Great Weekend From All Of Us At Zoha Islands/Fruit Islands

Moving From JIRA

Moving From Jira, Pt. 1


image4.png

This is the first installment of a series of posts on moving Second Life issues from Jira to a new community engagement portal, feedback.secondlife.com as well as Github Issues.

jira.secondlife.com is Second Life’s venerable bug reporting repository, development tracker and feature request system. It is used by thousands of users and the entire SL development team to envision, fix and build the future of Second Life.

Unfortunately, Jira Server, the software and license agreement we use to host Second Life’s jira.secondlife.com site, is being discontinued and its official replacement cannot handle the number of users (over 300,000) that Second Life needs. Long story short: we need to move off of Jira before support ends in early February, 2024.

As part of this migration effort, we’re excited to announce that we are opening up a new community feedback portal for early preview: feedback.secondlife.com. This site will host feature requests, bug reports and ultimately replace the public BUG project on jira.secondlife.com.

Support issues should still be reported to support.secondlife.com. We will keep using Freshdesk for all personal and content-sensitive tickets.

Where are my issues going?!

Your issues will be preserved and will not be deleted. Second Life has a 20 year history, and Jira represents one of its best sources for documentation. Jira will remain in operation until we migrate all issues to a new home on Github. We will share more information about working with the issue archive in a future blog post.

Feedback Portal

Second Life has a long history of collaboration with its residents. Rather than be bummed out by needing to leave Jira, we wanted to take this opportunity to select a community site that offers a better experience to both users and staff.

You can check out the new engagement portal at feedback.secondlife.com. This new site uses canny.io, a platform designed for receiving and responding to community feedback. We believe it will be a demonstrably better experience for residents due to features such as:

A public roadmap

image2.png

We will be providing a public roadmap of user-suggested features which have been accepted and will be implemented. This will provide greater transparency into the future of Second Life and drive accountability for us, so that we deliver what we say we would. 😜

Multiple boards

image4.png

The new feedback portal provides boards for different areas of Second Life: general feature requests and bugs, website bugs and features, scripting, etc. This will allow users to easily read up on bugs and feature requests pertaining to their area of interest, and allows triagers on our side to more easily figure out who should review new information.

Board features

  • Markdown – Text can be formatted using a simplified version of Markdown
  • Issue merging – Staff can merge issues instead of marking them as duplicate
  • Trending Posts – Boards may be sorted by trending posts, which combines freshness and popularity

Better Process

We have come to realize that the effects of some of our Jira workflows were, intentionally or otherwise, rather adversarial to engagement (read: unfriendly.) We are fixing this by acknowledging the following problems and resolving them with different behavior on the new feedback site:

Conversations remain open
One of the most detrimental features of our public Jira workflow was how it locked conversations (comments, etc.) after tickets were marked as accepted. This is not the default behavior in the new portal: comments will be allowed throughout the entire lifecycle of the request!

Know when your idea ships
The “clone issue” process on Jira resulted in a large portion of user-submitted issues never being marked as completed when their respective issues were shipped. This will be much less of an issue on feedback.secondlife.com because issues will be directly tied to their internal development tickets and automatically closed when the change ships.

Voting is Encouraged!
Vote to your heart’s content. We want to hear from you which issues are most important.

Behind the Scenes

Part of the rationale for moving to Canny, the software behind feedback.secondlife.com, as opposed to alternative issue tracking solutions is that it is a very focused product that is tailor made for responding to user feedback and prioritizing ideas. In addition, the platform fit the bill by providing the following necessary requirements:

  • Single sign-on (SSO) – Users can log in using their Second Life account
  • Github Integration – Posts can be linked to Github Issues, the platform we are adopting for software development, and automatically marked as completed when the Github issue is finished.
  • Triage Tools – Canny provides a fast, unified view for triaging issues, prioritizing work, and getting it onto a roadmap.

image1.png

 

Public issues are not the only thing moving off of Jira –internal tickets will be migrating to Github Issues. Canny provides easy ways to create and link issues on Github, providing a better workflow than the previous “Clone” system we used on Jira.

image5.png

 

Open Source Collaboration

On the topic of Github, we will be making it easier for open source contributors to engage with Second Life project maintainers and our OSS projects through Github and Github Issues. Canny provides convenient integration with Github Issues, and we will be exploring ways of opening up Second Life development to open source contributors by more directly working in the open.

😖 Differences from Jira

Not everything is perfect. Both staff and residents have developed a lot of well established mental wiring, process and infrastructure around Jira. Canny is also not a Jira replacement: it’s a community engagement tool which may require changes to behavior:

  • Limited attachment support – Canny only supports image attachments. All other media types will need to be linked to.
  • No private posts – If your report contains sensitive information then please redact/censor private information. If this is not possible, because it is material to the issue being filed, then please file a support ticket if it is personal in nature or security report if it represents a vulnerability.

Timeline and migration details

Jira access will end in early February. In the time leading up to that date we will be performing backups, migrating existing issues to their new home on Github, and allowing residents to use and provide feedback on the new engagement portal.

image3.png

Details about the issue migration process, such as how to find Jira issues post jira.secondlife.com shutdown will be talked about in a future post. Until then, we are excited to see new feature requests and reports over at feedback.secondlife.com.

Conclusion

Making a significant change like this is no small task. Staff and residents alike have grown deeply familiar with jira.secondlife.com through countless hours spent using the site. We hope you will have patience as we migrate data, build documentation, develop new muscle memory and smooth out wrinkles in tools and processes. These updates, along with changes like moving our engineering organization to Github and Github Actions, are part of a larger initiative to modernize Second Life development. The future is exciting, and we hope you can bear with us as we drive down the path to get there.

Have A Great Rest Of Your Week And Weekend From All Of Us At Zoha Islands/Fruit Islands

Second Life Mobile – Now in Private Alpha!


 

The Second Life app brings the richness of the Second Life virtual world to your Android or iOS mobile device…and Second Life Premium Plus members are among the first to get access.

With the new Second Life Mobile, you can experience a new level of convenience and engagement in your Second Life adventures, whether you’re at home or on the go. In this initial Private Alpha release, you can:

* See your avatar & edit appearance by changing outfits 
* Explore the world via the Destination Guide, mobile showcase, own favorites (teleport, deep links, TP offers)
* Interact with the world through a limited set of movements (walk, run, fly, sit, stand) and object interactions (touch, sit) – or park your avatar and explore via flycam.
* Socialize and stay connected (nearby chat, group chat, IM, group notices, find contacts, inspect profiles)
* Create and log in with a new account

…and there’s more to come in future releases!

Qualifying Premium Plus members can apply now for the Private Alpha. If you are Premium Plus, you can learn more at: Premium Plus – Second Life Mobile Private Alpha Sign-Up

Please note that while all Premium Plus subscribers are eligible to participate in the Private Alpha, we’ll be adding users in small groups over time. There is a server registration limit and we’ll be adding participants on a first come first served basis.Your patience is appreciated! We know you’re excited (and so are we!) but we’ll need time to process applications, add test accounts via TestFlight and Google Play and then, most importantly, process your feedback.

And please remember, this is still early Alpha! That means it’s buggy, and it’s missing functionality. It also means we’re looking for your help in making it better. 

Once we are through the alpha and beta testing phases, Second Life Mobile will be accessible to all users.

Not Premium Plus? Upgrade today at https://secondlife.com/premium 

Have A Great Weekend From All Of Us At Zoha Islands/Fruit Islands

Reducing Viewer Crashes

Firestorm viewer smallestIt’s the bane of everyone’s existence in Second Life… the dreaded viewer crash. Naturally, viewers don’t crash at opportune times; they wait until you’re getting busy with someone, or in a wedding, or doing a crucial final touches on a build you hadn’t saved. Sometimes they crash and all of a sudden the viewer just disappears. Most times, however, you suddenly can’t move, then all sound disappears and then the screen dims, accompanied by the endlessly rotating circle, and the dreaded words “Not responding” appear at the top of your screen. Since oftentimes people use the excuse “Oh, I crashed!” when trying to get out of an uncomfortable circumstance, it never fails that the viewer will crash during something critical, like your partner telling you they love you for the first time, or something equally important, and that inopportune crash looks suspicious.

The causes for these crashes vary. Sometimes if you simply cam around too much, it causes the crash. Sometimes the sim is too full, a griefer is on the sim and unleashes a graphics crasher, or computer system is out of date and doesn’t have the resources necessary to run Second Life smoothly.

Click to make larger

Click to enlarge picture

I use the Firestorm viewer, and it asks to collect crash data each time you crash. You can either choose to do this manually, or changes the settings in preferences to allow the viewer to send crash reports automatically.

Click to enlarge picture

Click to enlarge picture

So you think to yourself, why should I do that? All I want to do is get back in-world to try and repair the possibly broken relationship, broken build or continue on with what you were doing, so taking the time to send crash data just adds to the frustration of trying to get in-world. However, what you don’t realize is that the people at Linden Labs and the people at Firestorm (or whatever viewer you use) take the crash data collected, and use it to create the fixes that help reduce crashing. This means that you are helping improve things by allowing your viewer’s creators to collect the crash data. I have set mine to automatic, and it only takes a few seconds for it to collect the crash data on the next start up, and doesn’t cause any serious delays.

So that begs the question: What can we do? Many users can greatly reduce their risk of Viewer crashes by taking a few steps to update their software outside of Second Life.

Oz Linden posted in the Tools and Technology blog, offering these tips to residents some steps they can take to help reduce viewer crashes.

“The nature of Second Life as a platform for user creativity means that the Viewer faces different challenges than client software for an online game, for example, which would just need to handle the limited and carefully optimized content created by the game’s developer. This can make Second Life a demanding application for your computer and can mean that if your operating system is out of date, your Viewer is more likely to crash.

The good news is you can take steps today to help this! Here are a couple of tips:

1. Upgrade your Operating System
There is a very clear pattern in our statistics – the more up to date your operating system is, the less likely your Viewer is to crash. This applies on both Windows and Macintosh (Linux is a little harder to judge, since “up to date” has a more fluid meaning there, and the sample sizes are small). Some examples:

• Windows 8.1 reports crashes only half as often as Windows 8.0
Those of you who stuck with Windows 7 (roughly 40% of users of our Viewer right now) rather than upgrade to 8.0 made a good choice at the time; version 7 still has a much better crash rate than 8.0, but not quite as good as 8.1 (now about 15% of users), so waiting is no longer the best approach.

• Mac OSX 10.9.3 reports crashes a third less than 10.7.5
OSX rates do not have as much variation as Windows versions do, but newer is still better, and there are other non-crash reasons to be on the up to date version, including rendering improvements.

Upgrading will probably also better protect you from security problems, so it’s a good idea even aside from allowing you to spend more time in Second Life.

2, Use the 64 bit version of Windows if you can
For each version of Windows for the last several years, you have had a choice between 32 bit and 64 bit variants; if your system can run the 64 bit variant, then you will probably crash much less frequently by changing to it. While we don’t have a fully 64 bit version of the Viewer yet, you can run it on 64 bit Windows, and statistically you’ll be much better off if you do.

• Generally speaking the 64 bit Windows versions report crashes half as often as the 32 bit versions.
According to the data we collect, a little more than 20% of users are running 32 bit Windows versions; most of you can probably upgrade and would benefit by it.

If you bought your computer any time in the last 5 years, chances are very good that it can run the 64 bit version of Windows (as will some systems that are even older). Microsoft has a FAQ page on this topic; go there and read the answer to the question “How do I tell if my computer can run a 64-bit version of Windows?”. That page also explains how to do the upgrade and other useful information.

We’ll of course continue working hard to find and fix things that lead to Viewer crashes. Even as we do that, though, you can decrease your chances of crashing today by taking the steps above.”

I hope this helps with some of your viewer crashing problems. I’m sure it will probably never go away, but please help by sending your crash data to the viewer’s creators when asked. This will help all of us improve our experience.

I remain respectfully yours,
~ Suzanne Piers
ZoHa Islands Social Media Manager

Ebbe Altberg: For the People

“We’re here, we’re willing to listen. We’re willing to engage in dialog and have conversations about what is the future and how do we get there. And that the doors are open now, again, and we want to talk to you, we want to understand you, we want to understand how to make you successful, whichever way you feel is required to make that happen. So that’s it. I’m here, I’m happy to talk to all of you, I’m gonna learn and listen and most of all, I want to make you successful, because that’s how we all can become successful.” ~ Ebbe Altberg, April 9. 2014

At a recent in-world conference for VWBPE (Virtual World Best Practices in Education), one of the keynote speakers was Linden Lab’s new CEO, Ebbe Altberg. This was a wonderful opportunity to really get to hear from Ebbe since he was installed as CEO of Linden Labs in February of 2014. You can see the video of Ebbe’s entire address here.

During his 84 minute keynote address, Ebbe touched on his thoughts for the future, gave updates, and answered questions from the audience. He addressed not only issues within the educational community, but also in SL and virtual worlds as a whole.

First of all, Ebbe feels that education is a very important partner with Second Life. He has already reinstated better pricing for educational organizations and nonprofits. He wants to reconnect with the education community and feels it is an important part of the virtual world experience. He is looking forward to education being an important part of SL from this point forward.

Another priority is working with the legal department regarding revamping the TOS (Terms Of Service) regarding content creation in order to mitigate the rumors that Linden Labs is into stealing the rights to user created content and selling it to benefit themselves. They are working to change the wording to reassure creators so they will feel confident that Linden Labs won’t steal their unique user created content, and wants to make it very clear that content creators are owners of their own creations. He is very interested in ensuring that creators can get their content both in and out of SL. Linden Labs is not trying to lock them in to SL only and wants to ensure people can export their items to the metaverse and open sim. Ebbe wants to see users getting the most out of SL.

Ebbe spoke about LL’s position regarding the metaverse and open sim. He feels that he’s glad that others, such as Philip Rosedale’s High Fidelity, are exploring this area, and that it is important for growth going forward. However, Ebbe feels that we need to get SL right first, and that we still have a long way to go. He feels that SL is too difficult for most people, and the learning curve is really steep. Ebbie states that he wants to make SL more user friendly and easier for people to use who are new to virtual worlds. Second Life needs to be easier to use and that we need to make improvements to the user experience. Linden Labs is working on this and they have developed some short-term goals, but most changes are long-term and will take time to develop.

A great deal of progress has been made over the last two years and most of these changes have been behind the scenes, such as a huge improvement to avatars and the ability to have lots of avatars on a sim without crashing. Change comes to SL like a slow drip — they’re constantly improving in small increments.

Future Technology
Ebbie touched on the fact that Linden Labs is actively in development on new technologies — specifically Occulus (a beta viewer has already been released, and an update is coming soon). One of the issues being worked on is how to interact in world without a keyboard and mouse.

Service
Ebbe has received many inquiries about whether or not the in-world Community Liaison between Linden Labs (LL) and SL users will be reintroduced, and the answer is “not at this time.” However, a very big priority of Ebbe’s is to reopen the dialogue between educators and Linden Labs, and to make sure that talk turns into action. Linden Labs wants to develop priorities and work on them to make progres towards those goals.

He is also encouraging employees of LL to go in-world as Lindens. He has lifted the rule against LL employees going in-world as Lindens, and wants to encourage them to get out there and interact with end users and really see what is going on in SL.

There is a perception that SL is nothing but a venue for gratuitous sex. Ebbe feels that there is a need to try and market SL better, so that we can improve the reputation and help people understand the breadth and depth of all that SL has to offer. The good and wonderful things in SL aren’t being seen outside the walls of SL, and that needs to change.

Strategy Going Forward
Some of the things that are in Ebbe’s top priorities in the immediate future include:

• Taking Linden dollars as a currency outside of SL. This is a massive undertaking, and getting RL bankers and so forth to go along with it is huge. They have to ensure transactions are safe and there is controls in place to avoid fraud and money laundering. It needs to be safe, legal and compliant. Ebbe compared this project to Bit Coin.

• Make SL and the viewer more intuitive and easier to use: There was an attempt by LL to simplify the viewer, and it didn’t work. Ebbe says that he is looking into why this didn’t work, because once again, SL’s learning curve is so steep it often chases off potential new residents before they can even get started.

• HiFi in SL: Linden Labs is working on making a richer avatar experience by bringing emotions to avatars. They’re in the early stages of development, but they want to make it so you can interact with avatars and be able to see their emotions, as well as hearing it in voices or emoting it in type. He wants to move avatars to beyond just being “dolls” and actually being able to see expressions of surprise, anger, happiness and have that transmitted visually.

Audience Questions:

• Will LL be working on the ability to export content out of SL?
Currently, Linden Labs isn’t actively preventing this from happening. Perhaps what is happening is that the way to export isn’t simple enough, or isn’t being communicated, but people currently do export content. Perhaps they are using a work-around, but LL isn’t actively preventing this. Which brings up another problem, where creators need to be the original creator of every single piece of the item in order to export it, and so if you’ve added a script or other component created by someone else, then you cannot export the item. And the reasons for this are simple: We need to make sure people can’t pirate your work by exporting it out of SL and into other platforms, but clearly LL needs to work out how to allow creators to export items with other user-created content and still make it so that your content cannot be pirated.

• There is a problem with schools and other groups in Japan, Australia and New Zealand having issues connecting to SL. Will it be possible for people in New Zealand to be able to connect to SL servers using their high speed network? And what can they do to expedite communications with SL more effectively?

Linden Labs is attempting to partner with companies in Asia to help understand what their issues are and how to fix this problem. How do we distribute hardware globally, and there will always be some users who are going to be far away from hardware and thus unable to connect to SL without some latency. The long-term goal is to invest in more hardware and distribute it globally as much as is feasible.

• How is Linden Labs addressing some concerns that educators have with allowing K-12 children onto the grid and still ensure their security and safety?

Linden Labs is attempting to make the main grid better, safer, and cleaner without restricting what adults can do, and then expand it to include children. LL is not currently planning on resurrecting the teen grid because it’s not worth it and it’s not a priority and it takes up too many resources for limited content. Right now, LL’s priorities are solving the problem of ease of use, solving quality issues, making technology more flexible. Then, down the road, we can offer more dedicated special interest audiences like that in a safe manner. But it’s not currently a top priority.

• Community Development — We want to see LL office hours in world back and more visible Lindens in-world.

Once again, the restrictions against allowing staff to go in-world as Lindens has been lifted. Staff need to interact with users, and find out what their issues are. LL would like to have meetings but there needs to be ground rules, such as keeping it calm, make sure actionable items come out of the meetings, and that they are not simply gripe sessions. Perhaps a good way to connect with special interest groups, such as E-sports, the bar association, music groups, machinima groups, etc. would be to create an area where these groups can post the dates and times of their meetings and informational get-togethers. Then LL staff can go there, find something they’d like to attend, and then be able to go there. Ebbe stated that he would like to be involved in that, too. Linden Labs is working towards more transparency, and they want to repair that communication. Special interest groups are welcomed and encouraged to invite LL staff to participate in their events and meetings.

In conclusion, Ebbe stated that he is excited to be here and being part of the cutting edge of this type of technology. The possibilities are endless. Advances need to continue to happen, and LL should be at the forefront of these advancements.

I remain respectfully yours,
~ Suzanne Piers
ZoHa Islands Social Media Manager