decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Day 3 of the Oracle v. Google Trial ~pj - Updated 6Xs (Larry Page, Reinhold, Screven.)
Thursday, April 19 2012 @ 06:02 PM EDT

Yesterday was day 3 of the Oracle v. Google trial, and we have our first report now from mirror_slap. More to come, so drop back by. [Update: Done.]

I think you'll find it interesting to contrast his report with media coverage yesterday. The headline to me, now that I've read the report, is that Google's Larry Page bested David Boies. That's not so easy to do. But I see it in the report. Also on the stand today were Dr. Mark Reinhold and Edward Screven.

And let me explain some things about answering questions in a trial as a witness.

Jump To Comments

[Update 1, Update 2, Update 3,
Update 4, Update 5, Update 6]

The rule is the lawyer is supposed to ask a question that can be truthfully answered by the witness with either yes, no, or I don't recall or I don't know. Sometimes witnesses give long explanatory speeches instead, and when that happens the judge will remind them of how to answer. Sometimes a witness will say they can't say yes or no and be accurate, and sometimes they'll be allowed to elaborate, but normally that kind of explanatory material comes out when your own lawyer follows up later with questions for you.

You see that in every trial that I've ever watched, that witnesses have to be reminded. Because in real life, none of us talk that way.

But when that happens, it's usually the lawyer's fault that the witness is flummoxed and can't answer with any of the three simple responses and still be accurate. It's the lawyer's job to ask questions in a way that can normally be answered that way. If they don't, it can be because they are trying to trap the witness into apparently agreeing with something they don't agree with. That's what I see in this report.

Another interesting detail: when Oracle's lawyer, David Boies, handed him one exhibit, seeking to get Larry Page to authenticate it, which is a requirement before an exhibit can be introduced as evidence, Page instead pointed out that the page numbering was off, with two different sets of numbers. Hmm.

Anyway, because of that detail that he noticed, the judge didn't allow the exhibit to be used. I mean what if it was a doctored exhibit? Page couldn't know and what he could know is the numbers were off and unexplained. So in those circumstances, it's not being evasive to refuse to authenticate the document, because it might not be authentic. It could just be a mistake, too, But until someone can explain the numbering, it's not usable.

Geeks are good at noticing details and being precise.

Oracle can try to get it in later maybe when the email author takes the stand, but he couldn't this day ask Page about it. They'll have to authenticate the document, then call Page back to the stand, and that's if they have enough time left.

Sometimes precision can look like evasivenes, and maybe it happened as the media reported it, but they are not lawyers, and so it's just as likely they saw what they saw with layman's eyes. What *I* see, from this report, is a man realizing someone was trying to catch him in his speech, and so he was cautious and extremely alert. As a result, a number of exhibits Oracle wanted to use it couldn't because of Page's responses. Assuming he was precise and truthful, that's what I would call a major win for Google. I understand now why the media reported Page left with a smile on his face, unlike Larry Ellison the day before.

Here's mirror_slap's first section, taking us through Larry Page's testimony, with more to follow:

Oracle v. Google, day 3 (Wednesday, April 18)

[Apologies for the delay in getting the proceedings transcribed; personal emergency prevented me from getting this done yesterday, and I will not be at Oracle v. Google today (Thursday April 19), but will be there Friday. ]

Arrived 7:35AM.

Discussion going on about exhibit numbering:

Oracle: Exhibits 1, 2, 7 and 401 shown during the deposition of Larry Page.

Judge Alsup: Any objections?

Google: No objections.

Judge Alsup: In the future, please get these straightened out before showing them to the jury.

[Back and forth over exhibit 3, something that Oracle said that they sent an email about to Google 2 days ago. Google is saying that Oracle was too late in trying to introduce it and missed the 48-hour lead time limit. Judge Alsup decides that Oracle was indeed too late and that the exhibit would have to be introduced via a witness. This is another example of Judge Alsup sticking to his own order w.r.t. introduction of exhibits, and he gave both parties fair warning about it. Boies Schiller is not going to be able to use the same approach as they used with SCO v. Novell.]

Judge Alsup to Google: I hope that you aren't trying to get Oracle to burn through their [allotted, limited trial] minutes.

Google: No, Your Honor.

Other Administrative Issues Before Jury Brought In:
Oracle: Regarding the 4 questions from yesterday, our answers are:
1) about 4,500 methods copied
2) Sun developed the methods themselves, and they were later developed by 3rd parties via JCP
3) definition of Method Declaration
Judge Alsup: Can I say it in my own words and have you correct it? [ uses example of subroutine, generalizing to “any computer program””, “so the computer knows what routine to call”. ]

Google: A method declaration is a statement that defines an API element name, return type, parameter type and order.

Judge Alsup: I don’t think it’s all that different (from my explanation), maybe yours [Google’s] is a bit better.

4) definition of derivative work
Judge Alsup: Is the issue for the jury or for the judge?
Oracle: It could be either.
Judge Alsup: Mr. Van Nest?
Google: [ going back to 3) ] This may seem a bit circular, but a Method Declaration has to be a method. Regarding 4), if the structure of the API’s are copyrightable, there would still need to be (per Apple v. Microsoft?) an investigation of the contents.
Judge Alsup to Google: Do you agree with the 4,500 [ methods ] number?
Google: It’s in the ballpark.

Judge Alsup: I don’t know if at the end of testimony whether the Court will say that the SSO (Sequence, Structure, Organization) is protectable. It might go to the jury [ to make that decision ] Or, this decision could go up to the Court of Appeals. I don’t know.

Judge Alsup to Oracle: Practical item for the jury: please come up with a one page document for the jury for the exhibits where you didn’t follow my order.

Judge Alsup: Also, please produce a one-page “Who’s Who”, with 10 to 12 names for each side, [ so the jury can tell who the witnesses are, who they work for. ]

Judge Alsup: Anything else?

Google: Exhibits issue has largely been worked out [ between parties ]. Oracle has withdrawn their addition from Monday. We can work this out [ between the parties ].

Judge Alsup: You can use additional exhibits to impeach witnesses, but they must be used narrowly.

Oracle: One item -- the Lindholm email -- it directly contradicts Larry Page. It says that “We have been asked by Larry and Sergei”?

Judge Alsup to Google: What’s wrong with that?

Google: Larry Page didn’t author that email, and so it’s “far outside the breadth of impeachment”. It was disclosed late, after Larry Page was on the stand.

Judge Alsup: It’s not privileged; it will come into evidence in due course. I will let Mr. Boies ask the question.

Judge Alsup to Oracle: You can ask Larry Page if Larry Page asked Lindholm to do this.

Oracle: These were in the 10 documents presented to the Court, and we didn’t know if they would carry witness to witness.

Google: We do not want the email published to the jury.

Judge Alsup: It will come into evidence with Lindholm’s testimony.

Judge Alsup: Accounting of minutes used so far: Oracle: 131; Google: 62.

Judge Alsup: Bring back the jury, but not the witness.

[ Jury is seated. ]

Judge to Jury:

Judge Alsup: Is the coffee and the Federal doughnuts working out okay for you? [ Tells the jury that the lawyers are not being rude when not talking to the jurors in the elevators or at the coffee stand, that the lawyers are respecting the role of the jury and cannot engage in any conversation with them. ]

Judge Alsup: Also, if a lawyer reads directly from an exhibit, you can accept that reading as evidence [ clarifying what Judge Alsup said previously that whatever a lawyer says in court cannot be taken as evidence. ]

Judge Alsup: And a heads-up for what you [ the jury ] might be listening for in the course of this trial ( hearing about high finance and from brilliant people): What is a copyright? It is a provision under Federal law that precludes someone from making a copy (of someone else’s work). Some things cannot be copyrighted, such as facts, concepts. (Example of E=mc2). To prove infringement (on a copyright), the plaintiff needs to show 1) copying of the original work, and 2) defendant had access to the original work.

Judge Alsup: What is not in contention: Oracle doesn’t accuse the following:

1) Android’s use of the GPL
2) any particular name in an API element, including methods, packages, parameters
3) Android source code implementing the 37 API’s, except for a few instances
4) the idea of an API
5) Dalvik VM
6) Android API packages, except for the 37.
Judge Alsup: What is being challenged ( and the lawyers will correct me if I am wrong ):
1) 37 API’s
2) 2 files in the 37 API’s that contain 9 lines of range-check code that is symbol-by-symbol copying
3) 2 files where comments are identical [ explains comment usage in general in source code; no distinction yet as to whether these a plain comments or documentation comments. ]
4) declarations in the 37 API’s, which are symbol-for-symbol identical
5) SSO - the 37 API’s do not have the same source code [ mostly ], but they have an identical SSO.
6) Documentation “detailed booklet, written in plain English”.
7) Beyond the 37 API’s, there are 8 additional files that Oracle claims are word-for-word copies.
Judge Alsup: Nothing I have just said is evidence. I am trying to give you [ the jury ] the benefit of my interpretation and understanding of the issues. If you are confused, please give the Court a note [ describes the process of how to do that ] and we will get it to the lawyers [ so that they can clarify/explain ].

Judge Alsup: Anything from the lawyers [ regarding the above, or anything else, I suppose? ] [ nothing from the lawyers ]

Judge Alsup: bring the witness back in.

Judge Alsup to Oracle: While we are waiting for the witness, about how much time do you expect to use with this witness?

Oracle: 30-40 minutes on direct, your Honor. No stipulations to be read to the jury.

Larry Page Takes the Stand, 2nd Time:

[ Larry Page enters the courtroom and is seated in the witness box. He looks relaxed and throughout his upcoming testimony does what he did yesterday: generally he stays focused on the jury, with his head turned towards them. He rarely looks at Mr. Boies at all. ]

Judge Alsup: Hello Mr. Page and welcome back. [ reminds him that he is still under oath. ]

[This is where things get fast and furious again with the pace of questions and the length of responses. Mr. Boies appears to be trying to ask yes/no questions of Larry Page that would pin him down to Oracle’s view of reality. Larry Page generally answers with explanations of context first and typically does not answer either yes or no, apparently demonstrating that the questions being asked cannot be accurately responded to with a yes or now (or “I don’t know”. ]

Oracle: (on copying): Would it have been a violation of Google policy for a Google engineer to copy somebody else’s copyrighted property?

[Back and forth over this question. Larry Page never answers with a “yes” or “no”. He brings in the context of Google offering up snippets of copyrighted books and articles as a way for people to get an idea of the full content of same, indicating that the breadth of Google’s business makes this question hard to answer with a yes/no. Boies tries to pin him down to source code copying, and Larry essentially says that he doesn’t know what Google’s policy with regard to this actually is. Eventually, Boies just moves on. ]

Oracle: Did you ever ask anyone to investigate the allegations by Oracle of Google copying [Oracle’s IP]?

Larry Page: I don’t recall asking anyone to do that.

Oracle: Has anyone at Google ever been disciplined for copying copyrighted material?

Larry Page: I am not aware of anyone [ being disciplined ].

Oracle: Referring to Exhibit 2, from July 2005. Hands witness TX 7, email from Andy Rubin to Larry Page, October 11, 2005.

Oracle, quoting exhibit: Rubin: “ my proposal is that we take a license from Sun that specifically grants us the ability to open source Android.”

[Missed some.]

Larry Page: The TCK is a way for Sun to make money, among other things.

Oracle: You knew that in 2005 that [ Sun was intent on avoiding fragmentation of Java ]?

Larry Page: It’s hard for me to speculate on what Sun’s intentions were regarding fragmentation. (Sun produced many versions of Java).

Oracle: Do you, from your own personal knowledge and experience in the industry in 2005, know whether Sun wanted to avoid fragmentation? It’s a yes/no question.

Larry Page: Yes, subject to [Sun wanting to retain ] control and other previous statements.

Oracle: You were what Google calls the “Executive Champion” for Android?

Larry Page: Yes. (Any major project at Google requires there to be a sponsor from the executives. )

Oracle: TX 431 and 432 given to Page.

Judge Alsup: Any objections?

Google: Objection, #403 [ I am not sure what a #403 objection indicates.] [PJ: Here's what it is. It's referring to the Federal Rules of Evidence 403.]

Judge Alsup: 403 objection denied on 431.

Google: 431 is a phase 3 issue [damages] , not a phase 1 issue [copyright].

Judge Alsup to Oracle: Is the point of this document to put big [$] numbers out there [for the jury to see]?

Oracle: No.

Judge Alsup: #403 objection overruled of TX431.

Judge Alsup to Oracle: You still have to lay foundation [ for using TX431. ]

Google: This document [ TX431 ] should not be published to the jury.

Oracle: This document was given to the EMG [ Executive Management Group at Google ].

[ IIRC, Judge Alsup said that this is a public trial and that it would be allowed, again, IIRC. ]

Larry Page: Sorry, let me read this [TX431] for a minute.

Judge Alsup to Larry Page, after perhaps a minute passes: Do you know what the document is or not?

Larry Page: It seems to be a strange [ strangely ordered? ] sequence of emails. It may be something that I presented [ to the EMG].

Judge Alsup: Do you recognize it?

Larry Page: No.

Judge Alsup: [TX 431 is thrown out, no foundation. Will be able to bring back this witness once it is in evidence through foundation. ]

Oracle: [ missed some stuff] pages that were presented to the Board of Directors [ for Google ]

Judge Alsup to Larry Page: Does it look like something produced by Google?

Larry Page: It looks like it came from Google. Let me read it to see if it’s the right version [ that was actually presented to the BoD ]. It’s not clear to me that this was used [in the presentation].

Judge Alsup: Not sufficient foundation. Disallowed.

Oracle: You believe that Android was a critical asset for Google?

Larry Page: It was important. I wouldn’t say “critical”.

Oracle: You are on the Google Board of Directors?

Larry Page: Yes.

Oracle: Wasn’t the board told that this was a critical asset?

Larry Page: They may have been, but I do not agree with that characterization.

Oracle: Remember yesterday when I asked you about Tim Lindholm?

Larry Page: Yes.

Oracle: In this email [ Exhibit 7?] there is a reference to “Tim”. Is that Tim Lindholm?

Larry Page: It might be. I am not sure.

Oracle: TX 6, September 6, 2005 email from Andy Rubin to the EMG, cc: Tim Lindholm, page 4-2005 of exhibit…

[Some confusion about page numbering here. Larry Page points out that there are two sets of page numbers in the exhibit ]

Judge Alsup: TX10 is not in evidence; the witness who authored this is not yet here.

It will be allowed to be shown to the jury [ yet].

Larry Page: Don’t recall if I have seen this.

Oracle: Quoting Google: “we’ve been asked by Larry and Sergei to investigate technical aspects of replacing Java. Does that refresh your memory?

Larry Page: No.

Oracle: Were you told in August 2010 that Lindholm had concluded that Google needed to negotiate a license for Sun’s technology?

Judge Alsup to Larry Page: Most of the questions are a yes or no... please answer in the spirit of that.

Oracle: Did Google ever get a license from Sun or Oracle for Java?

Larry Page: I don’t think so.

Oracle: You are aware that Google uses Jave API’s in Android?

Larry Page: I have no idea what Sun copyrights or not.

Oracle: Does Google copyright its API’s or not?

Larry Page: I am not sure. I think that everything is copyrighted by default, but I am not a lawyer.

Oracle: Are you aware that many companies that use Java take a license for Java?

Larry Page: Yes.

Oracle: Are you aware of any companies that use the Java API’s that has not taken a license?

[ no response recorded... sorry ]

Oracle: No more questions your Honor [ said with a tone of exasperation.]

Cross-examination of Larry Page:
Google: You were asked your opinion on several emails. Why was Google investing in Android technologies?

Larry Page: We were frustrated with having a closet full of 100s of phones [ using different OS’s ] that wouldn’t work. We wanted our stuff to work on them.

Google: Were you excited about buying Android and bringing Andy Rubin on board?

Larry Page: We were very excited to solve the phone problem.

Google: (Please describe the) Negotiation with Sun.

Larry Page: We got frustrated [ with the pace and direction ] of the negotiations, and we went on our own path, got a free version of Java, re-implemented it in a clean room. It took a lot of time and money (on the order of 2 years and millions of dollars).

Google: How helpful would it have been to be able to seal the deal with Sun for Java?

Larry Page: It would have been very helpful. It would have saved us a lot of time and effort.

Google: From your perspective, why did you decide to move on your own path?

Larry Page: The TCK testing and the cost were frustrating.

Google: Once negotiations failed?

Oracle: Objection, no established basis.

Judge Alsup: Did you make a decision to move forward with Android without a license from Sun?

Larry Page: [ Response that did not seem to satisfy Judge Alsup. ]

Judge Alsup: Insufficient foundation.

Google: You were asked about API’s and copyrights. What do you recall from 2005 about the API copyrights?

Larry Page: We didn’t even think about it. I don’t recall discussing them.

Google: ( You attend tons of meetings)?

Larry Page: Too many. [Chuckles from everyone]

Google: Google has about 30,000 employees?

Larry Page: [ Something to the effect that it's about that, currently.]

[This is going to whether or not it is reasonable for LP to remember Tim Lindholm, IMO ]

Re-Direct of Larry Page:
Oracle: You just said that you didn’t recall in 2005-06 knowing about APIs. [ Back and forth over this. Larry Page indicates that he knew a ton about APIs in that timeframe. Oracle tries to get more specific about the Java APIs and their copyrighted status. Larry Page professes not to know anything about that, which is consistent with his previous testimony.]

Oracle: Was the benefit that Google was seeking in Android to be the control of the user experience when presenting its apps?

Larry Page: I don’t disagree with that as a potential benefit.

Oracle: Next page from the bottom [ TX not clear to me; probably TX 6: this is I think the exhibit of the internal Android presentation in 2005 ]... the mention of APIs.

Larry Page: That doesn’t refer to Java APIs [ seemed to me to clearly refer to Android APIs for its apps]

Oracle: [Asking about discussions of API’s at Google].

Larry Page: We talk about APIs every day.

Oracle: [ Tries to conflate the use of the term APIs in Exhibit 6 to be Sun’s Java APIs .]

Larry Page: I couldn’t tell which APIs are being discussed [in the TX].

Oracle: [ the TX ] has to do with Android?

Larry Page: Yes.

Oracle: It has to do with Java?

Larry Page: Yes.

Oracle: It has to do with delivery [ of ? ]?

Larry Page: It has to do with application delivery.

Oracle: When it talks about negotiation, it’s about negotiation with Sun?

Larry Page: Yes.

[ I think that this is where Oracle has effectively gotten Larry Page to answer a question in the affirmative that is in fact not the case. I think that this section of the TX has to do with negotiating timelines of delivery of apps with developers, either internal to Google or external is not clear ].

Oracle: These are notes of a conversation that you had...

[ Oracle tries very hard to pin down Larry Page on this email. Oracle was largely thwarted, but it’s possible that Page may have appeared to be evasive to the jury. The cross by Van Nest was masterful, showing that Larry Page’s interest and enthusiasm was in moving forward with Android, and overcoming obstacles by going with a free version.

[more to follow]

Update 1: Update:

Here's part two, Edward Screven, a witness called by Oracle, with one more part to go:

Edward Screven, Oracle Chief Corporate Software Architect
[Mr. Norton, or so the name sounded like, for Oracle is doing the examination.]

Oracle: Where do you work?

Edward Screven: At Oracle since 1986. Did undergraduate studies in CS at CMU, but left before getting a degree. 13 years as a programmer. Started in high school and worked professionally while in college. Started working with the Oracle Advanced Technologies Group, and when the head of the ATG became ill, I took over the role and started reporting directly to Larry Ellison. I am now the Oracle Chief Corporate Software Architect.

Oracle: Tell me about Java at Oracle.

Edward Screven: Java is one of *the* most important technologies that we use in our business. It runs in MySQL, Linux, Virtualization, Middleware.

Oracle: Describe middleware.

Edward Screven: Oracle's middleware is based almost entirely on Java.

Oracle: Uses the Java APIs?

Edward Screven: Extensively.

Oracle: Were you involved in the decision to base Oracle's middleware on Java?

Edward Screven: Yes. We used to use C/C++, (which was cumbersome). Java has an interesting facet: WORA ("Write once, use anywhere").

Oracle: Was one of the reasons for the choice to use Java for the middleware the features of the Java language?

Edward Screven: Yes. Java is well-specified. Compared with C, which has differing integer widths on different platforms.

Oracle: How is the [Java] language specified?

Edward Screven: The documentation is very precise. It doesn't leave a lot of room [in the implementation] for wiggle room.

Oracle: Is the use of Java alone enough for WORA?

Edward Screven: No, you need the JVM's to run the same on every platform.

Oracle: Define an API.

Edward Screven: Part of a program. Programs have 2 parts:

1) definition of structure
2) code that carries out that functionality [example of "add entry"/"remove entry"]
Oracle: Is there any relationship between the class libraries and the APIs themselves?

Edward Screven: There is no distinction in Java between the APIs and the class libraries. They are co-mingled [here I believe that ES is referring to the Java source code itself].

Oracle: There is a specification?

Edward Screven: There is a human-readable form of the specification in the documentation. The APIs are a part [of the documentation].

Google: Objection… leading the witness.

Judge Alsup: Yes, this is leading.

Judge Alsup to Oracle: Stop leading the witness.

Oracle: [brings out a file cabinet]. This filing cabinet, is there any relation of it to an API?

Edward Screven: No way is that an API. It's a filing cabinet. You can put papers or file folders in it. "You could even put old shoes in it".

Oracle: Do you design APIs?

Edward Screven: Yes.

Oracle: Is API design creative?

Edward Screven: Very.

Oracle: How so?

Edward Screven: You have to make a conscious decision about structure and layout. There are implications [that follow from these decisions] on the implementation.

Oracle: [ ? ]

Edward Screven: [Explains why API design is difficult, important, and interesting -- impacts the productivity of thousand to millions of engineers.]

Oracle: Are you familiar with the 37 APIs that Oracle says are infringed?

Edward Screven: Yes.

Google: Objection, leading.

JA; Sustained. Stop leading your witness, Mr. Norton.

Oracle: [Asks a non-leading question.]

Edward Screven: You do not have to use the APIs that come with Java. For example, the logging, math and encryption APIs are sometimes replaced with other implementations. But it's common for programmers to use the standard APIs.

Oracle: Has Oracle ever redesigned the APIs?

Edward Screven: No. There is no reason for Oracle to redesign the APIs, and it would be a lot of work (and a lot of expense).

Oracle: Is there any technical reason why Oracle couldn't redesign the APIs?

Edward Screven: No.

Oracle: Were you directly involved in Oracle's decision to buy Sun?

Edward Screven: Yes. I was part of a small number of executives [involved in the purchasing decision], concentrating on software technology. I was very interested in Java. Java is a valuable asset. It is still a valuable asset. If Java was the only thing that we got in the acquisition, it was worth the entire purchase price. [Here Screven gets the $7.4B figure out before Google can object.]

Google: Objection.

Judge Alsup: I am instructing the jury to ignore the number [mentioned by the witness]. it is not a part of this case.

Judge Alsup: [Admonishes Mr. Norton.]

Edward Screven: [Turns towards Judge Alsup and shrugs so high that the palms of his upturned hands are partially visible above the front of the witness box.] [To me this gesture looks artificial.]

Oracle: [Asks Screven to describe the Apache and the GPL licenses.]

Edward Screven: [Describes them as being types of Open Source licenses.]

Oracle: After Sun released Java under the Open Source license, did Apache continue to release Harmony?

Edward Screven: Yes. Apache tried to get licenses [from Sun]. They sought a JSL (Java Specification License). Sun was willing to grant Apache a JSL and a TCK so long as Apache Harmony was only available on desktop computers and servers, but not mobile devices (a "field-of use restriction").

Oracle: Regarding TX 2347 a letter that Oracle and others sent to Sun June 22, 2007, to encourage Sun to give Apache Harmony a license.

Did you sign on [on behalf of Oracle] to this letter?

Edward Screven: Yes.

Oracle: Do you see Google as a signatory?

Edward Screven: Yes.

Oracle: Were all these signatory companies involved in Java?

Edward Screven: Yes. All of them were a part of the JCP (Java Community Process).

Oracle: Why did you sign the letter?

Edward Screven: Sun wasn't doing well. Oracle feared that their company's Java assets were at risk and wanted there to be an alternative source for Java if Sun went under.

Oracle: When you signed this letter, were you concerned about the Open Source Software license?

Edward Screven: We had no idea that any of the signatories would want to harm Java or fragment it.

Oracle: [Asks about Apache Harmony seeking a TCK.]

Edward Screven: The fact that Apache wanted a TCK showed their intent to make Apache Harmony compatible.

Oracle: Did you know [at the time] that Google was pursuing using Java in a way that would fragment it?

Edward Screven: We had no idea. Had we known about it we would never have signed onto the letter.

(Talked about Sun's rightful reluctance to offer the TCK to Apache Harmony. Said that Apache Harmony is now essentially defunct, placed "in the attic" in their source code repository, and is not being further developed.)

Oracle: (How about GNU classpath?)

Edward Screven: GNU classpath was always incomplete. It didn't fully implement the API or run the TCK. There is no commercial use of the GNU class path, especially after Sun released Java under the GPL.

Oracle: Did Oracle have any interest in developing mobile apps?

Edward Screven: Yes, [mostly for tablets and not phones].

Oracle: Once Oracle made the decision to buy Sun, did Oracle consider entering into the smartphone market?

Edward Screven: Yes. I was involved in that discussion.

Oracle: Was any conclusion reached?

Edward Screven: Yes. From a technical basis, it would be possible, but it would not be profitable.

Oracle: How did you reach this conclusion?

Edward Screven: Google's release of its Android Javaphone had removed [the market] advantage.

Cross-examination of Mr. Screven by Google
Google: Various editions of Java exist, such as the JSE (from the original Java platform)?

Edward Screven: I wouldn't characterize the JSE as being only for laptops and desktops. Smartphones have become capable enough to run the JSE. The JEE has additional functionality (tailored to server applications).

Google: The JEE has additional APIs and class libraries?

Edward Screven: Correct.

Google: So programs written in JEE wouldn't run on a JSE device?

Edward Screven: Correct. You'd need to load the additional JEE class libraries.

Google: JME (Java Micro Edition) is for small devices?

Edward Screven: Yes.

Google: JME is stripped down.

Edward Screven: Yes. It's for devices with smaller memory/CPU.

Google: So apps written in JSE won't run on JME?

Edward Screven: (Maybe.)

Google: This means that a JME app may not run on a JavaCard device?

Edward Screven: Yes.

Google: There are different APIs between JavaCard and JSE?

Edward Screven: [Some disagreement over the differences between versions.]

Google: There are differences between JSE, JEE, JME, and Java Card?

Edward Screven: Yes.

Google: How can it be that (Oracle can say that Java is WORA)?

Edward Screven: Oracle defines WORA as across platforms [different operating systems], not Java versions.

[Really fast here… I couldn't track it all.]

Google: Differences between English language document and source code?

Google: Java API name and Java Language Elements relationship?

Google: [Drilling down on the English Java Language specification.]

[Personal observation about Edward Screven: he seemed incredibly smart and visibly twitchy.]

[Often during this witness's testimony, the poor court reporter's fingers started smoking, and there would come a request for people to slow down.]

Google: Some of the [methods in the] 37 APIs are required by the Java specification?

Edward Screven: Maybe a dozen of the 4,500 in the 37 API's.

[On to Oracle's due-diligence process in their purchase of Sun.]

Google: How long did the due-diligence process take? 2-3 days?

Edward Screven: Yes.

Google: Your role was to evaluate all Sun's software technologies?

Edward Screven: (We pared this down to evaluate the items of most interest.)

Google: Did you calculate the [monetary] value of any of the copyrighted technology?

Edward Screven: [Unresponsive answer according to Google.]

Judge Alsup: The witness is not answering the question.

Judge Alsup to Edward Screven: [Slowly repeats the question.]

Edward Screven: I personally assigned a value greater or equal to the number that cannot be mentioned [the purchase price].

Google: There was a lot of other Java components than the 37 APIs?

Edward Screven: Yes.

Google: (What other software assets were acquired?)

Edward Screven: Server software, thousands of patents, trademarks.

Google: Were all items of value relative to the value of Java?

Edward Screven: [Danced around the point of the question].

Google: During the due-diligence process, you never put in writing the value of any of these assets?

Edward Screven: Yes, we did not [write down anything]. (I talked with Larry Ellison on the phone to report my evaluation.)

Google: (Was your evaluation that Oracle should buy Sun?

Edward Screven: (It was.)

Google: Your opinion is that Sun had good engineering practices but they weren't very good at running a profitable business?

Edward Screven: Yes.

Google: Momentum for Java development had stalled in Sun?

Edward Screven: (Externally, the release frequency had slowed.)

[The following is a bit of witness impeachment.]

Google: Regarding TX2237 Report that Oracle prepared on acquisition of Sun to the EC (European Commission). In submitting information to the EC, everything that Oracle represented to it would be true, yes?

Edward Screven: [Affirmative but possibly slightly equivocal answer.]

Google: Quoting Google: "Java's success - for Oracle and the industry - depends on Java remaining open and unified."

Edward Screven: [Seems to go back to a previous question… my notes always proceed chronologically, so this following confuses me.] Sun's releaser process had slowed, frustrating programmers and companies that relied on it [for bug fixes and new features].

Google: "Was it your impression that Sun is less focused on making money than Oracle"?

Edward Screven: "No, Sun was just less focused in general."

Google: [Playback from Screven's deposition, p70, line 16-21.] Google: [In the video deposition, it shows Screven unequivocally answering this question with a flat "Yes".]

Oracle: Objection.

Judge Alsup: (Overruled. Goes to impeachment.)

Google: [Does another direct impeachment comparing today's testimony to the same question asked during the video deposition.]

Google: You have testified that Oracle didn't have the expertise [to be able to develop a smartphone].

You testified that Oracle bought Sun because of Oracle's dependence on Java.

Google: [Reading from June 22, 2007 letter from Screven to Jonathan Schwartz, asking Sun to grant an unrestricted license to Apache Harmony.]

Google: Anyone could have downloaded and use the Apache Harmony implementation?

Edward Screven: Yes, but doing that [would place Sun at risk, as shown by Google's actions].

Google: Sun never sued Apache?

Edward Screven: No.

Google: Sun never asserted that Apache was violating Sun's copyright from the time period 2005 onward?

Edward Screven: Not aware [whether they did or didn't.]

Redirect of Edward Screven:

Oracle: Asked about the different editions of Java-- Are there edition forks or fragmentation?

Edward Screven: No. It's all about the capabilities of the device on which the software runs.

Oracle: Are there any names of the API classes that are not part of the Java Language Specification?

Edward Screven: Double float long int boolean string thread object class… none of these are in the JLS. This list might not be comprehensive; that was off the top of my head.

Oracle: Questions the value of Java and WORA.

Edward Screven: 1) Without WORA, software would be much more expensive to write. 2) Makes software less appealing to customers (more expensive and more prone to cross-platform variations.

Oracle: You said that you never produced a written report [of the due-diligence evaluation].

Edward Screven: I told Mr. Ellison that, "We should buy Sun for no other reason than the acquisition of Java."

Oracle: Back to the docs, TX2237, p17, on Java's success being dependent on Java remaining open and consistent.

Edward Screven: It's important that Oracle protects its IP, otherwise people would take our software and not pay for it.

Then there is an exchange about a document (sorry, missed any ref to a TX) prepared July 30, 2009, before the lawsuit, which says that Android is fragmenting Java by putting out an incompatible clone of JME.

Witness is dismissed.

Judge Alsup to Oracle: 1) I want to know the 12 classes not in the JLS and their methods 2) [ missed the next part about the 37 API's, because the above kind of blew my mind… wha? why?]

Oracle: [Regarding item 2.] This is going to sound a little circular… the next witness will explain this.

Judge Alsup: Okay, I'll wait.

11:20 Break.

11:30 - Exhibits that were stipulated and received into evidence: 450, 451, 453, 454, 455, 460, [ missed some ], 475, 476, 510, 511, 513, 518, 520, 521, 523, 524, 526, 595, 596, 597, 598, 599, 601, 603, 603, 659.

Update 2:

And now the final part of mirror_slap's report for the day, the testimony of Dr. Mark B. Reinhold:

Testimony of Witness Dr. Mark B. Reinhold
Chief Architect, Java Platform Group, Oracle
Worked for Sun since 1996. Holds a PhD in CS from MIT.

Oracle: Have you designed APIs?

Mark Reinhold: Yes.

Oracle: What do you do [at Oracle]?

Mark Reinhold: At a high level, I direct projects, ensures the cohesiveness of Java.

Oracle: This includes Java APIs and class libraries?

Mark Reinhold: Primarily for JSE, yes.

Oracle: For how many years?

Mark Reinhold: 16 years.

Oracle: Including API design?

Mark Reinhold: Yes.

Oracle: Why did you join Sun?

Mark Reinhold: Primarily because of interest in Java.

Oracle: What do you mean by Java?

Mark Reinhold: The Java environment.

Oracle: So you've written class libraries?

Mark Reinhold: Yes.

Oracle: You've designed APIs?

Mark Reinhold: Yes.

[This is really, really fast. Many times the court reporters ask for these guys to slow down.]

Oracle: What do you mean about clear documentations?

Mark Reinhold: [Talks about two kinds of comments, regular comments and "doc comments", and how the doc comments in the source make it a tightly-coupled, highly accurate, self-documenting language.]

Oracle: [How many classes are in Java?]

Mark Reinhold: 3500 classes in Java 5 (the version addressed in this lawsuit).

Oracle: What is an API?

Mark Reinhold: An API is a blueprint for the class libraries, and a specification of the structure.

Oracle: The actual structure of the APIs.

Mark Reinhold: [Yes.]

[Mark Reinhold now launches into a tutorial on the Java Language, its APIs and structure, over the objection of Google, which was overruled.]

Oracle: Please explain your involvement with the java.nio.channels package.

Mark Reinhold: I was the specification lead, in charge of all aspects of API design.

Oracle: How many packages are there in the JSE?

Mark Reinhold: Cites specific numbers for JSE5 and JSE7.

Oracle: [Puts a poster up with the structure of the Java APIs on it for the jury.]

Oracle: What is this poster?

Mark Reinhold: It's a visual depiction of the Java APIs - perhaps half of them.

Oracle: Was it produceed for this litigation?

Mark Reinhold: No- it was produced at roll-out of Java 5 [for the public]. It is used by engineers/programmers.

Oracle: Are the 37 APIs under contention shown on this chart?

Mark Reinhold: 34 of 37 API's are. 3 are not.

Oracle: What does this poster tell us about the relationship of classes?

Mark Reinhold: [ missed ]

Oracle: Docs poster shows methods oct fields?

Mark Reinhold: (No, would make the poster enormous.) Oracle: What about the Structure of the Java API's and Java class libraries?

Mark Reinhold: They are exactly the same. "The software contains its own blueprint."

[More tutorial.]

Oracle: Which Oracle Java API specs are at issue?

Mark Reinhold: javax.net.ssl , java.sql [others missed].

Oracle: If you run the source files from the 37 packages [through the documentation extraction tool], how many pages of output does that produce?

Mark Reinhold: About 11,000 pages, or 3 1/4 banker's boxes full of documentation.

Oracle: Exhibit 610 [again, Oracle mucks up their extibits. 610.2 get shown.]

Mark Reinhold: [From the point of view of the computer], very little API organization is required by the VM. We could have given them completely random names and put them into one huge package. The design goal was that API's should be easy to learn and easy to use. Other considerations:

1) performance is important
2) Portability is important [wouldn't want to define an API that is specific to Windows].
Oracle: When you launch the API design process, what do you do?

Mark Reinhold: Collect use cases, define the problem/solution space, general requirements. Important to get quick to a high-level summary [ of the design ] to share with others. Sketching, writing code snippets. Then you start writing code for the methods. It's important to work on the implementation at the same time as the API specification to find bugs in the specification.

Oracle: How long does it take to design a package?

Mark Reinhold: 2 years, working half-time on it, with additional experts and engineers working on it simultaneously.

Oracle: How does that work?

Mark Reinhold: Through the JCP. A Java Specification Request (JSR) is put together. The JSR sketches out the problem to be solved, ideas to solve it, relation with existing APIs. The proposers get feedback and send it to the JCP. The JCP Executive Committee oversees the process- they have to approve the JSR. If it is approved, the JCP forms an Expert Group or EG. Experts from IBM, SAP, Red Hat, individuals. It works over about a 2-year period.

Mark Reinhold: As specification lead, I had to understand and distill all information. Several drafts are written to a final revision. A JSPA is required (Java Specification Participation Agreement], which makes it explicit that all the IP will be contributed. The work is required to be original.

Oracle: Is the java.nio unique in this respect (JSR, committee)?

Mark Reinhold: No.

[ missed some things ]

Mark Reinhold: There are millions of choices to be made in designing an API. Choosing names are really important. Is it a class that many developers will use? If so, then shorter names are important (to productivity). If not, then longer names are fine. Also [the design of] inputs, outputs, from and from methods is important.

Judge Alsup: Can someone from outside of Sun [/Oracle] submit JSR's?

Mark Reinhold: Many JSR's are submitted from outside Sun/Oracle. If the idea is small, then the RFE (Request For Enhancement) is available [as a means of getting a change to Java]. If the submitter is known to have experience, knowledge, and good judgement, then it makes the process smoother/faster.

Oracle: Please give examples of changes/differences?

Mark Reinhold: Logging

Google: java.util.logging versus loggingforjava.

Mark Reinhold: also SSL.

Oracle: Have the number of APIs changed?

Mark Reinhold: They've grown dramatically. There were 7 in 1997. In Java 5, there are 166. In Java 7, there are 209.

Oracle: Why were more APIs produced?

Mark Reinhold: To make the language more attractive to developers.

Oracle: Are there other programming languages with a large number of libraries?

Mark Reinhold: Yes. Python is a good example.

Oracle: Are the APIs in Python the same as in Java?

Mark Reinhold: No.

Oracle: How do you decide as the Chief Architect whether or not to add a new API?

Mark Reinhold: Many decisions -- would the new API impact a large enough number of developers with a high-quality design and implementation?

Oracle: Is it possible to make a package too big?

Mark Reinhold: Yes. Humans are bad at managing long lists of uncorrelated information.

Oracle: How is consistency of API specifications maintained?

Mark Reinhold: They have to be designed to WORA.

Mark Reinhold: Compatibility across different implementations of Java versions is critical to WORA. Sun/Oracle spends a lot of time and energy on this. API specification, class libraries, and TCK (~100,000 tests) have to all be done.

Oracle: When you were at Sun, were you involved in any litigation over fragmentation?

Mark Reinhold: Yes. I was involved in the Microsoft suit in the late 1990's where I was a technical investigator. Microsoft left stuff out (a bug) [chuckles ], but also put stuff in (fragmentation).

Oracle: [Established the nomenclature of subsetting and supersetting.]

Oracle: So Microsoft subsetted Java?

Mark Reinhold: Yes.

Oracle: And they supersetted Java?

Mark Reinhold: Yes.

Mark Reinhold: Making sure that the Java APIs remain as clean as possible. Oracle: If one wants to find out about the Java Language Specification (JLS), where would one go to find it?

Mark Reinhold: A book, 3rd edition, "The Java Language Specification". [It's large.] The JLS is very technical, from the bottom up.

Oracle: What is in and out of the language?

Mark Reinhold: Anything.

[ break.]

[Witness was dismissed with possibility of recall.] Judge Alsup: Time used, in minutes: Oracle: 315; Google: 107.

Wait. First Jacobs and now Reinhold say APIs are a blueprint, and yet Reinhold says, when asked if APIs can be too big:
Yes. Humans are bad at managing long lists of uncorrelated information.
So, the truth oozed out. APIs are nothing but long lists of uncorrelated information. That's why they should not be copyrightable, any more than a phone book's white pages contents can be. They are just a list, no matter how much work you put into it or how much money you spend getting it done. That's not at all what a blueprint is, is it? Fess up, y'all. APIs, as Google told you, are not blueprints.

Update 3:

And about whether there are any other companies that don't license Sun/Oracle's Java, there are, I think. If you look at the Oracle opening statement slides [PDF], look at the slide where Oracle showed licensees, slide 8, who don't you see? You don't see Microsoft and you don't see HP. There's some water under that bridge.

HP, I find in our research, didn't want to license from Sun, because they thought Sun rigged everything to suit Sun. So HP developed a Java clone, something called Chai, and a VM called MicrochaiVM, and the two companies went around and around about it:

HP is Sun's friend and foe when it comes to Java software. Despite HP's continued refusal to agree to Sun's Java licensing terms for gadgets, HP's own efforts are nonetheless helping Sun succeed in its vision to spread Java into handheld computers, cell phones, e-mail pagers, car computers and other devices.

On Monday, HP unveiled MicrochaiVM, its Java clone designed for gadgets. HP also announced Monday that Qualcomm has endorsed MicrochaiVM as its new cell phone software standard, boosting Java but sidestepping Sun.

A lot of companies sided with HP by 1999, and they formed the J Consortium:
A group of companies that don't want to play by Sun Microsystems' Java rules have formed an outside work group into an outfit called the J Consortium.

The companies, including Hewlett-Packard, Microsoft, and NewMonics, have formalized an ongoing effort to set a standard for a component of Java called "real-time" extensions. Real-time extensions are features that enable Java to work in devices like factory floor robots which must respond to commands immediately (in "real time").

J Consortium members say they're unhappy with Sun's dominance and that Sun detracts from the effort to actually build products, according to Kelvin Nilson, chief technology officer for NewMonics and technology chairman for the J Consortium.

Sun, with a parallel and competing effort under way, says its development process is open and objects strongly....

Current J Consortium members include Omron, Perennial, and Plum Hall. More than 25 members have "expressed intent to join the J Consortium," including Ericsson, Octera, and Transvirtual Technologies….

Nilson countered that Sun's policies were what led to the split-off group in the first place. "I would say that to a certain extent, Java has already been fragmented, and it's because of the stranglehold that Sun puts on the Java technology," Nilson said. "There are something between 10 and 20 'clean room' Javas. Each of us has been forced to create our own diverse way of working around the problems that Sun has put [up]." "Clean room" refers to Java-like software that's been developed independently of Sun's source code and is marketed as a separate product.

Sun's real-time effort is flawed because "the whole process is controlled by a single company [Sun], a company that does not necessarily understand real-time and does not necessarily understand the real-time community," Nilson said. The Real-Time Java Working Group made an effort to have the National Committee for Information Technology Standards shepherd a real-time specification, but NCITS members, including Sun, voted the proposal down. Afterward, HP vowed to continue the fight.

Sun, meanwhile, set up its own Real-Time Expert Group and appointed an IBM staffer to lead the effort.

Did you notice, Java was already "fragmented"?

By 2001, HP was still working on Chai, developing the Chaiserver, an embedded Java application server:

To help make Linux pervasive with intelligent, connected devices, HP has developed the HP Chai-LX embedded Linux-based software platform. HP Chai-LX is a customizable software platform that enables devices to host Java applications and dynamic Web services. The platform combines an optimized embedded Linux operating system with HP Chai software and selected Java applications.

Products such as the HP Digital Entertainment Center, an Internet-connected component for the living room, may offer consumer benefits of Chai-LX in future offerings. Currently, the HP Digital Entertainment Center allows customers to conveniently download and store MP3 files, access Web-based entertainment information and create custom CDs.

To help accelerate the pervasiveness of intelligent devices, HP also plans to open source the HP Chaiserver, an embedded Java application server. Currently, HP Chaiservers are deployed in millions of Web-connected HP LaserJet printers to enable Web-based printing services.

By 2002, the J Consortium had 150 members, and they were building APIs:
June 21, 2002

On June 27-28, J Consortium members will meet in Rennes, France, to discuss standard specifications to assist in developing and porting embedded Java(TM) language software. An international cadre of experts and software tools vendors will present on many topics, including high-integrity profile extensions for hard real-time and even safety critical applications in general and for automotive control applications in particular.

Another important topic will also be addressed: The new ISO JEFF(TM) standard. A highly efficient file format specified by J Consortium, JEFF provides a ready-to-execute format for object-oriented programs, and especially for Java programs.

...

J Consortium is an independent organization comprised of companies and individuals world-wide dedicated to accelerating the use of Java technologies in real-time and embedded applications. Members of the open forum seek to provide a vendor-neutral technical framework ensuring the ability for Java-based development of soft and hard real-time applications. From its seven founding companies, the organization has now grown to more than 150 members, with new members being added all the time. The working groups set up within the J Consortium build APIs addressing the particular needs of individual niche market segments.

Something called the J Consortium still exists, I gather, doing standards around Java, but without, as far as I can tell, any license from Sun, trying for what they view as a more democratic process, and here's how they explain why they are not part of Sun's family to this day:
3. What is your relationship to Sun’s “Community Process”?

Most of the group are not participants in Sun Microsystem’s “Formal Process”. We do not feel that Sun’s process is sufficiently open and vendor-neutral, but in fact creates an environment in which Sun Microsystems can potentially enforce positions that provide an advantage to their products. For example, one must sign a Non-Disclosure Agreement and a Java Specification Participation Agreement before one can participate in Sun’s “Community Process” or become a member of its “Expert” group. Moreover, we have concerns with respect to the potential surrendering of intellectual property rights, the possibility of being asked to agree to outside audits where we have no voice in the selection of auditor or definition of compliance, and the potential control by Sun of procedural rules governing the decision-making process. We do not feel this dominance is in keeping with a truly open process where products are allowed to compete on a “level playing field” where they are judged on their respective technical merits. By contrast, anyone may join and participate in our process, with free membership levels.


4. Don’t you feel that you are splintering the Java™ community?

No. Our organization was formed as an outgrowth of work done under NIST (National Institute of Standards and Technology) and NCITS (the National Committee for Information Technology Standards). It was only after participation in Sun’s “Formal Process” was predicated upon signing of “Participatory Licenses” from Sun that we determined it would be impossible to bring forth real-time extensions for the Java™ programming language that were truly independent and vendor neutral. We feel that Sun has left us, an open community that endeavors to represent the real-time requirements necessary to make the Java™ programming language successful in our particular market space, in favor of creating an organization that it can dominate. We have invited Sun to rejoin us, and hope that they will see fit to embrace an open, non-restrictive approach to providing embedded and real-time extensions for the Java™ programming language.

I may not have all the ins and outs of the story, but this is enough to show you the context of Page's remarks about how difficult it was to work with Sun, how controlling its process was, and how many felt it was all for Sun and nothing much for anybody else. HP still is not on the list of licensees, but I do see HP on Oracle's slide 9, companies who participate in the JCP. Things that make you go hmm.

Update 4: It occurs to me that it might be good to link to an article I did early in 2011 about copyright law in the US, particularly in the Ninth Circuit. Note in particular Apple v. Microsoft, which is linked to on that page and explained a bit, now that Google has mentioned it here. It should help you understand how complex it is to figure out if something is infringed or not, when it comes to software, as opposed to a book. And here's Joe Mullin's coverage of the day for ars technica.

Update 5: We have the trial exhibits for this day, 2012-04-18:

  • 0001.pdf [Powerpoint "Android GPS: Key strategic decisions around Open Source"]
  • 0002.pdf [Email from Andy Rubin, "Fwd: GPS Notes (Android) 07.26.05"]
  • 0006.pdf [Email from Andy Rubin, "Android GPS Notes", 9/6/05, with large attachments.]
  • 0007.pdf [Email from Tracey Cole, "RE: Sun meeting." 10/11/05.]
  • 0401.pdf [Email from Nick Sears, "Mobile Strategy Meeting Notes." 11/7/06.]
  • 0450.pdf [Certificate of Registration, US Copyright Office, "Java Development Kit Version 1.0 alpha 2" Dec 24 1997]
  • 0451.pdf [Certificate of Registration, US Copyright Office, "Java Development Kit Version 1.1.3" May 7 1998]
  • 0452.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.3 (Microsoft Windows Edition)" Aug 03 2000]
  • 0453.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.3 (Solaris for SPARC Edition)" Dec 14 2000]
  • 0454.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.3 (Linux Edition)" Dec. 14 2000]
  • 0455.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.3 (Solaris for Intel/x86 Edition)" Dec 14 2000]
  • 0460.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.2 (Solaris for Intel/x86 Edition)" Mar 20 2001]
  • 0461.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.2 (Linux Edition)" Mar 20 2001]
  • 0462.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.2 (Solaris for SPARC Edition)" Mar 20 2001]
  • 0463.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.2 (Microsoft Windows Edition)" Mar 20 2001]
  • 0464.pdf[Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 1.4" April 20 2005]
  • 0475.pdf [Certificate of Registration, US Copyright Office, "Java 2 Standard Edition Version 5 0" Dec 20 2004]
  • 0476.pdf [Certificate of Registration (Supplemental), US Copyright Office, "Java 2 Standard Edition Version 5 0" Feb 2 2005]
  • 0509.pdf [Certificate of Registration, US Copyright Office, "Java Development Kit Version 1.2 beta 2" Mar 17 1998]
  • 0510.pdf [Certificate of Registration, US Copyright Office, "The Java Language Specification" 11/22/96]
  • 0511.pdf [Certificate of Registration (Supplemental), US Copyright Office, "The Java Language Specification" May 12 1998]
  • 0513.pdf [Certificate of Registration, US Copyright Office, "Java Development Kit Version 1.0 alpha" Jun 23 1998]
  • 0518.pdf [Certificate of Registration (Supplemental), US Copyright Office, "Java Development Kit Version 1.0 alpha 2" Feb 24 1999]
  • 0520.pdf [Certificate of Registration (Supplemental), US Copyright Office, "Java Development Kit Version 1.0.2" May 12 1998]
  • 0521.pdf [Certificate of Registration, US Copyright Office, "Java Development Kit Version 1.0.2" Dec 24 1997]
  • 0523.pdf [Certificate of Registration (Supplemental), US Copyright Office, "Java Development Kit Version 1.1" May 7 1998]
  • 0524.pdf [Certificate of Registration, US Copyright Office, "Java Development Kit Version 1.1" Dec 24 1997]
  • 0526.pdf [Certificate of Registration (Supplemental), US Copyright Office, "Java Development Kit Version 1.2 beta 2" March 24 1999]
  • 0595.pdf [Certificate of Registration, US Copyright Office, "The Java Virtual Machine Specification" Dec 16 1996]
  • 0596.pdf [Certificate of Registration (Supplemental), US Copyright Office, "The Java Programming Language" Mar 20 1998]
  • 0597.pdf [Certificate of Registration, US Copyright Office, "The Java Programming Language" 5/30/96]
  • 0598.pdf [Certificate of Registration (Supplemental), US Copyright Office, "The Java Application Programming Interface, Volume 1: CORE PACKAGES" Mar 20 1998]
  • 0599.pdf [Certificate of Registration, US Copyright Office, "The Java Application Programming Interface, Volume 1: CORE PACKAGES" 6/28/96]
  • 0601.pdf [Certificate of Registration (Supplemental), US Copyright Office, "The Java Application Programming Interface, Volume 2: Window Toolkit and Applets" Mar 20 1998]
  • 0602.pdf [Certificate of Registration, US Copyright Office, "The Java Application Programming Interface, Volume 2: Window Toolkit and Applets" 6/28/96]
  • 0603.pdf [Certificate of Registration, US Copyright Office, "Java Development Kit Version 1.0" Jun 23 1998]
  • 0659.pdf [Certificate of Registration, US Copyright Office, "Java Standard Edition 6" May 20 2008]
  • 0984.pdf [The Java Language Specification, Third Edition]
  • 1028.pdf [Chart "The Java Class Libraries"]
  • 1041.pdf [Transcript of Larry Page's Deposition. (Excerpts)]
  • 2347.pdf [Joint letter to Jonathan Schwartz from several JCP Members.]
  • Revised demonstratives for Mark Reinhold PrintV2.pdf

Update 6: All the trial exhibits are now available as PDFs here. Some are also done as text. Look for the date nearest the day, as they are listed by the date they were entered, which could be a day or so after the date of their use in the courtroom.


  


Day 3 of the Oracle v. Google Trial ~pj - Updated 6Xs (Larry Page, Reinhold, Screven.) | 126 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Fibber!
Authored by: complex_number on Thursday, April 19 2012 @ 06:18 PM EDT
Judge Alsup to Google: I hope that you aren't trying to get Oracle to burn through their [allotted, limited trial] minutes.

Google: No, Your Honor.

Google are naturally trying to get Oracle to run out of time. Oracle will be doing the same to Google when it is their turn.
What matters is how obvious this tactic is.

No matter. I enjoyed that little snippet.

It is a pity that my business in San Diego is running behind schedule. I'd really liked to have made it up to Frisco to see a US court in action before I go home to blighty.

---
Ubuntu & 'apt-get' are not the answer to Life, The Universe & Everything which is of course, "42" or is it 1.618?

[ Reply to This | # ]

  • Not everyone plays that way - Authored by: Anonymous on Thursday, April 19 2012 @ 06:42 PM EDT
  • Does this make me look fat? - Authored by: mexaly on Thursday, April 19 2012 @ 07:27 PM EDT
  • Fibber! - Authored by: Anonymous on Thursday, April 19 2012 @ 07:34 PM EDT
  • Fibber! - Authored by: PJ on Thursday, April 19 2012 @ 07:57 PM EDT
  • No - Authored by: Anonymous on Friday, April 20 2012 @ 12:44 PM EDT
Corrections Thread
Authored by: bugstomper on Thursday, April 19 2012 @ 06:25 PM EDT
Please summarize error->correction or s/error/correction/ in the Title box

[ Reply to This | # ]

Off Topic threads
Authored by: bugstomper on Thursday, April 19 2012 @ 06:26 PM EDT
Please stay off topic here

[ Reply to This | # ]

News Picks Thread
Authored by: bugstomper on Thursday, April 19 2012 @ 06:29 PM EDT
Pick your News here. Please put the title of the News Pick in the Title box and
include a clicky link to the article for when it scrolls off the sidebar.

[ Reply to This | # ]

Comes transcripts here
Authored by: bugstomper on Thursday, April 19 2012 @ 06:30 PM EDT
Please post your transcriptions of Comes exhibits here

[ Reply to This | # ]

So, Google's Agent was good, when will we see that SUN is guilty of "Acquiescence"?
Authored by: Anonymous on Thursday, April 19 2012 @ 06:34 PM EDT
So, Google's Agent was good, when will we see that SUN is guilty of
"Acquiescence"?

I often wonder why that IP has a special property class, above everything else,
where the "Laws of Agency" and the term "Acquiescence" seem
to be not important?

Sun's Agents did act in a certain way (case closed).
Sun's Agents even were guilty of "Acquiescence" in a very public way
about what Google was doing (case closed).

Why does this have to go beyond simple understood forever legal terms that one
might learn in Law School 101?

Anyone?

[ Reply to This | # ]

Thank You To Our Court Reporters!
Authored by: sproggit on Thursday, April 19 2012 @ 06:44 PM EDT
Your notes are incredibly detailed, and I like the way you capture the
subtleties of exchanges.

If we had nothing but the profeshnial [sic] journalist output to go on, we
wouldn't have got half the detail you've provided.

So a hearty thanks [from us all].

[ Reply to This | # ]

How is it possible that they can't number exhibits properly?
Authored by: Anonymous on Thursday, April 19 2012 @ 06:46 PM EDT
I could understand it if they were wasting Google's time.

Would be good to see figures for the overall allocated time, since hours have
been mentioned.

tx

[ Reply to This | # ]

API names?
Authored by: Anonymous on Thursday, April 19 2012 @ 08:26 PM EDT
I don't think it's correct to say that the name is a component of the API as
Google's lawyer said ("A method declaration is a statement that defines an
API *element name*, return type, parameter type and order"). It may be the
case for the particular case of Java (is it? I haven't used Java) but not in
general.

I'm not a friend of MS but I've worked enough with DLLs under MSW to know that
in many cases, the functions they contain (their API) can be referenced either
by name or by number, and when you use the number, you can use any name you want
within your program to refer to them. It's thus more accurate to say an
identifier (that uniquely determines what functionality that API call
implements) than a name.

[ Reply to This | # ]

Not in Contention Versus Challenged
Authored by: Anonymous on Thursday, April 19 2012 @ 08:52 PM EDT
This is definitely where I struggle with the judicial reality disconnect

1) Android use of the GPL

How is this relevant to anything in the trial?
Is this just Android Platform is GPL but that's irrelevant here?


Most disturbing though...

Not in 2) The Names

Challenged 1) The 37 Apis
Challenged 4) Declarations

The above three items are exactly the same thing.
No question. There is no other feasible interpretation.

Further Challenged 5) SSO, technically, as such, follows a result of all of the

above.

(Except in Oracles confused view of how SSO applies to a compilation which
is not a compilation, Google do remind the court of this and that abstraction
and filtration will be necessary, if indeed copyright does apply to the SSO)

I am pleased to see the start of some clarification, which may be the start of
the analysis Google mentions. Much more is required, but is the Judge getting

tired of Oracles slipperiness, or is he just letting them hang themselves

37 Packages (which is actually 14, with some sub packages)
?????how many Classes
4,500 Methods

First stop, the Classes.

java.lang.String (Language) for example contains 63 (counted by eye from 1.5
spec so probably flawed) Method declarations, this does not include
constructors, which are also technically (construction) Method declarations,
of which there are another 11, discounting the depracated ones, which is
another 2, for a total of 75

javax.security.auth.x500.X500Principal (assume API for the sake of
argument), contains a mere 6 Method Declarations, and 3 Constructors for a
total of 9

Oracle admitted that they extrapolated their 100,000 odd number from an
examination of a few classes, so let's play the same game...
(75+9)/2=42 (Yay, you know it's good when the answer is 42)
so we're likely to be in the ball park of about 100 Classes (4500/42=107...)

As an aside, in relation to the '4500' Method declarations, (warning sweeping
statement coming), it should be kept in mind that most if not all of the 100odd

classes under discussion implement the Methods equals(), hashcode() and
toString() (yes even the String Class has a toString() Method), so that's a
whole bunch less methods, or about 300, which conveniently allows us to
drop the odd 7 we ignored a moment ago.

SO when Oracle talk about SSO, of "Thousands" of items, they are
really
talking about 14 packages, and 100 classes.

Just to be clear on this, you cannot decide in a fit of creative expression to
move the X500Principal.getEncoded() Method to the String Class, aside from
breaking the OOP paradigm, it's just plain ridiculous on the face of it, so SSO

can only possibly apply at the package level e.g. you might just conceivably
put the StringBuffer class in with some of the other Buffer classes in
java.nio.

java.lang (which we assume is part of the Language) contains 35 of those
classes.

Things not so far taken into consideration (because have so far focused on
Method declarations) .

Fields (String has 1, X500Principal has 3).
Interfaces (java.lang has 8)
Enums (java.lang has 1)
Exceptions (java.lang has 27)
Errors (java.lang has 22)

Each and every one of these things is a declaration, each and every one of
these things is a name, each and every one of these things is not protected,
the judge said so.

The java.lang (Language by definition) package contains dependencies
outside that package, following that chain is left as an exercise for the
reader.

I'm not sure why I decide to start this analysis, beyond my own
comprehension of what 4500 Method declarations might mean , and the
difficulty understanding understanding how you can have one thing appear
three times on opposing sides in two lists.

All the above detail is counted by eye, and typed on the fly, and I need a
better
browser, so mistakes in numbers/calculations typos, are just that.

When you take out this nonsense, the only remaining Challenged item of any
substance appears to be Item 6) the Book, the API Specification, and surely
the question there has to be how much actual damage have you suffered by
Google copying a Book (if they actually did) that Sun/Oracle publicly published

themselves without access restrictions in every edition on the internet,
allowed and actively encouraged millions to download for free, and has been
reproduced by a variety of publishers in Dead Tree format?

Oracles "thousands" of creative decisions claim looks thinner and
thinner the
closer you look. There's one part of me that hopes Judge A does not decide to
just throw this lot out when Oracle have finished to save the Jury/Court/
Parties some time. Watching(through GL) van Nest destroy this farce should
be entertaining (I can only wish) .





[ Reply to This | # ]

Serevan on field of use
Authored by: rsteinmetz70112 on Thursday, April 19 2012 @ 08:57 PM EDT
It seems Serevan was claiming that Sun's restriction were based on the
capability of a device. but in fact the restrictions were based on the
"field of use", not the capability of the device.

Apparently Serevan would be perfectly happy with and unlimited version of Java
running on any device capable of running it well.



---
Rsteinmetz - IANAL therefore my opinions are illegal.

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

403 = Federal Rules of Evidence 403?
Authored by: clemenstimpler on Thursday, April 19 2012 @ 09:13 PM EDT
Quote from the article:

"Google: Objection, #403 [ I am not sure what a #403 objection
indicates.]"

The rule reads: "The court may exclude relevant evidence if its probative
value is substantially outweighed by a danger of one or more of the following:
unfair prejudice, confusing the issues, misleading the jury, undue delay,
wasting time, or needlessly presenting cumulative evidence." From the
context, I would assume that Google objected because of 'confusing the issues'
(claiming that the exhibit belongs to the 'damage phase' rather than the
'copyright phase' of the trial). IANAL and all that

[ Reply to This | # ]

class names _are_ part of JLS
Authored by: awildenberg on Thursday, April 19 2012 @ 09:38 PM EDT
Oracle: Are there any names of the API classes that are not part of the Java Language Specification?
Edward Serevan: Double float long int boolean string thread object class… none of these are in the JLS. This list might not be comprehensive; that was off the top of my head.


If you go onto Oracle's site, you can see that it's obviously not true. Not only are some of those class names part of the JLS, the illustrating examples throughout the JLS involve code snippets referencing those classes. This subsection alone references String, Boolean, Byte, Short, Character, Integer, Long, Float and Double. The next section defines Object and Class. I'm sure if you look up try/catch you'll find references to Throwable and Exception. They really are part of the fundamental structure of the language, so much so that you can't write a language spec without referring to them specifically.

http://docs.oracle.com/javase/specs/jls/se5.0/html/typesValues.html #4.3.1

[ Reply to This | # ]

Day 3 of the Oracle v. Google Trial ~pj - Updated 2Xs
Authored by: Anonymous on Thursday, April 19 2012 @ 09:42 PM EDT
Oracle: Are you aware of any companies that use the Java API’s that has not taken a license?
[ no response recorded... sorry ]

At this point Page said something about IBM having had disagreements with Oracle in the past. Oracle's lawyer asked him to clarify if he was saying IBM is using Java API's without a license, to which Page replied he didn't know about the details of the relationship between IBM and Oracle.

Oracle's lawyer then went back to the original question but I don't remember Page's answer.

(I haven't recorded anything so this is purely from memory and may be somewhat inaccurate)

[ Reply to This | # ]

Some Oracle witness lies (or at least not the truth)
Authored by: bugstomper on Thursday, April 19 2012 @ 10:51 PM EDT
Serevan (as paraphrased and summarized by mirrorslap):

[An API is defined as] Part of a program. Programs have 2 parts:
1) definition of structure
2) code that carries out that functionality [example of "add
entry"/"remove entry"]

I jumped when I read that, thinking that he was saying that the API is the class
library, i.e., the code, something that Oracle has been trying to confuse the
court is true. Then reading it more carefully, I see that he could be saying
that programs have two parts, the definition of structure which is the API, and
the code which is the implementation. That would be true, but it is misleading
to not say clearly that only the first part is the API.

He then said

"There is no distinction in Java between the APIs and the class libraries.
They are co-mingled"

Ooh, there is the confusion again. If what he meant is that the API in the form
of the package names, class names, public field definitions and method
signatures appears in the source code together with the implementation code,
then that is strictly speaking accurate. But again said that way without
clarification tends to conflate the API and the class libraries. In fact, what
he is saying supports Google's case by saying that the source code of
independently implemented class libraries will of necessity contain the same API
statements as the original class libraries even with no copying of the
expressive elements.

"The APIs are a part [of the documentation]"

And there he supports the idea that the package names, class names, method
signatures in the documentation will be the same when an API is implemented
independently even if the rest of the documentation is different.

"Oracle: [brings out a file cabinet]. This filing cabinet, is there any
relation of it to an API?

Edward Serevan: No way is that an API. It's a filing cabinet. You can put papers
or file folders in it. You could even put old shoes in it".

And that refutes Google's metaphor exactly how? Is that an argument from
authority? ("I am the Chief Architect of Java APIs at Oracle and I say that
this clearly understandable metaphor explaining an API to the jury is not
literally true. That filing cabinet is a filing cabinet and is not an API.
Google is trying to fool you when they say it is something other than a filing
cabinet as anyone can see by looking at it. I'm a Chief Architect. You can trust
me.")

"Oracle: Are there any names of the API classes that are not part of the
Java Language Specification?

Edward Serevan: Double float long int boolean string thread object class… none
of these are in the JLS. This list might not be comprehensive; that was off the
top of my head."

What is remarkable about this is not just that it isn't true as awildenberg
pointed out in a comment here. Through some strange mental process Servan
managed to answer the question by listing most if not all of the classes that
_are_ explicitly listed in the Java Language Specification. I wonder if he was
thinking "Don't let on about those classes that are specifically mentioned.
Don't let them know about those classes. Anything but Double Float Long Integer
Boolean String Thread Object Class..."

By the way, for those who don't want to bother following awildenberg's link to
the JLS section 4.3.1 Objects, here is the relevant excerpts from the same 3rd
edition, "The Java Language Specification" that the other Oracle Chief
Architect witness, Mark Reinhold, said is the place to go to find out about the
JLS:

"[...] resulting in a new object of type String (§4.3.3) [...] New objects
of the types Boolean, Byte, Short, Character, Integer, Long, Float and Double
may be implicitly created by boxing conversion (§5.1.7)."

The next section, 4.3.2 is all about the Object class, lists methods for it and
mentions the Class class. Section 4.3.3 is about the String class.

From the beginning of Chapter 17: "Threads are represented by the Thread
class."

Even more remarkable is that Judge Alsup picked up on this when Google's lawyer
did not during the cross. I expect that there will be some repercussions when
those specific classes are listed and are shown to be explicitly called out in
the JLS, and not just as part of some example code.

I bet that Judge Alsup has been paying attention and remembered that there has
been mention that some of the API classes are so integral to the Java Language
that they are even mentioned in the JLS. This has been said about String, Object
and Class at least. Did he notice that there was at least that much wrong with
Serevan's list?

[ Reply to This | # ]

Doc Comments, by definition, make a (something) -not- "self documenting"
Authored by: BitOBear on Thursday, April 19 2012 @ 11:10 PM EDT
I love me an expert.

"Self Documenting" code is the idea that you can write and arrange
code in a way that obviates and removes any need for the programmer to write
comments (or other documentation).

(Examples in C++ and doxygen [http://www.doxygen.org])

Code fragment:

if (current_object->NeedsSaving()) {
archive_object->TakeSnapshotOf(current_object);
archive_object->FlushArchiveToPerminantStorage();
}

If you read the above "like prose" it tells you what is taking place
and why. This is an example of "self documenting code".

NowAgain:

if (c->ready()) {
a->take(c);
a->flush();
}

No where near as helpful, so one might need to define the elements the classes
represented by "c" and "a", in particular the methods
"ready", "take" and "flush"

class archive { public:
//(stuff elided for simplicity...)
//! brief take a snapshot of a storable object
//! parm s a reference to the object to capture
void take(storeable & s);

//! brief flush all snapshots to storage
void flush();
};

So javadoc is a Java-specific tool that takes comments and code and burps up an
API specification just like doxygen can take code in a number of different
languages and burp up documentation. In the absence of comments you might get
some information such as "int a;" may prompt the tool to give you the
fascinating insight to the fact there exists a thing called "a" and it
is an integer.

The argument of "documented code" vs "self-documenting code"
is thus:

If you -choose- to make the verbs and nouns in the text of your code read like
prose, then the code always says what it does explicitly. But this is only as
effective as the choice of nouns and verbs each programmer makes individually,
and choosing good ones means your programmer can program like a writer, and
there will be more reading and debugging and compiler time involved at every
stage. There can be fewer statements on any given page because the words are
longer and long expressions can get hard to hold in the head. The choice of
names itself can become a draconian and lead to multiple methods that have
different names but essentially identical things. Finally, if a verb also has
some atypical usages or side effects it can lead to small tangles of code where
the "as prose" reading gets very David Lynch.

Documented code can be more concise. If the symbols (nouns and verbs) are
memorable in and of themselves but just enough to be held in the head, and short
enough to get more of them on a page before, you can get code that is faster to
compile and faster to browse, read, and write as a human task. The danger is
that as symbols change over time the comments and the code can get out of sync
and you are left with comments that tell you code does (this thing) when the
code now does (some other thing) instead.

Simply put, if you put documentation in using comments, then the thing itself
was not self documenting. It was documented. By you even.

This guy just set of my BS detector completely with that comment. I don't trust
people who misuse terms-of-art so badly.

Mr. Reinhold has been brought in to mince words for Oracle and he is mincing
them wrong in several places. (Look up "pleading to authority" in Carl
Sagan's Baloney Detection Kit.)

[ Reply to This | # ]

Err... Which edition of Java is Harmony?
Authored by: BitOBear on Thursday, April 19 2012 @ 11:32 PM EDT
Here are some of my "killer questions"

===

The killer question is, if Harmoney is not Java because it never went through
the TCK, and Sun's stated position is that it is only interested in preventing
fragmentation inside of each edition of Java, what does the
"fragmentation" issue have to do with the non-java Harmony thing?

The TCK is, after all, the "is this java or not" hurdle that brings
things into the namespace or not.

===

If the API Files (machine readable interface part) were not part of the GPL
release of the libraries, then how can the library be used at all? The zeroith
freedom of all GPL material is the freedom to use.

===

Do you need everything in the Language Specification for Java in order for your
implementation of Java to be Java? If not, why is it in the specification? Don't
the language and library specifications each call out to each other by
referencing names and details.

Note that in a previous post some weeks ago I document the presence of string,
object, exception, throwable, runable, and a number of other classes from the
library that must be present in the language.

In at least one previous post I pointed out -why- one needs to treat the two
documents (language spec and library API) as one for them to make sense. I also
pointed out that most other languages (Ada etc) do -not- separate the core
library from the language spec at all (except in volume 1 vs volume 3 sense for
large languages).

The word-mincing part is that they are not "laid out" (member order
etc) but the members the class(es) must contain at a minimum are explicitly
listed and more are implicitly used.

Everything this guy said sounded good but was not "strictly true". It
was pure truthiness and good enough for daily conversation when it was right,
and it was blurry or wrong in parts that would never matter in daily operation
(like whether the class "Object" was in the JLS or not, which matters
not at all since it isn't an optional component.)

The case at hand is all about that blurry part.

===

Were I redirecting (and if such is allowed):

Do you, in the general sense, know about cars?

Eh... yes...

Do you know about your own car?

Eh... okay yes... I guess...

Do you know about -my- car?

No... why would I?

Do you know about APIs?

Yes.

Do you know about Google APIs?

Many of them, yes.

Do you know about Sun's Java APIs?

ohh..... no. Why would I?

The Oracle council's attempt to conflate knowledge about APIs in general into
specific knowledge about someone else's API is just stupid. That needed some
hammering.

[ Reply to This | # ]

Guessing game contest
Authored by: jheisey on Thursday, April 19 2012 @ 11:37 PM EDT
Groklaw should have a contest to see who can most accurately guess how many
times Oracle witnesses will "accidentally" mention Oracle's $7.4B
transaction price to purchase Sun despite the judge's instructions. They have
already done it at least twice in four days.

[ Reply to This | # ]

APIs take center stage at Oracle-Google trial
Authored by: Anonymous on Friday, April 20 2012 @ 12:11 AM EDT
From CNET: APIs take center stage at Oracle-Google trial (This is a news pick, but it seems too on-topic for that thread.)

That seems to be a very good article. It sounds like Oracle's witness Mark Reinhold said something very questionable that may be damaging: "More simply, he explained that the APIs and class libraries are not in the Java language in the same way the Oxford English dictionary doesn't contain every word in the English language." OTOH, it sounds like another one of Oracle's witnesses was helpful to Google. That was Joshua Bloch, who now works for Google. Oracle apparently called him because he is the person who copied the "range check" code. Under cross, he seemed to counter a lot of what Reinhold had said. From the CNET article:
He added, through [Google's lawyer] Baber's prompting, that an API is not a blueprint that tells you how or to build or implement something. Baber asked Bloch to explain naming conventions in Java APIs--packages, classes and methods.
I take it that Baber could lead Bloch since he was technically a hostile witness, even though he was actually friendly to Google.

PJ's comment in the news pick is strange, though.
PJ: So when Oracle told the jury in its opening statement that APIs are blueprints, that doesn't match this witness, does it? And look at the evidence for yourself -- should this be copyrightable? Zeroes and ones. And just because a company puts a copyright notice on a page, it doesn't mean it's copyrightable.
Which witness is "this witness"? There were two of them. The one who mentioned the zeros and ones was not the one who said that an API is not a blueprint. He was talking about class libraries as object code as opposed to source code, and everyone agreed the object code wasn't copyrightable, didn't they?

[ Reply to This | # ]

Int vs int and Java's homonym problem.
Authored by: BitOBear on Friday, April 20 2012 @ 12:57 AM EDT
So one of the other things is that is going to happen here is that

"int" "float" "double" and a few of the other
things R. cited aren't classes at all. But "Int" "Float"
"Double" so on are.

In computer languages capitalization and context matter. There are these
container adapter things that let you take a native (non-complex, no members,
indivisible) things and put them in a class so that you can pass them where
classes belong. Such a class can also give you "helper" information
such as the maximum and minimum values for "int" by querying Int
member named something like "max".

I don't remember the real names under Java for all this plumbing.

So while there is no "string" that isn't a class, many of the others
(bool, float, int, double, etc) are things that are in the language spec but
aren't classes at all. So several things were classes for sure, and several
things might not be classes at all

Java has a homonyms... a fact that the court and the jury might need to know.

[ Reply to This | # ]

GNU Classpath didn't run the TCK because it wasn't allowed
Authored by: Anonymous on Friday, April 20 2012 @ 03:22 AM EDT
Edward Serevan: GNU classpath was always incomplete. It didn't fully implement
the API or run the TCK. There is no commercial use of the GNU class path,
especially after Sun released Java under the GPL.

Others have already pointed out various commercial uses of GNU Classpath (even
by Oracle themselves), so this is a false statement (although the witness could
not know of course). The didn't fully implement the API or TCK part are
misleading though. There are several reports of GNU Classpath being almost 99%
(?) complete and only needed the TCK (which they requested and was denied of
course).

http://www.javalobby.org/java/forums/t85957.html
"ust last year, GNU Classpath announced 95% coverage of Java 1.4 with their
0.19 release ; today on the Kaffe website, GNU Classpath is reporting 99.95%
compliance with Java 1.4 , and 95.53% coverage of Java 5."

http://www.advogato.org/person/robilad/diary/64.html
"Encouraged by those successes, and by a lot of good conversation with
Javali's awesome Bruno Souza, and Sun's energetic Onno Kluyt, I have sent in my
TCK scholarship application, so that we can eventually have mutual compatibility
between Sun's proprietary implementation of the Java specifications and Kaffe
and other GNU Classpath virtual machines and runtimes.

This is the first step. Onno has acknowledged receipt of my application from
Sun's side, so it's now up to the TCK Scholarship Board to decide if the
Kaffe/Classpath application is worth support. Then it will be up to Sun to
propose the terms for such access."

Onno Kluyt was Sun's head of the JCP.

[ Reply to This | # ]

blueprints vs APIs
Authored by: Anonymous on Friday, April 20 2012 @ 03:57 AM EDT
Nice observation there about Reinhold's words. Indeed when the Oracle people say
"blueprint" they really mean the whole design and specification
document. But that is much, much more than the "bare APIs" (really in
this case the term API is so badly defined, sigh). The real discussion is
whether the (in a way meaningless) class/method signatures are protectable under
copyright or not.

It is smart of Oracle to keep using the word blueprint though, you have an image
in your head of dense interrelationships, lots of lines precisely saying how
long or how connected things are. But that is adding meaning to the bare
class/method/field names. Which goes to how to implement it. And that is
important too. After all Google did implement it too. It is just not what the
dispute is really about.

Filing cabinet is kind of a good "counter word" for Google that makes
the "bare" API meaning more clear. But even that has too much
"structure" to it IMHO. It is hard to come up with something better
though without having to assume some formal logic/mathematical background.

[ Reply to This | # ]

Tearing Reinhold apart
Authored by: Anonymous on Friday, April 20 2012 @ 06:36 AM EDT
Are the Google lawyers not allowed to do this or do they simply lack the technical understanding to see this opening to drive home the point that APIs cannot be protected.
Mark Reinhold: [From the point of view of the computer], very little API organization is required by the VM. We could have given them completely random names and put them into one huge package. The design goal was that API's should be easy to learn and easy to use. Other considerations:

1) performance is important
2) Portability is important [wouldn't want to define an API that is specific to Windows].

Oracle: When you launch the API design process, what do you do?

Mark Reinhold: Collect use cases, define the problem/solution space, general requirements.

Fictional redirect I'd like to have seen:

Google: You've said that while in theory you could have chosen completely random names, that would not have been good API design. Correct?
Reinhold: Yes.

Google: Good API design requires that you - I'm trying to recall the points you just made here - that you make things easy to learn for programmers, that you design for optimum performance and portability. Correct?

Reinhold: Yes

Google: You've said that in order to do that you have to collect use cases and requirements, that would be from programmers who should use the APIs. Correct?

Reinhold: Yes

Google: In other words, good API design requires that you constantly think about and consider the needs of the 10s of 1000s of Java programmers out there? And you try to serve those needs as good as you can. And the better you can do that, the better you are as an API designer. Is that correct?

Reinhold: Yes

Google: And you consider yourself a good API designer?

Reinhold: I think I'm quite good at it. Yes.

Google: So I understand that as a good API designer, when you developed the Java APIs you constantly thought of and were guided by the technical and objective needs of other programmers. Have you ever included a function in an API that was badly designed intentionally, as a joke, to play a trick on other programmers?

Reinhold: Of course not. That would have been unprofessional. And it would never have survived review. I'm not working alone. We're working as part of a team. If a rogue developer snuck something like that in, someone else would take it out and it would never ship.

Google: So API design, "good" API design, that is, is completely guided by external factors and functional considerations and you intentionally refrain from as well as are prevented by others from introducing your own personal touches into the work? Where then do I find the personal creative spark of Mark Reinhold within the Java APIs?

Reinhold: [repeats himself about how much work API design is, about how he has to make many nonobvious decisions]

Google: I see that you put a lot of thought and effort into the API designs. But is there any personal creative expression of Mark Reinhold in those APIs? Is there anything that marks these APIs as "Mark Reinhold" APIs in the sense that every John Clancy novel is, regardless of subject, unmistakably a John Clancy novel. Can someone find your personal handwriting, so to speak, in these APIs?
And I think at that point I could simply let him talk and everything he would say would hurt Oracle's case. He'd probably start with saying "APIs are not like novels" which would be a big "Ouch!" for Oracle, since they want to sell the jury on this idea. And not only the jury. The judge, too.

[ Reply to This | # ]

Mark Reinhold: Many JSR's are submitted from outside Sun/Oracle.
Authored by: Ian Al on Friday, April 20 2012 @ 07:38 AM EDT
Article I, Section 8, Clause 8 of the United States Constitution:
To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries.
So, the Constitution says that the authors get the exclusive Right to their respective Writings...

So, who owns the copyright on the API packages and JSRs authored outside of Oracle/Sun? Who has authored the 'Sequence, Structure, Organization' and, therefore, owns the copyrights?

How much creative expression is there in Sun listing other authors' API packages in alphabetical order?

---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid!

[ Reply to This | # ]

No Reinhold Corss Examination?
Authored by: rsteinmetz70112 on Friday, April 20 2012 @ 08:55 AM EDT
The report says Reinhold was excused but may be recalled. Did Google not
question him?

---
Rsteinmetz - IANAL therefore my opinions are illegal.

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

Did Oracle just toast their 37 API contention with the Jury?
Authored by: Anonymous on Friday, April 20 2012 @ 09:58 AM EDT

Mark Reinhold: No- it was produced at roll-out of Java 5 [for the public]. It is used by engineers/programmers.
Oracle: Are the 37 APIs under contention shown on this chart?
Mark Reinhold: 34 of 37 API's are. 3 are not.
Wait.... what?

I think if I was on the Jury, I'd now have the question:

    Okaayyyyy..... so.... if those are built for "engineers/programmers" and it was shown publicly and the language is available for anyone to use without a license.... are there really only 3 API's that are at issue?
Oracle might want to consider somehow clarifying that point in future questioning.

RAS

[ Reply to This | # ]

"Alan" at Sun
Authored by: Anonymous on Friday, April 20 2012 @ 01:34 PM EDT
Wonder what that was about?

For what it's worth, the Alan I know at sun: http://www.linkedin.c om/pub/alan-burlison/1/285/558

[ Reply to This | # ]

  • "Alan" at Sun - Authored by: Anonymous on Friday, April 20 2012 @ 01:36 PM EDT
APIs are nothing but long lists of uncorrelated information.
Authored by: Anonymous on Friday, April 20 2012 @ 11:08 PM EDT
APIs are, at least Java's, not just long lists of uncorrelated information. I
assume you know that. Sometimes, pj, I have a problem distinguishing your
ironic or sarcastic statements.

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )