Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

XML Upload of scripts

blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-20-2005 16:31
In order to do real development, it seems to me that this is rapidly becoming necessary.

Having to copy around scripts to different prims and what not is very tedious, and remote script load doesn't cut it.

What do you think? Would you like to be able to do XML upload of scripts?
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
Satchmo Prototype
eSheep
Join date: 26 Aug 2004
Posts: 1,323
08-20-2005 16:36
From: blaze Spinnaker

What do you think? Would you like to be able to do XML upload of scripts?


What do you mean XML upload of scripts? XML is just a markup format, do you mean XML-RPC? That would be kind of tedious because you need an objects key.

I agree a remote script loader of some sorts would be nice.
_____________________

----------------------------------------------------------------------------------------------------------------
The Electric Sheep Company
Satchmo Blogs: The Daily Graze
Satchmo del.icio.us
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
08-20-2005 18:07
I think this will not happen for a long, long time. Cory already explained that they don't (yet) want a way to automate asset creation a few town halls ago. Their logic makes sense, given they're still too understaffed to take on some of the big problems that opening up the system would cause.

llRemoteLoadScriptPin works just fine, provided you know how to work it. Given I was able to write a system that transfers scripts to a couple thousand prims in under two minutes, I don't see the necessity.

Long term though, it might be nice to have automated assets.
_____________________
---
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-20-2005 18:28
Remote load script doesn't change scripts on items in inventory, which makes it rather painfully incomplete.

Not to mention LSL doesn't have include capability, which is rather necessary on any project of any reasonable size. Type checking of inter process communication would be nice as well, something you can't do with the current toolset.

Finally, this doesn't have to be asset creation.
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
Minsk Oud
Registered User
Join date: 12 Jul 2005
Posts: 85
08-20-2005 19:48
We seem to be mashing three issues together here.

The first is an "Upload Script" button, which I think would be both useful and easy. At the moment I am copying compiled LSL into the interface manually, which is a little ackward. Hopefully before we all die of old age, upload of CIL assemblies will solve the entire problem.

The second is improved features for inventory manipulation (e.g. "Put this script in everything I have selected";) which would basically resolve the stated issue. SL has fairly severe UI issues, but resolving them would require a lot of R&D.

The third is allowing scripts to generate other scripts from their text forms, which would be useful but is unlikely. LL appears to want to limit scripted access to the global assets, which given the general approach of "There's a time delay. Guess I'll use eight copies of this e-mail script/rezzer/whatever" seems justified. Applying rate limits to expensive operations in a way that can not simply be gamed is non-trivial.

The other nit is that language features like type-checking interscript communications are completely independent of whether or not the upload can be automated after they are checked and any transformations are done.

A decent client SDK would provide for just about every automation features people have been asking for, so I assume it is somewhere in the priority list.

<edit-again>Yeah, that was a little over the top. Let me scratch that edit.</edit-again>
_____________________
Ignorance is fleeting, but stupidity is forever. Ego, similar.
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-20-2005 20:56
Heh heh heh

From: Minsk Oud
We seem to be mashing three issues together here.

From: someone

The first is an "Upload Script" button, which I think would be both useful and easy. At the moment I am copying compiled LSL into the interface manually, which is a little ackward. Hopefully before we all die of old age, upload of CIL assemblies will solve the entire problem.


Do you mean upload script button instead of ctrl-a, ctrl-c, alt-tab, ctrl-a, ctrl-v? Or something else? If the latter, well, you can just keyboard macro that I guess.

Yeah, well, CIL obviously would solve all problems, and probably create zillions more. Could you imagine the hackery we would do if we had direct access to CIL? Woo!

LSL is absolutely necessary and vital to SL. In a world where everyone is scripting together, a layer must exist which reduces complexity for the vm watchmen to weed out bugs and safeguard against hacks. This is what LSL is. In fact, the more complex it becomes the more dangerous it becomes.


From: someone

The second is improved features for inventory manipulation (e.g. "Put this script in everything I have selected";) which would basically resolve the stated issue. SL has fairly severe UI issues, but resolving them would require a lot of R&D.


Well, this could be solved simply by letting remote script loading change inventory contents. No need to implement what we can implement ourselves.


From: someone

The third is allowing scripts to generate other scripts from their text forms, which would be useful but is unlikely. LL appears to want to limit scripted access to the global assets, which given the general approach of "There's a time delay. Guess I'll use eight copies of this e-mail script/rezzer/whatever" seems justified. Applying rate limits to expensive operations in a way that can not simply be gamed is non-trivial.


I already do this, and I suspect many other savvy individuals do. I have a set of LSL libraries and a simple emacs macro that generates LSL from those libraries based on the symbols I access and the includes I have.

It's the FREAKING uploading into SL that is pissing me off because I always forget that one object in the rather complex object trees I have when I change a core include file. Plus I am getting tired of pulling an object out of an inventory, changing it, and then re putting it into an inventory.

From: someone

The other nit is that language features like type-checking interscript communications are completely independent of whether or not the upload can be automated after they are checked and any transformations are done.


Ahhh, that was directed at me. If you're developing offline where the checking is done (cause it sure aint done in SL!), how do you move from offline to online without LSL upload?




From: someone

A decent client SDK would provide for just about every automation features people have been asking for, so I assume it is somewhere in the priority list.


Once more, why get SL to do this when we've already done the work? They have higher priorities. If they start working on an SDK without fixing all the zillions of bugs in SL I will grind and nash and grind and nash my teeth into sand.

From: someone

<edit-again>Yeah, that was a little over the top. Let me scratch that edit.</edit-again>


Heh heh, awwwh, I thought it was funny.

I think the problem is that you probably don't spend a lot of time developing within complex object trees with offline include libraries. If you did, you might feel my pain.
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-20-2005 21:26
And Minsk, what are you talking about?

You wrote a compiler. You should be asking for this more than me!

(sigh)

I guess you're just not doing complex object trees yet with includes.

Try doing some and then come back to me.
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
Douglas Callahan
Fresh Prince Of SL
Join date: 2 Jul 2004
Posts: 349
08-21-2005 02:57
pardon me if this has already been mentioned, because I'm one of those annoying posters who only reads the first few posts, but..

there would be a pretty big issue of determining who the script is from if you can load by xml-rpc. llremoteloadscriptpin requires that the object a script is being loaded into be modifyable to the owner of the object loading the script. But how would we test for this if a script is coming from outside of SL? Put in some sort of PIN? I don't find that to be very secure if its the only precaution. Plus, as afformentioned in another post, getting the key would be a bitch.
_____________________
Other than that, Mrs. Lincoln, how was the play?
Minsk Oud
Registered User
Join date: 12 Jul 2005
Posts: 85
08-21-2005 03:46
Locally I use a Makefile to drive cpp and the parts of the compiler that are working. What comes out the other end is a folder with one file per script to be uploaded. I am working on the code end, so have avoided complex objects. However, once the scripts are uploaded to a single object, it is pretty trivial to distribute them automatically (pin script, sensor scan, notecard to map scripts to objects). I did almost the same thing while playing with a fabber, before I got side-tracked by the compiler, so it is not rocket science.

(Is this I sign I should have stuck with the fabber? Had not even thought of using it as an updater, though that would certainly work.)

What I would like most to see would be enough client SDK to be able to invoke "pretend I created a script on this object with these contents" and similar from command line or local IPC. A full client SDK, client-side scripting and an extensible user interface can all wait... (darn it LL, make some money and hire more people)
_____________________
Ignorance is fleeting, but stupidity is forever. Ego, similar.
Malachi Petunia
Gentle Miscreant
Join date: 21 Sep 2003
Posts: 3,414
08-21-2005 04:14
From: blaze Spinnaker
In order to do real development, it seems to me that this is rapidly becoming necessary.

Having to copy around scripts to different prims and what not is very tedious, and remote script load doesn't cut it.

What do you think? Would you like to be able to do XML upload of scripts?
Do you do real development? Posting inane polls to the forums doesn't count as "development".

And why XML? Wouldn't YML or SML be better? What about NTP? or NNTP? RMA? SMB? IRT? LBJ? CIA?
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-21-2005 13:56
From: someone

However, once the scripts are uploaded to a single object, it is pretty trivial to distribute them automatically (pin script, sensor scan, notecard to map scripts to objects).


There are two reasons why this does not work:

1. Includes, let's say you had a largish project which involved dozens of scripts and then you changed a core include library which was used by every single script (because you found a bug). You have to upload every single script seperately. Notecard will not cut it, becase they're all different scripts.

2. pin script does not effect inventory items. Am I the only one using llRezObject around here? And rez / load is not a viable way to do things.
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-21-2005 14:07
From: someone

What I would like most to see would be enough client SDK to be able to invoke "pretend I created a script on this object with these contents" and similar from command line or local IPC.


Pretend? Eh? Can't you do this yourself?
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
Minsk Oud
Registered User
Join date: 12 Jul 2005
Posts: 85
08-21-2005 15:19
From: blaze Spinnaker
Pretend? Eh? Can't you do this yourself?


You want to upload scripts to: a) large numbers of objects in world; and b) large numbers of objects in inventories. That solves A neatly enough that you can add an Upload button to emacs without having to emulate input events on the SL client. B is a bigger problem because we can not even do it manually at the moment, though all that is needed to automate it is an llGiveMyself routine.

From: someone
1. Includes, let's say you had a largish project which involved dozens of scripts and then you changed a core include library which was used by every single script (because you found a bug). You have to upload every single script seperately. Notecard will not cut it, becase they're all different scripts.


Refactor to allow script reuse. But the real solution is to automate the script uploads (see A). The notepad only says which script to put in which object...

From: someone
2. pin script does not effect inventory items. Am I the only one using llRezObject around here? And rez / load is not a viable way to do things.


B is the easy solution. As we have very limited interaction with unrezzed objects, this is probably a system limitation. Dealt with this mess earlier while playing with fabbers -- the user had to manually drop objects to be nested into the fabber's inventory after they were built.
_____________________
Ignorance is fleeting, but stupidity is forever. Ego, similar.
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
08-21-2005 15:25
I would very much like FTP access to my inventory, i'd be able to sort and catagorize my inventory.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river.
- Cyril Connolly

Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence.
- James Nachtwey
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
08-21-2005 15:31
I just want shell access to my account and land already. Problem solved. :D
_____________________
---
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-21-2005 15:41
From: Minsk Oud
You want to upload scripts to: a) large numbers of objects in world; and


No .. I never said that. That's an easy problem to solve. That's not really a problem. I want to upload scripts to complex objects, which don't simply have copies of the same script.

From: someone

b) large numbers of objects in inventories.


Inventories, yes, large numbers.. not really. llRezObject handles numbers. It's the complexity and diversity of the objects that is the problem.

From: someone

That solves A neatly enough that you can add an Upload button to emacs without having to emulate input events on the SL client.


Not a button, I need a make file. One button click on every file that needs recompiling is not how developers work. I need to run my make file and it 'recompiles' (puts in the includes) into my scripts and uploads them all.


From: someone

B is a bigger problem because we can not even do it manually at the moment, though all that is needed to automate it is an llGiveMyself routine.


Yeah, B is a nightmare.

From: someone

Refactor to allow script reuse.


You mean switch everything into Say channels? For obvious reasons, this is not doable. MsesageLinked, which isn't much better, isn't a solution as well because my objects are rarely linked.

From: someone

But the real solution is to automate the script uploads (see A). The notepad only says which script to put in which object...


Yes, but if you have scripts a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, having to re upload all 26 scripts because one core include file changed is crazy making.

From: someone

B is the easy solution.


I thought B was the problem?


From: someone

As we have very limited interaction with unrezzed objects, this is probably a system limitation. Dealt with this mess earlier while playing with fabbers -- the user had to manually drop objects to be nested into the fabber's inventory after they were built.


Yes, it could be a system limitation. Not doing the details, we can only guess, though.
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-21-2005 15:44
From: Jeffrey Gomez
I just want shell access to my account and land already. Problem solved. :D


How is this easier and/or likely?
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
Minsk Oud
Registered User
Join date: 12 Jul 2005
Posts: 85
08-21-2005 18:07
From: blaze Spinnaker
You mean switch everything into Say channels? For obvious reasons, this is not doable. MsesageLinked, which isn't much better, isn't a solution as well because my objects are rarely linked.


Multiple scripts within a single object, actually. Architect your code properly and the intercommunication between components is not usually a limiting factor. One of the major reasons my compiler is taking so long is that I want interfaces on inter-script communication, to allow no-modify modules to be marketed and integrated easily.
_____________________
Ignorance is fleeting, but stupidity is forever. Ego, similar.
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-21-2005 19:32
From: someone

Multiple scripts within a single object, actually. Architect your code properly and the intercommunication between components is not usually a limiting factor. One of the major reasons my compiler is taking so long is that I want interfaces on inter-script communication, to allow no-modify modules to be marketed and integrated easily.


I'm sorry but you can't create interesting applications that are all just one object.

An intercommunication is a limiting factor. llSay takes 100x times that a method call will take. Probably even longer once mono gets implemented.
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
Minsk Oud
Registered User
Join date: 12 Jul 2005
Posts: 85
08-21-2005 19:53
That is quite potentially the most moronic interpretation possible based on what I said. Think about it carefully, and you will probably figure out how to refactor some includes to multiple scripts sharing one prim.

Did a little poking at scripting the SL user interface. The lack of keyboard commands in some places means a little bit of creativity, but the mouse automation just about works (am doing it properly by looking for the text labels). Assuming I feel productive after work tomorrow, it should be doing basic uploading soon.
_____________________
Ignorance is fleeting, but stupidity is forever. Ego, similar.
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-21-2005 20:15
From: Minsk Oud
That is quite potentially the most moronic interpretation possible based on what I said. Think about it carefully, and you will probably figure out how to refactor some includes to multiple scripts sharing one prim.


Again, think about complex object trees.

The fact is, applications which do not use llRezObject are uninteresting to me. My applications require multiple objects.. Yes, I guess you could refactor in the simple case. But the simple case is not interesting if you're trying to get things done.

But the fact remains: you can refactor until the cows come home, you still can't reload scripts in inventories.

And besides, even if you could, inter prim communications is not that much faster than llSay. Not to mention that link messages are not 100% reliable, how insanely awkward it is to develop everything in a callback style, plus a complete lack of absolutely any compile checking.

The solution, in that case, is far worse than the problem! (not that it is a problem, because, like I said - I need multiple objects).

Oh right, and you're losing shared data space as well. I mean really, you are kidding right?
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-21-2005 20:27
The whole point of having shared library routines is to make your life easier. Splitting them out and requiring IPC in order to access them would be like shooting yourself in the foot to help you walk across the road.
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
Eloise Pasteur
Curious Individual
Join date: 14 Jul 2004
Posts: 1,952
08-22-2005 00:56
Having just spent a while updating a 3 item object I can agree with Blaze that it's a nuisance, and if he does it regularly then he's hit a painful area in SL.

But I'm afraid insisting that SL completely rework their architecture because of one person's preferences for what they make things is something I receive with less sympathy.

Proper error handling, arrays, better object-object communication, bigger memory limits for scripts would all be higher on my lists and although they may not affect every scripter I suspect they're much more common limitations than yours Blaze. Sorry.
blaze Spinnaker
1/2 Serious
Join date: 12 Aug 2004
Posts: 5,898
08-22-2005 20:37
From: Eloise Pasteur
Having just spent a while updating a 3 item object I can agree with Blaze that it's a nuisance, and if he does it regularly then he's hit a painful area in SL.

But I'm afraid insisting that SL completely rework their architecture because of one person's preferences for what they make things is something I receive with less sympathy.

Proper error handling, arrays, better object-object communication, bigger memory limits for scripts would all be higher on my lists and although they may not affect every scripter I suspect they're much more common limitations than yours Blaze. Sorry.


The problem with this that you're missing, is that all of these can generally be solved without having to get LL involved. I have libraries which are simple and easy to use workaround for all of these problems.

Unfortunately, using my libraries is very tedious because I can't "link" them in properly and be able to develop them on an ongoing basis.

It astounds met that I'm the only one concered about this. Linking and libraries is hugely fundamental to any large project in software engineering. Everyone should be chomping at the bit for this.

My only conclusion is that people simply aren't working on complex object tree projects. Let me just say - this is SL's lost more than it is ours.
_____________________
Taken from The last paragraph on pg. 16 of Cory Ondrejka's paper "Changing Realities: User Creation, Communication, and Innovation in Digital Worlds :

"User-created content takes the idea of leveraging player opinions a step further by allowing them to effectively prototype new ideas and features. Developers can then measure which new concepts most improve the products and incorporate them into the game in future patches."
Logan Bauer
Inept Adept
Join date: 13 Jun 2004
Posts: 2,237
08-24-2005 08:24
From: Malachi Petunia

And why XML? Wouldn't YML or SML be better? What about NTP? or NNTP? RMA? SMB? IRT? LBJ? CIA?


That reminds me, I've got FIC's in my BVD's. :cool: