PDA

View Full Version : The Intellectual Property Disadvantaged



Minty23185Fresh
April 24th, 2022, 18:30
A strange thing happened to me on the way to sharing my, for free, extensions...

Another community developer gave me very specific code that I was asked to add to one of my extensions. The really odd thing was, the asked for modification involved a control specifically designed by me, not a ruleset window control.

I share my extensions freely with the community, but very deliberately and specifically retain copyright.

When I mentioned this to the other party and asked why they wanted me to modify my copyrighted code, I was met with a simple, well it would just be better for everyone.

Okay. A bit evasive... So I started exploring...

I ran into an interesting roadblock. Community developers that post content through the Forge are able to ask that their content be distributed through the "vault". This way the content cannot be perused by those obtaining it. Encrypted distribution as it were. This would make sense for the "for sale" community developers, to protect their intellectual property.

What Smiteworks has unintentionally done, by providing "the vault" is, limited the free exchange of ideas, and a community minded mentality. There are those who wish to create silos and lock their ideas up and those who provide unencumbered access to their community content.

NOW BEFORE THE FLAMES START FLYING...
FOR SALE DEVELOPERS - I AM NOT IMPLYING THAT THIS IS A FOR SALE/FOR FREE ISSUE.

This is a lock box versus non lock box issue.

I have seen "for free" developers that I respect greatly and have learned much from, start using the vault. This really saddens me. As Fantasy Grounds' users increase in numbers, there will be those who want to try their hand at writing an extension. Unfortunately the vault impairs their ability and slows their progress to do so.

I wonder, did Smiteworks goof, when making the decision to provide a vault? And just how stupid am I if I don't get on board and build my silos?

(Given the fact that my copywritten code can be used at will and I have no way of determining if that is true or not, I'd say, "pretty dang stupid".)

Zarestia
April 24th, 2022, 20:44
You can still get control names with /debug on if they're visible.
Most folks I know which use the vault for free stuff also have all their code on GitHub or Gitlab.

Personally, I never use the vault for my extensions and have all my code on GitHub, mainly because that is easier for me :)

The less code available for devs the more possible extensions conflicts. I don't really see the Forge here as a problem but more people not willing to work with others. I personally haven't met such people here, everyone I worked with was very friendly and helpful.

SilentRuin
April 24th, 2022, 21:32
A strange thing happened to me on the way to sharing my, for free, extensions...

Another community developer gave me very specific code that I was asked to add to one of my extensions. The really odd thing was, the asked for modification involved a control specifically designed by me, not a ruleset window control.

I share my extensions freely with the community, but very deliberately and specifically retain copyright.

When I mentioned this to the other party and asked why they wanted me to modify my copyrighted code, I was met with a simple, well it would just be better for everyone.

Okay. A bit evasive... So I started exploring...

I ran into an interesting roadblock. Community developers that post content through the Forge are able to ask that their content be distributed through the "vault". This way the content cannot be perused by those obtaining it. Encrypted distribution as it were. This would make sense for the "for sale" community developers, to protect their intellectual property.

What Smiteworks has unintentionally done, by providing "the vault" is, limited the free exchange of ideas, and a community minded mentality. There are those who wish to create silos and lock their ideas up and those who provide unencumbered access to their community content.

NOW BEFORE THE FLAMES START FLYING...
FOR SALE DEVELOPERS - I AM NOT IMPLYING THAT THIS IS A FOR SALE/FOR FREE ISSUE.

This is a lock box versus non lock box issue.

I have seen "for free" developers that I respect greatly and have learned much from, start using the vault. This really saddens me. As Fantasy Grounds' users increase in numbers, there will be those who want to try their hand at writing an extension. Unfortunately the vault impairs their ability and slows their progress to do so.

I wonder, did Smiteworks goof, when making the decision to provide a vault? And just how stupid am I if I don't get on board and build my silos?

(Given the fact that my copywritten code can be used at will and I have no way of determining if that is true or not, I'd say, "pretty dang stupid".)

My stuff is never in the vault. I have paid for stuff, and free stuff. But for sure, I'm never going to claim that people or Smiteworks should not allow people to keep their code 'private'. Honestly, I don't get it, as I've never seen anything here or with extensions in general that is not easily done if you think about it for a few minutes. My policy is if something annoys me in Fantasy Grounds, just write up an extension to resolve it if possible. Then you can have the games run as you wish them to run. Whether you share that code, hide it, sell it, or give it away for free? That's dealer's choice and I don't sweat what other people choose to do.

Vault is an option for those who want it - and is a very viable solution for people who want that for Smiteworks to provide. Some may not provide their extensions otherwise, opens up the field for those... ick... users.

Plus, extensions are based on Smitworks code - can't use them without them. So not really a "sole copyright" in the usual sense a unique self sustained product is. It's built on other copyrights (of the Smiteworks variety). Plus...

EXTENSIONS = RISK

They can be busted by FGU or just about anyone else depending on the amount of effort put into the code to "play well with others" or just not care what plays with what.

Gist being - I've seen nothing in any extension out there that, if a non coding user - you would care if it was in vault or not - or if a coder - could not figure out on your own with minimal effort and some trial and error.

Hence, vault is a feel good for some coders and a "who cares" for users who will never look at the code anyway.

And smiteworks is friendly to both coders and users. Though they are more concerned with users for some inexplicable reason, which I will never understand ( I mean users - bleh ) ;)

damned
April 25th, 2022, 06:33
I suspect that Minty is referring to this request:

https://www.fantasygrounds.com/forums/showthread.php?48160-Local-Dice-Tower-Extension-(LDTE)&p=647728&viewfull=1#post647728

Where I posted:


Hi Minty - could you please see if this code breaks your extension?

filename: LDT_record_char.xml
code:
Code:
function onInit()
--[[ Debug.console("LDT_record_char.xml | charsheet | onInit() | ruleset=", User.getRulesetName()); ]]
LDT_DiceTowerManager.registerControl(self);
if super and super.onInit then super.onInit(); end
end
note the super stuff....


This arose from someone using an extension of mine (that is vaulted and paid) that conflicts with the particular extension of yours that another user requested compatibility between. The code is 100% generic code (if super and super.onInit then super.onInit(); end, the rest of the code in that snip is already there) that was created by Moon Wizard to enable better extension compatibility. It doesnt affect me in the slightest whether you do it or dont do it. I generally dont use other peoples extension, and Im guessing you probably dont do much of that either. It affects someone or somefew who wish to use both extensions. It also provides some degree of compatibility with any other extension that runs code in the onInit() of record_char.xml (there are many extensions that edit that record).

As to whether code should be free or not free, locked or not locked. There is no right answer.
I have made 8 rulesets on FG that are 100% free. I have literally spent considerably more than one year of full time work on making stuff for FG for free.
Recently I have decided that some of the things I do I will put in the Vault and some I have put a $$ tag on them.
I have made many hours of tutorial videos on FG Coding.
I have many extensions that are not vaulted.

Minty23185Fresh
April 25th, 2022, 13:36
Ouch. At this point, anything I say will look as though I'm backpedaling.

I'd purposely left names out so that this didn't seem like a personal attack.

I truly meant it as an attack on the "vault".

Here is where I am:
damed asked me to modify my code.
Given the code that was mentioned, I wondered about copyright.
I asked very specific questions, and got a very evasive answer.
I knew about the inter-extension conflict.
When I went to get a copy of the other extension, damned's extension, I learned it was a for sale extension.
I don't want the extension at this time.
As a retiree, buying extensions, regardless of cost, that I don't want, is not prudent.
And even if I did buy it, it might be in the vault, money doubly wasted.

That situation spawned this thread. True, as damned mentions, precipitated by our interaction.

The vault gave me no where to go. I can't look at damned's code. It is a one sided affair. Instead of working together, as we had in the past when my Local Dice Tower extension and his Hero Points extensions collided, we're placed at odds, where damned holds all the cards, and I'm not even at the table.

So what has this and the vault done for me?

Probably poisoned a relationship with damned, something I truly regret.
Probably irrecoverably damaged the small amount of "street cred" that I did have.
Despise the vault even more.
I've become even more paranoid as all of us old curmudgeons are and locked my extensions in the vault.
And I come away wondering how the heck any extension collisions will be resolved since I've joined the silo builders guild.


Well, F....

mattekure
April 25th, 2022, 14:19
My initial thoughts on the Vault were similar to Minty's. I was not a fan as it made providing support and debugging conflicts more difficult. That said, with so many extensions going to the vault, I find it doesnt really matter anymore. I assume I will not have access to the code. Since I have always valued support and compatibility, my policy has been to provide any extension author who approaches me about a compatibility issue a copy of my code. Many of the other extension devs I've encountered have indicated they are happy to share as well. It just takes a little more communication between authors, as nearly everyone I've met in this dev community have been super helpful and willing to work together to resolve issues.

celestian
April 25th, 2022, 15:04
My initial thoughts on the Vault were similar to Minty's. I was not a fan as it made providing support and debugging conflicts more difficult. That said, with so many extensions going to the vault, I find it doesnt really matter anymore.

I think the default is vault, or it was. I know several of mine are and I didnt intentionally set it to that... and I'm probably not going to change them because it's support nightmare. Most of my stuff has repos anyway.

SilentRuin
April 25th, 2022, 15:35
Here is something everyone must accept or stay far far away from Extensions.

EXTENSIONS = RISK

The vault is the least of these risks. The coding for these things is just not rocket science and should not be treated as such. Its building simple things with the tools FGU allows us to use - and the BIG RISK - is others are using those same tools to do different things.

Always calling the original code before you do whatever your going to do is a safe way to play in this environment. Though this is NOT always possible. The way things are written in the rulesets and extensions (everyone went their own way and threw out any base standards) there is no real guarantee you can play nice with others.

But it has NOTHING to do with the vault and how people choose to share their code or not. As I stated - I intentionally let my code be looked at and if it helps someone do something cool for themselves - more power to them. You are based on other copyrights and your extensions are not stand alone. Nor are they some sort of "holy grail" of coding or some unduplicatable thing with a zillion different ways of accomplishing the same things. Probably even in better ways. At least that is how I consider my extensions. Like butterflies - they will live as long as the winds are calm and the environment friendly.

The second someone gets in there with some ruleset change or extension override that is not able to be done in a friendly (to other extensions manner) or is just done by someone who doesn't give a rats *** what they tear up in the code - is irrelevant. Its a RISKY environment.

And taking it personally, or caring what the other guy does, is simply not in your control. Reaching out to an author to resolve something is your best bet. They may be able to help - they may not be able to help. My personal policy is if its a generic change that is not specific (break something out to a new function so it can be more easily overridden or calling the original code - if possible - not always is) and not any undue burden on rewriting the code - then I usually comply.

But expecting my stuff to "work" with everything out there? Pfft. I tell people up front its a risk to run extensions - any extensions. And if they can handle the risk - then use them. If they can't?

For user or author?

Stay far far away from them. They will survive as long as they are maintained and only in the environment the author of it is willing to run with. Any other expectation - is a false dream.

ddavison
April 25th, 2022, 16:51
If something is in the vault and a subscriber of yours wants your code to work alongside another vaulted item in the Forge, then you might just start with an email to the other author. I could definitely see some authors being willing to share the code with a few conditions (i.e. don't reproduce it in full or with just subtle variations). I suspect some authors would not use the FG Forge at all if we didn't offer an option to vault their files.

If another author recommends a code change that helps your free code integrate better with other free and non-free extensions, then that sounds like a good thing to me.

Minty23185Fresh
April 25th, 2022, 16:59
My feathers are getting a bit ruffled here.

I'm getting schooled from a few corners on subjects I've been dealing with for some time. I realize your intentions are well meaning, but I am aware of the issues, I'm not quite hopelessly ignorant.

I myself have attempted to provide guidance on how to possibly mitigate extension conflicts. Those attempts were met mostly with deaf ears, mostly. I'd invite those of you who'd like to take up the mantle of leadership to write some instruction "articles" or "blogs" to impart some of your knowledge. I'm not as smart as some and can always learn more.

I also lobbied for a section of the Wiki where instructional, layman, articles could be archived and not lost to "Temporal Obscurity" in the din of the vast number of other Forum posts.

Here are a couple my early instructional attempts (note the original posting dates):
Mitigation (https://www.fantasygrounds.com/forums/showthread.php?39930-How-to-Avoid-or-Mitigate-Extension-Conflicts-(or-Collisions)),
Super-Self (https://www.fantasygrounds.com/forums/showthread.php?42689-Working-With-and-Around-Self-Super-Code-Layering-A-Best-Practice-(-)),
Blog Series: Learning How to Write an Extension (https://www.fantasygrounds.com/forums/entry.php?129-A-Neophyte-Tackles-the-FG-Extension-What-is-Extensibility-Why-is-it-Important),
Blog Series: Extending the Extension (https://www.fantasygrounds.com/forums/entry.php?186-Let%92s-Use-the-Combat-Tracker-Effect-Visibility-Options-Extension)

[EDIT] forgot this one: Who’s Conflicting (https://www.fantasygrounds.com/forums/showthread.php?34099-Extension-interaction-Attn-ext-users-and-ext-developers-(soliciting-comments))

damned
April 25th, 2022, 17:08
Ouch. At this point, anything I say will look as though I'm backpedaling.

I'd purposely left names out so that this didn't seem like a personal attack.
.

We're all good Minty dont stress.

ddavison
April 25th, 2022, 17:36
My feathers are getting a bit ruffled here.


That seems to be the case, but I genuinely can't see why. Your initial post made it seem like you were upset that someone else might be getting upset with you or that someone might think less of you (i.e. losing street cred). Knowing the people mentioned, I would be very surprised if either of those things happened. The linked thread only says, "Hi Minty - could you please see if this code breaks your extension?" I don't perceive any of the negative things you listed from any of that interaction.

People suggest that I make changes to stuff pretty regularly on the website, with business decisions, or wherever. I very rarely take any of that personal. Sometimes those suggestions are things I already know or have decided not to do for a specific reason, and sometimes a suggestion is just something I didn't think about at the time. I'm generally okay as long as people don't post stuff like, "Hey ddavison, your stuff is garbage and you should have done XXX instead of YYY. Why don't you just hire someone who knows how to do XXX?"

Minty23185Fresh
April 25th, 2022, 17:50
Thank you for your insights ddavison.

Things are getting ironed out behind the screen.

(“Pay no attention to that man behind the curtain.”)

SilentRuin
April 25th, 2022, 18:43
My feathers are getting a bit ruffled here.

I'm getting schooled from a few corners on subjects I've been dealing with for some time. I realize your intentions are well meaning, but I am aware of the issues, I'm not quite hopelessly ignorant.

I myself have attempted to provide guidance on how to possibly mitigate extension conflicts. Those attempts were met mostly with deaf ears, mostly. I'd invite those of you who'd like to take up the mantle of leadership to write some instruction "articles" or "blogs" to impart some of your knowledge. I'm not as smart as some and can always learn more.

I also lobbied for a section of the Wiki where instructional, layman, articles could be archived and not lost to "Temporal Obscurity" in the din of the vast number of other Forum posts.

Here are a couple my early instructional attempts (note the original posting dates):
Mitigation (https://www.fantasygrounds.com/forums/showthread.php?39930-How-to-Avoid-or-Mitigate-Extension-Conflicts-(or-Collisions)),
Super-Self (https://www.fantasygrounds.com/forums/showthread.php?42689-Working-With-and-Around-Self-Super-Code-Layering-A-Best-Practice-(-)),
Blog Series: Learning How to Write an Extension (https://www.fantasygrounds.com/forums/entry.php?129-A-Neophyte-Tackles-the-FG-Extension-What-is-Extensibility-Why-is-it-Important),
Blog Series: Extending the Extension (https://www.fantasygrounds.com/forums/entry.php?186-Let%92s-Use-the-Combat-Tracker-Effect-Visibility-Options-Extension)

[EDIT] forgot this one: Who’s Conflicting (https://www.fantasygrounds.com/forums/showthread.php?34099-Extension-interaction-Attn-ext-users-and-ext-developers-(soliciting-comments))

Brach9's explanation of super and self I found informative. (https://www.fantasygrounds.com/forums/showthread.php?66564-Advantages-Extension-(FGU-5E)&p=634898&viewfull=1#post634898)

Stuff discussed in this thread were informative (you also participated in it) (https://www.fantasygrounds.com/forums/showthread.php?65935-Recorded-for-Posterity-The-secret-tales-of-data_library-lua&p=577641&viewfull=1#post577641)

This is also some knowledge I wish I didn't have to learn the hard way. (https://www.fantasygrounds.com/forums/showthread.php?67890-General-warning-for-CTRL-ALT-or-SHIFT-hot-keys&highlight=)

MostTornBrain
April 25th, 2022, 23:47
So what has this and the vault done for me?

...
I've become even more paranoid as all of us old curmudgeons are and locked my extensions in the vault.
And I come away wondering how the heck any extension collisions will be resolved since I've joined the silo builders guild.



As a "free" extension author, I'm confused by the above conclusion you came to in that list. Why did you decide it's best to move your free extensions to the vault? Is it solely to prevent potential abuse of copyright, like someone outright copying your extension's implementation and then selling it on the Forge? If that were to happen, even if their code is in the vault, I would imagine you could lodge a complaint with Smiteworks and they could easily determine if the code was indeed a copy.

As someone fairly new to the Fantasy Grounds community, one the most positive aspects of the community that impressed me was how so many people were genuinely helpful and eager to share solutions. While the Wiki has a lot of great information on the FGU APIs, the way rulesets function is mostly learned by reading existing code and looking at existing extensions to better understand the flow of things. If Smiteworks had put all the rulesets Lua code in the vault, and all extensions were as well and there were just snippets of code to learn from in Forum posts, I would likely have given up on FGU months ago and just stuck with my Roll20 macros.

There have also been instances where an update to a ruleset breaks an extension I was using, and since it wasn't in the vault, I was able to track down the cause, fix it locally so I could continue to use the extension, and send a message to the developer about the potential fix, hopefully saving them a bit of investigation time. I'm sure others have done the same in the past. If the extension were in the vault, the only choice I'd have is to disable the extension and hope the author has the time to fix it.

And then there's the whole issue with abandoned extensions. Any in the vault that don't also have some public repository available, one is basically out of options once some rule change comes along that break them.

For the sake of the health of the extension developer community, I hope there isn't a large migration of free extensions into the vault.

Cheers,
Brian

ColinBuckler
April 26th, 2022, 09:04
As a user who pops the hood on extensions from time to time to see (but none in the forge) and a software developer in the real world, there is a need for both - extension in the vault and and out of the vault. I also believe its a choice of the developer for a variety of reasons if entities are either in our our of the vault.

Not sure of the process of posting items to the Forge - but I would say the default should be - not in the vault for any submissions. Ticking this box a second box should popup stating that by ticking this you are confirming the extension will be encrypted and that nobody would be able to see the contents and sharing in the community is good, others can help support your extension and help solve compatibility issues...yada, yada. Are you sure and have a second tick box to confirm.

This would encourage user to publish extensions for free but not limit those who wish to sell items.

The biggest issue I have is having an extension in the vault where the developer (for a variety of mostly good personal reasons) is no longer available to maintain the extension. The extension in this case effectively becomes abandonware as nobody is able to pick this extension up and maintain it moving forward.

ColinBuckler
April 26th, 2022, 09:32
Oh - I thought I would mention that virtually all of the extensions makers are very, very helpful - listen and are both patient and responsible to suggestions.

jharp
April 26th, 2022, 16:23
All my extensions are vaulted. However, I take responsibility to solve conflicts because they are vaulted. I have shared vaulted code with other developers offline too. However, the vault is only a mild hurdle in reality.

Jason