<HTML>
<HEAD>
<TITLE>Re: [vtk-developers] Auto install git hooks</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>This whole “safe” area business should be a nonissue.  If you have cloned the main repository from Kitware, you get a copy of the hooks branch in your local repository along with the other branches.  Since the data is taken from your local repository, no network access should be necessary and the instructions should not change for a safe area, right?<BR>
<BR>
-Ken<BR>
<BR>
<BR>
On 7/1/10 1:46 AM, "Stephane PLOIX" <<a href="stephane.ploix@edf.fr">stephane.ploix@edf.fr</a>> wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
I am exactly in the case described by Berk, but I would like to push the point further. Inside the "safe area", we have replicated all the testing/dashboard mechanism, and it would be nice if the proposed mechanism could be configured so that the instructions and redirection to download the hooks can be modified, instead of only having a solution to turn it off. This way, any developer inside the safe area will have to use the hooks as they should, without having to go out of the safe area. <BR>
<BR>
Stephane<BR>
<BR>
<BR>
 <IMG src="cid:3360814441_50285032" ></SPAN><FONT SIZE="2"><SPAN STYLE='font-size:10pt'> <BR>
</SPAN></FONT></FONT><FONT SIZE="2"><SPAN STYLE='font-size:10pt'><FONT COLOR="#FF8100"><FONT FACE="Arial"><B>Stephane PLOIX<BR>
Pilote Opérationnel - Visualisation scientifique<BR>
</B></FONT></FONT><FONT FACE="Arial"><FONT COLOR="#0062E1">EDF - R&D<BR>
SINETICS<BR>
1, Av du Général de Gaulle<BR>
92140 Clamart<BR>
</FONT></FONT><FONT COLOR="#0062E1"><FONT FACE="Calibri, Verdana, Helvetica, Arial"> <BR>
</FONT><FONT FACE="Arial"><B><a href="stephane.ploix@edf.fr">stephane.ploix@edf.fr</a></B></FONT></FONT></SPAN></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'> <BR>
</SPAN></FONT><FONT COLOR="#0062E1"><FONT SIZE="2"><FONT FACE="Arial"><SPAN STYLE='font-size:10pt'>Tél. : +33 (0) 1 47 65 51 10</SPAN></FONT></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'> <BR>
 <IMG src="cid:3360814441_50313058" ></SPAN></FONT><FONT COLOR="#0062E1"><FONT SIZE="2"><FONT FACE="Arial"><SPAN STYLE='font-size:10pt'>Un geste simple pour l'environnement, n'imprimez ce message que si vous en avez l'utilité.</SPAN></FONT></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'> <BR>
<BR>
<BR>
<BR>
</SPAN><FONT SIZE="2"><SPAN STYLE='font-size:10pt'><B><a href="marcus.hanwell@kitware.com">marcus.hanwell@kitware.com</a></B></SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
</SPAN><FONT SIZE="2"><SPAN STYLE='font-size:10pt'>Envoyé par : <a href="vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a></SPAN></FONT><SPAN STYLE='font-size:11pt'> </SPAN><FONT SIZE="2"><SPAN STYLE='font-size:10pt'>30/06/2010 20:13</SPAN></FONT><SPAN STYLE='font-size:11pt'> 
</SPAN></FONT>
<P ALIGN=RIGHT>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'>A
</SPAN></FONT></FONT>
<P>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'><a href="berk.geveci@kitware.com">berk.geveci@kitware.com</a></SPAN></FONT><SPAN STYLE='font-size:11pt'> 
</SPAN></FONT>
<P ALIGN=RIGHT>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'>cc
</SPAN></FONT></FONT>
<P>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'><a href="vtk-developers@vtk.org">vtk-developers@vtk.org</a>, <a href="kmorel@sandia.gov">kmorel@sandia.gov</a></SPAN></FONT><SPAN STYLE='font-size:11pt'> 
</SPAN></FONT>
<P ALIGN=RIGHT>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'>Objet
</SPAN></FONT></FONT>
<P>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><FONT SIZE="2"><SPAN STYLE='font-size:10pt'>Re: [vtk-developers] Auto install git hooks</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
<BR>
<BR>
<BR>
<BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>On Wed, Jun 30, 2010 at 2:06 PM, Berk Geveci <<FONT COLOR="#0000FF"><U><a href="berk.geveci@kitware.com">berk.geveci@kitware.com</a></U></FONT></SPAN></FONT><SPAN STYLE='font-size:11pt'> <<a href="mailto:berk.geveci@kitware.com">mailto:berk.geveci@kitware.com</a>> </SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>> wrote:</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>I am joining this argument a bit late so I apologize if I misunderstand.</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
<BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>The solution that Marcus et al. are proposing will have no effect if someone is building from a source that does not contain a .git directory, correct? If not, it should be. Those have no interest in developing VTK/ParaView/ITK/CMake whatever should not clone the git repository. Instead, they should download a tarball/zip. Keep in mind that github/gitorious etc. all have the ability of generating an archive of the repository at any point in time. We should encourage users to use it rather than clone the git repo (which requires installing git and all). Similarly, if a developer is to send a user a snapshot, that developer should not include the .git directory in that snapshot. <BR>
</SPAN></FONT><SPAN STYLE='font-size:11pt'><BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>If it is not a clone, then no checks are performed. So if the user downloads a tarball (or otherwise removes the .git/config in the root source directory), then they will never see the error. <BR>
</SPAN></FONT><SPAN STYLE='font-size:11pt'><BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>My biggest concern is for developers that clone a repo and then take it to a safe area to build. At that point, they will not have access to network. So we should have a way to bypass anything that requires network access.</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
<BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>There is an option, the can be set in the CMake cache to skip the check. In Titan it is called Titan_IGNORE_HOOKS, defaults to off but if set to on bypasses the hooks check.</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
<BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>Marcus</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
<BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>On Wed, Jun 30, 2010 at 12:40 PM, Wes Turner <<FONT COLOR="#0000FF"><U><a href="wes.turner@kitware.com">wes.turner@kitware.com</a></U></FONT></SPAN></FONT><SPAN STYLE='font-size:11pt'> <<a href="mailto:wes.turner@kitware.com">mailto:wes.turner@kitware.com</a>> </SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>> wrote:</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>I will continue to respectfully disagree.  Not every user has the ability to be a developer.  Intentionally breaking the build process for exactly those people who will never make a checkin and who are most likely to drop use of the toolkit when they it gets too complex or they get annoyed seems like a bad idea. <BR>
</SPAN></FONT><SPAN STYLE='font-size:11pt'><BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>That said, I had my say and will follow the madding crowd. :-)</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
<BR>
</SPAN><FONT COLOR="#8F8F8F"><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>- Wes</SPAN></FONT></FONT><SPAN STYLE='font-size:11pt'> <BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'><BR>
</SPAN></FONT><SPAN STYLE='font-size:11pt'><BR>
</SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>On Wed, Jun 30, 2010 at 11:15 AM, Moreland, Kenneth <<FONT COLOR="#0000FF"><U><a href="kmorel@sandia.gov">kmorel@sandia.gov</a></U></FONT></SPAN></FONT><SPAN STYLE='font-size:11pt'> <<a href="mailto:kmorel@sandia.gov">mailto:kmorel@sandia.gov</a>> </SPAN><FONT SIZE="4"><SPAN STYLE='font-size:14pt'>> wrote:</SPAN></FONT><SPAN STYLE='font-size:11pt'> <BR>
If I may, I’ll repeat David’s sentiments a bit more gently.<BR>
<BR>
You would get around this problem if you sent to your customer an archive instead of a git url.  Instructing your customer (as you describe him/her) to fetch the latest snapshot from the archive is a bad idea all around.  First, it adds further complication to the build process (get git and learn it well enough to clone a repo), which you said yourself is already too onerous.  Second, it invites the inevitable problem that your customer will get a version of VTK that is different than yours and with something committed that breaks your software.<BR>
<BR>
Will this unnecessarily effect someone somewhere?  I will concede that it probably will, but it will be a small percentage of all VTK users and, amortized amongst us all, will save much more time than will be lost.<BR>
<BR>
-Ken <BR>
<BR>
<BR>
<BR>
On 6/30/10 8:49 AM, "David Cole" <<FONT COLOR="#0000FF"><U><a href="david.cole@kitware.com">david.cole@kitware.com</a></U></FONT> <<a href="http://david.cole@kitware.com/">http://david.cole@kitware.com/</a>> > wrote:<BR>
<BR>
The point here is:<BR>
- anybody using the VTK git repository should have the hooks installed locally, so that commits they make have a snowball's chance of being merge-able into the main repo<BR>
- if they don't have the hooks installed, then when they run cmake on VTK's CMakeLists.txt file, it should:<BR>
  -- automatically install the hooks for you if possible<BR>
    or<BR>
  -- be a fatal configure time error with instructions on how to install the hooks<BR>
<BR>
Period. If I were doing this, there wouldn't even be an option to turn it off. Marcus is being more than generous here even providing that level of control.<BR>
<BR>
If they can't handle that, they shouldn't be using VTK via git. They should stick to releases / tarballs that do not have a .git repo in the tree.<BR>
<BR>
There's no such thing as a "user" of a library. They're developers. They can handle installing hooks.<BR>
<BR>
<BR>
Just my opinion,<BR>
David C.<BR>
<BR>
<BR>
On Wed, Jun 30, 2010 at 8:57 AM, Wes Turner <<FONT COLOR="#0000FF"><U><a href="wes.turner@kitware.com">wes.turner@kitware.com</a></U></FONT> <<a href="http://wes.turner@kitware.com/">http://wes.turner@kitware.com/</a>> > wrote: <BR>
How much more complicated does this make the initial build process for a naive user who checked out VTK and just wants to compile/run it?  Every time I send code  to a customer, I invariably end up on a t-con where I need to walk them through the process of building the toolkits.  This holds even for otherwise technologically savvy people.  The frustration level on their end can be quite high, even when we prime them for this possibility. Similarly, we got blasted on this in a paper submission where the reviewer just wasn't willing to try out the Lesion Sizing Toolkit because the install/build procedures for ITK/LSTK were too high.  If the intent here is to make anyone who downloads VTK via git jump through another set of hoops to get up and running, then I think it is a bad idea.  I am happy explaining away warnings, however, so making it a warning would be fine.  I would also be fine with adding something in for people who claim up front that they want to upload back to the repository.<BR>
<BR>
- Wes<BR>
<BR>
On Tue, Jun 29, 2010 at 6:19 PM, Moreland, Kenneth <<FONT COLOR="#0000FF"><U><a href="kmorel@sandia.gov">kmorel@sandia.gov</a></U></FONT> <<a href="http://kmorel@sandia.gov/">http://kmorel@sandia.gov/</a>> > wrote: <BR>
That sounds pretty good to me.<BR>
<BR>
-Ken<BR>
<BR>
<BR>
<BR>
On 6/29/10 2:27 PM, "Marcus D. Hanwell" <<FONT COLOR="#0000FF"><U><a href="marcus.hanwell@kitware.com">marcus.hanwell@kitware.com</a></U></FONT> <<a href="http://marcus.hanwell@kitware.com/">http://marcus.hanwell@kitware.com/</a>> <<FONT COLOR="#0000FF"><U><a href="http://marcus.hanwell@kitware.com">http://marcus.hanwell@kitware.com</a></U></FONT> <<a href="http://marcus.hanwell@kitware.com/">http://marcus.hanwell@kitware.com/</a>> > > wrote:<BR>
<BR>
So, I was thinking about this over the weekend, and talked to Brad King. There is an environment variable that is set by CTest when it drives the build. I can check if that variable is defined, and know that CTest is driving the build.<BR>
<BR>
If I did that then when a user first configures VTK CMake will print an error with copy/paste instructions to check out the local hooks (along with a link to the wiki). They can set a CMake cache variable to ignore the hooks to get past it if they wish. If you are not in a git checkout the whole process is skipped.<BR>
<BR>
If CTest invoked the configure then the environment variable is set, and so the error is not raised - negating the need to set a cache variable on all of the dashboard machines. The only assumption is that CTest is driving the build, which I think is reasonable. I tested the logic out in Titan and it looks good.<BR>
<BR>
Does this cover all of your requirements reasonably? I will be checking this code into Titan as I think it is an improvement on what we had there too. I would be happy to check the relevant portion into VTK.<BR>
<BR>
Marcus<BR>
<BR>
On Thu, Jun 17, 2010 at 6:33 PM, Moreland, Kenneth <<FONT COLOR="#0000FF"><U><a href="kmorel@sandia.gov">kmorel@sandia.gov</a></U></FONT> <<a href="http://kmorel@sandia.gov/">http://kmorel@sandia.gov/</a>> <<FONT COLOR="#0000FF"><U><a href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a></U></FONT> <<a href="http://kmorel@sandia.gov/">http://kmorel@sandia.gov/</a>> > > wrote: <BR>
<BR>
In short, a pushurl is not a good indication of whether commits will be made or whether those commits will eventually be pushed to the main repository.<BR>
<BR>
-Ken<BR>
<BR>
<BR>
<BR>
On 6/17/10 2:46 PM, "Marcus D. Hanwell" <<FONT COLOR="#0000FF"><U><a href="marcus.hanwell@kitware.com">marcus.hanwell@kitware.com</a></U></FONT> <<a href="http://marcus.hanwell@kitware.com/">http://marcus.hanwell@kitware.com/</a>> <<FONT COLOR="#0000FF"><U><a href="http://marcus.hanwell@kitware.com">http://marcus.hanwell@kitware.com</a></U></FONT> <<a href="http://marcus.hanwell@kitware.com/">http://marcus.hanwell@kitware.com/</a>> >  <<FONT COLOR="#0000FF"><U><a href="http://marcus.hanwell@kitware.com">http://marcus.hanwell@kitware.com</a></U></FONT> <<a href="http://marcus.hanwell@kitware.com/">http://marcus.hanwell@kitware.com/</a>> > > wrote:<BR>
<BR>
On Thu, Jun 17, 2010 at 4:40 PM, Clinton Stimpson <<FONT COLOR="#0000FF"><U><a href="clinton@elemtech.com">clinton@elemtech.com</a></U></FONT> <<a href="http://clinton@elemtech.com/">http://clinton@elemtech.com/</a>> <<FONT COLOR="#0000FF"><U><a href="http://clinton@elemtech.com">http://clinton@elemtech.com</a></U></FONT> <<a href="http://clinton@elemtech.com/">http://clinton@elemtech.com/</a>> >  <<FONT COLOR="#0000FF"><U><a href="http://clinton@elemtech.com">http://clinton@elemtech.com</a></U></FONT> <<a href="http://clinton@elemtech.com/">http://clinton@elemtech.com/</a>> > > wrote: <BR>
<BR>
Can you key off the existence of a pushurl?<BR>
But I also wonder how this would keep the hooks updated? <BR>
<BR>
We could possibly be clever and do a little regex to check for the git@ form of the url/pushurl. I hadn't considered being that sneaky, but it sound like a viable approach and would ease the dashboard pain.<BR>
<BR>
Marcus <BR>
<BR>
On Thursday, June 17, 2010 02:13:37 pm Marcus D. Hanwell wrote:<BR>
> On Thu, Jun 17, 2010 at 4:06 PM, Moreland, Kenneth <<a href="kmorel@sandia.gov>wrote">kmorel@sandia.gov>wrote</a>:<BR>
> >  That’s a good point about CMake modifying the source tree, but I think<BR>
> ><BR>
> > this is one of those cases we should let the rule slide.  In this case we<BR>
> > are installing what, IMHO, git should be pulling for us.  Although the<BR>
> > Wiki says its optional, it really should be enforced for anyone who<BR>
> > makes any commit to any repository.<BR>
><BR>
> We came to a similar conclusion in Titan, but I am not sure about letting<BR>
> the rule slide. This is new territory though, and it is just my take<BR>
><BR>
> > I’m less thrilled about the “error if not installed” option because it<BR>
> > still pushes the responsibility back on every developer.  It could also<BR>
> > wreck havoc on the dashboards as there will be a delay in getting someone<BR>
> > to fix the warning.  But if that is the general consensus, it’s way<BR>
> > better than what we have now, which is nothing.  If that is the path we<BR>
> > choose to<BR>
> ><BR>
> > follow, then I would hope that the following could be be features:<BR>
> >    - CMake be very insistent about installing the hooks.  It should not<BR>
> >    be easy to miss or ignore the error.<BR>
> >    - The error should give clear instructions on how to install the<BR>
> >    hooks.<BR>
> ><BR>
> >     It’s annoying to have to find it in the Wiki every time.<BR>
> ><BR>
> >    - The check should also look for any updates to the hooks in addition<BR>
> >    to just seeing if they are installed.  One of the problems I run into<BR>
> >    is that even though I try to be diligent about installing hooks, I<BR>
> >    miss changes pushed to the repository.<BR>
> >    - The check should turn itself off if not run in a git repository.  A<BR>
> >    user who downloaded the source from the web would never be able to<BR>
> >    satisfy the requirement.<BR>
><BR>
> The checks in Titan have all but the third feature. That would be a<BR>
> valuable general addition though, and I think there is some code floating<BR>
> around that could help us to accomplish this. It would be good to hear how<BR>
> others feel about this, but we should certainly be making these things as<BR>
> easy as possible for our developers. I will see what our software process<BR>
> type people think - Brad, Dave, Bill?<BR>
><BR>
> Marcus<BR>
> --<BR>
> Marcus D. Hanwell, Ph.D.<BR>
> R&D Engineer, Kitware Inc.<BR>
> (518) 881-4937 <BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</SPAN></FONT><SPAN STYLE='font-size:11pt'><FONT FACE="Consolas, Courier New, Courier"><BR>
   ****      Kenneth Moreland<BR>
    ***      Sandia National Laboratories<BR>
***********  <BR>
*** *** ***  email: <FONT COLOR="#0000FF"><U><a href="kmorel@sandia.gov">kmorel@sandia.gov</a></U></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"> <<a href="http://kmorel@sandia.gov/">http://kmorel@sandia.gov/</a>> </FONT><FONT FACE="Consolas, Courier New, Courier"><<FONT COLOR="#0000FF"><U><a href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a></U></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"> <<a href="http://kmorel@sandia.gov/">http://kmorel@sandia.gov/</a>> </FONT><FONT FACE="Consolas, Courier New, Courier">> <BR>
**  ***  **  phone: (505) 844-8919<BR>
    ***      web:   <FONT COLOR="#0000FF"><U><a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a></U></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"> <<a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a>> </FONT><FONT FACE="Consolas, Courier New, Courier"><<FONT COLOR="#0000FF"><U><a href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a></U></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"> <<a href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a>> </FONT><FONT FACE="Consolas, Courier New, Courier">> <BR>
</FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><BR>
<BR>
_______________________________________________<BR>
Powered by <FONT COLOR="#0000FF"><U>www.kitware.com</U></FONT> <<a href="http://www.kitware.com/">http://www.kitware.com/</a>> <<FONT COLOR="#0000FF"><U><a href="http://www.kitware.com">http://www.kitware.com</a></U></FONT> <<a href="http://www.kitware.com/">http://www.kitware.com/</a>> > <BR>
<BR>
Visit other Kitware open-source projects at <FONT COLOR="#0000FF"><U><a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a></U></FONT> <<a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a>> <BR>
<BR>
Follow this link to subscribe/unsubscribe:<BR>
<FONT COLOR="#0000FF"><U><a href="http://www.vtk.org/mailman/listinfo/vtk-developers">http://www.vtk.org/mailman/listinfo/vtk-developers</a></U></FONT> <<a href="http://www.vtk.org/mailman/listinfo/vtk-developers">http://www.vtk.org/mailman/listinfo/vtk-developers</a>> <BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</FONT><FONT FACE="Consolas, Courier New, Courier"><BR>
   ****      Kenneth Moreland<BR>
    ***      Sandia National Laboratories<BR>
***********  <BR>
*** *** ***  email: <FONT COLOR="#0000FF"><U><a href="kmorel@sandia.gov">kmorel@sandia.gov</a></U></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"> <<a href="http://kmorel@sandia.gov/">http://kmorel@sandia.gov/</a>> <BR>
</FONT><FONT FACE="Consolas, Courier New, Courier">**  ***  **  phone: (505) 844-8919<BR>
    ***      web:   <FONT COLOR="#0000FF"><U><a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a></U></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"> <<a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a>> <BR>
<BR>
</FONT></SPAN><FONT FACE="Calibri, Verdana, Helvetica, Arial"><FONT SIZE="4"><SPAN STYLE='font-size:14pt'><BR>
<BR>
</SPAN></FONT></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><FONT SIZE="4"><SPAN STYLE='font-size:14pt'><BR>
</SPAN></FONT></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN STYLE='font-size:10pt'><BR>
   ****      Kenneth Moreland<BR>
    ***      Sandia National Laboratories<BR>
***********  <BR>
*** *** ***  email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a><BR>
**  ***  **  phone: (505) 844-8919<BR>
    ***      web:   <a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a><BR>
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT>
</BODY>
</HTML>