[Opensim-dev] Public Release of (free) OpenLibraryGrid OpenSim API framework

Sean McNamara smcnam at gmail.com
Tue May 17 09:52:39 UTC 2011


Hello Helmut,

On Tue, May 17, 2011 at 3:25 AM, Helmut Prendinger <helmut at nii.ac.jp> wrote:
> Hi Sean,
>
>
>
> Thank you for your extensive response to the release of our OpenLibraryGrid
> (OLG).
>
> Your arguments are understood and we discussed about them. We are now
> considering to release OLG as a BSD (or similar) open source project, in the
> near future.
>
>
>
> For us, it is important that our software is beneficial and useful to the
> community. At the same time, it is important for us to know the impact or
> benefit of our contribution in a *quantifiable* way (number of users, type
> of users, number/type of projects using our software, etc), to justify the
> work effort we put into this.
>
>
>
> If you have any idea how to measure the (possible) usefulness or impact of
> our software (in the sense described above), we would be grateful to hear
> your opinion as a member of the OpenSim community. We appreciate your
> suggestions.

There are several possibilities. Here's a bit of an outline.

(1) Choice 1 is to use a license that, while open source, requires the
end-user to submit some form of notification to your website, or
register an email address with you, in order to use the software.

(1) Upside 1: Short of users violating your licensing terms, you will
be guaranteed that each user will submit themselves to your awareness
prior to using the software. Users will still be able to transfer the
code amongst themselves, but doing so will violate a license that
(hypothetically) requires registration prior to use.
(1) Drawback 1: This is a very "hard-line" approach, and will not win
you very many fans in the free software camp, because placing the
restriction of "you must register first" on a license makes it
non-free software, even if it still qualifies as open source.
Basically, it's a negative PR move. Making the registration optional
is a much friendlier approach, and will make others more likely to
contribute to your project.
(1) Drawback 2: I don't know of any existing licenses with this kind
of terminology in them. Designing your own license has many problems.
One, you should probably have a lawyer give their legal opinion on it,
which costs money. Two, "license proliferation" (the existence of many
many slightly-different licenses) is a problem because it fragments
the open source community; creates uncertainty around the open source
/ free software status of new and untested licenses; and makes it more
complicated for developers to integrate your software. For example, a
developer or company might decide ahead of time that they approve the
use of LGPL and BSD licensed code in their products, but nothing else.
When your new license comes along, they might not be able to afford a
legal review specifically for your license.

(2) Choice 2 is to use an existing open source license (e.g. BSD, for
compatibility with OpenSim) but make registration optional. Here's how
I'd make registration optional: when you distribute the source code to
your software, write some code in the main build script that gently
asks the user if they'd like to submit either anonymous or
non-anonymous user data to your organization to help you measure the
impact of the software. Given the option to decline, only a few users
will say no: you've given them a choice, and they will probably feel
that you deserve, at least, to collect the fact that they've
downloaded your software as part of your research project. For best
results, give the user a preview of the text you'll send to your
server prior to doing so, to allow them the opportunity to review the
information. A good example of this type of system in use is the
Popularity Contest in Debian: http://popcon.debian.org/

After the build is complete, ask the user if they want to take a
survey about their use of OLG. Then just make a Zoomerang or
LimeSurvey page with a few basic questions. What company do you work
for, what is the nature of the project you're working on with OLG,
what is your industry/sector, are you a developer or decision-maker,
optional email for us to contact you, etc. You can easily integrate
this sort of logic into a configure or make-based build system, and
probably also an XBuild or Nant system. Try to go for minimal
dependencies and minimal invasiveness with your survey/data submission
prompts.

(2) Upshot 1: You're using a standard open source license, so you're
not trodding on anyone's freedoms, nor are you contributing to license
proliferation.
(2) Upshot 2: You should still receive a fairly high volume of
responses from willing users, who would love to tell you about what
they plan to do with OLG and who they work for (if they're using OLG
as part of a commercial venture). People like to fill out surveys on
things they're proud of, and most people like to be proud of the work
they do on their job.
(2) Drawback 1: Some users could interpret even the *optional* survey
nag as invasive, and might complain about it. Or, since the code is
open source, someone might create an alternative distribution of OLG
that simply excludes the survey nag / anonymous data nags from the
build system. To reduce this chance, you should support a build flag
that will disable the survey nag, which also allows automated scripts
to run the build without a prompt.

(3) Choice 3 is to just keep track of version control checkouts from
your server, or downloads from your HTTP Server. You don't have to ask
the user anything; but the downside is that you collect less
information from users. And of course you should use a standard open
source license such as BSD or LGPL.
(3) Upshot 1: This choice is completely uncontroversial, because
there's nothing for anyone to complain about! You're releasing code
and that's it. If it turns out to be generally useful, and doesn't
overlap or conflict too much with the OpenSim codebase, it might even
get merged (in parts, or as a whole) to OpenSim master. My feeling
though is that only some parts of it would get merged, depending on
which parts are useful and which parts are redundant, as evaluated by
the OpenSim core developers.
(3) Upshot 2: By appearing as a "Friendly Upstream", you may get more
contributions to OLG from volunteers in the community.
(3) Drawback 1: This option gives you the lowest chance of receiving
meaningful feedback from developers integrating OLG.


After musing over all of these options, I think the following model
would be a good compromise to fulfill your needs and the needs of the
community:

1. Release the source code under the standard BSD license (the same
terms as OpenSimulator), with the initial code Copyright (C) you or
your organization. The copyright ensures, at least, that your code
will always be used in compliance with the BSD license (which doesn't
say a whole lot because the license is so liberal). Personally I am an
advocate of Copyleft, in the GNU GPL sense, but obviously this would
be a huge barrier to adoption for a codebase that works closely with
OpenSimulator. Therefore I would recommend the BSD license even though
I prefer copyleft licenses overall.

2. Manage the source code in a Git repository, because Git is very
widely preferred as the fastest and most productive version control
system for many open source projects. This is merely a technical
decision and has no impact on licensing, so if you want to use Mercial
or Subversion or (ick) CVS, go ahead -- that might provoke some
grumbles from Git adherents, but choice of VCS is not a showstopper in
and of itself. We'll just make a Git repository on GitHub of your
code, anyway. ;)

3. Write the necessary build system scripts so that users will, by
default, get prompts to optionally submit anonymous user data and take
a survey. Include an option like --disable-prompts for automated
builds and users who know what they're doing and don't care to view
the prompt again. You can also touch a dummy file when the prompts are
run through, and check for the existence of the file and then don't
prompt if the file exists (so a user only gets prompted once, even if
they build many times).

4. Work with the OpenSimulator core developers to try and get parts of
your code merged into the OpenSim git master. What gets merged will
depend entirely upon things such as code quality, general usefulness,
and code complexity. As a general rule of thumb, extremely large
codebases tend not to get merged, simply because the time required to
review them is too high of an investment for a volunteer working on
OpenSim. However, if the functionality is extremely enticing, someone
might put in the time to peer-review your code and integrate it into
OpenSim. Anything more than a couple thousand lines is asking for a
serious time investment for a core developer to accept your code.

5. You might find this video informational as you consider
open-sourcing this work (please try to ignore the fact that the audio
is overdriven): http://www.youtube.com/watch?v=XBKwPeKLa4Q

Disclosure: I am *not* an OpenSimulator Core Developer, and I don't
have commit access. I am however a contributing developer and have a
few patches to my name. I also run several general-purpose regions on
my dedicated server, connected to OSgrid. If you want a more
authoritative answer about prospects of integrating some of your work
into OpenSimulator, you will need to speak to one or more Core
Developers. You can see a list of them here:
http://opensimulator.org/wiki/Development_Team

Thanks,

Sean

>
>
>
> With best regards,
>
> Helmut
>
>
>
> ----- Forwarded Message -----
> From: Sean McNamara <smcnam at gmail.com>
> To: opensim-dev at lists.berlios.de
> Sent: Monday, May 16, 2011 6:05 PM
> Subject: Re: [Opensim-dev] Public Release of (free) OpenLibraryGrid OpenSim
> API framework
>
> Hi,
>
>
> On Mon, May 16, 2011 at 3:35 AM, Gajananan Kugamoorthy
> <gajananan_k at yahoo.com> wrote:
>> Hi,
>>
>> OpenLibraryGrid (OLG) is a free OpenSim API framework for fast prototyping
>> and distributed deployment of advanced scientific and engineering
>> applications in virtual worlds. In our quest to provide OpenSim content
>> authors with flexible and easy to use ways to implement complex virtual
>> world based applications, we have been strongly committed to the
>> development
>> of tools that address the common concerns of venturing into the
>> utilization
>> of new technologies. As the culmination of an endeavor that started with
>> our
>> previous development tools (OpenLibrary and OpenAppCore), OLG represents
>> our
>> most solid contribution to the virtual world community, encompassing all
>> of
>> our experience in this exciting area.
>
> Free as in beer, not as in freedom, right? I haven't been able to find
> any source code, just a binary download.
>
> If you have a maintenance plan for these libraries, and will update it
> frequently to keep it working with the latest OpenSim APIs, that's
> great. Otherwise, the binaries will cease to work properly (either at
> build-time or runtime, depending on linkage) as soon as one of the
> OpenSim APIs changes signature (provided OLG calls that API, of
> course). Most developers I know would rather have the ability to use
> the latest opensim release or git master, and that would not be
> possible if we are tied to a specific OpenSim API as depended upon by
> OLG. OpenSim is still under very active development, and things can
> and do change (e.g. even between releases 0.7.0.2 and 0.7.1 there were
> significant breaking changes).
>
> That said, several successful developers maintain active codebases
> that depend on OpenSim APIs. A great example is Diva's d2, which
> contains a lot of useful features that are not included in the OpenSim
> codebase. But because of Diva's attention to detail; frequent
> maintenance of the Diva distro; and the open-source nature of the
> code; the community has plenty of confidence that d2 will be
> maintained and remain compatible with the latest OpenSim API as it
> evolves. And even if Diva stops maintaining it (as unfortunate as that
> would be!) volunteers could still take her code and build upon it, to
> keep the maintenance alive.
>
> I haven't seen any source code or statements about your intentions to
> release source code, so I believe that your project will not integrate
> very well into the development model of most OpenSim users and
> developers. Hopefully you will consider the option of releasing your
> code under an open source license. The most natural choice would be
> the BSD license, which we use for OpenSim; but personally I wouldn't
> complain if you used a different license, as long as you don't violate
> the terms of either your code's license or OpenSim's license by
> linking OpenSim with your code.
>
> Last question: Do you have any kind of API reference for OLG?
> Something of a similar purpose and presentation as the Java SE API
> docs offered by Oracle, or the .NET Framework docs on MSDN? I saw a
> bunch of tutorials on the OLG wiki, but nothing that seemed to
> completely document the classes and methods of the assemblies you've
> shipped. Another downside to the closed-source nature of the code is
> that no one can inspect the code to understand it, so you pretty much
> have to provide comprehensive documentation for the binaries to be
> useful at all.
>
>
>
>>
>> OpenLibraryGrid provides the necessary functionality to create and
>> manipulate a very diverse set of virtual entities (objects, avatars, etc.)
>> and the ability to distribute such functionality over several virtual
>> world
>> regions, endowing developers with the capacity of creating extremely
>> flexible solutions.
>> Website:
>> http://www.prendingerlab.net/globallab/technology/openlibrarygrid/
>
> "...over several virtual world regions". Were you aware of
> MegaSimulators (or MegaRegions, I guess) at the time that you were
> designing this? What about the recent work enabling the creation of
> arbitrary-sized regions? These are two ways that the community has
> devised to aid in coping with the limitations of the traditional
> 65,536 sqm region, and I think both solutions have their pros and
> cons. Did you evaluate them and toss them out, or are you using one of
> these solutions, or did you do something completely different?
>
>
> Anyway, thanks for the freeware, and I hope it'll be free software (as
> in freedom, not price) sometime in the future.
>
>
> Sean
>
>>
>> Other related software (MPML3D, EML) can be found at:
>> http://www.prendingerlab.net/globallab/technology/
>>
>> Demo videos of applications based on OLG and predecessor technologies can
>> be
>> found at:
>> http://www.youtube.com/user/prendingerlab
>>
>> Helmut Prendinger (Principal Investigator)
>> Arturo Nakasone (Project Manager)
>>
>> National Institute of Informatics, Tokyo
>> Global Lab Project Website: http://www.prendingerlab.net/globallab/
>> Homepage: http://research.nii.ac.jp/~prendinger/
>> _______________________________________________
>> Opensim-dev mailing list
>> Opensim-dev at lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>
>>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
>



More information about the Opensim-dev mailing list