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
Oracle Replies to Google's JMOL Motion: Is Google's Copying of rangeCheck De Minimis Use? ~pj
Saturday, August 04 2012 @ 02:47 PM EDT

Let's take a break from Apple v. Samsung, and look back in on the Oracle v. Google litigation, shall we? It's still going on, in a desultory fashion.

Oracle has now filed its Opposition [PDF] to Google's motion for a Rule 50(b) judgment as a matter of law or, in the alternative, for a new trial. This is all about rangeCheck, those 9 lines of code, and the test files. Is rangeCheck, as Google argues, de minimis as a matter of law? Oracle argues not, and in fact, up to now, Oracle's arguments prevailed. But Google raised the issue again in its motion. Oracle's Introduction sums up its position:

The Court should deny Google’s motion for judgment as a matter of law (“JMOL”), or, in the alternative, for a new trial. As Google states at the outset, Google filed its motion solely for the purpose of preserving its rights on appeal. Mot. at 1. Google’s motion fails to identify factual or legal grounds that would be sufficient to grant judgment to Google or to reverse the Court’s granting of Oracle’s motion for JMOL of copyright infringement for Google’s copying of the decompiled files. Nor has Google shown that it is entitled to a new trial with respect to its copying of the rangeCheck method.

Google’s theory with respect to “works as a whole” is legally incorrect and would swallow copyright protection for any content—regardless of its originality or independent significance—that happened to be packaged with a large amount of other work. That is particularly true here, where Google would argue that copying of even very large amounts of code is insignificant compared with a 15-million-line total.

Not only did Oracle present sufficient evidence for a reasonable jury to conclude that Google literally copied significant material from Arrays.java and eight decompiled files, but the clear weight of the evidence is on Oracle’s side. The parties have briefed these issues extensively, and Google’s brief adds nothing new. To the extent that Google’s motion incorporates Google’s previous briefs on these issues by reference, Oracle also incorporates its previous briefs. See ECF Nos. 956, 986, 1013, and 1093, incorporated by reference herein.

How do you measure de minimis use relative to software code? I'll show you.

Jump To Comments

First, here's the filing and docket text:

07/31/2012 - 1227 - RESPONSE (re 1222 MOTION for Judgment as a Matter of Law on Portions of Count VIII of Oracle's Amended Complaint, or, in the Alternative, for a New Trial ) filed by Oracle America, Inc.. (Jacobs, Michael) (Filed on 7/31/2012) (Entered: 07/31/2012)

What Does De Minimis Mean?

Here's an article that sums it up well, published in IFOSS Law Review Vol.2 Issue 1, "Copyright in Open Source Software – Understanding the Boundaries," by Groklaw's own Mark Webbink, along with two of his law students, Omar Johnny and Marc Miller:

Copying De Minimis Lines of Code

De minimis non curat lex. Roughly translated to English, this legal maxim means the law does not concern itself with trifles. Applied to copyright law, this maxim means that copying which has occurred to such a trivial extent does not constitute an actionable claim of infringement. In other words, a developer who uses a small amount of code, without permission from the upstream owner, does not infringe the copyright protecting the upstream program. For example, one court held that copying thirty characters from approximately fifty pages of source code was de minimis, and not an infringement.138

However, a developer should be aware that courts do not approach the de minimis inquiry in a vacuum; but rather, will consider the context in which the copying took place. As the great Judge Learned Hand said, "no plagiarist can excuse the wrong by showing how much of his work he did not pirate."139 The court will measure the quantity of the portion used, but it will also measure the quality of portion used. The analysis will occur at the module level and even if only a small amount of code has been used, a court is likely to find it an infringing use if the portion used constitutes the heart of the original work. This last point should ring familiar. The de minimis inquiry is part and pacel of the third prong of the fair use analysis – the amount and substantiality of the portion used in relation to the copyrighted work as a whole.

________________
138 Vault Corp. v. Quaid Software Ltd., 847 F.2d 255 (5th Cir. 1988).
139 Sheldon v. Metro–Goldwyn Pictures Corporation, 81 F.2d 49 (2d Cir. 1936).

So how much did you use and how important was it, the code that you copied? Was it the heart of the work? Here's Vault and here's Sheldon.

Oracle seems to rely on cases about music and literature. But the rules for music and literature and for software are not the same at all. Are there really no software cases on what constitutes de minimis use? I remembered that IBM used de minimis as a defense against SCO, so I went to look and refresh my memory. And here's what I found.

In IBM's Reply Memorandum in Further Support of its Motion for Summary Judgment on its Claim for Declaratory Judgment of Non-Infringement with respect to its Linux Activities (IBM's Tenth Counterclaim) [PDF], one of the summary judgment motions heard by the judge in that case, the first one, Judge Kimball, (transcript is here for reference), we find some discussion on what doesn't qualify for copyrightability:

To be protected by copyright law, a work must be the original, creative expression of an idea, rather than an arbitrary decision. Feist Publ'ns. Inc. v. Rural Tel. Serv. Co. Inc., 499 U.S. 340, 345 (1991). Thus, as an additional ground for summary judgment, IBM showed in its opening brief that the System V Code alleged to have been infringed in Linux lacks even de minimis originality....

The Supreme Court pronounced the test for "originality" in copyright law fifteen years ago in Feist Publications, Inc. v. Rural Telephone Service Co., Inc., 499 U.S. 340 (1991). Feist involved the copying of listings from a telephone directory. Id. at 342-44. The issue before the Court was whether the copyright holder's arrangement of facts was sufficiently original to warrant copyright protection. Id. at 362. The Court held that it was not:

Rural's white pages are entirely typical. Persons desiring telephone service in Rural's service area fill out an application and Rural issues them a telephone number. In preparing its white pages, Rural simply takes the data provided by its subscribers and lists it alphabetically by surname....

Rural's selection of listings could not be more obvious: It publishes the most basic information-name, town, and telephone number-about each person who applies to it for telephone service. This is "selection" of a sort, but it lacks the modicum of creativity necessary to transform mere selection into copyrightable expression. Rural expended sufficient effort to make the white pages directory useful, but insufficient creativity to make it original. Id. at 362-63.

In so holding, the Court noted that although the originality "does not require that facts be presented in an innovative or surprising way", "the Constitution mandates some minimal degree of creativity". Id. at 362.

Applying Feist, the Tenth Circuit has held that the "arbitrary selection of a combination of three or four numbers" to create "command codes" was insufficiently "original" to qualify for copyright protection. See Mitel, Inc. v. Iqtel, Inc., 124 F.3d l366, 1373-74 (10th Cir. 1997). Likewise, the Court held that "purely sequential elements of the codes" that were "matched with increasing incremental 'values'", were "analogous to arranging telephone entries in alphabetical order" and therefore insufficiently original. See id. at 1374.

Here's Feist. And here's Mitel, by the way, if you'd like to read them. But are you noticing that there is a difference between what is not copyrightable and what is not infringing copyright due to de minimis use? There is a bit more detail in IBM's Redacted Memorandum in Support of its Motion for Summary Judgment on its Claim for Declaratory Judgment of Non-Infringement [PDF] that clarifies it more:
275. The System V Code lacks even de minimis originality. The System V Code is without creativity. ( Ex. 214 ¶¶55, 88; Ex. 213 ¶¶39-43, 68-69.)

276. With one exception, the System V Code is composed of header files (See Ex. 215 (Ex. H.)), which consist of three mechanisms: #define statements, function prototypes and structure declarations. (Ex. 213 ¶¶27-28.)

277. The function prototypes do not provide any information about how the function is implemented, and implementations are likely to differ on different systems. (Ex. 213 ¶¶33, 43.) SCO claims function prototypes whose names and parameters are determined by the procedures or processes that they invoke. (See id. ¶¶40, 43.)

278. The header files at issue contain #define statements that routinely pair a set of mnemonic names with sequentially incremental values. (See Ex. 213 ¶¶39-40.) The #define statements specify significant values, conventions, shorthands, abbreviations and the like, which will be utilized in other processes. (See id. ¶¶ 28, 40.) The names cited in the SUS Material are shorthands or abbreviations for values or conditions that an operating system or a program might have to process. (Id. ¶39.) The name has only mnemonic significance for programmers. (Id.) Each occurrence of the name anywhere in a source program is replaced by the numeric value during compilation. Virtually all of the numeric values in the header files cited by SCO are sequences of consecutive integers, often beginning at 0 or 1, or they are sequential bit patterns (i. e., consecutive powers of two) that permit combinations of information to be completely encoded. (Id. ¶40).

279. Few of the structure declaration files contain more than a dozen members and the majority of them have fewer than six. (Ex. 213 ¶42.) The names of the structures and their members are shorthand and the comments elaborate them. Particular expressions are common in the kinds of structures at issue. (Id.) It is very common for such structures to include elements like message types, message lengths and message contents. (Id.)

280. The header files that are not in the Linux kernel are no more expressive than those in the kernel. (Ex. 213 ¶¶ 39-43, 76-77; Ex. 214 ¶59.) The ELF files (including those not in the Linux kernel) represent one of only a handful of possible implementations of a few rudimentary functions (Item 272). (Ex.2l3 ¶77.)

That gives us some specifics. Header files are functional. Where is the creativity? That's what IBM is arguing, and someday, sometime, we may actually get a ruling on all those undecided motions in that undecided case. After watching the aim-for-the-eyeballs warfare in Apple v. Samsung, it seems almost quaint and rather courtly, doesn't it, IBM's very polite words? Rather refreshing, actually.

We saw where the judge in Oracle v. Google ruled that Oracle's claim of copyright in the structure, selection and organization of 37 Java APIs failed, because the materials used by Google were so functional, they didn't qualify for copyright. In that case, de minimis wasn't even in the picture either, because it's a defense against copyright infringement. And if there is no copyright, there can be no infringement. The de minimis use defense has to do with code that has at least some claim to copyright. So if the code qualifies for copyrightability, next they measure the amount of code copied but also the significance of the code. Quality and quantity. Is it fair use because it's both qualitatively and quantitatively insignificant?

Is rangeCheck Qualitatively Significant?

Google presented arguments to the court on the triviality of rangeCheck in its motion for summary judgment on copyright damages during the trial:

To begin with, as the Court noted after the jury rendered its verdict, rangeCheck makes up a tiny fraction of the Android platform in a quantitative sense. It is nine lines of source code out of a platform that contains more than 15 million lines, RT 2179:19-23 (Astrachan), amounting to .00006% of Android. That does not qualify even as de minimis.

But rangeCheck is indisputably insignificant as a qualitative matter too. The testimony at trial, from both sides of the aisle, has been unequivocal that rangeCheck is a “very short simple method” that checks three parameters of an array: the starting point, the end point, and that the end point is greater than the starting point. RT 813:7-8, 815:5-9 (Bloch). Josh Bloch, who wrote rangeCheck, testified that “[a]ny competent high school programmer could write” that method. RT 815:13-16 (Bloch). Even Oracle’s expert Dr. Mitchell conceded that “a good high school programmer” could write rangeCheck with guidance. RT 1316:24-25 (Mitchell).

In addition to being trivial to create and easily replicable by a beginner, rangeCheck offers no performance benefit to Android. The rangeCheck method is nine lines out of a file called TimSort. Bloch testified that TimSort is useful to Android because it makes arrays sorts much faster. RT 812:19-813:3 (Bloch). But Bloch also made clear that not one bit of that performance improvement is due to rangeCheck, as opposed to the other 900-plus lines of code in TimSort. RT 814:1-4. In fact, rangeCheck is a “private method” that is “not part of the API.” Its declaration cannot be called from outside of the TimSort class, only from within that class, so it cannot have an effect on any other file in Android. RT 813:12-25 (Bloch). Oracle did not cross-examine Bloch on these points, much less offer evidence to contradict him.

Moreover, rangeCheck was not even in Android when Google announced the platform in November 2007 and made its code available to handset partners for inclusion on phones. Neither was rangeCheck in Android when the first Android phones were released in October 2008. Bloch did not even join the Android team until December 2008 or January 2009. RT 733:8-11 (Bloch). He finished TimSort at some point in early 2009, at which point he contributed that file both to Sun’s OpenJDK project and to Android. RT 822:4-9 (Bloch). Further, rangeCheck has been out of the current release of Android for about a year. RT 825:8-19 (Bloch); RT 1700:25-1701:10 (Rubin). The proven facts that both the platform’s initial adoption by handset makers and carriers and its recent growth happened in the absence of rangeCheck are additional reasons why no reasonable jury could link any of Android’s profits to the temporary inclusion of those nine lines in Android.

Oracle’s lone piece of contrary evidence is that the rangeCheck method is allegedly called 2,600 times when powering on a smartphone or starting an emulator. Oracle Br. [Dkt. 1106] at 3:13-17 (citing RT 1329:5-21 (Mitchell)). This is vacuous. It is meaningless to cite an arbitrary number of calls to a given method in the absence of context, and neither Dr. Mitchell nor any other witness testified whether rangeCheck was called any more or less than any other method in the Android software, during the startup sequence or any other time. In the world of sophisticated and ultrafast computer microprocessors, 2,600 calls to a function during the startup sequence of a smartphone could be a low number relative to other functions. There is nothing in the record to enable the Court or a jury to tell either way. Equally, just because a software function is called frequently does not mean it is important; it would stand to reason that a trivial nine-line piece of code that accomplishes a Programming 101 parameter test, like rangeCheck does, might be invoked fairly frequently. Dr. Mitchell never opined that there is any correlation between the number of calls to a function and its significance, much less that rangeCheck itself is significant. He certainly did not say that rangeCheck offered a performance boost to Android—and Bloch, who wrote it, made clear it does not.

Note the phrase "with guidance" regarding what Oracle's expert, Dr. Mitchell, testified about the code? "Even Oracle’s expert Dr. Mitchell conceded that “a good high school programmer” could write rangeCheck with guidance. RT 1316:24-25 (Mitchell)." Look how Oracle misrepresents what Google wrote:
Google’s attempt to trivialize the rangeCheck method relies on a partial quote from Professor Mitchell’s testimony to alter its meaning. ECF No. 984 at 5 (“Dr. Mitchell conceded that ‘a good high school programmer’ could write rangeCheck.”). But Professor Mitchell actually testified that “a good high school programmer or graduate student, if told exactly what was needed, could write the code.” RT 1316:24-25 (Mitchell) (emphasis added).
You have eyes of your own.

Qualitatively significant would be like the case Oracle keeps citing, Harper & Row, Publishers, Inc. v. Nation Enters., where one small bit of an excerpt from President Ford's memoirs was considered so significant you couldn't call it fair use even though it was only 300 words, because it was the one part everyone wanted to read the most, about his pardon of President Richard Nixon. It totally undercut the value of the work that was about to be published. (Footnote 9 of the ruling shows you the heart of what was written, and I confess it's fascinating, although disturbing that President Ford thought soon-to-be ex-President Nixon "out of touch with reality".)

The same thing is possible with code if it is sufficiently important, the heart of the code. But surely there is no universe, alternative or our own, where those 9 lines of rangeCheck code would be comparable in significance to the first words in the presidential memoir about a highly controversial political matter. It was so central, in fact, that the magazine that had contracted to publish an excerpt from the soon-to-be published memoir backed out, refusing to pay the magazine further, after it was published by another magazine. That was the issue there.

Here's why Oracle argues that rangeCheck is qualitatively significant:

The evidence established the qualitative significance of the copied rangeCheck method. rangeCheck is included in one of the 37 API packages at issue. RT 1254:19-1255:2 (Mitchell). The rangeCheck method operates on Android mobile devices, and the rangeCheck “code appears in the source code archive of Samsung,” indicating that it “very likely appears on the Samsung phones.” RT 1255:22-25, 1264:19-23 (Mitchell). Professor Mitchell testified that the rangeCheck method is qualitatively significant and “useful” to Android as part of the API libraries. RT 1316:17-19 (Mitchell). He testified that he analyzed the significance of rangeCheck to other code in the same class file and found “a number of other source code [sic] in other files” that called upon it. RT 1329:9-14 (Mitchell).
So that's the argument: it's in one API, it works on Android mobiles, it's in Samsung's source code archive so it "very likely" is in their phones. "Very likely" isn't evidence, of course. Oh, and Oracle's "expert" said it's "useful" to Android as "part of the API libraries".

The fact that a function is called a lot could just mean it was badly coded, not qualitatively significant, Google pointed out in its Reply in support of its motion for summary judgment back in September of 2011:

The fact that a function is called repeatedly may have nothing to do with any qualitative significance, and everything to do with inefficient programming. Id. ¶ 57. And, in fact, that is the case here—due to limitations in the Java programming language, the author of Arrays.java was forced to call upon the rangeCheck code multiple times. Id. ¶ 58. “Thus the metric of number of calls is not a measure of the importance of rangeCheck, but rather of the inadequacies imposed by the Java language.” Id.
What About Quantitative Significance?:

The biggest dispute between the parties is how you should measure rangeCheck in relation to the work as a whole. What is the work as a whole here? You do look at how much was used. But how much compared to what? Do you look at the 9 lines of code at issue, as Google suggests, as being a small part of the whole of entire J2SE platform? That is what Oracle registered with the US Copyright Office, after all. Or instead, as Oracle argues, as numbers of lines as compared to lines just in Arrays.java.

Google, in its JMOL motion, measured it both ways, and it argued they were still quantitatively insignificant:

Even if the Arrays.java file in J2SE (the file in which the rangeCheck function is found, and the only file which calls the rangeCheck function) is the "work as a whole" — and it is not — Google's use of the rangeCheck function still is de minimis as a matter of law. The nine lines of code that comprise the rangeCheck function are quantitatively insignificant when compared to the 3,179 lines in Arrays.java, and Oracle failed to present evidence sufficient to support a finding that the rangeCheck function is qualitatively significant.
Oracle's argument here goes like this:
To evaluate the significance of the rangeCheck method to Android, Professor Mitchell experimented with an Android device and found that it called the rangeCheck method no less than 2,600 times during start up alone. RT 1329:9-21 (Mitchell). He characterized that as “a pretty big number for the number of calls to this function.” RT 1329:20-21 (Mitchell). Within Arrays.java, moreover, other methods call rangeCheck 18 times. TX 623.1. Google presented no evidence rebutting any of this testimony. Although Google argues in its motion that the number of times code is called is not necessarily significant (see Mot. at 4), Google cites no trial evidence and no legal authority to support that argument. Regardless of the proper frame of reference for the “work as a whole,” the jury could have reasonably found that rangeCheck was qualitatively and quantitatively significant.
I don't know if that's true, the part about no evidence or legal authority at trial. You may recall, or may wish to check, but if it's true, it certainly would matter, even though the jury didn't think much of Oracle's expert, Dr. Mitchell, I'd say, given its decisions, and we were appalled by some of his testimony here, but if there was no evidence to rebut, it normally would mean Oracle would win this point.

Oracle also says that Google relies only on one case for its de minimis argument:

Even if the Java platform were taken as the “work as a whole,” Google’s copying of rangeCheck would still be copyright infringement. “No plagiarist can excuse the wrong by showing how much of his work he did not pirate.” Shaw v. Lindheim, 919 F.2d 1353, 1362 (9th Cir. 1990) (quoting 4 Nimmer on Copyright § 13.03[B][1][a])); Sheldon v. MGM, 81 F.2d 49, 56 (2d Cir. 1936) (Hand, J.) (stating the same). Google relies solely on Newton v. Diamond to support its de minimis argument, but the facts of Newton are distinguishable. Mot. at 3-4.
However, that's simply not the case. I think Oracle temporarily forgot that Google's motion was based on a lot more than just that one motion. Here's what Google wrote in its motion for JMOL:
This motion is based on this Notice of Motion and Motion, the following Memorandum of Points and Authorities, documents incorporated by reference, the entire record in this action, any matters of which the Court may take judicial notice, and any evidence or argument that may be submitted to the Court in connection with the hearing on this motion or in the reply.
The entire record would mean everything, all the evidence that Google presented, from soup to nuts, including, for example, Google's earlier JMOL motions (Dkt. 984, 1007 [PDF], and 1043) and its copyright briefs (Dkt. 955 and 993), which also discusses the "work as a whole" argument. Everything else too, but Google specifically listed these, so Oracle certainly knows about them. The current JMOL motion is a renewal of those earlier motions and briefs, so everything in them is incorporated into this one, without having to retype it all in. All right. Oracle's lawyers know this. They probably didn't forget. Sometimes lawyers write selectively. How do I know they know this? Look at what Oracle wrote:
Not only did Oracle present sufficient evidence for a reasonable jury to conclude that Google literally copied significant material from Arrays.java and eight decompiled files, but the clear weight of the evidence is on Oracle’s side. The parties have briefed these issues extensively, and Google’s brief adds nothing new. To the extent that Google’s motion incorporates Google’s previous briefs on these issues by reference, Oracle also incorporates its previous briefs. See ECF Nos. 956, 986, 1013, and 1093, incorporated by reference herein.
So either they glossed over the other cases, or they didn't check.

Google, in its memorandum in support of its second motion for JMOL, docket #1043, mentioned several de minimis cases:

De minimis acts of copying are not actionable. Newton v. Diamond, 388 F.3d 1189, 1192-93 (9th Cir. 2004). Where the only similarity is as to “nonessential matters,” the copying is de minimis. See id. at 1195 (quoting 4 NIMMER ON COPYRIGHT § 13.03[A][2]). Where a defendant copies only “a portion of the plaintiff’s work exactly or nearly exactly . . . the dispositive question is whether the copying goes to trivial or substantial elements.” Id. That substantiality is judged by “considering the qualitative and quantitative significance of the copied portion in relation to the plaintiff’s work as a whole.” Id. (emphasis added); see also Computer Assoc. Int’l, Inc. v. Altai, Inc., 982 F.2d 693, 714-15 (2d Cir. 1992). Oracle bears the burden of proving the significance of any copied code. MiTek Holdings, Inc. v. ArcE Eng’g Co., 89 F.3d 1548, 1560 (11th Cir. 1996) (“The burden is on the copyright owner to demonstrate the significance of the copied features, and, in this case, MiTek has failed to meet that burden.”).
You can find Computer Associates here, and it mentions de minimis:
With respect to the few remaining parameter lists and macros, the district court could reasonably conclude that they did not warrant a finding of infringement given their relative contribution to the overall program. See Warner Bros., Inc. v. American Broadcasting Cos., Inc., 720 F.2d 231, 242 [222 USPQ 101] (2d Cir. 1983) (discussing de minimis exception which allows for literal copying of a small and usually insignificant portion of the plaintiff’s work); 3 Nimmer Section 13.03 [F] [5], at 13-74 .
And here's Mitek, and a fuller quote from it:
6. De Minimus Copying of the Copyrightable Elements of the ACES Program

 MiTek argues that the district court erred in concluding that the copying by ArcE of the protectable elements of the ACES programs was de minimis and therefore not actionable.   In its comparison analysis, after concluding that, of the five protectable elements of the ACES programs, four in TrussPro were substantially similar, the district court concluded:

A finding of a substantial similarity [of certain program elements] does not end the Court's inquiry, however.   To find infringement, the Court must also determine that the Arc[E] Program has appropriated substantial elements of the Aces Layout Programs.   The Court has reviewed the programs and concludes that these five elements are not significant in the context of the Aces Layout Programs as a whole....
864 F.Supp. at 1584.   Based on this finding, the court concluded that the copying was de minimis and not actionable.

MiTek cites a scholarly treatise on copyright law for the proposition that “even a quantitatively small amount of copied material may be sufficiently important to the operation of plaintiff's program to justify a finding of substantial similarity.”   3 Melville B. Nimmer & David Nimmer, Nimmer on Copyright § 13.03[F][5] at 13-146 (1996) (footnote omitted) (hereinafter “Nimmer”).   Certainly even a quantitatively small amount of copied material may justify a finding of substantial similarity, but, as Nimmer correctly observes, “[i]n some cases, the amount of material copied will be so small as to be de minimis, and will not justify a finding of substantial similarity.” Id. (footnote omitted).   We agree with the district court that the elements that were considered original and appropriated were not of such significance to the overall program to warrant an ultimate finding of substantial similarity and hence infringement.   The burden is on the copyright owner to demonstrate the significance of the copied features, and, in this case, MiTek has failed to meet that burden.

However, keep in mind that the judge agreed more with Oracle than with Google on this matter of what is the "work as a whole" and, over Google's objection, instructed the jury that it was "the compilable code for the individual file." Google says that was legal error, citing Express, LLC v. Fetish Group, Inc., 424 F. Supp. 2d 1211, 1218 (C.D. Cal. 2006) ("[I]t is the registration that sets the scope for the copyright protection."). Oracle registered J2SE as a platform, not the individual files. Google also cited NXIVM Corp. v. The Ross Institute, 364 F.3d 471, 475 (2d Cir. 2004) (a fair use case, rejecting NXIVM's attempt to subdivide a single registered copyright into multiple works) and 17 USC § 411, which is the part of copyright law that tells you that you have to register your copyright before you can sue, with, as usual with the law, a couple of exceptions.

But it's unlikely this judge will change his mind now about any of that. He's more likely to deny, just as he did with Oracle's similar motion, and let the appeals court sort it out. The appeals court might see it Google's way, but we're not there yet.

On the other hand, if there is one thing we learned about this judge, the Hon. William Alsup, it's that he is nothing if not willing to surprise.

Here it is, Oracle's Opposition, as text:

****************

ORACLE’S OPPOSITION TO
GOOGLE’S MOTION FOR RULE
50(b) JUDGMENT AS A MATTER
OF LAW OR FOR A NEW TRIAL

Date: August 23, 2012
Time: 8:00 a.m.
Dept.: Courtroom 8, 19th Floor
Judge: Honorable William H. Alsup

I. INTRODUCTION

The Court should deny Google’s motion for judgment as a matter of law (“JMOL”), or, in the alternative, for a new trial. As Google states at the outset, Google filed its motion solely for the purpose of preserving its rights on appeal. Mot. at 1. Google’s motion fails to identify factual or legal grounds that would be sufficient to grant judgment to Google or to reverse the Court’s granting of Oracle’s motion for JMOL of copyright infringement for Google’s copying of the decompiled files. Nor has Google shown that it is entitled to a new trial with respect to its copying of the rangeCheck method.

Google’s theory with respect to “works as a whole” is legally incorrect and would swallow copyright protection for any content—regardless of its originality or independent significance—that happened to be packaged with a large amount of other work. That is particularly true here, where Google would argue that copying of even very large amounts of code is insignificant compared with a 15-million-line total.

Not only did Oracle present sufficient evidence for a reasonable jury to conclude that Google literally copied significant material from Arrays.java and eight decompiled files, but the clear weight of the evidence is on Oracle’s side. The parties have briefed these issues extensively, and Google’s brief adds nothing new. To the extent that Google’s motion incorporates Google’s previous briefs on these issues by reference, Oracle also incorporates its previous briefs. See ECF Nos. 956, 986, 1013, and 1093, incorporated by reference herein.

II. THE COURT PROPERLY INSTRUCTED THE JURY TO COMPARE
INDIVIDUAL FILES WHEN EVALUATING GOOGLE’S LITERAL
COPYING

Each of the files from which Google copied—in part or in their entirety—is a complete work for purposes of Google’s de minimis defense. Google argues that the entire Java platform is necessarily the “work as a whole” because that is what Oracle registered with the Copyright Office. Courts have soundly rejected that argument. The Ninth Circuit has held: “A creative work does not deserve less copyright protection just because it is part of a composite work.” Hustler Mag., Inc. v. Moral Majority, Inc., 796 F.2d 1148, 1155 (9th Cir. 1986) (finding that a

single page in a 154-page magazine can constitute an entire work). As explained in Los Angeles Times v. Free Republic:
Defendants contend that plaintiffs’ “work” is the entire daily newspaper because their copyright registration covers the paper as a whole rather than any particular article. Thus, they assert, copying an individual article constitutes reproduction of only a small portion of the entire work. This proposition is not supported by the case law. See Texaco, supra, 60 F.3d at 925-26 (copying an entire article from a journal where the copyright registration covered the journal as a whole constituted a copying of the entire work); Hustler Magazine, supra, 796 F.2d at 1155 (finding that “[a] creative work does not deserve less copyright protection just because it is part of a composite work” and holding that the copying of a one-page parody from a 154-page magazine constituted a copying of the entire work); Netcom On-Line II, supra, 923 F.Supp. at 1247 (“although many of Hubbard's lectures, policy statements, and course packets are collected into larger volumes, and registered as a whole, they may still constitute separate works for the purposes of this factor”); Lerma, supra, 1996 WL 633131 at *9 (“we find that the Works at issue in this case are combined in ‘collections’ and that each subpart must be considered a ‘single work’ for the purposes of fair use analysis”).
L.A. Times v. Free Republic, No. CV 98-7840-MMM(AJWx), 1999 WL 33644483, at *19 (C.D. Cal. Nov. 8, 1999); see also 37 C.F.R. 202.3(b)(4)(i)(A); Am. Geophysical Union v. Texaco Inc., 802 F. Supp. 1, 17 (S.D.N.Y. 1992) (holding that each article within a journal was protected by a copyright even though the publisher chose to register only each issue of the journal with the Copyright Office); Religious Tech. Ctr. v. Lerma, No. 95-1107-A, 1996 U.S. Dist. LEXIS 15454, at *27 (E.D. Va. Oct. 4, 1996) (“Although Lerma did not post the entirety of [the materials registered with the Copyright Office], he did post the entirety of certain discrete subparts of these series. Under the Code of Federal Regulations and under case law, these subparts constitute single works and are the benchmark against which to compare Lerma’s actions.”). Moreover, copyright regulations permit the registration of multiple works on a single application. “For the purpose of registration on a single application and upon payment of a single registration fee, the following shall be considered a single work: (A) In the case of published works: all copyrightable elements that are otherwise recognizable as self-contained works, that are included in a single unit of publication, and in which the copyright claimant is the same . . . .” 37 C.F.R. § 202.3(b)(4)(i)(A). Thus when Google argues that “[t]here is no proper legal or evidentiary basis” on which Oracle’s copyright registrations “can be subdivided, file-by-file,”

2

Google is simply wrong. Mot. at 2. Each source code file in the Java platform is an original, copyrightable work that is recognizable as a self-contained work. There was no requirement for Oracle or Sun to register each file separately. To hold otherwise would either create huge administrative burdens on the Copyright Office or permit copyists and plagiarists to steal files from large software projects with impunity, so long as they confined their theft to a small number of files. That makes no sense. Thus the Court correctly instructed the jury that “[f]or purposes of Question No. 3, the ‘work as a whole’ is the compilable code for the individual file . . . .” ECF No. 1018 at 14-15.

III. A REASONABLE JURY COULD FIND THAT GOOGLE’S COPYING OF
RANGECHECK WAS NOT DE MINIMIS

Copying is de minimis only “if it is so meager and fragmentary that compared to the work as a whole the average audience would not recognize the appropriation.” ECF No. 1018, JI 28; Fisher v. Dees, 794 F.2d 432, 434 n.2 (9th Cir. 1986). Here, Google’s appropriation of the rangeCheck code is immediately recognizable. Dr. Mitchell testified that the Java and Android versions of rangeCheck were “strikingly similar” and added:

They’re really identical up to details that don’t really matter as far as causing the method to work properly. One of the things that I just found really unusual and unexpected is the spacing around the plus signs, which seems kinds of arbitrary. You could type the spaces as you like and there are some places where the spaces are -- where there’s spacing around the plus and some not. It just seems unlikely that anybody would do that twice by accident. Really looks like -- I don’t know how this could happen except by copying the code.
RT 1255:5-15 (Mitchell).

Courts find a use de minimis only if it is both quantitatively and qualitatively insignificant. “Substantiality is measured by considering the qualitative and quantitative significance of the copied portion in relation to the plaintiff’s work as a whole.” Newton v. Diamond, 388 F.3d 1189, 1195 (9th Cir. 2004); see also Merch. Transaction Sys., Inc. v. Nelcela, Inc., No. CV 02- 1954-PHX-MHM, 2009 U.S. Dist. LEXIS 25663, at *61 (D. Ariz. Mar. 17, 2009) (“Thus, Nelcela will not escape liability unless it can show that the protectable elements in the Lexcel software constitute an insignificant (quantitatively and qualitatively) portion or aspect of the Lexcel software.”).

3

Courts have found that a quantitatively small taking can still support a finding of infringement. In Baxter, the Ninth Circuit upheld denial of summary judgment for the defendant even assuming the similarity between the two musical works could be reduced to a six-note sequence, citing a long line of cases finding substantial similarity even where the copied portion was a very small fraction of the work as a whole. Baxter v. MCA, Inc., 812 F.2d 421, 425 (9th Cir. 1987); Fred Fisher, Inc. v. Dillingham, 298 F. 145, 148 (S.D.N.Y. 1924) (Hand, J.) (eight note “ostinato” held to infringe copyright in song); see also Harper & Row, Publishers, Inc. v. Nation Enters., 471 U.S. 539, 565-66, 579 (1985) (holding in fair use context that copying of 300 words from 200,000 word manuscript of presidential memoir was substantial).

Here, Oracle presented evidence that Google literally copied a quantitatively and qualitatively significant portion of Arrays.java. That evidence was more than sufficient for a reasonable juror to conclude that the copied code was not “so meager and fragmentary” as to be unrecognizable as an appropriation.

The evidence established the qualitative significance of the copied rangeCheck method. rangeCheck is included in one of the 37 API packages at issue. RT 1254:19-1255:2 (Mitchell). The rangeCheck method operates on Android mobile devices, and the rangeCheck “code appears in the source code archive of Samsung,” indicating that it “very likely appears on the Samsung phones.” RT 1255:22-25, 1264:19-23 (Mitchell). Professor Mitchell testified that the rangeCheck method is qualitatively significant and “useful” to Android as part of the API libraries. RT 1316:17-19 (Mitchell). He testified that he analyzed the significance of rangeCheck to other code in the same class file and found “a number of other source code [sic] in other files” that called upon it. RT 1329:9-14 (Mitchell).

Google’s attempt to trivialize the rangeCheck method relies on a partial quote from Professor Mitchell’s testimony to alter its meaning. ECF No. 984 at 5 (“Dr. Mitchell conceded that ‘a good high school programmer’ could write rangeCheck.”). But Professor Mitchell actually testified that “a good high school programmer or graduate student, if told exactly what was needed, could write the code.” RT 1316:24-25 (Mitchell) (emphasis added). In fact, the rangeCheck “code has some subtlety” and “the interesting part is figuring out exactly what you

4

wanted the function to do, more than realizing that function in Java code once that’s understood.” RT 1317:1-5 (Mitchell). rangeCheck’s importance to the Android TimSort code was underscored by Dr. Bloch’s testimony that “it was probably the first thing I put in there”:
Q. Okay. Do you recall specifically when you added the -- what point in the process you added the rangeCheck function to the Timsort file?

A. I would assume as soon as I started writing it, you know, basically when I was going to write Timsort because I knew that it was headed for inclusion in arrays.java. You know, it was part of the scaffolding, so I think it was probably the first thing I put in there.

RT 821:21-822:3 (Bloch).

To evaluate the significance of the rangeCheck method to Android, Professor Mitchell experimented with an Android device and found that it called the rangeCheck method no less than 2,600 times during start up alone. RT 1329:9-21 (Mitchell). He characterized that as “a pretty big number for the number of calls to this function.” RT 1329:20-21 (Mitchell). Within Arrays.java, moreover, other methods call rangeCheck 18 times. TX 623.1. Google presented no evidence rebutting any of this testimony. Although Google argues in its motion that the number of times code is called is not necessarily significant (see Mot. at 4), Google cites no trial evidence and no legal authority to support that argument. Regardless of the proper frame of reference for the “work as a whole,” the jury could have reasonably found that rangeCheck was qualitatively and quantitatively significant.

Google’s argument that rangeCheck must be insignificant since Google removed it from Android (Mot. at 4) is factually incorrect. Even after Oracle sued, Google did not remove rangeCheck from preexisting versions of Android and continued distributing rangeCheck during trial. See RT 1832:3-10 (Bornstein). A reasonable jury could disregard Google’s protestations that its deliberate copying was not significant.

Even if the Java platform were taken as the “work as a whole,” Google’s copying of rangeCheck would still be copyright infringement. “No plagiarist can excuse the wrong by showing how much of his work he did not pirate.” Shaw v. Lindheim, 919 F.2d 1353, 1362 (9th Cir. 1990) (quoting 4 Nimmer on Copyright § 13.03[B][1][a])); Sheldon v. MGM, 81 F.2d 49, 56 (2d Cir. 1936) (Hand, J.) (stating the same). Google relies solely on Newton v. Diamond to

5

support its de minimis argument, but the facts of Newton are distinguishable. Mot. at 3-4. Newton was a music sampling case, in which the defendant, who had copied a three-note sequence from a recording, had a license to the recording of the performance but not the composition. Thus the question in that case was whether the average audience—presumably untrained music listeners—could discern the plaintiff’s “hand as a composer, apart from his talent as a performer, from [the defendants’] use of the sample.” Newton, 388 F.3d at 1196. In this case, the “average audience” for the source code is (in Google’s words) people who “can read and understand code. It would include programmers and app developers.” RT 2688:12-14 (Van Nest). Such programmers and developers would still recognize Google’s copying of rangeCheck even if the “work as a whole” were the entire source code base for the J2SE platform. Uncontradicted testimony established that Oracle’s rangeCheck method had “unusual,” “unexpected,” and “arbitrary” characteristics, and that Google’s appropriation of the code was “striking.” RT 1255:5-15 (Mitchell). Thus there was sufficient evidence at trial to support the jury’s verdict of copyright infringement.

IV. GOOGLE COMITTED COPYRIGHT INFRINGEMENT BY COPYING
EIGHT FILES THROUGH DECOMPILATION

On May 11, 2012, the Court granted judgment of copyright infringement as a matter of law for Google’s copying of eight entire Oracle Java files through decompilation:

The evidence at trial showed that Google decompiled eight Java files and copied them each in their entirety. No reasonable jury could find that the copying of entire computer files was de minimis. The trial record contains the source code for the Java code files (TX 623.2–623.8), decompiled versions of Java code files (TX 896.1–896.8), and corresponding Android code files (TX 1031–40). Professor John Mitchell testified about the decompilation process, how he determined that the eight files were decompiled and how, in a side-by-side comparison he found “that the actual code matches completely” (Tr. at 1259–1260).
Order Granting Motion for Judgment as a Matter of Law on Decompiled Files, ECF No. 1123 at 1.

In two sentences tacked on almost as an afterthought in its brief, Google asks the Court to reverse its decision and grant judgment in Google’s favor, or to grant a new trial. Google does not advance any facts or argument to support its request, except to refer to its previous briefing on

6

the subject. Mot. at 5. The Court has already considered those arguments and rejected them. The Court should reject Google’s renewed motion as well.

V. GOOGLE IS NOT ENTITLED TO A NEW TRIAL

Although a new trial may be appropriate if “the verdict is against the weight of the evidence,” Molski v. M.J. Cable, Inc., 481 F.3d 724, 729 (9th Cir. 2007), Google makes no new arguments supporting a new trial but simply argues that it is entitled to a new trial “[f]or all the reasons Google is entitled to JMOL . . . related to the rangeCheck function.” Mot. at 5. Google has not shown any legal errors regarding rangeCheck, nor has Google shown that the jury’s verdict was against the weight of the evidence. Because Google is not entitled to JMOL for the reasons discussed above, Google is not entitled to a new trial.

VI. CONCLUSION

For the foregoing reasons, the Court should deny Google’s motion for judgment as a matter of law, or, in the alternative, a new trial.

Dated: July 31, 2012

MORRISON & FOERSTER LLP

By: /s/ Michael A. Jacobs
Michael A. Jacobs

Attorneys for Plaintiff
ORACLE AMERICA, INC.


7


  


Oracle Replies to Google's JMOL Motion: Is Google's Copying of rangeCheck De Minimis Use? ~pj | 189 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Work as a whole
Authored by: Anonymous on Saturday, August 04 2012 @ 03:03 PM EDT
I'm actually on Oracle's side here more than Oracle itself is: with regard to
copyrightability, I consider "work as a whole" the smallest containing
functional unit that makes independent sense, and that would likely be just the
rangeCheck function itself, or at the very most the module to which it
(apparently) is private.

So yes, I'd call that infringement. The quality of the function, and the amount
of "damages" or "profits" that Oracle wants to see riding on
it, however, is plainly ridiculous. And since it is so plainly ridiculous, I
would, were I the judge, not deny Google recovering their expenses from Oracle
only based on _that_ infringement, particularly when looking at the
circumstances under which it got into the code and out again that don't indicate
premeditation of Google proper, and at best carelessness by the programmer
responsible.

[ Reply to This | # ]

Google is muffing the performance argument
Authored by: pem on Saturday, August 04 2012 @ 03:19 PM EDT
Rangecheck actually decreases performance.

The entire purpose of rangecheck is to look out for programmer mistakes and throw an exception (typically aborting the program, unless a higher level function has coded an exception handler for that particular error) when certain classes of programmer errors occur.

If Android is calling rangecheck 2600 times on boot, that's probably completely wasted CPU cycles, because those errors that rangecheck might be able to catch probably don't exist in the code -- if they did, then rangecheck would have notified upper level code of the problem, the upper level code probably would have aborted program execution, the system would have given a traceback, and the programmer would have fixed it. All would then be copacetic, except rangecheck is still there, checking the exact same thing over and over, on every boot.

There are significant philosophical programming debates about whether library functions should protect themselves from the bad behavior of the programmers who write code that calls them. These pretty much boil down to efficiency vs. ease of debugging and checking correctness. The inclusion and use of rangecheck falls squarely in the "debugging and correctness are much more important than efficiency camp" so for Oracle to argue that the inclusion of rangecheck somehow makes Android run faster is beyond the pale, and for google to fail to point this out indicates that the lawyers and programmers aren't communicating effectively.

[ Reply to This | # ]

A few more losses
Authored by: kawabago on Saturday, August 04 2012 @ 03:25 PM EDT
A few more losses for Oracle and it will have to change it's
name to Didn't See It Coming!

[ Reply to This | # ]

Corrections here
Authored by: feldegast on Saturday, August 04 2012 @ 03:33 PM EDT
So they can be fixed

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

News picks
Authored by: feldegast on Saturday, August 04 2012 @ 03:34 PM EDT
Please make links clickable

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

Off topic
Authored by: feldegast on Saturday, August 04 2012 @ 03:35 PM EDT
Please make links clickable

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

Oracle Replies to Google's JMOL Motion: Is Google's Copying of rangeCheck De Minimis Use? ~pj
Authored by: Anonymous on Saturday, August 04 2012 @ 06:06 PM EDT
I am a newcomer to this issue - is there something
extremely clever about the copied code? If it saves
some cycles because it is more clever than just having 3 "if"
statements, then wouldn't its importance be measured by the
number of cycles saved, and some estimate of the value of
cycles?

[ Reply to This | # ]

Comes Goes Here
Authored by: artp on Saturday, August 04 2012 @ 06:42 PM EDT
For transcriptions of the documents on the Comes v. MS trial
(see link above).

Thank you!

---
Userfriendly on WGA server outage:
When you're chained to an oar you don't think you should go down when the galley
sinks ?

[ Reply to This | # ]

Triviality
Authored by: Anonymous on Saturday, August 04 2012 @ 07:31 PM EDT
The fact that a function is called a lot could just mean it was badly coded, not qualitatively significant,

The fact that rangeCheck is called a lot has nothing to do with whether or not it is trivial. The word "the" is used a lot in English, but it's still a trivial word. Its frequency of use doesn't mean that it forms a significant part of the actual conversation.

But Professor Mitchell actually testified that “a good high school programmer or graduate student, if told exactly what was needed, could write the code.” RT 1316:24-25 (Mitchell) (emphasis added). In fact, the rangeCheck “code has some subtlety”

Any student who could not figure out how to write a range check function could not reasonably expect to pass even an introductory programming course. Anyone who suggests that something as basic as a range check function requires any great skill is either unqualified to comment on the matter (i.e. doesn't even have introductory level programming skill), or is simply lying through his teeth.

This would be like saying that it takes incredible skill and knowledge for a trial lawyer to know how to say "good morning" to a judge and that Oracle's lawyers must have stolen their briefs from Google because such a thing is beyond their own abilities. In fact however, it's merely something that an lawyer in their line of business is expected to know how to do, and the fact that they all do it more or less the same way is "trivial".

[ Reply to This | # ]

  • Triviality - Authored by: Anonymous on Saturday, August 04 2012 @ 08:04 PM EDT
    • Triviality - Authored by: Wol on Sunday, August 05 2012 @ 08:38 AM EDT
      • Triviality - Authored by: Anonymous on Sunday, August 05 2012 @ 12:12 PM EDT
      • Functionality - Authored by: Anonymous on Sunday, August 05 2012 @ 06:55 PM EDT
Oracle Replies to Google's JMOL Motion: Is Google's Copying of rangeCheck De Minimis Use? ~pj
Authored by: Anonymous on Saturday, August 04 2012 @ 09:43 PM EDT
You have produced a long winded explanation of existing law, and Oracle/Google
have argued about this over many lines of text.

In practice this is 9 lines of code and the functionality is dictated by the
interface (API).

It would take me about 5 minutes to write this and probably 20 minutes to write
code that tests it works properly.

Is it rearly worth arguing about? There is no "IP" here.

[ Reply to This | # ]

De Minimis rendered meaningless
Authored by: Anonymous on Sunday, August 05 2012 @ 01:14 AM EDT
If rangeCheck does not fall below the bar of De Minimis then it's a near
certainty that no other function ever will. The reason is that if its operation
were any simpler then it wouldn't be appropriate to use a function at all.

Judge Alsup really needs to take a step back and stop getting entwined in the
web of technicalities that Oracle are weaving, because they're reducing De
Minimis to total impotency.

If after careful consideration he decides that the De Minimis concept might as
well be killed off in Computing, fine (although that would very likely get
overturned on appeal), but he shouldn't let Oracle filibuster him into dropping
the De Minimis bar so low that it's practically on the ground. This could have
severe ramifications for the future.

At the risk of mixing metaphors, he needs to draw a line in the sand.

[ Reply to This | # ]

Rangecheck - the heart of your program?
Authored by: Anonymous on Sunday, August 05 2012 @ 01:42 AM EDT
If rangecheck has anything to do with the heart of your program then I can't
imagine just how trivial your program must be.

[ Reply to This | # ]

ala carte copyright protection?
Authored by: Anonymous on Sunday, August 05 2012 @ 03:18 AM EDT
Assume for the moment that the author of the RangeCheck function that appears in
Android first appeared in other code that the author wrote, and that he re-used
that code (substantially unchanged) from that earlier work.

Would this disqualify the RangeCheck function from being considered copyrighted
within the Java library entirely?

Or would it merely disqualify it from being considered copyrightable except as a
portion of the larger work?

Consider as an analogy the opening phrase "It was a dark and stormy
night". In its original work, it might have been copyrighted or
copyrightable. But as part of a Bulwer-Lytton contest entry, it might only be
considered copyrightable as a portion of the entire work.

To what extent is copyright limited or expanded by context?

[ Reply to This | # ]

header files are functional. Where is the creativity?
Authored by: Anonymous on Sunday, August 05 2012 @ 03:34 AM EDT
Reads like propaganda: "header files are functional. Where is the
creativity?:

When you have to work with a bad header file, you will wish for some creativity
on the author's side.

It is easy to brush over the effort that goes into expressing the right
interface in the right way.

It takes intelligence, experience and creativity too to recognize quality and
acknowledge the potential for screw-ups,

So please rethink.

[ Reply to This | # ]

saying 'Happy Birthday' is not ©, but singing it in a certain and obvious way is
Authored by: Anonymous on Sunday, August 05 2012 @ 08:06 PM EDT
Based on the 1935 copyright registration, Warner claims that the United States copyright will not expire until 2030, and that unauthorized public performances of the song are technically illegal unless royalties are paid to it. - Wikipedia

So it might be that Oracle is not as crazy as you all think... right.

de minimis be damned

[ 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 )