RE: [sword-devel] Accusations...

2003-01-06 Thread Jorge Chacón

> Kekchi
> Xhosa -- apparently from OLB; like it says, further info unknown


Kek'chi is the language of a people group of Maya descent that is still
in use today in the highlands of Guatemala, Central America.  Being so,
the most probable translators would be Summer Institute of Linguistics
(I think that's its name in English?), as it would need someone versed
in a very particular language and the name of the Deity is translated as
"Dios," the same as in Spanish.

Hope that helps.  God bless,


Jorge

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.435 / Virus Database: 244 - Release Date: 12/30/2002
 




[sword-devel] Question for Optimization / speed experts

2003-01-06 Thread Joachim Ansorg
Hi!
Some questiosn for optimizations experts :)

I'm working on a piece of code in BibleTime which gives me headaches.
BibleTime supports displaying different lexicons side by side, it offers only 
the keys which are available in all of the chosen lexicons.

The function which creates the list of entries which  are available in all 
modules is ways too slow and too CPU consuming.
I implemented it the following way:

 1. Sort the modules by number of entries (from small to large)
 2. Use the modules with the fewest entries and go through all of it's 
entries:
 3. Is the entry in all other modules? Add the entry to a list of good 
entries it it is, otherwise continue with the next entry of the smallest list 
and compare it with all other chosen modules.

Assume the user selected BDB together with StrongsHebrew. Each of the modules 
has around 1 entries. So the outer loop would have 1 iterations, the 
inner loop would have another 1 iterations. So we get 
10.000*10.000=100.000.000 = one hunred million iterations. This is ways too 
slow and ways too much.
This needs on my 1.2GHz Atlon with 512 MB Ram more then five seconds. 

If there are three, four or even five modules side by side we get much more 
loops.

Are the other ways to do such a task? Since the entry lists are sorted by the 
alaphabet this would be a good point to start. But I don't know how to do it 
best.

I'd be really glad for help with this case!

Thank you!
Joachim
-- 
Joachim Ansorg
www.bibletime.info
www.ansorgs.de





Re: [sword-devel] Accusations...

2003-01-06 Thread Joachim Ansorg
> > GerElb1871 -- dunno

Came from OLB, user contributed.
As far as I know it's out of copyright and AFAIK the OLB guys did not enter 
the text. The Elb 1905 module is out of copyright now, too.
I'll try to find some more infos on the net.

Joachim
-- 
Joachim Ansorg
www.bibletime.info
www.ansorgs.de





Re: [sword-devel] Question for Optimization / speed experts

2003-01-06 Thread Glen Prideaux
Joachim Ansorg wrote:


Hi!
Some questiosn for optimizations experts :)

I'm working on a piece of code in BibleTime which gives me headaches.
BibleTime supports displaying different lexicons side by side, it offers only 
the keys which are available in all of the chosen lexicons.

The function which creates the list of entries which  are available in all 
modules is ways too slow and too CPU consuming.
I implemented it the following way:

1. Sort the modules by number of entries (from small to large)
2. Use the modules with the fewest entries and go through all of it's 
entries:
	 3. Is the entry in all other modules? Add the entry to a list of good 
entries it it is, otherwise continue with the next entry of the smallest list 
and compare it with all other chosen modules.

Assume the user selected BDB together with StrongsHebrew. Each of the modules 
has around 1 entries. So the outer loop would have 1 iterations, the 
inner loop would have another 1 iterations. So we get 
10.000*10.000=100.000.000 = one hunred million iterations. This is ways too 
slow and ways too much.
This needs on my 1.2GHz Atlon with 512 MB Ram more then five seconds. 

If there are three, four or even five modules side by side we get much more 
loops.

Are the other ways to do such a task? Since the entry lists are sorted by the 
alaphabet this would be a good point to start. But I don't know how to do it 
best.

I'd be really glad for help with this case!

Thank you!
Joachim
 

My thoughts:

initialise a marker to the first entry in each module
FOR each entry in module A
   flag the entry as (potentially) good
   FOR each other module
   WHILE the marked entry in module is BEFORE the marked entry in A
   move the marker forward an entry
   IF the marked entry is AFTER the marked entry in A
   flag the entry as bad
   EXIT inner loop
   IF the entry is not flagged as bad
   add entry to list of good entries
   move marker in module A forward an entry

This will iterate exactly once through each entry in each module. It 
depends on the modules being sorted, but I understand that's a given anyway.

Glen



[sword-devel]

2003-01-06 Thread Pham, Khoi








Happy New Year!

 

I would like to develop a general book that can be included
into the SWORD program similar to Josephus’ book.  I wonder if anyone has instruction how to do
it?

 

God Bless

 

Paul Khoi X Pham

Stone & Webster

281-368-3012

 








[sword-devel]

2003-01-06 Thread Pham, Khoi








Happy new Year!

 

I downloaded the latest Windows version of SWORD 1.5.5. and tried to compile with C++ Builder 6.  I got the Swordlib.lib compiled, but got an
error when compiling sword.cpp.  The
message is:

 

[C++ Fatal Error] Sword.cpp (143): F1013 Error Writing
Output file.

 

I checked the Help file it tells me that I may not have enough
space in my hard driver. 
However, I have more than 16GB on  my hard driver.

 

What can I do to compile this?

 

Please help!

 

Paul Khoi X Pham

Stone & Webster

281-368-3012

 








Re: [sword-devel] Question for Optimization / speed experts

2003-01-06 Thread David White
C++ has a standard algorithm called set_intersection - found in the header
. Given two sorted sequences, it will output the items that are
found in both sequences. This function is very efficient, and with use of
it, I think your problem should become trivial. Documentation for this
algorithm can be found at http://www.sgi.com/tech/stl/set_intersection.html

Of course, to use it, your sequences will need to have standards-conforming
iterators. If you need any help using the function, let me know.

-David.

- Original Message -
From: "Joachim Ansorg" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, January 07, 2003 12:46 AM
Subject: [sword-devel] Question for Optimization / speed experts


> Hi!
> Some questiosn for optimizations experts :)
>
> I'm working on a piece of code in BibleTime which gives me headaches.
> BibleTime supports displaying different lexicons side by side, it offers
only
> the keys which are available in all of the chosen lexicons.
>
> The function which creates the list of entries which  are available in all
> modules is ways too slow and too CPU consuming.
> I implemented it the following way:
>
>  1. Sort the modules by number of entries (from small to large)
>  2. Use the modules with the fewest entries and go through all of it's
> entries:
> 3. Is the entry in all other modules? Add the entry to a list of good
> entries it it is, otherwise continue with the next entry of the smallest
list
> and compare it with all other chosen modules.
>
> Assume the user selected BDB together with StrongsHebrew. Each of the
modules
> has around 1 entries. So the outer loop would have 1 iterations,
the
> inner loop would have another 1 iterations. So we get
> 10.000*10.000=100.000.000 = one hunred million iterations. This is ways
too
> slow and ways too much.
> This needs on my 1.2GHz Atlon with 512 MB Ram more then five seconds.
>
> If there are three, four or even five modules side by side we get much
more
> loops.
>
> Are the other ways to do such a task? Since the entry lists are sorted by
the
> alaphabet this would be a good point to start. But I don't know how to do
it
> best.
>
> I'd be really glad for help with this case!
>
> Thank you!
> Joachim
> --
> Joachim Ansorg
> www.bibletime.info
> www.ansorgs.de
>
>
>





Re: [sword-devel]

2003-01-06 Thread porton
> I downloaded the latest Windows version of SWORD 1.5.5. and tried to compile with 
>C++ Builder 6.  I got the Swordlib.lib compiled, but got an error when compiling 
>sword.cpp.  The message is:
>  
> [C++ Fatal Error] Sword.cpp (143): F1013 Error Writing Output file.

Maybe write-protected directory? (In NT, 2000 and XP these exist). Maybe unexisting 
output directory.

BTW, "disk drive", not "disk driver" which means are different thing.
-- 
Victor Porton ([EMAIL PROTECTED])




Re: [sword-devel] Question for Optimization / speed experts

2003-01-06 Thread Christian Renz
BibleTime supports displaying different lexicons side by side, it offers only 
the keys which are available in all of the chosen lexicons.

Some ideas for this:

- You don't have to build the whole list at once. Build e.g. a list of
 20 or 30 items, then calculate more as the user scrolls up/down. You
 might even calculate the list using an idle thread. 

- Personally, I would find a list of *all* keys more desirable (that
 is, list any key that is found in any of the chosen lexicons). I
 took a look at Bibleworks when visiting my brother (he is teaching
 OT) and noticed it has a feature where instead of having a window
 per dictionary, you have one window displaying the definitions in a
 list of selected dictionaries, like this:

   x Dictionaries ---*
   | Yaddayadda  |
   | ... |
   | |
   | BDB |
   | ... |
   | |
   | Websters|
   | ... |
   | |
   * *

 It is a nice feature I would like to see in sword as well.

- Your algorithm is O(m * n), which explains the runtime. The
 algorithm proposed by Glen looks good, especially as it runs in
 linear time (ie, looks at each entry exactly once). However, it can
 still be optimized: If an element is > the currently active item,
 you use that one to continue your search. Also, you can step the
 marker more often. I implemented the algorithm in perl (just for
 fun), but tried to not use perl-specific optimizations. I put some
 code into subroutines so the main algorithm reads better.

--- 8< --- 8< --- 
# Calculate intersection of sets. 20030106 [EMAIL PROTECTED]

use strict;
use warnings;

my @sets =
   ([ 0, 1, 2,   3,  7,   8, 9, 10,   11, 12, 13,   14, 15,],
[ 0, 3,  7,   8,10,   11, 13,   14,16, ],
[ 0, 1, 2,   3,5,7,   8,10,   11, 12, 13,   14,16, ],
[   2,   3, 4,6, 7,   8,10,   11, 12,   14,16, ],
[ 0, 1, 2,   3,  7,   8, 9, 10,   11, 13,   14, 15,]);

my $numSets = scalar @sets; # $numsets = 5;
my @intersection = ();
my $currentSet = 0;
my @marker = (0, 0, 0, 0, 0);
my $currentItem;

# helper functions 

sub stepMarker {
   $marker[$currentSet]++;
   if ($marker[$currentSet] >= scalar @{$sets[$currentSet]}) {
   # we are at the end of the current set
   # => abort, there cannot be any more common items
   last MAIN;
   }
}

sub nextSet {
   $currentSet++;
   $currentSet %= $numSets;
}

sub getCurrentItem {
   return $sets[$currentSet]->[$marker[$currentSet]];
}


# main intersection algorithm

my $activeItem = getCurrentItem;
my $isPresent = 1;
MAIN: while (1) {
   stepMarker();
   nextSet;

   while (($currentItem = getCurrentItem()) < $activeItem) {
   stepMarker();
   }

   if ($currentItem > $activeItem) {
   $activeItem = $currentItem;
   $isPresent = 1;
   } else {
   $isPresent++;

   if ($isPresent == $numSets) {
   # item has been found present in all sets
   push @intersection, $activeItem;
   stepMarker();
   $activeItem = getCurrentItem;
   $isPresent = 1;
   }
   }
}

print "Common items in the $numSets sets: @intersection\n";
--- 8< --- 8< --- 

 If you want to combine all items present in any list, you could use
 Mergesort. It's only O(n * log n) for two lists.

Greetings,
  Christian

--
[EMAIL PROTECTED] - http://www.web42.com/crenz/ - http://www.web42.com/

"Few are those who can see with their own eyes and hear with their own
hearts."  -- Albert Einstein


Re: [sword-devel]

2003-01-06 Thread Chris Little

> [C++ Fatal Error] Sword.cpp (143): F1013 Error Writing Output file.
>
> I checked the Help file it tells me that I may not have enough space in
> my hard driver.  However, I have more than 16GB on my hard driver.
>  
> What can I do to compile this?

I think you need to create an empty directory called obj in the BibleCS 
directory, where it will write object files.

--Chris





Re: [sword-devel]

2003-01-06 Thread Hugo van der Kooij
On Mon, 6 Jan 2003, Pham, Khoi wrote:

> Happy new Year!
>  
> I downloaded the latest Windows version of SWORD 1.5.5. and tried to compile with 
>C++ Builder 6.  I got the Swordlib.lib compiled, but got an error when compiling 
>sword.cpp.  The message is:
>  
> [C++ Fatal Error] Sword.cpp (143): F1013 Error Writing Output file.
>  
> I checked the Help file it tells me that I may not have enough space in my hard 
>driver.  However, I have more than 16GB on  my hard driver.
>  
> What can I do to compile this?

It could be that you have too much free space. At times I have seen 
applications under  various windows version go wild when there is plenty 
of disk space. The mst common was the 2GB barrier.

I think you have to put the question to a group that knows the compiler to 
see if this might in fact be the case.

Hugo.

-- 
 All email sent to me is bound to the rules described on my homepage.
[EMAIL PROTECTED]http://hvdkooij.xs4all.nl/
Don't meddle in the affairs of sysadmins,
for they are subtle and quick to anger.




RE: [Fwd: [sword-devel] FACTS]

2003-01-06 Thread Keith Ralston
> Both of these guys seem to think they get a copyright for being first to
> put these PD works into electronic form.

I'm not sure, but I believe this works like translations of pd works.  The
_translation_ is copyrightable.  Of course, you have to include the
copyright notice in your work.




Re: [sword-devel] Question for Optimization / speed experts

2003-01-06 Thread Joachim Ansorg
David,
thank you for you help!

It works great and is really fast! Because programmers are lazy using the STL 
is preferred :)

Glen, I think the STL function works almost the same way as you suggestion. 
Good work!
Christian, thank you for your suggestion. If it's still too slow for the users 
(although I don't think so) I'll use some of them.

It's great to get so much help in a very short time!
Joachim

> C++ has a standard algorithm called set_intersection - found in the header
> . Given two sorted sequences, it will output the items that are
> found in both sequences. This function is very efficient, and with use of
> it, I think your problem should become trivial. Documentation for this
> algorithm can be found at http://www.sgi.com/tech/stl/set_intersection.html
>
> Of course, to use it, your sequences will need to have standards-conforming
> iterators. If you need any help using the function, let me know.
>
> -David.
>
> - Original Message -
> From: "Joachim Ansorg" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Tuesday, January 07, 2003 12:46 AM
> Subject: [sword-devel] Question for Optimization / speed experts
>
> > Hi!
> > Some questiosn for optimizations experts :)
> >
> > I'm working on a piece of code in BibleTime which gives me headaches.
> > BibleTime supports displaying different lexicons side by side, it offers
>
> only
>
> > the keys which are available in all of the chosen lexicons.
> >
> > The function which creates the list of entries which  are available in
> > all modules is ways too slow and too CPU consuming.
> > I implemented it the following way:
> >
> >  1. Sort the modules by number of entries (from small to large)
> >  2. Use the modules with the fewest entries and go through all of it's
> > entries:
> > 3. Is the entry in all other modules? Add the entry to a list of good
> > entries it it is, otherwise continue with the next entry of the smallest
>
> list
>
> > and compare it with all other chosen modules.
> >
> > Assume the user selected BDB together with StrongsHebrew. Each of the
>
> modules
>
> > has around 1 entries. So the outer loop would have 1 iterations,
>
> the
>
> > inner loop would have another 1 iterations. So we get
> > 10.000*10.000=100.000.000 = one hunred million iterations. This is ways
>
> too
>
> > slow and ways too much.
> > This needs on my 1.2GHz Atlon with 512 MB Ram more then five seconds.
> >
> > If there are three, four or even five modules side by side we get much
>
> more
>
> > loops.
> >
> > Are the other ways to do such a task? Since the entry lists are sorted by
>
> the
>
> > alaphabet this would be a good point to start. But I don't know how to do
>
> it
>
> > best.
> >
> > I'd be really glad for help with this case!
> >
> > Thank you!
> > Joachim
> > --
> > Joachim Ansorg
> > www.bibletime.info
> > www.ansorgs.de

-- 
Joachim Ansorg
www.bibletime.info
www.ansorgs.de





RE: [Fwd: [sword-devel] FACTS]

2003-01-06 Thread Chris Little
On Mon, 6 Jan 2003, Keith Ralston wrote:

> > Both of these guys seem to think they get a copyright for being first to
> > put these PD works into electronic form.
> 
> I'm not sure, but I believe this works like translations of pd works.  The
> _translation_ is copyrightable.  Of course, you have to include the
> copyright notice in your work.

Copyright is granted for creative works (for the purpose of encouraging 
the production of additional creative works).

Translations are copyrighted because they are creative works, requiring 
lots of right-hemispheric cognitive work.

Electronic editions of PD works are still PD.  Changing the format like
this does not require creativity, just good OCR or untiring fingers.  
Adding markup is likewise not creative if it approximates that of the 
original.  Essentially the only way to make a PD work copyrightable by 
making an electronic edition is to make changes to it that are creative 
(i.e. to make a bad copy).  In that situation, only the additions are 
copyrighted and the underlying text remains PD (and may be retrieved by 
rolling back alterations).

This is similar to works in a collection.  If you collect a bunch of PD 
texts and put them in a collection (in print, on CD, or whatever) you do 
get a copyright for the collection--after all it took some creativity to 
decide which texts should be included and how to order them.  However, the 
texts themselves remain PD.

For more info from the source, I would recommend reading through the US 
Copyright Office circular 14, regarding derivative works, which is 
available online at http://www.copyright.gov/circs/circ14.pdf .

--Chris




Re: [Fwd: [sword-devel] FACTS]

2003-01-06 Thread Patrick Narkinsky
Thus spake "Keith Ralston"> :

>> Both of these guys seem to think they get a copyright for being first to
>> put these PD works into electronic form.
> 
> I'm not sure, but I believe this works like translations of pd works.  The
> _translation_ is copyrightable.  Of course, you have to include the
> copyright notice in your work.

I don't think this is the case. There has been a lot of controversy about
this, but generally speaking derived works are only considered copyrightable
if they involve significant artistic input by the creator. Sometimes, this
is taken to ridiculous lows: for example, sheet music has the type-setting
copyrighted!  

However, the information itself cannot be copyrighted - if I were to take a
copy of Chopin sheet music and play it, the fact that I got it from
copyrighted typesetting would be irrelevant, since the information I used
was public domain.  I would thus own the rights to the performance.  In this
case, the information extracted from most modules is all in the public
domain.  The exceptions might be the strongs-numbered modules. The bottom
line is that the OLB files are generally NOT creative works, but databases
containing public domain works.

(All this silliness is a perfect example of why copyright law needs to be
completely revamped.  Intellectual "property" is a ridiculous concept.)

Patrick

--
Patrick Narkinsky - Apprentice Pastor, Hope Community Church

"Fairy tales are more than true: not because they tell us that dragons
exist, but because they tell us that dragons can be beaten." - Chesterton




Re[2]: [Fwd: [sword-devel] FACTS]

2003-01-06 Thread Brandon Staggs
It's pretty clear that minor alterations to scanned material do
not constitute a derivative work and do not transfer ownership of
the text away from the public to the scanner.

Further, if someone believes they have created a new work of
authorship, shouldn't they at least change the name of the text?
Say Joe Smoe scans a commentary, then edits it so much that it
qualifies for copyright -- shouldn't it now be "Shmoe's
Commentary?"

Monday, January 6, 2003, 5:50:14 PM, [EMAIL PROTECTED] wrote:

> On Mon, 6 Jan 2003, Keith Ralston wrote:

>> > Both of these guys seem to think they get a copyright for being first to
>> > put these PD works into electronic form.
>> 
>> I'm not sure, but I believe this works like translations of pd works.  The
>> _translation_ is copyrightable.  Of course, you have to include the
>> copyright notice in your work.

> Copyright is granted for creative works (for the purpose of encouraging 
> the production of additional creative works).

> Translations are copyrighted because they are creative works, requiring 
> lots of right-hemispheric cognitive work.

> Electronic editions of PD works are still PD.  Changing the format like
> this does not require creativity, just good OCR or untiring fingers.  
> Adding markup is likewise not creative if it approximates that of the 
> original.  Essentially the only way to make a PD work copyrightable by 
> making an electronic edition is to make changes to it that are creative 
> (i.e. to make a bad copy).  In that situation, only the additions are 
> copyrighted and the underlying text remains PD (and may be retrieved by 
> rolling back alterations).

> This is similar to works in a collection.  If you collect a bunch of PD 
> texts and put them in a collection (in print, on CD, or whatever) you do 
> get a copyright for the collection--after all it took some creativity to 
> decide which texts should be included and how to order them.  However, the 
> texts themselves remain PD.

> For more info from the source, I would recommend reading through the US 
> Copyright Office circular 14, regarding derivative works, which is 
> available online at http://www.copyright.gov/circs/circ14.pdf .

> --Chris




- Brandon Staggs

___
Composed for [EMAIL PROTECTED]
at 8:20:08 PM on Monday, January 06, 2003




[sword-devel] new list services

2003-01-06 Thread Troy A. Griffitts
Hey guys,
	We've just successfully (I think) migrated sword-devel over from 
[EMAIL PROTECTED] to mailman.  You can now modify your list 
settings yourself at the following url:

http://www.crosswire.org/mailman/listinfo/sword-devel

mailman generated unique passwords for your new accounts.  You can 
request that your password be mailed to you somewhere at that url.

Please let me know if you have any troubles.

Praise God for an easy migration,
	-Troy.


___
sword-devel mailing list
[EMAIL PROTECTED]
http://www.crosswire.org/mailman/listinfo/sword-devel