Re: [Opensim-dev] Error detection when storing an asset

2014-04-18 Thread Melanie
Hi Oren,

I disagree about propagating exceptions. To the caller, asset calls are opaque 
and cannot fail. There are too many places where exceptions would cause issues 
and the focus has always been on keeping the sim up and running at almost any 
cost.

That said, no old asset servers (UGAIM) exist anymore, so the comment and the 
bad handling of null returns should be fixed.

I would like to see assets being cached on asset server failure, but then 
retried using a disk based queue with exponential back-off. Allowing an asset 
to fail storing is better than having the sim crash, but of course storing it 
as soon as the asset server is back is preferable. We have something similar, 
but memory based, for Avination and it has served us well. I believe even our 
code may still have the bad return calue checking in it.

I will see about putting our asset retry code into core as a starting point, 
then the rough edges can be smoothed and disk based queueing introduced so that 
assets can be retried even across a simulator restart.

- Melanie

On 18 Apr 2014, at 10:44, Oren Hurvitz or...@kitely.com wrote:

I have found that when OpenSim tries to store an asset using 
AssetServicesConnector, it doesn't handle failures well. There are several 
problems in AssetServicesConnector.Store(), and some of them seem to be based 
on historical considerations that may no longer be relevant, so I'd like to see 
if anyone knows about these issues before pushing a change.

AssetServicesConnector.Store() uses SynchronousRestObjectRequester to send the 
request. The first problem is that SynchronousRestObjectRequester.MakeRequest() 
hides exceptions and just returns null. This is a mistake: MakeRequest() should 
propagate exceptions, so that callers will know that an error occurred. Store() 
already catches these exceptions (as it should), so this won't make a big 
difference in our case. But of course, this change in behavior to MakeRequest() 
may affect other places in the code as well. It's better to fail-fast when 
errors occur, and not hide them, because doing so makes the errors much harder 
to diagnose once they become apparent. This brings me to the next problem...

The second problem is that AssetServicesConnector.Store() compares the return 
value from MakeRequest to string.Empty, but in fact the return value that is 
returned in case of error is null. So it mistakenly treats 'null' as a valid 
Asset ID, which causes it to cache the asset. This can cause the operation to 
appear to have succeeded for a while, since OpenSim will have the asset 
available, but the moment the asset is loaded from the asset server the jig is 
up and the asset will be missing. This can explain many problems people have 
had with disappearing assets.

The third problem is a comment found in this method, which says that a return 
value of 'null' is considered to be success because of old asset servers that 
don't send any reply back. That's a really old comment (from 2009). Can I 
assume that we no longer need to support such servers and we can treat 'null' 
as the error value that it is?

Oren

___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Error detection when storing an asset

2014-04-18 Thread Melanie
In most cases there is no viable failure path that does not detrimentally 
affect user experience. The viewer is unable to handle asset upload failure 
gracefully and transparently to the user.

As far as messge queues go, I have in-depth knowledge of MQ Series, IBM's 
message queue service. I agree that such a framework would be beneficial to 
many communications tasks in OpenSim, but that is, as you say, a matter for 
another day.

The asset subsystem, however, should present an error-free interface to the 
upper layers, as there is much code that depends on assets never failing and 
provides no usable error path. Our retry solution combines a good user 
experience without user visible error messages with a sound subsystem that can 
tolerate transient erros like asset server failovers, net glitches or temporary 
overload conditions.

Asset writing, btw, is not related to wearing clothing as baked textures do not 
go to the asset server, but to the XBakes server. In standalones, they are not 
persisted but are transferred from one region to another.

Your obeservation about message queueing is a good one, I may spend a few 
cycles to see if an appropriately licensed implementation in C# exists.

- Melanie

On 18 Apr 2014, at 13:05, Oren Hurvitz or...@kitely.com wrote:

Regarding the hiding of exceptions: to be clear, I was already bitten by this
behavior; that's why I started to investigate how assets are stored. I have
therefore already changed Kitely's version of OpenSim to propagate
exceptions, and the question is whether other people would like me to
contribute this change. If anyone has an opinion then please reply.

Regarding your suggestion to save assets to local disk and retry them later:
this is basically what a persistent message queue does. If you're going to
go that route then it would be best to add a real message queue rather than
a home-grown one. I would LOVE it if OpenSim used a message queue for
communications, as it would allow ripping out thousands of lines of homemade
communications code, and would be faster and more reliable to boot. But
that's a bigger issue and I'll put it aside for now.

In this particular case, using a persistent message queue isn't be the right
solution: the right solution is to report failures immediately. Otherwise
you'd get weird behavior such as a user who thinks they've successfully worn
a piece of clothing, but when they teleport to another region it disappears
because the other region can't load the asset (because it was never saved).
To prevent these problems you need to fail-fast, and tell the user
immediately when a problem happens. This doesn't mean to crash the sim; I
strongly doubt any asset failure would cause that, it would just fail the
specific packet or message that is currently being handled, as it should.



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Error-detection-when-storing-an-asset-tp7579223p7579225.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Error detection when storing an asset

2014-04-18 Thread Melanie
Name one valid use case where current OpenSim is able to handle such
an exception gracefully, e.g. without user-visible error.

- Melanie

On 18/04/2014 13:28, Mike Chase wrote:
 I'm inclined to agree with Oren.  Asset Writes could fail for a variety of
 reasons and there are lots of use cases where you need to know the asset is
 on disk.  I think propagating exceptions is the more sound approach IMO.
 
 I also agree re: the custom comms vs a persistent queue mechanism but I
 don't want to derail this topic.   That can wait for another day.
 
 Mike
 
 -Original Message-
 From: opensim-dev-boun...@lists.berlios.de
 [mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Oren Hurvitz
 Sent: Friday, April 18, 2014 7:06 AM
 To: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Error detection when storing an asset
 
 Regarding the hiding of exceptions: to be clear, I was already bitten by
 this behavior; that's why I started to investigate how assets are stored. I
 have therefore already changed Kitely's version of OpenSim to propagate
 exceptions, and the question is whether other people would like me to
 contribute this change. If anyone has an opinion then please reply.
 
 Regarding your suggestion to save assets to local disk and retry them later:
 this is basically what a persistent message queue does. If you're going to
 go that route then it would be best to add a real message queue rather than
 a home-grown one. I would LOVE it if OpenSim used a message queue for
 communications, as it would allow ripping out thousands of lines of homemade
 communications code, and would be faster and more reliable to boot. But
 that's a bigger issue and I'll put it aside for now.
 
 In this particular case, using a persistent message queue isn't be the right
 solution: the right solution is to report failures immediately. Otherwise
 you'd get weird behavior such as a user who thinks they've successfully worn
 a piece of clothing, but when they teleport to another region it disappears
 because the other region can't load the asset (because it was never saved).
 To prevent these problems you need to fail-fast, and tell the user
 immediately when a problem happens. This doesn't mean to crash the sim; I
 strongly doubt any asset failure would cause that, it would just fail the
 specific packet or message that is currently being handled, as it should.
 
 
 
 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Error-detection-when-storing-an-ass
 et-tp7579223p7579225.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Error detection when storing an asset

2014-04-18 Thread Melanie
The point is no NOT let it fail. Asset storing never fails
permanently if it's retried until successful. The upper layers (all
the way to the viewer) are not equipped to handle an asset storing
failure. Propagating the exception would just annoy the user with
needless messages. Since asset servers can be gone for a while,
for instance when there is a net failure, there is no way to give it
a timeout, either. A sim in OSGrid, if it gets disconnected,  could
run on locally cached assets and manage to reconnect after 20
minutes and simply upload all new assets since then. Screaming
failure at the user is pointless in such a scenario.

- Melanie

On 18/04/2014 22:56, Oren Hurvitz wrote:
 There seems to be a misunderstanding here. We're talking about a case where
 the operation has FAILED. The only question is whether to pretend that it
 succeeded, so that the user will find out that it failed later, to their
 surprise, or to report failure immediately. Obviously it's better to report
 failure immediately.
 
 
 
 On Fri, Apr 18, 2014 at 10:40 PM, Melanie mela...@t-data.com wrote:
 
 Name one valid use case where current OpenSim is able to handle such
 an exception gracefully, e.g. without user-visible error.

 - Melanie

 On 18/04/2014 13:28, Mike Chase wrote:
  I'm inclined to agree with Oren.  Asset Writes could fail for a variety
 of
  reasons and there are lots of use cases where you need to know the asset
 is
  on disk.  I think propagating exceptions is the more sound approach IMO.
 
  I also agree re: the custom comms vs a persistent queue mechanism but I
  don't want to derail this topic.   That can wait for another day.
 
  Mike
 
  -Original Message-
  From: opensim-dev-boun...@lists.berlios.de
  [mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Oren Hurvitz
  Sent: Friday, April 18, 2014 7:06 AM
  To: opensim-dev@lists.berlios.de
  Subject: Re: [Opensim-dev] Error detection when storing an asset
 
  Regarding the hiding of exceptions: to be clear, I was already bitten by
  this behavior; that's why I started to investigate how assets are
 stored. I
  have therefore already changed Kitely's version of OpenSim to propagate
  exceptions, and the question is whether other people would like me to
  contribute this change. If anyone has an opinion then please reply.
 
  Regarding your suggestion to save assets to local disk and retry them
 later:
  this is basically what a persistent message queue does. If you're going
 to
  go that route then it would be best to add a real message queue rather
 than
  a home-grown one. I would LOVE it if OpenSim used a message queue for
  communications, as it would allow ripping out thousands of lines of
 homemade
  communications code, and would be faster and more reliable to boot. But
  that's a bigger issue and I'll put it aside for now.
 
  In this particular case, using a persistent message queue isn't be the
 right
  solution: the right solution is to report failures immediately. Otherwise
  you'd get weird behavior such as a user who thinks they've successfully
 worn
  a piece of clothing, but when they teleport to another region it
 disappears
  because the other region can't load the asset (because it was never
 saved).
  To prevent these problems you need to fail-fast, and tell the user
  immediately when a problem happens. This doesn't mean to crash the sim; I
  strongly doubt any asset failure would cause that, it would just fail the
  specific packet or message that is currently being handled, as it should.
 
 
 
  --
  View this message in context:
 
 http://opensim-dev.2196679.n2.nabble.com/Error-detection-when-storing-an-ass
  et-tp7579223p7579225.html
  Sent from the opensim-dev mailing list archive at Nabble.com.
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Legacy region XML support - Remove?

2014-04-12 Thread Melanie
Yes

- Melanie

On 12/04/2014 14:27, David Saunders wrote:
 Hey
 I Just dug though my web based region file, and its base on a single
 line XML format  region name= location_x= ... /
 
 Would this be needed to updated with this proposal?
 
 
 
 
 
 
 
 On Sat, Apr 12, 2014 at 1:36 AM, Michael Emory Cerquoni 
 nebadon2...@gmail.com wrote:
 
 +1 the only grid I know that probably was using it was Reaction Grid, and
 they are no longer open so I also doubt anyone else is using it at this
 point either.


 On Sat, Apr 12, 2014 at 3:14 AM, Justin Clark-Casey 
 jjusti...@googlemail.com wrote:

 I don't see any problem with removing this - it's an extremely old format
 that I'd be surprised if anybody still uses.


 On 11/04/14 02:03, Melanie wrote:

 Hi,

 the RegionInfo class supports an ancient form of XML, one that is
 based on attributes rather than tags.

 At this point, we believe no one uses this format anymore. Further,
 NINI offers another form of XML that is much more up to date and a
 better replacement for the ancient XML in any case.

 The affected installations would be those that use pre-0.6
 configuration files (regions.xml) or use web loading.

 The old config files would need to be redone by hand in .ini format,
 and people who web-load would need to change the server scripts to
 provide the same data in the new format, which is not too hard a task.

 I propose to remove the support for the legacy format, which has
 last been updated in 2007 and has been unused for two major revisions.

 Thoughts are welcome.

 Melanie
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 .



 --
 Justin Clark-Casey (justincc)
 OSVW Consulting
 http://justincc.org
 http://twitter.com/justincc

 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




 --
 Michael Emory Cerquoni

 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Legacy region XML support - Removed!

2014-04-12 Thread Melanie
I have now removed support for the legacy format. The new format for
XML, both for files and for web loading, is below:

Nini
Section Name=Region Name
Key Name=RegionUUID Value=acae2f54-24fc-427f-92b0-7c3d6a5597d4 /
Key Name=Location Value=981,1009 /
Key Name=InternalAddress Value=1.2.3.4 /
Key Name=InternalPort Value=9000 /
Key Name=AllowAlternatePorts Value=false /
Key Name=ExternalHostName Value=1.2.3.4 /
Key Name=NonPhysicalPrimMax Value=1024 /
Key Name=PhysicalPrimMax Value=64 /
Key Name=ClampPrimSize Value=false /
Key Name=MaxPrims Value=45000 /
Key Name=MaxAgents Value=100 /
/Section
/Nini

Multiple Section statements can be placed within Nini.

- Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Legacy region XML support - Remove?

2014-04-11 Thread Melanie
That format needs to be changed. The old format is:

region name= location_x= ... /

The new format will be:

Nini
Section name=Region_1
key name=Name value= /
key name=Location_x value= /
/Section
/Nini

Server script that generate the old format dynamically need to be
changed to generate the new format instead,

- Melanie

...
/region


On 11/04/2014 15:35, David Saunders wrote:
 How does this relate to the XML format for web configuration?
 
 
 On Fri, Apr 11, 2014 at 7:10 AM, R.Gunther ri...@rigutech.nl wrote:
 
 Suprissed its still there, well people did have time enough to change the
 xml files to ini files on newer versions.
 For me, using long time ini files so you can remove it.


 On 2014-04-11 03:03, Melanie wrote:

 Hi,

 the RegionInfo class supports an ancient form of XML, one that is
 based on attributes rather than tags.

 At this point, we believe no one uses this format anymore. Further,
 NINI offers another form of XML that is much more up to date and a
 better replacement for the ancient XML in any case.

 The affected installations would be those that use pre-0.6
 configuration files (regions.xml) or use web loading.

 The old config files would need to be redone by hand in .ini format,
 and people who web-load would need to change the server scripts to
 provide the same data in the new format, which is not too hard a task.

 I propose to remove the support for the legacy format, which has
 last been updated in 2007 and has been unused for two major revisions.

 Thoughts are welcome.

 Melanie
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Parcel Access Enforcement

2014-04-10 Thread Melanie
The code for parcel access works, as far as I'm aware. It was
originally fixed in Avination and that should have been donated to
OpenSim a long time ago. Maybe a good starting point is to see what
you would like that doesnt' work before you go and fix things that
aren't broken.

Melanie


On 10/04/2014 17:05, James Stallings II wrote:
 Subsequent work (instrumentation to Scene) shows that the permissions
 checking code is also being called twice there.
 
 Cheers
 James
 
 
 
 On Thu, Apr 10, 2014 at 9:30 AM, James Stallings II 
 james.stalli...@gmail.com wrote:
 
 After some further exploration, I have seen where the method calls taking
 precedence from out of Scene are handling ViaLogin; but they are also doing
 some of the same lifting performed in the Land Management module. This
 seems to be duplication of effort, if not duplication of code; and is
 certainly less elegant than I would hope to find in our codebase (in an
 ideal world ;)

 This is likely the result of the ad-hoc nature of the development life of
 the project over the years; I can see the scene code being a good deal
 older than the Land Management module.

 I'll be working with this throughout the day, hoping to improve the code
 as I'm able; your thoughts, advice and commentary are solicited and
 appreciated.

 Cheers
 James



 On Thu, Apr 10, 2014 at 9:01 AM, James Stallings II 
 james.stalli...@gmail.com wrote:

 Greetings Devs :)

 I have a use case that requires the unlikely and less than popular parcel
 permissions access control featureset.

 Historically speaking, this has not been an area of development that has
 seen much love, and understandably so; none of us are particularly
 interested in fully duplicating the operational envelope of the Second Life
 experience. That coupled with the ability to deploy regions at whim, it is
 no wonder no one wants to involve themselves particularly deeply with
 making this work properly.

 That being said, I have a need at present, and there is also the simple
 fact that we have a dearth of UI components in the viewer we may well never
 get shut of, and a lot of of unfinished and/or unpolished code in the repo
 that touches on this functionality.

 The short story is, it may be above the waterline, but there is a hole in
 the boat, and one of my users is driving it headlong into the surf.

 So much for metaphors.

 I have heard a variety of conflicting reports about the state of this
 part of the codebase; some say it works well; others say it should not be
 counted on to work at all. The commit logs tell the tale that some have
 taken an interest and are working diligently to eliminate certain bugs;
 unfortunately, the work in progress has not yet brought the functionality
 into a state where it is yet useful, at least according to my testing.

 I'm not unwilling to undertake the work needed to bring this situation
 into a more satisfactory light; indeed, I've already begun, and I need only
 a little guidance today.

  I have thoroughly instrumented the method public void
 EventManagerOnAvatarEnteringNewParcel(ScenePresence avatar, int
 localLandID, UUID regionID)
 in the land management module, and was immediately confronted with a
 couple of surprises:
 First, when the code is called at all, it is called twice; and as far as
 I can tell, it is called only after a successful login has been completed.
 Neither does it seem to be called when an avatar teleports into the region.

 Instead, the method public bool TestLandRestrictions(UUID agentID, out
 string reason, ref float posX, ref float posY) is called from
 OpenSim/Region/Framework/Scenes/Scene.cs and
 OpenSim/Region/Framework/Scenes/ScenePresence.cs, and mediates (rather
 less than consistently) whether the avatar is allowed into the parcel on
 the region.

 Being aware that there are several ways for an avatar to enter a parcel,
 which I will leave off enumerating at present, I would suggest that perhaps
 I have some misapprehensions as to the proper stages of authentication at
 login-time.

 So my question is this: should both of these functions come into play as
 an avatar enters a region (and consequently, a parcel)? or should there be
 a single methoid conducting these presence permission checks?

 Please advise at your convenience :)

 Many thanks and cheers
 James/Hiro


 --
 ===
 http://osgrid.org/
 http://simhost.com
 http://twitter.com/jstallings2




 --
 ===
 http://osgrid.org/
 http://simhost.com
 http://twitter.com/jstallings2


 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Parcel Access Enforcement

2014-04-10 Thread Melanie
I'm not even being defensive. I just don't like the idea of poking
code with a sharp stick instead of debugging it properly.

- Melanie

On 10/04/2014 17:20, James Stallings II wrote:
 Maybe a good starting point is to see what you would like that doesnt'
 work before you go and fix things that...
 
 Actually, that *is* where I began.
 
 My user reports various failures, which are repeatable on the running
 regions. No amount of reconfiguration predictably affects the experience on
 the regions.
 
 We do have a couple of regions that seem to work perfectly, including that
 which I'm working with; it started working after I completely replaced the
 OpenSim.ini with one that was identical excepting the http_listener
 specifcation. Unfortunately, repeating this process with the same
 OpenSim.ini on a different region that doesn't work did not produce a
 region that does.
 
 To say that it works intermittently is a bit of an understatement; though
 it does seem that once it begins working it continues to do so.
 
 
 Try not to be so defensive Mel; I'm not attacking you or your work, I'm
 just attempting to figure out what's happening on these regions. I have
 eliminated everything I can find but the code, which I am told by others is
 not to be trusted as fully functional; and I am not afraid to get in and
 get my hands dirty.
 
 
 Cheers
 James
 
 
 
 On Thu, Apr 10, 2014 at 10:10 AM, Melanie mela...@t-data.com wrote:
 
 The code for parcel access works, as far as I'm aware. It was
 originally fixed in Avination and that should have been donated to
 OpenSim a long time ago. Maybe a good starting point is to see what
 you would like that doesnt' work before you go and fix things that
 aren't broken.

 Melanie


 On 10/04/2014 17:05, James Stallings II wrote:
  Subsequent work (instrumentation to Scene) shows that the permissions
  checking code is also being called twice there.
 
  Cheers
  James
 
 
 
  On Thu, Apr 10, 2014 at 9:30 AM, James Stallings II 
  james.stalli...@gmail.com wrote:
 
  After some further exploration, I have seen where the method calls
 taking
  precedence from out of Scene are handling ViaLogin; but they are also
 doing
  some of the same lifting performed in the Land Management module. This
  seems to be duplication of effort, if not duplication of code; and is
  certainly less elegant than I would hope to find in our codebase (in an
  ideal world ;)
 
  This is likely the result of the ad-hoc nature of the development life
 of
  the project over the years; I can see the scene code being a good deal
  older than the Land Management module.
 
  I'll be working with this throughout the day, hoping to improve the code
  as I'm able; your thoughts, advice and commentary are solicited and
  appreciated.
 
  Cheers
  James
 
 
 
  On Thu, Apr 10, 2014 at 9:01 AM, James Stallings II 
  james.stalli...@gmail.com wrote:
 
  Greetings Devs :)
 
  I have a use case that requires the unlikely and less than popular
 parcel
  permissions access control featureset.
 
  Historically speaking, this has not been an area of development that
 has
  seen much love, and understandably so; none of us are particularly
  interested in fully duplicating the operational envelope of the Second
 Life
  experience. That coupled with the ability to deploy regions at whim,
 it is
  no wonder no one wants to involve themselves particularly deeply with
  making this work properly.
 
  That being said, I have a need at present, and there is also the simple
  fact that we have a dearth of UI components in the viewer we may well
 never
  get shut of, and a lot of of unfinished and/or unpolished code in the
 repo
  that touches on this functionality.
 
  The short story is, it may be above the waterline, but there is a hole
 in
  the boat, and one of my users is driving it headlong into the surf.
 
  So much for metaphors.
 
  I have heard a variety of conflicting reports about the state of this
  part of the codebase; some say it works well; others say it should not
 be
  counted on to work at all. The commit logs tell the tale that some have
  taken an interest and are working diligently to eliminate certain bugs;
  unfortunately, the work in progress has not yet brought the
 functionality
  into a state where it is yet useful, at least according to my testing.
 
  I'm not unwilling to undertake the work needed to bring this situation
  into a more satisfactory light; indeed, I've already begun, and I need
 only
  a little guidance today.
 
   I have thoroughly instrumented the method public void
  EventManagerOnAvatarEnteringNewParcel(ScenePresence avatar, int
  localLandID, UUID regionID)
  in the land management module, and was immediately confronted with a
  couple of surprises:
  First, when the code is called at all, it is called twice; and as far
 as
  I can tell, it is called only after a successful login has been
 completed.
  Neither does it seem to be called when an avatar teleports into the
 region

Re: [Opensim-dev] Parcel Access Enforcement

2014-04-10 Thread Melanie
No biting needed :)

Debug output is a pretty good start and you did answer my concern
when you mentioned the intermittent nature of the issue.
I was worried that this would lead to a refactoring frenzy, possibly
breaking even the parts that do work, but the fact that it's not
consistently reproducible means that you're doing the proper
debugging already.

- Melanie

On 10/04/2014 17:52, James Stallings II wrote:
 So, Melanie, I'll bite: What do you suggest for 'proper debugging' in this
 context?
 
 
 On Thu, Apr 10, 2014 at 10:25 AM, James Stallings II 
 james.stalli...@gmail.com wrote:
 
 The only code I'm affecting the local copy on my server; it isn't as if
 I'm going to break break the central repo back to 2006. Hell, I don't even
 have commit. And FWIW, last I hear adding log statements to code is a valid
 tried and true debugging method.






 On Thu, Apr 10, 2014 at 10:23 AM, Melanie mela...@t-data.com wrote:

 I'm not even being defensive. I just don't like the idea of poking
 code with a sharp stick instead of debugging it properly.

 - Melanie

 On 10/04/2014 17:20, James Stallings II wrote:
  Maybe a good starting point is to see what you would like that doesnt'
  work before you go and fix things that...
 
  Actually, that *is* where I began.
 
  My user reports various failures, which are repeatable on the running
  regions. No amount of reconfiguration predictably affects the
 experience on
  the regions.
 
  We do have a couple of regions that seem to work perfectly, including
 that
  which I'm working with; it started working after I completely replaced
 the
  OpenSim.ini with one that was identical excepting the http_listener
  specifcation. Unfortunately, repeating this process with the same
  OpenSim.ini on a different region that doesn't work did not produce a
  region that does.
 
  To say that it works intermittently is a bit of an understatement;
 though
  it does seem that once it begins working it continues to do so.
 
 
  Try not to be so defensive Mel; I'm not attacking you or your work, I'm
  just attempting to figure out what's happening on these regions. I have
  eliminated everything I can find but the code, which I am told by
 others is
  not to be trusted as fully functional; and I am not afraid to get in and
  get my hands dirty.
 
 
  Cheers
  James
 
 
 
  On Thu, Apr 10, 2014 at 10:10 AM, Melanie mela...@t-data.com wrote:
 
  The code for parcel access works, as far as I'm aware. It was
  originally fixed in Avination and that should have been donated to
  OpenSim a long time ago. Maybe a good starting point is to see what
  you would like that doesnt' work before you go and fix things that
  aren't broken.
 
  Melanie
 
 
  On 10/04/2014 17:05, James Stallings II wrote:
   Subsequent work (instrumentation to Scene) shows that the permissions
   checking code is also being called twice there.
  
   Cheers
   James
  
  
  
   On Thu, Apr 10, 2014 at 9:30 AM, James Stallings II 
   james.stalli...@gmail.com wrote:
  
   After some further exploration, I have seen where the method calls
  taking
   precedence from out of Scene are handling ViaLogin; but they are
 also
  doing
   some of the same lifting performed in the Land Management module.
 This
   seems to be duplication of effort, if not duplication of code; and
 is
   certainly less elegant than I would hope to find in our codebase
 (in an
   ideal world ;)
  
   This is likely the result of the ad-hoc nature of the development
 life
  of
   the project over the years; I can see the scene code being a good
 deal
   older than the Land Management module.
  
   I'll be working with this throughout the day, hoping to improve the
 code
   as I'm able; your thoughts, advice and commentary are solicited and
   appreciated.
  
   Cheers
   James
  
  
  
   On Thu, Apr 10, 2014 at 9:01 AM, James Stallings II 
   james.stalli...@gmail.com wrote:
  
   Greetings Devs :)
  
   I have a use case that requires the unlikely and less than popular
  parcel
   permissions access control featureset.
  
   Historically speaking, this has not been an area of development
 that
  has
   seen much love, and understandably so; none of us are particularly
   interested in fully duplicating the operational envelope of the
 Second
  Life
   experience. That coupled with the ability to deploy regions at
 whim,
  it is
   no wonder no one wants to involve themselves particularly deeply
 with
   making this work properly.
  
   That being said, I have a need at present, and there is also the
 simple
   fact that we have a dearth of UI components in the viewer we may
 well
  never
   get shut of, and a lot of of unfinished and/or unpolished code in
 the
  repo
   that touches on this functionality.
  
   The short story is, it may be above the waterline, but there is a
 hole
  in
   the boat, and one of my users is driving it headlong into the surf.
  
   So much for metaphors.
  
   I have heard a variety of conflicting reports about

Re: [Opensim-dev] Parcel Access Enforcement

2014-04-10 Thread Melanie
The QueryAccess is a pre-authorization. So the double call is
intentional and unavoidable.

- Melanie

On 10/04/2014 18:14, James Stallings II wrote:
 It would seem that the two invocations of the TestLandRestrictions method
 in Scene occur in each of NewUserConnection and
 QueryAccess. EventManagerOnAvatarEnteringNewParcel is, fairly obviously,
 and event callback method; at this point I don't have but a guess where
 this might be called excepting from
 within EventManagerOnSignificantClientMovement.
 
 I'd like to think that the two calls to TestLandRestrictions in Scene might
 be reduced to one; but I'm not yet convinced it is the way to go.
 
 More to follow.
 
 Cheers
 
 
 
 On Thu, Apr 10, 2014 at 10:59 AM, Robert A. Knop Jr. rk...@pobox.comwrote:
 
 On Thu, Apr 10, 2014 at 10:25:17AM -0500, James Stallings II wrote:
  And FWIW, last I hear adding log statements to code is a valid
  tried and true debugging method.

 I wish to subscribe all of my students in my programming class to your
 newsletter.

 (The number of times I told them to print stuff to figure out where the
 code was, and the number of times I told them to print in more places,
 was phenomenal.  They got tired of hearing me say it, but somehow still
 needed to hear it.)

 (They often needed similar guidance in figuring out how to use
 breakpoints in debuggers.)

 -Rob

 --
 --Rob Knop
   E-mail:rk...@pobox.com
   Home Page: http://www.pobox.com/~rknop/
   Blog:  http://www.galacticinteractions.org/

 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Parcel Access Enforcement

2014-04-10 Thread Melanie
It used to go through event manager - an ancient way of doing it.

- Melanie

On 10/04/2014 18:44, James Stallings II wrote:
 There are still getters and setters on the property, but I cant ref the
 config point anywhere
 
 
 On Thu, Apr 10, 2014 at 11:43 AM, James Stallings II 
 james.stalli...@gmail.com wrote:
 
 Mel, cant get a grep on allow_f* anywhere in the source tree, looks like
 it has gone the way of the elves


 On Thu, Apr 10, 2014 at 11:37 AM, James Stallings II 
 james.stalli...@gmail.com wrote:

 I thought I recalled such a thing, been about as long since I looked at
 it ;)

 Thanks Mel


 James



 On Thu, Apr 10, 2014 at 11:37 AM, Melanie mela...@t-data.com wrote:

 Yes. allow_forceful_banlines, I believe. Long time since I looked at it.

 - Melanie

 On 10/04/2014 18:33, James Stallings II wrote:
  Quick question (related) is there a configuration point I'm missing
 that
  enables 'forceful bans'?
 
 
 
  On Thu, Apr 10, 2014 at 11:30 AM, James Stallings II 
  james.stalli...@gmail.com wrote:
 
  I kinder suspected something to that effect. It goes without saying
 that a
  lot occurs during the login process than is immediately apparent when
 one
  sits and watches the consoles.
 
  Right now I'm leaning towards the previously-mentioned edge case.
 
 
  On Thu, Apr 10, 2014 at 11:29 AM, Melanie mela...@t-data.com wrote:
 
  The QueryAccess is a pre-authorization. So the double call is
  intentional and unavoidable.
 
  - Melanie
 
  On 10/04/2014 18:14, James Stallings II wrote:
   It would seem that the two invocations of the TestLandRestrictions
  method
   in Scene occur in each of NewUserConnection and
   QueryAccess. EventManagerOnAvatarEnteringNewParcel is, fairly
 obviously,
   and event callback method; at this point I don't have but a guess
 where
   this might be called excepting from
   within EventManagerOnSignificantClientMovement.
  
   I'd like to think that the two calls to TestLandRestrictions in
 Scene
  might
   be reduced to one; but I'm not yet convinced it is the way to go.
  
   More to follow.
  
   Cheers
  
  
  
   On Thu, Apr 10, 2014 at 10:59 AM, Robert A. Knop Jr. 
 rk...@pobox.com
  wrote:
  
   On Thu, Apr 10, 2014 at 10:25:17AM -0500, James Stallings II
 wrote:
And FWIW, last I hear adding log statements to code is a valid
tried and true debugging method.
  
   I wish to subscribe all of my students in my programming class to
 your
   newsletter.
  
   (The number of times I told them to print stuff to figure out
 where the
   code was, and the number of times I told them to print in more
 places,
   was phenomenal.  They got tired of hearing me say it, but somehow
 still
   needed to hear it.)
  
   (They often needed similar guidance in figuring out how to use
   breakpoints in debuggers.)
  
   -Rob
  
   --
   --Rob Knop
 E-mail:rk...@pobox.com
 Home Page: http://www.pobox.com/~rknop/
 Blog:  http://www.galacticinteractions.org/
  
   ___
   Opensim-dev mailing list
   Opensim-dev@lists.berlios.de
   https://lists.berlios.de/mailman/listinfo/opensim-dev
  
  
  
  
  
  
   ___
   Opensim-dev mailing list
   Opensim-dev@lists.berlios.de
   https://lists.berlios.de/mailman/listinfo/opensim-dev
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
 
  --
  ===
  http://osgrid.org/
  http://simhost.com
  http://twitter.com/jstallings2
 
 
 
 
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




 --
 ===
 http://osgrid.org/
 http://simhost.com
 http://twitter.com/jstallings2




 --
 ===
 http://osgrid.org/
 http://simhost.com
 http://twitter.com/jstallings2


 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


[Opensim-dev] Legacy region XML support - Remove?

2014-04-10 Thread Melanie
Hi,

the RegionInfo class supports an ancient form of XML, one that is
based on attributes rather than tags.

At this point, we believe no one uses this format anymore. Further,
NINI offers another form of XML that is much more up to date and a
better replacement for the ancient XML in any case.

The affected installations would be those that use pre-0.6
configuration files (regions.xml) or use web loading.

The old config files would need to be redone by hand in .ini format,
and people who web-load would need to change the server scripts to
provide the same data in the new format, which is not too hard a task.

I propose to remove the support for the legacy format, which has
last been updated in 2007 and has been unused for two major revisions.

Thoughts are welcome.

Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] OpenSimDefaults.ini clean up

2014-04-08 Thread Melanie
The GUI configurator doesn't even exist yet. It's not proprietary,
it's just not done yet. The work was put in to create this
formatting to encourage the creation of such a GUI tool. It will
certainly not be removed.

- Melanie

On 08/04/2014 16:32, James Stallings II wrote:
 I think if any of this is touched, it should be to the OpenSim.ini file, to
 remove the proprietary formatting for the gui configurator that is not
 present in opensim core.
 
 For my part, it isn't a problem; but as far as I'm concerned modifying the
 format of OpenSimDefaults.ini is probably going at it a bit backward.
 
 Cheers
 James
 
 
 
 On Tue, Apr 8, 2014 at 9:19 AM, Shaun T. Erickson s...@smxy.org wrote:
 
  Yeah, I would definitely vote against moving things to the end of
 sections. It's perfectly fine to have, say:

 A
 B
 C
 D
 E

 in the defaults file, but only have, say:

 A
 C
 E

 in OpenSim.ini.example.

 -ste


 On 4/8/14, 7:49 AM, Jak Daniels wrote:

 +1 for this, however moving things in defaults that are not in example to
 the end of a section, particularly in  the larger sections might move a
 setting more out of context and make the defaults file less readable.



 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] OpenSimDefaults.ini clean up

2014-04-08 Thread Melanie
I'm also against moving things to the end of sections. Having the
options present in Opensim.ini in the same order as in the defaults
file makes sense for diffing, but moving them to the end of sections
does not because it would cause the readability issues mentioned as
well as make it even more confusing if someone copies a section to
their ini from the defaults file, breaking that scheme.
The defaults file is overwritten in every update.

- Melanie

On 08/04/2014 16:19, Shaun T. Erickson wrote:
 Yeah, I would definitely vote against moving things to the end of 
 sections. It's perfectly fine to have, say:
 
 A
 B
 C
 D
 E
 
 in the defaults file, but only have, say:
 
 A
 C
 E
 
 in OpenSim.ini.example.
 
 -ste
 
 On 4/8/14, 7:49 AM, Jak Daniels wrote:
 +1 for this, however moving things in defaults that are not in example 
 to the end of a section, particularly in  the larger sections might 
 move a setting more out of context and make the defaults file less 
 readable.
 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] OpenSimDefaults.ini clean up

2014-04-08 Thread Melanie
Well, you're familiar with the command line, which many are now.
Also, without cygwin, Windows is somewhat command line challenged.

As for the proprietary bit - Avination does not use ini files.
This encoding was done for the benefit of the open source community,
we ourselves have no need of it.

Melanie

On 09/04/2014 00:45, James Stallings II wrote:
 Actually Mel, I would not suggest that you do so. I've found some fairly
 useful workflows involving the shell utilities find, diff, grep and sed
 that really kind of move such concerns aside, allowing me to analyze and/or
 edit large groups of files all in one big glorious command line invocation
 :3
 
 Note that heavy CYA safety nets are in place ;)
 
 It isn't especially advanced by way of technique what I'm doing, really
 just using those tools together for their intended purposes.
 
 If someone does get around to writing a gui configurator, that would be
 awesome (/me pokes marcus)
 
 Sorry for the confusion about the proprietary nature of the thing Mel, I
 guess I got the wrong idea last time we spoke of it, and that has been
 quite some time.
 
 In any case, my strategy is basically to use grep as a filter to get rid of
 the 'comments' on the fly, single out things I need to compare, etc which I
 then pass to diff or sed. I use find to generate lists of paths to the
 files I need to compare or edit (or not, depending whether I'm working on
 files in bulk).
 
 It's kind of a cowboy way of doing things, but it's very quick and
 effective if you don't get too crazy with it. Safe too if you make sure to
 keep good backups.
 
 
 Cheers!
 James/Hiro
 
 
 
 On Tue, Apr 8, 2014 at 11:43 AM, Marcus Llewellyn 
 marcus.llewel...@gmail.com wrote:
 
 In regard to the specially formatted comments meant to aid external
 configuration tools, it may be worth considering adding these to
 OpenSimDefaults.ini. Currently, OpenSim.ini.example contains them, but
 OpenSimDefaults does not.

 When one strips OpenSim.ini.example down to *only* active sections, keys,
 and values while including those configuration comments, you end up easily
 seeing that every single option is being paired with a special
 configuration comment.

 On the other hand, if you do the same thing to a grid's OpenSim.ini file
 (I used OSgrid's), it becomes much less consistent. Sections like Startup
 or XEngine will only have a few of these config/option pairings. Some
 sections like RegionReady, VivoxVoice, and BulletSim have none at all. The
 authors of these OpenSIm.ini files aren't at fault. They simply have more
 imperative things to do than track down all of the possible option values
 or dependencies.

 Since, presumably, options added to OpenSim.ini files like OSgrid's are
 largely derived from OpenSimDefaults.ini, it could be of benefit to provide
 the config comments in OpenSimDefaults as well. OpenSim.ini.example is
 setup only for standalones. Simulators configured for grids obviously use
 more options (about 7 times the options in OSgrid's case). Any future
 configuration tool would probably be most useful on configuration files
 meant for either mode of operation.

 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] REST handlers use partial string matching

2014-04-02 Thread Melanie
Thanks, that was a good catch!

Melanie

On 02/04/2014 08:07, Oren Hurvitz wrote:
 I changed BaseHttpServer to require handler paths to match a full path
 component.
 
 For example, these match: /assets and /assets/12345
 But these don't match: /assets and /assets_exist
 
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/REST-handlers-use-partial-string-matching-tp7579119p7579140.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Viewer doesn't render attachments after teleport

2014-04-02 Thread Melanie
I don't know if this may be related, but for some reason OpenSim
fails to update the viewer's notion of position properly.

The most noticeable effect is that sometimes after changing regions
or even parcels, sound is no longer heard. The audibility check
happens viewerside, just as the object visibility check.

If the viewer gets a wrong location, it may consider the attachments
as too far away and not render them - that is probably related to
why zooming can make them appear.

Therefore I don't believe we need to send any extra packets related
to these objects, but rather we are missing some packet or sending
wrong data related to the avatar's location.

This appears to be the case on moving in world as well as teleports,
but I have so far never observed it at login.

Melanie


On 02/04/2014 13:16, Oren Hurvitz wrote:
 I got some great advice off-list from Nicky Perian. When there's a problem of
 missing prims, go to the Graphics Preferences and toggle the option Basic
 shaders. I tried this, and toggling this option (on or off, both work)
 makes the missing prims appear immediately.
 
 This proves that the viewer has the correct data, and it's just not showing
 it. But I still want to find some combination of packets that will make the
 viewers show the prims, since obviously most users will not know to use this
 trick, and it's a hassle.
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Viewer-doesn-t-render-attachments-after-teleport-tp7579143p7579146.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] REST handlers use partial string matching

2014-04-01 Thread Melanie
The REST URLs need to use partial matching, however, current
semantics are broken.

Without partial matching, URLS like /assets/782911. would not
work. the issue here is that it should match whole URL parts, not
partial URL parts. Matching partial words as it does now seems like
someone was cutting corners, it's not by design.

/assets/ should match /assets/9887234.. but not /assets_exist.
The slash is the differentiator and partial compares of URL string
prefixes should be done by full-string matches of slash/delimited
parts, not prefix matching of the entire URL.

Melanie

On 01/04/2014 15:00, Oren Hurvitz wrote:
 I tried to add a REST handler at the endpoint /assets_exist. It turns out
 that I can't do that, because REST handlers are searched using partial
 string matches, so servers that don't implement the new handler will
 mistakenly choose the /assets endpoint instead.
 
 For now, I solved the problem by using a different endpoint:
 /get_assets_exist.
 
 For the future, I think that this should be changed so that only full string
 matches work. Otherwise each time a new handler is added it will have to
 find an endpoint name that isn't a prefix of any current endpoint -- a
 difficult and error-prone task. Before I do that, does anyone know of
 endpoints that rely on the current behavior (partial string matches)?
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/REST-handlers-use-partial-string-matching-tp7579119.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] REST handlers use partial string matching

2014-04-01 Thread Melanie
It is required because it's the basis of extra path info. It's not
part of REST, but rather part of HTTP.

Requesting

/asset/456392f6-c0b3-a346-6465-8218cbe7abe84592

which is not a registered URL, will invoke

/asset/

which is. The ID passed as part of the URL is then given to that
handler as the extra path info. You have the same thing in apache.

Basically, any URL longer than and starting with a registered URL
will invoke that registered URL with extra path info.
The fallacy in our server is that the matching isn't by path parts,
but character-wise.

Melanie

On 01/04/2014 20:03, Justin Clark-Casey wrote:
 In what context is such partial matching required?  It is not a requirement 
 of REST, as far as I know.
 
 On 01/04/14 18:55, Melanie wrote:
 The REST URLs need to use partial matching, however, current
 semantics are broken.

 Without partial matching, URLS like /assets/782911. would not
 work. the issue here is that it should match whole URL parts, not
 partial URL parts. Matching partial words as it does now seems like
 someone was cutting corners, it's not by design.

 /assets/ should match /assets/9887234.. but not /assets_exist.
 The slash is the differentiator and partial compares of URL string
 prefixes should be done by full-string matches of slash/delimited
 parts, not prefix matching of the entire URL.

 Melanie

 On 01/04/2014 15:00, Oren Hurvitz wrote:
 I tried to add a REST handler at the endpoint /assets_exist. It turns out
 that I can't do that, because REST handlers are searched using partial
 string matches, so servers that don't implement the new handler will
 mistakenly choose the /assets endpoint instead.

 For now, I solved the problem by using a different endpoint:
 /get_assets_exist.

 For the future, I think that this should be changed so that only full string
 matches work. Otherwise each time a new handler is added it will have to
 find an endpoint name that isn't a prefix of any current endpoint -- a
 difficult and error-prone task. Before I do that, does anyone know of
 endpoints that rely on the current behavior (partial string matches)?



 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/REST-handlers-use-partial-string-matching-tp7579119.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] REST handlers use partial string matching

2014-04-01 Thread Melanie
The proper method is to break up the local portion of the URL into
words using / as the separator, then matching that list of words
against similar lists created from the registered URLs, usually
stored as a tree.
There are two ways to match, shortest match and more specific.
The algorithm used by apache is shortest match, meaning that as
soon as a word list is fully matched against the request's words,
it's considered a match and the handler is invoked.
Everything past the matched portion becomes extra path info.

Melanie

On 01/04/2014 21:08, Mic Bowman wrote:
 so what you're saying is just make sure the '/' is part of the match? to
 terminate the match? i think the problem is that /asset matches /asset_test
 which is not what is expected. so all registered partial matches should
 include the trailing '/' to disambiguate... or am i missing the point?
 
 
 
 On Tue, Apr 1, 2014 at 12:00 PM, Melanie mela...@t-data.com wrote:
 
 It is required because it's the basis of extra path info. It's not
 part of REST, but rather part of HTTP.

 Requesting

 /asset/456392f6-c0b3-a346-6465-8218cbe7abe84592

 which is not a registered URL, will invoke

 /asset/

 which is. The ID passed as part of the URL is then given to that
 handler as the extra path info. You have the same thing in apache.

 Basically, any URL longer than and starting with a registered URL
 will invoke that registered URL with extra path info.
 The fallacy in our server is that the matching isn't by path parts,
 but character-wise.

 Melanie

 On 01/04/2014 20:03, Justin Clark-Casey wrote:
  In what context is such partial matching required?  It is not a
 requirement of REST, as far as I know.
 
  On 01/04/14 18:55, Melanie wrote:
  The REST URLs need to use partial matching, however, current
  semantics are broken.
 
  Without partial matching, URLS like /assets/782911. would not
  work. the issue here is that it should match whole URL parts, not
  partial URL parts. Matching partial words as it does now seems like
  someone was cutting corners, it's not by design.
 
  /assets/ should match /assets/9887234.. but not /assets_exist.
  The slash is the differentiator and partial compares of URL string
  prefixes should be done by full-string matches of slash/delimited
  parts, not prefix matching of the entire URL.
 
  Melanie
 
  On 01/04/2014 15:00, Oren Hurvitz wrote:
  I tried to add a REST handler at the endpoint /assets_exist. It
 turns out
  that I can't do that, because REST handlers are searched using partial
  string matches, so servers that don't implement the new handler will
  mistakenly choose the /assets endpoint instead.
 
  For now, I solved the problem by using a different endpoint:
  /get_assets_exist.
 
  For the future, I think that this should be changed so that only full
 string
  matches work. Otherwise each time a new handler is added it will have
 to
  find an endpoint name that isn't a prefix of any current endpoint -- a
  difficult and error-prone task. Before I do that, does anyone know of
  endpoints that rely on the current behavior (partial string matches)?
 
 
 
  --
  View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/REST-handlers-use-partial-string-matching-tp7579119.html
  Sent from the opensim-dev mailing list archive at Nabble.com.
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] REST handlers use partial string matching

2014-04-01 Thread Melanie
Well, with URLs, it's not known which part (word) of the url local
part is a directory and which is a file/script.

http://www.example.com/dir/file.php/extra/info

is legal. At the time of parsing, it is not intrinsically knowable
that file.php is a script. Therefore, you can't look at just the
last element, but need to match wordwise left to right.

Melanie

On 01/04/2014 21:47, Jim Williams wrote:
 I think the correct way to look at this is that any URI /handler/...
 should be passed to the correct handler handler; which should then pass
 the rest of the path on to any sub-handlers as appropriate.  You shouldn't
 be looking at the parts of a path element unless it is the leaf (follows
 the last slash).  The URI began life as a directory tree, and you would not
 match part of the directory thinking it was a file.  Any valid semantic URI
 parser will interpret elements of a URI strictly in context, and never
 assume anything about elements except within the context of the element to
 its immediate left.
 
 It would be ok for /asset and /asset_test to be treated as a match, but
 never ok for /asset/ and /asset_test or /asset_test/ to match.  One is
 matching a directory to a file, and the other is matching two different
 directories.
 
 
 
 On Tue, Apr 1, 2014 at 3:08 PM, Mic Bowman cmick...@gmail.com wrote:
 
 so what you're saying is just make sure the '/' is part of the match? to
 terminate the match? i think the problem is that /asset matches /asset_test
 which is not what is expected. so all registered partial matches should
 include the trailing '/' to disambiguate... or am i missing the point?



 On Tue, Apr 1, 2014 at 12:00 PM, Melanie mela...@t-data.com wrote:

 It is required because it's the basis of extra path info. It's not
 part of REST, but rather part of HTTP.

 Requesting

 /asset/456392f6-c0b3-a346-6465-8218cbe7abe84592

 which is not a registered URL, will invoke

 /asset/

 which is. The ID passed as part of the URL is then given to that
 handler as the extra path info. You have the same thing in apache.

 Basically, any URL longer than and starting with a registered URL
 will invoke that registered URL with extra path info.
 The fallacy in our server is that the matching isn't by path parts,
 but character-wise.

 Melanie

 On 01/04/2014 20:03, Justin Clark-Casey wrote:
  In what context is such partial matching required?  It is not a
 requirement of REST, as far as I know.
 
  On 01/04/14 18:55, Melanie wrote:
  The REST URLs need to use partial matching, however, current
  semantics are broken.
 
  Without partial matching, URLS like /assets/782911. would not
  work. the issue here is that it should match whole URL parts, not
  partial URL parts. Matching partial words as it does now seems like
  someone was cutting corners, it's not by design.
 
  /assets/ should match /assets/9887234.. but not /assets_exist.
  The slash is the differentiator and partial compares of URL string
  prefixes should be done by full-string matches of slash/delimited
  parts, not prefix matching of the entire URL.
 
  Melanie
 
  On 01/04/2014 15:00, Oren Hurvitz wrote:
  I tried to add a REST handler at the endpoint /assets_exist. It
 turns out
  that I can't do that, because REST handlers are searched using partial
  string matches, so servers that don't implement the new handler will
  mistakenly choose the /assets endpoint instead.
 
  For now, I solved the problem by using a different endpoint:
  /get_assets_exist.
 
  For the future, I think that this should be changed so that only full
 string
  matches work. Otherwise each time a new handler is added it will have
 to
  find an endpoint name that isn't a prefix of any current endpoint -- a
  difficult and error-prone task. Before I do that, does anyone know of
  endpoints that rely on the current behavior (partial string matches)?
 
 
 
  --
  View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/REST-handlers-use-partial-string-matching-tp7579119.html
  Sent from the opensim-dev mailing list archive at Nabble.com.
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev



 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev

Re: [Opensim-dev] REST handlers use partial string matching

2014-04-01 Thread Melanie
HEAD is meant to test if a request endpoint is implemented and to
retrieve metadata like detailed capabilities/options/flags.

Melanie

On 01/04/2014 21:49, Oren Hurvitz wrote:
 Re: why use POST instead of HEAD: because this lets me check the existence of
 many assets at once with a single HTTP request. The main use of the
 AssetsExist call is with HGAssetGatherer, which knows the full list of
 assets that it wants to send, so it's able to check all of them at once.
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/REST-handlers-use-partial-string-matching-tp7579119p7579127.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] REST handlers use partial string matching

2014-04-01 Thread Melanie
Because REST is cleaner and more modularized than RPC. Just compare
the code and you will see that. Efficiency is achieved by designing
the REST calls intelligently. The /asset/ endpoint for instance can
benefit from keep-alive because it supports HEAD/GET?POST so
multiple operations can reuse the connection.
The exists query is orthogonal to that and should be another request
endpoint.

Melanie

On 01/04/2014 21:56, Dahlia Trimble wrote:
 Not sure about this particular application but keeping a connection open
 can eliminate the need to instantiate a connection whenever a request is
 made; a process that can make several round trips to multiple endpoints.
 
 
 On Tue, Apr 1, 2014 at 12:52 PM, Mic Bowman cmick...@gmail.com wrote:
 
 Do you really save much with a single request vs a keep alive on the
 connection? HTTP connection overhead is likely much smaller than the
 database operations... do you have a feel for how much we'll save with the
 multiplexed call?

 --mic



 On Tue, Apr 1, 2014 at 12:49 PM, Oren Hurvitz or...@kitely.com wrote:

 Re: why use POST instead of HEAD: because this lets me check the
 existence of
 many assets at once with a single HTTP request. The main use of the
 AssetsExist call is with HGAssetGatherer, which knows the full list of
 assets that it wants to send, so it's able to check all of them at once.



 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/REST-handlers-use-partial-string-matching-tp7579119p7579127.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev



 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
Hi Oren,

the correct way is to create an additional post handler that is reachable at a 
different URL, e,g, /AssetQuery/

Servers that don't implement it would return 404. Don't try to shoehorn this 
functionality into the existing post handler.

Melanie

On 31 Mar 2014, at 13:55, Oren Hurvitz or...@kitely.com wrote:

I have implemented this method. I found that the Assets Service already had a
method to check for assets' existence, so I just had to extend it to check
multiple asset ID's at once, and make it available remotely. But now I'm not
sure what to do about backwards compatibility.

I'm sending the request using POST, because sending a lot of data is better
done using POST than GET. But as it turns out, AssetServerPostHandler
doesn't handle unknown requests well. First, it assumes that all requests
will contain an AssetBase, but this request doesn't. Second, its try/catch
clause doesn't catch the exception that is generated, because it's an
InvalidOperationException and not an XmlException (which is what's currently
caught). The unfortunate result is that the server doesn't send back *any*
reply, which means that the caller must wait for the full timeout (100
seconds!) before giving up. [BTW, I'm going to investigate this further
because it may explain the 100-second timeouts users occasionally
experience.]

I've already fixed this problem in the current patch (not yet submitted), so
that in the future AssetServerPostHandler will return an error code
immediately for unknown requests (HTTP 400). But that won't help when
connecting to old grids.

I see two ways to fix this:

1. Send the request using GET instead of POST. AssetServerGetHandler handles
unknown requests a little better than POST: it tries to find the parameter
as an Asset ID, but if not found then it just returns HTTP 404 immediately.

2. Add a way to query the server for its capabilities, to find out if it
supports this request.

I prefer approach #2 because it can be used in the future for many other new
features. How about adding a method to IGatekeeperService, something like
this:

Dictionarystring,string GetServerCapabilities();

In this example, the capability will be: SupportsAssetsExist=true




--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579100.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
This isn't designed as RPC, it's designed as REST. One URL/VERB
combination for each function.
We wanted to get away from the RPC concept. Let's not take backwards
steps here.

Melanie

On 31/03/2014 15:15, Oren Hurvitz wrote:
 This isn't overloading: it's an RPC endpoint that accepts many methods. You
 wouldn't create a separate endpoint for each method, would you?
 
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
This isn't designed as RPC, it's designed as REST. One URL/VERB
combination for each function.
We wanted to get away from the RPC concept. Let's not take backwards
steps here.

Melanie

On 31/03/2014 15:15, Oren Hurvitz wrote:
 This isn't overloading: it's an RPC endpoint that accepts many methods. You
 wouldn't create a separate endpoint for each method, would you?
 
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
There is no implicit versioning in the actual request protocol. That
would have been impossible to maintain in the long run. Instead,
there is a protocol version. We can bump it when there are
incompatible changes on any protocol and it invalidates all of them.
So a sim version 7 will refuse to connect to a server version 6 and
vice versa. This gives us both control and simplicity.

Melanie

On 31/03/2014 18:45, Jim Williams wrote:
 Seems reasonable to me...A design approach I would have taken.
 
 One question.  Is there some sort of versioning built into the protocol?
  One verb yes, but the dictionary numbers the definitions.
 
 
 On Mon, Mar 31, 2014 at 12:35 PM, Melanie mela...@t-data.com wrote:
 
 This isn't designed as RPC, it's designed as REST. One URL/VERB
 combination for each function.
 We wanted to get away from the RPC concept. Let's not take backwards
 steps here.

 Melanie

 On 31/03/2014 15:15, Oren Hurvitz wrote:
  This isn't overloading: it's an RPC endpoint that accepts many methods.
 You
  wouldn't create a separate endpoint for each method, would you?
 
 
 
 
  --
  View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
  Sent from the opensim-dev mailing list archive at Nabble.com.
 
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
Because even if badness exists, that is not a reason to add more
badness. Let's do future additions the right way.

Melanie

On 31/03/2014 18:52, Oren Hurvitz wrote:
 If you say that the intention was to use REST then of course I accept what
 you say. But whatever the vision was, the implementation today is very
 different: many services use RPC. The /auth endpoint, for example, handles
 6 methods. The /avatar endpoint handles 5 methods. And that's just for
 services that start with the letter 'A'. So why the pushback on the assets
 endpoint, when so many other services already work this way?
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579112.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Stop saving SculptData in serialized SceneObjects

2014-03-27 Thread Melanie
Looks like you found the culprit! All those suggestions sound good.

Melanie

On 27 Mar 2014, at 17:03, Oren Hurvitz or...@kitely.com wrote:

When a prim is a Sculptie or Mesh, the prim's shape contains a field called
SculptData which stores the full mesh or texture (for sculpties). If the
prim is serialized then the field SculptData is also serialized, which is
a problem because it contains the entire contents of the mesh or texture.
This makes actions such as detaching a mesh attachment extremely slow.

I think that we should remove SculptData from the serialized XML format of
prims. This means that we'll stop serializing it, and when we get an XML
with SculptData we'll ignore it.

See also: http://opensimulator.org/mantis/view.php?id=7038 (Unwearing mesh
attachments very slow).

As far as I can tell, the shape's SculptData field (in memory) should
usually be empty. It only needs to be filled with the asset data in two
cases:
1. When the mesh is first uploaded
2. If the Physics system needs to create a physics mesh

In both cases, after the mesh data has been used it should be cleared
immediately, to save memory.

Regarding the behavior of the physics system, I see a few things that could
be a problem with the way it's currently implemented. What currently happens
is this: ODEPrim.CheckMeshAsset() loads the mesh/sculptie data if it's
needed. Later, Meshmerizer.CreateMeshFromPrimMesher() clears the data once
it has finished using it. This raises a couple of questions:

1. Where does BulletSim load the mesh data? It doesn't use ODEPrim.
2. It looks like Meshmerizer.CreateMeshFromPrimMesher() can sometimes return
early, without clearing the mesh data. Seems to me that it should always
clear it.

So besides removing SculptData from the XML format of prims, I also want
to make Meshmerizer clear the data more aggressively. And I don't know how
BulletSim uses meshes, but perhaps it also needs to be changed.

Thoughts?

Oren



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Stop-saving-SculptData-in-serialized-SceneObjects-tp7579079.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Stop saving SculptData in serialized SceneObjects

2014-03-27 Thread Melanie
In that case, i concur, just exclude it from serialization.

Melanie

On 27/03/2014 19:26, Dahlia Trimble wrote:
 That field contains the asset data, which, in the case of a sculptie is not
 a mesh but a texture. For ODE, the resulting mesh will be cached once
 generated and reused, however the asset will need to be reaccessed later if
 a mesh with another scale is required, or one with different optional
 parameters such as invert or mirror being set. If you remove the asset
 data, it will need another asset fetch and multiple attempts to create a
 mesh until the asset becomes available again. I'd suggest *not* removing
 the asset data, but rather exclude it from the serialization when it's
 being stored for attachment purposes so as to reduce as many asset fetches
 as possible and keep sim startup/load time low.
 
 
 On Thu, Mar 27, 2014 at 10:41 AM, James Stallings II 
 james.stalli...@gmail.com wrote:
 
 Knock 'em dead Oren xD


 On Thu, Mar 27, 2014 at 11:29 AM, Melanie mela...@t-data.com wrote:

 Looks like you found the culprit! All those suggestions sound good.

 Melanie

 On 27 Mar 2014, at 17:03, Oren Hurvitz or...@kitely.com wrote:

 When a prim is a Sculptie or Mesh, the prim's shape contains a field
 called
 SculptData which stores the full mesh or texture (for sculpties). If the
 prim is serialized then the field SculptData is also serialized, which
 is
 a problem because it contains the entire contents of the mesh or texture.
 This makes actions such as detaching a mesh attachment extremely slow.

 I think that we should remove SculptData from the serialized XML format of
 prims. This means that we'll stop serializing it, and when we get an XML
 with SculptData we'll ignore it.

 See also: http://opensimulator.org/mantis/view.php?id=7038 (Unwearing
 mesh
 attachments very slow).

 As far as I can tell, the shape's SculptData field (in memory) should
 usually be empty. It only needs to be filled with the asset data in two
 cases:
 1. When the mesh is first uploaded
 2. If the Physics system needs to create a physics mesh

 In both cases, after the mesh data has been used it should be cleared
 immediately, to save memory.

 Regarding the behavior of the physics system, I see a few things that
 could
 be a problem with the way it's currently implemented. What currently
 happens
 is this: ODEPrim.CheckMeshAsset() loads the mesh/sculptie data if it's
 needed. Later, Meshmerizer.CreateMeshFromPrimMesher() clears the data once
 it has finished using it. This raises a couple of questions:

 1. Where does BulletSim load the mesh data? It doesn't use ODEPrim.
 2. It looks like Meshmerizer.CreateMeshFromPrimMesher() can sometimes
 return
 early, without clearing the mesh data. Seems to me that it should always
 clear it.

 So besides removing SculptData from the XML format of prims, I also want
 to make Meshmerizer clear the data more aggressively. And I don't know how
 BulletSim uses meshes, but perhaps it also needs to be changed.

 Thoughts?

 Oren



 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Stop-saving-SculptData-in-serialized-SceneObjects-tp7579079.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




 --
 ===
 http://osgrid.org/
 http://simhost.com
 http://twitter.com/jstallings2


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Stop saving SculptData in serialized SceneObjects

2014-03-27 Thread Melanie
Attachments can be dropped and then need the proxy again.

Melanie

On 27/03/2014 19:29, Dahlia Trimble wrote:
 Another strategy may be do something along the lines of deleting it if the
 SOP is part of an attachment. Attachments are phantom and do not need
 physics proxies.
 
 
 On Thu, Mar 27, 2014 at 11:26 AM, Dahlia Trimble 
 dahliatrim...@gmail.comwrote:
 
 That field contains the asset data, which, in the case of a sculptie is
 not a mesh but a texture. For ODE, the resulting mesh will be cached once
 generated and reused, however the asset will need to be reaccessed later if
 a mesh with another scale is required, or one with different optional
 parameters such as invert or mirror being set. If you remove the asset
 data, it will need another asset fetch and multiple attempts to create a
 mesh until the asset becomes available again. I'd suggest *not* removing
 the asset data, but rather exclude it from the serialization when it's
 being stored for attachment purposes so as to reduce as many asset fetches
 as possible and keep sim startup/load time low.


 On Thu, Mar 27, 2014 at 10:41 AM, James Stallings II 
 james.stalli...@gmail.com wrote:

 Knock 'em dead Oren xD


 On Thu, Mar 27, 2014 at 11:29 AM, Melanie mela...@t-data.com wrote:

 Looks like you found the culprit! All those suggestions sound good.

 Melanie

 On 27 Mar 2014, at 17:03, Oren Hurvitz or...@kitely.com wrote:

 When a prim is a Sculptie or Mesh, the prim's shape contains a field
 called
 SculptData which stores the full mesh or texture (for sculpties). If the
 prim is serialized then the field SculptData is also serialized, which
 is
 a problem because it contains the entire contents of the mesh or texture.
 This makes actions such as detaching a mesh attachment extremely slow.

 I think that we should remove SculptData from the serialized XML format
 of
 prims. This means that we'll stop serializing it, and when we get an XML
 with SculptData we'll ignore it.

 See also: http://opensimulator.org/mantis/view.php?id=7038 (Unwearing
 mesh
 attachments very slow).

 As far as I can tell, the shape's SculptData field (in memory) should
 usually be empty. It only needs to be filled with the asset data in two
 cases:
 1. When the mesh is first uploaded
 2. If the Physics system needs to create a physics mesh

 In both cases, after the mesh data has been used it should be cleared
 immediately, to save memory.

 Regarding the behavior of the physics system, I see a few things that
 could
 be a problem with the way it's currently implemented. What currently
 happens
 is this: ODEPrim.CheckMeshAsset() loads the mesh/sculptie data if it's
 needed. Later, Meshmerizer.CreateMeshFromPrimMesher() clears the data
 once
 it has finished using it. This raises a couple of questions:

 1. Where does BulletSim load the mesh data? It doesn't use ODEPrim.
 2. It looks like Meshmerizer.CreateMeshFromPrimMesher() can sometimes
 return
 early, without clearing the mesh data. Seems to me that it should always
 clear it.

 So besides removing SculptData from the XML format of prims, I also
 want
 to make Meshmerizer clear the data more aggressively. And I don't know
 how
 BulletSim uses meshes, but perhaps it also needs to be changed.

 Thoughts?

 Oren



 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Stop-saving-SculptData-in-serialized-SceneObjects-tp7579079.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




 --
 ===
 http://osgrid.org/
 http://simhost.com
 http://twitter.com/jstallings2


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev



 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Changes to OpenSim.log, etc, log config

2014-03-26 Thread Melanie
IMHO, this is a change that should have been discussed beforehand.
This is just the kind of change we try to avoid making without
consultation.

That said, I am against this change. A possible alternative would be
to include this as an alternate configuration, commented out, i
these files and maybe document how to change it, but to change the
default is not the way we do this. It will play hell with
installations where people use operating system features and/or
external programs to rotate and/or archive logs.

Options are fine, changing defaults without discussion is not.

Melanie

On 26/03/2014 07:35, Oren Hurvitz wrote:
 This doesn't change the amount of data logged; it just makes it easier to use
 since the files are smaller, and it makes finding events of interest easier.
 
 Your objection is to the *number* of files? I admit that this wasn't a
 concern for me because I do save the logs in a log subdirectory. So how
 about we do that? If we're changing the behavior of log files then we might
 as well make all the changes we want at one time.
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Changes-to-OpenSim-log-etc-log-config-tp7579053p7579058.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Detaching mesh objects causes the region set send full asset data -- including geometry -- to the asset server

2014-03-26 Thread Melanie
And the answer is: NO.

That should NEVER happen. It's a BIG hairy-legged bug!

Melanie

On 26/03/2014 12:52, Aine wrote:
 Bingo!
 
 I just ran my test again with a newly created test mesh and did not observe
 the mass of data being sent to the asset server when I unwore it (as per
 Oren's post in the mantis). I then wore it again and added a generic empty
 script
 
 default
 {
 state_entry()
 {
 llSay(0, Script running);
 }
 }
 
 I then unwore it and saw the massive amount of data sent. I guess I've been
 observing this so frequently with attached meshes because I often add a
 script to allow me to conveniently tint and texture it (selecting faces on a
 conforming mesh can be an exercise in frustration).
 
 So the issue shifts to is it really necessary to resend the entire mesh
 geometry data every time it's unworn if the mesh contains a script?
 
 
 
 -Original Message-
 From: opensim-dev-boun...@lists.berlios.de
 [mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Melanie
 Sent: Tuesday, March 25, 2014 10:50 PM
 To: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Detaching mesh objects causes the region set send
 full asset data -- including geometry -- to the asset server
 
 Hi,
 
 this is a potentially very serious bug.
 
 For prims, OpenSim will indeed save the prims back into an asset when they
 are unworn if they have changed or contain scripts.
 This is because script states are saved as part of the object.
 Mesh of course needs to be detected and treated differently.
 Resaving mesh is incredibly wasteful and should just not happen.
 
 Melanie
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Detaching mesh objects causes the region set send full asset data -- including geometry -- to the asset server

2014-03-26 Thread Melanie
No. Assets are immutable, so each time you detach, a new one is
generated. That is correct behavior. The scene object must be saved
because a contained script could have changed textures or colors or
the geometry, also, script states are saved in the scene object as well.

The issue here arises when the object is a mesh. In that case the
scene object should be saved, however, the mesh data itself should
not be saved as no script can change it. It is also normally quite
large, so we would certainly not want it to be saved again and
again, unchanged. We do still want to save the scene object, though.

Melanie

On 26/03/2014 13:33, Mike Chase wrote:
 I don't get this. I thought assets were immutable.  Why would you ever
 update an asset.  Contents yes I can see that but not the asset itself.  I
 suppose that's the bug?
 
 Mike
 
 -Original Message-
 From: opensim-dev-boun...@lists.berlios.de
 [mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Melanie
 Sent: Wednesday, March 26, 2014 8:33 AM
 To: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Detaching mesh objects causes the region set send
 full asset data -- including geometry -- to the asset server
 
 And the answer is: NO.
 
 That should NEVER happen. It's a BIG hairy-legged bug!
 
 Melanie
 
 On 26/03/2014 12:52, Aine wrote:
 Bingo!
 
 I just ran my test again with a newly created test mesh and did not 
 observe the mass of data being sent to the asset server when I unwore 
 it (as per Oren's post in the mantis). I then wore it again and added 
 a generic empty script
 
 default
 {
 state_entry()
 {
 llSay(0, Script running);
 }
 }
 
 I then unwore it and saw the massive amount of data sent. I guess I've 
 been observing this so frequently with attached meshes because I often 
 add a script to allow me to conveniently tint and texture it 
 (selecting faces on a conforming mesh can be an exercise in frustration).
 
 So the issue shifts to is it really necessary to resend the entire 
 mesh geometry data every time it's unworn if the mesh contains a script?
 
 
 
 -Original Message-
 From: opensim-dev-boun...@lists.berlios.de
 [mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Melanie
 Sent: Tuesday, March 25, 2014 10:50 PM
 To: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Detaching mesh objects causes the region 
 set send full asset data -- including geometry -- to the asset server
 
 Hi,
 
 this is a potentially very serious bug.
 
 For prims, OpenSim will indeed save the prims back into an asset when 
 they are unworn if they have changed or contain scripts.
 This is because script states are saved as part of the object.
 Mesh of course needs to be detected and treated differently.
 Resaving mesh is incredibly wasteful and should just not happen.
 
 Melanie
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Detaching mesh objects causes the region set send full asset data -- including geometry -- to the asset server

2014-03-25 Thread Melanie
Hi,

this is a potentially very serious bug.

For prims, OpenSim will indeed save the prims back into an asset
when they are unworn if they have changed or contain scripts.
This is because script states are saved as part of the object.
Mesh of course needs to be detected and treated differently.
Resaving mesh is incredibly wasteful and should just not happen.

Melanie


On 25/03/2014 22:16, Aine wrote:
 At today's dev meeting, Justin asked me to post to the mailing list to ask
 whether anyone can confirm my observation that when you wear a mesh object
 and then un-wear it, the full mesh data is being sent from the region server
 to the asset server and waits for an update response before it processes any
 further actions.
 
  
 
 Steps to most easily reproduce:
 
  
 
 1. Create a mesh object that is far more detailed than you would normally
 create (something in the 40k vert range). Rigged, weighted, UV mapped and
 normal-mapped, this will result in a dae that's about 10MB in size which
 will then be easy to spot when testing. Obviously a 10MB mesh is far too
 large to wear normally but this is the best means to demonstrate the issue.
 I can supply a test file if someone wants to try  this but isn't able to
 create the dae.
 
  
 
 2. Stand in a region where you are able to monitor the outbound and inbound
 data traffic between the region server and the asset server (for super-easy
 test, be in a home-hosted region with an ISP connection under 5Mbps that is
 connected to OSG)
 
  
 
 3. Upload the mesh (brew coffee while waiting for it to finish). You'll
 notice outbound traffic during the upload as the geometry, etc is being sent
 to the asset server. The total traffic will be a little larger than your
 original file because LOD and physics also has to be stored. If you're very
 patient, upload it with silly LOD settings to have it display at nearly
 maximum mesh resolution at all distances and to use the highest possible
 quality physics mesh just so the asset is truly enormous (but never do this
 for a real asset!)
 
  
 
 4. Select an attachment point that you normally have something else attached
 to (the skull, for instance, where most people wear prim hair). Detach
 whatever is currently there.
 
  
 
 5. Attach the mesh to that point. Don't do anything else -- don't texture it
 or change it in any way. Just attach.
 
  
 
 6. Now from inventory, wear whatever normally mounts to that attachment
 point (assuming your viewer is set to replace objects on attachment points
 by default) which will cause the mesh to be detached and the other object to
 be attached.
 
  
 
 7. Monitor the outbound data traffic for the region and also see how long it
 takes your other object to appear.
 
  
 
 8. Repeat this over and over again, swapping back and forth between the hair
 (or whatever) and the mesh while watching the traffic. Depending on your
 debug settings, also watch the console for messages.
 
  
 
 Once you hit step 8, both objects are being worn from the viewer cache at
 this point so there is almost no traffic at all between the viewer and the
 region other than very small blips of data. Every time you unwear the mesh,
 there's a lengthy delay and the outbound traffic will show that a huge
 amount of data is being sent -- at least the entire geometry and possibly
 this also includes the UVs, normals, LOD and physics data (I have no idea
 since I'm only looking at total MB of data sent, not the actual contents of
 the packets) -- and it isn't until that data is fully sent that your other
 object (hair) will attach itself and rez. When you detach the hair, it
 disappears and is rapidly replaced with the mesh (since it's coming from
 your viewer cache) and there is minimal outbound traffic (barely a blip)
 between the region server and the asset server.
 
  
 
 When unwearing the mesh object if you're in a region with a slower outbound
 connection speed you will also see a console warning message complaining
 about how long it took to received a response from the asset server to
 confirm that the asset had been updated. Example:
 
  
 
 17:33:09 - [SynchronousRestObjectRequester]: Slow request 9912 POST
 http://assets.osgrid.org/assets/ took 7098ms, 94ms writing, ??xml
 version=1.0 encoding=utf-8?AssetBase
 xmlns:xsd=http://www.w3.org/2001/XMLSchema; xmlns
 
  
 
 Obviously this shouldn't be happening. Mesh attributes such as geometry,
 physics, etc can't change after upload so the only data that *should* be
 sent is the normal block sent when you unwear a prim or sculptie; and both
 Justin and Dahlia were skeptical at the dev meeting when I reported the
 issue so it would be helpful to know if anyone else is experiencing this, or
 to have someone else independently test and confirm that it's happening.
 Obviously nobody should be wearing mesh attachments of this extreme size;
 however a full mesh avatar wearing mesh clothing, mesh footwear, mesh
 jewelry, etc can begin to approach these sorts of total

Re: [Opensim-dev] Proposal: notify clients when Robust changes a user's inventory

2014-03-13 Thread Melanie
In the past we have studiously acoided abusing thr instant message protocol as 
a message transport.
The Linden protocols use the InstantMessageDialog for similar purposes, but way 
back when it was decided to not make the same mistake.
So while notifying the client of such inventory changes is a good idea, using 
instant messages as the protocol may not be agreeable to all.
Personally, I'm not opposed to it.

Melanie

On 13 Mar 2014, at 18:16, Oren Hurvitz or...@kitely.com wrote:

Sometimes Robust makes changes to a user's inventory on its own initiative
(i.e., not as the result of a client request). E.g., this happens when it
creates the My Suitcase folder. When that happens we should notify the
client, so that the new item or folder will be visible in the inventory
window immediately. Otherwise the user won't be able to see the changes
until they restart the client, which is confusing and frustrating.

I want to use the existing IM service to do this, since it already has 95%
of the necessary code. It already has services in place for Robust to find
which region the user is in, and send a message to that simulator. It can
even do this if the user is in a different grid.

My proposal is to define a special format of GridInstantMessage, which tells
the simulator to send SendBulkUpdateInventory() to the client. The data
about which specific folder/item were added will be encoded in the field
'binaryBucket'. OpenSim will recognize this new type of message, and call
client.SendBulkUpdateInventory().

This mechanism will work cleanly with older simulators: I'll remove a key
field from GridInstantMessage, e.g. 'from_agent_id', and this will cause old
simulators to ignore the message. This can be seen in
MessageTransferModule.processXMLRPCGridInstantMessage(): the removal of a
required field causes the simulator to ignore the message. Only new
simulators will recognize and handle this new type of message.

Any comments or objections? Is there a simpler way to do this?

Oren



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Proposal-notify-clients-when-Robust-changes-a-user-s-inventory-tp7579018.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Proposal: notify clients when Robust changes a user's inventory

2014-03-13 Thread Melanie
In SL, IM is used for a lot of things besides actual IM. We at some
point decided to try and use more specific messaging/APIs to
accomplish our communications goals. I've adhered to that in my core
contributions but my out of core work does use IM as transport and
it works like a charm.

IM is, because of this agreed limitation, a pure client - sim
thing, as we translate the IM things (like friend stuff) into the
above mentioned more specific APIs.

However, there is nothing that prevents external services to query
presence and inject IM using different IntantMessageDialog values
into the last known sim the user is in, leveraging the hunting
mechanism IM already has, to deliver a message from a service to a
client.

From all appearances, that's not too different from what LL do.

Melanie

On 14/03/2014 02:01, Justin Clark-Casey wrote:
 I think IM is just viewer - simulator and simulator - simulator or am I 
 wrong?
 
 On 14/03/14 00:50, Diva Canto wrote:

 On 3/13/2014 5:48 PM, Justin Clark-Casey wrote:
 I think this would be the first case of service - simulator comms.

 Except for IM itself...

 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


[Opensim-dev] Status of master

2014-01-05 Thread Melanie
We have come quite a ways with this merge, but there are still some
issues left to address.

Unfortunately, I was taken ill a few days before Christmas and have
still not fully recovered. Because of that, things are not happening
as swiftly as I and everyone else could have wished for.

Since my last report, a couple of issues have been addressed. Master
is essentially usable for it's intended purpose, which is to test
and develop against. At this time, we can't say for sure that there
are no regressions, so master cannot be recommended for any kind of
production use. But then, that has always been the case.

One of the issues that cannot be easily fixed is the introduction of
additional Visual Params by Linden Labs. Visual Params are
essentially the sliders that the viewer uses for the shape and
clothing manipulation.

Since the last time this code was touched, Linden Labs has added
some more Visual Params, to wit, the physics wearables. Master now
supports these sliders, but adding this support uncovered a long
standing bug in the code for sending the data to the viewer.

Essentially, an array was accessed without bounds checking,
resulting in red ink whenever an avatar from a sim running master
enters a sim running an older version. The avatar will also remain a
cloud in most cases where this happens.

I have pushed a fix for this to 0.7.5-post fixes on git and users
who compile their own can pick it up from there and update their
0.7.5 regions. Versions 0.7.4 and earlier have not received this fix
and will not work with master regions anymore.

I would ask all packagers who ship 0.7.5 to pull the patches from
post-fixes and respin their distributions. Anyone still running
0.7.5 or lower is urgently requested to upgrade to this fixed 0.7.5
release as soon as possible.

With everyone working together, we can make this transition as
painless as possible for the metaverse. We have at this time decided
not to make this a mandatory upgrade to avoid disruption of grids
and HG destinations, but please do consider upgrading as soon as
possible.

- Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] GIt master is broken until further notice

2013-12-13 Thread Melanie
It's definitely planned to be done before than. :)

Melanie

On 13/12/2013 13:58, R.Gunther wrote:
 Agree with justin, especially because people aroujd xmas maby like to 
 test dev version.
 Gives hardhat to dahlia. :)
 
 On 2013-12-13 01:54, Justin Clark-Casey wrote:
 This needs to be done very soon or we need some imminent timeframe. 
 The rest of the code needs to be merged in so that master can be fixed 
 and we can move forward.  Leaving it broken over Christmas would be a 
 very poor show.

 On 11/12/13 02:05, Dahlia Trimble wrote:
 Melanie has begun merging her region crossing code into git master 
 and expects that the changes will break the
 repository for some indefinite period. The last usable commit was 
 08750501617ca332ab196b2f25030e3c635c9dd6 made on
 December 10th. Please do not use commits after this until master is 
 fixed.

 -dahlia


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] GIt master is broken until further notice

2013-12-13 Thread Melanie
I will likely need to add some dummy methods to Bullet to satisfy
the new physics interface. In particular, part of the crossing code
is a method to save and restore vehicle parameters. They are
shadowed in SOP or SOG, i forget which one, and re-set on crossing.
You may need to flesh out these methods.

Melanie

On 13/12/2013 18:02, James Stallings II wrote:
 That's definitely good to hear :)
 
 
 A quick question related to the work:
 
 Will this change be compatible with Bullet or will this be for ODE only?
 
 TIA and Cheers!
 James
 
 
 
 On Fri, Dec 13, 2013 at 9:38 AM, Melanie mela...@t-data.com wrote:
 
 It's definitely planned to be done before than. :)

 Melanie

 On 13/12/2013 13:58, R.Gunther wrote:
  Agree with justin, especially because people aroujd xmas maby like to
  test dev version.
  Gives hardhat to dahlia. :)
 
  On 2013-12-13 01:54, Justin Clark-Casey wrote:
  This needs to be done very soon or we need some imminent timeframe.
  The rest of the code needs to be merged in so that master can be fixed
  and we can move forward.  Leaving it broken over Christmas would be a
  very poor show.
 
  On 11/12/13 02:05, Dahlia Trimble wrote:
  Melanie has begun merging her region crossing code into git master
  and expects that the changes will break the
  repository for some indefinite period. The last usable commit was
  08750501617ca332ab196b2f25030e3c635c9dd6 made on
  December 10th. Please do not use commits after this until master is
  fixed.
 
  -dahlia
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] GIt master is broken until further notice

2013-12-13 Thread Melanie
We do it the same way for a lot of stuff. Now, some of the vehicle
stuff and some other SOP stuff is too specific to be generlized, but
I understand where you're coming from.

Melanie

On 13/12/2013 20:27, Mister Blue wrote:
 I will generalize these after you have added the functions because there
 are other uses for being able to 'pickup' and move physics state. The
 functions should be more general than just get vehicle state. For
 instance, BulletSim is getting an extension to linksets which allows
 linkset links to be other than static constraints (slider, hinge, 6DoF,
 ...) and the linkset specification also needs transferring.
 
 The returned vehicle state should be a dictionary or OSDMap and not a
 structure. This makes the interface contract looser but allows extensions.
 
 One technique I've used to extend the physics interface is, since
 PhysicsScene is a class, to add a virtual method to PhysicsScene and
 override it in any physics engine that implements that method. That way I
 don't have to tweak all the different physics engines since a default
 function exists.
 
 --m b
 
 
 On Fri, Dec 13, 2013 at 10:46 AM, Melanie mela...@t-data.com wrote:
 
 I will likely need to add some dummy methods to Bullet to satisfy
 the new physics interface. In particular, part of the crossing code
 is a method to save and restore vehicle parameters. They are
 shadowed in SOP or SOG, i forget which one, and re-set on crossing.
 You may need to flesh out these methods.

 Melanie

 On 13/12/2013 18:02, James Stallings II wrote:
  That's definitely good to hear :)
 
 
  A quick question related to the work:
 
  Will this change be compatible with Bullet or will this be for ODE only?
 
  TIA and Cheers!
  James
 
 
 
  On Fri, Dec 13, 2013 at 9:38 AM, Melanie mela...@t-data.com wrote:
 
  It's definitely planned to be done before than. :)
 
  Melanie
 
  On 13/12/2013 13:58, R.Gunther wrote:
   Agree with justin, especially because people aroujd xmas maby like to
   test dev version.
   Gives hardhat to dahlia. :)
  
   On 2013-12-13 01:54, Justin Clark-Casey wrote:
   This needs to be done very soon or we need some imminent timeframe.
   The rest of the code needs to be merged in so that master can be
 fixed
   and we can move forward.  Leaving it broken over Christmas would be a
   very poor show.
  
   On 11/12/13 02:05, Dahlia Trimble wrote:
   Melanie has begun merging her region crossing code into git master
   and expects that the changes will break the
   repository for some indefinite period. The last usable commit was
   08750501617ca332ab196b2f25030e3c635c9dd6 made on
   December 10th. Please do not use commits after this until master is
   fixed.
  
   -dahlia
  
  
   ___
   Opensim-dev mailing list
   Opensim-dev@lists.berlios.de
   https://lists.berlios.de/mailman/listinfo/opensim-dev
  
  
  
   ___
   Opensim-dev mailing list
   Opensim-dev@lists.berlios.de
   https://lists.berlios.de/mailman/listinfo/opensim-dev
  
  
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
 
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Rate Limit DOS Protection

2013-10-08 Thread Melanie
I'm worried that people with larger installations will see service failures 
because legit traffic is seen as abusive. This could cause issues for the 
lerger grids out there. I don't believe that whatever tenuous protection this 
may offer for small grids and standalones outwieghs the potential service 
impairment it may cause for unsuspecting larger grids. Not every grid operator 
reads this list,

So I'd again suggest that we stick to the way we've always done it and make the 
default for new features be off.

Melanie

On 8 Oct 2013, at 09:31, Teravus Ovares tera...@gmail.com wrote:

I understand what you're saying.  It's hard to argue to leave
people unprotected from attacks, though.I'm certainly open to
making the defaults less protective, and, I'm concerned enough about
it that I'd prefer to leave some protection in place there.

What are your thoughts on that?

Best Regards

Teravus

On Tue, Oct 8, 2013 at 12:41 AM, Melanie mela...@t-data.com wrote:
 Hi,
 
 in keeping with our SOP, the defaults provided should be emulating
 the previous behavior, e.g. NO rate limiting.
 
 I would much appreciate if that procedure would be adhered to,
 unless we vote to abandon it. Users could suffer because they don't
 expect the default config to change on them.
 
 Cheers,
 
 Melanie
 
 On 08/10/2013 05:42, Teravus Ovares wrote:
 Hi there,
 
 I just wanted to inform -dev that I added some rate limiting DOS
 protection classes to use to protect your opensim based services from
 rapid calling.  At the moment, this will be most noticeable in the
 Login Service.I have, both as an example, and good practice,
 applied the Rate limit protection to the login service.There are
 new Configuration options in StandaloneCommon.ini and Robust.ini that
 control how the connections are rate limited and if trusts the
 X-Forwarded-For header.Just for the sake of getting something up
 there, I set the defaults to something sane, however they may not work
 for everyone, so it may be wise to take a look at the new
 configuration options in the [LoginService] section of your
 bin/Robust.ini.example and
 /bin/config-include/StandaloneCommon.ini.example AND/OR have
 discussions on what would be more sane default options.   There's a
 chance that this could affect anyone, so don't neglect to take a look
 at it.
 
 You may also notice messages on your console and in your logs like:
 21:56:29 - [LOGINDOSPROTECTION]: client: 192.168.1.213 is blocked for
 12 milliseconds, X-ForwardedForAllowed status is False,
 endpoint:192.168.1.213
 
 This is an example of the DOS Protection blocking a connection because
 the client went beyond the rate limit.
 
 The rate limit is defined by X requests in Y period of time and is
 implemented in a rolling Y fashion.   It also has a 'forget' period of
 time that will unblock the blocked user.
 
 At this point, there's one implemented for XMLRPC handlers, one for
 GenericHTTPHandlers and a base class for StreamHandlers based on
 BaseStreamHandler.
 
 If you are interested in the code changes, you can check the diff:
 http://opensimulator.org/viewgit/?a=commitdiffp=opensimh=f76cc6036ebf446553ee5201321879538dafe3b2
 
 There's still more to do, and, here's a start to providing some
 modicum of protection on the services.
 
 If you have any questions, feel free to reply and ask..  or send me an
 e-mail personally.
 
 Thanks and Best Regards
 
 Teravus
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Rate Limit DOS Protection

2013-10-08 Thread Melanie
The login server should only ever see one connection per client, any more is 
most likely a DOS.

Services that are called by regions are way more critical, as they get all 
requests from a few entities only. The inventory service, for instance, can't 
be rate limited because a single login creates a slew of requests. Also, it 
should not normally be accessible to the world.

Melanie

On 8 Oct 2013, at 18:27, Teravus Ovares tera...@gmail.com wrote:

Just to be clear, and comment/answer some questions.

I did add the DOS protection variables to the Robust.ini.example in
the [LoginService] section.  The Rate Limit code does 'per connection'
velocity counts.   The default rate setting is 5 requests in 10
seconds.If you have a transparent proxy, such as squid, you need
to set DOSAllowXForwardedForHeader to true so that the code trusts the
X-Forwarded-For header that your proxy adds to the headers.If you
want to turn it off, set DOSMaxRequestsInTimeFrame = 0.   If you
want to allow individual clients to do 20 connections in 5 seconds,
set DOSMaxRequestsInTimeFrame = 20 and   DOSRequestTimeFrameMS = 5000.
 If you want to change how long individual connections are blocked
when they go over the rate limit, change DOSForgiveClientAfterMS.

Hopefully this helps get you started with the config options.

One more thing, this DOS protector is configured and implemented 'per
service',So, if it's implemented in the login service, it's not
going to get triggered by the Group Service.   If there's DOS
protection on the Group Service and the login service, and a
connection gets blocked on the login service, they'll still be able to
access the Group Service because they're individually rate limited...
This is for flexibility.Choosing what the best rate limit is
cannot really be done server wide, it has to be based on the needs of
the individual service and that's why it was implemented this way.
At this point, the only major service that has rate limiting on by
default is the login service.

I'll be happy to answer more questions and discuss default settings.


Best Regards

Teravus


On Tue, Oct 8, 2013 at 8:04 AM, James Stallings II
james.stalli...@gmail.com wrote:
 As I have often been told by you, Melanie, if I am upgrading and not
 auditing, adjusting, and testing my configs in accordance with changes, I'm
 doing it wrong.
 
 I think that statement probably applies more to those running larger
 concerns than anyone else.
 
 Honestly, Teravus typically does a better job of coding than to produce work
 that does not take such matters of scale into consideration.
 
 I'm comfortable with whatever he chooses to do, and if it turns out it isn't
 a case of 'one size fits all', I'll make adjustments accordingly.
 
 
 On Tue, Oct 8, 2013 at 7:52 AM, Melanie mela...@t-data.com wrote:
 
 I'm worried that people with larger installations will see service
 failures because legit traffic is seen as abusive. This could cause issues
 for the lerger grids out there. I don't believe that whatever tenuous
 protection this may offer for small grids and standalones outwieghs the
 potential service impairment it may cause for unsuspecting larger grids. Not
 every grid operator reads this list,
 
 So I'd again suggest that we stick to the way we've always done it and
 make the default for new features be off.
 
 Melanie
 
 On 8 Oct 2013, at 09:31, Teravus Ovares tera...@gmail.com wrote:
 
 I understand what you're saying.  It's hard to argue to leave
 people unprotected from attacks, though.I'm certainly open to
 making the defaults less protective, and, I'm concerned enough about
 it that I'd prefer to leave some protection in place there.
 
 What are your thoughts on that?
 
 Best Regards
 
 Teravus
 
 On Tue, Oct 8, 2013 at 12:41 AM, Melanie mela...@t-data.com wrote:
 Hi,
 
 in keeping with our SOP, the defaults provided should be emulating
 the previous behavior, e.g. NO rate limiting.
 
 I would much appreciate if that procedure would be adhered to,
 unless we vote to abandon it. Users could suffer because they don't
 expect the default config to change on them.
 
 Cheers,
 
 Melanie
 
 On 08/10/2013 05:42, Teravus Ovares wrote:
 Hi there,
 
 I just wanted to inform -dev that I added some rate limiting DOS
 protection classes to use to protect your opensim based services from
 rapid calling.  At the moment, this will be most noticeable in the
 Login Service.I have, both as an example, and good practice,
 applied the Rate limit protection to the login service.There are
 new Configuration options in StandaloneCommon.ini and Robust.ini that
 control how the connections are rate limited and if trusts the
 X-Forwarded-For header.Just for the sake of getting something up
 there, I set the defaults to something sane, however they may not work
 for everyone, so it may be wise to take a look at the new
 configuration options in the [LoginService] section of your
 bin/Robust.ini.example and
 /bin/config

Re: [Opensim-dev] Rate Limit DOS Protection

2013-10-08 Thread Melanie
People like us have the protection in the proxy and need to turn the
feature off. Not a problem for me, I'm aware of it, but my concern
was for those who didn't listen to me tell them Dont' blindly reuse
configs

Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Rate Limit DOS Protection

2013-10-07 Thread Melanie
Hi,

in keeping with our SOP, the defaults provided should be emulating
the previous behavior, e.g. NO rate limiting.

I would much appreciate if that procedure would be adhered to,
unless we vote to abandon it. Users could suffer because they don't
expect the default config to change on them.

Cheers,

Melanie

On 08/10/2013 05:42, Teravus Ovares wrote:
  Hi there,
 
 I just wanted to inform -dev that I added some rate limiting DOS
 protection classes to use to protect your opensim based services from
 rapid calling.  At the moment, this will be most noticeable in the
 Login Service.I have, both as an example, and good practice,
 applied the Rate limit protection to the login service.There are
 new Configuration options in StandaloneCommon.ini and Robust.ini that
 control how the connections are rate limited and if trusts the
 X-Forwarded-For header.Just for the sake of getting something up
 there, I set the defaults to something sane, however they may not work
 for everyone, so it may be wise to take a look at the new
 configuration options in the [LoginService] section of your
 bin/Robust.ini.example and
 /bin/config-include/StandaloneCommon.ini.example AND/OR have
 discussions on what would be more sane default options.   There's a
 chance that this could affect anyone, so don't neglect to take a look
 at it.
 
 You may also notice messages on your console and in your logs like:
 21:56:29 - [LOGINDOSPROTECTION]: client: 192.168.1.213 is blocked for
 12 milliseconds, X-ForwardedForAllowed status is False,
 endpoint:192.168.1.213
 
 This is an example of the DOS Protection blocking a connection because
 the client went beyond the rate limit.
 
 The rate limit is defined by X requests in Y period of time and is
 implemented in a rolling Y fashion.   It also has a 'forget' period of
 time that will unblock the blocked user.
 
 At this point, there's one implemented for XMLRPC handlers, one for
 GenericHTTPHandlers and a base class for StreamHandlers based on
 BaseStreamHandler.
 
 If you are interested in the code changes, you can check the diff:
 http://opensimulator.org/viewgit/?a=commitdiffp=opensimh=f76cc6036ebf446553ee5201321879538dafe3b2
 
 There's still more to do, and, here's a start to providing some
 modicum of protection on the services.
 
 If you have any questions, feel free to reply and ask..  or send me an
 e-mail personally.
 
 Thanks and Best Regards
 
 Teravus
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Missing config option ProfileURL = in ini files ?

2013-03-25 Thread Melanie
Since that is not a core module, you will need to add the
configuration for it yourself; core doesn't come with it.

Melanie

On 25/03/2013 23:09, R.Gunther wrote:
 Ok, i where looking and testing the profile module from 
 http://opensimulator.org/wiki/Profile
 But for some reason when you get at step 3. and you do a search on part 
 of the word. the following part
 is not found in any ini file. is the wiki outdated ? or is moved to 
 config-include but not compleet ?
 i have for now add the following part like the wiki says to opensim.ini
 
 [Profile]
  Module=OpenProfileModule
  ProfileURL=http://yourwebserverdomainname/pathto/profile.php;
 
 
 But still curious why theProfileURL is not there.
 i tried btw the profile stuff. but in grid mode it seems to fail without that 
 line in opensim.ini
 Not sure if thats indeed coirrect setup for test grid.
 
 
 
 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Avination's Physics vs. BulletSim

2013-02-11 Thread Melanie
Hi,

Avination has not donated the entire physics system but has donated
the glue that enables Bullet to work in the same Framework that
has been tried and tested in Avination, thereby reducing the need
for duplicated effort.

This code donation is not competing with Bullet, it is supporting it.

Melanie

On 11/02/2013 17:01, drWhiet wrote:
 Hi all,
 
 I just wonder how Avinations decision to contribute their physics back to
 opensim
 affects the development of BulletSim. Will both exist next to each other ?
 Mayby Adam
 can say something about this ? 
 
 Best regards,
 Wordfromthe Wise
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Sending extra prim properties to clients

2013-02-07 Thread Melanie
We have all this code I just haven't had a chance to push it yet.
You wasted that work, sorry to say.

My commit message _did_ say yet and that more is to come.

Melanie

On 07/02/2013 08:37, Oren Hurvitz wrote:
 Hi,
 
 Recently Melanie added support for the Extra Physics Parameters, such as
 Physics Shape Type and Density. I implemented support for receiving these
 parameters from the client. However, I'm not sure how to send these
 parameters *back* to the client, so right now on the client it looks as if
 the changes didn't take place because the values remain at 0.
 
 This is an area of the code I'm not familiar with. How does sending prim
 properties to clients work? It looks like it's done in
 LLClientView.ProcessEntityPropertyRequests(). However, the physics
 parameters should be sent in a different packet: ObjectFlagUpdatePacket.
 Should this packet be sent automatically whenever we send a prim-properties
 packet? That would mean doubling the number of packets sent per prim.
 
 Oren
 
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Sending-extra-prim-properties-to-clients-tp7578537.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Dynamic attributes

2013-02-06 Thread Melanie
A word of caution:

Many people have scripts that would store copious amounts of data.
Some limits need to be placed on the overall storage given to a
script so it becomes unattractive to store lots of data in the
simulator. Scripts needing lots of storage should use a web server,
not sim resources.

Melanie

On 07/02/2013 02:59, Mic Bowman wrote:
 for discussion purposes...
 
 added the jsonstore connection to the dynamic attributes. here's an example
 of an LSL script that sets the attributes (create a notecard called
 JsonData with some json structure inside it)... you can interrogate the
 store through channel 30... eg /30 jstoretest.test1.field
 
 btw... i really think that hooking up the object store with a variant of
 llrezobject() would be very good. it would make passing more complex
 initialization parameters a LOT easier (better than the one integer you get
 right now). i'm doing this with a modified version that uses a global
 jsonstore...
 
 --mic
 
 
 integer iChannel = 30;
 string sInitCard = JsonData;
 key kStoreID;
 
 InitializeObjectStore()
 {
 llOwnerSay(initializing the object store);
 JsonSetValueJson(kStoreID,jstoretest,{'test1': {'field' : 22}});
 JsonReadNotecard(kStoreID,jstoretest, sInitCard);
 }
 
 default
 {
 state_entry()
 {
 kStoreID = JsonAttachObjectStore();
 if (JsonTestPathJson(kStoreID,jstoretest) == 0)
 InitializeObjectStore();
 
 llOwnerSay(object store is  + JsonGetValueJson(kStoreID,.));
 
 llListen(iChannel,,llGetOwner(),);
 }
 
 listen(integer ch, string name, key id, string msg)
 {
 if (ch == iChannel)
 {
 list tokens = llParseString2List(msg,[ ],[]);
 string path = JsonList2Path(tokens);
 string value = JsonGetValueJson(kStoreID,path);
 llOwnerSay(path +  ==  + value);
 }
 }
 }
 
 
 
 On Wed, Feb 6, 2013 at 3:00 PM, Mic Bowman cmick...@gmail.com wrote:
 
 one more thing... is there a strong reason for XML serialization as
 opposed to json? (I assume the primary reason is for consistency with other
 properties.) the OSDMap data structure corresponds fairly closely to JSON.
 serializing works fine for either format though it is easy to provide an
 xml document that will not deserialize into an OSDMap.

 --mic


 On Wed, Feb 6, 2013 at 1:58 PM, Mic Bowman cmick...@gmail.com wrote:

 Justin,

 I took a look at the DAMap data structure  have some questions. What's
 the value of explicit methods for the top level of the structure? It is
 still possible to have name space collisions since there is nothing that
 prevents one module from writing into another module's name space. Also,
 whats your expectation for locking? The top level accessor locks the
 structure, but modules that share the rest of the structure will have to do
 their own locking anyway. I guess one value of controlling the top level is
 that *IF* modules are making exclusive access to the structure, the locking
 is minimized. Hard to control that, though.

 Did you get a chance to look at the JsonStore structure? The path-based
 accessors are very different than providing immediate access to the OSDMap.
 As we discussed, I made that decision to support the synchronization
 operations (take  read) and it removes the exposed OSDMap so that the data
 structure can be replaced. I think the path-based accessor is probably too
 heavyweight for DAMap... well... maybe... given that we dont have any
 examples yet its hard to tell. :-)

 --mic


 On Mon, Feb 4, 2013 at 5:09 PM, Justin Clark-Casey 
 jjusti...@googlemail.com wrote:

 Okay, I have now merged this branch (dynamic-attributes2) to master.
  Please report any problems (or fix them :)

 As this is experimental functionality, if necessary it can be
 changed/bug-fixed without any attempt to preserve existing data.  Any code
 using it should handle the 'expected data not found' case anyway.

 On 26/01/13 19:52, Adams, Robert wrote:

 This implementation will work for physics. The physics engine cannot
 reference Scene (circular reference madness) so, on creation of the 
 scene's
 physics instance, I will pass in the instance of DAMap (since it is 
 defined
 in OpenSim.Framework) much the same way the asset request method instance
 is passed in.

 I am +2 on this branch's inclusion into master.

 -- ra

 -Original Message-
 From: 
 opensim-dev-bounces@lists.**berlios.deopensim-dev-boun...@lists.berlios.de[mailto:
 opensim-dev-bounces@**lists.berlios.deopensim-dev-boun...@lists.berlios.de]
 On Behalf Of Justin Clark-Casey
 Sent: Friday, January 25, 2013 5:14 PM
 To: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Dynamic attributes

 On 25/01/13 08:40, Oren Hurvitz wrote:

 Ok, great. I hope all goes well and this will be added to master soon.

 What do you mean by put the code in for MSSQL? The code already
 supports MySQL, MSSQL and SQLite.


 Apologies - my brain stored the assumption

Re: [Opensim-dev] How does the viewer know the user's maturity rating

2013-02-04 Thread Melanie
Your version of OpenSim is too old. This is not a bug, but a new CAP
that as added in SL to disallow setting a viewer's content pref to
something higher than what the server knows to be true. Simulators
that don't implement that cap will not allow changing the value.

Avination donated the implementation of this cap weeks ago but we
don't know if it is in a formal release yet. However, OpenSim core
code in Git has it.

Melanie

On 04/02/2013 16:23, Oren Hurvitz wrote:
 Yes, I know where to find this setting. But when I try to change it,
 Firestorm says that I'm not allowed. That's the problem that I'm trying to
 solve.
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/How-does-the-viewer-know-the-user-s-maturity-rating-tp7578517p7578523.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Raise minimum mono version to 2.6

2013-01-27 Thread Melanie
It has always been our policy to use the _lowest_ version of Mono
that we can get by on to support the largest possible number of
configurations and systems.

This is not going to change.

The feature required by recent code additions is found in Mono 2.6,
so we are discussing Mono 2.6 now. We are not discussing Mono 2.10.

Melanie

On 27/01/2013 15:32, Ilan Tochner wrote:
 If, as we both agree, OpenSim works differently with different versions of
 mono then people are going to report bugs that exist when OpenSim is run on
 mono versions prior to 2.10 that don't exist with mono version 2.10 and
 later.
 
 How many people are there in the OpenSim dev community that still actively
 use a mono version prior to 2.10? In fact, AFAIK, many devs are already
 looking to see when they can safely move to mono 3.0. So, who is going to
 work on fixing bugs that no longer exist with mono 2.10 and later? If no
 ones is going to work on doing that then we can't honestly say that mono
 2.6 or 2.8 are still supported.
 
 If we intend to have new OpenSim users, we should have them using the mono
 version with which they'll get the best experience with the existing /
 future code base. It doesn't help anyone if they use an outdated version of
 mono and find that the problems they encounter aren't going to be addressed
 because they no longer exist with newer versions of mono.
 
 Cheers,
 
 Ilan Tochner
 Co-Founder and CEO
 Kitely Ltd.
 
 On Sun, Jan 27, 2013 at 2:36 PM, Dahlia Trimble 
 dahliatrim...@gmail.comwrote:
 
 Nobody is asking you to use an older version. The minimum version is
 simply the earliest version that would be required to run OpenSimulator.
 Anyone is free to use any later version if they so choose.

 It's also not true that later versions are necessarily better. I've
 personally had to disable features in OpenSimulator and remove them from
 core due to newer versions of Mono which introduced new bugs that made such
 features unusable.



 On Sun, Jan 27, 2013 at 1:05 AM, Ilan Tochner i...@kitely.com wrote:

 Mono 2.10 was released Feb 15th, 2011, i.e almost two years ago. I don't
 think there is any target platform that mono 2.6 runs on that doesn't have
 mono 2.10 working on it as well.

 There have been many bug fixes in mono between the 2.6 release and the
 2.10 release, some of which can definitely effect OpenSim performance and
 stability. Who would choose to use the older mono version when a better one
 has been available for at least two years? If someone reports a problem
 with OpenSim I think we should require them to at least test it using mono
 2.10 so we can rule out the older mono being the cause of the problem.


 Cheers,

 Ilan Tochner
 Co-Founder and CEO
 Kitely Ltd.

 On Sun, Jan 27, 2013 at 4:28 AM, Dahlia Trimble 
 dahliatrim...@gmail.comwrote:

 I think the point is raise it to the minimum version which supports the
 codebase. If there was some feature in 2.10 that did not exist in 2.6 and
 that feature was required for proper execution, then 2.10 would be a better
 target. Otherwise it would just be forcing people to upgrade who would not
 otherwise need to.

 There's nothing stopping anyone from upgrading to 2.10 if they desire,
 however, requiring a higher version than is really necessary limits
 potential users of the software to those who are able to install those
 versions in their setups. If a goal of OpenSimulator developers is wide
 adoption, then it makes sense to have it be usable on as many existing
 hardware/software configurations as possible.



 On Sat, Jan 26, 2013 at 11:51 AM, Ilan Tochner i...@kitely.com wrote:

 I second setting 2.10 as the base. If we'll be forcing people to
 upgrade I think we should upgrade to the latest stable release and not to
 one that is outdated.

 If OpenSim works fine with 3.0 then I'd vote for it to be the base. If
 we're still calling OpenSim alpha we should at least get the benefits of
 doing so. Supporting old versions of mono is a waste of developer 
 resources.

 Cheers,

 Ilan Tochner
 Co-Founder and CEO
 Kitely Ltd.



 On Sat, Jan 26, 2013 at 9:20 PM, Trinity trinit...@gmail.com wrote:

 if we can get a way with it why not go to 2.10 else quickly be out of
 date agian


 On Sat, Jan 26, 2013 at 9:38 AM, James Hughes 
 jam...@bluewallgroup.com wrote:

 +1

 On 01/24/2013 10:29 PM, Justin Clark-Casey wrote:

 Whilst writing JsonStore regression tests this evening, I hit the
 problem where modInvoke script methods of more than 4 parameters
 cannot
 be registered on Mono 2.4.3 as it doesn't implement the required
 larger
 multi-parameter Func generic types.

 Therefore, I want to bump the minimum Mono version for OpenSimulator
 up
 to 2.6 which was released more than 3 years ago. This also involves
 bumping the minimum .net framework version up to 4.0, as also
 detailed
 at [1]

 [1] 
 http://opensimulator.org/**mantis/view.php?id=5971http://opensimulator.org/mantis/view.php?id=5971

 Any comments

Re: [Opensim-dev] Raise minimum mono version to 2.6

2013-01-27 Thread Melanie
Since you have already stated that you will not support older
versions, our decision will not affect you in any way.

We have, for a long time, used mono 2.4 as the base simply because
versions of distros in common use don't offer it as part of their
repo. OpenSim targets not only Windows users but all operating
systems, including Linux. As long as people use versions of Linux
that don't natively supply 2.10, we cannot make it our baseline.
That is simply not open for discussion.

Melanie

On 27/01/2013 21:56, Ilan Tochner wrote:
 That's all well and good but saying we support mono version 2.6 and
 actually supporting it are two very different things.
 
 Who here is willing to spend their time fixing problems that only appear in
 versions before mono 2.10? (this isn't a rhetorical question, if you are
 willing to commit to doing so then please reply and let the group know)
 
 If anyone is, do you think that doing so is better use of our limited
 development resources than telling the person who had the problem to just
 upgrade to a slightly more modern version of mono that can be easily
 installed?
 
 It makes sense not to drop support for old operating systems, as they
 usually can't be easily upgraded, but installing a newer version of mono is
 very simple when there are repositories you can just apt get / rpm it from.
 
 What exactly will be served by saying mono 2.6 is supported when no one
 will invest (waste?) their time debugging for it? Wouldn't our users be
 better served by having OpenSim run as best as it can (given our limited
 resources) on a better performing version of mono that those users can
 easily install?
 
 I know Kitely won't be spending resources on debugging for old mono
 releases so my only horse in this is wanting OpenSim to advance as quickly
 as it can without leaving people behind. Setting mono 2.10 as the baseline
 makes it easier for this open source dev community to accomplish this goal.
 
 Cheers,
 
 Ilan Tochner
 Co-Founder and CEO
 Kitely Ltd.
 
 
 On Sun, Jan 27, 2013 at 5:44 PM, Melanie mela...@t-data.com wrote:
 
 It has always been our policy to use the _lowest_ version of Mono
 that we can get by on to support the largest possible number of
 configurations and systems.

 This is not going to change.

 The feature required by recent code additions is found in Mono 2.6,
 so we are discussing Mono 2.6 now. We are not discussing Mono 2.10.

 Melanie

 On 27/01/2013 15:32, Ilan Tochner wrote:
  If, as we both agree, OpenSim works differently with different versions
 of
  mono then people are going to report bugs that exist when OpenSim is run
 on
  mono versions prior to 2.10 that don't exist with mono version 2.10 and
  later.
 
  How many people are there in the OpenSim dev community that still
 actively
  use a mono version prior to 2.10? In fact, AFAIK, many devs are already
  looking to see when they can safely move to mono 3.0. So, who is going to
  work on fixing bugs that no longer exist with mono 2.10 and later? If no
  ones is going to work on doing that then we can't honestly say that mono
  2.6 or 2.8 are still supported.
 
  If we intend to have new OpenSim users, we should have them using the
 mono
  version with which they'll get the best experience with the existing /
  future code base. It doesn't help anyone if they use an outdated version
 of
  mono and find that the problems they encounter aren't going to be
 addressed
  because they no longer exist with newer versions of mono.
 
  Cheers,
 
  Ilan Tochner
  Co-Founder and CEO
  Kitely Ltd.
 
  On Sun, Jan 27, 2013 at 2:36 PM, Dahlia Trimble dahliatrim...@gmail.com
 wrote:
 
  Nobody is asking you to use an older version. The minimum version is
  simply the earliest version that would be required to run OpenSimulator.
  Anyone is free to use any later version if they so choose.
 
  It's also not true that later versions are necessarily better. I've
  personally had to disable features in OpenSimulator and remove them from
  core due to newer versions of Mono which introduced new bugs that made
 such
  features unusable.
 
 
 
  On Sun, Jan 27, 2013 at 1:05 AM, Ilan Tochner i...@kitely.com wrote:
 
  Mono 2.10 was released Feb 15th, 2011, i.e almost two years ago. I
 don't
  think there is any target platform that mono 2.6 runs on that doesn't
 have
  mono 2.10 working on it as well.
 
  There have been many bug fixes in mono between the 2.6 release and the
  2.10 release, some of which can definitely effect OpenSim performance
 and
  stability. Who would choose to use the older mono version when a
 better one
  has been available for at least two years? If someone reports a problem
  with OpenSim I think we should require them to at least test it using
 mono
  2.10 so we can rule out the older mono being the cause of the problem.
 
 
  Cheers,
 
  Ilan Tochner
  Co-Founder and CEO
  Kitely Ltd.
 
  On Sun, Jan 27, 2013 at 4:28 AM, Dahlia Trimble 
 dahliatrim...@gmail.comwrote:
 
  I think the point

Re: [Opensim-dev] Raise minimum mono version to 2.6

2013-01-25 Thread Melanie
Hi,

times change. Avination is 2.10.9 these days.

+1

Melanie

On 25/01/2013 23:31, Shaun Erickson wrote:
 As I recall, Melanie has/had strong objections to doing this, as it would 
 affect her grid.
 
 -ste
 
 On Jan 25, 2013, at 5:20 PM, Mic Bowman cmick...@gmail.com wrote:
 
 +1
 
 
 On Fri, Jan 25, 2013 at 1:57 PM, Diva Canto d...@metaverseink.com wrote:
 +1
 
 On 1/24/2013 7:29 PM, Justin Clark-Casey wrote:
 Whilst writing JsonStore regression tests this evening, I hit the problem 
 where modInvoke script methods of more than 4 parameters cannot be 
 registered on Mono 2.4.3 as it doesn't implement the required larger 
 multi-parameter Func generic types.
 
 Therefore, I want to bump the minimum Mono version for OpenSimulator up to 
 2.6 which was released more than 3 years ago.  This also involves bumping 
 the minimum .net framework version up to 4.0, as also detailed at [1]
 
 [1] http://opensimulator.org/mantis/view.php?id=5971
 
 Any comments?
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Thread.Abort() considered harmful

2013-01-09 Thread Melanie
The issue with Thread.Interrupt is that it requires cooperation.
Thread.Abort is used precisely to stop non-cooperating scripts from
running. Properly written scripts would not need aborting, this is
to stop rogue scripts.

They really should fix Thread.Abort. It's understood that locks held
by the aborted threads will not be unlocked but the system should
not become unstable as a whole because of that.

Melanie

On 09/01/2013 21:37, Serendipity Seraph wrote:
 Forgive me if this question makes no sense as I am not an OpenSim code 
 expert.  But in addition to effectively putting a should stop event at the 
 head of the targeted threads event queue would it also make sense to be able 
 to find and stop any work and release resources that may be 
 scheduled/attached  on the thread's behalf?   Or does that not make sense due 
 to details of the actual architecture?  I can see that it would get tricky to 
 get the timing right.   Also, is there any mechanism to detect locks that 
 would cause deadlock or waits on things that do not exist or have no 
 producers?  Is it possible to introduce such?
 
 - s
 
 On Jan 8, 2013, at 5:42 PM, Justin Clark-Casey wrote:
 
 Over the past couple of months, I have been struggling with an issue where 
 mono 2.10.8 would sometimes crash badly on a heavily loaded simulator (2000+ 
 scripts).  Symptoms are 100% cpu use, simulator locking up with all threads 
 waiting on a lock which no other thread holds or crashing with native stack 
 trace
 
 From analysis, this seems to be due to the use of Thread.Abort() to 
 terminate script threads whose events do not complete within a short (or 
 sometimes no) timeout.  This is used in llDie() and llResetOtherScript(), 
 amongst other things.
 
 The use of Thread.Abort() is considered harmful, leading to the kind of 
 system instability described above [1] [2] [3], etc.  This affects scripts 
 running in both separate AppDomains and the same AppDomain, since script 
 functions constantly reach into core OpenSimulator code.
 
 One could extend the timeout, but there is a tradeoff with timely script 
 stopping.  Also, even a large timeout would not guarantee that threads would 
 not be aborted.
 
 Therefore, I will probably soon investigate a mechanism for stopping scripts 
 without calling Thread.Abort().  This will probably involve the use of 
 Thread.Interrupt() for Sleeps and the insertion of 'should I stop' flag 
 checks in generated code where that code may be long running (e.g. control 
 structures for, goto, etc. and user defined functions).  This is the normal 
 approach one would take to co-operatively stop threads and avoid the chance 
 of leaving Mono/.NET in a bad state.
 
 The existing Thread.Abort mechanisms will remain default until this approach 
 is shown not to have significant bugs/problems.  However, I think in the 
 long term we have to stop using Thread.Abort() by default since it is not a 
 safe thing to do.
 
 Comments welcome.
 
 [1] http://stackoverflow.com/questions/1051838/killing-a-thread-c
 [2] http://msdn.microsoft.com/en-us/library/7a2f3ay4%28v=vs.80%29.aspx
 [3] 
 http://stackoverflow.com/questions/2251964/c-sharp-thread-termination-and-thread-abort
 
 -- 
 Justin Clark-Casey (justincc)
 OSVW Consulting
 http://justincc.org
 http://twitter.com/justincc
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] IRegisterInterface for extending scene entities

2012-12-28 Thread Melanie
Hi,

first off, extending scene entities is a Good Thing. I'll think a
bit about the ins and outs of it and the caveats (for instance,
module load order will have some hidden traps for the unwary) and
serialization - well, there be dragons, you can't serialize module
refs/interfaces since the destination may not have them.

llSetKeyfranedMotion can most likely not be implemented that way. We
know, because we have implemented it. Also, there is no need to
reinvent the wheel - llSetKeyframedMotion has been slated for core
release for a while now, we just haven't found the dev time to
extract it. So there is really no need for a second, competing
implementation.

So, in summary

+1 on extension points for scene entities

-0 on a second implementation of llSetKeyframedMotion as a tested
and working one already exists.

That's -0 because of you really want it I won't kee you from doing
it - it's just a waste of effort.

Melanie

On 28/12/2012 08:38, Adams, Robert wrote:
 The discussion about the implementation of the llKeyframeMotion function 
 hinted at a need for region modules to be able to add data and functions to 
 existing scene items. Here is a modest proposal for discussion[1].
 
 Define a general module/interface registration interface to add to EntityBase 
 (and thus to SceneObjectGroup and ScenePresence).
 
 IRegisterInterface
Void RegisterInterfaceT(T iface);
Bool TryGetT(out T iface);
T GetT();
Void ClearRegisteredInterfaces();
 
 Any class that implements the IRegisterInterface interface would contain a:
Private DictionaryType, object m_registeredInterfaces = new 
 DictionaryType, object();
 
 'Scene' already has a RegisterModule interface which has a bunch of neat 
 features (like being able to register multiple instances of the same 
 interface type) but I'm not sure that is needed here (discussion?) 
 Particularly industrious changing could merge this proposed interface and the 
 existing 'Scene' functions.
 
 So, something like a llKeyframeMotion implementing region module could 
 register a KeyframeMotionState type structure on the SOG to save information 
 about the keyframe for that SOG. Other uses could be a uniform way for adding 
 classes of functionality to scene objects (get me the interface for 
 extracting the physical mesh for this SOG) or just adding limpet like code 
 to a scene entity.
 
 Not sure of the nuances of serialization. I believe that the registered 
 interfaces would just be serialized with the SOG (thus saving and restoring 
 the values in the registered interface instances) but I can't be totally sure 
 of that.
 
 Anyway, run your sword through this strawman.
 
 -- ra
 
 [1] This is similar to other interfaced proposed in the past (particularly 
 one by Adam Frizby).
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] IRegisterInterface for extending scene entities

2012-12-28 Thread Melanie
I suggest we bounce this about a bit and maybe cooperatively work on a test 
case/POC. That will certainly clarify issues. I could also pull out the prosal 
I did for ReX which deals with this

Melanie

On 28 Dec 2012, at 18:38, Adams, Robert robert.ad...@intel.com wrote:

 I agree with not reinventing the wheel.  And your valid concerns about the 
 implementation are probably just the tip of the iceberg.
 
 I have been toying with the architectural idea that OpenSim core only 
 provides a basic framework. Functionalities are added as plugin modules 
 rather than implemented as if's and tests imbedded in core. For instance, 
 could linksets be implemented as a plugin module[1]? Or maybe entity physical 
 representation (meshing)? 
 
 I merely consider llSetKeyFrameMotion as a test case to expose needed core 
 features which support plugin modules (Necessary events available? Correct 
 data-structures exposed/hidden? ...)  Like you, I am pretty sure the ability 
 to programmatically extend scene entities will be needed and is a Good Thing.
 
 Since llSetKeyframeMotion has already been completed and will be incorporated 
 soon, I'll look for another simple test case to exercise the requirements for 
 full featured plugin modules.
 
 -- ra
 
 [1] Why would one want to do this? I've been thinking about fancy linksets 
 where the joints are not fixed and static but could be parameterized and 
 dynamic (hinges, sliders, 6DOF, ...). This could be used to support 
 skeletons, doors with real hinges and/or weird and wonderful vehicles. Rather 
 than mangling OpenSim core with lots of experimental code, it would be nice 
 if I could build an ExtendedLinksets module that could be plugged in and 
 experimented with.
 
 -Original Message-
 From: opensim-dev-boun...@lists.berlios.de 
 [mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Melanie
 Sent: Friday, December 28, 2012 12:44 AM
 To: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] IRegisterInterface for extending scene entities
 
 Hi,
 
 first off, extending scene entities is a Good Thing. I'll think a bit about 
 the ins and outs of it and the caveats (for instance, module load order will 
 have some hidden traps for the unwary) and serialization - well, there be 
 dragons, you can't serialize module refs/interfaces since the destination may 
 not have them.
 
 llSetKeyfranedMotion can most likely not be implemented that way. We know, 
 because we have implemented it. Also, there is no need to reinvent the wheel 
 - llSetKeyframedMotion has been slated for core release for a while now, we 
 just haven't found the dev time to extract it. So there is really no need for 
 a second, competing implementation.
 
 So, in summary
 
 +1 on extension points for scene entities
 
 -0 on a second implementation of llSetKeyframedMotion as a tested and working 
 one already exists.
 
 That's -0 because of you really want it I won't kee you from doing it - it's 
 just a waste of effort.
 
 Melanie
 
 On 28/12/2012 08:38, Adams, Robert wrote:
 The discussion about the implementation of the llKeyframeMotion function 
 hinted at a need for region modules to be able to add data and functions to 
 existing scene items. Here is a modest proposal for discussion[1].
 
 Define a general module/interface registration interface to add to 
 EntityBase (and thus to SceneObjectGroup and ScenePresence).
 
 IRegisterInterface
   Void RegisterInterfaceT(T iface);
   Bool TryGetT(out T iface);
   T GetT();
   Void ClearRegisteredInterfaces();
 
 Any class that implements the IRegisterInterface interface would contain a:
   Private DictionaryType, object m_registeredInterfaces 
 = new DictionaryType, object();
 
 'Scene' already has a RegisterModule interface which has a bunch of neat 
 features (like being able to register multiple instances of the same 
 interface type) but I'm not sure that is needed here (discussion?) 
 Particularly industrious changing could merge this proposed interface and 
 the existing 'Scene' functions.
 
 So, something like a llKeyframeMotion implementing region module could 
 register a KeyframeMotionState type structure on the SOG to save information 
 about the keyframe for that SOG. Other uses could be a uniform way for 
 adding classes of functionality to scene objects (get me the interface for 
 extracting the physical mesh for this SOG) or just adding limpet like code 
 to a scene entity.
 
 Not sure of the nuances of serialization. I believe that the registered 
 interfaces would just be serialized with the SOG (thus saving and restoring 
 the values in the registered interface instances) but I can't be totally 
 sure of that.
 
 Anyway, run your sword through this strawman.
 
 -- ra
 
 [1] This is similar to other interfaced proposed in the past (particularly 
 one by Adam Frizby).
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim

Re: [Opensim-dev] ScriptEvents Module

2012-11-18 Thread Melanie
Hi,

you may want to hold off on this. In the vein of the custom script
functions and constants we have already, I have been looking to
allow custom script events which would be real events.

Melanie

On 19/11/2012 02:28, Diva Canto wrote:
 Hi,
 
 I am working on a module that passes interesting scene events up to the 
 scripts in a manner that's very easy to act upon. An example is attached 
 at the end of this message.
 
 Question: What other events would people like to grab? The idea is to 
 have the module do all the complicated logic, and pass only simple facts 
 to the scripts.
 
 
  state_entry()
  {
  llSay(0, Script running);
  modSendCommand(Script Events, subscribe|AvatarArrived, 
 llGetKey());
  modSendCommand(Script Events, subscribe|LastAvatarLeft, 
 llGetKey());
  }
 
  link_message(integer sender_num, integer num, string message, key id)
  {
  list parts = llParseString2List(message, [|], []);
  if (llGetListLength(parts) = 2) {
  if (llList2String(parts, 1) == AvatarArrived) {
  // message is: event|AvatarArrived|True or False -- 
 LocalTeleport or HG Teleport
  if (llGetListLength(parts) = 3) {
  if (llList2String(parts, 2) == True) {
  llInstantMessage(id, Welcome to the Gateway! 
 Choose your destination by walking into one of the teleporters.);
  llRegionSay(region_channel, ports foreign);
  } else {
  llInstantMessage(id, Welcome to the Virtual 
 Lab's Gateway! Choose your local destination by walking into one of the 
 teleporters.);
  llRegionSay(region_channel, ports local);
  }
  } else {
  llSay(0, Malformed message  + message +   + 
 (string)llGetListLength(parts));
  }
  play_music();
  } else if (llList2String(parts, 1) == LastAvatarLeft) {
  // message is: event|LastAvatarLeft
  llRegionSay(region_channel, ports reset);
  }
  }
  }
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] [Windows] possible intresting registery setting.

2012-11-05 Thread Melanie
All three methods pertain to Windows Sockets, the Win/BSD socket API
extension. These settings are irrelevant for .NET.

Melanie

On 05/11/2012 22:46, Nebadon Izumi wrote:
 the 1st link seems to only apply to older versions of Windows NT, so I do
 not really so how this could possibly have any effect on Windows 7, also
 the second one also seems to not be relevant to Windows 7 either, though it
 may have some effect on Windows Vista based machines, even though it does
 not claim it would, I do however know that Windows 7 handles TCP very
 differently than any previous version of windows, so I am highly skeptical
 that either of these changes would have any effect on OpenSimulator running
 on Windows 7.
 
 On Mon, Nov 5, 2012 at 3:40 PM, R.Gunther ri...@rigutech.nl wrote:
 
 Mijn sims zijn nu 4 dagen up met een aangepaste registery setting in
 windows.
 Het lijkt hier voor mijn gevoel even wat soepeler te lopen. Ik he aan
 windows7 de volgende key toegevoegt.
 **NonBlockingSendSpecialBufferin**g Its also available for other
 windows version, only location is slightly different in registery.
 So, am curious what others think.  Here are some Microsoft KB articles

 http://support.microsoft.com/**kb/126967http://support.microsoft.com/kb/126967
 http://support.microsoft.com/**kb/823764http://support.microsoft.com/kb/823764


 ALso because this, is opensim useing the push bit for tcp ? DOnt useing
 the p[ush bit can give some problems with tcp,
 That maby explains why this setting works better for me ? Keep testing
 here..



 __**_
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/**mailman/listinfo/opensim-devhttps://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Update for group module flotsam

2012-10-28 Thread Melanie
The presence service already has a call to fetch the online status
for a list of users rather then for just one user, AFAIR. At least I
remember putting such a call into the design.

Melanie

On 29/10/2012 01:13, Michelle Argus wrote:
 I have updated the proposal page and listed the diffrent alternative 
 from A onwards sothat its easier for us.
 
 My current favorite is the alternative E: The group server requests the 
 online status from the grid server itself and caches this data instead 
 of the grid server keeping the group server updated.
 
 -  Simulators request their data directly from the group server and 
 sends IMs itself OR
 - Optionaly the Simulator communicates via a relay service with its own 
 cache. The relay service requests its data from the same central group 
 server. The relay service can additionaly send IMs if wanted to reduce 
 resource usage simulator side. The relay service can be hosted by anyone 
 for a worldwide network.
 
 The same concept could be used for other services such as assets, 
 presence, inventory, friendslist etc which are meanwhile causing many 
 issues due to slow requests in bigger grids such as OSGrid.
 
 
 Am 23.10.2012 04:40, schrieb Justin Clark-Casey:
 Apologies, it's [1].   Please feel free to edit it as you see fit - 
 I've put you as one of the proposers.  This page is to keep track of 
 the issue rather than a formal proposal mechanism.

 No rush on this - please feel free to take your time in responding.  
 In truth, I only have a certain amount of time for these issues 
 currently myself.

 Having messages route through a service rather than be largely handled 
 by simulators themselves is an interesting approach.  It's the 
 argument of a distributed versus a more centralized architecture.  
 Although I can't see OpenSimulator going down this route in the near 
 future, if anybody wants to experiment and needs additional config 
 settings then patches are very welcome.

 [1] 
 http://opensimulator.org/wiki/Feature_Proposals/Improve_Groups_Service

 On 20/10/12 11:06, Michelle Argus wrote:
 Justin, could you post the url to the suggestion page, I think you 
 forgot to add it ;)

   One issue that having the sim updating online status is, that if 
 someone has the group module diabled or uses a
 diffrent setting then the status is not updated. As other modules 
 hosted by the grids also might this information, one
 should consider adding something to the gridserver for this.

 I also like the idea from Akira to have the groupserver to receive 
 the full IM and then sending it to everyone instead
 of having the sim send the message. One then could have a specialized 
 server installed for the group module which cannot
 create any lagissues simside. This could then also be used for a 
 gridwide spamfilter or filtering illigal activities
 within the grid.

 Havnt had much time though as I have a longer event running which 
 ends on sunday...


 Am 20.10.2012 04:32, schrieb Justin Clark-Casey:
 Regarding the groups work, I have now implemented an OpenSimulator 
 experimental option, MessageOnlineUsersOnly in
 [Groups] as of git master 1937e5f.  When set to true this will only 
 send group IMs to online users.  This does not
 require a groups service update.  I believe OSGrid is going to test 
 this more extensively soon though it appears to
 work fine on Wright Plaza.

 It's temporarily a little spammy on the console right now (what 
 isn't!) with a debug message that says how many online
 users it is sending to and how long a send takes.

 Unlike Michelle's solution, this works by querying the Presence 
 service for online users, though it also caches this
 data to avoid hitting the presence service too hard.

 Even though I implemented this, I'm not convinced that it's the best 
 way to go - I think Michelle's approach of
 sending login/logoff status directly from simulator to groups 
 service could still be better.  My chief concern with
 the groups approach is the potential inconsistency between online 
 status stored there and in the Presence service.
 However, this could be a non-issue. Need to give it more thought.

 On 14/10/12 22:53, Akira Sonoda wrote:
 IMHO finding out which group members are online and sending group 
 IM/Notice etc. to them actually should not be done by
 the region server from which the group IM/notice etc. is sent.
 This is a task which should be done centrally in case of OSgrid in 
 Dallas TX (
 http://wiki.osgrid.org/index.php/Infrastructure ). The region 
 server should only collect the group IM/notice etc. and
 send it to the central group server or in the other way receiving 
 IM/notice etc. from the central group server and
 distribute it to the Agents active on the region(s).

 That concentrates all distribution on a central point rather than 
 spreading it amongst simulators.  Then OSGrid has
 the problem of scaling this up.

 Having said that, there are advantages to funnelling things through 
 a reliable central

Re: [Opensim-dev] [Opensim-users] Slow handling of POST -

2012-10-02 Thread Melanie
I posted a pull request to them to pick up the fix I made.

Melanie

On 03/10/2012 01:11, Mic Bowman wrote:
 Did mono fix the other problem that multiple concurrent connections to
 the same endpoint would always cause excessive delay (concurrent
 requests would not start until seconds after the previous one
 completed). That's why the serialize requests code was put in there.
 
 --mic
 
 
 On Tue, Oct 2, 2012 at 3:50 PM, Justin Clark-Casey
 jjusti...@googlemail.com wrote:
 Actually, it appears that due to a bug in Mono [1] this may only help with
 asset fetches.  But I think it's worth trying anyway.

 [1] https://github.com/mono/mono/pull/472

 On 30/09/12 10:37, Ai Austin wrote:

 That sound very much like the issue I am seeing as Melanie also first
 mentioned.   The POSTs are handled eventually I
 think but sometimes 10 minutes (!) AFTER the avatar logs out.  meanwhile
 no activity on the region or login to that
 region seems to be possible.  Sounds like a serious block?

 At 01:09 30/09/2012, opensim-users-requ...@lists.berlios.de wrote:

 This method blocks waiting for content to post; if there is no
 time-out set and you do not provide content, your application will block
 indefinitely.


 On 2012-09-22 02:22, Justin Clark-Casey wrote:
   There are no timeouts on these particular requests, which probably
   isn't a good thing - OpenSimulator is inconsistent when it comes to
   timeouts. However, I suspect that's going to be peripheral to the
   issue here.

   On 20/09/12 11:44, M.E. Verhagen wrote:
   I wonder if there is a timeout on the fetch request ?
   Or are they stacking up and just waiting till they are in the front
   of the line to be processed ?

   2012/9/20 Justin Clark-Casey
   Fetch times of 1068560ms (which is more than 15 minutes!) are
   pathological - something is wrong.


 ___
 Opensim-users mailing list
 opensim-us...@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-users



 --
 Justin Clark-Casey (justincc)
 OSVW Consulting
 http://justincc.org
 http://twitter.com/justincc
 ___
 Opensim-users mailing list
 opensim-us...@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-users
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Is it OK performance-wise to long-poll a money module?

2012-09-15 Thread Melanie
You can use the PollServiceManager to do this. It's the same
mechanism the viewer uses.

However, if only one instance of the application long-polls, that is
one thread so you don't need to worry about resources too much.

Melanie

On 15/09/2012 11:53, Dahlia Trimble wrote:
 I've had excellent luck serving many simultaneous long-poll requests with
 the HTTP server that comes with OpenSimulator. Bear in mind though that
 each active request may consume a thread so you might need to increase
 available threads if you see problems. I'm not certain if the request
 threads are managed by the threadpool in OpenSimulator or if they are
 direct calls into .NET framework. I did search through the code once and
 found many threads that were not treadpool managed but I can't remember if
 HTTP threads were or not.
 
 
 On Fri, Sep 14, 2012 at 9:07 PM, Edmund Edgar e...@avatarclassroom.comwrote:
 
 I've got a situation with the money module I'm working on where I'd
 like an external program (running on the client PC in parallel to the
 viewer) to be able to be in almost constant contact with the server
 while the user is logged in. (I want it to be able to find out
 whenever the user wanted to buy something.)

 I figure I can do this by having the external program long-poll the
 OpenSim server. (The external program makes a request, the server
 waits such time as it has something to tell the external program, then
 responds. It gives up and responds if there's nothing to say after 30
 seconds or so, at which point the external program will make a new
 request and start the cycle again.)

 At this point if I was serving a web application with Apache I'd start
 worrying that I was hogging a bunch of threads and eating through the
 memory. Is this the kind of thing I should be worrying about with
 OpenSim, or can I merrily go ahead and long-poll without worrying?

 The kind of thing I'm thinking of follows:


 public void FirstRegionLoaded ()

 MainServer.Instance.AddHTTPHandler (/checkfortransactions/,
 CheckForTransactions);

 }

 public Hashtable CheckForTransactions(Hashtable request) {

 UUID userUUID = (get a user id using a session ID passed in the
 request or something);

 int i;
 // poll for 30 seconds then give up
 for (i=0; i30; i++) {
 if
 (m_transactionsAwaitingNotification.containsKey(userUUID)) {
 // Reply to the request
 Hashtable reply = new Hashtable ();
 reply[int_response_code] = 200;
 reply[str_response_string] = { Some JSON goes
 here };
 reply[content_type] = text/json;
 return reply;
 }
 Thread.Sleep (1000);
 }

 Hashtable reply = new Hashtable ();
 reply[int_response_code] = 204; // No Content
 return reply;

 // The client will get this reply then hit /checkfortransactions/
 again.

 }

 PS. Thanks for the replies to my C#-ignorant questions on previous threads.

 --
 Edmund Edgar
 Avatar Classroom
 Your classroom, on the web, in a virtual world.

 e...@avatarclassroom.com
 +81 090 3912 3380
 Skype: edmundedgar
 Second Life: Edmund Earp
 Linked In: edmundedgar
 Twitter: @edmundedgar
 http://www.avatarclassroom.com
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Question on where estate info for regions is kept

2012-09-13 Thread Melanie
OpenSim assumes the OSGrid scenario of a federated grid of
independent simulators. Therefore, central estate storage cannot be
provided.

However, if you run multiple simulators from the same platform, or
run a private grid, you can create estates spanning these servers.

Simply point the estate database to a database server that all your
regions can access. This will give you estates that span your
servers, or, in the event of a private grid, your entire grid,
without forcing federated grids to also store this data.

This is an advanced option and somewhat underdocumented.

Melanie

On 13/09/2012 12:33, Ai Austin wrote:
 I note that each Opensim.exe instance maintains the estate details 
 for the region for grids as well as standalones, whereas the region 
 UUID and details themselves are held in the central (Robust) services 
 for grids.
 
 Is there a reason for that?  It would seem that the estates ought to 
 be something that spans all regions, and that regions are associated 
 with them, rather than being separate to a specific region 
 server/Opensim.exe instance?
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Questions about Vehicle scripting calls

2012-06-07 Thread Melanie
Hi,

we use a module that is been developed for us as custom work. It
allows running unmodified SL vehicle scripts - well, mostly. We also
have llSetKeyframedMotion() for things that don't really need to be
physical. The latter will be donated to OpenSim at some point.

Melanie

On 06/06/2012 19:41, Bengt Falke wrote:
 Does anybody know what kind of physics Avination use? Physics works better 
 there if I remember correctly?
 Void Pipe
 
 6 jun 2012 kl. 19:10 skrev James Hughes:
 
 I have been experimenting with trains in SL and would like to make a 
 physical one that works in OpenSim. Hopefully these cases aren't some 
 limitation of the physics engines and can have a proper fix.
 
 -BlueWall
 
 On 06/05/2012 07:46 PM, Mike Higgins wrote:
 I was talking to Justin Clark-Casey at the OpenSim developers meeting
 this morning, and he suggested that the mailing lists would be the
 easiest way to have a conversation about vehicle physics on OpenSim.
 Justin you there? Is this where you meant? Anyone else want to talk
 about vehicle scripting in OpenSim?
 
 I am in the process of testing the OpenSim vehicle scripting calls and
 trying to find out what works and what can be worked around. I am
 submitting mantis reports when I think I see a true bug, issue numbers
 0006039 http://opensimulator.org/mantis/view.php?id=6039 and 0006040
 http://opensimulator.org/mantis/view.php?id=6040 for starters. Instead
 of submitting 1000 line vehicle scripts that do not work, I am writing
 small 10-line scripts that demonstrate a particular problem.
 
 Issue 0006040 http://opensimulator.org/mantis/view.php?id=6040 is
 particularly interesting because if my hypothesis is correct, the linear
 motor direction is being actively projected onto the global XY plane. I
 cannot get an airplane to glide up, or a balloon to rise using the
 linear motor. (Hover height works with balloons, but not the linear
 motor even with hover height disabled). The interesting thing about this
 is that my hypothesis suggests that there is extra code doing this
 projection onto the XY plane. I checked the vehicle flags and there
 isn't one that should force this extra projection into the calculations.
 Vehicle type balloon is supposed to have all the flags removed, but just
 to be sure I used the remove call to clear them all. The linear motor
 still cannot go up. Can someone familiar with the code look at the
 linear motor and tell me why this is happening and if there is a way to
 disable it? (I tried turning flags like VEHICLE_FLAG_NO_DEFLECTION_UP on
 to see if this flag was inverted, and if it applied to the motor instead
 of deflection, but no luck).
 
 The fun thing is that I can write one kind of vehicle that works well --
 assuming this bug is there. I built a vehicle that has the linear motor
 set to 0,0,20, pointing straight up. When the vehicle is perfectly
 horizontal, the projection of this motor onto XY is 0,0,0 and the
 vehicle does nothing. But then when you tilt the vehicle in any
 direction, the projection of the linear motor on XY becomes non-zero and
 causes it to start moving in the direction of tilt. This feels a lot
 like an RL helicopter, so I used the control keys to pitch down/up to
 move forward/backwards, added yaw left and right, and used page-up/down
 to increase/decrease the hover height. I put it in a hacked together
 helicopter build and it is a lot of fun!
 
 I'm looking for work-arounds for the current vehicle routine behaviors.
 One work-around for an airplane is to turn on hover height, check the
 airplane speed and pitch once a second in timer(), calculate what
 altitude the plane should get to in the next second, and set hover
 height to that altitude. The things we do to get stuff working!
 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] What do you like about OpenSim?

2012-04-30 Thread Melanie
You are correct in your assumptions. The intention is to produce a
few posters, each focusing on one statement and expressing that
statement both visually and in text, as well as flyers listing those
statements.

Melanie

On 01/05/2012 00:09, Borun (a.k.a. Boroondas Gupte) wrote:
 On 04/30/2012 12:08 PM, drwh...@spacefriends.de wrote:
 As i live at the other end of Germany i am not able to attend the Event. 
 What exactly do you mean by flyers / Posters and why is the Subject of your 
 Email opensim Key facts ? What kind pf Information is yet available ??

 Best regards
 Wordfromthe Wise


 On 29.04.2012, at 03:47, Melanie mela...@t-data.com wrote:

 [W]e would [...] like to hear [...] what you like about OpenSim
 and what OpenSim is to you.
 
 If I've understood Melanie's email correctly, the facts she wants to
 collect are (supposedly short and catchy) statements about why you like
 OpenSim. E.g., if you were thinking I like OpenSim because it is open
 source., the corresponding fact might be OpenSim is open source..
 
 The term fact might be a bit misleading here, as this inquiry doesn't
 seem to be about what all /could/ be known about OpenSim, but rather
 what you /do/ already know /and like/ about it.
 
 I guess these statements are then candidates to be used on some feature
 lists or fact sheets on the posters and flyers. So they would be for
 promotional purposes only, not manuals, not specs, nor reference texts
 or other kinds of documentation. Thus, (in this context) you shouldn't
 have to bother what information is already available, as
 comprehensiveness and completeness aren't required or even aimed for.
 
 (Just my interpretation. Please correct me if I got this backwards.)
 
 Cheers,
 Borun
 
 PS: Writing this message reminded me of how ack is promoted. (See
 http://betterthangrep.com/, http://betterthangrep.com/why-ack/ and
 http://betterthangrep.com/testimonials/.)
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


[Opensim-dev] Opensim key facts

2012-04-28 Thread Melanie
Hi,

we are getting ready to do final graphics and design for the real
life presence of OpenSimulator at LinuxTag, Berlin, from May 23rd.

For that, we would like to generate some more copy for posters,
flyers, etc.

Although this is a German event and these will ultimately have to be
done in German, we would still like to hear from all of you (in
German if you can, otherwise in English) what you like about OpenSim
and what OpenSim is to you.

We are looking to collect these key facts to gather some ideas as to
what copy would grab people's interest.

Please reply before May 5th as these things have to be in print by
end of play, European time, on the 4th.

Also, we could still use people to staff the booth on the 23rd, 24th
and 25th, answering questions about OpenSim and doing
demonstrations. German language is a must, English is nice to have.
Location is Berlin, Germany from 23rd of May till 26th of May.

If you'd like to help, please email i...@opensimulator.org.

Cheers,

Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


[Opensim-dev] Opensim key facts

2012-04-28 Thread Melanie
Hi,

we are getting ready to do final graphics and design for the real
life presence of OpenSimulator at LinuxTag, Berlin, from May 23rd.

For that, we would like to generate some more copy for posters,
flyers, etc.

Although this is a German event and these will ultimately have to be
done in German, we would still like to hear from all of you (in
German if you can, otherwise in English) what you like about OpenSim
and what OpenSim is to you.

We are looking to collect these key facts to gather some ideas as to
what copy would grab people's interest.

Please reply before May 5th as these things have to be in print by
end of play, European time, on the 4th.

Also, we could still use people to staff the booth on the 23rd, 24th
and 25th, answering questions about OpenSim and doing
demonstrations. German language is a must, English is nice to have.
Location is Berlin, Germany from 23rd of May till 26th of May.

If you'd like to help, please email i...@opensimulator.org.

Cheers,

Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Remove check for IsGod in some OSSL functions

2012-04-13 Thread Melanie
Any such checks should use Scene.Permissions.IsAdministrator() which
will return true is the UUID given is of the estate owner, an estate
manager or a god.

Melanie

On 13/04/2012 12:36, Oren Hurvitz wrote:
 While I'm on the subject of OSSL permissions, here's one more suggestion: if
 an OSSL function's Allowed setting is set to ESTATE_MANAGER then all the
 estate managers *except* for the owner are allowed to call that function. I
 think that isn't what users expect: since the list of estate managers always
 contains the estate owner, if I specify permission level ESTATE_MANAGER then
 I expect that the owner would also be able to call the function.
 
 See CheckThreatLevel() in OSSL_Api.cs.
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Remove-check-for-IsGod-in-some-OSSL-functions-tp7462127p7462243.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Change parcel permission handling

2012-04-13 Thread Melanie
Here, also, Scene.Permissions.IsAdministrator should be checked,
then the parcel owner should be compared. Checking
CanEditParcelProperties would have too broad a scope. Some of these
functions are DANGEROUS and for instance renters should not be able
to use them. So, -1 on broadening this check.

Melanie

On 13/04/2012 13:12, Oren Hurvitz wrote:
 I found another place that should be changed: if the permission level is set
 to PARCEL_OWNER then we should check
 World.Permissions.CanEditParcelProperties() instead of just checking if this
 is the parcel's owner. That would allow the function to be called by Gods,
 Estate Managers, and possibly group members (if the parcel is group-owned).
 
 In addition, there are 3 functions that check parcel ownership permissions
 on their own. These checks should be deleted, since they've been replaced by
 the general OSSL permissions mechanism:
 * osSetParcelDetails
 * osSetParcelMediaURL
 * osSetparcelSIPAddress
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Remove-check-for-IsGod-in-some-OSSL-functions-tp7462127p7462349.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Fix OSSL threat level checks

2012-04-13 Thread Melanie
I know with the JSON function it was intentional. As for the Npc
one, I don't know. Justin, can you enlighten us? Copy/Paste error or
good intention?

Melanie

On 13/04/2012 11:59, Oren Hurvitz wrote:
 Hi,
 
 There are two OSSL functions that check the wrong string for their threat
 level:
 
 osParseJSONNew() - checks osParseJSON
 osNpcStopMoveToTarget() - checks osNpcStopMoveTo
 
 I was going to fix this, but then I thought that perhaps this was done so
 that the same threat level can be used for families of functions, e.g.
 both osParseJSON() and osParseJSONNew(). So is it ok to change these
 strings, or should I leave them alone?
 
 Oren
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Fix-OSSL-threat-level-checks-tp7462134p7462134.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Remove check for IsGod in some OSSL functions

2012-04-13 Thread Melanie
First, HARD -1 on allowing gods all of OSSL. I run a grid where
certain functions just CANNOT be allowed to run, no way, no how.
There must be a way to achieve that, you can't force the
availability of OSSL for gods on grids.

Also, HARD -1 on changing existing functions, it will break things
in too many ways for established users.

The check for estate managers already allows estate owners.

OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs:377

//Only Estate Managers may use the function
if(m_FunctionPerms[function].AllowedOwnerClasses.Contains(ESTATE_MANAGER))
{
//Only Estate Managers may use the function
if (World.RegionInfo.EstateSettings.IsEstateManager(ownerID) 
World.RegionInfo.EstateSettings.EstateOwner != ownerID)
{
return;
}
}

A god check _could_ be added in the parcel owner, parcel group,
estate manager and estate owner clauses as it can be assumed that if
anyone is allowed to run the function gods should be allowed to run
it, too. However, if a function is indeed disabled it must be
disabled for gods as well.

Melanie

On 13/04/2012 14:39, Oren Hurvitz wrote:
 Currently CheckThreatLevel() doesn't check for God at all. It should probably
 allow gods to call any function, regardless of its threat level.
 
 There is no other change necessary to OSSL in order to support
 administrators, since there are already permission checks for estate owners
 and managers. (Although, as I've said, the check for estate *managers*
 should allow the estate *owner* as well.)
 
 While we're talking about IsAdministrator(), I want to mention again that
 this method is incorrect: it's identical to IsGod(), since it requires users
 to be Gods. It should be changed so it doesn't require users to be gods
 anymore.
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Remove-check-for-IsGod-in-some-OSSL-functions-tp7462127p7462562.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Change parcel permission handling

2012-04-13 Thread Melanie
Not true.

Even in SL estate owners/managers don't have some parcel rights. If
I specify parcel owner, i expect parcel owner. Maybe a way needs to
be found to combine multiple strings, e.g.
ESTATE_MANAGER,PARCEL_OWNER. That would be acceptable. Changing the
current behavior that people already depend on to relax security is
not acceptable. It may mean that someone suddenly can do something
they could not do before and the owners may not be aware of this,
causing issues.

Also, in case of a group owned parcel, group permissions govern what
people in the group can do. Group members are by no means owners,
often parcels are deeded only for access control but normal members
have no rights whatsoever. Giving them potentially dangerous
functions is not an option.

On group owned parcels, those functions can be allowed either to
group owners only (the group invite functions already do this check)
or to deeded prims only. Allowing them for every member of the group
is really bad. You don't really want to have your roleplay's members
osTeleportAgent the opponents out of the fight!

Again, relaxing existing constraints is not an option, but as you
can see above, ways can be found to define combinations of
permissions to allow more flexibility.

Melanie

On 13/04/2012 14:42, Oren Hurvitz wrote:
 The decision whether to allow the parcel owner to call a function or not is
 set by whoever setup OpenSim.ini: they can choose to allow PARCEL_OWNER, or
 only ESTATE_OWNER. If they decided to allow the PARCEL_OWNER then we should
 also allow the estate manager/owner to call that function. In addition, in
 the case of a group-owned parcel, all members of the group are owners.
 
 So this change doesn't allow more permissions: it would only correct the
 implementation of the existing permissions system, when PARCEL_OWNER has
 been specified.
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Remove-check-for-IsGod-in-some-OSSL-functions-tp7462127p7462567.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Remove check for IsGod in some OSSL functions

2012-04-13 Thread Melanie
Not so. ESTATE_MANAGER MEANS estate MANAGER. This is intentional. I
reread the code and found that it already allows a comma separated
list notation, so you can use ESTATE_OWNER,ESTATE_MANAGER.

This allows for finer grained control. Please understand that estate
owners may be significantly different from estate managers, for
instance in the case of a mainland. This division is useful and,
again, making changes could cause privilege escalation in some
grids. So, -1. What you want to achieve can already be achieved.

Same, btw, goes for parcels, you can specify
PARCEL_OWNER,PARCEL_GROUP_MEMBER to get the behavior you're looking
for, and/or add the estate management as well.

I would propose to add GODS to the list of keywords, since they
can't currently be allowed as a class.

Melanie

On 13/04/2012 15:36, Oren Hurvitz wrote:
 About gods: ok. I don't allow any users to be gods for security reasons,
 but I had assumed that if someone *does* have god permissions then they
 should be able to do anything. Since that is not the case, I won't be
 making any changes related to gods.
 
 I assume by -1 on changing existing functions you mean not to change
 IsAdministrator(). Ok, but that means we still have two methods that do the
 same thing: IsGod() and IsAdministrator(). This doesn't affect what I'm
 doing so I have no reason to push for this change, but it looks like a
 longstanding bug. If anyone is interested in pursuing this, Godspeed :)
 
 Regarding whether ESTATE_MANAGER includes the estate owner: it doesn't,
 because of this code: World.RegionInfo.EstateSettings.EstateOwner !=
 ownerID. It explicitly disallows the estate owner, while allowing all the
 other estate managers. That's the code that should be removed.
 
 Oren
 
 
 On Fri, Apr 13, 2012 at 3:56 PM, Melanie-2 [via opensim-dev] 
 ml-node+s2196679n7462585...@n2.nabble.com wrote:
 
 First, HARD -1 on allowing gods all of OSSL. I run a grid where
 certain functions just CANNOT be allowed to run, no way, no how.
 There must be a way to achieve that, you can't force the
 availability of OSSL for gods on grids.

 Also, HARD -1 on changing existing functions, it will break things
 in too many ways for established users.

 The check for estate managers already allows estate owners.

 OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs:377

 //Only Estate Managers may use the function
 if(m_FunctionPerms[function].AllowedOwnerClasses.Contains(ESTATE_MANAGER))

 {
 //Only Estate Managers may use the function
 if (World.RegionInfo.EstateSettings.IsEstateManager(ownerID) 
 World.RegionInfo.EstateSettings.EstateOwner != ownerID)
 {
 return;
 }
 }

 A god check _could_ be added in the parcel owner, parcel group,
 estate manager and estate owner clauses as it can be assumed that if
 anyone is allowed to run the function gods should be allowed to run
 it, too. However, if a function is indeed disabled it must be
 disabled for gods as well.

 Melanie


 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Remove-check-for-IsGod-in-some-OSSL-functions-tp7462127p7462694.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Change parcel permission handling

2012-04-13 Thread Melanie
Permissions don't necessarily inherit. For instance, an estate
manager cannot change the parcel description or set a parcel to show
in search in SL. There is some sovereignity in he parcel owner role.
Permissions are indeed separate and a non-inheriting model allows
some useful combinations that an inheritance based model does not.

Melanie

On 13/04/2012 15:48, Fleep Tuque wrote:
 I'm trying to think of a use case when I wanted a PARCEL_OWNER to have
 privileges that the ESTATE_MANAGER did/should not have and can't think of
 one off the top of my head.  In every scenario I can think of where I
 assigned an Estate Manager through the Estate tools rather than using group
 permissions, it was because I expected them to have MORE permissions than
 the parcel owners and was setting that explicitly.
 
 Having said that, I do agree with Melanie that I would not expect a
 permission change on PARCEL_OWNER to affect the permissions for
 ESTATE_MANAGER.  Generally I think of permissions inheriting down the
 hierarchy, not up, and I'm not sure the average grid owner would expect
 that kind of behavior.
 
 - Chris/Fleep
 
 Chris M. Collins (SL/OS: Fleep Tuque)
 Center for Simulations  Virtual Environments Research (UCSIM)
 UCIT Instructional  Research Computing
 University of Cincinnati
 406A Zimmer Hall
 315 College Drive
 PO BOX 210088
 Cincinnati, OH 45221-0088
 chris.coll...@uc.edu
 (513) 556-3018
 
 http://ucsim.uc.edu
 
 On Fri, Apr 13, 2012 at 9:02 AM, Melanie mela...@t-data.com wrote:
 
 Not true.

 Even in SL estate owners/managers don't have some parcel rights. If
 I specify parcel owner, i expect parcel owner. Maybe a way needs to
 be found to combine multiple strings, e.g.
 ESTATE_MANAGER,PARCEL_OWNER. That would be acceptable. Changing the
 current behavior that people already depend on to relax security is
 not acceptable. It may mean that someone suddenly can do something
 they could not do before and the owners may not be aware of this,
 causing issues.

 Also, in case of a group owned parcel, group permissions govern what
 people in the group can do. Group members are by no means owners,
 often parcels are deeded only for access control but normal members
 have no rights whatsoever. Giving them potentially dangerous
 functions is not an option.

 On group owned parcels, those functions can be allowed either to
 group owners only (the group invite functions already do this check)
 or to deeded prims only. Allowing them for every member of the group
 is really bad. You don't really want to have your roleplay's members
 osTeleportAgent the opponents out of the fight!

 Again, relaxing existing constraints is not an option, but as you
 can see above, ways can be found to define combinations of
 permissions to allow more flexibility.

 Melanie

 On 13/04/2012 14:42, Oren Hurvitz wrote:
  The decision whether to allow the parcel owner to call a function or not
 is
  set by whoever setup OpenSim.ini: they can choose to allow PARCEL_OWNER,
 or
  only ESTATE_OWNER. If they decided to allow the PARCEL_OWNER then we
 should
  also allow the estate manager/owner to call that function. In addition,
 in
  the case of a group-owned parcel, all members of the group are owners.
 
  So this change doesn't allow more permissions: it would only correct the
  implementation of the existing permissions system, when PARCEL_OWNER has
  been specified.
 
  --
  View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Remove-check-for-IsGod-in-some-OSSL-functions-tp7462127p7462567.html
  Sent from the opensim-dev mailing list archive at Nabble.com.
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Remove check for IsGod in some OSSL functions

2012-04-13 Thread Melanie
That would overomplicate things, IMHO. There is no VIEWER BASED
permission that an estate manager has that an owner doesn't have.
Therefore creating a whole new method just for a single use (OSSL)
seems unnecessary to me.

Looks to me like a case of Don't touch a running system.

Melanie

On 14/04/2012 00:21, Justin Clark-Casey wrote:
 I can see an argument for ESTATE_OWNER and ESTATE_MANAGER being separate 
 categories.  I'm assuming that in the viewer 
 estate owners are can also be listed/not listed as estate managers.  As 
 Melanie says, we have to be aware that 
 OpenSimulator is trying to accomodate many different use cases.
 
 However, that does not mean that permission categories can be allowed to 
 become a confusing and/or overlapping mess. 
 Whether that is or isn't the case I don't know - this needs to be written out 
 properly on the wiki for all permission 
 types (parcel, estate, etc.) rather than only being embedded within the code.
 
 I see that EstateSettings.IsEstateManager() regards an owner as a manager, 
 whilst OSSL_Api.CheckThreatLevel explicitly 
 does not regards an owner as an ESTATE_MANAGER.  This is a contradiction.  
 The code MUST be internally consistent both 
 for sanity's sake and for ANY hope that the code can document itself.
 
 In the first instance, I would want to create 
 EstateSettings.IsEstateManagerOrOwner() and call this where appropriate, 
 with IsEstateManager only returning true for estate managers, as is proper.
 
 On 13/04/12 15:07, Oren Hurvitz wrote:
 Regarding estate owner vs. manager: here's the existing implementation of 
 EstateSettings.IsEstateManager():

  public bool IsEstateManager(UUID avatarID)
  {
  if (IsEstateOwner(avatarID))
  return true;

  return l_EstateManagers.Contains(avatarID);
  }

 It explicitly adds the estate owner to the list of managers. The permission 
 ESTATE_MANAGER should match the method
 IsEstateManager(). Therefore, it should include the estate owner.

 Oren


 On Fri, Apr 13, 2012 at 4:49 PM, Melanie-2 [via opensim-dev] [hidden email]
 /user/SendEmail.jtp?type=nodenode=7462795i=0 wrote:

 Not so. ESTATE_MANAGER MEANS estate MANAGER. This is intentional. I
 reread the code and found that it already allows a comma separated
 list notation, so you can use ESTATE_OWNER,ESTATE_MANAGER.

 This allows for finer grained control. Please understand that estate
 owners may be significantly different from estate managers, for
 instance in the case of a mainland. This division is useful and,
 again, making changes could cause privilege escalation in some
 grids. So, -1. What you want to achieve can already be achieved.


 
 View this message in context: Re: Remove check for IsGod in some OSSL 
 functions
 http://opensim-dev.2196679.n2.nabble.com/Remove-check-for-IsGod-in-some-OSSL-functions-tp7462127p7462795.html
 Sent from the opensim-dev mailing list archive 
 http://opensim-dev.2196679.n2.nabble.com/ at Nabble.com.


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Remove check for IsGod in some OSSL functions

2012-04-13 Thread Melanie
Well, current assumption in the code is that an estate owner ism
able to do anything a manager can do. Except in OSSL. It's one thing
to rename a method to make it's function more clear, but I believe
the separate method you proposed is not needed.

If you rename a method, any external code that used it will fail and
will have to be adapted.

If you, however, rename a method and then introduce another one with
the name of the old one, but different functionality, external code
will still compile but behave wrong.

So I would not oppose renaming the function to
IsEstateOwnerOrManager, but I would suggest not to implement a
specific IsEstateManager function at this time. That functionality
is only needed in one place and there is already code there that
emulates it.

Melanie

On 14/04/2012 01:08, Justin Clark-Casey wrote:
 You are conflating two separate points, a category system for OSSL functions 
 and the fact that the code is internally 
 inconsistent in its view of whether an estate manager includes an estate 
 owner or not.
 
 Any philosophy of Don't touch a running system is the way to long term 
 irrelevance and code that is increasingly 
 complicated for new contributors to work out.  It has no place in an 
 alpha-level open-source project.
 
 On 13/04/12 23:59, Melanie wrote:
 That would overomplicate things, IMHO. There is no VIEWER BASED
 permission that an estate manager has that an owner doesn't have.
 Therefore creating a whole new method just for a single use (OSSL)
 seems unnecessary to me.

 Looks to me like a case of Don't touch a running system.

 Melanie

 On 14/04/2012 00:21, Justin Clark-Casey wrote:
 I can see an argument for ESTATE_OWNER and ESTATE_MANAGER being separate 
 categories.  I'm assuming that in the viewer
 estate owners are can also be listed/not listed as estate managers.  As 
 Melanie says, we have to be aware that
 OpenSimulator is trying to accomodate many different use cases.

 However, that does not mean that permission categories can be allowed to 
 become a confusing and/or overlapping mess.
 Whether that is or isn't the case I don't know - this needs to be written 
 out properly on the wiki for all permission
 types (parcel, estate, etc.) rather than only being embedded within the 
 code.

 I see that EstateSettings.IsEstateManager() regards an owner as a manager, 
 whilst OSSL_Api.CheckThreatLevel explicitly
 does not regards an owner as an ESTATE_MANAGER.  This is a contradiction.  
 The code MUST be internally consistent both
 for sanity's sake and for ANY hope that the code can document itself.

 In the first instance, I would want to create 
 EstateSettings.IsEstateManagerOrOwner() and call this where appropriate,
 with IsEstateManager only returning true for estate managers, as is proper.

 On 13/04/12 15:07, Oren Hurvitz wrote:
 Regarding estate owner vs. manager: here's the existing implementation of 
 EstateSettings.IsEstateManager():

   public bool IsEstateManager(UUID avatarID)
   {
   if (IsEstateOwner(avatarID))
   return true;

   return l_EstateManagers.Contains(avatarID);
   }

 It explicitly adds the estate owner to the list of managers. The 
 permission ESTATE_MANAGER should match the method
 IsEstateManager(). Therefore, it should include the estate owner.

 Oren


 On Fri, Apr 13, 2012 at 4:49 PM, Melanie-2 [via opensim-dev][hidden email]
 /user/SendEmail.jtp?type=nodenode=7462795i=0  wrote:

  Not so. ESTATE_MANAGER MEANS estate MANAGER. This is intentional. I
  reread the code and found that it already allows a comma separated
  list notation, so you can use ESTATE_OWNER,ESTATE_MANAGER.

  This allows for finer grained control. Please understand that estate
  owners may be significantly different from estate managers, for
  instance in the case of a mainland. This division is useful and,
  again, making changes could cause privilege escalation in some
  grids. So, -1. What you want to achieve can already be achieved.


 
 View this message in context: Re: Remove check for IsGod in some OSSL 
 functions
 http://opensim-dev.2196679.n2.nabble.com/Remove-check-for-IsGod-in-some-OSSL-functions-tp7462127p7462795.html
 Sent from the opensim-dev mailing list 
 archivehttp://opensim-dev.2196679.n2.nabble.com/  at Nabble.com.


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Cannot trigger sensor event from at_target ?

2012-04-03 Thread Melanie
The best way to fond out is to post a Mantis report including the
script so others can test it and also maybe spot script errors.

Melanie

On 04/04/2012 03:23, R.Gunther wrote:
 I created a difefrent script, with waypoints.
 If the last waypoint is reached, then i try to load new data
 with the llsensor and sensor event from inside the at_target event.
 Now am not sure if this a bug or some limitation in lsl.
 
 But when i final reacht the last target, i see with a llownersay that 
 the if get trigger.
 But then the sensor event dont get triggered. it works fine after you 
 save the script then state_entry()
 get triggered and the first set of targets get loaded/created. but afetr 
 that i dont get any sensor event trigger.
 So i see the objects keep useing over and over the same target points.
 
 Bug ?... or a limitation ?
 
 Richard
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Uniqueness in MySQL useraccounts ('Name' field)

2012-03-07 Thread Melanie
Actually, it's the combination FirstName, LastName and ScopeID that
needs to be kept unique as different scopes may well contain users
with identical names.

Such a change would break some existing code (web interfaces
mostly). Opensim allows you to modify the database, so if you
add/change this on your system opensim will still work. This may be
a better and faster solution for you.

Melanie

On 07/03/2012 07:16, Kevin Buckley wrote:
 I have a question/request which was being discussed on the Opensim Users
 list and Justin suggested it might be better handled here?
 
  
 
 As a developer of an Opensim member/user system I need to maintain the
 attribute that the combination of FirstName and LastName is unique within an
 individual Opensim implementation.
 
  
 
 To achieve that, on a server which supports multiple, concurrent signups,
 the best way is to have a unique, composite key in the useraccounts table
 which includes FirstName and LastName and then trap MySQL error 1062
 (duplicate entry) when attempting to create a new user record.  This avoids
 the situation where the code checks for uniqueness in step-1 and then, if it
 satisfies that, writes the new user record in step-2; with the risk that
 another process writes a duplicate record between those steps.
 
  
 
 There are other ways to deal with this but they introduce their own issues
 and they're not as efficient as the method above.
 
  
 
 The Opensim setup process already goes to the trouble of creating such a
 composite key, called 'Name'.  However, it doesn't give it the UNIQUE
 attribute.
 
  
 
 So, currently (as an easy fix and to avoid having to remember to manually
 edit the database index every time I upgrade Opensim) my code forces 'Name'
 to be UNIQUE every time a new user subscribes.  But clearly this is a large
 and mostly pointless overhead as it actually only needs to do it once.
 
  
 
 So my question/request is: is it possible to modify subsequent Opensim
 releases so that 'Name' is given the UNIQUE attribute by default (probably a
 one line code change I imagine)?
 
  
 
 I can't see any downside to this and, unless I'm missing something, it seems
 a logical thing to do?
 
  
 
 Kevin
 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Uniqueness in MySQL useraccounts ('Name' field)

2012-03-07 Thread Melanie
It allows to keep data from more than one grid in the same set of
tables (for hosting multiple grids on shared systems)

Melanie

On 07/03/2012 11:42, Kevin Buckley wrote:
 What does ScopeID do (if that can be answered in one sentence)?
 
 -Original Message-
 From: opensim-dev-boun...@lists.berlios.de
 [mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Melanie
 Sent: 07 March 2012 10:25
 To: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Uniqueness in MySQL useraccounts ('Name' field)
 
 Actually, it's the combination FirstName, LastName and ScopeID that
 needs to be kept unique as different scopes may well contain users
 with identical names.
 
 Such a change would break some existing code (web interfaces
 mostly). Opensim allows you to modify the database, so if you
 add/change this on your system opensim will still work. This may be
 a better and faster solution for you.
 
 Melanie
 
 On 07/03/2012 07:16, Kevin Buckley wrote:
 I have a question/request which was being discussed on the Opensim Users
 list and Justin suggested it might be better handled here?
 
  
 
 As a developer of an Opensim member/user system I need to maintain the
 attribute that the combination of FirstName and LastName is unique within
 an
 individual Opensim implementation.
 
  
 
 To achieve that, on a server which supports multiple, concurrent signups,
 the best way is to have a unique, composite key in the useraccounts table
 which includes FirstName and LastName and then trap MySQL error 1062
 (duplicate entry) when attempting to create a new user record.  This
 avoids
 the situation where the code checks for uniqueness in step-1 and then, if
 it
 satisfies that, writes the new user record in step-2; with the risk that
 another process writes a duplicate record between those steps.
 
  
 
 There are other ways to deal with this but they introduce their own issues
 and they're not as efficient as the method above.
 
  
 
 The Opensim setup process already goes to the trouble of creating such a
 composite key, called 'Name'.  However, it doesn't give it the UNIQUE
 attribute.
 
  
 
 So, currently (as an easy fix and to avoid having to remember to manually
 edit the database index every time I upgrade Opensim) my code forces
 'Name'
 to be UNIQUE every time a new user subscribes.  But clearly this is a
 large
 and mostly pointless overhead as it actually only needs to do it once.
 
  
 
 So my question/request is: is it possible to modify subsequent Opensim
 releases so that 'Name' is given the UNIQUE attribute by default (probably
 a
 one line code change I imagine)?
 
  
 
 I can't see any downside to this and, unless I'm missing something, it
 seems
 a logical thing to do?
 
  
 
 Kevin
 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] using LSL functions from a region module

2012-02-02 Thread Melanie
You cannot call any code in LSL_Api.cs. Anything you need from there
needs to be duplicated.

Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] using LSL functions from a region module

2012-02-02 Thread Melanie
LSL_Api is for script use. It doesn't live in the normal opensim
space. You could probably tweak things enough to instantiate a
usable copy, but that would be unsupported and ay break in the
future. Frankly, it's more trouble than it's worth.

Melanie

On 02/02/2012 18:34, CJ Davies wrote:
 On 02/02/2012 05:31 PM, Melanie wrote:
 You cannot call any code in LSL_Api.cs. Anything you need from there
 needs to be duplicated.

 Melanie
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 Thanks Melanie. Is the reason as I suspect one to do with scope? Or are 
 there more complex things at play?
 
 Regards,
 CJ Davies
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] SaveChangedAttachments on RemoveClient

2012-02-01 Thread Melanie
Hi,

it should happen only on logout / disconnect, not when leaving a
sim. Good catch!

Melanie

On 01/02/2012 06:10, Diva Canto wrote:
 Hi Justin,
 
 In case I don't see you in the IRC, could you please look into what's 
 going on in AttachmentsModule.SaveChangedAttachments, specifically 
 commit 8880ae and 62b3e7 both on 2011/9/13.
 That method is being called when avies leave the sims, and, as is, it's 
 saving the attachments independent on whether they were changed or not 
 (when they have scripts). The assetID in inventory is being changed. 
 This screws up inventory when the avie is visiting other grids, because 
 the assetID at that point exists only in the visited grid, and is not 
 being posted back.
 
 I would fix it, but I don't know what the intentions of that code are... 
 It seems very odd that attachments are always being recreated when avies 
 leave sims.
 
 Thanks.
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] SaveChangedAttachments on RemoveClient

2012-02-01 Thread Melanie
Yes, I think that is a good first step.

Melanie

On 01/02/2012 10:21, Bo wrote:
 Hello,
 and my congrats Diva.
 
 Please forgive me a noob question, but i wonder if that should be not 
 disabled 
 for HG visitors at all. 
 
 Not sure, but don't HG visitors technically log out from remote grid while 
 while they go  home?
 
 Bo
 
 On Wednesday 01 of February 2012 10:10:04 Melanie wrote:
 Hi,
 
 it should happen only on logout / disconnect, not when leaving a
 sim. Good catch!
 
 Melanie
 
 On 01/02/2012 06:10, Diva Canto wrote:
  Hi Justin,
  
  In case I don't see you in the IRC, could you please look into what's
  going on in AttachmentsModule.SaveChangedAttachments, specifically
  commit 8880ae and 62b3e7 both on 2011/9/13.
  That method is being called when avies leave the sims, and, as is, it's
  saving the attachments independent on whether they were changed or not
  (when they have scripts). The assetID in inventory is being changed.
  This screws up inventory when the avie is visiting other grids, because
  the assetID at that point exists only in the visited grid, and is not
  being posted back.
  
  I would fix it, but I don't know what the intentions of that code are...
  It seems very odd that attachments are always being recreated when avies
  leave sims.
  
  Thanks.
  
  
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] OpenSim Code

2012-01-21 Thread Melanie
The entire concept of Master Avatar has been removed from Opensim
in favor of the god level the viewer supports. There is an Estate
Owner and that is initially set via console, this is intentional.
Why do you have an issue with it?

Your config file can give the names of avatars who have god mode
available to them, this is what replaces the Master Avatar.

Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] OpenSim Code

2012-01-21 Thread Melanie
It's simply that it is set in database tables that don't exist
before the first run.

However, it wasn't thought through to the point of taking those
values from the configuration file, which is entirely possible to do.

I would suggest a new section:

[EstateDefaults]
EstateName = Name
EstateOwner = Avatar Name

The title, EstateDefaults, would make it clear that changing this
owner will not change the owner of the estate once it's created,
since it's only a default.

It was one of the issues with the Master Avatar that people
expected to change the aster avatar name in the config file and have
the parcel owner of the sim sized parcel (which they confused with
ownership of the sim) change as well. Master Avatar was a code,
logic and support nightmare.

I would be in favor of the above being added as optional config options.

Melanie

On 22/01/2012 00:41, Fernando Francisco de Oliveira wrote:
 Hello,
 
 Do you know why the Estate Owner was intentionaly set via console ?
 
 Security issues or something like that ?
 
 Fernando Oliveira
 http://oliveira.eti.br
 
 
 
 
 
 2012/1/21 Melanie mela...@t-data.com
 
 The entire concept of Master Avatar has been removed from Opensim
 in favor of the god level the viewer supports. There is an Estate
 Owner and that is initially set via console, this is intentional.
 Why do you have an issue with it?

 Your config file can give the names of avatars who have god mode
 available to them, this is what replaces the Master Avatar.

 Melanie
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] OpenSim Code

2012-01-21 Thread Melanie
Hi,

you should really submit a patch to core. There is little point in
keeping stuff that is generically useful in forks as too much
fragmentation only means that a user will be unable to find the
feature mix they want in any one fork. Better to keep things of
general interest in core so all distros have it.

Melanie

On 22/01/2012 02:27, Fernando Francisco de Oliveira wrote:
 Hi Melanie
 
 I liked your suggestion and I will try to do it on my fork of source code :)
 
 Thanx for it
 
 Fernando Oliveira
 http://oliveira.eti.br
 
 
 
 2012/1/21 Melanie mela...@t-data.com
 
 It's simply that it is set in database tables that don't exist
 before the first run.

 However, it wasn't thought through to the point of taking those
 values from the configuration file, which is entirely possible to do.

 I would suggest a new section:

 [EstateDefaults]
 EstateName = Name
 EstateOwner = Avatar Name

 The title, EstateDefaults, would make it clear that changing this
 owner will not change the owner of the estate once it's created,
 since it's only a default.

 It was one of the issues with the Master Avatar that people
 expected to change the aster avatar name in the config file and have
 the parcel owner of the sim sized parcel (which they confused with
 ownership of the sim) change as well. Master Avatar was a code,
 logic and support nightmare.

 I would be in favor of the above being added as optional config options.

 Melanie

 On 22/01/2012 00:41, Fernando Francisco de Oliveira wrote:
  Hello,
 
  Do you know why the Estate Owner was intentionaly set via console ?
 
  Security issues or something like that ?
 
  Fernando Oliveira
  http://oliveira.eti.br
 
 
 
 
 
  2012/1/21 Melanie mela...@t-data.com
 
  The entire concept of Master Avatar has been removed from Opensim
  in favor of the god level the viewer supports. There is an Estate
  Owner and that is initially set via console, this is intentional.
  Why do you have an issue with it?
 
  Your config file can give the names of avatars who have god mode
  available to them, this is what replaces the Master Avatar.
 
  Melanie
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Prospective ODE physics changes

2012-01-02 Thread Melanie
Hi,

On 02/01/2012 21:51, Justin Clark-Casey wrote:
 I'm thinking of making two ODE related changes.
 
 1) Replace the current ODE libraries in OpenSimulator with ones compiled 
 using the older GIMPACT collider instead of 
 OPCODE.  This is to address ODE crashes in simulators with more than one 
 region as detailed in [1] and [2].  These don't 
 appear to occur with GIMPACT.

I'm not happy with that as a general decision. We should, if
anything like that is done, include both versions to give users the
choice. The OPCODE should remain the default in order to not
jeopardize existing setups and the GIMPACT libs can be copied in by
those experiencing the bug.
Many people don't run multiregion at all and would see only
downsides if this were done.

 2) Reducing contacts_per_collision in [ODEPhysicsSettings] from 80 to 
 something much lower, maybe even 1.  In my own 
 testing, reducing this number can halve scene physics time.  Normal avatar 
 operations, such as standing on prims or 
 walking up ramps appear to be unaffected even at 1.  However, more testing is 
 probably needed to arrive at a compromise 
 number.

This would greatly affect scripts using physics. I believe the
optimum would be 16-20, which would ensure that the scripting
maximum (16) collision contacts are always available.

Melanie
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Sit position changes in OpenSimulator b6df9e9 (Sat 5th Nov 2011)

2011-12-05 Thread Melanie
If any option then it needs to default to the new offsets or no
change will ever happen. However, I would much prefer no option as I
see everyone flipping it on to save themselves the pain.

Melanie

On 05/12/2011 04:49, Edmund Edgar wrote:
 Going forward it sounds the right way has to be to fix the thing and
 deal with the pain, but as a general principle, the system
 administrator in me says you should provide a config switch if you can
 do it without a lot of extra work.
 
 When you have to make a change that affects your users, it's always
 best to have options which steps you perform in what order. For
 example, in a behind-the-firewall school build you might have a load
 of content that you don't want to mess with in the middle of the term,
 but you might still want to upgrade to get some bug fixes, especially
 if there are some security issues involved.
 
 It's also good to have the option of reverting a user-facing change if
 somebody discovers something they've overlooked and need to spend more
 time preparing for. A version upgrade can often be reverted with effort, but
 it's much easier to revert a config change.
 
 It's true that giving administrators this choice risks keeping the old thing
 circulating for longer, but not doing that risks them just not upgrading,
 which causes the same problems plus a bunch of other ones.
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Sit position changes in OpenSimulator b6df9e9 (Sat 5th Nov 2011)

2011-12-04 Thread Melanie
As I am the one who did it, +1 on leaving it fixed. Items can be
fixed and copy/paste compatibility for new objects coming in from sl
is more important, IMHO.

Melanie

On 05/12/2011 04:14, Trinity wrote:
 i say fix it and let the chips fall where they may
 
 On Fri, Dec 2, 2011 at 3:55 PM, Justin Clark-Casey jjusti...@googlemail.com
 wrote:
 
 OpenSimulator commit b6df9e9 (dev code) changed the sit target adjustment
 to better match that used in Second Life.

 Unfortunately, this has the effect of making all existing sit positions
 set by scripts using llSitTarget() inaccurate (e.g. avatar ends up hovering
 above a chair).

 From a user/scripter point of view this is a bad thing.  Not only do
 existing objects with user inventory/prim inventory now have wrong values,
 but positions loaded from OARs/IARs will now be wrong without adjustment,
 and OARs/IARs saved in dev code or future 0.7.3 will have wrong sit values
 when loaded into older OpenSim releases.

 However, I believe that's it's practically impossible to have old objects
 correctly use the old sit adjustment and new objects the new one.  Here are
 the alternative courses of action and my considered pros/cons of each

 1.  Change sit adjustment with no other action.
 PROS: llSitTarget() is now implemented correctly.  No legacy mess in the
 code.  No extra complexity required.  No development work required.
 CONS: Without adjustment, all region, inventory objects and scripts now
 use wrong sit values.  Wrong sit values in OARs and IARs.  Wrong sit values
 when OARs/IARs/objects moved between dev/future 0.7.3 versions and older
 OpenSim versions.

 2.  Provide a tool to correct sit values in scripts
 CONS: Too difficult since requires massive amount of script analysis.
  Might be possible in a limited way to catch 80/20 cases.

 3.  Use different sit adjustment depending on prim creation date (pre Sat
 5 Nov 2011 use old value).
 PROS: Stops older sit positions from being wrong.  Doesn't require much
 code change.
 CONS: A user has to know an opaque magic date when the sit position
 changed.  Somewhat messy legacy code.  Future upgraders from 0.7.2 will get
 some prims with 'wrong' sit positions and others with 'right' depending on
 when they were created, which is in the long term possibly more confusing
 than everything needing adjustment.

 4.  Revert llSitTarget() behave and create an osSitTarget() using the new
 adjustment instead.
 PROS: All existing sit targets continue to be 'correct', and old scripts
 still work correctly in new objects.
 CONS: llSitTarget() remains wrong for all time (could warn on use and
 eventually change, but users don't pay attention to such warnings).

 5.  Store new sit positions in a different field on SOP and use this if
 present with new sit adjustment, otherwise use old field with old sit
 adjustment.
 PROS: Works invisibly as long as old scripts don't set new values.
 CONS: Messy legacy code.  Old scripts probably will set new values - then
 would need to act differently on script item creation date, with same
 issues as 3.

 6.  Provide a config switch to use old sit adjustment or new.
 PROS: Administrator controllable.  In a future OpenSim release, admin can
 decide when they are going to flip to using the 'new' value.  This might be
 done anyway for the use case where OpenSim is being used with content in
 isolation from elsewhere.
 CONS: Encourages the creation of more objects using the old sit values,
 encouraging a continuous mix of old and new values which can't both be used
 on the same region.

 Doubtless there are other strategies, but on the face of it there doesn't
 seem to be an ideal solution.  It's made much more difficult by the fact
 that these values can only be scripts rather than as properties on the part
 (a decision which I find hard to swallow).

 On the whole, I think that it's better to accept the pain of change as
 early as possible and move to a world where all values are correct rather
 than remain with one where things are incorrect or a mish-mash in the long
 term.  As I said to Akira, the alpha nature of OpenSim is meant to be a
 signal that these things can change as bugs are fixed.

 However, I'm certainly happy to hear alternative opinions or
 well-researched and intelligent alternative proposals.

 --
 Justin Clark-Casey (justincc)
 http://justincc.org/blog
 http://twitter.com/justincc
 __**_
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/**mailman/listinfo/opensim-devhttps://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Supporting shell environment variables

2011-11-22 Thread Melanie
There are both pros and cons to this:

On the pro side, it gives one more way to set variable data into
otherwise static files, easing synchronization of configurations.

On the con side, the syntax is awkward as hell and it' useful to
only a very small group of people (those who grok *nix)

I think what clinches it is that nini has been dormant for so long
that the risks in a fork are negligible.

So, +1

Melanie

On 23/11/2011 06:34, BlueWall wrote:
 
 Hi All,
 
 About a year ago, I was working on the Fortis-OpenSim project and had 
 started digging into the configuration system a bit. One of the things I 
 wanted to to was provide the means to interact with shell environment 
 variables during the configuration. So, I studied the insides of Nini 
 and added support for the environment variables in a way that lets it 
 deal with the shell environment like already interacts with 
 ini/xml/registry configuration media. I tried contacting the Nini author 
 to ask if they would incorporate the changes into their distribution, 
 but Nini development has been dormant for some time and I never got a 
 response.
 
 A few days ago, I had a conversation in IRC about environment variable 
 support and decided to look at putting it into OpenSim. And today I was 
 able to use the modified Nini to get it working. I have done some 
 testing here and it works well. I want to push this to core, but I 
 wanted to discuss the forking of Nini. How does everyone feel about 
 that? I think having the ability to manipulate shell variables is pretty 
 good for us, and seeing that the Nini development has been dormant so 
 long it shouldn't be as much of an issue. If development starts back up 
 on it, then I'm pretty sure we could get the changes into the 
 distributed version.
 
 Thanks!
 BlueWall
 
 PS: for reference - http://pastebin.com/f3R0sk5N
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Any way for the server to get the viewer to send some information to another process on the client PC?

2011-11-11 Thread Melanie
You can send the Go to website dialog from a money module as well.
Both the VirWox module and DTL currency do this.

On 11/11/2011 11:55, Edmund Edgar wrote:
 On 11 November 2011 18:31, Melanie mela...@t-data.com wrote:
 The easiest way would be to make your bitcoin client open port 80 on
 your local host (or another port) for localhost use only. Then a
 script could send you to
 127.0.0.1:/pay?to=---- or
 similar and you complete the transaction onn this locally served
 html page.
 
 Actually I wasn't really thinking there would be an LSL script
 involved at all - I was hoping for some kind of way for the money
 module to send a message.
 
 For example, Fumi Iseki's version of the money module code
 http://www.nsl.tuis.ac.jp/svn/opensim/opensim.currency/trunk/OpenSim.Forge.Currency/MoneyModule.cs
 ...has things like:
  remoteClient.SendAgentAlertMessage(Unable to buy now. You don't have
 sufficient funds, false);
 ...which presumably sends a message to the client, which the client
 displays to the user.
 
 In my dreams, I could do something like:
  
 remoteClient.SendArbitraryHTTPMessageToSomethingListeningOnLocalPort(9876,1234
 BTC,1Q4uC95NvGSw3JrmFAcc4ZDRDNGZ2u3bFT);
 ...or maybe:
  
 remoteClient.WriteToLogWeMadeUpJustForThisPurpose(bitcoin_transaction_request.log,1234
 BTC,1Q4uC95NvGSw3JrmFAcc4ZDRDNGZ2u3bFT);
 
 But maybe I could somehow create an LSL script and make the client run it...
 
 The GridProxy thing is an interesting thought - it occurs to me that
 I'd also need to pass BitCoin addresses from the BitCoin client to the
 server, and associate them with the logged-in avatar, and it could
 help with things in that direction too.
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] WiFi Suggestion

2011-11-09 Thread Melanie
The problem with that is that the vanilla Linden Viewer can be
triggered to display the TOS dialog, but the URL it's fetched from
is hardcoded to the LL servers. Therefore, although a grid may put
out a viewer that has this check in it and fetches that grid's TOS,
a user who uses a vanilla Linden viewer would be presented with, and
agree to, the LL TOS. This is not legally binding for the user on
the third party grid, therefore this isn't practicable.

Melanie

On 09/11/2011 20:21, Bo wrote:
 Hello, just an quick idea,
 SL does request TOS confirmation directly in the viewer after each change. 
 
 Not sure, maybe someone would like to implement it into OS too? 
 
 Thanks for reading, Bo
 
 On Wednesday 09 of November 2011 19:16:14 Jason Spriggs wrote:
1. Options to have a user agree to a TOS/EULA before they can register. 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] The case for greater than 1024x1024 pixel textures.

2011-11-07 Thread Melanie
You are disregarding a number of factors.

First, OpenGL just doesn't seem to be capable of it.
Second, OS content is created by amateurs who think bigger is
better, as evidenced by existing creations.

For social, SL-like grids, this certainly must remain disabled even
if a way is found to implement it.

Melanie

On 07/11/2011 15:02, David Kaplan wrote:
 I whole-heartedly support this proposal in whatever the solution may
 be - regardless if it's an issue with the viewers or the server. I
 don't see that have larger textures will create appreciably
 significant performance issues because, much like web designers,
 people who are competent in building on OS are aware of bandwidth
 and optimization concerns when it comes file size. If they aren't,
 awareness will have be raised on this issue but I don't think a lack
 of awareness should impede creativity. OS has a lot of competing
 products out there (e.g., Unity, etc) and they all manage to do the
 job well while also allowing for robust textured graphics. I
 understand software like Unity is implemented differently but there
 is little reason why this issue should different.
 
 My two cent.
 
 On 11/7/2011 12:06 AM, Nebadon Izumi wrote:
 Lani

 This is a viewer issue and not really an OpenSimulator issue per
 say, it would be better taken up with the viewer devs, there are
 really no limitations on the server side for that limit the size
 of any texture, in fact the viewer also has no problem displaying
 larger textures, i have several 2048x2048 texture in SL, i believe
 they were uploaded with a special LibOMV client back in the day
 before LL closed some holes.  Technically the only place that
 limits the size of the texture is when the viewer converts the
 image to a jp2 image before it sends it to OpenSimulator, if this
 can be modified then we could upload larger textures, though there
 may be some other good reasons we would not allow this, such as
 performance and such, the files could be quite large, and having
 to download lots of these large textures could really cripple
 things, we would need to do some tests to be sure, there may also
 be other difficulties involved for TPVs with the Terms of Service
 of secondlife and making such modifications to the viewers, this
 really needs to be taken up with the Viewer Developers to see what
 they think.

 On Sun, Nov 6, 2011 at 9:53 PM, Amy Smith amy88sm...@yahoo.com
 mailto:amy88sm...@yahoo.com wrote:

 This is part of an effort to increase the awareness in 
 the developer community of a longstanding need among 
 OpenSim content creators and designers of simulator 
 environments, for higher resolution pixel textures 
 (images greater than current 1024x1024 pixels) 
 to be used in stand-alone and/or grid operation of 
 sim regions using OpenSimulator. 

 We are cartoons...
 The present limit of 1024x1024 pixels contributes 
 to a cartoon-like or sub-optimum look and feel to 
 OpenSimulator. If we are to make progress in 21st century 
 3D graphics, higher resolution imagery is needed. 

 Is it in only in the Viewer?
 Some devs point to the viewer clients being coded to limit 
 the image size at upload. Since OpenSimulator project has 
 recently changed license and participation method, to provide 
 increased interaction between viewer developers and simulator 
 developers, perhaps there is a renewed possibility to solve 
 this problem in the near future. Some TPV viewers have provided 
 compatibility switches in the Grid Manager section for 
 use with OpenSimulator. 

 Is there a SIMULATOR or server-side solution?
 If the only limits are in the viewer UPLOAD, then perhaps 
 a method of image insertion at the database level or 
 in the simulator console could be provided for higher 
 resolution textures.

 What should the limit be?It is estimated that increasing the
 limit to 
 at least 4096 x 4096 pixels would suffice for 
 most applications. But, for future expansion, 
 it should be up to the designer, the sim operator, or 
 the grid operator to set such limits (if any).

 The areas of design that suffer the most from 
 current texture size limits (1024x1024 pixels) are:

 1. AVATARS: Avatar skin and system clothing. (Currently: very
 blurry! )
 2. HUGE PRIMS: Large prim objects, such as buildings,
 environment/ space/ sky/ backdrops/ backgrounds, etc.
 3. SCULPTY: Visible texture applied to surface of sculpted
 objects.
 4. MESH: Visible texture applied to surface of mesh objects.
 5. LAND: Teraform, land/ground RAWs, textures, and data maps.

 Reproduction of the current situation:
 1. Upload a 4096x4096 image for use with avatar upper body UV
 wrapped texture for system avatar.
 2. Observe after upload, that the image has been converted by
 down-sampling and poorly compressing to a resulting 1024x1024
 texture

Re: [Opensim-dev] Avatar say / shout dont move with avatar that sits on moveing object.

2011-11-07 Thread Melanie
I believe that fix made it in when I updated the SP to AVN code. We
fixed that ages ago.

Melanie

On 08/11/2011 00:48, Justin Clark-Casey wrote:
 To me, this sounds like a bug to file on Mantis.  However, I suspect that 
 updating the listen position when a prim moves 
 will take a bit of code fiddling.
 
 On 05/11/11 02:40, R. Gunther wrote:
 I found out that if you go sit with your avatar on a prim,
 that contains a listener it works fine.
 But when your avatar get out of chat range from the source location.
 it stops responding when the object gets to far away from source location.
 But the avatar is sitting on top of the listener. Have more seen this ?
 I need to dive more into it sometime.

 lets say avatar is starting at 10,10 then it moves on the object with 
 listener to 100,100
 the object still thinks your staying at 10,10.

 Richard.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Signal Handling

2011-11-07 Thread Melanie
You should Mantis it and then maybe post the Mantis link here. I for
one might be interested in signals processing, like proper SIGTERM
and maybe SIGHUP.

Melanie

On 08/11/2011 00:31, Justin Clark-Casey wrote:
 Hi Rory.  I think most people currently achieve this kind of thing via the 
 RemoteAdmin interface [1].  However, I don't 
 personally have any objection to having POSIX handling code in OpenSim if 
 that's useful to people.
 
 The best place for such a thing could be a separate 
 OpenSim.ApplicationPlugins.PosixController package (or similar) 
 rather than mixing it in with OpenSim.cs.
 
 Things such as #if and #endif do exist in C# [2].  To be honest, I don't 
 think you need to detect Windows as long as it 
 does compile under Windows - one can include the mono.posix.dll in OpenSim 
 directly if necessary.  And some Windows 
 environments (e.g. Cygwin) do provide POSIX handling so it might work there.
 
 If you want to submit a patch please create an account on Mantis [3] and post 
 it there, putting it into the Patch 
 included state.  As I would classify this as a feature, we will need you to 
 sign and submit a contributor's agreement 
 [4].  Thanks.
 
 [1] http://opensimulator.org/wiki/RemoteAdmin
 [2] http://stackoverflow.com/questions/5159657/isolate-mono-specific-code
 [3] http://opensimulator.org/mantis.
 [4] http://opensimulator.org/wiki/Contributions_Policy
 
 On 07/11/11 15:50, Rory Slegtenhorst wrote:
 Dear List,

 My very first post in the dev mailing list, as I am going to spend much more 
 time in my personal OpenSim.

 I have written some code quite a while back and wanted to share my thoughts 
 and start a discussion about it.

 *Signal Handling*
 Currently, OpenSim services do NOT support POSIX signal handling when POSIX 
 is available. This support is available
 on pretty much any *nix platform including MacOS X. Windows does NOT support 
 POSIX period.

 In Mono, POSIX signal handling can be easily accomplished using the 
 mono.posix.dll.

 I have currently implemented nothing more but the TERM signal, to ensure the 
 services are properly stopped, instead of
 simply killed on the spot. This means that the service actually goes through 
 the shutdown procedure (if any).
 The next goal would be to implement HUP to reload the service.

 My current problem, is that the code is just there. No ifdef statements, 
 nothing.
 I simply lack the knowledge in .NET/Mono to exclude the code from an 
 environment that does not include posix.
 Some pointers in the right direction would be much appreciated.

 *Discussion*
 When creating services, there must be an easy way to start/stop them. 
 Especially on *nix this comes in handy.
 Shoving the word exit or shutdown into the service cli is just not 
 working all the time and is error prone.

 Adding POSIX signal handling would be considered standard in such 
 services. The fact that MS Windows does not
 support POSIX signals is simply disregarded. The equivalent on Windows would 
 be to have a service binary that runs
 the OpenSim services (I think that already exists).

 There aren't that many other standard solutions to the same problem, and 
 although signal handling wouldn't work on
 ONE platform (ONE being Windows), it is guaranteed to work on ALL others 
 (ALL being the *nix ones lol).

 So to start the discussion, here are some questions:
 1. Is there any interest in this code?
 With this I mean: would we want POSIX signal handling or will we try to 
 develop a different way to solve the same problem?
 2. If there is any interest, who do I send my patch to?

 With kind regards,
 Rory Slegtenhorst
 rory dot slegtenhorst at gmail dot com



 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] I'd like to remove to the attempt at autopilot when a sit target is selected from a distance

2011-11-04 Thread Melanie
As said in chat, +1

On 05/11/2011 02:38, Justin Clark-Casey wrote:
 Hi folks.  I would like to remove the code which attempts to autopilot the 
 avatar to a prim if it has no sit target and 
 is more than a short distance away.  This code is broken anyway (doesn't 
 actually sit when it reaches the target) and 
 it's not the behaviour you see on other grids.
 
 On the Linden grid, for instance, the avatar will warp to sit if = 10m away 
 and ignore the request otherwise.  This 
 seems reasonable behaviour to me.
 
 Please let me know of any issues with this.
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Remote admin, change region command missing ?

2011-11-03 Thread Melanie
All remote admin functions that deal with a single region take a
region UUID parameter.

If you use admin_console_command, you need to send the change region
command as you send any other commands.

Melanie

On 03/11/2011 02:19, R. Gunther wrote:
 I just wher ein chat. if you use a megaregion
 the say best to save every region seperate. its anyway good.
 Also for more regions in one instance. Only i have that scripted.
 And now i cant find any command at http://opensimulator.org/wiki/RemoteAdmin
 to change the region. SO you can save oar automatic.
 but you never can save every region seperate automatic.
 Is the command change region really missing in remoteadmin.
 if so how easy can that be added ?
 
 Greetings richard
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Script not working correctly in Opensim

2011-10-20 Thread Melanie
Replace

params = (params=[]) + params + params;

with params += params;

Melanie

On 20/10/2011 10:09, Chris Collins wrote:
 It does come up saying multiple assignments to params results may differ
 between SL and OSSL when I save the script. Would anyone know of a work
 around instead of using the param?
 
 Chris
 
 On Thu, Oct 20, 2011 at 12:48 AM, Chris Collins ch...@tipodean.com wrote:
 
 only problem with that is that the grid that will get the script does not
 allow OSfunctions. What is weird is that my script works in some cases.


 On Thu, Oct 20, 2011 at 12:35 AM, Fritigern Gothly 
 fritigerngot...@gmail.com wrote:

 Hmmm... Why not use osTeleportAgent?
 http://opensimulator.org/wiki/OsTeleportAgent

 On Thu, Oct 20, 2011 at 9:25 AM, Chris Collins ch...@tipodean.com
 wrote:
  I have the following script that is working within SL but does not
 always
  work in OpenSim. Sometimes it works other times it does not. Can anyone
 see
  anything that would be causing issues on Opensim
  vector DEST = 130, 182, 36;
  vector SITPOS = 0,0,0.5;
  key gAv;
 
  moveTo(vector origin, vector destination ) { // removed jumpdist
  float dist = llVecDist(origin, destination);
  integer passes = llCeil( llLog(dist/10.0) / llLog(2.0) );
  integer i;
  list params = [PRIM_POSITION, destination];
  for (i=0; ipasses; i++) {
  params = (params=[]) + params + params;
  }
  llSetPrimitiveParams(params);
  }
 
  teleport(key av) {
  if (av == NULL_KEY)
  {
  return;
  }
 
  vector origin = llGetPos();
  llSetAlpha (0.0, ALL_SIDES);
  moveTo(origin, DEST);
  // no need to sleep -- llSetPrimParams has 0.2s delay
  llUnSit(av);
  moveTo(DEST, origin);
  llSetAlpha (1.0, ALL_SIDES);
  }
 
  default
  {
  state_entry()
  {
  llSetClickAction (CLICK_ACTION_SIT);
  llSitTarget(SITPOS,llEuler2Rot(0,0,-90 * DEG_TO_RAD));
  }
 
  changed(integer changebits)
  {
  if (changebits  CHANGED_LINK)
  {
  gAv = llAvatarOnSitTarget();
  if (gAv != NULL_KEY)
  {
  teleport(gAv);
  }
  }
  }
  }
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 



 --
 -- Friti
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




 --
 --
 Chris Collins
 CEO
 Tipodean Technologies
 +1 415-515-6928 | ch...@tipodean.com
 Skype: cozza13 | SL: Chris Collins
 Website: www.tipodean.com
 Twitter: http://www.twitter.com/tipodean
 http://www.linkedin.com/in/collinschris
 http://www.builtbuy.me
 Tools for your distributed workforce


 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Continual object update resends if acks are missed

2011-10-12 Thread Melanie
It may be that the update is sent with a new sequence number. The
update resending should work by either removing the newer update
from the queue entirely and resending the packet using the old
sequence number until acked or just resend the packet as is, leaving
the newer updates in the queue.

The viewer might not like too many sequence numbers missed, it does
spit warnings when packet sequence numbers are not ok.

Melanie

On 12/10/2011 07:43, Mic Bowman wrote:
 We should collect more information on what is actually happening. The old
 behavior was to resend infinitely (and very badly). It would send old
 updates even when there were new updates for the same object. We changed the
 resend to transmit the current data rather than old data. If there are still
 no acks coming back after some time then we need to figure out what the
 viewer is expecting  when it no longer acks packets.
 
 There is a write up on the procedure in an old email message on this list.
 
 --mic
 
 
 On Tue, Oct 11, 2011 at 3:55 PM, Justin Clark-Casey 
 jjusti...@googlemail.com wrote:
 
 Hi dslake (since this is chiefly addressed to you :)

 In commit b5ab33b5 back on Wednesday 20th April 2011, you made a change so
 that the resend of object updates or property updates is threaded back
 through Resend methods on LLClientView rather than the normal resend within
 UDPServer.

 The normal resend only performs the resend once, while going through the
 LLClientView.Resent*() methods will continually attempt the resend until
 acked as they put the requests back on the m_entityUpdates/m_entityProps
 queue.

 From my experience, often the client will not reack such packets.  This
 means that they are continuously resent until the client logs out.  I can
 see this happening by uncommenting the log lines in 
 LLClientView.**ResendPrimUpdates()
 and ResentPropertyUpdates().  This is chiefly seen on remote regions (I
 can't repro on a localhost).

 What do you think?  Can we resend such packets just once?

 Thanks,

 --
 Justin Clark-Casey (justincc)
 http://justincc.org/blog
 http://twitter.com/justincc
 __**_
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/**mailman/listinfo/opensim-devhttps://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Continual object update resends if acks are missed

2011-10-12 Thread Melanie
It appears this mechanism has already been removed for prim updates
because intermediate updates are needed fro proper motion of
physical prims, but was left in for property updates. However,
culling of later updates as well as preservation of sequence numbers
was not done.

Melanie

On 12/10/2011 07:43, Mic Bowman wrote:
 We should collect more information on what is actually happening. The old
 behavior was to resend infinitely (and very badly). It would send old
 updates even when there were new updates for the same object. We changed the
 resend to transmit the current data rather than old data. If there are still
 no acks coming back after some time then we need to figure out what the
 viewer is expecting  when it no longer acks packets.
 
 There is a write up on the procedure in an old email message on this list.
 
 --mic
 
 
 On Tue, Oct 11, 2011 at 3:55 PM, Justin Clark-Casey 
 jjusti...@googlemail.com wrote:
 
 Hi dslake (since this is chiefly addressed to you :)

 In commit b5ab33b5 back on Wednesday 20th April 2011, you made a change so
 that the resend of object updates or property updates is threaded back
 through Resend methods on LLClientView rather than the normal resend within
 UDPServer.

 The normal resend only performs the resend once, while going through the
 LLClientView.Resent*() methods will continually attempt the resend until
 acked as they put the requests back on the m_entityUpdates/m_entityProps
 queue.

 From my experience, often the client will not reack such packets.  This
 means that they are continuously resent until the client logs out.  I can
 see this happening by uncommenting the log lines in 
 LLClientView.**ResendPrimUpdates()
 and ResentPropertyUpdates().  This is chiefly seen on remote regions (I
 can't repro on a localhost).

 What do you think?  Can we resend such packets just once?

 Thanks,

 --
 Justin Clark-Casey (justincc)
 http://justincc.org/blog
 http://twitter.com/justincc
 __**_
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/**mailman/listinfo/opensim-devhttps://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


  1   2   3   4   5   >