[sword-devel] Greek/Hebrew Reader screenshots

Bob Eaton bob_eaton at sall.com
Tue Jun 8 07:42:30 EDT 2021


Hi Jeff,

 

I just recently got the sword-1.9.0 sources built using Visual Studio 2019 (i.e. v142 dependencies for the C++ parts and x86 build). 

 

The binaries and their usage are in the (open source) ‘OneStory Edtor’ project <https://github.com/bobeaton/OneStoryEditor> . Make sure you grab the NewWixInstaller branch.

 

The DLLs you need are in the .\DepDLLs folder and the ones you want are:

*	CSSword.dll/pdb: this is the C# reference that you want to add to your C# projects References
*	libsword.dll/pdb: this is the C++ core component that CSSword accesses via DllImport statements
*	liblzma.dll, libbz2.dll: dependent zip libraries used by libsword.dll
*	icudt68.dll, icuin68.dll, icuuc68.dll: dependent ICU libraries used by libsword.dll

 

The displayer for Bible translations is in the .\StoryEditor\NetBibleViewer.cs and .\StoryEditor\NetBibleFootnoteTooltip.cs, etc., files (i.e. so you can see how the CSSword objects are used).

 

You’ll also want to check out the .\StoryEditor\ViewSwordOptionsForm.cs, etc., file for how to use the “InstallManager”, which is able to access all configured servers of SWORD resources – a brilliant addition, I should add and saved me tons of work. (sorry, the C# file is filled with 3 or so different, earlier implementation attempts of mine conditionally compiled out that’s mostly noise).

 

If you’re using wix for an installer, the snippet for the Sword related stuff is in the .\Installer\OseMergeModule\OseMergeModule.wxs file, search for:

 

        <!--The following 5 components are needed for SWORD support-->

 

And you’ll also need to include these merge modules (see .\Installer\Setup OneStoryEditor\MergeModules.wxs):

 

      <Merge Id="ICU_40" Language="1033" SourceFile="..\..\Installer\ExternalMergeModules\ICU_40.msm" DiskId="1"/>

…

      <Merge Id="CRT" Language="1033" SourceFile="..\ExternalMergeModules\Microsoft_VC142_CRT_x86.msm" DiskId="1"/>

 

Which are separate merge module for the ICU 68 DLLs (or add them individually as in OseMergeModule.wxs), and CRT dependencies. I’m not 100% certain the latter is required for libsword.dll, but it does have a dependency on MSVCP140.dll and VCRUNTIME140.dll, though I build it with VS2019 using v142 platform toolset and 10.0 latest Windows SDK libraries).

 



 

HTHs,

Bob

 

P.S. my version of CSSword has a fix for the problem of the 1.9.0 sources not displaying non-roman scripts well in the data returned by the install manager. I think the fix is two-part, one in libsword.dll and one in CSSword.dll. How do I communicate the fixes to the folks responsible for the source code?

 

 

 

 

From: sword-devel <sword-devel-bounces at crosswire.org> On Behalf Of Jeff Becker
Sent: Saturday, June 5, 2021 4:24 AM
To: 'SWORD Developers' Collaboration Forum' <sword-devel at crosswire.org>
Subject: Re: [sword-devel] Greek/Hebrew Reader screenshots

 

Tobias,

 

Thanks for the reply.  I’m still getting the lay-of-the-land in what has been done in the SWORD Project so pardon me if I sound like a bit of a newb.

 

As for what I’m trying to do, the long and the short of it is this:

I’m looking for from SWORD is content, including:

*	Bible translations, 
*	Greek and Hebrew Texts, 
*	Strong’s numbers and content, 
*	Bible dictionaries, 
*	section headers,
*	parallel references,
*	etc.

which can be delivered (preferably) via IIS / .Net / COM / C#, etc. to a reader. The current version is HTML 5, JavaScript and CSS tested primarily in Firefox and delivered via IIS from a C# application. The content is ‘borrowed’ from BibleHub’s Interlinear pages and even though I’m the only user I feel like I’m not respecting their licensing. 

 

So, the easiest way for me to move my work forward is to find a way to access SWORD content in C#.  

 

How do I do that?

 

I was assuming that the Win32 interface could be used in a C# application to access Bible translations and other materials which could then be delivered to Web browsers via IIS on the Windows Server platform. That usually requires implementing either a COM or .Net compatible interface in a DLL.  I hope I’m not over-explaining but I know that most in this group uses Linux based systems and I’ve also seen mention of Borland development tools on Windows.

 

What technology are you considering for the frontend side?

 

I’ve spent most of my programming time for the last few decades in Visual Studio and do most of my work in C#.  It’s a well-rounded language and simplifies a lot of the usual peculiarities of C programming.  My professional focus is on business database applications with Web delivery, either in Internet, Intranet or Extranet environments.

 

Any specific JS or CSS libraries/frameworks?

 

The simple answer to your question is: vanilla Javascript and pure CSS in HTML5.  Honestly, I’ve been programming for decades and after watching and participating in the comings and goings of many frameworks and libraries I’ve become something of a purist.  I even try to avoid JQuery unless a customer is already committed to it.  My apps are generally clean and fast because of it.

 

Are you planning to use or develop reusable web components?

 

I can. My hope would be a set of DLLs with .Net interface access.  I’m open to other environments and have worked (less extensively) in LAMP and Linux Shell Scripting (as well as a bunch of outdated and/or obscure languages and platforms). But my preference is still Visual Studio and ASP.Net. 

 

I’ve looked at other databases and content storage formats but I’m very impressed with the SWORD Project. I’ve been on the Crosswire mailing list since 2008.  

 

Regardless of the environment everything that I do will be released as open-source under whatever licensing structure that you all prefer.  I’d like to see this translated to as many (human) languages as possible.  And along with that I intend to respect all licensing restrictions of content. While that may be limiting or complicating for development it is the only way.  Even if that  means modifying content delivery on a per-user basis that tracks content licenses the same way.

 

As for my ability to code, my first production code was on a Burroughs B6700 in FORTRAN 4.  It was then converted to run on a PDP/8e in IEBASIC.  It was in High School and we also had a cute little TRS-80 that the computer club purchased with money we made by selling candy in the lunchroom. The first Bible software that I wrote was a KJV reader and concordance written in Revelation software (a PICK licensee).  It was 1987 and I was in Bible college at the time. I downloaded the KJV book-by-book in plain text format from a local BBS.  I guess I was frustrated with spending long hours in the Bible College library and with the limitations of paper (and the shortcomings of  Strong’s work).  My concordance was actually more exhaustive than Strong’s, particularly in the Minor Prophets where his work tended to get a little hit-and-miss.  I wish I still had a copy of it but it was lost in a move years ago.  I actually attended the same Bible College as the guys who started BibleSoft.  I offered to consult on what they (well, at that time it was just Jim) were doing but things changed at the church and we went our separate ways. We crossed paths again a few years later but nothing came of it.

 

Thank you so much,

Jeff

 

From: sword-devel [mailto:sword-devel-bounces at crosswire.org] On Behalf Of Tobias Klein
Sent: Wednesday, June 02, 2021 11:24 PM
To: SWORD Developers' Collaboration Forum
Subject: Re: [sword-devel] Greek/Hebrew Reader screenshots

 

Hi Jeff,

 

When you say Win32 code are you referring to this? https://github.com/ezra-bible-app/sword-build-win32

That’s the SWORD dll (and its dependencies) that becomes part of Ezra Bible App.

To be exact you find the dlls in the release:

https://github.com/ezra-bible-app/sword-build-win32/releases/tag/v1.8.900-2020-11-04

 

As I tried to implement the dll in a Web application I found that I also had to compile the c++ code (libsword) in order to use the c# dll.

I don’t understand this statement.

Why did you have to compile C++ code?

My understanding is that you can include DLLs also via C# (and this works in other languages like Python, too) and use them directly without any additional C/C++ compilation necessary.

 

With that I’m also wondering if the appropriate dlls (from c++ source code) might be included in a later version of the Win32 code on Github.

I will keep releasing new builds of SWORD as I need them for Ezra Bible App.

I actually need to perform one soon, because I would like to utilize Troy’s latest changes regarding the extraction of section headers.

However, with trunk there are currently still CMake build issues on Windows (Did you have a chance to look into this, Greg?).

 

One alternative for your C# server side implementation could be to use node-sword-interface and serve the requests via node.js. I have been thinking about implementing a web-based backend for Ezra Bible App on this basis at some point.

 

What technology are you considering for the frontend side?

Any specific JS or CSS libraries/frameworks?

Are you planning to use or develop reusable web components?

 

Jeff, good luck with your efforts!

 

Best regards,

Tobias

 

Am 01.06.2021 um 14:03 schrieb Jeff Becker <jbecker at fiveviews.com <mailto:jbecker at fiveviews.com> >:

 

Tobias (et al),

 

I’ve downloaded the Win32 code and had a successful compile.  As I tried to implement the dll in a Web application I found that I also had to compile the c++ code (libsword) in order to use the c# dll.  Not a problem but as I was setting up my new computer with the rather cumbersome c++ environment it occurred to me that it might be easier to ask for help.

 

I’m wondering if it’s possible to get a compiled dll from another developer that will run (safely and securely) in my environment. 

 

Since I don’t have any other reasons to develop in c++ at this time I might be able to avoid the gyrations of getting everything downloaded and configured.  It seems that there might be others who would also be interested in c# development who would also be benefitted from it. With that I’m also wondering if the appropriate dlls (from c++ source code) might be included in a later version of the Win32 code on Github.

 

I’m just getting familiar with the code so I don’t know how much I’m really asking.  Is it a simple matter to get a copy of the dlls from someone else or do I have to compile myself in my own environment?

 

Thanks,

 

Jeff

 

From: sword-devel [ <mailto:sword-devel-bounces at crosswire.org> mailto:sword-devel-bounces at crosswire.org] On Behalf Of Jeff Becker
Sent: Monday, May 24, 2021 4:28 AM
To: 'SWORD Developers' Collaboration Forum'
Subject: Re: [sword-devel] Greek/Hebrew Reader screenshots

 

Tobias,

 

Thank you for the feedback. I agree that the parabible is as similar to what I’m trying to accomplish as anything I’ve found so far.  I will definitely contact the author.

 

Regarding the DLLs, since Win32 is reaching the end of its support I’d like to update to 64-bit technology including later versions of .Net framework. Doing so may provide significant improvements in ease of programming and performance.  If it’s all right with you I’ll try to start with the Win32 code that you have on GitHub and work from there.  I’d appreciate hearing your thoughts and goals for that code when it was created so I can keep with that as much as is practical.  However, I would like to keep an open mind.  Sometimes it might be more advantageous to start fresh in order to take full advantage of changing technologies.

 

I would also appreciate any guidance in keeping with SWORD protocols and practices so that any work that is done can be readily used by others.

 

I think I have what I need to get started.  After I’m familiar with the available code I’ll come back with any design / redesign questions for discussion.

 

Thanks again to all for the help,

 

Jeff

 

From: sword-devel [ <mailto:sword-devel-bounces at crosswire.org> mailto:sword-devel-bounces at crosswire.org] On Behalf Of Tobias Klein
Sent: Sunday, May 23, 2021 4:55 AM
To:  <mailto:sword-devel at crosswire.org> sword-devel at crosswire.org
Subject: Re: [sword-devel] Greek/Hebrew Reader screenshots

 

Hi Jeff,

I have recently discovered this:

 <https://github.com/parabible/parabible-client> https://github.com/parabible/parabible-client

 <https://parabible.com/> https://parabible.com/

Maybe you should contact the author ... seems similar to what you have been describing and showing ... also webserver / webclient based architecture.

Regarding a functioning SWORD build for Windows (DLLs built with latest MSVS compilers ...) - have a look here:

 <https://github.com/ezra-bible-app/sword-build-win32> https://github.com/ezra-bible-app/sword-build-win32

A general thought regarding web-based frontends ...
There are now web components since a few years - a standard that enables easier re-use of web-based components across applications.
Have a look here:

 <https://developer.mozilla.org/en-US/docs/Web/Web_Components> https://developer.mozilla.org/en-US/docs/Web/Web_Components

I have been starting to use web components in Ezra Bible App ... and if you also work on certain frontend components maybe there is a possibility for sharing things!

Best regards,
Tobias

On 5/23/21 3:19 AM, Jeff Becker wrote:

Thank you for the feedback (not included here).  

 

I think I’ve figured out what I’d like to do:

1.       Stay with Web delivery of this content

1.        <http://bible.fiveviews.net/Images/ScreenShots/Screenshot_2021-05-15-20-33-04.png> Screenshot_1        <http://bible.fiveviews.net/Images/ScreenShots/Screenshot_2021-05-15-20-18-43.png> Screenshot_2        <http://bible.fiveviews.net/Images/ScreenShots/Screenshot_2021-05-15-20-30-14.png> Screenshot 3       <http://bible.fiveviews.net/Images/ScreenShots/Screenshot_2021-05-15-20-53-40.png> Screenshot 4      (see details below)

2.       Implement the Crosswire / SWORD Project content (adhering to all applicable licensing)

1.       Including multilingual content and flexibility (English only seems short-sighted)

3.       Continue developing in  <http://asp.net/> ASP.Net / IIS / Visual Studio / CLR

1.       Even after considering all of the suggestions and reviewing available applications (partly because it’s my wheelhouse)

4.       Develop reusable code for the MS platform and make it available for download              

1.       I’d like to see a wrapper that parallels the existing Crosswire / SWORD Project code base so that developers can easily implement it in VS20xx 

2.       Possibly a dll that runs under MS Common Language Runtime (CLR) so that it’s readily available for C#, VB, C++, etc. developers (I’m not sure if just making source code available is enough)

5.       Find or develop a database of English (or any available language) words derived from Biblical Greek words

1.       Does anyone know anything about ‘English derivatives from the Greek New Testament’ by Charles Van der Pool?

 

So, if that’s acceptable, I could use some help getting started:

6.       Advice from others who have developed in Visual Studio (the latest code that I was able to find was for VS 2013)

7.       A document or Wiki that would get content available in Windows 10, Windows Server 2019, etc.

8.       Instructions on how to make this compliant with Crosswire / SWORD Project standards including licensing of content

 

Thanks again for any help you can provide.

 

Jeff Becker

 

From: sword-devel [ <mailto:sword-devel-bounces at crosswire.org> mailto:sword-devel-bounces at crosswire.org] On Behalf Of Jeff Becker
Sent: Saturday, May 15, 2021 9:09 PM
To: 'SWORD Developers' Collaboration Forum'
Subject: [sword-devel] Greek/Hebrew Reader screenshots

 

Here are some screenshots of the Greek/Hebrew Reader that I’ve been describing.

 

Some points of interest:

1.       ‘guid=’ in URL just indicates the user id used as a record key for preferences and bookmarks on the server;

2.       Navigation buttons shift to left for Hebrew to be out of the way as much as possible;

3.       Bookmark is stored when a verse reference number is clicked/touched;

4.       Shaded bookmark (paperclip) button: shaded at top means that server has outdated info, bottom means bookmarks need to be downloaded;

5.       Font enlarge and shrink buttons (per device basis);

6.       Arrow buttons: up/down to top/bottom; center button scrolls to current bookmark; left goes to previous chapter/book; right to next chapter/book;

7.       Banner at top displays relevant information and links (I’d like to make this customizable for readers of varying skill levels);

8.       Options panel displays when bookmark (paperclip) is clicked;

9.       ‘Select / Go To Bookmark’ displays select of stored bookmarks (per user based on guid, see additional screenshot);

10.   Books are marked as ‘Done’ when on the last chapter of the book and the ‘Next Chapter/Book’ button is selected;

11.   Reading plan is selected through select prompt;

12.   Red text on Upload / Download buttons shows that client or server has later information (also displayed in shading of paperclip nav button);

13.   ‘Move verse to top on Click’ scrolls bookmarked verse to top of window when verse number is clicked;

14.   ‘Store v1 on Next Chapter Click’ automatically updates current bookmark to next chapter/book when Next button is clicked;

15.   Current bookmark is displayed;

16.   Previous / Next are chapters in reading plan (not that ‘Next’ shows Matthew 1 after Mark 16 based on Daniel Wallace’s reading plan;

17.   Cookies are for debugging purposes;

18.   Text is currently just a cleaned up version of the BibleHub Interlinear page;

 

The BibleHub page content is the main problem that I’d like to change next and, as such, is the main reason for all of this communication.  I’d like to replace it with licensed content that is easier to control and display.

 

I hope that explains things better.

 

Jeff

 

_______________________________________________
sword-devel mailing list:  <mailto:sword-devel at crosswire.org> sword-devel at crosswire.org
 <http://crosswire.org/mailman/listinfo/sword-devel> http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

_______________________________________________
sword-devel mailing list:  <mailto:sword-devel at crosswire.org> sword-devel at crosswire.org
 <http://crosswire.org/mailman/listinfo/sword-devel> http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20210608/abf01ae3/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 68237 bytes
Desc: not available
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20210608/abf01ae3/attachment-0001.png>


More information about the sword-devel mailing list