Jump to content
livb89

Saving information

Recommended Posts

3 hours ago, Lucia Nightfire said:

I don't consider using string literals to hold data outside of valid url format a hack.

... but note that Linden Lab does consider it a hack and not supported. We've already been through one round of data loss by users doing this when we improved the parameter validation; that could well happen again.

The first law of software reliability: Use it the way the author intended.

 

  • Like 4
  • Thanks 4

Share this post


Link to post
Share on other sites
On 7/16/2019 at 10:39 AM, Fritigern Gothly said:

I never said it was practical, but I have noticed that many people are afraid to put more than just a handful of values in a list. My intention was only was to point out that a list can hold more keys than some people may think.

I've done some testing. List updates seem to be constant time up to length 128 or so. Then they slow down. Technically, O(1) to 128, then O(N).

Share this post


Link to post
Share on other sites
Posted (edited)
12 hours ago, Oz Linden said:

... but note that Linden Lab does consider it a hack and not supported. We've already been through one round of data loss by users doing this when we improved the parameter validation; that could well happen again.

The first law of software reliability: Use it the way the author intended.

 

Yes, I've butted heads with you over your improvements changes a few times in Simon's UG, heh.

You didn't want the viewer to do validation so you added schema enforcement to llSetPrimMediaParams() & llSetLinkMedia(), but you didn't go far enough to actually do full url formatting validation so urls can still be malformed and the viewer pass them on.

With HTTP out, you made a change to prevent C0 control character use, but still allowed C1 control character use.

When you made both of these changes you gave the community no prior heads up which caused content to break and creators to file jiras after their customers came to them to complain.

I'm still waiting on you to block use of commas with key inputs for llCreateKeyValue() & llUpdateKeyValue() so it doesn't break llKeysKeyValue() return. See BUG-18269.

As far as "Use the way the author intended.", we both know that it has been stated many times by Lindens themselves in the UG's over the years that users will always find many different ways to use the script functions.

Yes, there is always the chance that things in the future can change and content be broken, but I would hope that it is done with valid reasoning, that prior notice be made in good faith to the content creator community, and that the problem(s) that warranted the change be addressed completely, not partially.

Until then I will continue to use "hacks" when LL refuses to provide equal alternatives and will deal with any "improvements" when they come. I like living on the wild side, heh.

Whenever a topic comes up in the future whose solution might be considered a hack, I will add appropriate disclaimers.

P.S. To everyone else reading, no this is not drama. Oz and I just sometimes have disagreements on how things are handled. We are not enemies.

Edited by Lucia Nightfire
  • Like 3

Share this post


Link to post
Share on other sites

A bug I forgot to mention and recently filed is that if your data has C0 control characters in it you won't be able to rez the object after taking it into inventory.

If this is new expected behavior, then the wiki needs to be updated with the caveat, "We went so far to prevent url control character use that we blocked rezzing of anything using them. Mwahahaha!"

  • Thanks 1

Share this post


Link to post
Share on other sites

Other fun reads:

Here is the jira creators relied on when content was broken unexpected without notice.

Here is the alternative I requested during the same time frame.

Using media to store data and get synchronous access came up in today's Content Creators meeting.

Many showed interest in an official method without resorting to hacks especially since common large data storage/access involves hosting or using experiences which aren't usable everywhere.

The method I proposed would be less of a concern in the hands of the inexperienced.

Abuse of Linden Lab's KVP dataservers is one of the main reasons why we never got grid scope experiences in the first place.

Share this post


Link to post
Share on other sites
5 hours ago, Lucia Nightfire said:

Abuse of Linden Lab's KVP dataservers is one of the main reasons why we never got grid scope experiences in the first place.

Do we know this to be a fact?

Decoupling KVP from Experiences and/or permitting a possibly scaled-back version to be used grid-wide would seem the logical way to replace the media string kludge, inasmuch as KVP storage must be supported going forward anyway.

(Granted, the "comma-delimited list" string return values are a pretty hideous kludge, presumably to conform to old limitations on dataserver results. For an individual use, it's easy enough to concoct a scheme to escape the comma character at the application level, but it sure gets in the way of any general use, cross-application tool to help folks use Experiences.)

Share this post


Link to post
Share on other sites
2 hours ago, Qie Niangao said:

Do we know this to be a fact?

To the best of my memory it was mentioned a few times verbally(personal IM) and in the blogs.

I can't find the old blogs anymore, though.

  • Thanks 1

Share this post


Link to post
Share on other sites

Now that I think about it, KVP is pretty extreme overkill for a little persistent store local to a region.

Not that it's relevant, but I'd sure like to swap my land scoped Experiences for at least one with grid scope. I hate that my auto-temp-attached swimmer falls off at the parcel edge, for example.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...