Tag Archives: computer science

Bob Zeidman Named IEEE Outstanding Engineer in the Region 6 Central Area

Software forensics pioneer earns third honor from renowned industry organization

CUPERTINO, Calif. Sept. 29, 2015Zeidman Consulting, a research and development contract firm specializing in digital hardware design, software design and software forensics, announced today that founder and president, Bob Zeidman, secured the Outstanding Engineer Award from the Institute of Electrical and Electronics Engineers’ (IEEE) Region 6 Central Area. Zeidman was honored for his significant advances in the field of software forensics. The IEEE Region 6 Central Area includes Central California, Northern Nevada and Hawaii.

The IEEE Awards program recognizes professionals who have made substantial contributions to technology and the engineering profession. An expert in a variety of engineering fields, Zeidman is distinctly renowned for his pioneering work in software forensics. Zeidman is credited for using software forensics to turn previously subjective information into empirical evidence. He has personally consulted on more than 150 court cases involving billions of dollars in disputed intellectual property, the software forensics tools he developed have been used in litigation worldwide, and his book, “The Software IP Detective’s Handbook,” is considered the standard textbook for software forensics.

Today’s announcement represents Zeidman’s third Outstanding Engineer award from the IEEE; earlier this year, he earned the prize in the IEEE’s Santa Clara Valley Section. Zeidman was nominated by IEEE Fellow Ralph Bernstein for his “accomplishments in the field of software forensics, which he pioneered by turning a subjective process into a quantitative measure and a reliable methodology.”

“This award is not only recognition of my contributions to software forensics, but also a tribute to the value and significance of this field,” said Zeidman. “I am proud to accept this honor and to know that my work has helped bring justice, fairness and efficiency to many tech legal disputes.”

About Bob Zeidman
Bob Zeidman is an inventor and entrepreneur whose ventures include Zeidman ConsultingZeidman TechnologiesSoftware Analysis and Forensic Engineering, Z EnterprisesSamAnna Designs, and Swiss Creek Publications. Bob holds 22 patents and earned degrees in physics and electrical engineering from Cornell University and Stanford University.

Job Opening: Software Forensic Engineer

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®.
  • HTML Preprocessor™, a tool for breaking complex HTML pages into components consisting of text, pure HTML, JavaScript, images, etc.
  • 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.

Be a Pioneer in the Field of Software Forensics

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.

HTML Preprocessor Released

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:

  • Scripts such as JavaScript and VBScript
  • Cascading style sheets (CSS)
  • Comment text containing HTML comments
  • Message text containing HTML user messages
  • HTML tags
  • Pure HTML
  • Pseudocode representation of the HTML

CodeSuite 4.4 and CodeSuite-LT 1.2 Released

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.

Why da Vinci was not an engineer, scientist, or mathematician

Why da Vinci was not an engineer, scientist, or mathematician

Leonardo da Vinci is considered the quintessential “Renaissance Man,” one who excels at all forms of intellectual endeavors. He is honored as a genius, some say the greatest genius the world has ever known-an artist, a mathematician, a scientist, and an engineer. But does he deserve these accolades? No. And bestowing them upon him belittles those who truly are great mathematicians, scientists, or engineers.

Leonardo da Vinci definitely created great artwork, though for my taste he doesn’t match the grandeur, detail, or power of Michelangelo his peer. Da Vinci invented painting techniques like sfumato for creating a delicate shading for more realistic human features, though other techniques for which he is credited were actually developed by other painters such as and chiaroscuro that was developed and perfected by Caravaggio, Correggio, and Rembrandt1. I acknowledge he was a great artist-he created artwork that has been appreciated worldwide for centuries. But da Vinci, known for a problematic lack of attention, rarely finished any of his works. The Last Supper painting is incomplete2. His Gran Cavallo horse statue was never finished3. He left the monastery of San Donato before finishing the Adoration of the Magi that he had been commissioned to produce4. The list goes on. Even the Mona Lisa background seems to me drab and amateurish, like an attempt to just get the portrait done so he could move on, a fact described by a witness to the original painting, Giorgio Vasari, a biographer and painter himself5. Modern day art historians and fans of da Vinci make all kinds of excuses for his impatience and impulsiveness. One fan states that Vinci “fell victim to those individuals jealous of his genius labeled him a man who did not finish his commissions as the [Gran Cavallo] was meant to be made of bronze, not clay.”6 Another fan claims that the payment terms were so complex that he probably wouldn’t have received any compensation anyway. So get bored and leave-thankfully other artists, like Vincent van Gogh or Michelangelo, had a different attitude and struggled to complete their works out of passion and love.

Da Vinci Was Not a Mathematician

Although I’ve dabbled in art and art history, I am not an expert. However, I am an expert in mathematics, science, and engineering, having had a rigorous education in these fields and having worked for several decades in them. I’ve known true brilliant people in these areas. To my knowledge Leonardo da Vinci never wrote down an equation, even one as simple as basic algebra. He just didn’t seem to understand math7. Some credit him for understanding the golden ratio, but the golden ratio is simply two numbers-a width and a length-and had been known at least since the days of the Greek sculptor and mathematician Phidias, a thousand years before da Vinci8. Da Vinci came up with interesting mathematical ideas but never investigated one and never proved one. He spat out interesting possibilities in his notebooks, using a notation that has not been deciphered. Very few, if any, of his “mathematical ideas” turned out to be correct9. In fact, search the books, the Internet, or entire libraries, and you won’t find a single, tiny original contribution that da Vinci made to mathematics.

Mathematicians don’t guess at their answers. They study various techniques, sometimes for years. They learn how to use multiple mathematical models to find a solution. They compare alternative ways of performing calculations. They generalize the problems to solve categories of problems. They test their answers and try to find fault in them, try to tear the solution apart. Only after this long effort born of creative spark but nurtured by perseverance do they create something worthy of being labeled genius. Da vinci was far from a mathematical genius and giving him the title of mathematician demeans those who have spent their lives examining the beauty of numbers and their relationships.

Da Vinci Was Not a Scientist

Scientists practice the scientific method. They come up with hypotheses based on observations or the works of others, but that’s simply the very beginning. Every curious child imagines reasons why the world works the way it does. Most of them are fantastic and some turn out to be true. Ancient people thought the world was flat, supported by tortoises. But even the ancient Greeks, two thousand years before da Vinci, created the scientific method used by Archimedes, Aristotle, Hippocrates, Ptolemy, and many others10. Roger Bacon, two hundred years before da Vinci, was making discoveries and promoting the scientific method11. All that da Vinci did was write fantastic theories in his notebooks but never once devised experiments to test them. Had he done that, he would have found that most of his theories were completely wrong. Again, there is not a single known, novel scientific principle that can be attributed to da Vinci. But at that same time, real scientific geniuses like Nicolaus Copernicus were changing our understanding of the solar system forever. To call da Vinci a scientist is like calling a curious kindergartener a scientist. It is an insult to those real scientists who spend their lives not just observing and hypothesizing, but testing, poring over results, retesting, studying the works of others, refining their own work, creating new theories, and eventually giving us more knowledge about how the universe functions.

Da Vinci Was Not an Engineer

Da Vinci was often given credit for the inventions of others, simply drawing machines, bridges, weapons, and other devices that had been written up by others or actually built by others12. In fact most of his so-called inventions including diving suits and flying machines had been drawn up extensively by others13. Scientist Roger Bacon had drawn plans for an ornithopter 200 years before da Vinci and flying machines had been discussed and drawn since ancient times14. Modern attempts to build even a single one of da Vinci’s inventions have all failed because da Vinci didn’t understand materials or forces or structures or math or any engineering requirements. He never built any of his inventions; he simply drew them and in a few cases built small, non-working models. Engineering requires a deep understanding of mathematics and science. It also requires testing and experimenting and calculating and retesting and improving, leading to eventual success. As Thomas Edison famously said, it is 1 percent inspiration and 99 percent perspiration. It requires more than just dreaming and drawing, which is as far as da Vinci ever got. Honoring da Vinci as an engineer, let alone a brilliant one, denigrates the accomplishments of those engineers who spend years planning and measuring and calculating and building and rebuilding and creating the wonderful inventions that simplify or improve our lives.

Give Credit Where Credit is Due

In summary, da Vinci was a great artist, debatably one of the best who ever lived. Certainly the most famous. But to call him an engineer, scientist, or mathematician, let alone a brilliant one, is simply not true and is an insult to those who devote their lives and their energies to these important human endeavors.

  1. Marion Boddy-Evans, Painting in the Style of Old Masters: Sfumato and Chiaroscuro, retrieved July 26, 2011.
  2. Seen with my own eyes, the bottom left corner was never completed.
  3. Leonardo Da Vinci Paintings, Inventions & Biography!, retrieved July 26, 2011.
  4. Adoration of the Magi,retrieved July 26, 2011.
  5. Giorgio Vasari, Lives of Seventy of the most eminent Painters, Sculptors and Architects (of the Renaissance), 1550.
  6. Leonardo Da Vinci Paintings, Inventions & Biography!, retrieved July 26, 2011.
  7. How Not to Think Like Leonardo da Vinci, retrieved July 26, 2011.
  8. The Beauty of the Golden Ratio, retrieved July 26, 2011.
  9. Dirk Huylebrouk, Lost in Triangulation: Leonardo da Vinci’s Mathematical Slip-Up, retrieved July 26, 2011.
  10. Norman W. Edmund, Scientific Method History, retrieved July 26, 2011.
  11. Brian Clegg, Review – The First Scientist, retrieved July 26, 2011.
  12. Web Gallery of Art, Drawings of engineering themes, retrieved July 26, 2011.
  13. Leonardo: the Man, His Machines, retrieved July 26, 2011.
  14. Ornithopter Flying Machines: The Ancient Origins of an Invention, retrieved July 26, 2011.

The Software IP Detective’s Handbook

My book on software intellectual property, a labor of love (and hate) for the last two years, has just been published by Prentice-Hall. The book is intended for several different audiences including computer scientists, computer programmers, business managers, lawyers, engineering consultants, expert witnesses, and high-tech entrepreneurs. Some chapters give easy-to-understand explanations of intellectual property concepts including copyrights, patents, and trade secrets. Other chapters are highly mathematical treatments describing quantitative ways of comparing and measuring software and software IP. The first chapter of the book outlines which chapters are most important for the different audiences.

Overall the book covers the following topics:

  • Key concepts of software intellectual property
  • Comparing and correlating source code for signs of theft or infringement
  • Uncovering signs of copying in object code when source code is inaccessible
  • Tracking malware and third-party code in applications
  • Using software clean rooms to avoid IP infringement
  • Understanding IP issues associated with patents, open source, and DMCA

You can purchase your copy from Amazon.com here.

Is Googling replacing programming?

In the past few years I’ve been interviewing students for job openings at my companies. Some students came from large, well-known universities while other came from small colleges. Some students had bachelor’s degrees in computer science while others had master’s degrees. One thing that many of these recent graduates had in common was that they couldn’t program competently.

I found that these graduating students were adept at finding code on the Internet. When I gave assignments to code a particular algorithm, I was seriously impressed with how quickly they were able to find the code online. When I asked them to modify the algorithm, they struggled. Also, testing and debugging code often seemed beyond their abilities. Many of them were unaware of debugging techniques that allow them to focus in on the problem, such as using breakpoints to isolate chunks of code or forcing conditions that cause certain code paths to be executed.

The art of commenting also seems to have been ignored in most computer science education programs as well as in many companies. In my companies, our coding standard requires that every routine, no matter how small, must have a header comment that describes the functionality of the routine, all input parameters, the output of the routine, and any other information that someone using the routine would need. Yet most programmers out of school, and many working in the industry, produce uncommented code that is difficult to understand, difficult to debug, and very difficult to maintain.

Can you imagine a medical program that didn’t teach how to stitch up a patient after surgery or use the latest CT scanner? University computer science departments need to take a serious look at the skills they’re teaching. At my companies, I now require prospective employees to sit down at a computer and write a program that works correctly according to a written specification, is fully commented, and is completely their own code. I hope that the percentage of graduates passing this test increases in future years.