Archive for the 'Imprudence' Category

Imprudence Townhall, Volunteer To Dev/Test!

Volunteer to be a Dev/Tester/Etc for Imprudence (Not Kokua)

Sunday February 26th @ 20:00 UTC / 12:00pm Noon Pacific

Hoagie Sim @ 3rd Rock Grid

As many if not all of you are now aware, after a lot of input from the public and our own discussion and thoughts on the matter, the current team has decided to move ahead with Kokua development to the exclusion of Imprudence. However we wanted to find an answer for our users who still prefer/rely on Imprudence but we weren’t sure what that was going to be, which was why after the town hall we stated the future of Imprudence was still to be decided. One developer outside our team had desired to join us or some time now, but he wanted to work on Imprudence not Kokua. Some of you may be able to guess that his person was onefang rejected, create of Meta-Impy. This gave us a series of options on how to proceed with either depreciating or continuing support for Imprudence.

There was much internal discussion on how this should be handled, we definitely wanted to move the existing team to Kokua. This extra help certainly meant we could at a minimum push out a final 1.4 release of Imprudence, but was it possible to do more? We decided to take a chance, and for the first time create two teams under the Kokua/Imprudence project (Perhaps we should call it Team Purple to simplify the joint name); the existing team members would work on Kokua and a new team of separate devs would continue work on Imprudence. These would be devs who would otherwise not work on Kokua, and the Kokua devs would largely not involve themselves with development of Imprudence as Kokua is now the flagship project (Though we’ll have occasional joint meetings and try to help each other of course). So it was decided to invite onefang rejected to join the team as the head of the Imprudence project, he’ll have to staff his team with devs and volunteers who are passionate about Imprudence like himself, so for all of you who love Imprudence he’ll need your help.

Thus we will be holding an Imprudence town hall of sorts, this Sunday February 26th at 20:00 UTC (That’s 12:00pm Noon Pacific) at our usual meeting place on the Hoagie sim of the 3rd Rock Grid. The purpose of said meeting will be to enlist volunteers to help develop and test Imprudence going forward, and to decide what direction to take it in. However unlike the recent Kokua reorganization, this will not be a “reboot” of the project but a continuation. So for all of you out there who lamented the “death” of Imprudence, here is your chance. Join us this Sunday, be you a potential developer or tester and help us to bring Imprudence into the future alongside Kokua.

Results Of All Hands Meeting

This last weekend we had our all hands meeting where we discussed the fate and direction of the project going forward. I’m pleased to say that the meeting was well attended not only by team members but the public as well. A few of us even met for the first time as not everyone is able to make the regular meeting due to scheduling conflicts. You’ll find a full transcript of the meeting on our wiki but I’ve included a summary of what was decided for convenience.

We’re going to continue to develop Third Party viewers with a focus on cross supporting Second Life and OpenSim/Aurora. However we’re going to focus on Kokua in the future, the ultimate fate of Imprudence is still undecided though as we may push for a final 1.4 release but nothing that takes up too much of our time. Kokua will use Second Life v3.2 as a base, we feel the LL code for v3.2 has matured greatly beyond v2 and v3 and we’ll of course make our own modifications to it to make it more “purple” in flavor. It is also our intent to finalize the name change from Imprudence to Kokua, Imprudence and Kokua are separate viewers and the project has historically been called the Imprudence project. The intent was to switch from Imprudence to Kokua as the next generation client was released but it has been dragged out for quite a while now and caused confusion, so we’re going to finish the change over to Kokua.

It’s also our intent to give a fresh face to our web presence, to update the look and feel of the blog and forum, and possibly eliminate some section like the rarely used Q&A sub-site. Our hope is that this will make it easier for users to navigate our online infrastructure and find the information or support they need. This may include the addition of a few simple tutorials about how to use the client and how to connect to grids besides Second Life proper.

Windows 32bit, Linux 32bit and Linux 64bit will be the three platforms we focus on primarily. We’ll make an effort to get out a Windows 64bit and Mac client down the line, but right now we need to focus on getting things rolling and these best fit our users demographics. We’re supporting two flavors of Linux because our devs use both Linux 32bit and Linux 64bit, plus it’s a big PITA run the 32bit client on Linux 64bit so we’ll continue to make a Linux 64bit client available. Regarding Windows, at first we’ll only provide a 32bit client (With SSE optimizations) as we have been doing already, the necessity of a 64bit client on Windows is questionable as the client can’t quite make use of all that ram (Yet, but that can change), plus Windows 64bit OSes can easily run 32bit programs. Still we would like to release a Windows 64bit version at some point to try to see if it makes a difference. Unfortunately we still don’t have a Mac developer and thus can not support the platform, we’d like this to change but it is the state of things for now.

There are other matters besides these that were discussed at the meeting, I encourage you to read the meeting transcript on the wiki if your curious.

 

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.

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!

 

IMPORTANT: Server side issue on SL grid breaks map, edit and visibility rights

In order to prevent a few bug reports, we would like everyone to read this JIRA explaining the issue. Basically, most TPV viewers are affected by a bug that prevents from setting map, edit and visibility rights from your friendlist. This only occurs on the SecondLife grid and doesn’t affect other grids. It’s unfortunately out of our control, and also affects most other TPVs. The JIRA issue is marked “Fix Pending” so we can expect that to be repaired on the next Sim rollout by the Lindens.

NOTE: This won’t affect permissions ALREADY granted to users before that bug occured. Those who already had those types of rights set up will still have it working.

JIRA SVC-7104: Granting/revoking perms broken for non-web-profile viewers

Thanks for your patience.

 

Codie, Community Liaison for Imprudence

Imprudence 1.4 Windows Beta Test Build

AKA “Beta 1½”.

This is a special Windows-only test release to address some specific issues before we release beta 2. If you use it, I’d appreciate it if you’d comment on this post if any of the following don’t work for you:

  1. Imprudence always installs and runs on XP.
  2. Inworld audio always works (except on parcels where restrict sounds is checked. See #819). You can verify this by checking your audio driver in Help >About Imprudence.
  3. Prims don’t turn invisible when they shouldn’t. If you find prims suddenly turn invisible (but are still selectable), please comment here with an SLURL and your draw distance so we can investigate.

Download.

This will default install as an “Experimental” build. You shouldn’t have any problems running it side-by-side with 1.4 beta 1.

As far as release notes go, it’s mainly the above along with:

  • Numerous crash fixes.
  • In particular, preferences-related crashes and OpenSim/InWorldz teleport crashes.

Also, if you’ll excuse me for getting serious for a moment, I’d like to say this as a personal note. One of the unique aspects of working on Imprudence is our distributed QA process. When we get to the point where we can’t test a feature/fix anymore ourselves, we release test/beta builds like these to you, the user, for feedback. Your comments (and your passion for putting the viewer through its paces) are tremendously helpful in tracking down bugs we’d otherwise never encounter ourselves.

For some, this might seem like “passing the buck” on our part, but in my eyes it’s always been a highlight of just how much working on Imprudence is a community process. We all care about putting a working viewer in your hands, and the fact that so many of you are willing to take time to help us do that really does warm our hearts and keep us motivated.

So, I just want to say, I know it might seem tough to see where we’re going when most other viewers are doing things differently right now, but I hope you’ll be patient with us. Things are still coming together as far as finalizing and transitioning go, but we’ll get there, and we haven’t forgotten why we do this: our community. Because seriously, our users rock :)

Some insights into our development process

As many of you have noticed, the process for getting Imprudence 1.4 beta 1 out has been a long one, so I wanted to take some time tonight to explain our process as developers behind it–what we intended to do, how we got there, and where we go from here.

Imprudence is something of a unique project for me in that we’re all volunteers scratching our itches, yet somehow despite this we’re able to come together and make things work. I know this sounds horribly cheesy and cliche, but I really have never worked with a more heartfelt and kind-hearted group of people. What makes an ImpDev unique, I think, is that we’d have just as much fun sitting around chatting for hours as we do hacking on the viewer source. We care a lot about what we do, and ironically that’s partly why the 1.4 process has been so frustrating for us.

After the release of 1.3, something became clear: our Quality Assurance process was far too long. We would fix an issue, then it would sit on the repo for weeks without being properly tested on all the environments we want to support (OpenSim, Second Life, InWorldz, and now Aurora grids). We changed that up with releasing the Weeklies (later renamed “Experimentals”). The idea was to get fixes as fast as possible into user’s hands in order to get important feedback. A LOT of the major bugs in 1.3 were fixed in this manner, and thanks to residents who were willing to track down bugs with us we really made a lot of progress. The 10.23 Experimental release is a highlight for people, I know, and that’s largely thanks to residents all over the metaverse being involved in the development process (one of my favorite stories is how many of us it took to track down what we called the Infamous Wright Plaza Crash of Doom. Fixing this eventually led to a patch that made all other 1.x viewers more stable).

But we’ve had problems. The QA process started to take on a life of its own, and as we got sucked into releasing quick updates the gap between our Stable and Experimental branches widened. When our doors were flooded with tens of thousands of new users after another viewer was banned on Second Life, we were thrust into a quandry: do we push to include all the new feature requests, or continue to focus on stability and workflow improvement? In the end, the Experimental line got lengthened again by a rush of new features (and fixes for those features), further widening the gap between the two branches. Looking back, that was probably a mistake. We should’ve kept to our core mission of releasing solid incremental viewers without the feature bloat that other viewers have. But, as I said, we’re a group who cares passionately about our users, and it was important to us to address what we felt were significant needs.

This brings me to the subject of beta 1. The release notes for 1.4 are longer than any release we’ve done to date (and if you follow our commits on github, you know how much work we put into the viewer on a regular basis). It’s been something of a culture shock for us, trying to resolve issues while still moving forward. The Imprudence development process is much like that of a UI designer. We make a change we think is useful, then release it to the community, gather feedback, and refine. Over the course of several iterations, you get a release like 1.3.2, which many people still prefer due its stability. With 1.4, though, this process is much harder for us. We’re giving the community a lot to look through, and we’ve received a lot of feedback. In a way, it’s almost intimidating, because 1.4–as the last of the Imprudence line–is very dear to us, and as I mentioned, we’re all personally dedicated to giving you guys the best viewer we can.

So, where we go from here might be a bit of a struggle for some. There’s obviously work left to do, but I want to point out that releasing the beta (i.e. moving Experimental features into the stable line) has pushed us to focus back on core issues. Based on early feedback, the inworld audio issues on Windows seem to be fixed. Inventory loading’s been vastly improved. More crash fixes have been pushed. The texture cache will hopefully be improved next if time allows before beta 2. Likewise, we’ve also had to balance our need to work on big issues with our desire to make sure everyone who submits a bug report at least gets their voices heard, which is why it’s so important for us that you use the issue tracker and promote it among yourselves. Commenting there brings issues to our attention much faster than commenting in other places. Particularly with this release, there’s so much going on it’s hard for us to give you guys the one-on-one time we’d normally like to. For example, I only recently learned about the “disappearing prim” issue from a forum post and a comment from a friend (currently, it looks setting RunMultipleThreads to FALSE in the debug settings fixes the issue;  let us know if this works it for you or not).

Most of all, I want to make a personal appeal to the community to be patient with us as we work on all these issues. We have Imprudence 1.4 to finish up, then a huge merge to do with Kokua followed by the many features/improvements we want to implement there. This is no easy task, believe me. As a user of our software myself, I know how frustrating it can feel to use an unfinished product, but it’s our hope that at the end of a concerted effort 1.4 will be the best version of Imprudence yet–one you all can look back upon as a journey that was worth the destination, and Kokua will grow into the same.

In short, we’re here, focused on getting this done. You guys are still the primary reason we do this, and while we haven’t been interacting with the community much lately, you guys are always on our minds. I hope you’ll keep with us as we continue to fine tune our process. In the meantime, I also encourage you to check out our new support system. I think it’s really nifty, and Codebastard Redrave has done an awesome job at making it easier to get answers from your fellow users. Check it out at http://support.kokuaviewer.org/qa/.

Cheers :)

 

Imprudence 1.4.0 beta 1 Released

Imprudence 1.4.0 beta 1 is now available!

This is the first non-Experimental release in the Imprudence 1.4 series. This version will certainly contain some bugs, but probably not anything severe. We consider it to be safe and suitable for everyday use. However, Mac users should be aware that streaming audio will not play on Mac in this version. We are working to fix that.

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.

Compared to the latest Imprudence Experimental, Imprudence 1.4 has many bug fixes, better inventory caching, the Animation Overrider starts working faster, the object exporter can export textures from SL (with TPVP-compliant permission checks), the Preferences have been reorganized, and more. We strongly encourage all Imprudence Experimental users to upgrade to Imprudence 1.4.

Compared to Imprudence 1.3, Imprudence 1.4 adds a mind-blowing number of new features, UI improvements, and bug fixes. We recommend Imprudence 1.3 users also upgrade to Imprudence 1.4 soon, unless you require streaming audio support on Mac.

Here is a brief overview of some of the most notable new features, grouped by category:

  • General: Support for WindLight notecards; Updated Chinese, French, German, and Japanese UIs; Derender object/avatar; Gestures can use more keys; Reload $ Balance; Animation Overrider starts working sooner.
  • Communication: Spell Checking; AutoCorrect; Chat Translation; Chatbar Commands; Display Names support; Highlight chat from friends; Highlight chat mentioning your name or nickname(s); Search bar in Friends and Groups lists.
  • Content Creation: Support for Alpha and Tattoo layers; new Prim Alignment tool; Local Textures (real-time preview of textures on your computer without uploading); Object texture export from SL (with TPVP-compliant permission checks); Upload support for Photoshop PSD image files (available on Mac only); Copy/Paste buttons in Build tools.
  • Login, Grids, and OpenSim: Login name and password saved per-grid; Support for variable sized regions (i.e. bigger than 256m) when available; Support for the OpenRegionInfo capability.
  • Map, Radar, and Teleport: Full Radar; Teleport History; Estate Managers’ minimap radar distance is no longer limited; Right clicking objects in Area Object Search to teleport to/cam to/edit them.
  • Media, Browser, and Networking: Media system revamped with SLPlugin; Media Filters; Interaction and zoom with streaming media/webpages; Improved XMLPRC and SOCKS5 proxy support; Parcel media URLs are no longer hidden.
  • Preferences: Reorganized Preferences window; New UI skins (Dark and Gemini); Sliders for draw distance, etc. allow typing in exact values; Search bar in Debug Settings.
  • Texture Loading: Many, many texture loading improvements from Robin Cornelius, Thickbrick Sleaford, and others; Various improvements to help prevent unloaded (cloud) avatars.
  • Development: Many, many, many code improvements and cleanup under the hood. Special thanks to Aleric Inglewood and others for their work on this.

You can find more information about these and the other changes in this version by reading the release notes. As of this writing, the release notes are still a work in progress, but we will try to finish them up before the final 1.4.0 release.

Download

Enjoy!

Thank you !

I want take the chance before the beta is released  to say thank you to YOU -our users- and YOU – all developers- of Imprudence and Kokua.
Last December the Computer I was doing the Linux 64-bit releases on showed signs of aging, which got worse in January and end of February it was almost unusable. Fortunately McCabe, when he heard of this, didn’t hesitate to offer me to get a new one from donations left, when about the same happened to his computer. Thank you McCabe! Thank you all who donated that time !
So since March the Linux 64-bit releases are done on a shiny new Box with Intel Core i5-750 processor, 4GB of RAM, 1 TB harddrive and a Gainward 1GB graphics card with nvidia GTX 460 chipset.

Special thanks to Rynnan, who helped me to find my way through quicksand north-north-east bridges and smoke signal prone power supplies. Thank you Rynnan!
I am really still surprised what huge difference it is to do development without waiting forever for the compiler to finish. So already a lot thank you is written in code on the new machine, most work on Kokua is done with it. And a lot of bugfixes for the Imprudence 1.4.0 beta release, to which I am looking  very much forward  for.

Thank you :)

Armin