Skip to content
This repository has been archived by the owner on Feb 28, 2024. It is now read-only.

[BUG-202673] [Feature Request] - Lack of ability to write to Notecards, which leads to creating large memory resources, to store incoming emails. We need a better solution as there is no solution for recording incoming emails and holding in an easily viewable form #2992

Closed
2 tasks
sl-service-account opened this issue Nov 30, 2017 · 14 comments

Comments

@sl-service-account
Copy link

sl-service-account commented Nov 30, 2017

How would you like the feature to work?

I was hoping that a memory failure free solution using notecards was available using current commands. This would keep the data in-sim and improve the experience of the in-world features to an avatar.

This would be simple to be implemented and would rely on existing note card system. A new function could be created taking parameters of a notecard name and data. The function would return a key to the data server event. which could allow result handling after the code had executed and return the new UUID for the notecard similar to note card reading.

h2.This would require a new function to be created:

Function key llCreateNewNotecard( string name, list src );

Returns a handle (a key) that is used to identify the dataserver event when it is raised.

  • string name – notecard name.

  • list src - notecard message text to be displayed in notecard body.

    Example

    default
    {
    state_entry()
    {
    owner_name_query = llCreateNewNotecard( "Happy Birthday Card2", ["Happy Birthday","Denise."] );
    }

    dataserver(key _queryid, string _data)
    {
        if ( owner_name_query == _queryid )
        {
            llSay(0, "The new key created for this notecard is here: " + _data);
        }
    }
    

    }

    h4.Events
    • dataserver

    Caveats

  • This function causes the script to sleep for 0.1 seconds.

  • If name is a new empty notecard (never saved) then an error "Couldn't create notecard NAME" (NAME being the value of name) will be shouted on the DEBUG_CHANNEL. This is because until a notecard is saved for the first time, it does not exist as an asset only as an inventory placeholder.

  • if src contains no lines then an error "Couldn't create notecard NAME" (NAME being the value of name) will be shouted on the DEBUG_CHANNEL

  • if src contains to many lines for the limits of the notecard then an error "Couldn't create notecard NAME" (NAME being the value of name) will be shouted on the DEBUG_CHANNEL. This is because until a notecard is saved for the first time, it does not exist as an asset only as an inventory placeholder. In creating the notecard the contents of the list could not be inserted therefore the notecard was not created.

    Why is this feature important to you? How would it benefit the community?

    h4.It would definitely be of benefit to the community to be able to write to a notecard in one pass from a list.

  • The benefits would be proper email handling.

  • Would support a real in world solution familar to avatar use of notecards.

  • Changing of a note card by deleting and replacing it with a script. Therefore, correcting errors therein.

  • This may also be able to then work with very basic database handling.

  • Restoring of data from a list would be beneficial to update managers who are authorised to access the prim.

  • Offline storage was possible of data. An email handler could save and send note cards to the respondent. Or hold them in the prim to eliminate clutter.

  • There is evidence that Avatars would like to store data from a script back in notecards.

  • variables in a script could be recoverd at a sim restart by saving to note card.

    Actual Behavior

    I have been writing an Email handling object in Secondlife. This sends an email out to the RL email address and I am very pleased with it.

    I have considered the LSL library http://wiki.secondlife.com/wiki/Email in regard to email servers and unfortunately, this could do with an update as it is very verbose and only handles requests to obtain an item from an inventory. Clearly, there is a need for advice on how best to store these incoming emails in a form that they can be presented to the user.

    h3.Existing code from LSL Wiki

    default
    {
    state_entry()
    {
    llSetTimerEvent(5.0);
    }

    timer()
    {
    //  get next email, don't filter by sender or subject
        llGetNextEmail("", "");
    }
    
    email( string time, string address, string subject, string message, integer num_left )
    {
    //  if we received an email from an object within Second Life
        if (llGetSubString(address, -19, -1) == "@lsl.secondlife.com")
    

    // {
    message = llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1);
    // }

    //  PUBLIC_CHANNEL has the integer value 0
        llSay(PUBLIC_CHANNEL, message);
    
    //  if there's another email in the queue waiting
    //  get next email, don't filter by sender or subject
        if(num_left)
            llGetNextEmail("", "");
    }
    

    }

    Expected Behavior

    I wanted it to store emails in a form that they could be read offline by a user at a later date in the object.

    Other information

    Can you add the ability to write note cards to so as to provide offline data storage in SL which will encompass the SL guidelines? The SL system does not cater for this currently yet offers an Email client which is a partial solution. External HTTP requests to external database are slow and do not present the data in a form that is available to the in-world experience.

    It is important to note that this suggestion is to write a note card in a single pass and is not inteded as an edit system for notecards. This eliminates a lot of the asst requirements that a editable system would require. A new UUID would be required for the notecard that is created.

    Unsuable code

    There has been suggestions that the KVP Experience Tools could cater for email storage however BUG-18269 is clear in the fact that a key cannot contain a comma or other symbol for punctuation in the Languages used around the world. This means KVP experience Tools would be the wrong choice to store emails coming into SL.

    h3.Usable code.
    The notecard system is very extensively used in SL by Avatars to store offline messages. Its choice is obvious as a storage method as it is widely accepted and in current use. The asset required for the data server to write a complete note card would be minimal compared to the existing line by line read by the data server.

    h3.Important Issues with KVP
    BUG-18269 - Commas not allowed in keywords.
    BUG-40868 - Lartger storage
    BUG-18251 - Multiple errors in keywords
    SEC-1352 - KVP access functions cannot operate
    BUG-11499 - Parcel Settings
    BUG-8306 - Script errors with over throttle

    Never resolved by SL what a waste of time please vote as someone closed it its A DISGRACE Alex Linden said its not something they can tackle then why not remove the email system as it doesn't work wholly and is a waste of time! This means the code for emailing is unworkable and incomplete and not able to be used.

    Valid reasons are

  • Our internal architecture doesn't allow it.

  • It will break existing content.

  • It is not scalable.

  • The request will introduce security issues.

  • Scope of work is too great.

    None of the above was given

    Action taken after dismissal by Linden emplyee closing this matter with out reasonable explaination.

    h2.* I have opened an abuse against the person on the grounds of intolerance in-world
    h2.* I have opened a support ticket on Second life under reference Support Ticket #187936 for this closure https://jira.secondlife.com/browse/BUG-202673

Attachments

Links

Duplicates

Original Jira Fields
Field Value
Issue BUG-202673
Summary [Feature Request] - Lack of ability to write to Notecards, which leads to creating large memory resources, to store incoming emails. We need a better solution as there is no solution for recording incoming emails and holding in an easily viewable form
Type New Feature Request
Priority Unset
Status Closed
Resolution Unactionable
Reporter VirtualKitten (virtualkitten)
Created at 2017-11-30T11:56:06Z
Updated at 2017-12-03T16:28:07Z
{
  'Business Unit': ['Platform'],
  'Date of First Response': '2017-11-30T11:57:24.046-0600',
  'How would you like the feature to work?': ' ',
  "Is there anything you'd like to add?": 'Can you add the ability to write note cards to so as to provide offline data storage in SL which will encompass the SL guidelines? The SL system does not cater for this currently yet offers an Email client which is a partial solution.',
  'ReOpened Count': 0.0,
  'Severity': 'Unset',
  'System': 'SL Simulator',
  'Target Viewer Version': 'viewer-development',
  'What just happened?': 'I have been writing an Email handling object in Secondlife. This sends an email out to the RL email address and I am very pleased with it .\r\n\r\nI have considered the LSL library http://wiki.secondlife.com/wiki/Email in regard to email servers and unfortunately, this could do with an update as it is very verbose and only handles requests to obtain an item from an inventory. Clearly, there is a need for advice on how best to store these incoming emails in a form that they can be presented to the user.\r\n\r\ndefault\r\n{\r\n    state_entry()\r\n    {\r\n        llSetTimerEvent(5.0);\r\n    }\r\n \r\n    timer()\r\n    {\r\n    //  get next email, don\'t filter by sender or subject\r\n        llGetNextEmail("", "");\r\n    }\r\n \r\n    email( string time, string address, string subject, string message, integer num_left )\r\n    {\r\n    //  if we received an email from an object within Second Life\r\n        if (llGetSubString(address, -19, -1) == "@lsl.secondlife.com")\r\n//      {\r\n            message = llDeleteSubString(message, 0, llSubStringIndex(message, "\\n\\n") + 1);\r\n//      }\r\n \r\n    //  PUBLIC_CHANNEL has the integer value 0\r\n        llSay(PUBLIC_CHANNEL, message);\r\n \r\n    //  if there\'s another email in the queue waiting\r\n    //  get next email, don\'t filter by sender or subject\r\n        if(num_left)\r\n            llGetNextEmail("", "");\r\n    }\r\n}\r\n\r\n\r\n',
  'What were you doing when it happened?': 'I was hoping that a memory failure free solution using notecards was available using current commands.',
  'What were you expecting to happen instead?': 'I wanted it to store emails in a form that they could be read offline by a user at a later date in the object',
  'Why is this feature important to you? How would it benefit the community?': ' ',
}
@sl-service-account
Copy link
Author

Chaser Zaks commented at 2017-11-30T17:57:24Z

Linden Lab has been very cautious about what LSL can create asset wise, and rightfully so.
Doing this would cause more problems than good. While it has legitimate uses like your example, people would use it as a database.
The problem with notecards as a database is that each time it is changed, a new asset is created rather than replaced. This would cause a massive amount of unused notecard clutter in the asset server.

A new type of asset that can be written over would need to be made for this to work.

@sl-service-account
Copy link
Author

VirtualKitten commented at 2017-11-30T19:49:25Z

Am not sure I understand why it would create more asset clutter than reading. Why could it not just write the notecard in one hit and eliminate the requirement for many hits on assets ? This is totally really dependable on how the command works.

@sl-service-account
Copy link
Author

Lucia Nightfire commented at 2017-11-30T22:21:00Z

Why not store data in script?
Why not store data in a KVP database? http://wiki.secondlife.com/wiki/Category:Experience_Tools

@sl-service-account
Copy link
Author

VirtualKitten commented at 2017-11-30T22:32:37Z

Hi Mazi,

The problem is that there is no clear path to save and store emails to a prim on the wiki pages.

The only code on the wiki is to send an item from the inventory once the prim is emailed which defeats the reason for receiving email.

The only reasonable solution to this without a memory hungry option would be to write the email to a notecard in one hit. That could then be reviewed at a later date and even copied into the Avatars inventory. Currently, there is no LSL command or data server handling to write to note cards and no proper LS Wiki explanation on how to process emails once they have come in within the current framework. There is no easy workaround that I have found I have asked in LSL scripting groups but had no proper help other than the matter was memory hungry.

It would definitely be of benefit to the community to be able to write to a notecard in one pass from a list. The benefits would be proper email handling. Changing of a note card by deleting and replacing it with a script. Therefore correcting errors therein. This may also be able to then work with very basic database handling.

@sl-service-account
Copy link
Author

VirtualKitten commented at 2017-11-30T22:40:56Z, updated at 2017-11-30T22:42:35Z

Lucia, Thank you for your ideas

The data from a large number of email would be memory hungry if stored in a script. The notecard option is much more friendly and native to Secondlife The KVP database is not something that is easily accessible to the user of the script. I am not really sure the Experience Tools are meant to be used for a database of large strings:

The Knowlegebase states

In Second Life terminology, an experience is a set of avatar interactions created by one or more scripted objects. With an experience key, creators can build their experiences so that a user only needs to grant avatar permissions once for the entire experience rather than separately for each scripted object within it. These permissions allow the experience to animate your avatar, attach items to your avatar, track your camera, control your camera, teleport your avatar, and alter your movement controls.

For example, Linden Realms regularly requires permission to teleport your avatar and attach objects to your avatar and HUD. Rather than asking permission each time it needs to perform one of these actions, it uses experience permissions perform the required actions as many times as needed without pausing while you respond to each permission request.

@sl-service-account
Copy link
Author

Lucia Nightfire commented at 2017-12-01T03:29:11Z

KVP strings can be up to 4095 bytes.

At one point I had security operation data sent to my KVP db so I could read the order of events via an HUD in chronological order and it stored over 2 MB of data daily.

Notecards are not an efficient alternative as they are asset based and saving(writing) to a notecard creates a completely new asset each save.

@sl-service-account
Copy link
Author

VirtualKitten commented at 2017-12-01T10:07:53Z

Lucia . I don't really see the KVP being a workable solution as it was never intended for what you are suggesting and as such may get changed or altered which would render code unworkable.

The assets required to read and write are the same structure so cannot see why this would be asset hungry in fact writing in one hit with one routine writing one note card would be less asset hungry than reading one line through the data server of an existing notecard read!

We really need a proper workable solution for this

@sl-service-account
Copy link
Author

VirtualKitten commented at 2017-12-01T11:49:50Z

Lucia

I have had a look at the KVP again and direct you to http://wiki.secondlife.com/wiki/LlCreateKeyValue which its elf requires the use of the data server and is also asset based on each key you register. Clearly, this is more asset hungry than one note card write which would only require one data server event. I also presume the key you create is available in memory and therefore not available after a sim restart. I note you seem to be the expert here on KVP but do not feel it fits this methodology in a way which is accessible to the second life user on the grid. Clearly, note cards are a better solution for storing information which the Avatar can easily read. Is this not the definition of an email?

I understand SEC-1352 made this grid wide use of KVP to store data I am also aware from BUG-18269 that grammar notation is not allowed to be recorded in a KVP key. Which I feel renders it unusable for email. The English language is full of grammar symbols so is French and other languages.

We need a complete solution for storing emails. A note card seems the obvious choice.

Denise

@sl-service-account
Copy link
Author

Lucia Nightfire commented at 2017-12-01T17:03:51Z

Everything you said in your last two comments is wrong and a complete misunderstand of how the KVP system works.

KVP was explicitly created and offered to residents as a means of reading/writing data, 0 - 4095 bytes, rapidly to/from a dedicated server, granted LL's "vision" was for it to be primarily used with experience based game data.

KVP servers are not asset servers. They are their own servers with their own thread.

Even though the dataserver event is triggered with reads, creates, updates and deletes, there is no asset fetching.

KVP keys are not assets.

I don't know where you got the idea that SEC-1352 has anything to do with facilitating grid-wide KVP usage, but it doesn't.

BUG-18269 was about limiting the use of commas in keys, not data, since the presence of commas in keys will negatively impact llKeysKeyValue() as it returns a list of keys in CSV format.

Your understanding/assumption that writing to notecards by script will not risk being resource intensive to asset servers is also incorrect.

Asset fetching is not on its own thread and scripts would effectively be able to ddos the asset server, blocking attaching and rezzing from inventory.

I suggest you invest some time into working with KVP functions to get an actual understanding of the operation and benefits because scripted writing to notecards isn't going to happen.

We would sooner get larger scripts before that.

@sl-service-account
Copy link
Author

VirtualKitten commented at 2017-12-01T19:35:00Z, updated at 2017-12-03T10:44:28Z

Yes, Lucia thank you but the comas you addressed would be present in emails so the BUG-18269 would prevent this recording emails.

No Lucia the understanding I have of notecards is correct we already use them for scripting to read notecard sometimes every line creates an asset request 1 second or more. You seem to not understand that this is already implemented and that one asset release of the system to create a notecard would be far less than this around 1 second. When a read of the notecard lines for example 12 can do this for many 12 seconds.

I don't need to invest at any time with KVP it won't work as a solution for what I require this to do. You seem to be misunderstanding this and have spent considerable time improving this request today.

I recognize your experience in KVP but this KVP will not record this data and present it in an in-world experience for avatars that is comparable to what they already use and can cope with. Finally, even if the KVP could deliver recording this data there would be no way of ensuring the Avatar had a copy they could look back on which can be easily achieved in notecard from easily and is used across SL as a recording medium of messages by all avatars.

Denise

At 12/3/2017 AT 11:39 AM

Again I have to say the use of KVP for this Note card system is not a useful answer. It is quite clear that for the experiance system to functiom that it hasto be turned on in the settings. I am quite aware this is not the case for many avatar and as such there is no clear delivery of the email recieve functions in SecondLIfe yet email can be send out without a problem. This is a rediculous state of affairs and needs to be put right. Why would anyone consider that this would eb correct that functions in secondlife scripting library cannot be used and are redundant as the storage facilities do not exist to make it work.

@sl-service-account
Copy link
Author

Lucia Nightfire commented at 2017-12-01T19:59:04Z

Again, and for the last time, BUG-18269 was to prevent commas from being used in KVP "KEYS", not the "DATA".

My KVP "DATA" contains commas. The aforementioned security data was in the form on IM's that I used to receive while online. That data contained commas. That data was stored in my KVP database daily during a time when I would not get my IM's going to my email. So I would have it stored and would read it back with an HUD when I came online. Some days I would have have it read back a hundred stored IM's, other days it could read back up to 2000 stored IM's.

There is no character restrictions with what can be stored in KVP "DATA".

You are confusing KVP keys with KVP data. They are two completely different things. Keys are ID's, Data is data read from or wrote to that ID.

Your understanding of how notecard asset data is fetched and saved is incorrect.

I am done repeating myself and will not be arguing this matter any further as it is fruitless.

@sl-service-account
Copy link
Author

VirtualKitten commented at 2017-12-01T20:45:13Z, updated at 2017-12-03T10:46:24Z

I don't think you understand my problem at all. You cannot use KVP for everything Lucia I respect your experience but you have not listened to anything I said as naysayers you seem to hope KVP can do all it cannot!

For many years avatars in LSL have created notecards copying data from messages as a permanent record of their messages this is so heavily used that you must have even used it yourself. If you are correct at all this asset notecard creation then in the millions of note card creation which I have hundreds would break SL. It doesn't!

You seem to be riding a chariot for KVP it simply won't work here! I am done repeating myself you don't listen!

You seem to misunderstand how the data server functions and have expended a great deal of effort in putting forward KVP which is a nonsense for what this requirement is!

Go please support your single-minded obsession with KVP approach elsewhere I have told you more than once this will not work for what I have intended. I have been told by many people this is a very good idea. These are people in Scripting groups who script regularly like me.

Go in peace.
Denise

h1.Dear Alex Linden,

h1.Alex you have not provide me with a reason for closing this request with a valid reason which are

* Our internal architecture doesn't allow it.

* It will break existing content.

* It is not scalable.

* The request will introduce security issues.

* Scope of work is too great.

Your scripting system is now flawed as you have provided no solution to get this email system working. It seems by not adding one of the above you have not reviewed this matter at all. I intend to open a complaint.

New input

Dear Whirly,

I am not shouting just pointing out that the person who closed this is wrong and not conforming to SL guidelines which you have missed. I am not sure how you can comment on this as this item is closed and I cannot. It is clear the email system is non-functional in a complete function that will operate to provide a full experiance are you joining the naysayars?

At 12/3/2017 AT 11:39 AM

Again I have to say the use of KVP for this Note card system is not a useful answer. It is quite clear that for the experiance system to functiom that it hasto be turned on in the settings. I am quite aware this is not the case for many avatar and as such there is no clear delivery of the email recieve functions in SecondLife yet email can be send out without a problem. This is a rediculous state of affairs and needs to be put right. Why would anyone consider that this would be correct that functions in secondlife scripting library cannot be used and are redundant as the storage facilities do not exist to make it work.

@sl-service-account
Copy link
Author

Alexa Linden commented at 2017-12-01T22:32:46Z

Thank you for your suggestion. We've reviewed your request and determined that it is not something we can tackle at this time.
Please be assured that we truly appreciate the time you invested in creating this feature request, and have given it thoughtful consideration among our review team. This wiki outlines some of the reasoning we use to determine which requests we can, or can't, take on: http://wiki.secondlife.com/wiki/Feature_Requests
Thanks again for your interest in improving Second Life.

@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2017-12-02T00:57:39Z

Action taken after dismissal by Linden emplyee closing this matter with out reasonable explaination.

  • I have opened an abuse against the person on the grounds of intolerance in-world

You AR'd a Linden for closing this JIRA issue?
That was pretty silly.

Also shouting in h1 caps doesn't make what you say correct.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant