<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>
<META content="MSHTML 6.00.2715.400" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>Every so often, I
buy an O'Reilly book on a lark, just to see if</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>the subject matter
is interesting/is going to win/is fun to use/is</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>learnable in finite
time. This year's book has been the Jabber</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>book. I've
read it cover to cover, and needless to say, I've been</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>converted in a big
way, and am now hacking together all manner</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>of crazy jabberware
(those of you who know me from p5p or</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>from the Penguin
module are now cowering in terror). However,</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>some
issues:</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>1. There are a
large number of states in the Jabber protocol --</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>messages can arrive
asynchronously etc etc, but against production</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>jabber servers I can
only find one moderately tortuous pathway to</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>getting logged
in. Is there a master state chart which is the
canonical</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>gospel for how
Jabber works, or should I try to reverse engineer it from</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>jabberd, or is
jabberd possibly out of compliance, or?</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>2. Having
hacked at the high levels for a bit with the fine Perl
modules,</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>I'm now looking into
hacking at the socket-and-bits level. However, I'm</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2>encountering two problems with all the SAX, SAX2 or SAX-like parsers
I</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>can find: first,
because a packet that looks like</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>PACKET: <this
is="a" tag="hello world">packet</this></FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>could be broken up
in its travels across the net into</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>PACKET
1:<thi</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>PACKET 2:s is "a"
tag="hello world">pa</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>PACKET
3:cket</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>PACKET
4:</this></FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>...it's not at all
clear when a good time to call parse() is. It looks like in
order</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>to deal with XML
streams, one would essentially have to pre-parse the XML</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>stream to find the
closing tag's last character, bundle that up into a buffer
and</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>parse that, and then
start some more. Is that accurate? If not, where am I
being</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>dumb? If so,
isn't that annoyingly painful?</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>3. This is
more a plaintive bleat than a question: why are there about
ten</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial size=2>different 60%
complete C/C++ libraries, dammit? :)</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2>F.</FONT></SPAN></DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=799552015-20052002><FONT face=Arial
size=2></FONT></SPAN> </DIV><CODE><FONT SIZE=3><BR>
<BR>
**********************************************************************<BR>
E-mail sent through the Internet is not secure. Western Asset therefore<BR>
recommends that you do not send any confidential or sensitive information to<BR>
us via electronic mail, including social security numbers, account numbers,<BR>
or personal identification numbers. Delivery, and or timely delivery of<BR>
Internet mail is not guaranteed. Western Asset therefore recommends that<BR>
you do not send time sensitive or action-oriented messages to us via<BR>
electronic mail.<BR>
**********************************************************************<BR>
</FONT></CODE>
</BODY></HTML>