EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Software Reuse In Embedded code

Started by steve June 15, 2011
On Wed, 22 Jun 2011 13:47:56 +0200, David Brown
<david@westcontrol.removethisbit.com> wrote:

>On 22/06/2011 11:10, Walter Banks wrote: >> >> >> David Brown wrote: >> >>> The biggest problems are exactly the opposite, especially with patents. >>> The patent holder will sue someone, who then has to pay to defend >>> themselves in court - and if the defendant believes the patent is >>> invalid, the burden of proof is on them to prove it invalid. This means >>> that in many cases, especially with software patents, the innocent >>> defendant in patent cases has to pay high legal costs - it is cheaper >>> for them to pay the protection money. >> >> Frivolous software patents are essentially a self correcting problem. >> They have a limited life and most of them have already died. >> > >If only that were true! > >There are huge numbers of software patents around, and /very/ few of >them would ever have been granted if the rules were followed - to get a >patent on something, it must be an /invention/ that is /new/, >/non-obvious/, and /useful/. Many people feel that a purely software >solution is not an "invention" - thus all pure software patents are >invalid and frivolous. Even if you allow that a software algorithm is >an "invention", the majority of granted patents are not new, or are at >least very similar to existing software or methods, and a very large >proportion are obvious to experts in the field.
IANAL. Software, by definition under U.S. law, falls under the category of mathematics and mathematics, again by law, are NOT patentable. It is perfectly legal for software to be part of a *process* that may be patentable. But under U.S. law, the process cannot consist of software alone. In this matter, the USPTO (possibly under political pressure) has made a unilateral decision to ignore the law. Most WIPO nations have followed the U.S. decision. There are a few nations that have amended their local IP laws to expressly permit "software invention", but as yet the U.S. is not one of them. George
On 22/06/11 18:49, George Neuner wrote:
> On Wed, 22 Jun 2011 13:47:56 +0200, David Brown > <david@westcontrol.removethisbit.com> wrote: > >> On 22/06/2011 11:10, Walter Banks wrote: >>> >>> >>> David Brown wrote: >>> >>>> The biggest problems are exactly the opposite, especially with patents. >>>> The patent holder will sue someone, who then has to pay to defend >>>> themselves in court - and if the defendant believes the patent is >>>> invalid, the burden of proof is on them to prove it invalid. This means >>>> that in many cases, especially with software patents, the innocent >>>> defendant in patent cases has to pay high legal costs - it is cheaper >>>> for them to pay the protection money. >>> >>> Frivolous software patents are essentially a self correcting problem. >>> They have a limited life and most of them have already died. >>> >> >> If only that were true! >> >> There are huge numbers of software patents around, and /very/ few of >> them would ever have been granted if the rules were followed - to get a >> patent on something, it must be an /invention/ that is /new/, >> /non-obvious/, and /useful/. Many people feel that a purely software >> solution is not an "invention" - thus all pure software patents are >> invalid and frivolous. Even if you allow that a software algorithm is >> an "invention", the majority of granted patents are not new, or are at >> least very similar to existing software or methods, and a very large >> proportion are obvious to experts in the field. > > IANAL. > > Software, by definition under U.S. law, falls under the category of > mathematics and mathematics, again by law, are NOT patentable. > > It is perfectly legal for software to be part of a *process* that may > be patentable. But under U.S. law, the process cannot consist of > software alone. In this matter, the USPTO (possibly under political > pressure) has made a unilateral decision to ignore the law. >
As far as I understand it, that's roughly correct. In particular, pure algorithm methods are classified as mathematics and unpatentable by law (in all countries, AFAIK). But the US Patent Office has happily accepted such patents for a long time.
> Most WIPO nations have followed the U.S. decision. There are a few > nations that have amended their local IP laws to expressly permit > "software invention", but as yet the U.S. is not one of them. >
I might be wrong here, so I don't want to sound /too/ definite. But I don't believe many other countries have allowed software patents. Like the USA, pure software patents are disallowed by law. But unlike the USA, other countries' patent offices follow that law. I have heard of a few cases of pure software patents having been granted in European countries (typically following a US patent), but in the great majority of cases, the US software patents are not valid outside of the US. Patents on inventions that /use/ software are, of course, allowed and are valid (and are no worse for hindering innovation and progress than most other types of patents - i.e., great in theory, but worse than useless in practice).
> George
On 22/06/11 18:36, George Neuner wrote:
> On Tue, 21 Jun 2011 10:02:06 +0200, David Brown > <david@westcontrol.removethisbit.com> wrote: > >> On 20/06/2011 20:44, George Neuner wrote: >>> On Mon, 20 Jun 2011 08:52:06 +0200, David Brown >>> <david@westcontrol.removethisbit.com> wrote: >>> >>>> (IANAL, and rules may vary from country to country.) >>>> >>>> Reverse engineering and other inspection is not a crime. It might be >>>> against a EULA or other license or contract, which makes it illegal but >>>> not a crime. Like copyright infraction, which is not a crime (and >>>> certainly not "piracy"), you can be sued for economic or other loses by >>>> the injured party, but it is not a crime (meaning you are prosecuted by >>>> the state, and can be jailed) unless you are economically motivated and >>>> working on a reasonably large scale. (There are other exceptions where >>>> your activities are a crime if you live in the land of Micky Mouse laws.) >>>> >>>> If you are doing the reverse engineering for the purposes of >>>> compatibility or interaction, then it is in fact legal regardless of >>>> what the EULA says - most EULAs contain clauses that are not legally >>>> enforceable. >>> >>> IANAL either ... >>> >>> ... but unfortunately in the USA, some reverse engineering IS a crime. >>> The DMCA (Digital Millenium Copyright Act) forbids most use cases of >>> reverse engineering encryption/decryption, anti-copying and digital >>> rights management schemes. >> >> Perhaps my reference to Micky Mouse laws was too subtle, but that's what >> I meant. >> >> Apparently, the DMCA /does/ allow for reverse engineering for >> compatibility purposes, and for security issues, amongst its various >> exceptions. >> >>> >>> DMCA contradicts itself, patent law and consumer protection law ... >>> and few aspects of it have been challenged in court despite the law >>> being 15 years old. It has been amended a couple of times, but the >>> result has been that the law has only gotten murkier. >>> >> >> The DMCA contradicts most things, especially common sense and the basic >> human perception of fairness. > > Well, I happen to be related to two IP attorneys and count several > others as friends ... I considered going into IP law myself at one > point. IP attorneys are /required/ to have a science or engineering > background so they tend to be much more reasonable about things. > > Every one of them considers the DMCA a crock of $%^& and would love to > have a multi-million contra case to try. > >
That's interesting to know - I don't know any IP lawyers myself, and have not heard any personal opinions. Sometimes it is good for non-lawyers like myself to be reminded that lawyers (or at least some of them) are human too :-)
> >> Remember, courts and laws are a /legal/ system, not a /justice/ system - >> and the law has always been heavily biased towards who has the most >> money. (This is not just a criticism of the USA, though it is perhaps >> more obvious there than in most countries - it extends back at least as >> far as Roman times.) >> >>> Moreover ... and this just happened ... a new bill in Congress is >>> trying to make copyright infringement a punishable crime as opposed to >>> the civil offense it now is. This is very worrisome because it >>> interacts with the more nasty twists of DMCA which make it unclear >>> when, if ever, fair use applies. >>> >> >> What I always find difficult to understand is how this sort of thing can >> happen in a democracy. > > Your first mistake is thinking you live in a democracy ... you don't > (no matter where you live). I can't think of a single nation that > actually is a democracy. >
Switzerland comes closer than most - they hold regular public referendums on major issues rather than letting them be decided by the representatives.
> There are republics, federated republics, constitutional monarchies, > actual monarchies, dictatorships, theocracies, and some of the > apparent dictatorships might really be oligarchies (it's hard to tell > the difference sometimes) ... but AFAICS, no democracies. Some > countries may embrace classic democratic elements such as public > elections, but that doesn't make them democracies. > > In a democracy every voice is equal and every issue that affects the > public is put to collective vote. Any form of government that > involves representation rather than direct public involvement is not a > democracy. > > The fact that the U.S. is NOT a democracy is enshrined in the Pledge > of Allegience, which reads: > "... and to the Republic, for which it stands ...". > > The U.S. is, in fact, an example of a federated republic. For decades > now, schools have been misteaching and misleading students into > believing they live in a democracy. I normally don't subscribe to > conspiracy theory, but in this matter I have come to believe that this > particular misteaching is by design ... the misconception is far too > widespread to be the result of students misunderstanding their civics > lessons. > [YMMV and I really don't care to debate it ... at least not here.] >
I have always thought that the style of government used in the West could be called "representative democracy" (this can be applied to both republics like the USA and France, and kingdoms like the UK and Norway). A "representative democracy" is a sort of indirect democracy - you vote for people who will then vote on the issues. But I freely admit that I am no student of political science, and my terminology may not be accurate. I simply used the term "democracy" as a rough term meaning that the population as a whole is supposed to be responsible for how the country is governed and what laws it passes.
> >> You are supposed to be governed by the people, >> for the people. It is unlikely that you will find a single living >> person in the USA above the age of 5 who has never infringed on >> copyright - with the huge majority doing so regularly and knowingly. So >> this law would turn the entire population into criminals. >> >> Have you ever >> taped a program off the tele, and watched it more than once? Or kept >> the recording for more than 30 days? Go directly to jail, do not pass >> go and do not collect $200. > > Actually, recording television and radio for the purpose of > "time-shifting" is expressly PERMITTED by law regardless of the > idiotic warnings you hear during some broadcasts. That was settled by > the US Supreme Court back in the 1970s and subsequently was written > into copyright law. I don't have the cite handy, but time-shifting > falls under fair use and DMCA did change existing law regarding it. > > As you mentioned above, you must destroy a "time-shift" recording > within 30 days and you aren't permitted to profit in any way from it. > You can, however, watch it as many times as you wish within the time > limit. >
Maybe I got it wrong about the "watch it once" clause, or perhaps it varies between countries. Either way, the principle is the same - if you have kept a copy for more than 30 days, you've committed a copyright violation.
On 15/06/2011 15:03, steve wrote:
> What percentage would you say your current project consists of > software reuseable items? > > By software reusable items I mean something that you acquired > (purchased, freeware, shareware, licensed etc) which you had no > responsibility in the development, construction, or testing. You > reused them because the documentation was sufficient to convince you > of its quality.
0%. I've been bitten in the past by poor 3rd-party code. (Like perhaps a lot of perfectionists, I'm convinced that my code is the most robust code I've ever come across. It's taken 30+ years of embedded programming experience to code the way I do, and one day I shall write the Art of Embedded Programming and share my brilliance ;).) Looking "under the hood" of so-called commercial libraries, I'm terrified - the standard of coding from so-called expert houses is appalling. Fairly recently the head honcho of a certain well-known embedded RTOS supplier (whom I won't name) published his own personal coding guidelines. I'd not bought from them yet, but I certainly won't now. OTOH, the percentage of code that I've re-used from previous code *of mine* is quite high. I've been tuning, optimising, and re-using my own cooperative multitasker for around 20 years. Just recently re-used (and extended) a GPS library I originally used back when the GPS constellation was yet incomplete... Steve -- http://www.fivetrees.com
On 16/06/2011 05:53, Don Y wrote:
> > And there is a *cost* associated with each "deviation" we > encounter between the *expected* (and/or *documented*) > behavior of those "chips" and their *actual* behavior. I > suspect anyone who's had a development schedule ruined > because of a vendor's screwup is *really* hesitant to climb > back into bed with that same vendor!
<snip> Nothing to add; just wanted to applaud your post. Steve -- http://www.fivetrees.com
On Jun 22, 5:51=A0pm, Steve at fivetrees <st...@NOSPAMTAfivetrees.com>
wrote:
> On 15/06/2011 15:03, steve wrote: > > > What percentage would you say your current project consists of > > software reuseable items? > > > By software reusable items I mean something that you acquired > > (purchased, freeware, shareware, licensed etc) which you had no > > responsibility in the development, construction, or testing. You > > reused them because the documentation was sufficient to convince you > > of its quality. > > 0%. > > I've been bitten in the past by poor 3rd-party code. (Like perhaps a lot > of perfectionists, I'm convinced that my code is the most robust code > I've ever come across. It's taken 30+ years of embedded programming > experience to code the way I do, and one day I shall write the Art of > Embedded Programming and share my brilliance ;).) > > Looking "under the hood" of so-called commercial libraries, I'm > terrified - the standard of coding from so-called expert houses is > appalling.
Appalling or just difference of style, organization, and/or unfamilarity? You never been bitten with problems in your code? Code magically gets better just by studing it, it seems. Complexity can can only be reduced so much, and algorithms being coded are usually complex, so it's has to be studied to be appreciated. People tend to recode a rat's nest of code only to produce another rat's nest, but it's their familar rat's nest so it seems better. It's rare to meet a coder who doesn't says the "other guys code" is total crap, with the other guy returning like critique.:) Ultimately, I believe we rewrite code because we can. We probably do the same with all the hardware too if we had fab shop in the basement.

David Brown wrote:

> > Your first mistake is thinking you live in a democracy ... you don't > > (no matter where you live). I can't think of a single nation that > > actually is a democracy. > > > > Switzerland comes closer than most - they hold regular public > referendums on major issues rather than letting them be decided by the > representatives.
I lived in NH for about 3 years. Local annual town hall meetings involved most folks in making decisions and policy that affected the community. w..

David Brown wrote:

> > The whole issue of IP protection is to create an incentive for people > > and companies to risk a disproportionate amount of resources to > > the potential individual gain in the development of new ideas. A large > > percentage of these developments never produce enough revenue > > to pay development costs. Something is needed to to protect the > > ideas that are truly unique and useful. Real technical innovation has > > slowed down a lot in the last decade. > > > > Oh, I agree on the principle behind the original aim of patents - it's a > good idea to have a system that rewards innovation, inventiveness and > people willing to take risks for a good idea. It was designed to allow > small inventors to have a good idea and let big manufacturers > mass-produce the inventions for the public good, while letting the > inventor get a solid share of the profits. > > The trouble is that the modern patent system, especially in more modern > areas like software, simply does not do that. It fails in almost every > conceivable way, and is a very big reason why technical innovation has > slowed down. When technical companies spend more on lawyers than on > engineers, the system is unrecoverably broken.
The alternative is copyrights to protect software. The GNU GENERAL PUBLIC LICENSE http://www.gnu.org/licenses/gpl.html has done a lot to promote copyright as a primary means of software protection. From an industrial point of view software patents are preferable to copyrights, they have shorter life and do put technology in the public domain at the end of their life. Copyrights have traditionally been harder to defend but FSF has given us many case precedents that can now be used. w..
On 22.06.2011 11:10, Walter Banks wrote:

> Frivolous software patents are essentially a self correcting problem.
If only.
> They have a limited life
... which, compared to the usual speed of developments in this field of work we're in, is actually effectively infinite. Just about _nothing_ in this industry lasts anywhere as long as patents.
> The whole issue of IP protection is to create an incentive for people > and companies to risk a disproportionate amount of resources to > the potential individual gain in the development of new ideas.
That's the next problem with patenting software: for (pure) software work, that amount of resources is vanishingly small. The idea behing patents was to enable inventors to set up a production plant and produce the product themselves for a significant time (and thus, earnings) before anyone else gets a right to do the same thing for free. Getting software to market once you have it in a shape that could, conceivably, be worthy of a patent, costs essentially nothing in comparison. But the biggest flaw in the patent system, as applied to software, is that it is applied completely unjustly: if your work is pure software, you can _not_ get a patent yourself, but you're still supposed to pay others for theirs. Around here the relevant wording in the patent law is almost uncharacteristically clear and concise: "Software as such is un-patentable". They forgot to add ", nor can software as such be required a licence to use a patented method". Getting patents was always supposed to be a race among equals: the first to make it to the patent office with a valid application wins. Everybody else pays him. But it's utterly perverse to expect people who never even had a chance to participate in the race to participate in paying the prize. Among the perversions this has created are physical devices created and patented for no other purpose but to smuggle a software patent into the system.

Hans-Bernhard Br&#4294967295;ker wrote:

> On 22.06.2011 11:10, Walter Banks wrote: > > > Frivolous software patents are essentially a self correcting problem. > > If only. > > > They have a limited life > > ... which, compared to the usual speed of developments in this field of > work we're in, is actually effectively infinite. Just about _nothing_ > in this industry lasts anywhere as long as patents.
I would have agreed with you 20 years ago. Most of the frivolous patents were being filed about then. A surprisingly large amount of the current software actually is 20 or more years old. If for example GNU had been patented it would be in the public domain by now as it is it is protected by copyright and is years away from being in the public domain. New ideas in software development are getting rare which is why real breakthroughs should be commercially protected. w..

The 2024 Embedded Online Conference