Here's the transcript of day 4 of the trial in Novell v. Microsoft, as text, making it Thursday, October 20, 2011. The day opens abruptly, with the judge, the Hon. J. Frederick Motz, telling the lawyers, before the jury arrives, that he's angry with Microsoft. Novell had filed
two motions for a jury instruction to deal with some things Microsoft improperly said in its
opening statement, statements that violated what the judge had allowed it to say. Microsoft's opening statement was given by David Tulchin, who gets an earful. But then, oddly enough, the judge decides not to say a thing to the jury about the monopoly acquistion versus maintenance issue, because, he claims, it would go over the jury's heads. And so Microsoft gets away with that. However, the judge does speak to the jury about the timing of when Novell brought this action. He doesn't say precisely what Novell asked him to say, as I'll show you. And then there is a live witness, Adam Harral, who was a WordPerfect software architecht and then the same at Corel and then at Novell, which means the playing of the rest of the Brad Silverberg deposition has to be delayed. Harral tells about the shell extensions Microsoft encouraged Novell to build with, only to have them suddenly removed and the remaining APIs he says were promised kept from Novell after it had done 80% of the work of building around the four APIs.
Here's what the judge tells the jury:
THE COURT: In terms of the opening statements, there was one statement made by Microsoft's counsel about this case not having been filed for a certain number of years, nine or ten years after the event, to reflect or put the suggestion that, look, if this was a problem why didn't you file suit earlier. It is fair game to say why didn't you comment earlier, why didn't you criticize it earlier, and that is a matter of evidence for you all to decide.
Don't worry about when the suit was filed. They acted within their rights. It is a long time, but there are reasons and limitations were tolled and they acted within their rights in not filing a suit for whenever they filed the suit. Just disregard that part of the opening statement. Here's what Novell, in the memorandum [PDF] in support of its motion, had asked the judge to tell them:
During opening statements, counsel for Microsoft made reference to the fact that Novell did not file this lawsuit until 2004. The jury should draw no adverse inference against Novell based on the fact that it filed the present lawsuit in 2004 rather than at some earlier time. Under the law, Novell had the legal right to file its lawsuit when it did and was under no legal obligation to bring this lawsuit at any earlier date.
Not precisely the same, is it? A little negative spin on the judge's wording, wouldn't you say ("It is fair game to say why didn't you comment earlier, why didn't you criticize it earlier, and that is a matter of evidence for you all to decide.")?
Mr. Harral describes the design and functions of WordPerfect, particularly some unique and valuable aspects of its shared code, which is his area of expertise:
Q. Are you familiar with WordPerfect's open interface APIs?
A. Yes, I am.
Q. Can you tell the jury about that?
A. From an architecture -- for a software perspective we had talked to the WordPerfect applications -- in moving the product forward we caused the product to have a division. For example, if you wanted to do a search for a word inside of the document, you would be presented with an interface and you would then tell it what is the word I want to find. You might say I want to skip this so many times and you might be looking for a particular place in a paragraph for that word.
The presentment of that question to you is what we call
the view. It is where it asks the question and collects the information. This is a key to how scripting and other technologies would work. It would then capture that information, and then it would go to the engine and it would tell it, okay, here is what they said to do, now do it.
One of the things that we allowed in our WordPerfect product, is that means that there is a clean division, those tiers, there is a clean tier there between collecting the information and telling the engine to do it. We built a way for somebody to be able to come in and intercept that request to do that work. So if you wanted to -- let's say somebody said do the grammar check. If you wanted in a company to impose a totally separate set of rules and a totally different artificial intelligence of how to do the grammar check, you could insert your own piece of code in there and capture the request to do the grammar check and do whatever you wanted to.
Having had access to all of the shared code and all of the other scripting interfaces, you could then totally redo what WordPerfect would do with that request. So this open API basically lets you capture anything that WordPerfect could ask the user to do, and you could rewrite what it would actually do at that point when it crossed that tier.
Can you understand from just this brief testimony how important it is to innovation that APIs be accessible and not locked up in copyright chains? And may I be permitted to say how much I enjoyed WordPerfect? Just from this one little section you can see how superior the product was to Microsoft Word.
He also explains what middleware is, and why WordPerfect might be so threatening to Microsoft:
Q. Was or was not WordPerfect historically designed to be
a place where users lived?
A. It was designed -- I can say from DOS before I joined
WordPerfect, my experience was I had seen many people use
WordPerfect in just this way, that it would be the only
program that they would start up at the beginning of the day
when they came into their office, and they would do
everything that they did -- they would not go out to DOS and
manage their files there, which is what DOS was intended to
do in the run application, and they would start at
WordPerfect and they would stay there. There would work on
their documents and they would save them and they would
print them, and they would correspond through whatever
e-mail capabilities they had, but they would live in
WordPerfect.
Q. Did you have any conversations with Microsoft's
Premiere Support about living in WordPerfect?
A. I guess the answer is yes, because everything that we
did was about that. And so, yeah, we talked to Microsoft
about the fact that our interests and the technologies that
we had, and that those technologies for our users were about
a holistic environment. Everything that they did -- they
came to expect a lot from us, not just in the word
processor.
Q. Are you familiar with the term middleware?
A. Yes, I am.
Q. What is middleware?
A. Well, simply put, shared code is middleware. It is
something that is produced either with the intent to bridge
technologies -- an example nowadays would be Adobe Flash.
It is a product that you can run presentations in or do
graphics in. When you go out to the Internet there are
games that are written in this. It can't run without the
operating system, but it is not intended for me to use
directly. Somebody else is going to use it to produce what
they have as their purpose in writing that application, so
it as a tool that they are using.
So middleware is something that is produced that sits
in the middle that people would use usually because it
either saves them time or is more powerful than what they
could do with the expertise that they have to be able to
write the product that they want.
So, for example, with shared code we had a long history
of internationalization and being able to represent eastern
characters, middle eastern characters, and how do you type
those in when you're trying to do a search? How do you
display those? What does it mean when I am in Switzerland
and I am on a Swiss keyboard trying to search for something
in an Arabic document?
In shared code there was a whole set of features that
would help programs figure that out and work through that
problem, and so somebody would want to purchase shared code
or license it as middleware, because they could use all of
that internationalization instead of having to figure all
that out and hire the people that would have the expertise,
you know, for years to do that. And he also tells about meeting with Microsoft folks regarding Windows 95, who told the Novell guys that Microsoft would document the shell extensions:
Q. Now, looking a little further down in this e-mail,
Mr. Cole states that they, meaning WordPerfect, were very
happy about us deciding to document the shell extensions.
Do you recall being told by Microsoft at this
meeting that they had decided to document the shell
extensions?
A. Yes. It was one of the reasons for the meeting, was
gathering the -- and even -- and we would not have had more
than half of the conversation if that was not happening.
Q. So, half of the conversation concerned these NameSpace
extension API's?
A. Yes.
Q. Did Mr. Cole accurately describe your feelings as being
happy regarding Microsoft's decision to document the shell
extensions?
A. We were -- we were ecstatic....
Q. What, if any, suggestion was given to you from these Microsoft representatives that this was a tentive decision, subject to change?
A. There was not that indication given. In fact, when -- leading up to the discussion about NameSpaces, as I said, they talked about how Windows 95 was going to change the way that people looked at PC's, the PC, personal computer. They -- to lead into the discussion about how we could add technologies to Windows 95, they demonstrated the NameSpaces that we had been talking about here, that they had done or talked about, the network neighborhood and the recycle bin....
So they demonstrated they were using those same technologies to build the Windows 95 platform, and we would be able to as well. And so they got to work with the Microsoft beta, with the four shell extensions they had been provided -- IShellBrowser, IShellView, IShellFolder, ICommDIgBrowser -- with a promise of the rest to come, and he explains what each one was for and how important they were. Novell had about 80% of the work done when Microsoft reversed direction, he says, and not only didn't provide the rest of the APIs, but they scooped back the four that Novell had in hand already, which left Novell in quite a pickle in terms of getting its product ready for the Windows 95 launch. Then, nearly a year after the launch of Windows 95, Microsoft then released the APIs, but by then it was too late for Novell. That's his testimony. The story he tells certainly matches the email found here, back in 2009. Here's the full transcript of the day. As always, go by the PDFs for anything that matters:
All the trial transcripts, as PDFs, are here.
*****************
IN THE UNITED STATES DISTRICT COURT
DISTRICT OF UTAH
CENTRAL DIVISION
___________
NOVELL, INC.,
Plaintiff,
vs.
MICROSOFT CORPORATION,
Defendant.
______________
CASE NO. 2:04-CV-1045 JFM
______________
BEFORE THE HONORABLE J. FREDERICK MOTZ
-----------------
October 20, 2011
Jury Trial
Volume IV
195
A P P E A R A N C E S
For Plaintiff:
PAUL TASKIER
JEFFREY JOHNSON
MIRIAM VISHIO
[address]
JOHN SCHMIDTLEIN
[address]
MAX WHEELER
[address]
For Defendant:
DAVID TULCHIN
STEVEN HOLLEY
SHARON NELLES
[address]
STEVE AESCHBACHER
[address]
JAMES JARDINE
[address]
Court Reporters:
Ed Young
Rebecca Janke
Kelly Hicken
[address, phone]
196
I N D E X
Witness - Examination By - Page
Exhibit Received
(No exhibits received.)
197
October 20, 2011 - 8:00 a.m.
P R O C E E D I N G S
THE COURT: I am not going to say anything about
the instructions, because I don't think that frankly the
differences -- this really is an issue between Mr. Tulchin
and me and not the jury, and I think for me to say
something, I don't think the jury is going to pick up on the
distinctions.
You all can be seated.
The more I think about this the angrier I am. I
could not have been more clear in the instructions I gave.
Mr. Tulchin I suppose would be able to establish the
contrary if it had just been orally given and might have
made a misstatement. That was printed out. You had to know
there is a difference between what I did and what I said and
what you said. I don't like it. I am not going to say
anything to the jury, because I don't want to -- I am going
to comment on the statute of limitations, because I don't
want to put my thumb on the scales.
Don't you ever do that again. If you do, if you
make a statement like you said yesterday about the subtle
distinction between acquiring and maintaining a monopoly is
absolutely crazy. You're too good a lawyer and you know
this case too well. This case is about maintaining a
198
monopoly. I don't like it. I am not going to say anything
to the jury, because frankly I think it would get lost in
the mix. I don't want to put my hand on this, but don't you
ever do that to me again. Maybe your client has a -- it
just goes a bit too far.
MR. TULCHIN: Your Honor, I apologize.
THE COURT: Okay. Apology accepted.
Let's get the jury.
MR. SCHMIDTLEIN: Judge, you're not going to give
anything on the timing --
THE COURT: On the timing, yes.
MR. SCHMIDTLEIN: You are. Thank you.
THE COURT: The other I think is just going to get
lost in the mix. The --
MR. SCHMIDTLEIN: Thank you, Your Honor.
(WHEREUPON, the jury enters the proceedings.)
THE COURT: Good morning, everybody.
Thank you for being so prompt.
I am trying to connect to my office. I think my
office is interested in what I am doing out there. I think
they want to make sure that I am actually not out here
skiing.
The other thing is we have a live witness.
Normally if we start a witness we like to finish them, but
this witness is from out of town and is now a private
199
citizen and we're going to try to finish him today. We'll
finish Mr. Silverberg's deposition another time.
Mr. Johnson.
MR. JOHNSON: Your Honor, were you going to give
that instruction?
THE COURT: In terms of the opening statements,
there was one statement made by Microsoft's counsel about
this case not having been filed for a certain number of
years, nine or ten years after the event, to reflect or put
the suggestion that, look, if this was a problem why didn't
you file suit earlier. It is fair game to say why didn't
you comment earlier, why didn't you criticize it earlier,
and that is a matter of evidence for you all to decide.
Don't worry about when the suit was filed. They
acted within their rights. It is a long time, but there are
reasons and limitations were tolled and they acted within
their rights in not filing a suit for whenever they filed
the suit. Just disregard that part of the opening
statement.
MR. JOHNSON: Thank you, Your Honor, very much.
THE COURT: Good morning.
Let's get started.
MR. JOHNSON: Your Honor, if I could approach, we
have a binder of the exhibits we'll be using this morning
for you.
200
The plaintiff, Novell, Inc., calls Mr. Adam Harral
to the stand.
THE COURT: Come on up.
MR. TULCHIN: Your Honor, is it possible for us to
get the same exhibits?
THE COURT: I would think so.
MR. JOHNSON: Yes. We are going to be giving them
exhibits as we use them.
THE COURT: Give them to them all at the same
time.
ADAM LEE HARRAL
Having been duly sworn, was examined
and testified as follows:
THE WITNESS: My name is Adam Lee Harral.
A-d-a-m, L-e-e, H-a-r-r-a-l.
MR. JOHNSON: Your Honor, may I approach with the
binder for the witness?
THE COURT: Sure.
MR. JOHNSON: Thank you.
THE COURT: What are we going to do about the
jury? Are they going to be up on the screen?
MR. JOHNSON: Up on the screen when we use the
exhibits, yes, Your Honor.
Thank you very much.
DIRECT EXAMINATION
201
BY MR. JOHNSON
Q. Mr. Harral, good morning.
A. Good morning.
Q. Can you tell us where you currently live, sir?
A. I live in Highland, Utah.
Q. How long have you lived in Utah?
A. I have lived in Utah for about 27 years.
Q. Are you currently employed?
A. I am.
Q. And where do you work?
A. I work for a company, a software company called Best
Practice Systems in Denver, Colorado.
Q. What is your position with that company?
A. I am the software architect for that company.
Q. What does it mean to be the software architect?
A. In software development we have developers and I do
that often, but a software architect is also supposed to
know how -- what are the best practices in developing
software, such that they can develop the software as quickly
as possible, avoiding as many pitfalls as possible from past
experience and from what are accepted industry standards for
whatever company that you're writing software for.
Q. How long have you worked with that company in Denver?
A. A year and a half.
Q. Let's take a step back in time.
202
Can you please tell the jury were you attended college?
A. I attended college at Brigham Young University.
Q. When did you graduate?
A. I graduated in May of 1989.
Q. What was your degree?
A. A bachelor's of science in computer science.
Q. Now, before obtaining a degree in computer science from
BYU in 1989, did you have any practical experience in
computer programming?
A. Yes. I was a consultant for a software firm in Colton,
California starting at age 14.
Q. Did you say age 14?
A. Yes, 14.
Q. Did you do any programming while at BYU?
A. I did do programming at BYU.
Q. Can you describe generally what that programming
involved?
A. The first programming job that I had was working in the
education department, the college of education doing
computer tutorials and graphics for teaching students. And
then a year after that I found a job with the department of
instructional science. They were working on a program that
would search texts of documents. Currently they were
working on the scriptures program, although they had other
documents as well, and it was to be able to type words that
203
you were looking for and have it retrieve them and the
context of those words and present them.
Q. What platform were you working on in connection with
that programming work?
A. We were working on Windows 2.3.
Q. What did you do after graduation from BYU?
A. I sought employed at different companies and eventually
was hired by WordPerfect Corporation in May of 1989.
Q. Why did you choose WordPerfect?
A. I had had some exposure to WordPerfect beforehand in my
other duties in the offices of people that I had dealt with
in those departments at Brigham Young University and in some
other companies, and WordPerfect had a variety of products.
They had them for Macintosh, they had them for the P.C., and
so they seemed like a company that was aware of the breadth
of the industry and the different needs that people had, and
it would be a good opportunity -- many opportunities to both
work on a product that was moving the industry, and at the
same time there would be a diversity of tasks that could be
done, so it wouldn't be boring from year to year.
Q. What was your initial position at WordPerfect?
A. I was hired to work on printers for their O.S.2
development on the P.C.
Q. You mentioned O.S.2. You will have to tell the jury
what that is.
204
A. Okay. O.S.2 was an operating system, that when the
P.C. came out the disk operating system or DOS that it ran
on was evolving, and I.B.M. wanted to have a new version of
the operating system and so they wrote O.S.2. It rewrote
the fundamentals of the operating system as well as put new
features on top, because businesses had been demanding those
features for awhile and had them on other computer
platforms, and so this was a chance for the P.C. to make a
leap forward in what it could do.
Q. If we could just go through your work experience
generally at WordPerfect that would be helpful. You first
were working on this preview display for O.S.2.
What did you do next?
A. So after working on print preview, within about six
months I was moved into O.S.2 to help with the graphical
interface because of my experience with Macintosh before
then and my experience in Windows.
In WordPerfect they have some code that is made to take
the application and marry it to the particular platform
you're on and then they have code that is independent. The
independent code is important, because then it can be
deported between the different computer programs and
operating systems that were used by WordPerfect.
So what they wanted me to do was to work on the code
that marries the engine, so to speak, or the core of
205
WordPerfect to that operating system. So I was doing the go
between code that put the engine on top of what was O.S.2.
Q. Are you familiar with the term shared code?
A. I am. That is what we called the code that would do
that, but it was shared because it would go -- WordPerfect
had multiple products, and at WordPerfect they had taken
that code and had one person write it so that they could
move it between the products, and that way the efforts of
one developer was leveraged across three or four products.
So it is like having three or four developers, one on each
team. So WordPerfect had spent much time in trying to find
pieces that would qualify for being shared code so that it
could be written once and leveraged across.
The other advantage is that anything that was not
shared code, the engine was then built on top of that and
that engine was allowed to move between products or between
platforms because of the shared code. So they were a matrix
of -- you're either moving it across the different computer
systems, like a mainframe or a Macintosh or an Amika
computer or a P.C., and you're also moving it across these
products, the presentations product for graphics or the word
processing product or the document management product or the
spreadsheet.
Those different products then would have code that was
shared across them, and that would give the products -- that
206
would give the people who use the products the same
experience with them. The behaviors would be the same, so
if you learned one product you would know how to operate all
of the other products in a similar way so you didn't have to
relearn each product individually.
Q. Going back a little bit, you mentioned that you were
working before on the O.S.2 with respect to a graphical
interface product.
Can you explain to the jury what you meant by graphical
interface?
A. Okay. That was one of the reasons for going to
WordPerfect. When I worked at Brigham Young University most
of the programs that we worked on were what we called
character interfaces, and the screen has no ability to draw
images that represent what you would print, or maybe if you
had pictures of things they were not able to be represented
on the computer in most programs.
Graphical interface -- people are commonly familiar
with the Macintosh, and it has always had a graphical
interface so that you could represent more than just the
hundred plus characters and a few symbols that are available
on a character interface. An example of a graphical
interface would be -- versus a character interface -- if I
wanted to do a wedding announcement and I wanted to put a
script hand on the characters that I was doing, in a
207
character interface it would just be able to put the text up
and I wouldn't be able to see what it was going to look
like.
If I had a picture of the couple that I wanted to put,
you know, on the invitation, I could maybe represent where
the picture was going to go, but I couldn't display the
picture. In a graphical interface I could actually show the
actual flowing script as it is supposed to be represented,
and I could actually position the pictures in there so that
I can give people a representation on the screen of what
they are actually going to get when they print that or
distribute that. That is where the term WYSIWYG comes from,
which we use in the industry, which is what you see is what
you get. It is a term that says that you basically have a
graphical interface underlying your program.
Q. Mr. Harral, are you familiar with something called
Premiere Support?
A. From which company?
Q. Microsoft.
A. Yes, I am.
Q. Can you tell the jury about that?
A. Premiere Support, from my understanding not having been
the one that actually paid the bill for that, it was -- as
an architect WordPerfect Corporation purchased Premiere
Support from Microsoft. It was a program where there was a
208
representative of Microsoft assigned to our company, and
WordPerfect had three Premiere Support representatives, and
they would be a liaison between WordPerfect to get detailed
help and support on either issues that we were having
problems with or maybe even working out ways that we could
solve tasks that we had in dealing with the Windows
operating system.
These were experts that could help us in moving our
development forward, or if we had discovered problems that
were not generally known they would enable us to, even if we
needed to, to get to the actual developers that had written
Windows so that we could work with them to resolve issues
that we had come across whether they were ours or the
operating system.
Q. Following your work on the O.S.2 platform and GUI, what
did you start doing at WordPerfect?
A. After I was working on the GUI I was then moved to
working on -- you mentioned the shared code. The shared
code grew into all of the file handling, so how you open a
file in WordPerfect, how do you save it, if you want to
select the file to open so that the file opened, and
dialogue is what we called it or saving, and we would have
the file safe as. We did the keyboard support.
WordPerfect was an international product. In the
European Union, all of the members of the European Union and
209
their governments had standardized on WordPerfect, and so
they had special keyboards set up that they would use, so
that if you were in Switzerland you knew the three different
keyboards that you were going to use whether it was German
or Italian or French. Those abilities to tailor the product
to what your work environment was were important to a number
of people.
Being able to, likewise, setting up the keyboard, and
you could also set up what the menus were, so you could have
tasks that were tailored to whatever business you were
dealing with. We had tool bars that put up buttons that you
could -- that would also let you customize it. You could go
through and record things that you did commonly, so that you
would press one button and it would play them back, and that
way people could actually capture work that they had done
and it made it very easy for them to do that.
The shared code system did all of these things with the
product and, therefore, we provided it to all of
WordPerfect's products as we did these things. There were
other things, internationalization, conversion of files,
conversion of graphics, there is a lengthy list of things
that shared code did.
Q. We'll get into more detail in a bit.
Can you give us a time frame for this work, the
beginning of this work of the shared code?
210
A. Okay. So shared code, and inheriting what had already
been done at WordPerfect, and we were working on shared code
as early as, you know, 1991.
Q. Do you remember when Novell purchased WordPerfect?
A. I recall that it purchased WordPerfect in 1994.
Q. Did your position change after the merger?
A. No, it did not. I had exactly the same position
afterwards as before.
Q. Do you recall generally how you reacted to the
announcement that WordPerfect was going to be bought by
Novell?
A. Amongst the developers that we had on our team we were
actually excited about the opportunity. WordPerfect had a
history of working with other companies and trying to
especially do network things, and that was one of the things
that WordPerfect had a strength in, was being able to work
on different networks, and Novell was one of the strongest
ones that we supported and we had a good relationship with.
So we were excited for the possibility of being able to
leverage, because Novell was moving forward with their
efforts, with the directory that they were doing and other
technology, so we were excited about being able to maybe
have a better partnership with them and integrate better
with that company.
Q. In 1994 then after the merger you said your job didn't
211
change. Do you recall what your title was?
A. I was the architect of the shared code.
Q. Would that make you one of the lead developers within
shared code?
A. It would. The architects at WordPerfect were very
hands on, and so we had programming assignments that we
would do. My day would be both dealing with architecture
and fulfilling my own tasks as well as going around to the
other team members to keep abreast of what they were doing,
because I was also a liaison with the other groups in the
company.
So if I knew that one group was working on something
that was interesting, I might find another group that would
want to use that, and so I was also conveying that
information between the developer groups.
Q. And the shared code that you worked on, was that also a
part of the Perfect Office suite?
A. It was. Shared code -- when Perfect Office released
shared code shipped with Perfect Office as well.
Q. Do you remember when Corel later purchased WordPerfect
from Novell?
A. I think it was in 1996.
Q. Did your position change after the sale to Corel?
A. No, it did not.
Q. Did you change offices?
212
A. No, I did not.
Q. How long did you continue to work for Corel?
A. I was there for about a year, as I recall, maybe a
little more.
Q. What happened next?
A. I was hired by Novell to go and work in their advanced
development group.
Q. What was your position when you returned to Novell?
A. I was in -- the advanced development group was an
entire group of people and they were all architects, so I
was a software engineer consultant. I was an architect that
would go out to other groups and even other divisions and
work with them for awhile with the interests of Novell in
general interjected into that group for the time that I was
working there.
That meant that I would not even know what office I
would be in from month-to-month potentially or even what
country, I guess.
Q. When did you leave?
A. Novell? In 2003.
Q. What were the circumstances of your departure?
A. They had layoffs, for which Novell is almost known for
in this valley, but they had layoffs and they had let go a
number of people, including the division that I was in at
the time, and so I left at that time.
213
Q. Let's go back and talk a bit about the evolution of
shared code. You told us earlier while you were working at
BYU that you were working on the DOS and the Windows
platforms.
MR. JOHNSON: Can we put up, Mr. Goldberg, figure
one, please.
BY MR. JOHNSON
Q. Mr. Harral, this image should display on the screen in
front of you, and the jury gets to see it on that big board
behind you, but you can look at it on the screen there in
front of you.
Can you tell us what this image is?
A. This looks like the command prompt for DOS on a P.C.
Q. Does it accurately represent a screen shot of the DOS
operating system?
A. It is one screen shot of the DOS operating system,
probably waiting for somebody to do something.
Q. Do you have any experience working with Windows 3.1?
A. At WordPerfect I did have experience working with
Windows 3.1.
Q. And was Windows 3.1 a character based operating system
like DOS shown on the screen?
A. It is not. It runs on top of DOS, but it is not a disk
character based operating system.
MR. JOHNSON: Can we put up, Mr. Goldberg, figure
214
two.
BY MR. JOHNSON
Q. Mr. Harral, what is this image?
A. This is Windows. We have the program manager here
where it is showing us different programs in Windows that we
could launch and then use.
Q. Would this program manager be something that was
present in Windows 3.1?
A. Yes. Actually, in looking at the little buttons in the
upper right-hand corner, because they are shaded in
different shades of gray, that would make me think this is
Windows 3.1.
MR. JOHNSON: Mr. Goldberg, could we see those
images side by side for a moment?
BY MR. JOHNSON
Q. You already described the differences between the
graphical user interface and DOS.
Did you earlier?
A. Yes.
Q. I think we'll just move on.
What was the acronym you used to describe the graphical
user interface?
A. One thing you can do in graphical interface, is if
you're trying to display something -- trying to present
something that would be like a printed document, and we call
215
it WYSIWYG, which means that you're seeing what you're going
to get when you print it or when you produce it.
Q. When you first started working in WordPerfect, can you
tell us how many different operating systems that
WordPerfect was written for?
A. I can't tell you how many, but I know there were over a
dozen.
Q. Can you name a few for the jury?
A. They ran on Deck computers, P.D.P., they ran on
Macintosh, on the Amika, on the P.C. and DOS and in Windows
and in O.S.2. I am talking about in general the company,
not a particular time period. I know that WordPerfect was
originally written for a mainframe for the City of Orem and
they maintained that version of it as well. So they were
not constrained to one platform or one computer. They had a
number of clients and they maintained -- NeXT was another
one that they worked on, which was a successor with Steve
Jobs and his efforts at Apple.
Q. Are you familiar with a process of deporting
WordPerfect code from one operating system to another?
A. Yes, I am.
Q. Can you explain to the jury generally how that works?
A. So when we wanted to move to a new platform, because
WordPerfect had made efforts to isolate its engine from the
code that would need to be there to run on the operating
216
system on the computer, the deporting process would be to
take the marrying code or the shared code and go and produce
that on the new operating system.
So if I were going to move from DOS to the NeXT, which
was a graphical computer, I would first have to take the
shared code and I would have to retool that and figure out
on the NeXT how do I allocate memory? How do I -- what kind
of Windows do they want to put up? How does the programming
in that environment want to open a document? How does it
want to save it? In trying to learn in and out what is
going on in that system, and then we would deport all that
code and reproduce it on that other platform.
Once we had reproduced that code, then we would take
the engine and the engine would hook into the code that we
produced so we didn't have to rewrite the engine. It was a
very efficient way to move product across operating systems.
Q. So when WordPerfect decided to support a new operating
system, did the developers have to start from scratch when
writing a new version of the product?
A. No, they never started from scratch. If they did start
from scratch it was for the design of that particular
entity. It was never -- it was never mandated by a move to
an operating system to do that.
Q. In terms of percentages, can you give us a percentage
of how much of WordPerfect and the word processing
217
application was shared code versus the engine?
A. The shared code would have been about one third of the
product.
Q. Did the engine code actually talk to the operating
system or was that solely the business of the shared code?
A. It was not solely, but it was rare -- it was rare for
the engine to talk directly -- the reason that it might do
it, is if there was a feature that the engine needed
specific to that product, where it was not in the interest
of shared code to bring that across all of the products,
then that product might go directly to the operating system
to get that feature or that capability.
But most of the features in dealing with the operating
system were the shared code and the engine did not do that.
We call that in architecture -- we call them layers or
tiers. We call that violating the layer if you go down past
a layer that you have defined, if you go directly to some
layer below you that you are not usually supposed to talk
to. There are reasons to do that, but it was not -- it was
hardly ever done.
Q. Are you familiar with the term Perfect Fit?
A. Yes.
Q. What was Perfect Fit?
A. Perfect Fit was -- one of the things that we did with
shared code is that WordPerfect Corporation had partner
218
companies. Because we had built up this abstraction, an
abstraction and basically taking the operating system and
presenting something that the program could write to that
was the same across all of these different platforms, we had
a number of partners that had multiple computer systems and
it was useful to them to be able to write to one code base,
the shared code, and that was not changing as they moved
between these different computers or as they brought in new
computers.
WordPerfect had always published some portion of the
shared code, and as Windows moved on all of the shared code,
as a resource that other companies could use. When Novell
acquired WordPerfect they productized the shared code and
turned it in and branded it Perfect Fit.
Q. So it was just a name for shared code?
A. It was just a name for shared code.
MR. JOHNSON: Mr. Goldberg, can we put up figure
three, please.
BY MR. JOHNSON
Q. Mr. Harral, can you tell us what this image is?
A. This has some of the elements of three of the products
of WordPerfect.
Q. What are these things called?
A. Well, each one of them is a window, and so we have
WordPerfect, QuatroPro Presentations, and we have the menu,
219
which is the white bar right underneath the blue banner, and
we have underneath that the tool bar, which was the buttons
that I had mentioned earlier that you could invoke. And
then there is a status bar underneath that. We have three
products here represented with the Windows.
Q. Is this an accurate representation of the types of tool
bars your shared code team was responsible for?
A. Yes, it is.
Q. Is this a part of what was called at Novell Perfect Fit
technology?
A. Yes. Actually the menus, the button bar, the status
bar, all of these things were provided to the applications
by shared code.
MR. JOHNSON: Mr. Goldberg, could we see figure
four, please.
BY MR. JOHNSON
Q. Mr. Harral, can you tell us what this image is?
A. This looks like WordPerfect, and it looks like that we
are editing a document in it.
Q. Is it an accurate representation of the WordPerfect
application for Windows 3.1?
A. Yes. Actually I was going to say it looks like 3.1,
again, because of the gray buttons up in the corner. Yes,
it is.
Q. Can you explain generally looking at this image what
220
aspects of this product were shared code's responsibility?
A. Starting at the top going down, the menu is -- I talked
about how businesses could customize the menu to their
needs. The menu was provided by shared code, as far as its
layout and how it is tied to the keyboard. In the white box
that is new, open, close, et cetera, that is placed over the
top of the document is a menu drop down. You can see on the
right-hand side some of the keyboard keys that are tied to
those. That is shared code.
Managing the keyboard underneath, the controlled --
then underneath the tool bar, the tool bar is managed by
shared code. Some of the features on the tool bar like cut,
copy and paste would be managed by shared coded. Underneath
that the little drop down that ways full 1.0 tables, those
controls would also be shared code that were provided to the
different applications. So when they wanted to present like
how do you pick a color or how do you type in text for a
search? Every product has the same international character
capabilities and the same way to pick colors and so it is a
consistent look across them.
On the bottom there is the status bar, and that status
bar would also have been maintained by shared code. Those
are some of the visual elements here that are maintained by
shared code.
Q. In terms of a typical development schedule, can you
221
please describe for the jury the relationship between the
shared code and the individual applications?
A. Because the shared code was the foundation for them
being able to move their application, the shared code would
be scheduled out six months to a year in advance of the
regular applications to be able to establish its footprint
or its workings on that platform, so that the engines could
then move and have a way to test and to be able to track
their progress on top of it.
And also in that time frame it would give shared code
some time to harden so that they could learn about the
operating system and how it was supposed to work, and being
able to recommend to the product -- so like to WordPerfect
when they were to move over, to recommend to them, oh, you
don't want to have the scroll bars on this platform, you
don't want to have them on the side like you have them here.
You want to have them on the left-hand side or whatever the
standards were for that platform.
Q. You mentioned that the shared code team would do their
work first, and then they would provide this shared code to
the applications for their development?
MR. TULCHIN: Objection, leading.
THE COURT: Don't lead.
MR. JOHNSON: Thank you, Your Honor.
BY MR. JOHNSON
222
Q. During the time that the applications would be --
people would be working on the product, what would the
shared code team be doing during that period?
A. Okay. So while the team was working on that same
platform, the shared code would be -- many times when we
would move shared code in anticipation of the product coming
over, the shared code also had other responsibilities. They
had relationships with the different groups. Not all of the
shared code was owned by the shared code team. We had a
standalone spell checker. We had a standalone thesaurus.
We had a grammar checker. We had the quick finder, the
technology that would search documents for you, similar to
the work that I had mentioned I had done at BYU.
We had converters that could take any kind of -- most
any kind of competitor's document or our own from previous
versions and convert them to WordPerfect's current format
and convert them back. We had the same for graphical
formats. And so all of these other features were things
that we provided when we put our program down but were not
necessarily tied to applications. So we would be working on
these other outlying pieces to make sure that they were up
and going. They were not necessary for the other products
to move over, so it allowed us to do a dualism of
development, where we could finish out what shared code was
on the platform and do our development, and at the same time
223
helping the application to come up on the platform, but that
way it allowed us to do parallel development of the
products.
Q. Have you ever heard of the term critical path?
A. Many times.
Q. What does that mean in the software development
context?
A. When you schedule out the development you look at the
tasks that you have, and you then take the people that need
to do those tasks, and you chart out how much time they have
on those tasks versus other tasks, when they have time off,
and you are looking at what are peoples' availability and
how much work they can get done. The critical path is the
connection through the timeline of the people that if they
change the dates and need more time everything will move
with it.
For example, if to get WordPerfect to run I needed to
have a display engine to show the WYSIWYG before I could
test the find and replace feature, then all of a sudden the
display mechanism for the WYSIWYG is required before I can
get to the other tasks. You look at all of these required
tasks, and the ones that make the date the longest, in
looking at who is doing it and how long it will take, if any
date changes in that timeline that is the critical path
because one day added there will move everything out a day.
224
Q. Based upon your years of experience would it be unusual
or usual for shared code to be critical path for releasing a
product?
A. It would not be usual. It would come in -- they would
have time to do it, but it would not be usual.
Q. You told me earlier that shared code was given a
marketing name Perfect Fit. Are you familiar with a program
called Perfect Fit Partners?
A. I am familiar with the program.
Q. Can you tell the jury about that?
A. Perfect Fit Partners -- I am aware of it because of
shared code providing it with what Perfect Fit did. It was
the outside marketing for it. Perfect Fit Partners were
people who had licensed or agreed to use the shared code
outside of the company for whatever reason they had.
Q. Are you talking about third party developers here?
A. Yes, I am.
Q. How did that work vis-a-vis the shared code?
A. Shared code -- we were aware that we were providing our
resources not only to people inside of WordPerfect and
Novell but to companies outside. The only real difference
that we had is that we had a documentation team that would
work with the shared code team and work out what would be
the public documentation that we would present.
We also had support people that would help these
225
partners. If they had like Premiere Support, which was for
Microsoft, we had support people that could be called upon
to help them in using Perfect Fit or shared code. So the
shared code team itself didn't have anymore -- we were in
the mode of providing for applications so it didn't impact
us a lot, but there was this other part of the organization
that interfaced with us commonly to be able to support the
Perfect Fit Partners.
Q. What type of functionality was available to these third
party developers through shared code?
A. The short answer is everything that shared code did,
file viewers, file converters, all of the interface pieces
that you are seeing with the button, bars and the keyboards,
and the macro system and being able to capture commands and
play them back, and being able to write inside a WordPerfect
document. People could write their own applications and use
the WordPerfect document format, and then do what they
wanted to with it, so everything shared code had was
available to them.
Q. You mentioned that these third party developers could
write their own applications as you said. How did they use
the shared code to do that?
A. The shared code is a -- in software development you
have applications and sometimes you'll write what are called
libraries. A library is a piece of an application and it is
226
intended to go side of some other application. So the
shared code wrote libraries, and whatever was necessary for
either our own application or somebody outside of the
company to give them a description of what that application
is are called the APIs, the application programming
interface.
Those APIs, then, enable either our products or some
other product to be able to understand what we were giving
them to the computer, and so by describing what we were
giving them to the computer and the associated documentation
for the developer, they would be able to then write their
applications and compile it against our libraries and use
them in their products.
Q. Mr. Harral, would you like to pour yourself a glass of
water there?
A. Yeah.
Q. I thought that might be the case.
A. My wife will think I'm over my quota.
Thank you.
Q. You're welcome.
Are you familiar with the term Perfect Fit Tools?
A. That is kind of vague for me.
Q. How about Perfect Script?
A. Perfectly Script I am definitely familiar with.
Q. Can you tell the jury about Perfect Script?
227
A. WordPerfect back clear into its days on DOS, and
WordPerfect had the ability to when you did work to capture
that work how you did it so that it could replay that work
for you. And basically it was like making the computer run
automatically with things that you had done before. It
learned, in a way, from what you had told it that you were
doing and then it could do that again, you know, a number of
times or you could change how it was done. This we called
scripting, because you're capturing what it is doing and you
are treating it like a script that it should do again.
In WordPerfect, one of the powerful elements of it is
that not just for programming, but this allows for somebody
who was not technically intense to also be able to use the
product to capture what they had done and then to replay
that. And WordPerfect was very meticulous about allowing
every feature that it had to be what we called scriptable so
that it could participate in this, so that people could be
very complex and very precise about what they were doing,
and they could produce in high fidelity what they had asked
it to do.
Q. And could those third party developers use this Perfect
Script?
MR. TULCHIN: Objection, leading.
MR. JOHNSON: Could, Your Honor?
THE COURT: Overruled.
228
MR. JOHNSON: Thank you.
BY MR. JOHNSON
Q. Mr. Harral --
A. Yes.
THE COURT: You don't have to thank me for my
rulings. I will make then one way or the other.
THE WITNESS: Perfect -- the recording facility,
the scripting facility was part of shared code, and that
scripting facility was made available to every developer
like every other piece of shared code.
BY MR. JOHNSON
Q. Are you familiar with WordPerfect's open interface
APIs?
A. Yes, I am.
Q. Can you tell the jury about that?
A. From an architecture -- for a software perspective we
had talked to the WordPerfect applications -- in moving the
product forward we caused the product to have a division.
For example, if you wanted to do a search for a word inside
of the document, you would be presented with an interface
and you would then tell it what is the word I want to find.
You might say I want to skip this so many times and you
might be looking for a particular place in a paragraph for
that word.
The presentment of that question to you is what we call
229
the view. It is where it asks the question and collects the
information. This is a key to how scripting and other
technologies would work. It would then capture that
information, and then it would go to the engine and it would
tell it, okay, here is what they said to do, now do it.
One of the things that we allowed in our WordPerfect
product, is that means that there is a clean division, those
tiers, there is a clean tier there between collecting the
information and telling the engine to do it. We built a way
for somebody to be able to come in and intercept that
request to do that work. So if you wanted to -- let's say
somebody said do the grammar check. If you wanted in a
company to impose a totally separate set of rules and a
totally different artificial intelligence of how to do the
grammar check, you could insert your own piece of code in
there and capture the request to do the grammar check and do
whatever you wanted to.
Having had access to all of the shared code and all of
the other scripting interfaces, you could then totally redo
what WordPerfect would do with that request. So this open
API basically lets you capture anything that WordPerfect
could ask the user to do, and you could rewrite what it
would actually do at that point when it crossed that tier.
Q. You have talked about the various technologies and the
Perfect Fit and Perfect Script and WordPerfect's open
230
interface APIs. Were these technologies a part of
WordPerfect?
A. They were included in WordPerfect.
Q. And were these technologies then also included within
the Perfect Office suite?
A. Yes, they were.
Q. Have you heard the term where users lived used in the
software industry?
A. Yes.
Q. And what does that mean?
A. When somebody uses a computer the question is one of
what are the things that they use to do their work and what
are they comfortable doing? I work in developing software
so I have a software debugger and a software compiler and I
have those things up. I might have mail up. That is where
I live.
My brother, he works on designing ads for a telephone
book company. He lives inside of an Adobe product where he
is building graphics and he is laying out text for an ad.
Somebody else who is doing research on the Internet and
interacting on Facebook to look at, you know, how is my
married daughter doing in North Carolina, you know, okay,
that person is -- where you live are the programs that you
are comfortable with and what gives you the ability to do
what you want and where you can easily do that.
231
If you get into areas and pieces that are uncomfortable
you feel like you're lost. You feel like you're -- at least
I do -- I feel like I'm lost, and I guess I won't impose
that on you, and so I tend to use what is easy for me and
stay away from things where I can get confused or I feel
like it is not working for me like I want it to. So where
you live are the things that you are comfortable doing on
the computer.
Q. Was WordPerfect historically designed to be one of
these places were users lived?
MR. TULCHIN: Objection, leading.
THE COURT: Rephrase it, if you can.
BY MR. JOHNSON
Q. Was or was not WordPerfect historically designed to be
a place where users lived?
A. It was designed -- I can say from DOS before I joined
WordPerfect, my experience was I had seen many people use
WordPerfect in just this way, that it would be the only
program that they would start up at the beginning of the day
when they came into their office, and they would do
everything that they did -- they would not go out to DOS and
manage their files there, which is what DOS was intended to
do in the run application, and they would start at
WordPerfect and they would stay there. There would work on
their documents and they would save them and they would
232
print them, and they would correspond through whatever
e-mail capabilities they had, but they would live in
WordPerfect.
Q. Did you have any conversations with Microsoft's
Premiere Support about living in WordPerfect?
A. I guess the answer is yes, because everything that we
did was about that. And so, yeah, we talked to Microsoft
about the fact that our interests and the technologies that
we had, and that those technologies for our users were about
a holistic environment. Everything that they did -- they
came to expect a lot from us, not just in the word
processor.
Q. Are you familiar with the term middleware?
A. Yes, I am.
Q. What is middleware?
A. Well, simply put, shared code is middleware. It is
something that is produced either with the intent to bridge
technologies -- an example nowadays would be Adobe Flash.
It is a product that you can run presentations in or do
graphics in. When you go out to the Internet there are
games that are written in this. It can't run without the
operating system, but it is not intended for me to use
directly. Somebody else is going to use it to produce what
they have as their purpose in writing that application, so
it as a tool that they are using.
233
So middleware is something that is produced that sits
in the middle that people would use usually because it
either saves them time or is more powerful than what they
could do with the expertise that they have to be able to
write the product that they want.
So, for example, with shared code we had a long history
of internationalization and being able to represent eastern
characters, middle eastern characters, and how do you type
those in when you're trying to do a search? How do you
display those? What does it mean when I am in Switzerland
and I am on a Swiss keyboard trying to search for something
in an Arabic document?
In shared code there was a whole set of features that
would help programs figure that out and work through that
problem, and so somebody would want to purchase shared code
or license it as middleware, because they could use all of
that internationalization instead of having to figure all
that out and hire the people that would have the expertise,
you know, for years to do that.
Q. Have you ever heard of the term appware?
A. I have heard of the term appware.
Q. What was appware generally.
A. Appware was -- in the computer industry when we write
with languages there is a term they use called forth
generation languages. A fourth generation language is a way
234
to hopefully let real people, as opposed to developers, to
let real people do something with programming. You give a
person -- I guess a way to describe it is building blocks.
The only thing that comes to mind is my 12 year old. She is
writing programs with Legos right now, but she doesn't know
how to program, so what she does is -- they give her an
environment and they say, oh, here is something that will
make your little robot go forward. Here is something that
will make your little robot turn, and so they take these and
you start dragging them and connecting them.
If I put the go forward ones for ten steps and then the
turn right one in there, she is actually programming but the
interface, the graphical interface that she has is
presenting the programming concept in a way that she
understands what her task is and how to do it. Programmers
and traditionally what they do is they have to learn about
the computer. They change themselves to it.
Fourth generation language goes the other way, which is
it says, no, I'm going to change the way I talk to you and
give you things that you can deal with, and then that will
let it understand and then write a program for you. Appware
was a way to take shared code and other WordPerfect
technologies and present them in a conceptual fourth
generation way that other people could write programs and
you wouldn't have to employ a programmer to write programs
235
for your business.
Q. So was appware or was not appware middleware?
A. Appware is middleware and it enables -- because it
provided the libraries, which are the middleware, and it
provided the interface as well, which let them use the
middleware.
Q. Was appware a part of the Perfect Office suite?
A. It was part of the Perfect Office suite.
Q. You previously told us that you were the software
architect on the shared code team from 1991 to Novell's sale
of its business applications to Corel in 1996.
MR. TULCHIN: Objection, Your Honor. He didn't
provide any dates.
MR. JOHNSON: Well, he did, Your Honor. He said
he started there in 1991 and he told us when he went to
Corel.
THE COURT: Overruled.
MR. JOHNSON: Thank you, Your Honor.
Sorry for thanking you.
BY MR. JOHNSON
Q. Were you involved in developing the shared code
utilized by WordPerfect and the other office productivity
applications within the Perfect Office 3.0 suite?
A. Yes.
Q. Was that suite released after Novell bought
236
WordPerfect?
A. Yes, it was.
Q. Do you recall generally how the Perfect Office 3.1
suite was reviewed in the industry press at the time?
A. I remember that it was well received. As with any
product there are different publications that are looking at
different parts of the product. A review in a law firm
magazine might be looking at the document management
capability and think it is really good. Another one is
looking at graphical capabilities and may think that there
are things that they wish that it had more of. But the
feeling that we had is generally that it was received very
well.
Q. If you would take a look at Plaintiff's Exhibit 390 in
that binder that you have up there and holding in your lap,
and --
A. Yes. My lap is very warm because of it.
Q. If you would turn to the last two pages of that
exhibit, which is a list of excerpts of reviews of Perfect
Office 3.0.
A. Okay.
MR. TULCHIN: Objection if these are being offered
for the truth, Your Honor.
MR. JOHNSON: Your Honor, there was no objection
to this exhibit whatsoever. It is simply being offered to
237
show what the industry was saying about Perfect Office.
THE COURT: It is what the industry was saying --
I mean, it is a very subtle distinction. It is not the
truth of what is in here, it is being introduced for what
the industry was saying about it.
MR. JOHNSON: Thank you.
THE COURT: If you can understand that
distinction, you're better than I am.
BY MR. JOHNSON
Q. Were these some of the reviews that you were talking
about?
A. Can I have a second to read them?
Q. Sure. Go ahead. Take your time.
THE COURT: Just to clarify, the reason that there
is a distinction is that what the industry was saying may
affect other people. So obviously you can read the review
and you may think it is good, but that really is where --
you know, the reviewer is not here and he can't be
cross-examined or she can't be cross-examined as to why they
thought it was good, so it really can't be introduced for
the truth of the evaluation, but people may respond to
reviews, and that really is why it is admissible.
THE WITNESS: To answer your question, yes, these
are some of the -- some of these are actually some that I do
remember, so they seem to be a selection of the reviews that
238
were there.
BY MR. JOHNSON
Q. For Perfect Office 3.0?
A. Yes.
Q. Did Novell's business applications compete with
applications built by Microsoft?
A. Yes.
Q. Are you familiar with Microsoft Word?
A. I am.
Q. And was that a competitor of WordPerfect?
A. We felt that it was at WordPerfect, yes.
Q. And are you familiar with a product called Microsoft
Office?
A. I am familiar with Microsoft Office.
Q. What was Microsoft Office?
A. At the time that we were working at WordPerfect we were
concerned with Office having Word, word processor and Excel,
which allowed people to manipulate numbers and type in data,
and there were other products that they had as well that
might come and go, but we were concerned with the ones that
we had. Powerpoint, which would do presentations.
Q. Did Perfect Office 3.0 compete with Microsoft Office?
A. Yes.
Q. Did Novell try and differentiate its products, its
application products in the marketplace?
239
A. I am not understanding the question. Did we
differentiate ourselves from Office?
Q. Yes.
A. We felt that there were things that made us different
than Office did and that we -- okay. When you write
applications you feel like, based upon your legacy and the
markets that you want to go to, that there are things that
you feel you want to meet.
So, for example, if I am writing a product on
Macintosh, the graphical environment and being able to
present it well is a bigger deal to those users than it
might be if I'm working on a DOS product where it is
character based. The expectation is different. The reason
people move to Microsoft is different. One product you
might write to take advantage of certain features to certain
users. We felt at WordPerfect that our users -- our
scripting capability and being able to reduce work, that
those were key reasons why people had made an investment, so
we felt that there were some features about our product that
would differentiate us from the other products that we were
competing with.
So if somebody felt like that Word had a really cool
way to be able to navigate their pictures, that might be
important to somebody so that may tip them towards that
product, where if somebody felt like that our ability to be
240
able to transact documents in an international forum, that
if we had strength in that area that might tip them to us.
So, yes, we felt that we had features that differentiated us
from our competition.
Q. What were some of those features that you felt did
differentiate you at WordPerfect?
A. Differentiate. Some of the features that we had are
that we felt that our international capabilities were very
important to our users. We felt that not only could you
script our product, but then you could take the scripts and
you could modify them. So you might use the scripts to
build a product framework, and then you might go in and say,
well, I didn't really mean just that word. I want to be
able to enter in a word when I run this and have it, you
know, search for that word through these 500 documents and
change it.
So you might go in and with, you know, fourth
generation language you might just tweak it a little bit.
This customized ability we felt that we had since back in
the -- actually in the mid 1980s we had been working on
these technologies, and that we had a superior offering in
that regard. The spell checking and the thesaurus -- the
spell checker was the most comprehensive in the industry we
felt at the time. We had grammar checkers. So many of the
tools that we had -- we also were pushing the interface
241
area, and so customizability -- a lot of the things with the
shared code were held to be things that were leading in the
industry.
Q. Was there any differentiation with respect to the
document management system offered by WordPerfect?
A. The document management system that they acquired was
Soft Solutions. The document management system -- okay. We
felt that having a document management system included in
the product was a keen offering in being able to manage
documents in businesses. When we talk about document
management it is -- I guess there are two pieces to that.
One is that I can manage the documents through the file
system, and WordPerfect -- back in the DOS days WordPerfect
had put what we call long names. It is names of files that
you actually like to read as opposed to some of the things
that you can find when you get lost and go searching around
on the hard disk in your computer.
In DOS, in the versions back before Windows, the file
system didn't have much of an ability to have nice names or
names that you would like for your documents. Macintosh
would be an example that from its beginning had nice names
and things that you would recognize and that I would
recognize as names. WordPerfect in the DOS environment,
they actually did their files so that you can include nice
names, so when you went and looked for your documents inside
242
of WordPerfect it showed nice names for you. So it is
trying to speak to the users in ways of trying to bridge
this barrier, so that you didn't have to deal with the
computer and its quirks, but the way that you wanted to deal
with it.
It would help you. The quick finder technology it had,
if you didn't know where you had put that document, where it
had put it, and sometimes it puts it away and you don't know
where, with the Quick Finder you could go and you could type
some of the information or a word that you had in it and it
would go out and search out through the machine and try to
locate that document for you.
It would let you move documents and groups of
documents, so things that we think of as common in the
operating systems that we deal with today, WordPerfect was
doing back on DOS, which was one of the things that people
really liked, because they felt like they were not having to
fight with the computer to do their business as opposed to
its business.
Later on with document management WordPerfect even
acquired a document management system so you could get even
get different versions of documents. So when you wrote your
document -- and then my wife, and we are in the same
company, and she writes the next version, because she found
my spelling errors in it, then she writes in it, and if I
243
want to go back and see what she had changed, I can in the
document management system and I can go between them.
WordPerfect kept both in the file system and in its product
and in the offering it made to people, was trying to keep
abreast and ahead of what people were wanting to do in their
companies to solve their problems.
Q. Was there any differentiation with respect to
WordPerfect's printing capabilities?
A. Yes, there was. You know, as was said before, I was
hired into the printing group. WordPerfect -- one thing
that was unique about it -- now days when you put a printer
on a computer, especially like a Macintosh, and Windows has
gotten very good at that too, where it says I know what this
printer is and it hooks it up.
When I was back working, back on computers when I was
14, 15, 16, when you wanted to hook up a printer you had to
actually go get the printer and you had to figure what the
printer wanted to talk to, and I would have to go in and
make a cable. I would have to solder it together and put it
together, because there was just so little support for doing
those kinds of things.
What I found very interesting when I got to
WordPerfect, was that they had a relationship with, from
what I could tell, all of the major printer manufacturers.
And those manufacturers would deliver printers to
244
WordPerfect. Whenever a new printer was coming out they
would deliver a printer to WordPerfect, so that WordPerfect
could -- because WordPerfect wrote the drivers for those
printers. It was not the manufacturer that did that. So
they had accumulated a huge set of drivers that they had
written for. My understanding is that it was over 400
printers that they had worked with.
Most of the operating systems out there didn't have
support for a tenth of that that we had defined. And so
WordPerfect was really known that -- it was known that --
you were not buying this at the time to transmit it
electronically because that form really didn't exist. You
were buying this to print stuff. You can do all the editing
in the world, but if can't print the document and mail it
off to somebody, and if it does not look the way you wanted
it to look then, you know, it does not do you any good. If
you bought a printer and it wouldn't work with your product,
then you just wasted money.
And so WordPerfect had a huge investment in printing
and they carried that forward into Windows. It was one of
the reasons that people stayed with WordPerfect, is that
when we moved into Windows we kept that printing system,
because we could print to many more printers with a higher
fidelity than other Windows applications could by using
those print drivers and bringing them ever into Windows. So
245
you could go into the print dialogue and say use Windows
printing or use WordPerfect printing. That feature was very
important to our customers.
Q. And you mentioned that operating systems at the time
had a tenth of the capability?
A. That was what we felt. In fact, there was a quip going
around amongst developers, because I had access to --
MR. TULCHIN: Objection, hearsay.
THE COURT: Sustained.
THE WITNESS: Okay.
BY MR. JOHNSON
Q. Would those operating systems include Windows that had
a tenth of the capability?
A. Yes, it would.
MR. JOHNSON: Mr. Goldberg, would you put up
figure five, please.
BY MR. JOHNSON
Q. Mr. Harral, can you please tell us what this image is.
A. This appears to be the file open dialogue box from
Windows 3.1.
Q. Does this image accurately depict the Windows 3.1
common file open dialogue?
A. Yes, it does.
MR. JOHNSON: Mr. Goldberg, could we have figure
six, please.
246
BY MR. JOHNSON
Q. Mr. Harral, can you please tell us what this image is.
A. This would appear to be a file open dialogue box from
WordPerfect on 3.1.
Q. For WordPerfect that worked on Windows 3.1?
A. Yes.
MR. JOHNSON: Mr. Goldberg, could you put these
images side by side.
BY MR. JOHNSON
Q. Mr. Harral, looking at these images, can you please
help the jury understand why WordPerfect's custom file open
dialogue was different, if it was, from the Windows common
file open dialogue?
A. So when WordPerfect, in trying to work with what its
customers felt were important in getting their work done,
there are some pieces here that were significant. On
WordPerfect -- I guess going through the open dialogue for
Windows first, you can type in the name of the file that you
want, and it is showing you in the middle there there is a
view of different what are called directories. They are
places where you can store files that you want. You can
switch what drive you are on below that list, so the drives
pull down. You can constrain it to what kind of files
you're looking at, so over on the left-hand side are file
types.
247
So if I was looking for a graphical file I could go in
there and I could --
Q. Mr. Harral, excuse me for interrupting you. I am going
to give you a laser printer -- pointer.
I have printers on my mind.
A. I promise not to shoot anyone.
Q. You can point to things that you want to talk about.
You just press that red button there.
MR. TULCHIN: Your Honor, as long as there is a
minute, I wonder if at some convenient point I would get
copies of these figures that are being shown to the witness?
THE COURT: Of course.
MR. JOHNSON: Sure.
THE COURT: You're entitled to them.
THE WITNESS: This will be easier. Okay.
Here we have what we call folders. There are
directories and there are locations. This up here, the C
colon, they are drives, and you can see that drive down
here. Drives are physical devices. Usually on a computer
you can have multiple drives. In fact, over here this is an
A drive, and that is usually a floppy drive, where the C
drive is usually a hard drive. We're looking at something
on the C drive here, and we are looking at documents in the
Windows directory.
Down here is the list of files. We have directed
248
it to look at only text files, so I am not seeing program
files or graphic files or anything like that.
Up here is a little box where I can tell it what
file I might want to look for. If I only wanted files that
started with S I could tell it up here that. That is about
the capabilities of this dialogue. So with WordPerfect's
history we had some of the same elements. We have the
files -- thank you.
We have some of the files here. We have where I
can type in what name I'm looking for. Down here it is
saying I want to see all files, so this is similar to the
files and the drives were similar.
So then there are some differences that
historically WordPerfect came by with what its users wanted
to do. They didn't like going out to the fill system and
looking for these cryptic names. In DOS the names
traditionally were confined to eight characters. You had to
name your whole file within eight characters, and the back
end of the file could have at most three characters, which
is why it only has three there.
WordPerfect -- a couple of things. It knew from
experience that people had places that they commonly
visited, and so this quick list over here are places like,
oh, this is where I keep my documents. This is where I
print things. Here is where I keep my sound clips that I am
249
going to put inside of my document if I am doing a
presentation. You can jump to those places.
The point here is that these are capable of being
in other places, but here is where you live and so here is
where they are. I may want to view a document. I don't
want to go out to another program and do that. I want to do
it here. You can bring up a viewer. Here is the find that
I talked about and being able to search right here, because
I am not out starting a program in program manager and
thinking about what does this document look like. I am
concentrating on the program first. We want to be
concentrated on your work. Sorry. WordPerfect wanted you
to be concentrating on your work. So you're trying to bring
all these features here.
Now, this is where people had to live in the
product. I could go and make changes to the network and, as
I said, WordPerfect had traditionally very strong ties to
the network. File options. I might want to modify the
file. If I couldn't save a file because it was read only,
where somebody had marked it and said I don't want you to
change it, and then I am looking at it and it is like, no, I
need to change it and I may need to change it. All of these
features -- also, I'm displaying information about the files
to give as much information as possible. If these files had
been WordPerfect files, documents, there would actually be
250
long names here like you would find on a Macintosh. So all
of this information and different abilities -- because we
had been so focused on where people lived, these things were
expected of the customers that we had.
Q. Are you familiar with the term evangelism as used by
Microsoft?
A. I am aware of the term evangelism as the industry uses
it with software.
Q. How does the industry use it with respect to software?
A. When you write -- going beyond writing the product you
aren't just going to solve the problems that are before you.
If I'm trying to move WordPerfect from one platform to
another, that is a more mechanical process. I have a set of
tasks. I have a set of tasks that I need to do, and I can
charge them out and I can figure out what is the critical
path. But if you're going to do something -- things will
happen and a customer will ask for something and they will
tell us I have this problem and you're like, oh, that is an
opportunity. There is --
MR. TULCHIN: Same objection, Your Honor.
Hearsay.
THE COURT: I don't think so.
Go ahead.
BY MR. JOHNSON
Q. Go ahead, Mr. Harral.
251
A. With a customer coming to us and telling us that they
have a problem to be solved, and you look at it and say that
is an opportunity, so we are now not moving existing code,
we are looking at something new that we want to solve a
problem with.
Now you have a task, or I have a task, if I were
evangelizing technology, I have a task of going out to the
people in my own company or to the partners that I have or
in the press and convincing them that this is something that
I need to do. If I convince them, then those features or
those projects will move forward. If I fail to convince
them, then it will languish or we'll go in and look for
something else to do.
That causes bad things too, because if I have to go
back to that customer and say -- if I go back to them and
say, yeah, we're going to do that and here is how we're
going to do that, then all of a sudden I have improved that
relationship and they are looking forward to that work
because it is going to solve their problem.
If I go back to them and say we are not going to be
able to provide that to you, then I am damaging that
relationship. So we were always looking for opportunities
to bring new technology into the product. It would be my
job or some of the other people who were evangelists in the
company to promote those new and what we felt were forward
252
looking changes to both people inside and outside of the
company.
Q. Can you bring that, what you have just been talking
about, in the context of Microsoft and the evangelization of
the operating systems being built by Microsoft?
A. WordPerfect, all the way from DOS going forward, and
for the time fame that I was at the company -- well, and
even before when I was working at BYU, I had access to
representatives at Microsoft, and as they would produce
their products, either operating systems or applications,
they would also be evangelizing those products to us. They
would be telling us that we should really move to O.S.2. We
should really move to Windows. We should really move to
N.T., and telling us the reasons why the things they were
currently talking about would be better than what we had
been work on before and the features and the advantages that
it would bring. Every company has to do that.
Q. Did you attend any events where Microsoft was promoting
application developers to write for Windows 95?
A. Yes, I did. I attended a developer conference with
Microsoft and 3,000 other developers.
Q. Do you recall generally what type of information
Microsoft would be providing to developers looking to
produce a product for Windows 95?
A. Windows 95 was in my view a significant step forward
253
for the P.C. and for Microsoft. I talked about Macintosh
before, and there was angst amongst our customers about
should they -- was going to a graphical environment, was it
a toy or was there real work to be done there? And probably
some of the early graphical environments might have seemed
more like toys as they matured, but as the industry tailored
and decided what things they thought were more significant,
it became more and more apparent that by having a graphical
environment we could communicate more information to people
and give them through pictures and common ways to operate
the computer, that they would have to learn less and they
could do more of their tasks and less of dealing with the
computer.
So Windows 95 had a couple of things that were very
interesting to us. The first was the graphical environment
being placed on top of the -- in place of Windows 3.1. We
were seeing full long names coming, so that people could
name things what they wanted to help them identify what they
had.
It would also -- when we were looking at the open
dialogue box from WordPerfect 3.1, I mentioned that we could
do things with a network.
Q. Mr. Harral, let me stop you. Perhaps I can provide a
teaching help here.
MR. JOHNSON: Mr. Goldberg, could you put up
254
figure two again.
BY MR. JOHNSON
Q. You had described this figure earlier as the Windows
3.1 --
A. Yes.
Q. -- graphical user interface.
MR. JOHNSON: Could we now show figure 7, Mr.
Goldberg? Can you put these two side by side?
BY MR. JOHNSON
Q. Perhaps this will help you talk about the differences
between 3.1 and Windows 95.
A. Okay. So in Windows 3.1 there are programs that I
could run, and so file manager, and here is where I would
look at files on my machine. Control panel. I have
different things in here. I could view my clipboard. I
could go out to the DOS prompt. Down here are other groups
of programs that I could run. I might have an application
here if I wanted to have Word or WordPerfect. I might have
another group here to run them.
This whole way of looking at the computer is about the
things that I have put on my computer. If I want to go look
at my files, I am going to go look at what is my stuff on
the computer, you know, talking about it in small terms.
But basically this whole thing is about running programs.
Can we switch over to --
255
Q. Yes. Sure.
A. Thank you.
In this view, we talked and I mentioned in WordPerfect
that going and getting the files that the user was after was
really the focus. That is why all of the features moved
into where people lived. We were excited about Windows 95
because the file browser and looking at your files is now in
the foreground. That is the desk top up here, and in the
background you see my computer and network neighborhood. I
could store files right on this desktop.
I know people who had a file and they would maintain
customer lists that they were contacting them in an office
that I worked in, and they would open that up and as they
were calling people they were making changes to that list.
It would sit on their desktop, and that is what they would
work in, so the things that they were working in are here in
the foreground.
We still have, you know, the other pieces that we were
looking at. Here is the control panel and those pieces. I
have a way to get a recent document, but what is surfacing
now is getting the work that you're doing and a diminishing
of the applications. We are no longer looking at -- in an
object oriented, in computer terms we talk about object
oriented, and it is basically a way to focus on -- it is a
way to bring what is the intended focus of the person to the
256
foreground and diminish the things that are considered
ancillary. I want to edit my document. I don't want to
know which program I want to edit my document with. My
document is the focus. So that is a wonderful evolution
that this has done.
MR. JOHNSON: Your Honor, we have been going about
an hour and 40. Should we take a short break or do you want
me to continue?
THE COURT: Well, I'm caught between two things.
I like to do what is reasonable, but I like to run my own
courtroom, but I will adopt your suggestion and we will take
a short break.
(Recess)
257
THE COURT: I know you all are working very hard on
lots of things, but the jury is confused about the acronyms,
and to the extent that you can give them some glossary of
terms, they would appreciate it.
MR. JOHNSON: Unfortunately, we tried, Your Honor,
and it has not been a successful effort. We will try again.
THE COURT: Okay. Well, maybe if they have things
about specific ones, we will have them ask you and then we'll
try to come up with an answer.
THE CLERK: Are we ready?
THE COURT: Oh. Oh. In terms of the -- I don't
care, but it may be for completeness of the record, the
figures, which really aren't exhibits, and nobody said they
should be exhibits, maybe they ought to be marked for
identification so that they are -- so that the record
reflects what was being shown on the screen. Thank you.
MR. JOHNSON: Sure.
(Jury brought into the courtroom.)
THE COURT: We talked but giving you all a glossary,
and that may not turn out to be possible, so I know that
there are all kinds of acronyms being used in terms. If you
could tell Theresa specific ones that you're having questions
about, then I can go over those, at least, with counsel and
try to answer -- tell you what they are or maybe have them
explain what they say. So, that's not as perfect as having a
258
general glossary, but there is an awful lot of information to
absorb, so if you've got questions, tell Theresa.
What's an API? Without giving -- what's that mean?
MR. JOHNSON: Application programming interface.
May I proceed, Your Honor?
THE COURT: Yes.
MR. JOHNSON: Thank you very much.
Mr. Goldberg, if you would put up figure 8, please.
A technical glitch, Your Honor, momentarily.
THE COURT: I'm curious, but will refrain from
asking whose product you're using.
MR. JOHNSON: It's right there. It's on the screen,
Your Honor.
THE COURT: Oh, good. That figured.
Q. BY MR. JOHNSON: All right, Mr. Harral, can you tell us
what this is a picture of?
A. This is a picture of the -- we had looked at the file
viewer in Windows 3.1. This is the next generation of the
file viewer. It's what they call the explorer. It let's you
look at your different places on your disk and other things
for further information, as well as some other things.
Q. So, is this the explorer for Windows 95?
A. It is.
Q. Have you ever heard of the term NameSpace extension
API's?
259
A. Yes, I have.
Q. Generally, can you tell us what was this functionality?
A. NameSpaces are what the explorer -- or what Windows 95
is showing to you. Your -- when you go into the -- into
Windows 95, and you are looking for your documents or
settings or other things, NameSpaces are where those things
could be stored or found. So, when we looked at the -- at
the background, and it had my computer, and I said you could
put documents there, that's a NameSpace.
It's a place where things live. And places can have
other places inside of them. So the -- so every place inside
of Windows is a NameSpace. They use that term because they
didn't want to call them -- I'm telling you how I interpreted
this. They didn't want to call them files because you may be
looking at mail messages. You may be looking at on the web,
some place. And it would have been misleading to have used a
term that would make you think of only living on your disk.
And so those are NameSpaces. NameSpace extensions,
then, are how you plug in new places. So, if I wanted to let
you see your e-mail messages in your inbox, right off of your
desktop, I would try to extend the NameSpaces and make it so
that my mail system would put those things on your desktop.
So that's a name -- in general, NameSpace extensions allow
you to add in things into the -- into the view that you have
for the desktop.
260
Q. Okay. And can you describe that with your pointer with
reference to what is shown on the screen?
A. Okay. So, I talked about different -- here's our C
drive again, and here's the different file folders, and
here's the D drive. So these are -- these are real drives,
traditionally in DOS. So these traditionally in the file
system and in DOS, we think about these as the floppy drive
and the hard drives.
But one of the great things here is that now we're
trying to bring all these things, all these different places
together because, really, all I want, is I want my documents,
or whatever I'm working on. I don't want to care which place
they are. And so they brought these things together. We
have this thing called the network neighborhood. That is a
NameSpace because it's bringing all those network places we
talked -- that I talked about before in one place.
And that's significant because, in -- in companies
that WordPerfect had dealt with, there were actually many
network providers, so, Novell that I mentioned was one.
Banyan VINES was another company that was a network provider,
and people would choose which network they had and purchase
that. The nice thing about network neighborhood is that you
could even be running both of those networks, but here you
could just see the network places and not care which network
you were on.
261
So we're moving more towards what -- what is the
information you want to find and less worried about how am I
getting there.
The recycle bin here is another place. The recycle
bin actually lives on all of these drives, but they are
giving you a single view that, when I delete something, it's
going to go here, and you don't care which drive it's on. If
you want to go and bring it back, you can. So that's the
importance. The NameSpace is hiding this complexity and
giving you a view that is more useful for what you want to
do.
Briefcase, down here, that's also a NameSpace
that -- it looks like a regular folder, but it's going to
give you an additional feature that you're not used to
previously in DOS, which is, it might be also linked to a
document out on your network, and it might be actually
bringing a copy down so when you close down your laptop and
get off the network you can still see that document.
And so just these different concepts here, different
features that may be had been available in a number of places
before, but now bring them together in a way that people can
find the information without having to worry about programs
and network technologies and things like that.
Q. The pane on the left-hand side, that you were pointing
to there, does that have a name?
262
A. This -- we usually -- well, I usually call it -- it's
the tree view because it's like a tree, but there's a lot of
names I guess it could be.
Q. Why do you call it a tree?
A. Because a computer software term, are about when you
link information together, they call them trees and because
you take one element and you tie other elements to it, so
when you draw it out on a white board, like software people
are often known -- wanting to do, it branches out and so it
looks like a tree. It's a graph of the different places and
how they connect.
Q. And what about the pane on the right? What would you
call that?
A. Well, this is the content view. So, what we're doing
is -- these two are tied. The tree over here is -- I can go
and manipulate these pieces, these little plus signs, I
can -- here you can see I opened up this C drive so I can see
these pieces here on the D drive. It's got a little plus. I
haven't opened it up, so I can't see it. So I can manipulate
this. And this little program file is open. It has a little
open folder. What they are trying to convey here is, they
have pressed on this program files, and then this view is
linked to this tree and so it's actually showing me what is
inside of this folder over here. So the two have a
relationship to each other.
263
Q. So, what would a third-party developer use these
NameSpace extension API's to do?
A. Well, so, based upon what I think my customers might
want, I am interested in working with my files. If my
brother were working on a graphics, he might have over here
in this view, he might have all of his documents that he's
working on for ads for different agencies. But if he is
often working on bringing these document graphics library --
you can purchase hundreds of thousands of images. A company
might do that if they are in advertising.
And if I wanted to have those easily accessible,
then the goal, from my experience and perspective, is I want
people to be able to live here because that's what we are
trying to do. We are trying to make it so that you don't
know the technologies, you just see your information, and so,
I am trying to -- if I am working on documents, I want to
find them here and so there might be something in here called
my documents, and I want to go down and get my documents.
Well, I'm also -- if I have a graphics library, and
they put that out on a server, a database, so that you can
easily go in there and you can say the database is a tool
that can store information, but it keeps statistics about
information. So if you wanted to say, I want to find all the
pictures that have hats in them, different kinds of hats,
you -- in a graphics library, if it were in a database, you
264
could go in and ask it a question, and if it had stored that
information, you could quickly find all the pictures that
have hats in it.
Well, you don't have a database on your C drive,
necessarily. It might be stored on the network somewhere
where everybody can get at it. You don't want all that on
your laptop because you wouldn't have room for anything else.
And so you what you might do is you might then say, well,
fine, I'm going to put a NameSpace, an extra one, down here.
Maybe I have a thing called my images or graphics. And
that -- that would look like a little thing down here like
recycle bin. I mentioned recycle bin doesn't live on one
disk. It's actually a bunch of disks, whatever ones you want
it to keep files for.
I could have another one down here that would --
actually, when we go and click on it, this pane here wouldn't
be -- the view here wouldn't be showing you files, it would
actually go out to the database and say, get me a list of all
the graphics and it might fill this out. And the point here
is that we are bringing all of the things that you're after
into the same place where you got the documents and so the
whole focus here is to bring everything you want into this
one way of doing things so that it's very easy and
predictable to the user.
Q. So, was adding new NameSpaces to the Explorer important
265
to Novell's development of products for Windows 95?
A. It was a -- it was a key element of moving into Windows
95.
Q. And why do you say that?
A. Working for the shared code, we were in the business of
drawing out pieces of work that WordPerfect Corporation and
Novell had done and putting them in a -- understanding that
we weren't -- we weren't the only tool out there. We -- if
you wanted to -- if you wanted to go and get maybe documents
off the web, okay, we didn't necessarily have a tool to do
that. There were other tools at WordPerfect. We might
encounter things that weren't part of our product.
So we were in -- we were constantly in shared code
looking at ways that would solve needs of our customers, and
we knew that those things didn't have to do always with us
and that were -- but this is -- these are the tools that the
customers wanted and so that's why we broke out the spell
checker. If somebody licensed the shared code, they would
have a spell checker in them. They could put it in their
product.
We were in the business of providing features to
people that weren't necessarily WordPerfect. And so,
wherever people were going to live, we were wanting to put
those features where they would live. And so, we were
looking at the Windows 95 shell, and bringing all this
266
information together in one place, meant that people were
going to want to live here because it was very consistent in
how it presented information. It was very consistent in how
it acted, and so we wanted to -- to evolve our product to
Adopt these ways of looking at it.
Anybody who moved to Windows 95, they were basically
saying, I want to work this way.
And so now the question is --
MR. TULCHIN: Objection, Your Honor.
THE COURT: Sustained.
MR. TULCHIN: I don't know how he can speak for all
people.
THE COURT: Sustained.
Q. BY MR. JOHNSON: You can't speak for all people.
A. Sorry. So, our customers wanted -- if they bought
Windows 95 --
MR. TULCHIN: Same objection, Your Honor. Sorry to
interrupt.
THE WITNESS: Sorry.
MR. TULCHIN: Unless he has this information. I
apologize.
MR. JOHNSON: And, Your Honor, I think he's familiar
with his customers.
THE COURT: Well, let's find out.
MR. JOHNSON: Okay.
267
Q. BY MR. JOHNSON: Go ahead, Mr. Harral, talking about
the customers at WordPerfect here.
A. The customers of WordPerfect and the support questions
that we had to field for them.
Q. Okay. Go ahead.
A. Okay. That, for the ones that were speaking for
customers of WordPerfect Corporation that were telling us
that they would want to move to Windows 95, their base --
they are buying into this technology. They are going to be
living this way. And so, for us to be able to bring forward
features that they have come to expect in us -- they stayed
with our company because we continued to provide those things
that they wanted. We weren't breaking the work that they had
done before.
So, we knew that, in the -- in the shared code, we
needed to be able to evolve our technologies to work in these
places in the same ways that every other shell extension was
working.
Q. Okay. And what sorts of new NameSpaces did Novell plan
to add to this tree view?
A. So the NameSpaces and shell extensions that we were
planning to add are -- our presentations product had a
graphical library that was a database. And we wanted to
present it as in the view so that they could see those
pictures directly. We had a document management system that
268
we were were also putting out with our product. That also
puts documents in the database and so we would want it to
be -- we would want them to see them as these files. We
wouldn't want them to have to go and do something different
than they were presenting here.
We had a mail product, and the mail group was
interested in having their -- your e-mail messages presented.
Or another concept was, you might go to a NameSpace, and all
it would show you were all the attachments of your -- of your
e-mail, so you wouldn't have to go hunt through your e-mails
to find where's that, you know, picture, that Grandpa sent.
You could -- it would then just go and show you just the
things that were attached. You knew that's where it was at,
it was in my mail, so you could -- so it would filter the
information so you could get to what you wanted.
Those are some of the NameSpaces that we were
looking at.
Q. So, if you -- if you added these new NameSpaces to the
Windows Explorer, would they be available for users in other
places?
MR. TULCHIN: Objection. Leading, Your Honor.
THE COURT: Yeah. That's okay. Go ahead. He's not
suggesting the answer. Go ahead.
THE WITNESS: Okay. Because the shared code had
partners outside of WordPerfect, and because we realized that
269
we had conversion technologies of being able to -- we could
open up WordPerfect documents and save them. We could open
up Word documents and save them. We could open up Word Star
documents and save them. We could open up different
graphical formats. We were about dealing with people's
information beyond our products, and so we had every
intention of putting the shared code technologies into the --
onto the customer's computer in a way that they weren't just
going to search for WordPerfect documents in WordPerfect. If
they wanted to do a search, they could search an entire
system for all the WordPerfect and Word documents and Word
Star and everything else that they wanted to.
The question isn't about WordPerfect's products at
that point. It's about, what do users want to do, and can we
give them the tools to provide that?
So, every extension that we were planning on using,
if you wanted to put your clip art inside of your Word Pad
Editor, which, you know, is a product that let's you write
text, right out of Windows 95 -- you know, it ships with the
operating system -- you could still grab WordPerfect's clip
art that you, you know, were familiar with and drag it over,
and it would put it inside of Word Pad. So all of the shared
code technologies were intended to go into the operating
system for using every single product installed on the
platform.
270
MR. JOHNSON: Mr. Goldberg, could you put up figure
9, please.
Q. BY MR. JOHNSON: Mr. Harral, could you tell us what
this is.
A. This appears to be the common open dialog box for
Windows 95.
Q. And you spoke of it being the common file open dialog.
What do you mean by that?
A. The operating system tries to provide -- just like
shared code, and more so, it provides things that are -- are
commonly done with programs. Lots of programs open files.
Lots of programs create directories. Lots of programs need
you to type in something to search. And so, the operating
system, for two reasons that -- you know, at least two
reasons that I can enumerate, would provide common -- these
common things so that every program can use them.
It -- it helps the developers get product to market
more quickly. And, at the same time, because it's easier for
them to use, it imposes the standards of the operating
system. So, because you -- I want -- I go into Word Pad to
type. I want the open dialog to have the same behavior and
look as going into another product and so this is the way,
this is a way that the operating system can help all of the
applications, all the programs that run on it to have a
common way that they feel and a common way that they act.
271
Q. So, if WordPerfect had used the NameSpace extension
API's to add a new NameSpace, would those new NameSpaces show
up here in this common Windows 95 file open dialog?
A. Yes.
Q. And can you point to where they would show up, these
new NameSpaces Novell had created?
A. Well, so here we see the my network places. And that
is a NameSpace. We see the desktop, and that is a NameSpace.
And so, you can install NameSpaces. This one is underneath
this other one, so that they don't have to always be at the
top. You can install them where they are convenient for the
user to find. But they would -- so, if I were -- just off
the top of my head, I could pick a place and I could put them
at the same places underneath my network places there might
-- there would be another one here that I could put in, which
might be my e-mail documents, for example.
Q. And would it have been important or not for
WordPerfect's new NameSpaces to appear in this Windows common
file open dialog?
MR. TULCHIN: Leading, Your Honor. Objection.
THE COURT: Sustained.
MR. JOHNSON: Let's take a look at figure 10,
Mr. Goldberg.
Q. BY MR. JOHNSON: Mr. Harral can you tell us what this
is?
272
A. This looks like -- it could be -- well, it's similar.
This looks like the file open in Windows 95, although it
could be the file manager. They are very similar.
Q. For what product?
A. For WordPerfect Office, so PerfectOffice 3.0, I think,
on Windows 95.
Q. Okay. So, this is the file open dialog, then, for
WordPerfect?
A. Uh-huh.
Q. How does this differ from the common file open dialog?
A. Okay. So, well, going -- actually going from top down,
the first thing is the menu. This is -- in the previous
dialog, there were all of these buttons that were pointing
out with view and network and things like that. The features
of the file open dialog for WordPerfect were very robust, and
so, at the top, there is the menu. There are lots of options
in there because those features need to be brought forward.
The tool -- the tool bar down next is -- and what we're doing
is we're moving all of the features from that older style
into the way that people are used to seeing them in Windows
95.
But now we have commonly used features right at the
top there because we're -- this is, again, if you are -- if
you're a user that wants to live in the Windows shell, you're
going do to these things in the Windows shell. If you're a
273
person, you know, coming from WordPerfect that you are used
to living in the open dialog, we don't want them to have a
diminished capacity or experience, and so we are now evolving
the open dialog so that it does not lose those features that
they have come to expect.
That's why we're -- you can see, under -- sorry. I
should go to this now. So, after the tool bar, we have
different features that you might be looking for, finding
files, finding content. There was no preview inside of the
Windows 95 dialog. There is one here because we had that
coming forward, information just being provided. Here's our
tree view, which is like we had in the open dialog. Here's
the list of the files. But we still have that list of
commonly used places because that's what people have come to
expect. So, we can't -- going forward, we've got the task of
adopting what is new and innovative, and, at the same time,
not losing all the people that have made an investment in our
product in the past, to help them come forward and be
comfortable and productive in this environment through our
products.
Q. So, Mr. Harral, if WordPerfect then used the NameSpace
extension API's provided by Microsoft to add new NameSpaces,
would they appear in this file open dialog of WordPerfect?
A. Yes, they would. Wherever we had placed them. And
they would have appeared in the common open dialog. They
274
would also appear here.
Q. So they would appear both places?
A. Yes. That is correct.
MR. JOHNSON: Mr. Goldberg, could we take a look at
image 11.
Q. BY MR. JOHNSON: So, we have circled in red here what
you identified here earlier as the tree view. Using the
NameSpace extension API's, would WordPerfect have been able
to include the new NameSpaces being offered by Microsoft that
you looked at earlier, network neighborhood, recycle bin and
my briefcase?
A. They would appear here as well.
Q. And why was that important?
A. Because, as I said before, people who are buying
Windows 95 are adopting what it's bringing. They are buying
it. When people buy Mackintosh, they want that experience.
When people buy Windows 95, they are asking for that
experience. They -- Windows 95, in every application, is
going to have the ability to show the network neighborhood,
the recycle bin, the -- you know, if they have a briefcase,
or whatever other ones come along. If you have a -- you have
a place where you have archived your files, so that they
are -- because you don't use them very often -- we call them
compressed folds. And if you have those, you can't
usually -- you need a program to open those up. They can
275
appear as NameSpaces so you that think they are just regular
files so it doesn't get in the way. All of those can be
NameSpaces, and a person using Windows 95, they are going to
expect to find those things and how they behave. What
happens when I press my mouse on them? What happens when I
press, this, you know, the enter key on my keyboard when I'm
on that?
All of those -- all of those behaviors are
standardized in this operating system, and to be inconsistent
with that would be to induce confusion with the user of a
product. And so, if they could find my network neighborhood
out on the desktop and they could access the files through
network neighborhood and map drive, so basically find places
on the network and move things around on the network, and
when they come into WordPerfect, they better be able to find
network neighborhood because they have learned how to use it.
We are not trying to teach them a new way. We are
trying to leverage the knowledge so they can get on and do
what they want to do.
Q. And does the WordPerfect's file open dialog here also
have a contents pane, as you described earlier on the common
file open dialog?
A. Yes, the pane on the right here, would be the contents
pane.
Q. So when you clicked on one of the new NameSpaces, would
276
the contents appear in that pane?
A. Just the same as it would inside of the Windows 95
Explorer.
Q. A little earlier, you were pointing at those tabs at
the top that say open, find file, find content, find by form.
Let's go to figure 12, Mr. Goldberg.
Which has brought up the tab, find file. Could you
tell us about that.
A. One of the technologies that WordPerfect made great use
of what was they called Quickfinder. They employed people
who were -- who had a lot of knowledge about file, search and
linguistics, and so this is the presentation of the
Quickfinder inside of the file open dialog box.
Q. And was Quickfinder a differentiation feature compared
to Microsoft's Word?
A. I am unaware in Word of a find feature like
Quickfinder, where we could -- you could traverse all -- you
know, traverse the documents on your machine regardless of
whether they were WordPerfect documents or not or whether
they were even -- in Windows 95, you had -- you had to teach
it about your file and so that it could -- so it could show
you, oh, this is a Word document, or this is a graphical
document. You have to teach it about these documents.
The Quickfinder ignored those boundaries and would
actually go in -- so you could name the files whatever you
277
wanted to, which is a good thing, because when -- when DOS
came along, there were no restrictions about how you could
name your document, and as -- as these -- as the operating
system evolved, you would program -- programs would try to
recommend the way that people would name documents, but we
understood that people had lots of documents that didn't
conform to that. And so our technologies, in WordPerfect,
were made to try and -- if I wanted to find all of the
WordPerfect documents that were -- were written last year and
had something to do with, or had mountain or landscape or
something in it like that, then I could do a search, and it
would not ignore any -- any documents just because it said
that they were -- you know they belonged to AMI Pro or it
could even say that it was graphic, even if it was really --
it had been misnamed, it would still find that and so, yes,
we felt that this was very much a differentiating technology.
MR. JOHNSON: And if you would go to figure 13.
Q. BY MR. JOHNSON: That's bringing up the find content
tab. What was that?
A. So, in the find file, they are actually looking at the
file names and the find content and actually looking at the
text inside of the -- inside of the document.
Q. So is this another aspect of Quickfinder?
A. It is.
A. MR. JOHNSON: And what about the next image,
278
Mr. Goldberg.
Q. BY MR. JOHNSON: This find by form, is that also
another aspect of Quickfinder?
A. It is. What you're -- inside of files, you can do
things -- there's information that you could store that
doesn't print in your file. You can know who was the last
person that edited the file, what were their initials. You
could have notes about the file that would maybe show up when
you were doing the file open but, you know, things that you
were using to catalog the information and make it easy for
you to find but is not supposed to be there when you print
the document or when you show it to people.
And this is a find that is going to -- if I were to
tell it to find by form, and I said mountain, it could look
in the WordPerfect document in the notes, and it could say,
well, is mountain here? But it could also look inside of a
picture that you took, and if you had inside the picture --
there are tags you can put on the picture that say where you
took the picture or you could put your own notes, and it
could look in picture for mountain, too, just across whatever
files it was looking at.
Q. So, in doing these searches, if you had used the
NameSpace extension API's to add all these new NameSpaces,
both Microsoft's and WordPerfect's new NameSpaces, would a
user have been able to search through all those NameSpaces
279
for this information?
A. Yes. The nice thing about the NameSpaces is that they
were -- they were giving the programmers also, not just the
users, but the programmers a way to look at all of these
files in a common way. So, Quickfinder here, if it wanted to
go look for graphics that had mountain in it, it could go and
look at files on the disk, but if it was a NameSpace, they
would go and went and looked at the database that had images
in it, it could still -- to it, it just looked like a
collection of graphics, and it would just go into it. It
wouldn't know if there was a database on the back end that
was, you know, shuffling and searching and pulling things
out.
And so the NameSpaces were a great enabling
technology, even within the applications as well.
Q. Mr. Harral, during the Microsoft's opening in this
case -- that's when Microsoft's lawyer talks to the jury
about what the case is all about -- he described what he
thought, quote, the NameSpace extensions are all about, close
quote.
He described two ways in which ISV's could launch
their applications, including putting a shortcut to their
applications in the start menu or putting a shortcut icon on
the desktop. Microsoft's attorney told the jury yesterday
that -- or two days ago. Excuse me -- that what Novell says
280
it wanted, what Novell says it was entitled to through the
NameSpace extensions was a third way, a way that would allow
users to get to WordPerfect and Quattro Pro from the Windows
Explorer, close quote.
Is that an accurate description of the functionality
of the NameSpace extensions?
A. For what we intended, it was not an accurate
representation. It -- there -- you can do those things that
were stated, but to -- at this point, we are not launching
applications. It's not about applications. It's about user
information. That's what an object-oriented operating system
is about. So, people concentrate on what they want to do.
The briefcase, for example, synchronizes. It's not
considered an application. It's -- it is -- it is a feature
that happens there to move information around. The user is
never presented that they are even really dealing with
another application. If WordPerfect had moved its clip art
libraries out to a NameSpace, then all we were doing was
giving people the ability to see those files. If people had
created their own clip art library, like a third-party
developer, you know, you wouldn't even know that WordPerfect
was there at that point.
This was about getting our operating system
technologies that we had built up on top of operating systems
to people so that they could use them everywhere. And from
281
the shared code group, if the person here were a WordPerfect
developer, he would give a different answer because, inside
of a company, each person who is speaking, they have the
intent of working on the software and the pieces that they
are charged with, but from a shared code perspective it
was -- we had no intention -- we weren't owned by a product.
We weren't owned by an application. We could work with other
people outside of the company.
Our intent was that when we sold licenses to
somebody outside the company, just as much as inside that,
when they installed our products, if we were putting
technology on that computer, it was going to work everywhere
so that we could get wherever they lived, it was there.
Q. Did Microsoft promote the functionality given by the
NameSpace extension API's to WordPerfect?
A. Yes, they did.
Q. Did WordPerfect have a goal in mind with respect to the
time of release of its Windows 95 products?
A. Yes, it did.
Q. And what was that goal?
A. To ship within 90 days of the release of Windows 95.
Q. Have you ever heard of the first wave program?
A. Yes.
Q. And what was that?
A. For applications that were working with Microsoft and
282
criteria that were set forth, that they would meet that
criteria, whatever. I don't have the criteria here to
enumerate, but there was criteria set forth about how the
application would behave and what it was supposed to -- what
technologies it would try to take advantage of in Windows 95,
and it would release within a certain time frame of the
release of 95.
Q. So there was a goal for first wave participants with
respect to time of release?
A. Yes.
Q. Okay. And was that consistent with WordPerfect's own
goal in that respect?
A. Yes.
Q. Was WordPerfect a participant in the first wave
program?
A. Yes, it was.
Q. We talked about evangelism events in general. Did
Microsoft ever visit WordPerfect to specifically promote its
Windows 95 operating system?
A. I was aware of one time that they did that.
Q. So you personally met with Microsoft?
A. I personally met with Microsoft representatives for
Windows 95 adoption.
Q. Mr. Harral, could I turn your attention to Plaintiff's
Exhibit 105, which is in the binder in front of you.
283
Mr. Harral, have you seen this before?
A. I have seen this paper before.
Q. And did you attend this meeting with Microsoft in 1993?
A. Yes, I did.
Q. And do you recall the purpose for Microsoft's visit on
this particular occasion?
MR. TULCHIN: Objection, Your Honor, for the witness
testifying as to Microsoft's purpose. Maybe he can testify
as to what he was told.
THE COURT: Just rephrase the question.
MR. JOHNSON: Sure, Your Honor.
Q. BY MR. JOHNSON: Do you have any understanding of
Microsoft's purpose in visiting WordPerfect on this
particular occasion?
A. There were -- there were at least two discussions.
There were many people there. There were two discussions
that I would state were key for what we were talking about.
One was the general adoption of Windows 95, but, secondly,
the purpose that we were told, for this meeting, was to go to
the next level and how we could be a great Windows 95
application. And so that -- that centered around a couple of
things.
One was that we would adopt the look and feel of
the -- of the new operating system. And that meant that, if
they had -- like I mentioned before, if they had a way that
284
you wanted to pick a color, we were using their way of doing
it. If you were clicking some place with your mouse, would
it do the same thing that they were wanting it do in other
places? And then -- so that was one side of it.
The second side was, we were then -- especially in
the shared code group, we had these technologies and so the
question kind of from the representatives there was what are
you planning to do? And it was kind of. It was a forum and
so we talked about the things that we felt would allow us to
bring our technologies and make them congruent with the way
that Windows 95 was trying to approach its users.
We could see that there were -- the shell was the
main thing that they were going to see, and so there were
other things that were being rewritten that were useful to
programmers underneath; how it managed the memory of the
machine and how it talked to its graphics card and stuff like
that. But we were focused on, what were the people who
bought this product, how were they going to interact with it.
And so, we talked at length with these
representatives about the document management system that we
had, so that we could service it so that it would be a part
of Windows 95, it would work the same way, basically as like
the briefcase is represented. We had our clip art
libraries. We had -- we mentioned the fact that we wanted to
that hook in Quickfinder and how we could do that.
285
There were representatives -- as I said, we
didn't -- we didn't own all of the pieces of the shared code.
Some of those came from other places, and we would ship them
out. We didn't own the Quickfinder, but we were the one that
distributed the Quickfinder to everybody. So, there were
other representatives from other teams that were also there
and interested, and they also talked about some of the ways
that they could add ability to the Windows 95 shell when our
products were installed. --
So, searching, the viewers that we had, having
previews. We were interested in having -- putting our
viewer -- when you go and touch your files, the viewer could
be there so you could say, well, I want to see what this file
looks like without having to launch an application and so
that -- you know, because it takes a long time sometimes to
launch applications when we are just trying to look for
something. So, being able to go around and look for things,
that would be something we were interested in.
They had property sheets that gave you more
information on the files that you looked through. And so we
wanted to make sure that we would be able to -- the
information that were putting in our file open dialog, when
we gave this information, we wanted to make that available as
well. So there were a number of technologies and people
interested at WordPerfect and even inside shared code.
286
Q. Well, what, if any, connection is there between adding
these functionalities to Windows 95 and the NameSpace
extension API's?
A. That was -- the NameSpace extensions and the shell
extensions would be the way we would have to hook this in, so
that anybody who was living in the shell, as opposed to
living in our products, could find and utilize the features
that we were giving them in.
Q. This e-mail, this Exhibit 105, is actually from a
Microsoft -- a Mr. David Cole talking about the visit with
you all. And he states in that e-mail that the Microsoft
developers went to WordPerfect last Thursday to talk to you
about what Microsoft thought a good Chicago application was.
Now, do you recall any of those discussions?
A. I do recall this meeting.
Q. And can you tell us about anything in particular, with
respect to what they thought a good Chicago app was?
A. I described some of the things that we were going to
do. They felt that those were necessary. They were very
excited that -- they appeared trepidatious, a little bit,
coming into the meeting, and I think they were surprised
about how excited we were that we could -- because we weren't
talking about -- we weren't talking about how WordPerfect
just was going to be a good app, but we were talking about
how we were going to enhance the user experience in general.
287
And they appeared excited that -- it's the hope of
every -- every developer that I have dealt with, that when
you work on something, that, one, you understand that the
people are going to use it in a hundred more ways than you
ever thought that they would and that those ways are more
useful than they ever envisioned. And you are excited when
you see that that comes to pass. And then that was the kind
of excitement that was in the room there, that, you know,
they're working on the Windows shell. They are trying to get
it out. They are trying to make this leap.
And when we were talking together, then we are
telling them, yeah, there are things that we can do here.
There are features that we can add. There are ways that
we can expose what we do and change what we are doing so that
it conforms to what you are trying to -- to present to the
users through this new interface and new way to look at
information, that PC users did not traditionally have. So
they were very excited -- we were all very excited about
these possibilities.
Q. In the second paragraph, Mr. Cole writes that these
guys will bet on Chicago, and they have never had any doubts
about that.
Do you think Mr. Cole correctly described
WordPerfect's attitude toward Chicago?
A. Yes. It was -- Chicago was -- as far as a
288
where-people-lived kind of approach to a program, Chicago was
exactly the kind of forum that we needed to be able to get
our technologies out of just being part of a WordPerfect
application and getting them to where they were usable by our
customers everywhere, no matter how they decided to work.
Q. Mr. Cole writes, further on in this e-mail, quote: "It
was interesting to see how enthusiastic WordPerfect was about
Chicago, much in contrast with the ho-hum attitude of our own
apps group." Close quote.
Strictly with respect to what Mr. Cole said about
WordPerfect, do you agree that WordPerfect was enthusiastic
about Chicago?
A. We were very enthusiastic about it.
Q. Now, looking a little further down in this e-mail,
Mr. Cole states that they, meaning WordPerfect, were very
happy about us deciding to document the shell extensions.
Do you recall being told by Microsoft at this
meeting that they had decided to document the shell
extensions?
A. Yes. It was one of the reasons for the meeting, was
gathering the -- and even -- and we would not have had more
than half of the conversation if that was not happening.
Q. So, half of the conversation concerned these NameSpace
extension API's?
A. Yes.
289
Q. Did Mr. Cole accurately describe your feelings as being
happy regarding Microsoft's decision to document the shell
extensions?
A. We were -- we were ecstatic.
Q. From your years working in the software industry, do
you have any understanding of why an operating system vendor
would provide you with these API's?
A. Because -- so, going back to my experience, I've
worked -- I've worked on other operating systems, and I can
say that, on every operating system that I have worked on,
that their success was greatly determined by not the
operating system but by the applications that were written on
that operating system. So, it's not that you -- you know, on
the Mackintosh, you might like the pretty graphics, but if
you can't edit a document in a way that's comfortable,
it's -- okay, it's a pretty door stop at that point.
The extensions are -- were key for us in being
able -- the extensions were key for us being able to provide
to the users all these features.
Q. Mr. Cole goes on and says that he explained, quote,
"conceptually how the extensibility would work and what
controls they'd have." Close quote.
Do you recall that discussion with Mr. Cole?
A. Yes.
Q. And would this have included the functionality provided
290
by the NameSpace extension API's?
A. They discussed how they would work and that we would
have the information at a later time to be able to deal with
the details. So, at that point, they were demonstrating what
they were -- what they were doing and planned to do and that
we would continue the discussion later on to get the
information so that we could -- we could further explore how
we would have -- what we would have to do to be able to get
our technologies onto the Windows 95 platform.
Q. Mr. Cole goes on to say, quote, "Since they just
acquired a document management system, I forgot from who, I
assume they will want to plug that in, plus WP Mail and other
parts of WPOffice, too."
Can you tell us or do you know what Mr. Cole was
talking about here?
A. Yes. He was talking about most -- the technologies
that I have mentioned in shared code, and he mentions a
couple of the others from -- from other applications that --
as part of shared code, we were -- I was asked many times,
and being a liaison with Microsoft, I would consult with the
other teams as well. So, as we would -- as we would move
forward, we would discuss with each other about collectively
how we should move technologies forward because it wasn't
just a single product. We were trying to make all the
products move forward in the same direction.
291
And so here he's mentioning the technologies we've
talked about in the shared code, WP Mail, if we had a
separate mail group, and we talked to them quite often
because they had a -- they had different needs than
WordPerfect did but still congruent needs with utilizing the
shell extensions. And the document management system was a
separate application as well, but we needed to integrate it
in as well.
So the shared code team always had those ties to the
other applications, so those are all the things that I see
mentioned here.
Q. Do you happen to know the name of the document
management system? Apparently Mr. Cole forgot from who you
had obtained the document management system.
A. We obtained it from a company called Soft Solutions,
and that document management system later went into the
WordPerfect Suite.
Q. And would the NameSpace extensions have allowed you to
plug in, in Mr. Cole's words, that document management system
into both the WordPerfect product and the Windows 95 product?
A. Yes.
Q. You talked a little bit about WP Mail. Do you happen
to know what WP Office refers to?
A. That's a general term for the collection of products
that we have, but, specifically, when they talk about the
292
parts of WordPerfect Office, that would be name extensions.
Most of that would have been shared code.
Q. Mr. Cole goes on to say in the next paragraph that he
anticipates that WordPerfect will have a very exploitive
Chicago app ready close to when Chicago ships. Close quote.
Mr. Harral, was that WordPerfect's goal?
A. Yes.
Q. We've already discussed that Microsoft told you at this
meeting that they had decided to document the NameSpace
extensions. Was there -- what, if any, suggestion was given
to you from these Microsoft representatives that they might
change their mind?
A. There wasn't any indication given at this meeting that
they would change their mind.
Q. What, if any, suggestion was given to you from these
Microsoft representatives that this was a tentive decision,
subject to change?
A. There was not that indication given. In fact, when --
leading up to the discussion about NameSpaces, as I said,
they talked about how Windows 95 was going to change the way
that people looked at PC's, the PC, personal computer.
They -- to lead into the discussion about how we could add
technologies to Windows 95, they demonstrated the NameSpaces
that we had been talking about here, that they had done or
talked about, the network neighborhood and the recycle bin.
293
I don't recall the briefcase being available at that time. I
don't think it -- at least in the demonstration that they
talked about, that wasn't, but we talked about these other
ones.
So they demonstrated they were using those same
technologies to build the Windows 95 platform, and we
would be able to as well.
Q. Mr. Harral, I'd like you to now turn your attention to
Plaintiff's Exhibit 113. Are you familiar with this
document?
A. I am familiar with this document.
Q. And how did you become familiar with it?
A. I -- the document was distributed amongst developers
and evangelists and managers at WordPerfect, a meeting that
was held where the information was discussed. I was not able
to attend the meeting, and it was distributed to everybody
from the participants in that meeting.
Q. I'd like to turn your attention to the page -- and
there's these little things called Bates numbers at the
bottom of the pages. In this case, it's an NOV Bates number.
And the page I want you to go to is ending 373, which is, I
guess, the third page. That might have been easier to say.
This slide states, in the first bullet point, that,
quote, "We are providing new controls you can and should
use." Do you recall Microsoft encouraging WordPerfect and
294
other ISV's to use these new controls?
MR. TULCHIN: Sorry, Your Honor. I thought he just
said he didn't attend the meeting when this was discussed.
THE COURT: Yeah. Establish a little more
foundation.
MR. JOHNSON: Sure.
Q. BY MR. JOHNSON: Mr. Harral, in the meeting you did
have with Microsoft that we talked about earlier, did they
encourage WordPerfect and the other -- WordPerfect to use
these new controls being offered in Windows 95?
A. Yes. That was the first part of our discussion.
Q. And did these new controls make it possible for
WordPerfect to extend the shell, as shown in this, as
indicated in the third bullet point on this page?
A. The new controls that they are referring to would be
the common controls that they would want people to use. I
don't know if those controls would directly cause them to
reference the shell extensions.
Q. Okay. Let's turn to controls number 4 at the page
Bates stamped 378. Are you on the page Bates stamped 378?
A. Yes. Oh, 37 -- sorry.
Q. It's on the screen, too, if you'd rather look at it
there.
A. Okay.
Q. Does this page describe some of the NameSpace extension
295
API functionality?
MR. TULCHIN: Objection. Leading, Your Honor.
THE COURT: It's harmless. Go ahead.
THE WITNESS: This control is -- the way they
represent it here -- the representation that they are given
with this new control is that of the file viewing NameSpaces.
Q. And do you have any understanding of what they mean
here by: Useful for custom container implementations?
A. They are showing, in the tree view here, that -- being
able to organize information, and you would be able to add to
the -- the things that were here and even the behavior of how
it worked. So, you know, talking about custom containers,
you might want to put your own content in here. You might
want to -- for example, one thing that's custom is, like,
while I'm in this place, there's this little indication here
that says that's being shared with other people who are on my
computer. And that's a customization of this particular view
that's particular to browsing files.
And so that would -- those kind of extensions, being
able to add to what they had originally intended here.
Q. Okay. Would you now turn to the page Bates stamped
389, which contains the title Shell Extensibility. And
drawing your attention to the forth bullet point, Explorer UI
integration. Does this have anything to do with NameSpace
extension functionality we've been talking about?
296
A. Yes, it does.
Q. Can you explain to the jury what the connection is?
A. Okay. Explorer UI integration. There's two things
about a shell extension that have to be done. One is, you
need to be able to plug your information into the shell so
that it's available to everything else. The second thing is,
you need a place to be able to present it to people so they
can interact with it, so they can click on the files and they
can move them around and drag them to other places and it
behaves.
The Explorer UI, that was when we were looking at
the Windows 95 desktop, so the background there and then the
views that come down from it. Those are not just -- there
are shell extensions there, but there are also those shell
extensions, or those NameSpaces are communicating with the
shell and saying, I've got ten things you need to put up in
the view. And they are not allowed to drag them around. It
would control that. But, if they press the copy button, I
will let that happen. Those kind of things.
It's coordination between the desktop and this
extension to let them act with each other so that when the
user tries to perform these commonly done tasks that it
behaves properly and so that's what they mean by UI. UI is
user interface integration. You had an application that
displayed a collection of file-like objects -- the ones we
297
are talking about are file-like objects -- create your own
custom container and display it in the folder Explorer
hierarchy.
So basically they are talking about how not only are
you able to create these places, but you are going to be able
to have some control over how they get presented to people.
And that's important because, if I had a collection of files,
and on the file system they were named with little short,
tiny cryptic names, but I wanted to present long names to
them, this would give me the ability to present those names
in ways that people were used to seeing them in WordPerfect
and could understand them. And so that's how you could do it
in a way that is custom for that particular place.
Q. Turning to the next page of this presentation, Bates
stamped 390, does this slide have anything to do with the
NameSpace extension API functionality we've been discussing?
A. Yes. It says that -- it talks about applications, it
says. It talks about application displays a pseudo folder,
electronic mail document management. Pseudo folder. What
they are saying is that it's something that looks like a
folder in window browsing, because these are regular folders,
but this here, that may actually be the link to the database,
and these folders under here may actually just be names of
how you organized your pictures when you stored them.
And so when it says pseudo or false folder, this is
298
basically saying they are presenting it as if it's something
in their regular view, but it's actually not. It's something
that's being presented with a custom view, like the previous
slide said.
Q. So, did WordPerfect have any plan to display such
pseudo folders for, for instance, as shown here, electronic
mail and document management system?
A. Yes. Yes.
Q. Were those two of the things that, in fact, you had
talked to Mr. Cole about during his visit a month earlier, in
November of 1993?
A. Yes, we did.
Q. Let's turn to another page of this presentation, 393.
It's entitled Ten Keys For Making a Great Windows Chicago
Application UI, which I think you've told us was user
interface. One of the keys, number 4, says "Use the common
dialog file open or recreate its NameSpace accurately
including network browsing and links." Can you explain that
one to the jury?
A. Yes. So, we already looked at the common open dialog,
and talked about how it represented the new things that were
inside of the Windows 95 interface, the shell. So -- and we
talked about how using those common dialogs -- I talked about
how using those common dialogs would -- would allow for each
application that was built to have a common way that people
299
could use their files and their documents and their
information so that they could -- they could -- not have to
relearn everything.
And this -- this number 4 item is pointing out,
rightly so, that, in order for this operating system to
succeed and have the applications that are consistent and
leveraging all of the learning that people are going to do to
run this, if you're going to get outside of using the things
that are provided by the operating system, the open dialog
the save dialog, the create folder dialog, the pick font
dialog, whatever it happens to be, if you are not going to
use those, then it's saying you need to recreate it
accurately.
And that's because it's very disconcerting -- an
example is, I work on Macintoshes and on PC's, and I have
found it extremely annoying when I am running a Windows
application on my Macintosh because it behaves differently,
and I know how things are supposed to work, and it seems like
the differences get in the way. Likewise, if I were running
a Macintosh program on a Windows environment, the -- how
you -- I can't size the window from every side. You go down
in the corner. And when I close the application, the little
box is in a different place. All of those little things get
in the way.
And so they are pointing out the importance, here,
300
that it has to be consistent. You will confuse your user if
there are things missing or that behave differently and so
they are making sure that these applications succeed by
pointing out that you've got to be able to conform to the
whole way that Windows 95 is -- is communicating to the users
of how you work in this environment.
Q. Now, did you ever have any discussion with Microsoft
whether WordPerfect planned to use Microsoft's common file
open dialog in its applications?
A. We did have that discussion, and we were -- we were
interested in doing that. Anything that -- as I said before,
shared code was a third of the application, effectively.
That's a lot. And we had lots of things that we were looking
at, you know, our plans for things that people needed in our
product. And so, in shared code, if we can stop supporting
something, then we can go on and do something else. We have
plenty to do. But we also know that we have to maintain what
we've done or we don't have any customers.
And so, if we could use the file, a common file
dialog, if there was a way we could stop doing as much of the
work that we had, and use it, we would do it. But if we
needed to write one of our own to preserve the expectations
of our customers, then we would do it. Whatever they needed,
that's what we were going to do. So we were extremely
interested in using the common dialog. If there was a way we
301
could use it and also give people what they expected from us,
that was definitely the path that we wanted to take.
Q. And was that possible?
A. When we had this discussion, yes, that was possible.
The question would be in the details of whether we would be
able to do that or not. But, yes, the file open dialog, we
had talked about that we -- there was a program, application
program interface, an API, that we would be able to use that
would allow for customization of those common dialogs. As I
said, again, we didn't have the actual API's in that meeting,
but they said that those would be provided later so that we
would have the details of that.
Q. Did Microsoft provide Beta versions of Windows 95 to
first wave participants?
A. They provided them to us.
Q. And what is a Beta?
A. In software development, the Beta is a point in your
program where you are done writing your product to the point
where you are not -- you're going to allow a large,
controlled group to work with it. Before Beta -- so I've got
to explain something backing up. Before Beta, there is
Alpha. Alpha is usually released to specific people that
know that you have most of the product there, or maybe all of
it, with some problems, and you are evaluating, in an outside
group, how -- the expectations that they had when you told
302
them about it, is it meeting their expectations? So it's
a test of controlled people.
Then, when you go to Beta, you basically have
consumed the Alpha input. You have worked out that input of
people who are outside of your company and your -- you know,
they don't have your blinders on them. So you're getting --
you're probing a wider group of people, and then you've
integrated that. When you go out to Beta, you're
basically -- at that point, Beta in the industry is: I'm
letting you all see this now. Now you're going to -- you're
going to use it because we are trying to find the bugs, the
things that are not -- that are breaking, where we are really
saying most everything isn't changing at this point, but the
Beta is to hammer out the problems; not, at that point, to do
new features or change features.
Q. Do you recall when you received the first Beta from
Windows 95?
A. I do not know when WordPerfect received the first Beta.
I received the first Beta at the Chicago -- at the developer
conference.
Q. And do you recall the milestone that that Beta was?
A. That was M6, as I recall.
Q. Did Microsoft, in addition to providing the Beta,
provide any documentation for the NameSpace extension API
functionality with this M6 Beta?
303
A. They did provide documentation for the extensions. It
was the first time that I was able to go through. When --
there's two kinds of documentation with software. There's
the -- and I mentioned some before, with our libraries. You
have the documentation that people read to know how they want
to use the libraries or the features or the API's. Then,
there is the description that the company produces, any
company, when they are doing a library, that the compiler of
the machine or the program will be able to read.
And a programmer can look at either one of these and
get some information out of them. The person documentation
is much more descriptive. It has -- it might have samples.
It might have recommendations. The machine documentation is
going to tell you basically how to tie it together. And
so -- and so in the M6 Beta, there was some electronic
documentation for people, and there were the header files
that we could use that would give the exact definitions for
the program, of how to tie it together.
Q. If you would take a look at Plaintiff's Exhibit 181 in
your folder there. Can you explain to the jury what this is?
A. This is that machine computer documentation that I was
referring to.
Q. And does this have anything to do with the NameSpace
extension API functionality?
A. It -- you -- yes. The -- traditionally,
304
the documentation for the computer can be quite lengthy in
some operating systems. It can be hundreds of thousands of
lines, and so they traditionally will split it up into pieces
so that you only need to include what you do. This -- this
printout here is for the computer documentation for just the
shell NameSpace extensions.
Q. And can you explain to the jury, looking through this
document, just generally, not too much detail, please, about
the functionality of each of the API's identified in this
document?
A. I can try. Most of them. So. Okay. So, you're not
going to see what I'm looking at, so I'll look over here.
Can we move down to the bottom of the page? It says, right
there -- this piece. Okay. So, the first -- this first
piece, it's the shell. It's an item. We talked about how
people wanted to view folders and files and places in
databases. Where are my graphics stored? I don't care
whether it's a file or a folder.
What that means, then, is that I need some way to
name those things so that the computer can uniquely identify
that's different than -- so, if I have a picture in the
database, and I have the same picture on my local machine,
even though it's the same file, I need to be able to know
which one you're pointing at and which one you want.
So this first definition talked about an item ID and
305
ID list. It's a definition to capture that unique location.
It's kind of like an address on your house. This is your
full address on your letter. How can I find your doorstep?
And they are storing inside of this definition, here's your
full address, from what country you're in, all the way down
to how many steps it is to your door.
Okay. So, the next page.
MR. JOHNSON: Have we got the next page?
THE WITNESS: This will get faster. Okay. The icon
text menu down there. Second half. When you're in the
shell, you can -- so, I'm not familiar with the operating
systems you know, so we'll just go from there. On most
operating systems now, you have a mouse, and you can use a
curser with the mouse. If you move the mouse, you can go up
to different items or files or things, and you can click with
one or the other button.
If you press with your left mouse, the left button,
you're usually telling it, I want to do that. If you press
with the right button, you are saying, I want to interact
with it. You are not telling it to do something yet. I want
to see what my options are. The icon text menu brings --
that's called a context menu, and it shows features or
options that you can do.
So, on a folder in Windows 95, it might say, you
know, mail this out to somebody. Or it might say, delete it.
306
It let's you choose. This is the way, underneath, how a
NameSpace extension would expose its context menu for its
items.
So the next page. And the next page. Okay. In the
Windows 95 shell -- yeah. That one. Next line, please. So
in the Windows 95 shell, there are NameSpaces. That's the
shell extension. There are things called property sheets.
We talk about being able to show for a document -- do you
know want to know who typed it or when it was edited last?
That's information that you put on a property sheet.
If you were to go to a document in Windows 95 and
right click and say properties on it, then that would be
something that would come up. That's a shell extension. If
you have a folder, one of those pseudo folders I talked
about, that's a shell extension because, in Windows 95, they
call it the shell, so everything that's the shell, it's some
piece of that desktop. And all of those things, whether it
is the control panel for setting your settings or what
printers I have or what devices I have or which mouse do I
have, all of those are shell extensions. This is how you
initialize for the shell, how it starts you up.
So let's go to the next one. So, this next one,
those property sheets here is how you would get those
property sheets up for the -- in the shell, showing that
information about the document or the graphic. Okay.
307
IPersistFolder. That's okay. It's a short one. That's
fine. IPersistFolder. When I'm inside of the -- when I'm
inside of the shell and you click around and you move your --
the little pictures around, you want them to stay there.
Okay? You don't want them to migrate to places that you
can't find them. You have arranged them the way you want, so
persisting is talking about saving out the information you
did.
If you told it to hide one or you --
THE COURT REPORTER: If you wanted to what?
THE WITNESS: So you didn't see it any anymore. I'm
talking too fast. I'm sorry. We had this same problem
during the deposition, didn't we, that I talked too fast?
Anyways. Whatever you do in that view, that's your
information. You wanted it to be there. So, it's going to
keep it. So this is a directive for it to save all your
information out. It also is -- it's -- it also is going to
give you access to some of those objects because I can show
you the objects, but then the question is, once I get the
object, can I actually -- you have shown it to me, and that's
good for the user, but that doesn't mean the program can
touch it. The program has to be able to go to that picture
and read out all that information because just because you
can show a picture that says you've got one there, that's not
interesting to you. You want to be able to actually edit it
308
or do something with it.
It's talking about binding here. That's being able
to go down -- it's taking the object that the shell has and
says, I'm going to give you the real thing. I'm going to get
it out of the database. I'm going to get it off the network,
those places.
Q. Mr. Harral, there's so many of these. Let's just go to
a few I'd like you to hit.
A. Thank you.
Q. On page 9 and 10 --
THE COURT: And then we'll break for lunch.
Q. BY MR. JOHNSON: On page 9 and 10 you've got one called
IShellBrowser.
A. Okay.
Q. If we can get that one up. Can you tell us about that
one?
A. Okay. IShellBrowser is when -- okay. So the shell, we
talked about the shell, the Windows 95 shell. When the
shell -- that desktop that comes up, that's letting you
browse, letting you look at the things that are on the
desktop. Then I click on my computer and it goes up and it
says, okay, here's one of your disk drives. And I click on a
disk drive, and it says, here's all your files. And I can
keep going through it. These are all browsers because it's
letting you browse your -- when we talk about internet
309
browsers, it's letting you browse the internet. Well, the
shell is letting you browse your computer, and that might
include the internet, it might include all sorts of -- all
the NameSpaces are available now.
When a NameSpace comes up, the NameSpace knows how
to present the things that it knows, but it doesn't know
anything about where -- where it's supposed to put them. It
doesn't know. It's the browser that knows. The browser
says, I've got this space on your screen, and I'm going to
put the things in here. It controls all of the places where
things go. And then, that shell extension, the NameSpace is
going to say, well, here's the things you need to put on it.
Go do it.
The IShellBrowser is the API that is given to the
shell extension to broker displaying those things on your
desktop or in those windows underneath the desktop.
Q. Okay. And then the -- I'm going to mispronounce this,
I know. ICommanddigBrowser on page 12. If we could get to
that one?
A. Okay. ICommdigBrowser. It stands for the common
dialogs. Okay. This -- just like -- just like the
IShellBrowser, is the way that a NameSpace could negotiate
for displaying its items, its folders or files, or whatever,
to the person using the system. If we wanted, then, to
enhance the way that the common dialogs worked, because you
310
can just display the common dialog and just have it give you
back the file names, but if you wanted to enhance the common
dialogs, this interface is similar to the browser in that now
I'm negotiating for the space on the common dialog. If I
wanted to change it so that it could resize on all sides, I
could do that, or if I wanted to make it so it could drag and
drop items off of the dialog onto the desktop -- I have done
that before. I'm going along and I realize, oh, it's not
here. And so I go on and it's not where I want it to be, and
so I might go and find it -- it's -- I want to go and find
it, and I might find it in the browser and drag it out there.
You know, it's unrelated to me opening the file.
So this is the interface that's like the shell
browser that lets me modify how the program would present the
common dialog. Okay.
Q. Then IShellView on pages 13 -- I think it's on page 13.
A. Thanks. Okay. The shell view is -- now that I have a
place in the browser to put my -- my view of things, the
shell view is what the NameSpace extension does to draw the
information. So, once it's negotiated with the browser, the
IShellBrowser, which is the shell where can I draw my things
and under what conditions can I do that? The IShellView is
the browser coming back to me and saying, oh, your window
just came to the front. You need to show it. You need to
draw all those things you said you were going to draw or, oh,
311
so something went over the top of you, you need to change how
you're coloring things so that people don't think that they
are touching your window anymore, they are touching this
other one.
And so all of that -- all of that control that the
browser has to make sure that people don't get confused, this
is the NameSpace talking to the desktop telling it what's
displayed.
Q. Okay. And just one more. IShellFolder, page 15.
A. Okay. So we talked -- I talked about the -- how we
draw things. Once we have drawn those things and you select
a file, IShellFolder is a way to take that -- those shell
items we talked about in the beginning, and you can go back
to the shell folder. And now this is how I go and say, okay,
I want that thing or I want to delete it or I want to do
something with it.
And so this is the program. I showed you there --
this is how the program interacted with the IShellFolder,
what the program then uses to be able to do the work that we
told it to do with the other pieces.
Q. Now, Mr. Harral, I know you didn't get through all of
those, there are a lot of them, but do each of these, then,
represent an API provided by Microsoft to you?
A. Yes.
MR. JOHNSON: Your Honor.
312
THE COURT: Thank you.
Why don't we -- I think your lunch is here a little
early. I hope it's there now. We'll break for 20 minutes or
so, maybe a few minutes longer, and then we'll pick up at 12
and then we'll have an hour and a half of testimony after.
And let me stay here with counsel and Mr. Harall for
just a second.
(The jury leaves the courtroom.)
THE COURT: I want to ask you a couple questions,
and I don't want to do it in front jury, because, A, I
don't -- sometimes jurors draw wrong inferences from the fact
that a Judge is asking questions. Secondly, I don't think
that -- many of my questions are not good, and even if they
are good, they are not well asked. And they are not meant to
be trick questions, sir, but I have got to understand some
things about this case.
As I understand your testimony, at least parts of
your testimony, you and your fellow developers at Novell were
very excited about Windows 95. It was technological
breakthrough. It was a whole new operating system, a whole
new -- not a whole new operating system, it was something
that was a real breakthrough in the industry?
THE WITNESS: Yes.
THE COURT: And I can understand why you think that
the withdrawal of the API's, the NameSpace extensions hurt
313
you, Novell, and the consumer, but, in the short run, at
least, talking through the time that Windows 95 is marketed,
at least in that period, from your point of view -- and I'm
not asking you to speak for Novell generally, but from your
point of view, Microsoft was hurting itself, wasn't it,
because it was making Windows 95 less desirable because it
was not allowing the enhancements that you would have brought
to the product?
THE WITNESS: Yes. I -- the enthusiasm that we saw
when we talked with the Microsoft representatives were that
they understood -- we had just -- I'll back up a second. We
had just come off of the OS/2 operating system to Windows.
We had done the transition. And in -- one of the major
reasons we felt that OS/2 didn't do as well and Windows did
was because Windows had applications that -- and features
that people could use. It was useful for business.
And so, anything that brings to the operating system
the features that people want, enhances their ability to stay
on that operating system.
THE COURT: So, therefore, in the short run, at
least, by withdrawing the API's, Microsoft was hurting it's
own product and perhaps reducing its market share?
THE WITNESS: That was confusing to me, because
that's exactly how I saw that.
THE COURT: Okay. Thank you.
314
I'll take a short recess. And, incidentally --
thank you very much.
In terms of that deposition, I absolutely -- I think
I agree with Novell. I certainly did until I read the rule
that the counter designations should not be read, but now
that I've read the rule, it's not quite just context. It
is -- I'm supposed to let in -- that, in fairness, should be
considered with the party introduced.
That's a slightly broader standard than I thought it
was, which was going to understanding the question. One
could say: Look, it's fair. We're talking about the same
document. It's just different parts of the same document,
and, in fairness, everything that was asked about that
document should be asked. Also fairness as to the Micro
issue of fairness.
The macro issue of fairness is, I have obviously --
over Mr. Tulchin's understandable objection, I will have
Novell -- and I think appropriately -- sort of put things in
at different times. And I posponed Mr. Taskier and keeping
him from reading those wonderful findings. I have allowed
the deposition to -- the video to be given at different
times. I think that's the right decision. In terms of macro
fairness, rather than bringing this in truncated fashion,
that was -- if it was related to the document being asked
about -- it's not totally unrelated -- and since I'm allowing
315
testimony to try to come in in an untruncated fashion, my
preference would be -- I haven't ruled yet, but my preference
would be to allow that portion designated by Microsoft to
come in.
So if you all will talk about it. And I understand
exactly where Novell is coming from on that, but the
standards are slightly different than I thought, and one
could even just say, just looking at the document, this is
part of the document. In fairness, it all should be read.
Frankly, more important -- at least important is the
fact -- the way I am not allowing evidence to be presented
in a non-truncated fashion. So just take that into account
and talk about it at the end of the day.
(Short recess.)
316
THE COURT: Let's get the jury.
(Whereupon, the jury returned to the court
proceedings.)
THE COURT: Mr. Johnson?
MR. JOHNSON: Thank you, Your Honor.
Q. BY MR. JOHNSON: Mr. Harral, when we broke, we were
looking at Plaintiff's Exhibit 181, which was the computerease
about all of these APIs involving the NameSpace extensions.
Can you tell me, Mr. Harral, did this document
provide WordPerfect with full documentation regarding the
NameSpace extension functionality?
A. It would not.
Q. And how do you know that this document provided
only partial documentation for the NameSpace extension API?
A. As I mentioned before, you have what the machine
needs to know, which is this document. The computer can't
infer how I want to use things or what my --the intended
outcome is. So that's, you know, that's what we call
semantics of the process. It's the intent. And so the person
who's developing their software, they would need additional
documentation that would describe how these computer
definitions are meant to be used. There will be edge cases
where you could try and use them, and it may not behave in
ways that are predictable with the rest of the system. And so
those nuances or differences would be documented.
317
There would also be samples of how to use them, and
there would be -- and recommended ways in which they would
use, as well. And I'm speaking from documentation that we had
seen in the past, that I had seen in the past from both IBM
and Microsoft on programming interfaces for other systems and
party systems.
Q. Did you have any conversations with anyone at
Microsoft about providing the full documentation?
A. Yes, we did. Well, there was the meeting that we
had where we asked about having both this and the full
documentation. We also -- at the conference there was
discussed that the documentation would be forthcoming when we
received the M6 beta. And as a member of Premier Support, I
had opportunity to talk with representatives at Microsoft and
would have also asked what the update would be on getting the
information along with other issues that we would be asking
them about at the time.
Q. And based on those conversations, did you have any
understanding of when WordPerfect could expect to receive a
complete documentation?
A. The next beta would have been the time that we were
told that we could receive that.
Q. Let's focus in on the time period before you
received the documentation, Exhibit 181. Was the shared code
team doing anything in anticipation of receiving this
318
documentation?
A. Yes.
Q. And what were you doing?
A. We were -- because we had been tasked to move the
shared code as we were for any installation, we were going
over the documentation we had, and we were moving the shared
code in anticipation of WordPerfect and presentations of our
graphical product and word processing product to move over to
Windows 95. We would also be talking with the other groups
about the Quickfinder, the spell checker and thesaurus. We
would be working with all of those groups to find out what
their time frames were to be able to deliver things so that
shared code, we would know how much of shared code would be
there when the applications were moving.
Q. Would there be -- would there have been any work
going on prior to receiving this documentation with respect to
WordPerfect's file open dialog?
A. Well, yes. First of all, we were working from an
existing code base. And so we already had a Windows file open
dialog, even though we're not talking -- even though I'm not
talking about how it's presented, the fact of how to connect
to a network drive or how to preview a file, those are things
that we were already working on because we knew that those
components, those pieces would then be plugged into the
graphical framework of Windows 95 once we got ahold of that.
319
Q. Now, after you received this documentation
reflected in Plaintiff's Exhibit 181, can you describe
generally to the jury what the shared code team was able to
accomplish with it?
A. So we began a discussion with the other parts of
the company that would provide features so that we could, we
could then talk to them about details, about how they would
interact with the shell and try in an architectural role, and
we were having a discussion, how is your software going to
move forward given this description now? It also gave us some
of the detail that come, what are we going to have to provide
to the shell, as we have this discussion about -- we could see
that there were -- there were things, it's going to ask us
where you want, you know, how much space do you need to
display things? So there's this discussion of dealing with
it, how we can work with it.
At the same time, we began working on the pieces
that we contained inside the shared code with the file open
and file save as. We were moving to hook these up into the
shared code so that when people -- when the engines called the
shared code they were getting Windows 95 features, and it
would start to give the developers of the applications of the
engines an accurate feel of how the product was going to
behave in this new environment.
The other thing that we were then doing is we were
320
also having a discussion about, with the mail team, the
document management team about, and other groups what they
were going to provide as far as extensions of what they
thought they could provide.
Q. And what, if anything, did this documentation add
to that process that you're talking about?
A. It gave us the ability -- it gave us the ability to
actually not just talk about but see how it behaved. So we
were actually -- we were actually hooking in WordPerfect code
and having -- or shared code and having it -- we could see how
it behaved. So it wasn't just now -- we weren't just talking
about how we think it should behave once you learn something
about -- it's like if I want to learn about rock climbing, I
can read books on it. But once I tried it the first time I
have a whole set of questions because I am now smart enough to
ask stupid questions about it.
And so it's the same thing with the APIs. Now that
we could actually hook things in, we had, you know, a whole
new set of questions. We were continuing down -- we were
getting down to the details to be able to get us to the end to
deliver us.
Q. When you talk about hooking things in, are you
referring to hooking into the beta that have been provided by
Microsoft?
A. Yes.
321
Q. And for how long did you get in that process?
A. For the shared code or for everything?
Q. Shared code.
A. For shared code we were about 80 percent of the way
through -- well, in that process to what point?
Q. Let's talk up to October of 1994.
A. We were about 80 percent of the way through hooking
up the shared code pieces into the Windows 95 system.
Q. What, if anything, was holding you back from
completing the shared code portion of the development?
A. We -- we had a lot of information and experience
with the file system. We were needing more information on the
new pieces of Windows 95, the NameSpace that were provided we
needed. Traditionally WordPerfect would try to present the
network. Windows 95 had a way to present the network now, so
we needed to have details on how that was behaving and how we
could merge that with what people had already done or had --
or had expectation with the previous products. The recycle
bin. Mostly the NameSpaces were the ones that we needed.
Also even in the regular file system when somebody
says to copy something in the file open dialog box through the
context menu, so right click on an item, we -- or deleting,
there were things that we might keep track of, like the
Quickfinder might want to know that that file is gone and then
no longer need for us to tell you that it's not there when
322
it's not there.
So all of these things that we had in shared code
we had to evaluate in terms of how the new code was acting so
that we could represent accurately what our users expect from
WordPerfect.
Q. Let me ask you, then, hypothetically speaking, if
you had received the final documentation from Microsoft with
respect to the NameSpace extension APIs, how long do you think
it would have taken the shared code group to complete the
process?
A. It probably would have been before December of that
year.
Q. December of 1994?
A. '94.
Q. I think you may have answered this before. But do
you recall approximately when WordPerfect merged with Novell?
A. It was in 1994. I don't remember the month. It
was mid.
Q. Would that have been around the time that
WordPerfect received the M6 beta?
A. Yeah. I think it was, because it was, the M6 was
in the summer.
Q. You need to keep your voice up.
A. Sorry.
Q. That's all right. Did the merger affect your
323
day-to-day job as a software architect in any way?
A. The only impact it had was that there were a couple
of meetings with Novell architects to see, one, how we could
have shared code technology available to Novell, which would
have been the same for any customer that we might be asked to
do; and for us on the same side seeing if there were ways that
we could in the future leverage Novell technologies and our
products. There were only one or two meetings that I can
recall with that. That was really the only impact that I had
that was needed for that.
Q. To your knowledge, did the merger with Novell
affect in any way the development schedule for the Windows 95
products you were working on?
A. No. The -- we had schedules beforehand. Novell
was very -- was very hands off about that for -- they didn't
want to disturb what was happening. And I've been involved
with mergers for many companies, actually. And this was a
very hands off kind of acquisition. They just wanted
things -- they wanted to do what it was always doing, that was
shipping product.
Q. Could you turn now to Plaintiff's Exhibit 369 in
your binder. And, Mr. Harral, can you tell us what this
document is?
A. Let me --
Q. Take your time.
324
A. Okay.
(Time lapse.)
THE WITNESS: This is the shell exploration and
integration document for the applications for the suite for
Windows 95 and WordPerfect.
Q. BY MR. JOHNSON: At the top of Page 1 you see a
revision history there. As of September 30th, 1994, were
you -- did you continue to be the lead architect for the
shared code group?
A. I did.
Q. And who is Sid Cragun listed here with respect to
these revisions?
A. He was the maintainer of the document. He was the
shell integration developer for WordPerfect word processor.
Q. Was he part of the shared code team?
A. He was not.
Q. If you'll look at the next page of this document,
Bates stamp ending 715. And it says, these requirements were
formally reviewed as follows. And down this list there's
three meetings, August 31, September 23 and September 30.
Were you an attendee at these requirements meetings?
A. Yes, I was.
Q. And do you recall attending these meetings in the
summer/fall in 1994?
A. I remember some of these meetings, yes.
325
Q. There's a lot of large number of attendees at these
various meetings. Can you tell us generally what product
groups are represented here by the attendees?
A. So I see representatives from the printing group,
Leonard Shoell. I see a representative from the WordPerfect
mail product, and people from WordPerfect, from shared code,
Bryce Pool, that would be writing tools. And there's also
upper management in some of the later meetings.
Q. Well, why was shared code at a meeting dealing with
those products?
A. Because we had already had significant work done in
the shell extensions. We were bringing together those shell
extensions. So the applications, when they got to the point
where they had their -- the engine working, then the question
came to, okay, how do we do the other piece now that we can
edit a document? How do we do the things that we promised in
the first wave of making sure that we have shell integration
and property pages that say, this is a word printed document,
here's who types it, and making sure that our program is
behaving the way it -- so the applications wanted a forum that
would be unified so that they were all understanding the same
way that they were going to do it. And this document was the
means of being able to get that forum to happen so that
everybody understood the same way that the applications would
evolve.
326
Q. All right. So what shell integration, if any, was
the word processing WordPerfect doing?
A. It would have been interested in the property
sheets for the files. And it would be interested in knowing
that the other shell extensions that it might rely upon like
the document management system, et cetera, were going to be
there. But there wouldn't be anything more that they would
need to do for that because it would share a code that had
already provided the means of accessing that.
Q. So the shell integration being talked about in this
document with respect to WordPerfect, the word processer --
A. Uh-huh (affirmative).
Q. -- did that have anything to do with the NameSpace
extension APIs?
A. I don't know anything that WordPerfect word
processor needed to do for a NameSpace extension. They did
have shell extensions, but I don't recall a NameSpace
extension that they needed to do.
And there could be other -- there were other parts
represented here, too, and I would have to look at each one of
them. But that one didn't need anything, that I know of.
Q. You previously testified that you were one of the
liaisons for WordPerfect with Microsoft Premier Support?
A. Yes.
Q. And did that continue when you merged with Novell?
327
A. It did.
Q. You may have touched upon this earlier, but can you
describe again how Premier Support works?
MR. TULCHIN: Is this present tense, Your Honor, or
meant to refer to that period?
THE COURT: I think it was present tense, but I'm
sure it was meant to refer back then.
MR. TULCHIN: Thank you, Your Honor.
MR. JOHNSON: It was, Your Honor. Thanks.
THE WITNESS: So in Premier Support at Microsoft,
we would have access to a representative that as we had
technical concerns or maybe other concerns, like how we were
supposed to behave under a certain circumstance in
WordPerfect -- or WordPerfect would behave or some other
application.
As issues came up inside of WordPerfect Corporation
or Novell, one of the three, there were three people who were
designated as support people, they would hold that conference
basically with the people from Microsoft and work out -- they
were there to help so that products could move forward. And
they could work out any issues that they had.
So at WordPerfect there were about 1200 people in
the software division. I had responsibility for about
400 people that would raise questions in Windows. The reason
they selected me for being a Premier Support liaison is that I
328
had a lot more experience in graphical operating systems
across different platforms. And I actually spent a lot of
time, being in Windows before, I had spent a lot of time
keeping up with the technologies, so requests would come to
me, so that -- so that Microsoft engineers would concentrate
on the issues that were very important to us. Usually 9 out
of 10 of the issues that came to me I would answer or I would
find somebody in the company to answer. And so only the ones
that -- so they knew that when we talked to them, only the
ones that were really difficult were the ones that we were
trying to consume our time with. And that's kind of the role
that I had with them.
Q. BY MR. JOHNSON: All right. Did you ever talk to
Premier Support about the NameSpace extension functionality?
A. I did.
Q. Do you recall when you first spoke with Premier
Support about this functionality? And we can put a time frame
on it. Did you talk to Premier Support about this
functionality prior to receiving the M6 beta?
A. I did not -- did I talk to them about it prior to
receiving the M6 beta? There wouldn't have been any
discussion with them prior about the beta except for probing
for information on the extension. When we got M6, that we
finally got the information that we had been told that we
would have somebody compile against, build our code against.
329
So there would have been only small queries about having the
documentation so we could proceed and hook in what we had
already been working on.
Q. And how about after you received the M6 beta? Did
you have conversation with Premier Support after about the
NameSpace extension functionality?
A. Yes. Because of the lack -- we were not as
concerned about the lack of documentation over a short period
of time because having -- that was part of the reason for the
Premier Support. In the past I had -- when we had things that
needed clarification from Microsoft, we would call them, and
sometimes they would get the developers who had actually
worked on the Windows features together with us so that we
could talk directly.
I remember one time that I spent a lot of time
working on the presentation of menus. That was one of the --
as well as an architect, we had our own features that we
worked on, as well. And I was working on menus, and the
liaison that I had at the time I was discussing with the
developer of Microsoft the things I was trying to solve. My
Premier Support liaison said, this is really interesting to
me. And he says, I'm taking notes on this.
And later on, he published an article in Microsoft
Systems Journal. And so it was really neat that the liaisons
were also a means of disseminating a lot of information about
330
how to solve problems in the operating system.
And so that was -- after we had M6 we were not too
concerned over the short-term because we had this access to
Premier Support where we could engage them and try and solve
any immediate issues that we had until we had the
documentation.
Q. Can you give us any kind of estimate for how many
times you personally spoke with Premier Support regarding the
NameSpace extension functionality prior to October of '99 --
1994?
A. I remember three times because I wasn't the only
liaison. But I remember three times.
Q. Were other liaisons to your knowledge having
similar conversations?
A. Yes. Especially one of the liaisons would have
been, was in the WordPerfect mail group, Lynn Monson, and he
was also a liaison. And the WordPerfect mail group was very,
very interested in the extensions, as well. I know that he
was having conversations with them.
Q. Prior to the launch of Windows 95, which occurred
in August of 1995, did Microsoft ever provide the full
documentation with the NameSpace extensions to Novell?
A. No, they did not.
Q. When did you find out, if you did, that the
NameSpace extension functionality which was, had been
331
partially provided in the M6 beta would no longer be provided
by Microsoft?
A. I found out on a call to Microsoft to the Premier
Support in around the October time frame. I -- we were -- we
had a couple of issues that we needed clarification on, and
one of them had to do with our file open dialog and some of
the NameSpaces. And we approached Premier Support and asked
the question, and they told us that the NameSpace extensions
and what we were asking about was no longer something that
they could discuss through Premier Support at Microsoft.
Q. Let me show you what has been marked Plaintiff's
Exhibit 227, which is in the binder in front of you. Can you
tell us what this document is?
A. This is the same terse document that we were
looking at before. But it's from the next release of the
beta.
Q. That would have been the M7 release?
A. I think it's the M7 release because it says at the
top it's for the 10-28-1994.
Q. And did you review this documentation when it was
provided by Microsoft?
A. Yes, we did. I did.
Q. And did this documentation provide the full
documentation that Microsoft had told you would be coming in
M7?
332
A. It did not. It, in fact -- some of the pieces that
we had had been removed from it.
Q. What do you mean some of the pieces had been
removed from it?
A. The ability for us to present our NameSpaces to
Windows 95 shell for it to negotiate where we were going to
place our NameSpace items, being able to store what the user
did when they interacted with our NameSpace and being able to
enhance the common dialogs were all missing.
Q. And can you with reference to this document -- and
this may be too difficult. But with reference to the
document, can you tell us what had been taken away in terms of
the APIs we had been discussing earlier?
A. So I guess in terms of what -- what was impacted?
Q. Yes.
A. Okay. So shared code would no longer be able to
use the Windows 95 common dialogs to provide the features for
all of the products that we were providing for and for the
third-party people that were also licensing the technology.
We would not have the ability to integrate the e-mail product,
the image browser for showing graphics from our presentation
product into the -- into the shell so everybody, everybody who
would have lived in the shell would not have access to our
features like they had in our -- in our file open dialog and
places that we had inside of our product. And so if people
333
were living outside, they wouldn't gain the advantage. If
they were living inside, they would have those things.
But also because you couldn't provide the common
dialogs the other question is, then, that also put at risk us
being able to talk to Windows 95's regular shell extensions
that it provided.
So now the question was, how do I get the recycle
bin to show up? It's not just a directory. It's actually a
place across multiple places. Am I going to have to rewrite
the recycle bin and duplicate exactly what it does? Network
neighborhood was a bringing together of all the networks. And
now if I have -- I have code and shared code that can talk to
a network, but how do I present those networks? How do I know
what ones even the user has access to because all of that is
already defined in the shell in that NameSpace. So I've got
to go talk to that NameSpace to be able to represent the same
view that they have out of the shell in my product.
And so we had a twofold problem. One was we
couldn't expose what we had out to the customers who had lived
in the shell; and we were having a problem getting all the new
Windows 95 pieces from the shell into our product. And we
became an either/or kind of world.
Q. During Microsoft's opening in this case to the
jury, Microsoft's lawyer describes -- described the NameSpace
extension APIs, as quote, four little APIs, close quote, out
334
of approximately 2500 APIs within Windows 95. You've heard
this stated that the NameSpace extension APIs were, quote,
just a very small piece of what the operating system was being
written to provide to companies like Novell, close quote.
Do you agree with Microsoft's lawyer that the
NameSpace extension APIs were just four little APIs?
A. No; because when we were looking through the APIs
before, we talked about -- I pointed out initialize shell
extension. That's how you start up something that wants to
live in the shell. It's one API. If you remove that, there
would be no way to start up a shell, okay. So there are
different weights to the importance of things.
We're not talking about changing the color that's
the background of a picture, you know, of a little image on a
desktop here. The browser APIs stopped anybody from finding a
place to put things on the shell. The view APIs stop them
from showing anything from the shell. The common dialog APIs
stopped them from getting at those things in the common dialog
and adding things for people beyond what the shell provided.
And the persist just made sure they couldn't -- even if they
could do that, they wouldn't be able to save it so that the
user would have that same consistent view from one time to the
next.
Those were -- the four removed APIs, that's the
impact that we saw in removing those four little APIs. You
335
can do something to my house, but if the thing you decide to
do is remove the door and close it up, that's a pretty
significant thing to do to your house.
Q. How long have you worked as a software engineer?
A. 31 years.
Q. In your 31 years, have you ever experienced an
operating system vendor remove a major feature from a
published beta?
A. No. The designation of beta in the software
industry is that it is for ferreting out problems to be fixed,
not for changes in the features. That's what alpha is for.
So no.
Q. In your opinion, based upon your 31 years of
experience in the software industry, would the removal of a
major feature from a published data be an extraordinary event?
MR. TULCHIN: Objection, Your Honor. He's not
qualified as an expert, and he shouldn't be asked for this
sort of opinion testimony.
MR. JOHNSON: He's got 31 years of experience in
this industry, Your Honor.
THE COURT: Based on your experience. Overruled.
Q. BY MR. JOHNSON: Go ahead, Mr. Harral.
THE COURT: You can answer it.
THE WITNESS: Okay. Say it again. Sorry.
MR. JOHNSON: Sure.
336
THE COURT: And there'll be an objection at the
end, but it's overruled.
THE WITNESS: Okay. That's fine.
Q. BY MR. JOHNSON: In your opinion, Mr. Harral, based
on your 31 years of experience in the software industry, would
an operating system vendor removing a major feature from a
published beta be an extraordinary event?
A. It would. May I speak to why I feel that way?
Q. Why?
A. Okay. One -- as an example, one of the things that
I had occasion to do with IBM is that they were also thinking
about removing APIs from the OS2 operating system. And they
selected a half dozen people from across the industry to come
in and counsel with them on what APIs should be removed so
they could reduce the size of OS2 and make browser smaller
computers. As we went into that and started talking about
what we could remove, they started to go through the list.
And even though they pared out a small portion of them to try
and remove it, they realized that the impact and the perceived
impact of their industry was so great that they did not dare
do it. And so instead, what they did is -- so that's one
approach which they could do. They could just remove some
things and cut it out and say, okay, this is our light
version.
But what they decided instead is that was so
337
unacceptable that they tasked a brand-new team, and they went
back in and rewrote the operating system to remove it so that
it would be smaller. That was how damaging they felt it was
to try and remove APIs. And so they tasked an entire team to
go back and fix that problem.
MR. TULCHIN: Your Honor, I move to strike the
extensive testimony about what IBM was thinking and what IBM
was feeling.
MR. JOHNSON: Your Honor, it was based on his
personal knowledge.
THE COURT: I don't see how he can because he
didn't work for IBM.
Or did you? Were you at IBM at the time?
THE WITNESS: I was at WordPerfect, and they had us
working with them to decide whether or not to do this or not.
And so this is what they told us.
THE COURT: Sustained.
Q. BY MR. JOHNSON: Based upon your 31 years of
experience in the software industry, Mr. Harral, an operating
system vendor publishes an API and provides you a code and
beta release, what does that mean to you, if anything, with
regard to your expectation that the APIs will continue to be
supported above now and in the future?
A. So the answer is because it's a beta that they have
decided and they have already talked with their main partners
338
that this is what needs to be there --
MR. TULCHIN: Same objection, Your Honor, to what
they have decided. Again, the witness is just --
THE COURT: The problem is, just make sure --
THE WITNESS: I'm sorry.
THE COURT: I know you know because what they told
you. The problem is in court unless they're here, what they
told you I just can't let in because it's for the truth of
what was said. It's a legal issue. It's nothing wrong with
you. But that's the problem.
THE WITNESS: Okay.
THE COURT: So if you were told something, for some
purposes it is admissible. But it's not admissible for like
IBM did this because of this. They have to be here to answer
that.
THE WITNESS: Okay. Okay.
Q. BY MR. JOHNSON: If you could give us your
understanding based upon what you know from 31 years of
experience.
A. Okay. All right. So in dealing with betas for
operating systems for Apple, for Microsoft, for billings, when
we are given a beta, that is because that's what they intend
for us to build our application on. We are on a schedule. We
have made commitments to companies that we are going to
provide them with things that they do, you know, that they run
339
their business on. And we also have vendors who are going to
sell our products, and they're going to start marketing
campaigns months in advance, you know, in the event of these
things coming out.
And so we rely very heavily, that is why in the
software industry it's termed beta, is because the state of
the software development is that this is what people are going
to rely on. This is what people are going to make marketing
decisions upon and company purchase decisions based upon.
So it's a -- I know that between the releases of
operating systems that what is provided might evolve. But
that's what different versions of operating systems are for,
is you evolve it. That's why you release a different version
of it. You're saying things have changed. That's not the
practice for a beta.
Q. Did Microsoft ever inform you why they decided to
de-document this functionality?
A. I was never informed why by them.
Q. Did you have any understanding of why they did that
at all?
A. I guess the answer is that I was never given a
reason by them why.
Q. In your opinion, was there anything incomplete
about these APIs?
MR. TULCHIN: Same objection, Your Honor. Again
340
he's not an expert and hasn't been qualified.
THE COURT: From his perspective. He worked with
the APIs.
You know, from your perspective, would you have
been able to work with them?
THE WITNESS: Was I able to work with them for what
I was needing to do? No.
Q. BY MR. JOHNSON: Okay. Microsoft's lawyer said in
its opening that there were three reasons why Microsoft and
Mr. Gates in particular chose to withdraw the NameSpace
extension APIs. The first reason -- could we put that up?
The first reason proffered by Microsoft lawyer was a program
written to use those APIs could potentially crash the whole
shell.
Based upon your years of experience as a software
developer, do you believe that reason justifies Microsoft's
decision to de-document the NameSpace extension functionality?
MR. TULCHIN: Same objection.
THE COURT: I'll overrule that, also. That's a
call for Microsoft to make.
MR. TULCHIN: I'm sorry, Your Honor?
MR. JOHNSON: I'm sorry?
THE COURT: It's overruled, because as far as I'm
concerned, that is a decision for Microsoft to make, not for
him to make. I don't care whether he's an expert or whatever,
341
but Microsoft decides that. You know, it's crazy, but if you
want a real expert in there just saying it makes no sense,
that's one thing. But the way the question was phrased, the
objection is sustained.
MR. JOHNSON: Thank you, Your Honor.
Q. BY MR. JOHNSON: Faced with Microsoft's decision to
de-document the NameSpace extension functionality, what
options, if any, did Novell have for continuing to develop its
products for Windows 95?
A. One option would be to continue to use the
documentation that we had for the APIs and be relied upon our
ability to ferret out all of the issues we would have had help
from their support to do. So basically we could do it on our
own with something that we were told we shouldn't be using.
That was one option.
The second option would be to see if we could
somehow fit within the framework that they had given us and
reduce functionality. And then there would be the question of
the impact to our customers, if those changes would be viewed
as inconsequential or if they would be significant or even
dire.
The third option we had was to try and recreate
what was missing or what we yet did not have access to. That
could -- that would be a significant commitment in resources
and a dangerous way to go and would probably be our least
342
favorite choice, because as the -- as the operating system
nears its release, there are things that they would fix at
Microsoft in the product before it released. There are --
there were really -- there were NameSpaces in the product
already. And if we were going to -- as the slide from
Microsoft said, if we were going to exactly reproduce the
abilities and functionality of the NameSpace then any change
that happened we would be reacting to at WordPerfect so that
we could release, it would be -- it would be a difficult thing
clear up to the day of release to make sure we had everything
we possibly could get in.
We did know, however, that no matter what option we
took we wanted this going forward. And we were going to write
our system based upon the definitions that they had given us.
So even if I -- we went through all the computerease for
talking to these libraries, the shell. If we didn't want to
rewrite our product once they did document them because we had
written our own to make it -- because we could make it look
exactly like potentially, but that didn't mean it had to be
exactly like underneath. And if we decided later that we were
going to move to what they documented, we could force an
entire rewrite of most of the shared code to be able to come
into compliance with that documentation.
And so in order to minimize that, what we would do
then is we were going to -- we would have to look at what they
343
had -- what Microsoft had given us in the beta, and we were
going to have to -- if we wrote our own system we not only had
to mimic what people saw on the outside, we had to mimic what
was happening on the other side. So at that point we were
almost literally rewriting every access point into that
system. So that would be the most undesirable of the three
options that I mentioned.
Q. So what did Novell decide to do?
A. The first option that they decided to do was to use
the APIs and try to explore -- use what was there and try to
build that up. We had access to the NameSpaces, and we -- if
we had leverage -- if we could leverage the existing code,
then we could provide the functionality that the operating
system gave us, we could maybe back off on some of the
NameSpaces and present them as installed folders. But the key
issue for the shared code group -- I can't speak for the other
parts of WordPerfect that were providing their own parts. It
was their decision, as well, what they thought was the best
way to do this. But for the shared code group, trying to
build a file open dialog on top of what we already knew about
the NameSpace, because if Microsoft were to rewrite that, that
would cause them to have to go through more testing. If you
understand the software development process, if you're going
to change things you're going to revalidate your testing,
you're going to have to go back and revalidate that. So that
344
didn't seem like a likely avenue for them to go on.
The question would be, could we get access to the
NameSpaces and represent them in our system appropriately so
that -- so that when people saw our file open dialog they
didn't feel like it was missing all the Windows 95 systems
that were present. And so that's the approach that we
originally took.
Q. And how did that work out?
A. We found that as we went down that road that it was
difficult through Premier Support to get help on the shell in
general. And so -- because icon text menu is documented. But
when we asked, how is the -- how do we invoke this feature in
the shell? If I get on the menu and it says map and drive,
how do I invoke this? Or what's supposed to happen here?
That's not a documented APIs, but there was no explanation
forthcoming.
So we were -- because of the trepidation around
whether you should be talking about the shell or not, our
interaction with Premier Support was that they were starting
to give us less and less information about the shell in
general. And so at that point we realized that we really
could not continue trying to explore the NameSpaces because we
were not going to -- even on documented APIs we were not
getting the level of help and it was diminishing, so we were
going to have to move to something else.
345
Q. I want to make sure we understand this right. You
were calling Premier Support and seeking information on this
shell with respect to documented NameSpaces -- documented
APIs, excuse me.
A. Documented APIs.
Q. And what was the response?
A. They were not providing the answers that -- or the
answers about things like they had in the past, so we were
getting less and less help.
Q. And that's with respect to the entire shell?
A. The entire shell.
Q. So what did you do at that point?
A. So, okay. So always, whenever we had -- when we
came up to what we thought was an intractable problem, we
always came back and said, okay, do we now know enough about
the common dialog so we could use them and try to work it some
way? So that issue always came up on the table every time we
looked at it. And in talking with our customers, you know,
losing features that they had used for 10 years was not going
to be an option. If we -- they bought our product because of
the enhanced things that we gave them in file management. And
the concept of where you live was a big deal to them.
And so we looked at that option and again discarded
it. And at that point we said, okay, what would it take for
us to -- we have network code. We have -- we know where -- we
346
know where the recycle bin is at. Is there some way, then,
that we can imitate the NameSpace inside of what we're doing
so that we can give that same view in our file open dialog
would look, like I said look exactly like the common dialogs?
Q. And you've heard the term reverse engineering?
A. Yes, I have.
Q. And was this a form of an attempt at reverse
engineering?
A. Yes, it is; because we have to act exactly like it
by their -- by them telling us we had to. If we were -- they
said it. If we were to reproduce it, we had to act exactly
like it.
Q. And how long -- I think you testified earlier that
was the least attractive of the options. How long did it
take?
A. For the file open dialog? Okay. It took the
shared code group, once we made that decision, it was almost a
year.
Q. Microsoft said during its opening that, quote,
there were alternative ways that Novell could have gotten the
same functionality that the NameSpace extension APIs would
have given them, close quote.
Have you ever heard of something called CHICOAPP?
A. I have heard of it.
Q. Could you turn to Defendant's Exhibit 134.
347
Mr. Harral, have you seen this document before?
A. Hold on.
Q. Sure.
(Time lapse.)
THE WITNESS: Yes, I have this document before.
Q. BY MR. JOHNSON: Can you tell the jury what this
document is?
A. This is a sample that was published through the
Microsoft developer network to demonstrate how you might put a
tree view up and tie it to a list view and tie the two
together.
Q. And is that what CHICOAPP was?
A. I have never run CHICOAPP, so in the reading of the
documentation that's what I understand it to be.
Q. And based upon the documentation that you reviewed,
would that be a substitute for the NameSpace extension APIs?
A. No. The NameSpace -- there is a difference between
window dressing and file management. If I buy a fender kit
and screw a jaguar on the front of my car it's not going to
make it go from zero to 60 in four seconds.
In file open, we in shared code didn't just control
file open dialog, save as dialog. We controlled all of the
file operations of WordPerfect. The shell in Windows 95 had
the -- had a knowledge of certain document formats, and it
could detect them, and they had property sheets that were
348
already available for those formats. We were planning on and
had done implementation to write our document out in some of
those formats that were native on Windows 95. We were using
the shell to -- because it had the implementation -- if you
want -- I talked about how you can see the object in the
program and can touch the object. Just because I can display
something that looks like a shell doesn't mean I'm touching
the object. If I wanted -- I can see that there's a graphic
there, I can't tell it to bring back the information that is
behind that item then I can't get it. It does no good to show
it and not do anything with it.
CHICOAPP is saying that here's a tree and here's a
view, and you can put them together and you can put up menus,
and here's how you put up menus. But it's not tied to the
NameSpaces. If there had been a sample there to show me how
to talk to the NameSpace and put it in that app, then that
would have been comparable. But it's just window dressing
from our perspective.
Q. Did you continue to seek the assistance of
Premier Support on any of these issues?
A. I know that there were efforts that were through
management to resolve the issue. I do know that the other
liaisons with Premier Support also -- as I said, the mail
product was even more frustrated because they, unlike shared
code where we're bringing in answers and pieces, they were
349
talking about putting up their whole applications through this
shell extension -- shell case mechanism. So they were much
more animated as I talked to the Premier Support liaison with
them.
So there were efforts. I did not have many more
opportunities to interact with them on it because we were so
entrenched in trying to reproduce this functionality.
Q. And what kinds of resources did you bring to the
task within shared code?
A. Well, shared code, there were different teams on
shared code for pre-scripting. They had a team that
interfaced with printing. They had a team that worked on all
of the file system, file open, file save as. They had another
team that worked on internationalization and menus and
keyboards.
In the beginning we -- in 1994 October, we had, the
developer had moved us 80-percent there. He was -- he first
was looking at the -- trying to move. And then in January we
are now trying to move to a reproduction mode of trying to
reproduce all of this. At that point, we start reassigning
people because other people are freeing up. They've completed
their tasks, and we're still -- we have not -- we're trying to
reproduce the NameSpaces and assign one person to each of the
NameSpaces. One person for the recycle bin, one person for
network neighborhood, one person for briefcase, trying to
350
split the problem up so we can move through it as quickly as
possible. The harder problem is without access to the file
system, being able to open up the files, because in Windows 95
you could open up what is called a DOC file, which is the,
which is similar format to what Word uses. And it's a
standard format that Windows 95 recognizes.
So WordPerfect, also one of the commitments we had
made is that we were, to our customers is that we were going
to allow for our documents to either be saved in our old
Windows or old WordPerfect format or to save it in the new DOC
file format in Windows 95. So by not having access in the
shell to touch those objects and open them up and do things,
we were now having to rewrite all the file maintenance
functionality of being able to interact with those files. And
so we had actually -- we had a person originally and then two
people assigned to that task in an effort to try and move this
forward. And this was originally not a big deal for the
applications because they could still use the WordPerfect file
format. I mean, it had the dialog 80 percent of the way. So
as long as they opened files on the C drive, they were able to
operate.
But as it got closer to the release time and we
weren't able to bring in the outlying issues of, can I get
to -- can I get to the recycle bin? Can I get to network
neighborhood adequately and represent it? These are not --
351
all of a sudden these things that were ancillary. These are
the last things that are available, and they're holding it up,
holding up the product.
Q. In your opinion would more resources have
translated into an earlier release date?
A. No. It would have led it even more.
Q. Why do you say that?
A. Because in the shared code group we already did
what's called cross training. So we already had people -- you
assign somebody as an expert to a particular area, and you
cross-train somebody else so that if somebody wants to go on
vacation you let them. And the person who then is
cross-trained, they then can come in and they can maintain and
take up the slack where there -- that's made by the person who
is missing.
And at the same time, the shared code group was, as
I said before, I would go around and visit with people. We
were all in the habit of working on and jumping in as people
needed. So we all had familiarity with each other's projects.
We had a -- we had established a common coding style so that
when we looked at each other's code we could easily ascertain
what was going on. In fact, we had an instance where somebody
had left our team, and we had him -- and I had left the team
and we had come back together. It was four years later, and I
could still read his code just because his coding style was
352
the same. It was the one that we had always used.
So we had the discipline in place to be able to
handle this. The problem you have is when you bring people
who are not -- so we could all jump in. In fact, we ended up
eventually with six of the people working on different aspects
of just the file system trying to get through this problem.
So that's half of our team.
The problem is that if you bring in somebody to
train, you aren't doing your work. You've got to train them.
So usually if you've got one more person in there that you're
training, you've gone down, you're lucky if you've gone down
to three-quarters productive. If you bring two people in to
train, you go from three quarters to nothing, because you're
spending all the time -- because they're going to ask
questions as they learn. So you've got to dump all that --
sorry -- dump all that information for them so that they can
be productive. If we were to double the shared code team, it
wouldn't have taken a year. It would take two.
THE COURT: It sounds like the summer associates
program.
MR. JOHNSON: It does, Your Honor.
Q. BY MR. JOHNSON: You mentioned vacations in that
answer. Were any vacations being taken during this period?
A. I can only speak for myself and my teammates. And
the answer is no. I can't speak for everybody.
353
Q. Is it fair to say you were working around the
clock?
A. We had -- I had weeks where I was working -- I was
110 hours in that week. There were two weeks that that
happened. 80 hours was common.
Q. Microsoft said in its opening, quote, at the time
Novell never complained about Mr. Gates' decision to withdraw
the NameSpace extension APIs, close quote.
Is that true, Mr. Harral, that you never complained
to Microsoft?
A. I complained to Premier Support, and that's the
avenue that I had. There were other people who had access.
And my manager said that they had complained, but I can't
speak --
MR. TULCHIN: Objection, Your Honor, hearsay again.
THE COURT: That's sustained.
Q. BY MR. JOHNSON: Just with respect to you.
A. Just with respect to me, I talked to Premier
Support about that. Well, and we talked -- actually when we
had the M7 conference, we also raised that at the conference,
too, with people there.
Q. The what conference?
A. The M7 conference, when the APIs were first
removed, we complained then, as well.
Q. So there was a conference devoted to M7?
354
A. No. But we had a discussion with them about it
when we got the beta. Conference is, whether it's a public
conference for everybody or whether it's one that's called
privately by Microsoft and some company, they would, Microsoft
would come out, that I know of, at least twice a year that we
would have them on our premises.
Q. Did Microsoft's decision to withdraw the NameSpace
extensions affect the functionality that Novell and ultimately
Corel was able to provide in these products?
A. I've said this before. From an architectural
perspective and from what I worked on, we released a product
for Windows 98, which was the next version of Windows. The
version that we released for Windows 98 was the version of the
part that we envisioned that we would release on Windows 95.
Q. To your knowledge, Mr. Harral, did Microsoft ever
publish full documentation for the NameSpace extensions?
A. I know of documentation that was published for the
NameSpace extensions.
Q. And can you tell us approximately when that
occurred?
A. My recollection is sometime mid '96.
Q. Could you turn to Exhibit 355, Plaintiff's
Exhibit 355.
Have you seen this document before?
A. I have.
355
Q. Can you, please, tell the jury what this document
is?
A. This is a document that I know of where the
NameSpace extensions are being published.
Q. Did you review this document when Microsoft
published it apparently in July of 1996, according to the
document?
A. I did review this document.
Q. To your knowledge, did this documentation change
the functionality of the NameSpace extensions in any way?
A. Being that I only had access to the computer
version of the application program and the interfaces from
what is represented here and those documentations, we could
not find any differences in them.
Q. Did this documentation coming out in July of 1996,
almost a year after Windows 95 was released, did this
documentation affect your development efforts to produce a
suite for Windows 95?
A. Yes.
Q. How so?
A. Because we had planned to use the APIs we knew
about in -- I guess that's the best indication that things had
not changed, because we knew about the APIs back in M6, and we
had tried to meticulously recreate them, we were able to
quickly switch over and use the documentation to tap into what
356
was inside of the shell instead of using our own
implementation.
Q. And this would have affected later versions of
WordPerfect that were being produced by Corel?
A. Every version after that would have been using --
would have been written on top of the shell and anything we
did in shared code, and all the other products, as well. All
of them going forward would have done that.
Q. And all these products going forward would have
used these NameSpace extensions after Microsoft de-documented
them in '94 and then republished them in '96?
A. Yes.
MR. JOHNSON: Do you want me to continue, Your
Honor?
THE COURT: How much longer do you have before you
finish the direct? It would be great if we finish the direct.
MR. JOHNSON: It could take a while.
THE COURT: We won't finish the direct.
Have a very nice weekend. This is the time when
it's very hard not to talk about the case when you've devoted
a lot of time to it. You're going to be out with family and
friends over the weekend, over the extended weekend. They're
going to say, hey, I understand. You're perfectly okay to say
I told you don't talk about the case to anybody, okay?
Have a great day. See you at 8 o'clock on Monday
357
morning, and I'll stay with counsel.
(Whereupon, the jury left the court proceedings.)
THE COURT: Mr. Johnson, if you want to be heard.
I'm not sure how pertinent that matter is in the --
MR. JOHNSON: Your Honor, we withdraw our
objection. If I want to make that extra -- frankly, we're
trying to keep the amount of stuff --
THE COURT: I appreciate that.
MR. JOHNSON: -- to give to the jury. These videos
are long.
THE COURT: I understand. And it was perfectly --
MR. JOHNSON: And sometimes rather boring.
THE COURT: It was a perfectly appropriate
objection under the circumstances. I actually came in
deciding the other way, and I thought I better read the rule,
and that's when I changed my mind.
MR. JOHNSON: And where we really get, we think
it's a little more important to focus on is when it's the
deposition of somebody that they're going to bring in live,
anyway.
THE COURT: Absolutely.
MR. JOHNSON: And in that case, I think there's
just no reason to have additional --
THE COURT: I understand. And I'm sure they'll be
reasonable about that.
358
MR. JOHNSON: Let's hope so, Your Honor. Thank
you.
THE COURT: Anything else we should prepare for for
Monday?
MR. JOHNSON: Have a wonderful weekend, Your Honor.
THE COURT: You all come back here with me.
MR. TULCHIN: Thank you, Your Honor. Have a nice
weekend.
THE COURT: Can you walk back with me?
MR. JOHNSON: Sure.
(Whereupon, the court proceedings were concluded.)
* * * * * I
359
STATE OF UTAH
ss.
COUNTY OF SALT LAKE
I, KELLY BROWN HICKEN, do hereby certify that I am
a certified court reporter for the State of Utah;
That as such reporter, I attended the hearing of
the foregoing matter on October 20, 2011, and thereat reported
in Stenotype all of the testimony and proceedings had, and
caused said notes to be transcribed into typewriting; and the
foregoing pages number from 317 through 359 constitute a full,
true and correct report of the same.
That I am not of kin to any of the parties and have
no interest in the outcome of the matter;
And hereby set my hand and seal, this ____ day of
_________ 2007.
______________________________________
KELLY BROWN HICKEN, CSR, RPR, RMR
360
|