CORS API

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

CORS API

Simon Biggs
Hi,

I was hoping to help set up a CORS API for transfer of crosswire resources to web apps. My hope was to be able to make something simple, probably written in Python with the Tornado module and using the sword SWIG bindings. 

My thought is the API would simply send whole resources, such as a whole Bible translation. Any webapp interfacing with the API would likely download the resources once per user and store them within the browser's IndexedDB.

I'm not sure what is the best format to use for the transmitted content. The easiest option might be using something like the plain text OSIS format. From my limited exposure to this project that would mean minimal work on the server end required to make as many resources as possible able to be sent this way. What to then do with the OSIS file and how to store it in the IndexedDB would be up to the client side programmer.

What are your thoughts? Does anyone have any recommendations for improvement? If I made something like this, is this something that crosswire would be willing to have running on their server for resource distribution?

Thank you,
Simon

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: CORS API

Troy A. Griffitts

Hi Simon,

Thanks for your ideas.  I'm interested to hear a little about the use cases you are targeting.  Are you trying to server offline browser users in general, or do you have a specific case you have in mind?

The background here is that we typically don't encourage transferring data from our format to another.  Though we've accumulated a large library of works and that, in itself, is useful to other engineer, we don't curate any of these individual modules and simply have done the work to track down each authoritative source, get permission for distribution and use as openly as can be obtained from their curator, and then to convert their primary data source into our module format.  This doesn't pass along any rights for use to other projects outside those of CrossWire, and also doesn't provide a primary source for any of this material-- which an lead to multiplied data conversion issues when moving on to a second jump from the primary source.

We have a C++ engine which runs on most any device you might wish to support (including web server)-- with many bindings for most popular scripting languages, and also a native Java engine as well.  Both of these can be used to discover, install, and access our entire library, if you'd like to start a new application in our community or contribute to an existing solution.

Two web applications which use our engines and might interest you are:

http://crosswire.org/study

http://stepbible.org

Hope this helps.  Welcome!  Looking forward to sharing in service together,

Troy



On 12/26/2016 03:32 AM, Simon Biggs wrote:
Hi,

I was hoping to help set up a CORS API for transfer of crosswire resources to web apps. My hope was to be able to make something simple, probably written in Python with the Tornado module and using the sword SWIG bindings. 

My thought is the API would simply send whole resources, such as a whole Bible translation. Any webapp interfacing with the API would likely download the resources once per user and store them within the browser's IndexedDB.

I'm not sure what is the best format to use for the transmitted content. The easiest option might be using something like the plain text OSIS format. From my limited exposure to this project that would mean minimal work on the server end required to make as many resources as possible able to be sent this way. What to then do with the OSIS file and how to store it in the IndexedDB would be up to the client side programmer.

What are your thoughts? Does anyone have any recommendations for improvement? If I made something like this, is this something that crosswire would be willing to have running on their server for resource distribution?

Thank you,
Simon


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: CORS API

Simon Biggs
In reply to this post by Simon Biggs
I want to be able to make a progressive web app using Angular. I want it to be able to download the resources from crosswire and store them with IndexedDB. The advantage of this is nothing needs to be installed on the users machine, everything I write immediately works on every operating system. And because of IndexedDB all Bible resources can be accessed offline. Because of the progressive webapp infrastructure the website itself will also be able to be accessed offline.

If I was to place a server between the webapp and the user the user would not be able to download the resources offline. That would surmount to redistribution by myself. However, if the client webapp directly downloads from crosswire via a REST API then that fulfills your distribution agreements.


On Wed, 28 Dec 2016, 6:06 AM <[hidden email]> wrote:
Send sword-devel mailing list submissions to
        [hidden email]

To subscribe or unsubscribe via the World Wide Web, visit
        http://www.crosswire.org/mailman/listinfo/sword-devel
or, via email, send a message with subject or body 'help' to
        [hidden email]

You can reach the person managing the list at
        [hidden email]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of sword-devel digest..."
Today's Topics:

   1. Re: CORS API (Troy A. Griffitts)



---------- Forwarded message ----------
From: "Troy A. Griffitts" <[hidden email]>
To: "SWORD Developers' Collaboration Forum" <[hidden email]>
Cc: 
Date: Tue, 27 Dec 2016 11:47:43 -0700
Subject: Re: [sword-devel] CORS API

Hi Simon,

Thanks for your ideas.  I'm interested to hear a little about the use cases you are targeting.  Are you trying to server offline browser users in general, or do you have a specific case you have in mind?

The background here is that we typically don't encourage transferring data from our format to another.  Though we've accumulated a large library of works and that, in itself, is useful to other engineer, we don't curate any of these individual modules and simply have done the work to track down each authoritative source, get permission for distribution and use as openly as can be obtained from their curator, and then to convert their primary data source into our module format.  This doesn't pass along any rights for use to other projects outside those of CrossWire, and also doesn't provide a primary source for any of this material-- which an lead to multiplied data conversion issues when moving on to a second jump from the primary source.

We have a C++ engine which runs on most any device you might wish to support (including web server)-- with many bindings for most popular scripting languages, and also a native Java engine as well.  Both of these can be used to discover, install, and access our entire library, if you'd like to start a new application in our community or contribute to an existing solution.

Two web applications which use our engines and might interest you are:

http://crosswire.org/study

http://stepbible.org

Hope this helps.  Welcome!  Looking forward to sharing in service together,

Troy



On 12/26/2016 03:32 AM, Simon Biggs wrote:
Hi,

I was hoping to help set up a CORS API for transfer of crosswire resources to web apps. My hope was to be able to make something simple, probably written in Python with the Tornado module and using the sword SWIG bindings. 

My thought is the API would simply send whole resources, such as a whole Bible translation. Any webapp interfacing with the API would likely download the resources once per user and store them within the browser's IndexedDB.

I'm not sure what is the best format to use for the transmitted content. The easiest option might be using something like the plain text OSIS format. From my limited exposure to this project that would mean minimal work on the server end required to make as many resources as possible able to be sent this way. What to then do with the OSIS file and how to store it in the IndexedDB would be up to the client side programmer.

What are your thoughts? Does anyone have any recommendations for improvement? If I made something like this, is this something that crosswire would be willing to have running on their server for resource distribution?

Thank you,
Simon


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

_______________________________________________
sword-devel mailing list
[hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: CORS API

Stephan
Hi,

this is an old thread, but I like to second that. It would be really
nice if CORS could be enabled for everything under
http://www.crosswire.org/ftpmirror/pub/sword/

Currently this is one of the main obstacles to write a modern
offline-first (progressive) webapp.

Are there any specific reasons why CORS can't be enabled for the module
repositories?

Thanks
Stephan

Am 28.12.2016 um 15:59 schrieb Simon Biggs:

> I want to be able to make a progressive web app using Angular. I want it
> to be able to download the resources from crosswire and store them with
> IndexedDB. The advantage of this is nothing needs to be installed on the
> users machine, everything I write immediately works on every operating
> system. And because of IndexedDB all Bible resources can be accessed
> offline. Because of the progressive webapp infrastructure the website
> itself will also be able to be accessed offline.
>
> If I was to place a server between the webapp and the user the user
> would not be able to download the resources offline. That would surmount
> to redistribution by myself. However, if the client webapp directly
> downloads from crosswire via a REST API then that fulfills your
> distribution agreements.
>
>     ---------- Forwarded message ----------
>     From: "Troy A. Griffitts" <[hidden email]
>     <mailto:[hidden email]>>
>     To: "SWORD Developers' Collaboration Forum"
>     <[hidden email] <mailto:[hidden email]>>
>     Cc:
>     Date: Tue, 27 Dec 2016 11:47:43 -0700
>     Subject: Re: [sword-devel] CORS API
>
>     Hi Simon,
>
>     Thanks for your ideas.  I'm interested to hear a little about the
>     use cases you are targeting.  Are you trying to server offline
>     browser users in general, or do you have a specific case you have in
>     mind?
>
>     The background here is that we typically don't encourage
>     transferring data from our format to another.  Though we've
>     accumulated a large library of works and that, in itself, is useful
>     to other engineer, we don't curate any of these individual modules
>     and simply have done the work to track down each authoritative
>     source, get permission for distribution and use as openly as can be
>     obtained from their curator, and then to convert their primary data
>     source into our module format.  This doesn't pass along any rights
>     for use to other projects outside those of CrossWire, and also
>     doesn't provide a primary source for any of this material-- which an
>     lead to multiplied data conversion issues when moving on to a second
>     jump from the primary source.
>
>     We have a C++ engine which runs on most any device you might wish to
>     support (including web server)-- with many bindings for most popular
>     scripting languages, and also a native Java engine as well.  Both of
>     these can be used to discover, install, and access our entire
>     library, if you'd like to start a new application in our community
>     or contribute to an existing solution.
>
>     Two web applications which use our engines and might interest you are:
>
>     http://crosswire.org/study
>
>     http://stepbible.org
>
>     Hope this helps.  Welcome!  Looking forward to sharing in service
>     together,
>
>     Troy

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: CORS API

Troy A. Griffitts
Hi Stephan,
We have another new sword-devel subscriber interested in web development and I wanted to ping your email so he could read through the quoted thread. I want to support your ideas but am skeptical right now about supporting format shifting to indexeddb. Mostly because I'm not sure what can of worms that might open up for dealing with publishers. Also technically, I've always had trouble storing anything sizeable into an indexeddb store.

Troy

On June 25, 2017 9:33:04 AM GMT+02:00, Stephan <[hidden email]> wrote:
Hi,

this is an old thread, but I like to second that. It would be really
nice if CORS could be enabled for everything under
http://www.crosswire.org/ftpmirror/pub/sword/

Currently this is one of the main obstacles to write a modern
offline-first (progressive) webapp.

Are there any specific reasons why CORS can't be enabled for the module
repositories?

Thanks
Stephan

Am 28.12.2016 um 15:59 schrieb Simon Biggs:
I want to be able to make a progressive web app using Angular. I want it
to be able to download the resources from crosswire and store them with
IndexedDB. The advantage of this is nothing needs to be installed on the
users machine, everything I write immediately works on every operating
system. And because of IndexedDB all Bible resources can be accessed
offline. Because of the progressive webapp infrastructure the website
itself will also be able to be accessed offline.

If I was to place a server between the webapp and the user the user
would not be able to download the resources offline. That would surmount
to redistribution by myself. However, if the client webapp directly
downloads from crosswire via a REST API then that fulfills your
distribution agreements.

---------- Forwarded message ----------
From: "Troy A. Griffitts" <[hidden email]
<mailto:[hidden email]>>
To: "SWORD Developers' Collaboration Forum"
<[hidden email] <mailto:[hidden email]>>
Cc:
Date: Tue, 27 Dec 2016 11:47:43 -0700
Subject: Re: [sword-devel] CORS API

Hi Simon,

Thanks for your ideas. I'm interested to hear a little about the
use cases you are targeting. Are you trying to server offline
browser users in general, or do you have a specific case you have in
mind?

The background here is that we typically don't encourage
transferring data from our format to another. Though we've
accumulated a large library of works and that, in itself, is useful
to other engineer, we don't curate any of these individual modules
and simply have done the work to track down each authoritative
source, get permission for distribution and use as openly as can be
obtained from their curator, and then to convert their primary data
source into our module format. This doesn't pass along any rights
for use to other projects outside those of CrossWire, and also
doesn't provide a primary source for any of this material-- which an
lead to multiplied data conversion issues when moving on to a second
jump from the primary source.

We have a C++ engine which runs on most any device you might wish to
support (including web server)-- with many bindings for most popular
scripting languages, and also a native Java engine as well. Both of
these can be used to discover, install, and access our entire
library, if you'd like to start a new application in our community
or contribute to an existing solution.

Two web applications which use our engines and might interest you are:

http://crosswire.org/study

http://stepbible.org

Hope this helps. Welcome! Looking forward to sharing in service
together,

Troy



sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: CORS API

Jajo

Hello,

Glad to be here, I'm new here and haven't gotten fully how the sword module works. Still trying to understand it. I'm mainly a backend developer - PHP, but still can help.

About the Indexeddb, what's the real scope of the app?


James


On 25/06/2017 21:20, Troy A. Griffitts wrote:
Hi Stephan,
We have another new sword-devel subscriber interested in web development and I wanted to ping your email so he could read through the quoted thread. I want to support your ideas but am skeptical right now about supporting format shifting to indexeddb. Mostly because I'm not sure what can of worms that might open up for dealing with publishers. Also technically, I've always had trouble storing anything sizeable into an indexeddb store.

Troy

On June 25, 2017 9:33:04 AM GMT+02:00, Stephan [hidden email] wrote:
Hi,

this is an old thread, but I like to second that. It would be really
nice if CORS could be enabled for everything under
http://www.crosswire.org/ftpmirror/pub/sword/

Currently this is one of the main obstacles to write a modern
offline-first (progressive) webapp.

Are there any specific reasons why CORS can't be enabled for the module
repositories?

Thanks
Stephan

Am 28.12.2016 um 15:59 schrieb Simon Biggs:
I want to be able to make a progressive web app using Angular. I want it to be able to download the resources from crosswire and store them with IndexedDB. The advantage of this is nothing needs to be installed on the users machine, everything I write immediately works on every operating system. And because of IndexedDB all Bible resources can be accessed offline. Because of the progressive webapp infrastructure the website itself will also be able to be accessed offline. If I was to place a server between the webapp and the user the user would not be able to download the resources offline. That would surmount to redistribution by myself. However, if the client webapp directly downloads from crosswire via a REST API then that fulfills your distribution agreements. ---------- Forwarded message ---------- From: "Troy A. Griffitts" <[hidden email] [hidden email]> To: "SWORD Developers' Collaboration Forum" <[hidden email] [hidden email]> Cc: Date: Tue, 27 Dec 2016 11:47:43 -0700 Subject: Re: [sword-devel] CORS API Hi Simon, Thanks for your ideas. I'm interested to hear a little about the use cases you are targeting. Are you trying to server offline browser users in general, or do you have a specific case you have in mind? The background here is that we typically don't encourage transferring data from our format to another. Though we've accumulated a large library of works and that, in itself, is useful to other engineer, we don't curate any of these individual modules and simply have done the work to track down each authoritative source, get permission for distribution and use as openly as can be obtained from their curator, and then to convert their primary data source into our module format. This doesn't pass along any rights for use to other projects outside those of CrossWire, and also doesn't provide a primary source for any of this material-- which an lead to multiplied data conversion issues when moving on to a second jump from the primary source. We have a C++ engine which runs on most any device you might wish to support (including web server)-- with many bindings for most popular scripting languages, and also a native Java engine as well. Both of these can be used to discover, install, and access our entire library, if you'd like to start a new application in our community or contribute to an existing solution. Two web applications which use our engines and might interest you are: http://crosswire.org/study http://stepbible.org Hope this helps. Welcome! Looking forward to sharing in service together, Troy

sword-devel mailing list: [hidden email] http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

--
John James
Co-Founder – 4ward NG
Skype: donjajo1 • Twitter: @donjajo

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: CORS API

Stephan
In reply to this post by Troy A. Griffitts
Hi Troy,

I'm not talking about indexedDB. CORS enabled is necessary to be able to
download the module files from a client computer. This has nothing to do
with indexedDB. My plans are not to store the whole module in a database
but directly access the binary files like the sword library does. That's
why I've started sword.js (https://github.com/zefanja/swordjs) some
years ago. There is still a lot of work do be done, but it works for
most of the modules (although it would be very helpful, if there is some
kind of documentation about the internal way how the data is stored in
modules, so I don't have to rely on trial and error...)

So, I have no plans to store any of the modules content in an indexedDB.
I just want to be able download the modules directly from a clients
browser without having to rely on a (CORS enabled) server in the middle
that handles the request.

Stephan

Am 26.06.2017 um 03:20 schrieb Troy A. Griffitts:

> Hi Stephan,
> We have another new sword-devel subscriber interested in web development
> and I wanted to ping your email so he could read through the quoted
> thread. I want to support your ideas but am skeptical right now about
> supporting format shifting to indexeddb. Mostly because I'm not sure
> what can of worms that might open up for dealing with publishers. Also
> technically, I've always had trouble storing anything sizeable into an
> indexeddb store.
>
> Troy
>
> On June 25, 2017 9:33:04 AM GMT+02:00, Stephan <[hidden email]> wrote:
>
>     Hi,
>
>     this is an old thread, but I like to second that. It would be really
>     nice if CORS could be enabled for everything under
>     http://www.crosswire.org/ftpmirror/pub/sword/
>
>     Currently this is one of the main obstacles to write a modern
>     offline-first (progressive) webapp.
>
>     Are there any specific reasons why CORS can't be enabled for the module
>     repositories?
>
>     Thanks
>     Stephan
>
>     Am 28.12.2016 um 15:59 schrieb Simon Biggs:
>
>         I want to be able to make a progressive web app using Angular. I
>         want it
>         to be able to download the resources from crosswire and store
>         them with
>         IndexedDB. The advantage of this is nothing needs to be
>         installed on the
>         users machine, everything I write immediately works on every
>         operating
>         system. And because of IndexedDB all Bible resources can be accessed
>         offline. Because of the progressive webapp infrastructure the
>         website
>         itself will also be able to be accessed offline.
>
>         If I was to place a server between the webapp and the user the user
>         would not be able to download the resources offline. That would
>         surmount
>         to redistribution by myself. However, if the client webapp directly
>         downloads from crosswire via a REST API then that fulfills your
>         distribution agreements.
>
>         ---------- Forwarded message ----------
>         From: "Troy A. Griffitts" <[hidden email]
>         <mailto:[hidden email]>>
>         To: "SWORD Developers' Collaboration Forum"
>         <[hidden email] <mailto:[hidden email]>>
>         Cc:
>         Date: Tue, 27 Dec 2016 11:47:43 -0700
>         Subject: Re: [sword-devel] CORS API
>
>         Hi Simon,
>
>         Thanks for your ideas. I'm interested to hear a little about the
>         use cases you are targeting. Are you trying to server offline
>         browser users in general, or do you have a specific case you have in
>         mind?
>
>         The background here is that we typically don't encourage
>         transferring data from our format to another. Though we've
>         accumulated a large library of works and that, in itself, is useful
>         to other engineer, we don't curate any of these individual modules
>         and simply have done the work to track down each authoritative
>         source, get permission for distribution and use as openly as can be
>         obtained from their curator, and then to convert their primary data
>         source into our module format. This doesn't pass along any rights
>         for use to other projects outside those of CrossWire, and also
>         doesn't provide a primary source for any of this material-- which an
>         lead to multiplied data conversion issues when moving on to a second
>         jump from the primary source.
>
>         We have a C++ engine which runs on most any device you might wish to
>         support (including web server)-- with many bindings for most popular
>         scripting languages, and also a native Java engine as well. Both of
>         these can be used to discover, install, and access our entire
>         library, if you'd like to start a new application in our community
>         or contribute to an existing solution.
>
>         Two web applications which use our engines and might interest
>         you are:
>
>         http://crosswire.org/study
>
>         http://stepbible.org
>
>         Hope this helps. Welcome! Looking forward to sharing in service
>         together,
>
>         Troy
>
>
>     ------------------------------------------------------------------------
>
>     sword-devel mailing list: [hidden email]
>     http://www.crosswire.org/mailman/listinfo/sword-devel
>     Instructions to unsubscribe/change your settings at above page
>
>
> --
> Sent from my Android device with K-9 Mail. Please excuse my brevity.

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Loading...