You can order your copy on Amazon here or at other online and brick-and-mortar bookstores.
If you want to get up-to-date information on the world of intellectual property, and you want it to be interesting, passionate (yes, some people are passionate about IP) and sometimes even controversial (yes, IP can also provoke fiery controversy), then you definitely need to sign up for Gene Quinn’s IP Watchdog blog.
IP Watchdog is considered one of the most influential IP blogs in cyberspace. In fact, the American Bar Association runs a poll each year to rank the best law blogs, and IP Watchdog usually comes out on top or near the top for IP blogs. But as they say on DWTS, you need to vote! There’s no guarantee that your celebrity will win. So I’m asking you to vote for IP Watchdog in the ABA blawg 100 competition. Go here to vote and look for IP Watchdog in the… where else?… IP category.
Software Analysis and Forensic Engineering has just released a new version of CodeSuite that has some really great new features.
What’s a PID? It’s a partial identifier. Or more specifically, a partially matching identifier. That’s where two identifiers in code almost match. So for example, the identifiers identifier1 and confident_boy share the partial identifier (or “PID”) ident. CodeMatch has always been able to correlate PIDs and use that in calculating the identifier correlation score as a component of the entire correlation score between two source code files. But there can be so many PIDs that users got blurry-eyed trying to view them all and find suspicious ones in a CodeMatch HTML report. So we came up with a solution. You can now export the PIDs from a CodeSuite database into a spreadsheet. You can see not only the PIDs, but the original identifiers that share the PIDs. Now you can sort and select, cut and paste, and generally look for clues to copying in a simple spreadsheet.
Part of our process for finding copying has been to first find all the source code files in a directory of files so that you know what to examine. However, there are lots of source code files, and some can be missed. Some programming languages are a bit uncommon and you may not recognize the source code files. Well, we found a solution to that too. The new FileIdentify function of CodeSuite allows you to point at a folder and generate a spreadsheet containing all of the file extensions in that folder and all subfolders. If CodeSuite recognizes the (potential) programming language, it will put that information in the spreadsheet too.
From the beginning of CodeSuite, when there was only CodeMatch, the database has always been a fully documented text file that anyone can view. This allows our customers to make their own tools to extract data and statistics from a CodeSuite comparison, and some customers have created some very interesting utilities. Our database format was simple, but grew more complex over the years. Now we have a function in CodeSuite that converts any CodeSuite database into XML so that you can use off-the-shelf tools to examine it, translate it, or write utilities to extract data and statistics.
Posted By: Bob Zeidman in General on December 19th, 2012.
Tags: CodeSuite, copyright infringement, forensic engineering, lines of code, plagiarism detection, software analysis, software plagiarism, XML
Zeidman Consulting, a leading research and development company (and sister company to SAFE Corporation), is looking to hire a full-time software forensic engineer. Acting as a high-tech sleuth, this person will analyze and reverse-engineer software using CodeSuite® and other state-of-the-art software tools, helping to resolve lawsuits involving hundreds of millions or billions of dollars. The employee will also work on one of several ongoing cutting edge research projects. These projects often lead to publication in academic journals, presentations at conferences, patents, and new product spinoffs. Past and ongoing projects include:
- CodeMatch®, a program for comparing and measuring the similarity of different programs.
- CodeGrid®, a computer grid-enabled version of CodeMatch®.
- RPG, a tool for automatically generating expert reports for copyright, trade secret, and patent litigation.
A successful candidate will need the following attributes:
- At least a bachelor’s degree in computer science or equivalent. Advanced degree is preferred.
- Excellent programming skills in one or more programming languages.
- Ability to work independently on projects that are not well-defined.
- Excellent verbal and writing skills for creating detailed specifications and reports.
- Ability to work on multiple projects simultaneously and to switch projects suddenly as the need arises.
- Enjoys working long hours on interesting projects, including weekends when projects hit critical periods.
- Enjoys free time when projects are not in critical periods.
Zeidman Consulting pays above average salaries with profit-sharing and provides health insurance and paid time off for holidays, vacation, and illness. To apply, please email a resume to Info@ZeidmanConsulting.com.
Posted By: Bob Zeidman in General on August 1st, 2012.
Tags: computer science, copyright infringement, development, engineering, expert witness, forensic engineering, forensics, intellectual property, job, patent infringement, programming, research, reverse engineering, software analysis, trade secret theft
I hope you’re all aware of my book The Software IP Detective’s Handbook: Measurement, Comparison, and Infringement Detection. It’s the first book on Software Forensics, a field that I pioneered at Software Analysis and Forensic Engineering and Zeidman Consulting. Whereas Digital Forensics deals with bits and files, without any detailed knowledge of the meaning of the data, Software Forensics deals with analysis of software using detailed knowledge of its syntax and functionality to perform analysis to find stolen code and stolen trade secrets. The algorithms described in the book have been used in many court cases. The book also describes algorithms for measuring software evolution, particularly as it relates to IP changes.
If you are a teacher, this is a great time to incorporate the materials in the book into your courses on software development, intellectual property law, business management, and computer science. There’s something for everyone in the various chapters of the book. Your students and you will be at the forefront of an important and very new field of study.
If you’re interested, please contact me.
Posted By: Bob Zeidman in General on July 1st, 2012.
Tags: CLOC, computer science, copyright, copyright infringement, crime, development, DMCA, expert witness, forensic engineering, forensics, infringement, intellectual property, law enforcement, lawsuit, lines of code, litigation, mathematics, object code, patent, patent infringement, plagiarism, plagiarism detection, programming, research, reverse engineering, school, science, software, software analysis, software plagiarism, source code, theft, trade secret, trade secret theft, transfer pricing, valuation
S.A.F.E. recently released the HTML Preprocessor. The HTML Preprocessor is designed to transform web pages into files that are amenable to analysis by CodeSuite, DocMate, and other source code analysis tools. The HTML Preprocessor examines HTML files and other markup language files and extracts all embedded code into separate files. These files each contain only one kind of code that can be easily analyzed and compared using CodeSuite and DocMate. The code contained in these generated files are:
- Cascading style sheets (CSS)
- Comment text containing HTML comments
- Message text containing HTML user messages
- HTML tags
- Pure HTML
- Pseudocode representation of the HTML
Posted By: Bob Zeidman in General on June 1st, 2012.
Tags: computer science, copyright, copyright infringement, forensic engineering, forensics, HTML, intellectual property, plagiarism detection, reverse engineering, software, software analysis, software plagiarism, trade secret theft
A patent can be infringed in two basic ways: directly and indirectly. These different ways of infringing are important to understand by anyone wanting to enforce patents and by anyone wanting to avoid infringing a patent.
A patent claim is directly infringed by some product when that product practices each “limitation” of the claim when the claim is a method claim, or includes a structure equivalent to each “limitation” of the claim when the claim is an apparatus claim, or does both in the case of a means-plus-function claim. The term “limitation” is used by lawyers and those in the know to mean the step or steps spelled out in the patent claim.
There is another way of directly infringing known as the doctrine of equivalents. If a product doesn’t perfectly meet the limitations of a claim, it may still infringe on the patent if it does something that a person of ordinary skill in the art (“POSITA” or “OOSITA”) would know was equivalent. While this may seem like a loophole, it’s actually quite fair. Suppose someone patents a “glass bulb containing a filament that produces light when an electric current is sent through it.” The inventor may not realize that a bulb made of specially treated plastic would also work. The key to the invention isn’t the material from which the bulb is made. Thus a plastic bulb could infringe on the patent because of the doctrine of equivalents.
If a product doesn’t directly infringe a patent, it may also indirectly infringe. There are two types of indirect infringement: induced infringement and contributory infringement. Encouraging others to infringe a patent is called “induced infringement.” When two products working together infringe on a patent, that’s called “contributory infringement.”
Induced infringement occurs when some party purposefully causes or encourages another party to infringe a patent. The key work here is “purposely.” Induced infringement must meet these criteria:
- The infringer actively encouraged or instructed another party on how to use a product or perform a process in a way that infringes the patent claims.
- The infringer knew of the patent.
- The infringer knew or should have known that the encouragement or instructions would induce infringement of the patent.
- The other party actually infringed the patent.
So induced infringement requires that the infringer purposely got another party to infringe a patent. Let’s say you have a software company that produces word processing software, and your competitor has a patent on checking the spelling of words in a document and putting a squiggly red line under misspelled words. You need a spell checker, but you don’t want to infringe, so your product outputs misspelled words to a separate file and you recommend that your customers buy third-party software that reads in that separate file and puts squiggly red lines in the documents. You may be inducing infringement by encouraging your customers to perform the patented method. And don’t try to use an orange line or a chartreuse line, because you’ll probably still be infringing under the doctrine of equivalents.
Contributory infringement occurs when one party who knows about the patent supplies a component to another party to use in an infringing product. Contributory infringement occurs if the party who received the component directly infringes the patent and if the component has the following characteristics:
- The component is a significant part of the invention.
- The component is especially made for use in a way that infringes the patent.
- The supplier knows that the component was especially made for that use.
- The component doesn’t have any substantial non-infringing use.
So contributory infringement requires that the infringer knowingly supplied another party with a product that was incorporated into a second product, causing the combination to infringe a patent.
Let’s take the example again of your word processing company. Suppose your word processing company decides to buy the third-party squiggle generator software to incorporate into your word processor. You meet with the head of the squiggler company and tell her that your word processor doesn’t infringe on your competitor’s product and the squiggler doesn’t infringe. You want to embed the squiggler into the word processor. At that point you’ve just lost the game, because the squiggler company knows that the combination infringes and so they can be found to be contributory infringers. Because it’s your product, you can be liable for direct infringement in this scenario.
However, if the squiggler can be used to underline important words, hyperlinks, and naughty words in addition to misspelled words, then the squiggler company may be OK because the component has significant uses that are non-infringing.
On April 12 an op-ed was published in the Wall Street Journal entitled Patent Trolls vs. Progress by Andy Kessler, a former hedge-fund manager. I would like to correct some inaccuracies. Mr. Kessler attributes Microsoft’s recent purchase of AOL’s patents and Google’s purchase of Motorola Mobility (presumably for its patents) as protection against non-practicing entities (“NPEs”) also disparagingly known as “patent trolls.” First, no portfolio of patents will ever protect against an NPE. This is because an NPE, by definition, does not produce a product. In a patent litigation between two companies, the typical scenario is that company A owns a patent and attempts to license that patent to company B that it believes is infringing. Company B can pay a fee to company A or it can refuse to pay. Or company A may attempt to get an injunction against company B to prevent it from selling its product that incorporates the invention described by the patent. If company A wants an injunction or requests a fee that company B refuses to pay, then company A will almost
certainly take company B to court. At that point, company B takes some combination of three possible countermeasures. Company B can attempt to show that the patent is invalid. Company B can attempt to show that its product does not infringe the patent. Company B can countersue company A for infringement of some patent of its own. Typically after months of threats, legal maneuvers, and negotiations, the companies will settle on some payment from one company to the other. The cases rarely go to court. Now suppose that company A is an NPE. Company B’s third option of countersuing is not an option because company A produces no product and thus cannot infringe on any patent. Thus buying patents provides zero defense against an NPE, contrary to what Mr. Kessler asserts.
Mr. Kessler reaches back seven years to 2005 for the case of NTP v. Research-In-Motion, the famous case against the Blackberry manufacturer, for his justification and concern about NPEs, but in recent years it is the major players in high tech have been suing each other over patents. The companies in the news for patent sales, patent purchases, and patent lawsuits are not NPEs but the high tech goliaths including Google, Apple, Microsoft, Motorola, Oracle, Facebook, AOL, and Yahoo among others. Purchasing patent portfolios can be used defensively against other companies and just as easily these patent purchases can be used, and are being used, as offensive weapons against competitors. Patent trolls are simply the bogeymen used by large companies to convince politicians to “reform” patent laws.
Mr. Kessler argues that the extension of the patent term to 20 years, enacted in 1995 to make U.S. patent law consistent with the World Trade Organization’s Agreement on Trade-Related Aspects of Intellectual Property Rights (TRIPs), is a problem because “in technology things move a lot faster.” I do not understand the reasoning behind this complaint. If technology moves so fast, then a patent becomes worthless long before the term is over. What does it matter if a patent is valid for five years or 50 years if the patent is worthless after five years?
Mr. Kessler states the “we have to stop allowing juries to establish the value of patents… the market… [should] determine value. ” In fact, the market does determine value. The majority of patent lawsuits are settled before reaching court, and both parties determine a fair value based on free market principles. A negotiation between two parties is a great example of such free market principles where each party determines the value of the patent with respect to its own interests, free from other considerations. For cases that reach a jury, the jurists are provided information by economists and accountants who determine the value of a patent based on the market value of the products that embody the patented inventions. Of course we can argue about whether their models and calculations are correct, but our entire justice system is based on juries determining values and awarding damages and so if Mr. Kessler believes that juries are incapable of determining value, then he is implying that our entire legal system-at least the civil system-is flawed. If that is true, then it is the legal system as a whole that needs to be revised.
Perhaps the most disturbing recommendation is to require patent holders to manufacture or sell products. This requirement would fundamentally damage the patent system. Patents allow small, cash-strapped inventors to create something new and protect that invention from large corporations that have the money and resources to kill it or steal it before the inventor can get funding or market share. I know this from experience. Years ago I created a software tool
that I sold to a large company that enabled that company to sell their expensive hardware to customers in the communications industry. Each software package, that sold for about $25,000, enabled this company to sell their multimillion dollar equipment to communications companies that otherwise would never have been customers. The arrangement seemed good to me, but the large company made it clear that they did not like being beholden to me, so after several years of buying my software, they created their own. My sales immediately went to zero-in other words I became a non-practicing entity. Fortunately I had patented my invention and so I had more leverage than the large company expected. Had Mr. Kessler’s recommendation been in effect, I would have had no recourse against that large company.
According to Kessler, James Madison was the man behind Article 1, Section 8, Clause 8 of the U.S. Constitution, giving Congress the power “to promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries.” Historical documents suggest that Thomas Jefferson and Charles Pinckney also lobbied for this clause. In any case, this section of the Constitution has been the justification for our patent system for over 200 years. Mr. Kessler believes that Mr. Madison did not understand what he was doing or, at best, did not foresee the expense that patent litigation would involve in the 21st century. In fact, the founding fathers knew exactly what they were doing when writing the intellectual property clause into the U.S. Constitution. They were protecting the individual from the overwhelming power of large entities. They were enacting the very principles of American society for which we fought the Revolutionary War. Since 1790 the U.S. patent system has contributed to America becoming the most innovative society in the history of the world. Fundamentally changing the system in the ways suggested by Mr. Kessler would stifle that innovation.
S.A.F.E. recently released version 4.4 of CodeSuite and version 1.1 of CodeSuite-LT. The most important new feature of this version is that these programs now recognizes many different text encoding formats including ASCII, UTF-8, UTF-16, and UTF-32. Characters in alphabets other than the Latin alphabet used for English are now supported. For example, code with comments or strings in Japanese, Korean, Chinese, or Russian can be compared correctly.
The most significant change is to BitMatch. When examining binary object code to find text strings, you can now specify the encoding format of the file. If you’re not sure about the encoding, you can choose multiple formats.
As demand for our products increase outside the United States, we realized a need to support languages in those countries also.
Posted By: Bob Zeidman in General on February 14th, 2012.
Tags: binary code, computer science, copyright, copyright infringement, forensic engineering, infringement, intellectual property, plagiarism, plagiarism detection, programming, reverse engineering, software, software analysis, software plagiarism, source code, theft, trade secret, trade secret theft
A patent can de divided into the following sections:
- Abstract. This is a one-paragraph description of the invention that’s being patented.
- Drawings. These are carefully labeled figures that are used to illustrate important concepts of the invention and that are described in the detailed description. It is important that at least one diagram shows a block diagram of the invention if the patent includes apparatus claims. For a physical device, a diagram should show the physical parts and their relationships. For software, the diagram should show the architecture of the software. For a patent that includes method claims, at least one diagram should have a flow chart that illustrates the method.
- Background of the invention. This section describes the field of the invention, other inventions, or publications that predate this invention (“prior art”), and other inventions related to this invention. This section typically explains the inventions usefulness—what’s so great about the invention and why people will want it.
- Summary of the invention. This is typically one paragraph to one page in length that describes the invention. Though this section isn’t legally required by law, it’s a part of almost every patent.
- Brief description of the drawings. For each drawing in the patent, there should be one or two sentences to briefly describe it.
- Detailed description. This section explains the invention as completely as possible, referencing the drawings. This section describes what is called the “embodiment” of the invention that differentiates it from existing inventions. The description must explain the best way the inventor knows of implementing the invention, and it must be detailed enough to allow “one of ordinary skill in the art” to produce it. Remember that the patent must be novel, nonobvious, and useful.
- Claims. This is the essence of the invention. Each claim is a single sentence, though it’s usually a very long sentence broken into multiple parts, that describes the invention in as precise wording as possible.
There is often debate among patent attorneys, inventors, and patent litigators about the definition of “one of ordinary skill in the art.” The Manual of Patent Examining Procedure (MPEP) section 2141.03 defines one this way:
The person of ordinary skill in the art is a hypothetical person who is presumed to have known the relevant art at the time of the invention. Factors that may be considered in determining the level of ordinary skill in the art may include:
(1) type of problems encountered in the art;
(2) prior art solutions to those problems;
(3) rapidity with which innovations are made;
(4) sophistication of the technology; and
(5) educational level of active workers in the field. In a given case, every factor may not be present, and one or more factors may predominate.
Note that the definition of one of ordinary skill in the art will vary depending on many factors and cannot be defined generally, but must be defined for each particular patent.
Claims are the most important part of any patent. Patents typically contain anywhere from 5 to 30 claims. Each claim is a single sentence, and each describes an important aspect of the invention. Whether another product infringes on a patent ultimately comes down to these claims.
One last piece of advice: never file a patent that you’ve written yourself without having a qualified patent attorney or patent agent review the claims. I’ve seen patents for ingenious devices that were worthless because of one misplaced word in a patent claim. Other patents had no value because the claims were so narrow that no one infringed, or avoiding infringement required some insignificant change to the invention.