Archive for the 'Discussions' Category

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 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.

Mac User Survey

Greetings, Mac users! We’ve created a short survey to help us find out what sort of Macs you are using to run Imprudence, or would use to run Imprudence if it was compatible.

This information will give us an idea of how many people still use PowerPC Macs, how many people would benefit from a 64-bit version, and how many people would be affected if we updated to frameworks only available in 10.5+.

If you use a Mac, please take a moment to fill out the survey. Thanks! :)

All responses are anonymous and confidential. Please respond only once per person.

Which version(s) of Mac OS X do you use on a regular basis?
(You can find this information in the Apple menu > About This Mac.)

What processor type(s) do you have in your Mac(s)?
(You can find this information in the Apple menu > About This Mac.)

Imprudence Poll: Double-Click Teleport: on or off by default?

Imprudence 1.2 has a feature borrowed from the Emerald viewer: double-click teleport, i.e. double-clicking somewhere in the 3D view will instantly teleport your avatar to that location. There are also pie menu entries, “Go Here”, which do the same thing as the double-click teleport.

However, some users have commented that the double-click is too easy to accidently trigger, and can interfere with double-clicking on scripted objects. We have added a confirmation dialog to prevent accidental teleports, but that isn’t an ideal solution, because confirmation dialogs can be annoying and disruptive too.

We’ll be adding an option to allow users to choose whether they want the double-click behavior, but we’re still deciding whether it should be enabled or disabled by default. Mostly this depends on whether more people find double-click useful or annoying.

So, here’s a chance to have your say: Should double-click teleport be enabled or disabled by default?

Head to the forums to vote, or leave a comment here on the blog!

Weekly Imprudence Meetup – When?

We’re thinking of having a weekly meetup for developers and other folks interested in Imprudence’s progress. The purpose of the meetups would be to keep in sync with each other, share what we’ve each been working on, discuss roadmaps and future plans, and generally keep the project moving and active. Anyone is welcome to attend, but be aware that it won’t be a “users group” meeting, it will be focused on getting things done.

So, we want to gather input about what days and times would be best to hold the meeting. We’re leaning towards a weekend meetup (Friday, Saturday, or Sunday), and it would be held most likely in SL or OpenSim, or possibly on IRC. If you would be interested in attending the meetup, please contact me with the days and times (including time zone!) you could attend.

You can contact me via:

  • SL instant message: Jacek Antonelli
  • Email: jacek.antonelli on gmail
  • Comment on this blog post.

Orange Island Discussion Transcript Available

If you were unable to attend the discussion yesterday for Orange Island Innovation Week but are interested in what we talked about, you’re in luck! The good folks at Orange Island have posted a transcript of the event for your downloading pleasure!

Inworld Coders Meeting

If you are interested in working on the Imprudence source, we’ll be meeting inworld this Saturday to discuss coding, our viewer roadmap, and converting feature requests into coding tasks.

Imprudence at Orange Island Innovation Week

I’ll be participating in a discussion at Orange Island tomorrow, Tuesday September 30 at noon SLT. I’ll be representing the Imprudence project as one of a panel of participants, including the lovely and talented Rheta Shan, who won the UI design contest a while back. The discussion will be moderated by Dusan Writer, and will cover innovation, UI, lightweight clients, and more! It should be fun times!

In-World Discussion Notes and Transcript

In case you missed or weren’t able to make it to the informal gathering earlier this week, but still wanted to go, Jacek has put the notes and a transcript up on the forums. It was great seeing everyone there. More ideas were discussed, with some interesting feature requests popping up (all included in the notes), and Jacek answered a few questions about the project.

In-World Discussion Sept 16 @ 1PM SLT

We’ll be having a casual discussion in Second Life tomorrow at 1PM, and anyone is welcome to attend. The topic will be ways to improve the SL user interface and usability. Lex Neva has kindly let us use her new plot of land in Hippotropolis for the chat. Thanks, Lex!

  • Topic: User interface, usability, accessibility, etc.
  • When: September 16 at 1PM SLT
  • Where: Hippotropolis (SLURL)

Improving Accessibility

Imagine this scenario: You’re confined to a wheelchair and have very limited use of your arms. You can’t use a physical keyboard, but you can handle a mouse or other pointing device well enough to work with an on-screen keyboard. You use Second Life; you enjoy moving around freely, talking with people, seeing all there is to see.

But one day you accidently press ‘M’ on the on-screen keyboard at the wrong time, and SL switches to mouselook mode. Exiting mouselook is a simple matter for someone fortunate enough to be able to use the keyboard, but for you, it’s impossible. You’re now completely stuck.

Continue reading ‘Improving Accessibility’