Slashdot Mirror


Coder Accuses IBM of Patenting His Work

ttsiod writes "Back in 2001, I coded HeapCheck, a GPL library for Windows (inspired by ElectricFence) that detected invalid read/write accesses on any heap allocations at runtime — thus greatly helping my debugging sessions. I published it on my site, and got a few users who were kind enough to thank me — a Serbian programmer even sent me $250 as a thank you (I still have his mails). After a few years, Microsoft included very similar technology in the operating system itself, calling it PageHeap. I had more or less forgotten this stuff, since for the last 7 years I've been coding for UNIX/Linux, where valgrind superseded Efence/dmalloc/etc. Imagine my surprise when yesterday, Googling for references to my site, I found out that the technology I implemented, of runtime detection of invalid heap accesses, has been patented in the States, and to add insult to injury, even mentions my site (via a non-working link to an old version of my page) in the patent references! After the necessary 'WTFs' and 'bloody hells' I thought this merits (a) a Slashdotting, and (b) a set of honest questions: what should I do about this? I am not an American citizen, but the 'inventors' of this technology (see their names in the top of the patent) have apparently succeeded in passing this ludicrous patent in the States. If my code doesn't count as prior art, Bruce Perens's Efence (which I clearly state my code was inspired from) is at least 12 years prior! Suggestions/cursing patent trolls most welcome."

26 of 249 comments (clear)

  1. ludicrous by alphatel · · Score: 5, Insightful

    Can I drop a hint about the patent office having no credibility any more?

    --
    When the foot seeks the place of the head, the line is crossed. Know your place. Keep your place. Be a shoe.
    1. Re:ludicrous by ebbe11 · · Score: 4, Insightful

      Can I drop a hint about the patent office having no credibility any more?

      Actually , the Patent Office does have crecibility in a few places. Unfortunately, courts of law are among them...

      --

      My opinion? See above.
    2. Re:ludicrous by mcvos · · Score: 4, Interesting

      Didn't the USPTO some years ago stop checking the validity of patents completely, leaving it to the courts to decide whether a patent is actually valid?

      That means in this particular case, the patentholder just wasted a lot of money, as the submitter's code is clearly prior art. It also raises the question why patent applications are still so expensive if the patent office doesn't actually do anything anymore. (Answer: to increase profits, of course!)

    3. Re:ludicrous by networkconsultant · · Score: 5, Informative

      Unless you sue IBM and have very deep pockets once someone has stolen your idea and had the theft accredited by the rating agency (patent office) you are essentially screwed. You may file an appeal, but then the burden of proof is on you.
      Tesla and Marconi had similar ideas around the same time but the patent office ruled in favor of Marconi, you my friend may be a Tesla at this point.

    4. Re:ludicrous by Anonymous Coward · · Score: 4, Informative

      Pretty sure the patent office is accepting applications for examiners right now, lol. They like people with Master's degrees.

    5. Re:ludicrous by Dachannien · · Score: 5, Informative

      Before spouting off about how the USPTO sucks so much ass solely on the basis of what the OP says, first try a little independent research. You can look up the entire prosecution history of the application in question on the USPTO's website at Public PAIR.

      First off, the guy's website was cited by the examiner rather than by IBM. The examiner used the OP's website to reject the claims three times before IBM's attorney finally came around and amended the claims to include this:

      wherein setting the allocation mode for the process to enable determining in real-time an invalid access is performed in real-time, and wherein the setting sets the allocation mode for an application executed by the process without requiring recompiling, linking or loading of the application to set, in real-time, the allocation mode for the application

      This was cited by the examiner in the reasons for allowance. Does the OP's code do this?

      Once again, this is an example of people who know very little about the patent system reading the abstract or looking at the figures, and not understanding that the really important part of the application is the claims. Nothing to see here, move along.

    6. Re:ludicrous by makomk · · Score: 5, Insightful

      First off, the guy's website was cited by the examiner rather than by IBM. The examiner used the OP's website to reject the claims three times before IBM's attorney finally came around and amended the claims to include this:

      In other words, IBM tried really hard to patent exactly the method used by HeapCheck and Electric Fence - down to the last detail. They eventually settled for a patent with just enough of an amendment to the claims to avoid the prior art, but not enough to actually be an improvement on the state of the art.

      (The extra stuff IBM have put into their claim is actually a trivial addition to something like HeapCheck - it's just that under most circumstances it's a pointless one. All it allows you to do is enable or disable checking prior to process startup on a per-process basis, and on most systems you can do that easily using LD_PRELOAD and the linker-loader.)

      This seems to be fairly common. Microsoft did the same with their patent on XML formats for documents. Amazon's patent on one-click shopping is even worse - they have a whole bunch of bizarre and narrow exclusions in the claims, each aimed at excluding a particular example of prior art.

  2. Answers and Suggestions and Further Questions by eldavojohn · · Score: 5, Insightful

    what should I do about this?

    Disclaimer: I'm not a lawyer; this isn't legal advice. But you've got a few options. All or none of which you can pursue.

    The first option is to simply contact IBM and ask them how their patent is novel or different or disjoint from your work. This could result in one of two things: no response or a response. If you are satisfied with the response, you might change your mind about your situation and congratulate them on putting some novel innovations on HeapCheck, patenting it and listing you in the claim references (do you own any patents related to it?). Now, assuming that it does not satisfy you as an explanation, you could indicate that you are going to pursue legal action (the I in IBM stands for International) but you are willing to settle and sign away your rights for some relatively nominal fee. You could choose to reveal you're not interested in a lengthy expensive court battle with them or you could make it sound like you are angry and this is all you have to do with 100% of your time. Either mentality will send them a message, that's up to you.

    The second option is to get litigious. Judging by your ccTLD (and awesome name), I'm guessing you are from Greece. Which means that you would probably have to hire a patent lawyer in your home country who can work with the Greek or European Patent Office in order to discuss your options. There should be channels through the WIPO that allow things like these to be resolved almost exactly like they're on a local level. I'm guessing your options are going to amount to two things. Either pursuing your own patent on the technology in order to invalidate IBM's patent or presenting your evidence of prior art to invalidate IBM's patent. The former probably more expensive than the latter.

    Normally patents are only valid in the country they are granted but lately there have been intellectual property laws that have tried to extend patents on a global scale. Normally on this site people seem to be against this, often applying the logic of following their local laws when it suits them. Example: Pirate Party. But now we're so concerned if suddenly this is American company gets an American patent on a foreigner's work.

    cursing patent trolls

    Um, that phrase has a particular meaning, one that I cannot find in your story. Who did IBM sue with your patent? Did they sue you? Did they wait for everyone to adopt HeapCheck and then sue them? If anyone in this story is considered the patent troll, it's going to be you if you waited a decade before ligating against IBM.

    I would take Bruce Perens' approach and try working with IBM first. It's the cheapest, most sensible way to resolve this. You're angry but you just said you had forgotten about that work for seven years. Was your intention to leave that concept in the graveyard until you died, getting angry should anyone try to profit from it or license it?

    --
    My work here is dung.
    1. Re:Answers and Suggestions and Further Questions by Sockatume · · Score: 4, Interesting

      Patents (like registered trademarks, and unlike copyright) are assumed enforcable unless proven otherwise. They're not supposed to be granted in the first place if they're invalid.

      --
      No kidding!!! What do you say at this point?
    2. Re:Answers and Suggestions and Further Questions by 42forty-two42 · · Score: 5, Insightful

      You're angry but you just said you had forgotten about that work for seven years. Was your intention to leave that concept in the graveyard until you died, getting angry should anyone try to profit from it or license it?

      If he didn't take a patent on it, then there's nothing stopping IBM from using the same techniques. The problem arises when IBM patents it as if they were the first to invent the technique, then restrict everyone (including the OP) from using the OP's invention. If IBM just used it without patenting, no problem. Of course, it's entirely possible that IBM's invention is slightly different from the OP's - patent claims are rather hard to read for a layman after all.

    3. Re:Answers and Suggestions and Further Questions by ttsiod · · Score: 5, Informative

      I only take an issue with your last paragraph - I certainly didn't leave the code in a graveyard, I released it with an open source license, so that anyone could use it and make his life a bit better. The fact that 10 years later, someone else has now patented the ideas in Electric Fence and HeapCheck, and can now sue me and everyone else using it, is what got me mad (hence the "trolls" comment).

    4. Re:Answers and Suggestions and Further Questions by Spazmania · · Score: 4, Interesting

      Wouldn't prior art prove otherwise?

      As I understand it (and IANAL so I could be way off base) the process goes something like this:

      You're sued for infringing X.
      You assert that Y (which they failed to cite or differentiate) is prior art for X.
      They file a modification to X adding a citation for Y and explaining the difference between Y and X.
      Rinse, repeat.
      If the patent on X is still broad enough to cover your use, you either settle or lose in court.
      If the patent on X has been narrowed enough that it no longer covers your use, they settle or lose in court.

      Generally, one or the other of you decides to settle once things are fully fleshed out. The matter becomes pretty obvious and there's no point in either of you continuing the expense. You're not going to succeed on process-related counterclaims; they had a reasonable belief that you'd infringed the patent when they sued.

      Occasionally the mistaken party gets stubborn and goes to court anyway. When that happens, it's about 50/50 whether the court rules in favor of the plaintiff or defendant. The court rarely invalidates the patent; when ruling in favor of the defendant, it's usually because the defendant's use was enough different from what the patent has become by the time of the actual trial that it doesn't infringe.

      Generally speaking, the patent office is not your friend in this situation. When you submit a claim of prior art, they rule more carelessly than a court and once they rule the court is loathe to reconsider.

      --
      Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  3. Cited by examiner by Sockatume · · Score: 5, Informative
    --
    No kidding!!! What do you say at this point?
    1. Re:Cited by examiner by hey! · · Score: 4, Interesting

      Hmmm. It would seem that the patent is for an operating system memory management feature. Note in claim 1:

      wherein setting the allocation mode for the process to enable determining in real-time an invalid access is performed in real-time, and wherein the setting sets the allocation mode for an application executed by the process without requiring recompiling, linking or loading of the application to set, in real-time,

      So you don't have to modify your source or link against a certain library, either statically or dynamically. In fact, it *sounds* like you can turn this on for a process as it is running. An argument might be made that the existence of techniques for the programmer to compile and link his program with relative transparency makes putting this capability into the operating system an obvious step, but I think reasonable people might disagree.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  4. How to solve patent problems in 3 easy steps by Haedrian · · Score: 4, Insightful

    Step 1 - Be a large company.

    Step 2 - Afford the world's best lawyers

    Step 3 - Sue

    No luck for the rest of us.

  5. Re:Probably not patenting your exact work by Sockatume · · Score: 4, Informative

    "The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of facilitating management of dynamically allocated memory. The method includes, for instance, having a dynamically allocated memory buffer; and determining in real-time that an invalid access of the dynamically allocated memory buffer has occurred."

    I'm no expert on HeapCheck but that doesn't sound far removed from its basic functionality.

    --
    No kidding!!! What do you say at this point?
  6. Do not try to sue IBM by PolygamousRanchKid+ · · Score: 4, Insightful

    I had to give a deposition on the IBM / SCO case, since I had access to AIX source code, and also worked for their Linux Technology center. Damn good folks! The lawyer worked for a law firm with a 5th Avenue address in New York City. Although he talked very polite with me, I had the feeling that he could skin me alive, if necessary.

    Hey, sue IBM! No, bad idea.

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    1. Re:Do not try to sue IBM by PseudonymousBraveguy · · Score: 4, Funny

      The IBM laywers are also known by the term of Nazgûl. It has been said they can blacken the sky with their legal arguments, if IBM so desires. So don't mess with them unless you either have a certain ring in your posession, or at least a bunch of enchanted swords.

  7. Re:Probably not patenting your exact work by arivanov · · Score: 5, Informative

    As with all patents read Claim No 1. It should contain the novel element, you cannot leave it for later. The "novelty" in this one is that you do not need to recompile the program the way original efence worked.

    However, times have changed since the days of the original Efence and things are linked dynamically at runtime on all OSes which in turn means that any LD_PRELOAD-ed Efence like debugging library which relies on OS R/W page management to control access is prior art. It satisfies literally the requirements of claim 1.

    I do not recall off the top of my head what valgrind uses, but I would not be surprised if it fits the bill. The original Efence does not - it has to be linked in.

    --
    Baker's Law: Misery no longer loves company. Nowadays it insists on it
    http://www.sigsegv.cx/
  8. Much prior art. by Ancient_Hacker · · Score: 5, Informative

    Back in 1990, I redid the Borland Pascal memory allocator so each block was given its own hardware-protected segment descriptor and length. Worked magnificently, as any reference outside a valid block would immediately fault. Only prob, you could only allocate about 4000 blocks as there were only 4,096 entries in the hardware segment table. So the next refinement was to allocate each block with short pre and postambles set to $12345678 and check thee for overwriting periodically. Worked almost as well, if not so immediately finding the errors.

    And no, I did not try to patent this, as I knew the Burroughs machines, since 1961, allocated a fresh memory-protected segment for each array, and using pre and post safety zones sure sounded like an "obvious" thing to do..

  9. Doesn't Look as if IBM really patented his work. by Bruce+Perens · · Score: 4, Informative

    I am busy this week and have not been able to look at the patent. However, if IBM referenced this person's work in the prior art section of the patent, they are admitting that his work IS prior art, and is not subject of the patent. The issue then becomes, do any of the PATENT CLAIMS (not the summary) claim art that is exercised in his program.

    Electric Fence is listed as prior art in two ATT patents. When they saw it, they refrained from including two claims they otherwise would have, because I had precedence. The ATT patents should have expired by now.

    I doubt there's anything to worry about in this specific case. However, software patents in general present a severe problem. [Oops - previously submitted this as AC. Sorry]

  10. Re:Doesn't Look as if IBM really patented his work by KamuZ · · Score: 4, Informative

    Actually in another post by Sockatume pointed the USPTO examiner is the one mentioning his website and not IBM.

    (for some reason I cannot link the article)

  11. They aren't claiming your invention. by John+Hasler · · Score: 4, Insightful

    They are claiming an improvement on your invention. That's why they reference it.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  12. Re:Probably not patenting your exact work by wmelnick · · Score: 4, Informative

    Not at all. It is standard in the patent world to make the thing that you actually want to patent be the middle claim. The reasons are many and varied, but you can jump right to the thing that any company actually wants to get the patent upon by checking the center claim. There are 20 claims here, so it is likely this one: 10. The method of claim 1, further comprising: detecting that another allocation mode is to be used to allocate one or more buffers for the process; and dynamically deactivating the allocation mode that enables the determining in real-time, wherein the dynamically deactivating includes turning off an indicator in the process to deactivate the allocation mode, and wherein another dynamically allocated memory buffer for the process is allocated based on the another allocation mode, said another dynamically allocated memory buffer being allocated without additional memory as a guard.

  13. MOD PARENT DOWN! by raftpeople · · Score: 4, Informative

    Nothing in your explanation describes why such simple coding (for someone with experience) should be patentable. The USPTO does "suck ass" because they allow patents that are pretty straightforward for any skilled practitioner.

  14. Re:Probably not patenting your exact work by orgelspieler · · Score: 4, Insightful

    I hope you were trying to be funny.

    Here's how it works: the novel, non-obvious kernel of a patent is called the independent claim (or claims). Independent claims don't refer to any other claim. Any claim that refers to another claim is called a dependent claim. If you infringe on one of them, you also infringe on the independent claim. Therefore, the independent claims are the main ones that you have to focus on first.

    Inventors add dependent claims in an attempt to keep somebody from building a new patent on the independent claim. Sometimes, these extended claims make the original invention much more interesting or marketable, but they still depend on the core concept in the independent claim. It has nothing to do with hiding the heart of your invention under a pile of meaningless legalese. I'm sure it seems like that to the untrained eye, though.

    I am not a lawyer, but I am an engineer that has successfully defended my company against a frivolous patent suit.