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
No, an API can be creative | 234 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Cross-Posted from Ars Technica
Authored by: Anonymous on Wednesday, April 18 2012 @ 08:28 PM EDT
How about a non-trivial example?

Say, computer game. iD Software's Megatexture technology
woudl be a good example.

Problem statement:(simplified and quite possible plain
wrong):

"Need to have detailed environment textures at any LOD
without separation, and that would be fast to load from IO
storage"

Creative solution: single enormous texture that is loaded
and cached in chunks.
Creative solution API:
create_megatexture(size,...) # allocates a texture with
specified size etc
megatexture_preload(...) # preloads the megatexture from io
storage

...

-----


As you can see, the API clearly gives out the creative idea,
whether it includes implementation or not. In fact, to
conceal the creative part, the programmer would have to
inline all the creative solutions, unable to abstract from
them.

If anyone would be able to just get the (possibly
documented) list of functions of the megatexture technology,
and legally distribute an independently created
implementation based on those function specifications, there
wouldn't be any need to license the technology, would there?

Defining functions,classes or structures IS creating API.
You cannot program nontrivial projects without defining
functions.

[ Reply to This | Parent | # ]

No, an API can be creative
Authored by: Anonymous on Wednesday, April 18 2012 @ 08:31 PM EDT
See, I don't *have* to put average in the Math class. I can put it in the
Network class! See? Creativity!

</sarcasm>

One could assert that the "least creative", the better when it comes
to API design.

So you're designing an API for Java. It *has* to be object-based, because this
is Java. No choice there.

The math functions are going to go into the Math class. Creative? Not really,
no.

We're going to specify a reasonable set of math operations. Is that creative?
Well (not consulting the Java documentation here), a reasonable set would have
square root, log (perhaps log10, log2, and/or log to a given base),
exponentiation, sin, cosine, tangent, probably the inverse of all three,
ceiling, floor, absolute value, min, max, and round. Probably constants: e, pi,
maybe gamma, pi/2 and pi*2. That's about four minutes of thought. How close
did I come to Java's Math API?

So: In Java's case, no creativity in the decision to make libraries object
oriented. No creativity in putting the math functions in a math class (no pun
intended). Very little creativity in the choice of operations. (I mean, one
could look at the math operations defined by C's standard library, and find
probably 90% of what's in Java's math library. There's fair agreement on what a
normal set of operations are.)

MSS2

[ Reply to This | Parent | # ]

Cross-Posted from Ars Technica
Authored by: Anonymous on Thursday, April 19 2012 @ 12:28 AM EDT
I suppose there is very little creativity, but there is some. Your decision to
reduce
mathematics to math and average to avg is a little creative. Does it have to be

unique to be creative? How creative does it need to be to get copyright
protection?

[ Reply to This | Parent | # ]

Cross-Posted from Ars Technica
Authored by: Anonymous on Thursday, April 19 2012 @ 03:21 AM EDT
There, one API specification. Written in 2 minutes flat, using standard class nomenclature.
And in doing so (in 2 minutes) you've overlooked a mathematical average - the Modal Average which does not necessarily have to have numerical data: there is a modal average (and it is the only average available) for the data {red, yellow, green, red, pink, green, blue, blue, black, green, yellow} which was a survey of asking everyone in a class their favourite colour and shows that the average favourite colour of the class was "green".

Also, how do I specify with your API which one of the mathematical averages (Mean, Median or Mode) I will get back from your non-specific "average" function? Mathematically speaking, an unqualified average can be understood as any of Mean average, Median average or Mode average; it is only in "layman's" terms that an unqualified "average" is understood to mean the "Mean average" (and when there is a significant difference, especially between the Mean and Median averages, there is every good reason for a spin doctor not to tell you which average has been used - see (read a copy of) How to lie with statistics by Darrell Huff for more details1).

Perhaps writing an API isn't quite so 2 minutes easy.

1The second link contains a useful comment that is in the book about thinking carefully about "who-says-so" that not only applies to a statistic by can apply to anything, in which you need to consider if the conclusion is justified, and even if the information actually makes sense.

[ Reply to This | Parent | # ]

Cross-Posted from Ars Technica
Authored by: Anonymous on Thursday, April 19 2012 @ 04:22 AM EDT
Its creative if you call your average function "FU Bar"

Oh, never mind

[ Reply to This | Parent | # ]

  • Bad, Bad pun. - Authored by: Anonymous on Thursday, April 19 2012 @ 07:53 AM EDT
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 )