patent-trial



patent-trial

0 0


patent-trial

Patent Trial lightning talk

On Github uhAndrew / patent-trial

Software Patent

The Trial

Mid 2004 to February 2005

My Goals for you

  • You will hesitate to ever send another e-mail (or tweet, or...)
  • You will hesitate to ever name another variable (or function, or...)
  • You may never read another software patent
  • You may consider a career as an Expert Witness

Background

  • Trend Micro (them) vs. Fortinet (us)
  • U.S. Patent 5,623,600: Virus detection and removal apparatus for computer networks (April 22, 1997)
  • I worked directly on the (allegedly) infringing software: transparent proxies for SMTP and FTP, as well as an anti-virus scanning engine.

They call it Discovery

  • All e-mails and any other documentation that was potentially relevant was zipped up and sent to opposing side
  • Yes: quoted during deposition and trial (more on that later)

Deposition

  • Fall 2004
  • San Francisco (free trip!)
  • Instructional video from 1980s to prepare us for trap questions (eg. When did you stop cooking the books?)

Deposition

  • Parts of e-mails I wrote months/years earlier quoted and minutely parsed
  • Recorded on video and transcribed (I have a copy of my transcript)
  • Never ever ever ever talk to opposing counsel during breaks

Expert Witnesses

  • We had an expert witness, and so did they
  • Someone with domain knowledge who is relatively impartial
  • But agrees with your interpretation of the facts

  • BTW you are paying them money

Expert Witnesses

  • One of my tasks was to help our expert witness learn the relevant parts of our source code
  • Another trip to San Francisco!
  • Leon had lots of cool stories
  • Hid in a small meeting room all day and snuck to the bathroom when the coast was clear to avoid alerting opposing lawyers to my presence

ITC Court

  • Washington, DC
  • Another free trip!
  • February 2005 (just after the Presidential Inauguration)

ITC Court

  • Three sets of lawyers:
    • Our lawyers
    • Their lawyers
    • ITC Court lawyers
  • Cross examination gets complicated

ITC Court

  • Source code projected on large screen
  • Questions about variable names (seriously!!)
  • Questions about particular word usage in documentation I wrote (eg. firewall)
  • Questions about patent awareness (if you've read the patent then you're knowingly infringing and that is worse)

Also "hilariously" existential questions

  • Does the code scan a copy of the e-mail attachment or does it scan the attachment itself?

  • If an anti-virus engine checks a file against a set of signatures but finds no matches, has it in fact actually done no work at all? (My suggestion: it has matched the Null Set of Signatures)

  • If I draw a dashed line on a piece of paper, is it now two pieces of paper? (my question)

Something that annoyed me

  • Words in patent claims are not given precise definitions
  • So a word can be interpreted to mean one thing in one claim...

  • And then (with a straight face) interpreted to mean something else in another claim...

  • And the court can find that you violate both claims

Code Workarounds

  • Renaming variables (seriously: file data. attachment data. I hope you like variables named data)
  • Larger code changes (fun: prototyping in Perl with design input from lawyers then later porting changes into C code base)

  • Not writing anything down (If you don't write it down it is not Discoverable!)

Fun Facts

  • Trial judge was around 80 years old (he'd been a patent examiner in the 1950s)
  • Doorman at Willard Hotel in Washington DC was an amateur cryptozoolist (I talked to him about Ogopogo a lot)

Conclusion

  • Expert Witness seems like a pretty nice gig.
  • But: As a programmer you might not be paranoid enough

  • Don't read software patents

  • When naming a variable, class, or file, consider: How will this name look in court when I'm being cross-examined about it?

  • When writing documentation, consider: How can this be manipulated in court when I'm being cross-examined about it?

Happy Coding!

Andrew Gray

andrew.gray@hootsuite.com | @uhAndrew