OXT Community Sample Stacks, Extension & Resource Management
Posted: Thu May 09, 2024 6:29 pm
It's been a while since I did anything with this:
https://openxtalk-org.github.io/OXT_Res ... epot_Repo/
Which is what should (hopefully) show up in the OXT DPE IDE's Extension Manager "Repo" tab, which I replace the never-functional "Store" tab with in OXT DPE.
This sort of site is easy to publish as a"GitHub Pages" site and super easy to update it from the GitDesktop.app.
The problem with it is that it's a Browser Widget that displays this 'Webstack" has to download the almost 30mb OXT Emscripten Engine .js if it's not already in the Browser Widget's cache before the Webstack runs. The stack then pulls in its data from a tab-delimited text list and pulls in some image files that are in the same GtHub Page site. It would be faster if "Webstack" could use the copy of the Emscripten Engine that's already comes with the IDE, BUT it can't do that due to the 'Cross-Origin' security limitations, the Engine JS has to originate from the same source site that the page it runs inside of is on.
It's slow to load that 30MB JS file, even on a fast internet connection, and requires Browser Widget to display the resource lister webstack, so I want to change it to NOT use Browser Widget, instead use a purely stack based lister. Maybe similar to Richard Gaskin's LiveNet stack. This has the advantages of not needing any browser widget or any sort of webpage HTML/JS stuff at all and therefore the 'Cross-Origin' issues go away.
Giuthub pages I think is great for this idea because GitHub will translate GitHub Markdown into HTML before it serve them as web pages. You can also use regular HTML with GitHub Pages, but markdown .md is easier to format simple text lists as sort of directory listings, and its a basic enough sub-set of HTML formatting that we can easily use it like: set the HTMLText of Fld "ReposList".
The Tab delimited list of available Resources is pulled into the repo browser stack like so:
put URL "https://openxtalk-org.github.io/OXT_Res ... o/list.tsv' into tTabbedList
Look at in browser: https://openxtalk-org.github.io/OXT_Res ... o/list.tsv
That list contains 'columns' such as ResourceType (one of Widget,Library,Stack,URL,etc.), Title, Author, Description, etc. and Identifier (which is used to form a URL for an associated image and the download filename). It's a tabbed delimited text list because that's super easy to use and display with a datagrid. I use a stack with datagrid for editing the list (and this stack also did Base64 encoding for the Widget's binaries but encoding should not be needed).
There was another list I planned called Repos.tsv with the idea being that this list could point to other people's repos on their own server(s) with their own resource List.tsv
In the Browser stack you could navigate from the Main Repo list to these other repo's list and display those resources. It would be like a network of shared stacks using a common list format to share OXT related resources. Maybe a bit like Gopher:// protocol For you kids out there Gopher was pre-1st Web Browser, card catalog kind of content browsing (https://en.wikipedia.org/wiki/Gopher_(protocol) )
I was thinking this could be a multi-use stack. Remove the Extension Repo ('Store") tab from Extension Manager, and building it into this multi-use Resource Browser/Manager. It could also be used to list any new releases for various OXT distributions as an updater tool, and could replace the 'Sample Stacks" stack too, maybe it could even list recent topics on the forums.
This list might have list items with a bread crumb trail like these:
OXT Main> Releases> OXTLite103MacOS.dmg
OXT Main> Community_Widgets> Universal_Slider_Widget
OXT Main> Community_Libraries> HIDAPI
OXT Main> Community_Stacks> ListFieldExample.oxtstack
OXT Main> Community_Repos> Pauls_Experimental_Stacks> CursorDemo.oxtstack
OXT Main> Tom's_Stuff> BugDemoX.mp4
And unlike some other methods, this browsing stack would be small and fast to load the list, it could cache the resource and preview image once downloaded, ask the user to overwrite if file on disk already exists with older an older version number.
I'm just wondering if anyone else will actually participate in this idea, the formulation of the listing system, and then host some of their own content with List.tsv 'repo' on a server somewhere?
https://openxtalk-org.github.io/OXT_Res ... epot_Repo/
Which is what should (hopefully) show up in the OXT DPE IDE's Extension Manager "Repo" tab, which I replace the never-functional "Store" tab with in OXT DPE.
This sort of site is easy to publish as a"GitHub Pages" site and super easy to update it from the GitDesktop.app.
The problem with it is that it's a Browser Widget that displays this 'Webstack" has to download the almost 30mb OXT Emscripten Engine .js if it's not already in the Browser Widget's cache before the Webstack runs. The stack then pulls in its data from a tab-delimited text list and pulls in some image files that are in the same GtHub Page site. It would be faster if "Webstack" could use the copy of the Emscripten Engine that's already comes with the IDE, BUT it can't do that due to the 'Cross-Origin' security limitations, the Engine JS has to originate from the same source site that the page it runs inside of is on.
It's slow to load that 30MB JS file, even on a fast internet connection, and requires Browser Widget to display the resource lister webstack, so I want to change it to NOT use Browser Widget, instead use a purely stack based lister. Maybe similar to Richard Gaskin's LiveNet stack. This has the advantages of not needing any browser widget or any sort of webpage HTML/JS stuff at all and therefore the 'Cross-Origin' issues go away.
Giuthub pages I think is great for this idea because GitHub will translate GitHub Markdown into HTML before it serve them as web pages. You can also use regular HTML with GitHub Pages, but markdown .md is easier to format simple text lists as sort of directory listings, and its a basic enough sub-set of HTML formatting that we can easily use it like: set the HTMLText of Fld "ReposList".
The Tab delimited list of available Resources is pulled into the repo browser stack like so:
put URL "https://openxtalk-org.github.io/OXT_Res ... o/list.tsv' into tTabbedList
Look at in browser: https://openxtalk-org.github.io/OXT_Res ... o/list.tsv
That list contains 'columns' such as ResourceType (one of Widget,Library,Stack,URL,etc.), Title, Author, Description, etc. and Identifier (which is used to form a URL for an associated image and the download filename). It's a tabbed delimited text list because that's super easy to use and display with a datagrid. I use a stack with datagrid for editing the list (and this stack also did Base64 encoding for the Widget's binaries but encoding should not be needed).
There was another list I planned called Repos.tsv with the idea being that this list could point to other people's repos on their own server(s) with their own resource List.tsv
In the Browser stack you could navigate from the Main Repo list to these other repo's list and display those resources. It would be like a network of shared stacks using a common list format to share OXT related resources. Maybe a bit like Gopher:// protocol For you kids out there Gopher was pre-1st Web Browser, card catalog kind of content browsing (https://en.wikipedia.org/wiki/Gopher_(protocol) )
I was thinking this could be a multi-use stack. Remove the Extension Repo ('Store") tab from Extension Manager, and building it into this multi-use Resource Browser/Manager. It could also be used to list any new releases for various OXT distributions as an updater tool, and could replace the 'Sample Stacks" stack too, maybe it could even list recent topics on the forums.
This list might have list items with a bread crumb trail like these:
OXT Main> Releases> OXTLite103MacOS.dmg
OXT Main> Community_Widgets> Universal_Slider_Widget
OXT Main> Community_Libraries> HIDAPI
OXT Main> Community_Stacks> ListFieldExample.oxtstack
OXT Main> Community_Repos> Pauls_Experimental_Stacks> CursorDemo.oxtstack
OXT Main> Tom's_Stuff> BugDemoX.mp4
And unlike some other methods, this browsing stack would be small and fast to load the list, it could cache the resource and preview image once downloaded, ask the user to overwrite if file on disk already exists with older an older version number.
I'm just wondering if anyone else will actually participate in this idea, the formulation of the listing system, and then host some of their own content with List.tsv 'repo' on a server somewhere?