<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
On 11/07/2010 07:40 AM, Chris Burrell wrote:
<blockquote
cite="mid:AANLkTinxux-0yZ3eZ6jXm96soGN2HFsvgGLo8R2VSy6m@mail.gmail.com"
type="cite">I believe the problem is because ZVerseBackend is not
thread-safe. Being a singleton, it starts sharing all its arrays
declared as member variables. As a result, when two passages from
the same "Book" (for e.g. KJV) are used, there is corruption,
since the data read for Thread A might also be shared by Thread
B!
<div>
<br>
</div>
<div>A few solutions I can think of:</div>
<div>- do they need to be singletons? I guess it makes sense, but
what is the cost involved in them being singletons? Don't know
the code base well enough yet.</div>
<div>- do the member variables need to member variables, or can be
make them local variables? Do they share state across methods?</div>
<div>- If the option above doesn't work, then synchronising the
method might be worth looking at, however, in a web environment,
that would potentially cause serious bottlenecks, especially if
there is a default version (and default passage) that is
displayed when the user brings the page up.</div>
</blockquote>
<br>
This is a design flaw. It should be fixed. I'll take it up in the
Jira issue you opened.<br>
<br>
The basic issue is that the backend caches data in the assumption
that if you asked for one verse, you are likely to ask for the next.
Getting verses out of a compressed module is expensive.<br>
<br>
<blockquote
cite="mid:AANLkTinxux-0yZ3eZ6jXm96soGN2HFsvgGLo8R2VSy6m@mail.gmail.com"
type="cite">
<div><br>
</div>
<div>Any thoughts?</div>
<div>Chris</div>
<div><br>
</div>
<div><br>
<br>
<div class="gmail_quote">On 7 November 2010 00:04, Chris Burrell
<span dir="ltr"><<a moz-do-not-send="true"
href="mailto:chris@burrell.me.uk">chris@burrell.me.uk</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">On this last note, I believe we have
concurrency issues. I have a two column page, displaying one
passage each. On load of the page they load up a passage
each, but then this once, the passage on the right (only
verse 1) has gone to the left (which was requesting just one
verse but from a different passage:
<div>
<br>
</div>
<div>left pane: requested Acts 2:10, got Romans 1:1</div>
<div>right pane: corrupt XML in verse 1, verse 2 seems to be
Romans 1:2-following</div>
<div><br>
</div>
<div>Anyone else come across those issues?</div>
<div>
Chris</div>
<div>
<div class="h5">
<div><br>
<div class="gmail_quote">On 6 November 2010 20:53,
Chris Burrell <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:chris@burrell.me.uk"
target="_blank">chris@burrell.me.uk</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt
0pt 0pt 0.8ex; border-left: 1px solid rgb(204,
204, 204); padding-left: 1ex;">
Another question too. It seems sometimes, both in
bible desktop and my current application, the html
rendered is broken?
<div><br>
</div>
<div>Any ideas why that might be?</div>
<div><br>
</div>
<div>For example, I get:</div>
<div>
"<div class="passageText
ui-widget"><div><h2
class="heading">Acts 2:10</h2><span
class="verse"><span class="w"><sup
class="verseNumber">10</sup></span><span
class="w"<b>><span
class="text">emma="strong:G1909"
morph="robinson:PREP</b>" src="4"&gt;upon
every soul of man that doeth evil, of the Jew
first, and also of the
Gentile;</span></span></span>
</div></div>"</div>
<div><br>
</div>
<div>The above in bold shows that it didn't get
XSLTed properly.</div>
<div><br>
</div>
<div>Instead of "<div class="passageText
ui-widget"><div><h2
class="heading">Acts 2:10</h2><span
class="verse"><sup
class="verseNumber">10</sup><span
class="w"><span
class="text">&nbsp;</span>
</span><span class="w"><span
class="text">&nbsp;</span>
</span><span class="w"><span
class="text">Phrygia</span></span>,
<span class="w"><span
class="text">&nbsp;</span>
</span><span class="w"><span
class="text">and</span></span>
<span class="w"><span
class="text">Pamphylia</span></span>,
<span class="w"><span
class="text">in
Egypt</span></span>, <span
class="w"><span
class="text">and</span></span>
<span class="w"><span
class="text">in the
parts</span></span> <span
class="w"><span class="text">of
Libya</span></span> <span
class="w"><span
class="text">about</span></span>
<span class="w"><span
class="text">Cyrene</span></span>,
<span class="w"><span
class="text">and</span></span>
<span class="w"><span
class="text">strangers</span></span>
<span class="w"><span
class="text">of
Rome</span></span>, <span
class="w"><span
class="text">Jews</span></span>
<span class="w"><span
class="text">&nbsp;</span>
</span><span class="w"><span
class="text">and</span></span>
<span class="w"><span
class="text">proselytes</span></span>,</span>
</div></div>"</div>
<div><br>
</div>
<div>So somehow it lost a whole load on the way
out of the XSLT? The only difference is that the
first one is on startup of the server, the
second is with a refresh in the browser. Perhaps
something hasn't loaded up correctly/entirely?</div>
<div><br>
</div>
<font color="#888888">
<div>Chris</div>
</font>
<div>
<div>
<div><br>
<div class="gmail_quote">On 5 November 2010
23:10, Chris Burrell <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:chris@burrell.me.uk"
target="_blank">chris@burrell.me.uk</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin: 0pt 0pt 0pt 0.8ex;
border-left: 1px solid rgb(204, 204,
204); padding-left: 1ex;">
Thanks DM. So I found this page
(again)! <a moz-do-not-send="true"
href="http://www.crosswire.org/%7Edmsmith/interlinear/"
target="_blank">http://www.crosswire.org/~dmsmith/interlinear/</a>
<div><br>
</div>
<div>And managed to replicate (and
solve?) the issues I found originally
when I looked at it before:</div>
<div><br>
</div>
<div>1st When lines in the interlinear
only have 1 line (i.e. no 2nd/3rd or
4th line). As a result, when the text
wraps, it floats below the first line.
As a hack (although on could argue
that there is an empty spot there,
rather than nothing), I think we can
put a
<span>&nbsp;</span> or
we could use a height maybe? (not
quite so good, unless we specify in
ems and exs). And the second thing is
that within a particular word stack,
the words might wrap. I believe this
particular issue is only visible in
IE. For IE 8, the fix is to put a
whitespace: nowrap CSS directive. Not
sure if that helps on IE6 and 7
though? Spec says it should be
supported on both browsers.</div>
<div><br>
</div>
<div>And yup, I'm targetting web
environments, and also web mobile
browsers. </div>
<div>Chris</div>
<div>
<div>
<div><br>
<br>
<div class="gmail_quote">On 5
November 2010 20:09, DM Smith <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:dmsmith@crosswire.org"
target="_blank">dmsmith@crosswire.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid
rgb(204, 204, 204);
padding-left: 1ex;">
<div bgcolor="#ffffff"
text="#000000"> I'm heading
out for the weekend. In a
few minutes. <br>
It'll probably be Monday
evening when I send it.<br>
<br>
The solution uses spans with
their display set to block.<br>
<font color="#888888"> <br>
-- DM</font>
<div>
<div><br>
<br>
On 11/05/2010 03:55 PM,
Chris Burrell wrote:
<blockquote type="cite">DM,
you said you might
have an intearlinear
model that worked? I
had another look to
see how I did mine
previously, and found
that in fact I used
tables. I think I
struggled for quite a
while to get a model
working across
browsers using DIVs,
but none of them
seemed to wrap
properly at the end of
the line. But
unfortunately table
layouts are slow and
therefore it would be
better to have divs.
<div> <br>
</div>
<div>Would you be able
to let me have your
samples?</div>
<div>Chris<br>
<br>
<div
class="gmail_quote">On
5 November 2010
19:21, Chris
Burrell <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:chris@burrell.me.uk" target="_blank">chris@burrell.me.uk</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:
0pt 0pt 0pt
0.8ex;
border-left: 1px
solid rgb(204,
204, 204);
padding-left:
1ex;">What's
GNT? Greek New
Testament? I
think we can do
more than that
too. If other
Bible versions
have strong
numbers and/or
morphology tags,
then we can put
those in
parallel, and
end up having
French with
English
"subtitles", or
English with
English, as well
as English with
Greek, etc.
<div> <br>
</div>
<div>So I've had
a look at the
framework so
far and it
seems fairly
easy not to
use Bible
Desktop
components and
have a good
XSLT
transformation.
So all we
would need to
add is some
helpers that
users can
easily
integrate into
their XSLTs.
It would nice
to have some
sample XSLs
for people to
use. So for
example, I've
had to strip
out all the
CSS and font
tags from the
Bible Desktop
one so as to
produce a good
XHTML
compliant
one. </div>
<div><br>
</div>
<div>Say we give
the XSLT a
InterlinearProvider
initialised
with its
version and
passage, as it
parses the
strong/morph
option we can
then call
get($provider,
@strong,
@morph), which
would in turn
optionally
return the
correct words
(or best word
since
sometimes you
may have
multiple
options in
modules tagged
with strong
numbers only.
In fact it
would be
better to have
something like
get($provider,
osis_verse_id,
@strong,
@morph). Since
then, if we
don't have the
morphology of
the word, at
least we can
limit the
lookups to
those words
that are
tagged in a
particular
verse (that
assumes that
versification
is comparable
between
versions).</div>
<div><br>
</div>
<div>We'll want
to add options
to have tagged
information
displayed on
the side of a
word/phrase or
below a
word/phrase.
At the moment
the XSLT
displays morph
and strong
tags next to
the text. I'll
add some
transformations
to have it on
separate
lines. Then we
can reuse the
same
transformations
to line up
text beneath
it. </div>
<div><br>
</div>
<div>DM, I had a
look at <span
style="font-family:
arial,sans-serif;
border-collapse:
collapse;">"flying
saucer" , but
didn't quite
understand
where it comes
in? Would the
idea be
instead of the
XSLT? And have
it transform
to different
UIs?</span></div>
<div><br>
</div>
<font
color="#888888">
<div>Chris</div>
</font>
<div>
<div>
<div><br>
<br>
<div
class="gmail_quote">On
5 November
2010 03:51,
Tonny Kohar <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:tonny.kohar@gmail.com"
target="_blank">tonny.kohar@gmail.com</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:
0pt 0pt 0pt
0.8ex;
border-left:
1px solid
rgb(204, 204,
204);
padding-left:
1ex;"> Hi,<br>
<div><br>
On Thu, Nov 4,
2010 at 11:30
PM, DM Smith
<<a
moz-do-not-send="true"
href="mailto:dmsmith@crosswire.org" target="_blank">dmsmith@crosswire.org</a>>
wrote:<br>
> Much of
the
transformations
is done in
BibleDesktop.
Refactoring
these and<br>
> putting
it into JSword
and/or common
would be good.<br>
><br>
<br>
</div>
+1<br>
Yes it would
be nice to
have this
under JSword
instead of
BIbleDesktop<br>
<br>
Sincerely<br>
Tonny Kohar<br>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</body>
</html>