LC and OneSignal

Richard Gaskin ambassador at fourthworld.com
Sat Sep 2 16:42:27 EDT 2017


Todd Fabacher wrote:

 > I think we can find a solution. *Richard*, this sounds like the
 > perfect open source community project. What do you think?? We
 > can host the stuff on GitHub, but create an interface within the
 > IDE with an online DB that can be queried. we could slap a simple
 > RestAPI on it and people could query it to get helpful code
 > snippets and usage examples and complete App examples.

Yes indeed.

A central index for all components, regardless of type or license, is 
essential for platform growth and for serious development.

For open source projects, IMO GitHub is an ideal location.  But it isn't 
the only such service, and there are good projects on many services, so 
probably best not to limit the index to those hosted on only one.

For proprietary projects the range of share locations may be even 
broader, since there's no requirement that the location provide 
collaboration tools supporting public contribution.

There may be many good reasons why a developer might prefer to share a 
resource through any number of other sites, or even their own.  As long 
as the resource is check-summed and the domain is ensured with a good 
SSL cert, I don't have a lot of opinions about where a shared resource 
physically resides.

Beyond basic file and domain integrity, it seems to me it doesn't matter 
so much where the file lives, as long as an index exists in one 
well-known location to be able to find it from.

An ideal index could allow good searching via a minimum of these fields:
- Resource name
- Category and perhaps subcategory of functionality
- Resource Type (external, widget, library, template, etc.)
- Author/Publisher/domain
- Date of first release
- Date of most recent release
- Minimum compatible LC version required
- License type (GPLv3, GPLv2, MIT, BSD, proprietary, etc.)
- Keywords in full text of title/name and description
- Vendor-supplied tags
- Crowd-sourced tags that any registered user of the system can add to

It needs to be API-driven, so we can build a UI for use in the IDE, 
write our own ad hoc tools for finding and updating components, and 
enjoy the SEM benefits of having the index also available in the web.

With that I could, for example, easily search for an image filter 
library made available under GPL-compatible license and instantly find 
Tom Bodine's excellent toolkit in one move.


Background
----------
Many of us saw a need for resource sharing, and the ease of delivering 
that right in the IDE, from the moment we saw the old MC Examples stack, 
before the turn of the century.

I found that download-n-go very inspiring, and eventually I made the 
time to deliver the first publicly-sharable index in the modest Stacks 
section of RevNet in Dec 2003 (since renamed as "LiveNet").

The following year RunRev Ltd. made RevOnline as a more complete 
solution for our community, to share not only stack files but also 
externals and code snippets.  (To support the goal of a single index and 
also relieve myself of potential security concerns, after RevOnline 
premiered I restricted and later removed the ability for public 
additions to RevNet.)

Later on RevOnline's upload went out of commission for a few years, and 
in response several community efforts sprung up, including a nice 
index-focused offering from Shao Sean.

None of the community-driven repositories or indexes ever really gained 
critical mass, because during that span of years there were periodic 
announcements from RunRev Ltd. (now renamed LiveCode Ltd.) that they 
were going to complete RevOnline to restore its upload capability, 
refine its listing (e.g., it isn't sortable), and expand its 
functionality to include more resource types (first externals and now 
widgets).

RevOnline's account management and upload features were eventually 
restored.  But during that time it also became renamed, rather 
variously, so that today few people can piece together that "RevOnline", 
"Sample Stacks", and "LiveCode Share" are all more or less the same 
thing (further muddied by that repo containing script snippets, yet a 
different facility named "Sample Scripts" is entirely separate from 
"RevOnline"/"Sample Stacks"/"LiveCode Share").

In addition to picking one name and sticking with it, as reported 
earlier in this thread apparently the file upload feature needs further 
refinement.  And at a minimum it should probably be enhanced to include 
indexed fields for license type and to support widgets.

Meanwhile, other tools have demonstrated the value of a central index 
with things like NPMJS for Node, PyPy for Python, CPAN for Perl, CRAN 
for R, the listings of modules, themes and plugins for Wordpress and 
Drupal, and others.

Many of those repositories are maintained by their respective communities.


Options Going Forward
---------------------
There's no question of the need or the value.  The only question seems 
to be:  should this be a community project, or one created and 
maintained by the company?

There are benefits both ways.

One thing I try to be sensitive to is that the C++ expertise needed for 
engine work is both essential and very rare in our community outside the 
company, and that nothing in this specific index project requires C++ 
expertise.

Indeed, I believe it's safe to say that the short supply of engine-level 
expertise seems a very good reason the company hasn't yet completed 
what's needed for a truly useful index of third-party resources.  The 
engine is a demanding bit of work; the v8.x and v9 builds have been very 
exciting for us, and a tremendous effort for them.

With that sensitivity to allowing the C++ experts to remain focused on 
C++ engine work where practical, I might be inclined to support your 
suggestion that this index may best come about as a community project.

That said, there may be security, packaging, and other considerations 
which might benefit from the insight of core dev team members.

The one thing I can say with confidence is that any community effort on 
this would need to have the full public blessing of the company to be 
successful.

Without that, it risks the same fate as earlier attempts, where 
community-managed projects die from underutilization as people wait for 
something from the mother ship.

Personally I don't have a strong opinion about whether such an index 
should be built and maintained by the company or the community.

It may be good to get guidance from Kevin and/or Mark on this first, and 
since they're both pretty active on this list perhaps we'll hear from 
them when the weekend's over.

-- 
  Richard Gaskin
  LiveCode Community Liaison
  richard at livecode.org





More information about the Use-livecode mailing list