What’s Next..?

Here at Imprudence we’ve been juggling several issues, trying to develop two different clients at the same time (Imprudence and Kokua) for three different platforms in 32bit and 64bit flavors. not to mention supporting not only the Second Life grid but all the various OpenSim grids as best we can. We think we’ve made some pretty awesome viewers but lately we’re also become stagnant as we’ve been weighted down by trying to juggle all these various things. It seems we may have over extended ourselves a bit and to fix that we need to refocus and simplify. Thus in the coming weeks we will be holding an all-hands team meeting for all Imprudence/Kokua team members, be they Dev or Support, where we will discuss what’s working and what isn’t and what we plan to do about it (Details have already been sent to all team members).

But we’d like to hear your input as well, as we make these viewers for you our users after all. Tell us what makes Imprudence special for you, what draws you to this particular Third Party Viewer over others and what you would like to see going forward.  How do you use Imprudence, and how do you use other viewers even the official one? What do you like about them, what don’t you like, and how is that similar or different from Imprudence. Do you use OpenSim, Aurora or any other alternative grids, even your own local grid? Is there anything you think that Third Party Viewers are missing that would make them easier or more productive for people? What about the site itself, this blog, the forum, the wiki and etc, how can we improve it?

While we can’t make any promises about addressing every issue, we will try to discuss any points made here in the comments.

Happy Holidays!

All of us on the Team would like to wish you all Happy Holidays. Whether you celebrate Christmas, Chanukah, Kwanzaa, Festivus, or simply New Years we hope you have a wonderful time this end of year with family and loved ones. We’ll be back next year with more Imprudence/Kokua goodness to come.

Our weekly meetings will resume on Wednesday January 4th at 20:00 GMT. We have changed Google Calendars and you can subscribe to the new calendar at this address, if you want to keep abreast of any changes to meeting times.

Happy Thanksgiving & A Short Update

Thanksgiving at the Trolls

Thanksgiving at the Trolls by martha_chapa95

It’s Thanksgiving this week in the United States, and while not all of the team is based in the US a number of us are. And while we’re with our friends and loved one’s this holiday, we wanted to wish everyone the best this week, whether you celebrate Thanksgiving or not.

As an update; work on the Kokua client continues and we’ve had Mesh view working for a little while now in this very alpha client, and now we have Mesh uploading working as well (On both Second Life and OpenSim 07.2+ based grids). The client is still very alpha though and we don’t yet recommend people testing it out as we can’t guarantee a stable experience (We hope to have something stable enough for people to test soon, and we’ll announce it here on this blog when we do). Further we won’t be having our usual weekly meeting this week due to the holiday, but will be returning next week, at the same time but on a new day (Wednesdays at 20:00 UTC on the 3rd Rock Grid as always). Meeting logs will continue to be posted to the wiki for those who can’t attend but wish to see what was discussed.

So be safe this holiday everyone, and we’ll see you next week.

3rd Party Viewers & Open Sim’s 6 Month Barrier

As announced two weeks ago on JustinCC’s Open Simulator Blog, the 6 month development barrier between opensim and viewer code has been dropped in favor of a new policy.

The original policy was put in place near the birth of Open Simulator due to legal concerns over derivative copyright issues. The policy stated that no developer contributing code to OpenSim could have looked at or worked on viewer code within the last six months prior to submitting any code to the Open Sim project. This effectively divided the development community into those working on third party viewers like Imprudence and those working on OpenSim. This made it difficult for developers are the respective projects to squash bugs that not specific to the viewer or the server, but that bridged across both (For example the 4096 ‘hg’ bug). Now that this policy has been retired for something more liberal it will be possible for developers to look at and work on both the viewer and Open Sim server code to better optimize both projects.

According JustinCC, under the new policy developers on the Open Simulator project make interact with viewer code and still submit to the OpenSimulator project so long as the code is either under 100 lines in length (And strictly a bug fix not a new feature), or if a new feature or over 100 lines that the developer agree to a contributors agreement. Said agreement is modeled on the one developed by the Harmoney project, it asks for an explicit copyright license but not transfer of copyright ownership ant it further asks for a patent grant, like the vast majority of other such agreements out there. What this means for projects like Imprudence in the future is better integration and more stability with Open Sim and visa-versa, as well as possibly broader developer support as devs will no longer have to isolate themselves to Open Sim or 3rd party viewers but can now work on both at the same time. Now that this step has been taken there is no going back, as it would be nearly impossible to reverse course on a decision such as this, so developers need not be tepid about wading into the waters of the respective viewer or server projects. And while the effects from this may not be immediately felt, it is a very positive step forward for both Imprudence and other 3rd party viewers and the Open Simulator project itself.

It should be noted however that the 6 month exclusion policy was specific to the official Open Simulator project and competing projects did not necessarily have the same restriction. Other restrictions or policies may apply besides those listed here, this article is merely a summation of the recent changes to Open Simulator in relation to 3rd party viewers.

Call For Mac & Linux Developers

It’s been a little while now from the change-over from Jacek to myself (ZATZAi) and I’m finally starting to get a handle on things. I have some projects I’m working on with the others here on the team to try and make your Imprudence experience better in the future. Here on the web site front the plan is to better integrate the wiki, the forum and the blog to provide a more seamless experience and to make it easy to everyone to find what they’re looking for. Whether you’re looking for where to report a bug or how to do it, where to give feedback, or how to get support… The plan is to make the site and it’s features more straight forward and accessible to users who need more information or want to communicate but don’t know what the proper channels are.

On the client front, we’ve recently released Imprudence 1.4 Beta 2 which fixed a great deal of bugs from the first beta and we continue to work on the next release (No timeline yet, but I’ll try to post something as we get closer). On that front we could use some help. If you have programming experience with C++ and the Mac or Linux 32bit platforms and would like to volunteer please get in touch with us. We’re of course interested in anyone who wants to volunteer, but we’re in particular need of developers for those two platforms. So if you have a passion for Virtual Worlds, C++ experience and can compile the client on Mac and/or Linux 32bit and would like to help develop the future of Imprudence/Kokua, then by all means drop us a lines.

Please send inquiries to me directly for now, I’ll set up a form on this blog to make it easier in the future.

zatzai (a) kokuaviewer.org

Why doesn’t Imprudence have multilayers, inventory links, or mesh rendering?

Other viewers have them, so why don’t we? Why would a developer purposefully avoid such useful features–ones that users clearly want?

The answer is something of a mixed bag, and to get into it I’ll first have to explain a little bit about licensing and how licensing works. If you already know this stuff, please bear with me as I’ll get to my point soon.

As many of you know, Imprudence is licensed under the GPLv2+FLOSS Exceptions. The GPL is basically a software license that allows for free and open code. It’s because of this that we can easily share our code and incorporate others’ code in turn. Even so, the GPL doesn’t allow us to do whatever we want. There are certain restrictions, such as:

  • You cannot change the license of any line of code unless you are the original author, you hold copyright on that code, or the license permits it. When we get a patch submission, the author must license their code in a compatible fashion.
  • You may not distribute works based on GPL code that violate any part of the GPL itself. Doing so leaves you open to legal action.

So, how does that impact us, exactly? Imprudence is opensource. Second Life is opensource. Why can’t they work together? Here’s where the restrictions of the GPL come in: a bit over a year ago, Linden Lab decided to change the license for the Second Life viewer from GPL+Exceptions to LGPL–a similar-sounding but ultimately different license. While the LGPL is compatible with the old license, there’s no way to go from LGPL to GPL+Exceptions. This put a massive hurdle in our way as far as porting features from the Second Life.

For example, say someone submits a viewer 2/3-based patch to Imprudence.

While the GPL and LGPL are considered compatible licenses, we don’t own the copyright on the LGPL code submitted to us. Thus, we cannot change the license of that source to include exceptions. Whatever code was licensed as LGPL must stay LGPL (or equivalent) and that distinction must always be made clear wherever that code is used.

This might not sound like much of a hurdle (and at times it isn’t–we switched over to the LGPL version of our Quicktime plugin ages ago) but consider the Inventory Links patch that’s currently in most other viewers. It contains ~43K lines of code, and is made up of an unknown mix of GPL+Exceptions viewer 1 code and LGPL viewer 2 code. The two licenses are not made distinct, so the patch is clearly a violation. There’s no way we could legally use it as is.

However, if we could figure out which lines are compatible with Viewer 1 and which ones are compatible with Viewer 2, we could add the appropriate licensing and include the patch. Needless to say, this has felt like a daunting task to us, especially when we’ve been more focused on bug fixes and finalizing 1.4.0 (if you’re using 1.4 and aren’t on beta 2, I strongly recommend upgrading) as far as Imprudence goes. But, these are features you guys need. We want to include them.

My plan is to start looking at these patches one by one and sorting out which lines we can use and which lines need refactoring. As I mentioned in a comment on the beta 2 post, any volunteers who can help us with this process are welcome. Codie and I will be starting on this later tonight, and we’ll see how far we get. If you’d like to join us, please email me at mccabe@kokuaviewer.org and I’ll tell you what you can do.

You might find yourself asking, why go through so much effort for something like a little licensing issue? Why be so concerned when the author of the patch didn’t seem to be?

Our answer has always been–almost from the project’s inception–that while sometimes doing things the right way isn’t easy, these concerns are important to us. It’s thanks to licenses like the GPL, as well as the rules that accompany them, that opensource software has matured to the level it has today. Free and open software gave us the ability to start Imprudence (and later Kokua). We feel an obligation to respect that.

Anyway, I hope this clarifies for people where we’re coming from, and why we’ve done some of the things we have.

EDIT: I’ve updated this post a bit to try to make things clearer.

Imprudence 1.4.0 beta 2 Released

It is with great joy that we bring you Imprudence 1.4.0 Beta 2. This release contains a very large number of stability fixes especially for Windows machines. We also fixed several bugs with the audio subsystem and replaced the old flaky Windows installer.

IMPORTANT: Unfortunately those fixes does not include streaming for Macs, as we are currently out of a regular Mac developer. This build does NOT include Henri Beauchamp’s mesh patches either, as Imprudence is feature frozen. We are currently discussing the possibilities but are really focusing on Kokua’s next release for now, which will bring mesh support anyways.

If you need help with the viewer, please see our Support page. If you find a bug and want us to fix it, please follow our Reporting a bug guide.

Fixes

This build is mostly about bug fixes, you can view the entire list here: Commit list

Features

  • Selective cache clearing: now you can selectively delete different types of disk cache separately.

Download

Builds for other platforms should be released soon, thanks for your patience.

Enjoy!

 

Introducing ZATZAi

Please join me in welcoming our new project organizer, ZATZAi Asturias! He will be responsible for many of the day-to-day operations of the Kokua/Imprudence Project, such as organizing meetings, monitoring development progress, and administering the secret daily beatings I have used to keep the rest of the team hard at work for the past 3 years. :twisted:

ZATZAi brings a wide range of skills and experience to the project. He has been involved in Second Life since 2005, and for a time was one of the estate owners of the United Sailing Sims, keeping track of projects there, and working with estate managers and leaders from the community. He helped organize and hosted the in-world portion of SLCC 2007, and has even run his own inworld-only convention called (of course) Second Convention.

In addition to his experience organizing virtual world projects and events, ZATZAi has many useful technical skills, including web site development, programming, and graphic design. I’m sure you’ll agree that he is a great addition to the team!

So, we’re very excited to say: Welcome aboard, ZATZAi! :D

P.S. Everybody: don’t forget the birthday parties this weekend! :mrpurple:

Get Ready to Party!

The Kokua/Imprudence Project’s 3rd Birthday is September 1, and we’re having an epic bash: four parties on four grids, spread over three days!

We kick off the celebrations next Thursday afternoon during our weekly ImpDev meetup time, on our home turf on 3rd Rock Grid! Friday night, we’ll be bringing the party to InWorldz. On Saturday afternoon, we’ll be rocking out on OSGrid. Then on Saturday night, we wrap up the celebration with a visit to the grid where it all began: Second Life!

Thanks to the 3RG admins; Zauber Paracelsus; Nebadon Izumi; and our own CodeBastard Redgrave for providing space for the parties. :)

Everyone is welcome to attend any (or all!) of the parties, so I hope you’ll put on some purple and join us as we celebrate the past three years of Imprudence, and rock in the Kokua-filled year four! :improck:

Thursday, September 1: 3rd Rock Grid

When: September 1 @ 1PM PDT (20:00 UTC) (click to find your time zone)
Where: The Hoagie region on 3rd Rock oGrid.

Friday, September 2: InWorldz

When: September 2 @ 10PM PDT (September 3 @ 05:00 UTC)
Where: The Isla Draconia region on InWorldz.

Saturday, September 3 (afternoon): OSGrid

When: September 3 @ 1PM PDT (20:00 UTC)
Where: The Imprudence region on OSGrid

Saturday, September 3 (night): Second Life

When: September 3 @ 10PM PDT (September 4 @ 05:00 UTC)
Where: The Rouge region on Second Life

Help Wanted: Project Organizer, Developers

The Kokua/Imprudence Project is looking for several volunteers to join our team! Besides finding some people to take over some of my responsibilities after I retire, we also hope to attract more developers, so that we can gear up development on Kokua.

Our team is made up entirely of unpaid volunteers; this is purely a labor of love. You will have the opportunity to gain experience and hone your skills, while being part of a team of wonderful people, creating great software used by thousands of people! :)

If you are interested in any of these roles, contact volunteer@kokuaviewer.org.

Project Organizer

We are looking for a dedicated volunteer to help with project organization. The project organizer will be responsible for running our weekly meetings, keeping track of project progress, posting status updates on the blog, and generally making sure that things keep moving along smoothly. This role does not require any sort of programming skills, but does require excellent organizational and management skills, and good English writing skills. The project organizer should be able to dedicate 5–10 hours per week to this project.

Mac Developer

We are looking for an experienced Mac developer to join our team. In addition to helping with general development (i.e. creating new features, fixing bugs, etc.), this developer would be responsible for preparing Mac releases of the viewer, porting/testing viewer features on Mac as necessary, investigating Mac-related bugs, and developing and maintaining Mac-specific features.

Additional Developers

In addition to a Mac developer, we would like to add several more developers to our team, so that we can speed up the pace of development on Kokua. Ideally, developers should have some prior experience with C++ or similar programming languages. Most importantly, developers should have enthusiasm for participating in virtual worlds; a drive to create high quality, easy to use software; as well as respect for other people, and a desire to understand their needs.

It is up to each developer to decide how much time and energy they can invest in the project, but active developers are generally expected to be able to dedicate at least 10 hours per month on development and maintenance of the viewer software. Of course, even if you can’t dedicate yourself to being a full-fledged team member, we still greatly appreciate patches and other contributions from the community. :)