This is an email sent by H. J. Bernstein to Miroslav Kobas on 13 January 2007 reporting on the work done in a meeting at PSI in Villigen from 9 to 13 January 2007.

Date: Sat, 13 Jan 2007 07:42:01 -0500 (EST)
From: Herbert J. Bernstein <yaya@bernstein-plus-sons dot com>
To: Miroslav Kobas <miroslav.kobas@gmail dot com>
Cc: eric@eikenberry dot com Wolfgang.Kabsch@mpimf-heidelberg.mpg dot de,
     wright@esrf dot fr, hammersl@esrf dot fr, sweet@bnl dot gov
Subject: Thank you and status

Dear Miro,

  I am nearing the end of my stay and, before I lose email
contact for a while, I want to be certain the say thank you
to you, Eric, and all the rest at PSI and SLS and, especially
to Wolfgang, for making this both a productive and pleasurable
visit.  Your facility and your hospitality are both excellent.
Walking through the SLS ring was great fun and dinner
in Baden was a treat.

  I am pleased that we have come to an agreement on
how to proceed.  Allow me to use this email message
to review my understanding of what we are doing.
Please feel free to correct or add to what I say.
I am a bit tired and may make mistakes or forget
something.

  1.  I will add additional mime headers reported
at the start of each binary section.  To ensure
compatability with existing CBF files, the new
headers will be optional, so that CBFlib will
be able to read existing files without declaring
an error, but it will default to writing them.
The full list will now be:

     Content-Type:
     Content-Transfer-Encoding:
     Content-MD5:
     X-Binary-Size:
     X-Binary-ID:
     X-Binary-Element-Type:
     X-Binary-Element-Byte-Order:
     X-Binary-Size-Fastest-Dimension:
     X-Binary-Size-Second-Dimension:
     X-Binary-Size-Third-Dimesion:
     X-Binary-Size-Padding:

I will provide more detail of how these are filled in
as I revise the documentation in doing the code, but
one detail that I should note for Eric is that
currently CBFlib will only write small_endian files
(even from within a big-endian machine), but it
is a good idea to add this information into the
mini-header now to avoid errors.

I have made good progress on these headers and hope
to be able to finish them during my time at ESRF.
I will discuss them with Any and Jon to see if
they need any additions to the list, and am
copying them and Bob on this message.  I have saved
a copy of what I have done so far in a tarball upload
to the states, so all should be well even if
my computer gets clobbered.

  2.  I will be adding code for two compressions
to CBFlib:  Wolgang's version of Andy's byte_offsets
algorithm (this will fill a long-standing gap
in CBFlib and should be useful to many people), and
a full 32-bit 4-way averaging version of the algorithm
in JPA's pack_c.c.  The second one will share
a lot of code with the current packed compression
in CBFlib, but it is sufficently different that
I will add it as a new compression option: pack_jpa.
I have gotten approval from Martyn Winn at ccp4 and
am waiting to hear back from Abrahams, but I am
confident that we will be able to incorporate
it within CBFlib as part of the GPL/LGPL'd code.

  3.  As I get to the point of having a properly
working version of each of these new compressions,
I will send sample files to Wolfgang and Eric
along with my suggestions on how to do a quick
read in Fortran-90 code, just scanning for
and using the mini-header.  I will try to clean out the
flat-field 32 bit bug in the current jpa code
that Eric found before sending Wolfgang the samples.

  4.  I will be working with the sample files and
code that Eric provided to try and make realistic
examples of how I think your data would look
in imgCIF.  I will have to do that part at home
on a bigger machine (or on a faster network
connection).

  5.  I will look at Eric's need for memory-based
I/O in place of disk-based I/O, since I have to
do the same thing for RasMol to handle maps,
but the priority of the above tasks means that
I probably won't be able to do more than give
Eric friendly advice and suggestions on that
topic before your February run.

  6.  When time permits, I will float the idea
of deprecating tags in the imgCIF dictionary that
are no longer used or which should no longer
be used, and then moving them to a separate
imgCIF_obsolete dictionary.

  7.  I will try to take what I learning from
my very helful discussions with Eric and try
to make the documentation of both imgCIF
and CBFlib clearer.

As I understand from Eric, the target timing
for me to get code back to him is 3 weeks
from now.  I will try to get samples and
Fortran-90 code to Wolfgang sooner than that.

I hope I covered everything.

Thank you again and please let me know what I missed
or got wrong.

  Regards,
    Herbert

P.S to Eric -- thank you for pointing out the
gcc 4 warnings.  Cleaning those out was a
good idea.  I am glad it is done.

P.P.S. And thank somebody for the nice weather.
=====================================================
 Herbert J. Bernstein, Professor of Computer Science
   Dowling College, Kramer Science Center, KSC 121
        Idle Hour Blvd, Oakdale, NY, 11769

                 +1-631-244-3035
                 yaya@dowling dot edu
=====================================================