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
I think everyone is misinterperting his remark on set theory | 439 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Jacobs tells another howler
Authored by: Anonymous on Monday, May 14 2012 @ 02:07 PM EDT
I wrote these notes and honestly I don't know what he was talking about with set
theory at all. It didn't come up before or after that statement.

[ Reply to This | Parent | # ]

Best I can make out
Authored by: Anonymous on Monday, May 14 2012 @ 02:40 PM EDT
Set theory has nothing to do with the technology, and very
little to do with the arguments.

Best guess I have is he was talking about "runtime" and
"dynamic" being sets that overlap but aren't the same.

Basically I think he's winging it and throwing a few words
into play to try to make himself sound clever.

As I understand it, the judge is a mathematician, so may
have some thoughts on set theory...

[ Reply to This | Parent | # ]

Jacobs tells another howler
Authored by: Anonymous on Monday, May 14 2012 @ 03:00 PM EDT
As a professional programmer I think of static vs. dynamic like this:
A static resolution happens ONCE, either at runtime or linking time.
A dynamic resolution happens EVERY time the name is used. So the name can
resolve to a moving target.

Think of the DNS system of the internet. A static resolution would lookup the
IP of a name once and stick it in your hosts file. If the website moves you're
SOL. The dynamic natureof DNS allows for things to change over time and be
transparent to the user, whether it's an API or a browser.

[ Reply to This | Parent | # ]

Jacobs tells another howler
Authored by: Anonymous on Monday, May 14 2012 @ 03:05 PM EDT
I don't know what he's trying to say. Computer Science is
another branch of math that uses all the other math topics. In
computer Science and referring to programming, static is at
design time and dynamic is at run time.

[ Reply to This | Parent | # ]

Jacobs's knowledge of set theory
Authored by: hardmath on Monday, May 14 2012 @ 03:07 PM EDT
Distinguished opposing counsel's knowledge of set theory
probably extends as far as the classic Venn diagram.

I speculate that what he meant was, just because something
doesn't happen at run-time (Dalvik's dexopt does not)
doesn't mean it isn't dynamic (an essential element to prove
patent infringement).

As a matter of fact, that's exactly what it does mean.
Optimizations done once-and-only-once at installation (or in
the development framework) are not dynamic. They are (as
others pointed out) static (because they do not require any
information available at run-time).

It's more Jacobs's ignorance of software development than
his limited knowledge of set theory holding him back.


---
"Prolog is an efficient programming language because it is a very stupid theorem
prover." -- Richard O'Keefe

[ Reply to This | Parent | # ]

Possibly useful link covering static vs dymamic
Authored by: Anonymous on Monday, May 14 2012 @ 03:08 PM EDT
http://www.ldodds.com/lectures/intro2java/Lesson6.ppt

[ Reply to This | Parent | # ]

Jacobs tells another howler
Authored by: Anonymous on Monday, May 14 2012 @ 04:09 PM EDT
this is a very weasely argument that oracle is trying to make about set theory,

in essense a dynamic set allows addition and removal to the contents of the set

for instance you have the set of numbers
{1, 2, 3} in a dynamic set you can add or remove items from it.

a static set can never change.

thus oracle can say:
look here we have the set of
{1, 2, 3}
now we have the set {1, 2, 3, 4}
it's dynamic!

ignoring the fact that there is multiple static sets involved.

this is somewhat like saying....

"it has an engine, a license plate, turn signals, wheels and is a mode of
transportation, it's a car!"

ignoring the fact that it's a boat on a trailor and that the engine is in no way
connected to the wheels.

unfortunately this requires a bunch of technical nonsense (to the jury) to
refute.

in essence they are trying to make the 'dynamic' aspect cross application
boundries so that 'dynamic' applies to invocations of multiple programs. but it
still is not a dynamic set.

in a dynamic set you would expect the old set to be changed.
e.g. we have the set {1, 2, 3} remove 3 and add 4
we get: (temporarily if only for an instant)
{1, 2} then {1, 2, 4}, the set {1, 2, 3} is gone it no longer exists, it has
been updated.

while when using static sets for the same purpose:
we have the set {1, 2, 3} and create a new set {1, 2, 4}
no temporary set of {1, 2}, the set {1, 2, 3} may still exist somewhere
(probably on the file system).

[ Reply to This | Parent | # ]

Hopefully Google got an expert to testify to the jury on dynamic / runtime / static terminology
Authored by: Anonymous on Monday, May 14 2012 @ 04:17 PM EDT
Because it's pretty clear cut and difficult to dispute as far
as I can see.

[ Reply to This | Parent | # ]

dalvik-cache, static vs runtime
Authored by: SpaceLifeForm on Monday, May 14 2012 @ 04:29 PM EDT
When Android is booted, the stuff to make it
all work is under /system. In particular,
the stuff Oracle is complaining about is under
/system/apps. A bunch of .apk files, which contain
the java .class files. The .apk file is an Application Package (a zip file),
which contains the .class files and other stuff.

At some point, the Android system processes the .apk files,
which, happens before the user actually runs the application.

As part of that processing, the .class file is converted
to a .dex file.

That .dex file ends up in the /data/dalvik-cache directory.
That is what the dalvik VM processes.

Here is an example:

I just installed the Dolphin browser on one of my phones.

I put the file in /mnt/sdcard, as Dolphin_Browser_Mini_v2.2.apk, and then
installed it via

pm install Dolphin_Browser_Mini_v2.2.apk

The Android system opened up the .apk file, and
extracted the parts needed to be able to run it.

As part of that processing, a file ended up in
/data/dalvik-cache called

data@app@com.dolphin.browser-1.apk@classes.dex

That is what is needed by the dalvik VM in order
for me to run the app.

But, I HAVE NOT RUN IT YET!

In fact, I do not have to run it, I can uninstall it now.

The point is, anything that allegedly infringes on the '104
patent, has already occurred. It did NOT happen at runtime!
It was not dynamic at runtime.

And from now on, everytime I run that app, it will use
the .dex file already in /data/dalvik-cache.

Now, to be fair, I can manually remove[0] the .dex file,
and the next time I want to run the app, the Android
system will have to recreate it.

But, it is a two-step process, the first step is to
extract from the .apk file and create the .dex file,
and the second step would be to launch the dalvik VM
to process the .dex file.

But, most of the time, only the second step occurs,
which is the VM running the .dex file, and all of the
real linking work has already occured.


---

You are being MICROattacked, from various angles, in a SOFT manner.

[ Reply to This | Parent | # ]

I think everyone is misinterperting his remark on set theory
Authored by: Anonymous on Monday, May 14 2012 @ 06:46 PM EDT
Jacobs: Dynamically doesn’t mean the same thing as run-time. We’re
misunderstanding the basic rules of set theory.

I think he is not really talking about set theory as a way to explain dynamic
and static. He is just applying basic set theory to the argument of if
Dynamically and run-time are the same.

Example of Basic set theory:

Apple is a fruit -> Apple in the set called Fruit

Fruit is an Apple -> Fruit in the set called Apple. Wait this doesn't work
does it!

This shows that Apple may be a subset of Fruit. But wait what about an Apple
Mac. This is an Apple but its a computer not a Fruit.

We would then draw some overlapping circles showing these sets but I will leave
this up to your imagination.

But anyway the point is that his argument is that some things Dynamic are
Run-time but some things may be dynamic but not run-time or some things may be
run-time but not dynamic. In other words Dynamic is not the same things as
run-time.

I agree with him in so far as dynamic is not the same thing as run-time. Its
like saying Apple is the same things as fruit!

However when it comes to the field of Computer programming then its common
practice to stated that all things Dynamic are done at Run-time. So in the CS
field Dynamic is a subset of Run-time.

Jacobs is trying to argue that changing the things around in some pre run-time
stages like Android's on phone optimization stage is also covered by dynamic.
Why is this you ask? well it is more dynamic than a normal linker because it
has to take into account the state and libraries of the phone and it runs on the
phone directly. However this I don't think is that convincing because this is
just a final linking stage and if it runs on the developers Computer or the end
users computer should make little real difference. What if you were compiling,
linking and optimizing an app for say a known machine and library like for
example an XBOX. Does this make it dynamic as well?

Michael

[ Reply to This | Parent | # ]

Jacobs tells another howler
Authored by: Anonymous on Tuesday, May 15 2012 @ 08:51 AM EDT
It has nothing to do with set theory. But indeed "at run-time" does
not mean the same as "dynamically". "dynamically" always
implies an operation interleaved with a reference operation.

"dynamic linking" happens at run-time, but it is done dynamically with
reference to the compilation (meaning you can recompile parts of the program and
have them linked dynamically), not with reference to program execution. It is a
_phase_ of running the program, completed before the actual execution begins.

The dynamic linker _can_ be used dynamically as well, asking it explicitly to
load a library, and then calling named entry points in it by name.

A complete dynamic method would be to have addresses in the instructions
referring to an address or string pool that is not actually part of the address
space of the program.

When such an instruction is reached, the processor will bomb out, and the
subroutine called when bombing out would look up the address, patch the actually
corresponding address into the instruction, and actually execute it after fixing
it up.

That would be dynamic, also meaning that if the library was missing, the program
would still execute as long as its execution path did not require the library.
Normal "dynamic linking" will abort the execution of a program if the
"dynamically linked" libraries are not found as a prerequisite to
linking and starting the program.

So in short: "dynamic" is a rather context dependent term. Oracle
tries to construct a context where they can call something "dynamic"
when the actual context of the patent has been quite different as far as I can
tell.

By the way: "index into table" may well be "symbolic",
depending on the kind of table. There are several languages which _intern_ a
string, meaning that several instances of the same string all share the same
address, and this address can be represented by a pointer into a string table.
In this case, the index _is_ the language's representation of a string, and it
would be silly _not_ calling it a symbolic reference.

But "set theory"? Indeed not.

[ Reply to This | Parent | # ]

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 )