Rule of Law, software, and stray cows
One of the hallmarks of a society that values freedom is the concept of Rule of Law, which basically means that people, even the people in charge, can’t just arbitrarily decide that they don’t like what someone else is doing and act to stop them or punish them for it. Instead we have laws that explain what’s not allowed, what the punishment for breaking them is, and how they are to be administered. That administration part is important. It means that if my neighbor steals something from me, I can’t go and throw him in prison, even if the punishment for it is prison time, because I’m not a law enforcement official.
In fact, we have laws that specifically say that if someone breaks the law, I’m not allowed to punish them for it, even if I was directly harmed by their actions, because I don’t have the authority to enforce the law. People who attempt to do so are known as vigilantes, and their actions are usually illegal, because vigilante justice is flawed in several fundamental ways. First, it’s not always easy to know if you’ve got the right guy. Second, even if you do have the right guy, you don’t know if there are extenuating circumstances for them having done what they did. (This idea goes a very long way, even to the most serious of crimes. It’s why there’s a legal distinction between “murder” and “killing in self-defense,” for example.) And third, even if you have the right guy and you know that they acted maliciously, what you might think of as a proper punishment for the crime may be way over the top, especially if you’re the injured party. This is why trials for particularly severe and shocking crimes are often held in a different community from where it was committed, to make it possible (or at least easier) to get an impartial jury with no personal stake in the matter.
What does this have to do with software? Well, if you’ve been following DelphiFeeds lately, you can probably guess.
Both Andreas Hausladen and Primoz Gabrijelcic have been bitten by Delphi’s copy protection system in the last few days. In fact, Gabr’s issue looks a whole lot like the problem I had with both Delphi 2010 and XE when I got them, which also required multiple calls to Embarcadero tech support to resolve. Technically, this specific problem isn’t actually in the licensing system; it’s in the installer, which for whatever insane reason takes the serial number you feed it, validates it, and then proceeds to install the feature set specified by the pre-existing license file if there is one. Then you can’t activate the product because the activation you give it doesn’t match what’s actually installed. But we all know that Delphi’s installer is crap anyway. It’s just one of those things we put up with because the language is worth it.
Things get a bit stranger with Andreas’s case. According to him:
It took me hours to identify which function hook in DDevExtensions caused the problem. But eventually I found it. It’s the dialog that asks for switching the project if you edit a file that isn’t part of the active project or its dependencies.
Umm… OK, I must be missing something here. What in the world does any of that have to do with product activation? Also, how did this get past testing? I know that Embarcadero does private field tests for updates before releasing them, and if I were to make a list of people I’d expect to be automatically invited to all such tests, “Andreas Hausladen” would be at the top of that list. For this update to have been released without being tested against Andreas’s system (or that of anyone else with DDevExtensions, for that matter) indicates a serious breakdown in the process somewhere.
But all of this is beside the point, which is that the activation system should never have been in Delphi in the first place. Such systems take the concept of the Rule of Law and laugh in its face. It’s nothing more than electronic vigilante justice, and flawed in all the same ways.
As recent events have shown, a copy-protection system is easy to confuse and often doesn’t know if it’s got a real illegitimate copy or not. And when it does, it doesn’t know if there’s a good reason for it or not. (It’s pretty common among tech-savvy gamers to buy a legitimate copy of a game, then never actually install it but instead install a cracked version, simply to avoid having to deal with trigger-happy DRM.) And most egregiously, when it (thinks it) detects an illegitimate copy, it reacts in a completely inappropriate way. Instead of notifying law enforcement, whose job it is to deal with people breaking the law, or notifying the copyright owner, who could then notify law enforcement, (possibly after having a real human being check it and verify that it’s a real illegitimate user and not Andreas Hausladen,) it disables the program. This is something that no programmer has any right to do under any circumstances!
Let me illustrate what I mean. I grew up on a farm. We had some cows, and they were our property. We could do what we wanted to with them–milk them, breed them, sell them, butcher them, etc–but we were also responsible for them. We had to check the fences and barn doors to make sure that they couldn’t get loose, or we’d hear complaints from neighbors. I don’t recall this ever happening, but if they’d made enough of a nuisance of themselves someone could have called the sheriff about it. But if a neighbor had decided that the cow was making too much of a nuisance of herself and shot her, then we’d be the ones calling the sheriff, because she was our property.
Likewise, if I own a computer, then it’s my property, and I have the right to use it as I see fit. I’m also responsible for its behavior. If I choose to put a program on there that isn’t legally there, then the neighbor has every right to call the sheriff and let the legal system work it out. But to preemptively shoot the computer, so to speak, by disabling its functionality, is to step way out of line! In any other context, subverting a computer owner’s control over that computer’s functionality, against the interests of the owner, is known as computer hacking, and is a serious crime. It’s true that this is legal in this specific case, but simply because abominations of law such as the DMCA turn common sense inside out doesn’t make it right. This is a big part of why the DMCA needs to be repealed. It weakens the Rule of Law that our cherished freedoms are built upon.
Perhaps more importantly to the parties involved in making these decisions, it also weakens the product’s sales. These days, copy protection is considered a misfeature by customers, almost universally. It costs sales from those who don’t want the hassle, and it doesn’t effectively prevent the product from being copied illegally. Delphi is no exception; how long does it usually take from the release of each new version to the corresponding Delphi Distiller update?
Bottom line: If a computer’s owner puts a file on it, whether data or an application, of their own free will and choice, no third party has the moral right to cause the computer to treat that file as anything other than 100% legitimate, without due process of law. Embarcadero needs to get out of the vigilante business before it costs them even more goodwill, a precious commodity that they can ill afford to lose right now.
We do use field testers and a large automated test suite. the R&D and QA teams are looking at a few issues in the recently released update (help file pdsk and DDevExtensions for example). So we do have more to test – but I would characterize the issues as very small. Andreas has even posted a blog message about the whole issue (or should I say Magilla Storm?) – On Andreas’ blog posted yesterday: http://andy.jgknet.de/blog/
DDevExtensions for XE Update 1 resurrection
Posted on November 14, 2010 by Andreas Hausladen
My last post about the death of DDevExtensions for XE Update 1 was an overreaction. It was late in the night, it was a copy protection problem and I wasn’t in the mood to fix this.
It took me hours to identify which function hook in DDevExtensions caused the problem. But eventually I found it. It’s the dialog that asks for switching the project if you edit a file that isn’t part of the active project or its dependencies.
The new DDevExtensions 2.1 for XE Update 1 that is identical to the original 2.1 version except for this hook is now available. That means no new bug fixes or new features.
I’m not sure that the comparison between software activation/disabling and vigilanteism is legitimate.
Nonetheless I agree that software activation is a pain in the neck for legitimate users, and not much of a problem for theives. For pragmatic reasons alone, I think Embarcadero should drop the activation system.
Rob: All right, would you care to explain why it’s not a good analogy?
I think the analogy is spot on. For one thing, it short-circuits the right to a fair trial and the presumption of innocence which is the norm in some (many?) legal systems, and is the only valid starting point for any such system imho.
Copy protection, when it fails, fails on an assumption of GUILT and a requirement on the part of the accused (and in this case, the VICTIM of the copy protection system) to prove their innocence.
And as numerous experiments have shown, how you treat people often then determines how they respond to/treat you. Treat people like software pirates and guess what? They BECOME software pirates.
As Mason says, people who would otherwise not choose to use pirated/cracked software DO SO BECAUSE of copy protection systems that will interfere with their legitimate use of a product they have bought and paid for the right to use and enjoy without such annoyances.
When such pirates/cracks are not available, many people, ESPECIALLY new users (or indeed *potential* new users) won’t just put up with the inconvenience, they look for an alternative that doesn’t treat them as criminals as the starting point of their user experience.
For the record – I have absolutely no problems with copy protection in Delphi. Even more – I think that licensing in Delphi that allows you multiple installations is absolutely fair.
I was reacting purely to the incompetent technical support.
I have a question: What happens when Emba would go bankrupt? Which means, the activation servers are down. How can I activate then my several thousand dollar Delphi tool?
@Peter well if Embarcadero goes bankrupt then you better PRAY that someone will create a crack otherwise you will have your money wasted on a license that worths nothing… but I don’t think Embarcadero can go bankrupt anytime sooner than 5 years from now(at least) and if they do, Delphi 2009/2010/XE/2011(or whatever they want to call it) will be old by that time… just my 2 cents.
…or I am using Delphi 7 (needs no activation).
OW YEA!! Delphi 7 is the best Delphi release ever(personal opinion) after 8 years is still a IDE in which you can create high quality software.
I don’t like copy protection either. I don’t pirate software. Rob McDonell does have a point, though: most software is still owned by the publisher. It is only licensed to the user. This is one way in which the analogy breaks down, as all analogies eventually do. I still think the analogy is a good one, though. The author wants Due Process.
My D7 needs activation.
D5 was the best version.
Smooth install, small EXE files, good help, good docs, no 3rd party runtimes.
While I have no problems with an author/publisher wanting to be fairly compensated for a work. I take issue with the entire copyright system. The history of copyright law is marred with greed and abuses at the expense of the consumer. Perpetual copyright laws were used as an excuse for artificial price inflation. Every time something game changing appears those with power attempt to restrict its use until they can find a way to exploit it to maintain their position of power. Sheet music publishers lobbied to restrict the production of recorded music. When laws changed to protect the rights of the creator rather than the publisher, publishers started forcing transfer of ownership clauses. Disney heavily lobbied to extend the copyright term so they could hold onto works that were nearing expiration and will likely do so again. The whole system is just backward.
Yep, D7 does seem to need activation. Having said that, I have seen people refer in the past to being able to use it and just putting up with the “nag” of the bright red “Unregistered” notice in the splash screen, and I even seem to remember using D7 in that state for a long time myself many, many years ago.
But more recently when I’ve tried to ignore activation with the same installation media for D7, it resolutely refused to let me in.
I have no issue with copyright, nor fair reward/recognition for providing a product.
My problem with schemes such as those employed by Borcaderoprise, especially when as flawed as their is, is that it encourages and PROMOTES circumvention for legitimate purposes. This then lowers the “barrier to entry” for those seeking the same tools for illegitimate purposes.
The pirates aren’t inconvenienced by copy/license protection, ONLY legitimate users are inconvenienced.
OK, so a few people are inconvenienced by having to find how to disable/circumvent the system in the first place, but for them that isn’t an inconvenience, it’s a JOY – those are people that LIVE for that kind of thing. Sticking two fingers up to the establishment and tackling the sort of challenge it presents. And once that has been done, they of course like to share it, to show off what they have achieved, and the nature of this sort of copy/license protection is that it CREATES an audience for the results of their efforts.
So, the effect of copy/license protection is:
– creates fun and enjoyment for people who like to crack such systems
– negates it’s own purpose by fostering the creation of circumvention systems
– For pirates: No effect (other than the creation of joy/challenge/market).
– For legit users (choose one of):
– a) Creates an annoyance
– b) Creates an annoyance unless they too use the fruits of a pirates
work (turns a legit user into a nominal pirate)
– c) Encourages them to not become a legit user in the first
place either by just using the hacked version if they are aware
of it, or using an alternative product if they are not aware of
how to circumvent the system
As I already said in another place, if there’s enough people interested in a pirate Delphi (or just the pleasure to angry Embarcadero by breaking the copy protection), Delphi (RAD Studio / whatever name) will be pirated.
Remeber, D2010 was cracked within 3 weeks after the launching.
Embarcadero (and CodeGear/Borland) makes a great compiler, but they are simply awful at customer relations and communication. And in a time when industry focus is moving away from desktop developmetn, to mobile & web, you’d think they’d be going out of their way not to piss off their customers. But from this activation nonsense that treats customers like criminals, to their complete and utter failure of managing the news that Delphi XE would not be cross platform… They just keep shooting themselves in the foot. They used to simply blame Borland corporate for such things, but thats now long gone. I’ve come to conclude these problems are rooted in the group of people that actually work on Delphi – at least those on the marketing/executive side of things.
D7 Pro does not need activation. At least my copy doesnt. You can just turn off the nagging for registration and use the product normally. It might be different for Enterprise, I dont know.
A really easy to follow article . Whenever i read your blog i read a unique vision . And,you have chosen a really unique theme . I think i might make something similar for a future blog that i want to build . On top of that i really like most of the posts and your different point of view. Good Job