Why I won’t be signing the “Declaration of Internet Freedom” as it is

There’s been some buzz in the last few days about the Declaration of Internet Freedom penned by some prominent libertarians.

I wish I could sign on to this document. Actually, considering who appears on the list of signatories, I consider the fact that the composers didn’t involve me in drafting it to be a surprising mistake that I can only ascribe to a collective fit of absent-mindedness.

But, because neither I nor anyone else from the hacker tribe was involved, it has one very serious flaw.

Humility, yes, Rule of Law yes, Free Expression, yes, Innovation, Competition, Privacy…most of this document is good stuff, with exactly the sort of lucidity and bedrock concern for individual freedom that I expect from libertarians.

But it all goes pear-shaped on one sentence: “Open systems and networks aren’t always better for consumers.” This is a dreadful failure of vision and reasoning, one that is less forgivable here because libertarians – who understand why asymmetries of power and information are in general bad things – have very particular reasons to know better than this.

In the long run, open systems and networks are always better for consumers. Because, whatever other flaws they may have, they have one overriding virtue – they don’t create an asymmetrical power relationship in which the consumer is ever more controlled by the network provider. Statists, who accept and even love asymmetrical power relationships as long as the right sort of people are doing the oppressing, have some excuse within their terms of reference for failing to grasp the nasty second, third, and nth-order consequences of closed-system lock-in. Libertarians have no such excuse.

In the context of this Declaration, this defect is particularly sad because the composers could have avoided it without damage to any one of the other pro-market positions they wanted set forth. I actually agree that, as proposed in their next sentence, closed systems such as iOS should be free to compete against open systems such as Android; as the Declaration says, “let technologies evolve and intervene, if at all, only when an abuse of market power clearly harms consumers”. The proper libertarian stance in these contests is to tell government to butt out and then vote with your dollars for openness.

I am disappointed in the Declaration’s failure to get this crucial issue right. I hope there is still the option to amend it; and if not, that my objection and correction will reach as many people as the Declaration itself, and the two together will convey important lessons about what we must do to preserve and extend liberty.

75 comments

  1. Is there any point in having a competing Declaration with an amended Openness section?

    For that matter, is the Declaration itself open-source? I.e., can it be forked?

  2. Mrf. You’re treading the Stallman border here, Eric. After all, the principle that statement introduces is one you (and I) agree with, and if you are correct, then the market will choose Android (as you argue elsewhere it’s already doing).

    For what it’s worth, though, there are only two names on the signatory list I recognize, and one of them I only learned of very recently (Randy Barnett). How wide an uptake do you think this will actually have?

  3. This declaration is already sort of a fork from the original made by Free Press and EFF, which these groups apparently found to be too short. No such language there about open systems.

    The original declaration and website is this one:
    http://www.internetdeclaration.org/freedom

    Here’s EFF discussing and linking to it:
    https://www.eff.org/deeplinks/2012/07/time-members-congress-pledge-uphold-internet-freedom

    declarationofinternetfreedom.org seems to me some sort of attempted hijack of this effort.

  4. @ ESR
    The way I read the openness section is this: in an open market allow open systems and closed systems to compete with each other.

    Playing devils advocate here, I believe that they were more referring to the openness of the market. I mead why force out closed-source innovators just because they don’t release their source code or whatever?

    I also believe, like you, that a) they could’ve done a better job at wording it too, and getting feedback from the hacking community and the infrastructure gnomes, and b) that open source is better on it’s technical merits.

    That’s my take.

  5. Someone wrote once a very enlightning FAQ for asking smart questions:
    http://catb.org/~esr/faqs/smart-questions.html#idp29846432

    “When you are having problems with a piece of software, don’t claim you have found a bug unless you are very, very sure of your ground.”
    “When asking your question, it is best to write as though you assume **you** are doing something wrong, even if you are privately pretty sure you have found an actual bug.”

    The real website about the “declaration of Internet freedom” is not the website you’re pointing out:
    see http://duckduckgo.com/?q=Declaration+of+Internet+Freedom or https://www.eff.org/deeplinks/2012/07/time-members-congress-pledge-uphold-internet-freedom

    The http://declarationofinternetfreedom.org/ is a fork, a fake, whatever, but it has nothing to do with the official website which is located at http://www.internetdeclaration.org/freedom

    No one from the original declaration claimed “Open systems and networks aren’t always better for consumers.”

    1. >The http://declarationofinternetfreedom.org/ is a fork, a fake, whatever, but it has nothing to do with the official website which is located at http://www.internetdeclaration.org/freedom

      How very strange. As you say, the http://www.internetdeclaration.org/freedom does not have the objectionable sentence in it, and it does look like the one I landed on is some sort of fork. I was unaware of the other one until you and another commenter mentioned it.

      I don’t think describing it as a “fake” is quite right. Most likely it was intended as a friendly fork, developing the rationale in a libertarian direction. I can sympathize with the intention, even though I think they they blundered badly.

  6. Thanks ESR, A “Declaration of internet freedom” should not reduce the cornerstone of that freedom: An open network! Closed systems will restore the dark Middle Ages where at the end we lose freedom.

    Mr Maynard: maybe Mr Stallman be right. Freedom is not a problem of the markets, is a human rights issue, and this is not a declaration by an “Internet Market” but the “Internet Freedom”.

  7. I don’t think the wording of this bit has anything to do with Android vs iOS per se – I think it’s far more likely to be a shot at Net Neutrality [which you’ve written on before, /?p=617]

  8. Denis, yes, indeed freedom is a human rights issue. This must include the freedom to make choices you disagree with. You raise the classic Stallmanite argument, and would probably claim I should not be able to purchase the iPhone I use daily. To hell with that noise.

  9. They put that in because closed systems are outcompeting open ones in the market.

    Hint: One of the few ways to make malware proliferation a tractable problem is whitelisting.

  10. Looking at the two different versions (and assuming they are indeed related in terms of one being a fork of the other, rather than being a coincidence), it seems even more likely that the one linked in the OP is an attempt to convince people who weren’t sure that the telcos’ position on Net Neutrality is the “correct” libertarian one. The bit about iOS vs Android (which I didn’t notice on my first read was actually mentioned) is a distraction from this. iOS vs Android, or their respective models, is not a subject for policymaking – nobody is proposing to ban iOS or Apple’s model.

    1. >it seems even more likely that the one linked in the OP is an attempt to convince people who weren’t sure that the telcos’ position on Net Neutrality is the “correct” libertarian one.

      Your explanation is theoretically possible, but I know Virginia Postrel personally and Randy Barnett through his writings. I don’t see either of them having any stake in defending the telcos’ position on net neutrality per se, unless they’re honestly convinced that this is essential to defending free markets and personal liberty.

      I have expressed my libertarian view of the matter here; in brief, the telcos are evil but “net neutrality” activists are often idiots whose political take on the situation plays directly into the telcos’ hands.

  11. @Eric “When you are having problems with a piece of software, don’t claim you have found a bug unless you are very, very sure of your ground”

    I forgot he wrote that. I don’t think he believes it anymore: http://esr.ibiblio.org/?p=1705

    (Maybe this was a real optimizer bug, maybe it wasn’t, but vanishing after a compiler upgrade is not any kind of proof, and I have to wonder what in the isgps_parity function requires the lint flag “charint” to be set.)

    1. >I forgot he wrote that. I don’t think he believes it anymore: http://esr.ibiblio.org/?p=1705

      I still do. It’s not just that a compiler upgrade made the bug go away, it’s that the bug could also be made to vanish by turning off optimization. I’m aware of the theoretical arguments and edge cases demonstrating that this doesn’t necessarily mean a toolchain bug, but in my experience that’s the way to bet.

      I don’t reach for this explanation casually. In 40 years of programming (36 if you only want to count doing it semi-professionally or professionally) I only believe I’ve seen such bugs in my own code about three times. I’ll be surprised if I see another one this decade.

      1. >I have to wonder what in the isgps_parity function requires the lint flag “charint” to be set.

        charint is a very silly flag. It tells splint not to object to the normal C behavior of mixing chars and ints. In this case all it’s doing is preventing splint from complaining about a character-array initializer that contains small integer constants.

  12. Thinking about it, I think your experience may be biased by your generally high level of skill. When people come into an IRC channel with a random piece of code that’s broken by optimization, it’s more likely they’re doing something stupid that you might never do or might catch immediately, like modifying a variable twice between sequence points, or depending on the value of an uninitialized variable, or dereferencing a null pointer – compiler optimizations can legitimately make these behave strangely even in cases that would work if you have reasonable-sounding assumptions such as: an uninitialized variable will have an arbitrary [but real and stable] value, dereferencing a null pointer will cause an invalid page fault. Does “for(int i=0;i!=0;i++) ;” ever terminate? Not with optimizations – “signed integer values wrap around on overflow” is another one of those reasonable-sounding assumptions, especially on a platform where they appear to do so in most situations – and, no, it’s not actually implied by a platform where integers are defined as twos-complement – that just nails down the results of bitwise operations on negative numbers.

    Anyway, even if it was a optimizer bug – and it probably was, all things considered – that doesn’t mean it was actually fixed in the next version. It could even to this day be lurking in some corner case, waiting to resurface when the ground shifts again in the next version. It also doesn’t mean it can’t trigger in the future with the code that was rewritten today to avoid it.

    (as for the charint thing… integer _constants_ seriously? There’s never been a version of C where that was not allowed – I’d have thought it’d only apply to using integer _variables_, or more complicated expressions, in that way.)

    1. >Thinking about it, I think your experience may be biased by your generally high level of skill.

      Oh, yes, that is certainly the case. I think you need to have decades of experience and uncommon skill before claiming “it’s a compiler bug” shouldn’t get you laughed at.

      xkcd could probably have fun cartooning a graph that plotted “plausibility of claiming to have found a compiler bug” versus “years of experience”.

      >integer _constants_ seriously?

      Yes, seriously. Splint is that anal-retentive by design. Often this is a pain in the ass. Occasionally it will save your butt.

  13. Anyway, back to the declaration – I’ll take your word on the names you’re familiar with, but ask if you’re sure they haven’t been fooled (maybe by the other names on the list – maybe by whoever wrote it – there’s a signatory list but no byline). The page itself makes me suspicious because it suggests its only disagreement with the original declaration is how short it is, when in fact it departs from it on key policy points. In particular, the “access” point of the original doesn’t sound very libertarian – it sounds like, if anything, an argument for expansion of the [as I understand it] current practice of requiring providers to subsidize rural areas that would otherwise be too expensive with their revenue from urban ones. Now, that’s me reading between the lines, but I’ll note the revised declaration doesn’t address the issue of rural access at all – assuming the market will take care of it, I suppose. Whichever side you agree with, it is a real difference and not just a matter of elaborating the same ideas in the other shorter version.

    1. >I’ll take your word on the names you’re familiar with, but ask if you’re sure they haven’t been fooled (maybe by the other names on the list – maybe by whoever wrote it – there’s a signatory list but no byline).

      Am I sure? No, I’m not. It seems unlikely (these are bright people), but on the other hand I just had to slap them upside the head for a blunder. That increases the probability of your theory being correct above noise level.

  14. Sorry to hijack this post but…

    MALWARE ON FEDORA?

    This morning I got what was obviously spam that was supposedly from someone that sent me email (stored in a folder in a folder under Inbox) in Thunderbird. The sender’s name is not in my address book.

    At first I though “Oh my god, have I gotten malware on my Fedora box? Or does the Linux version of Thunderbird “run” things?

    Then I realized that in all likelihood, the email is from the guy it says or one of his employees and one of them has malware. (He runs a software shop in India and has a lot of ill-paid programmers that turn over constantly.)

    I have been running Linux since Red Hat 3 (I think) in 2000, have never used anti-malware software (not counting the Linux firewall and hiding behind a router).

    Nevertheless the question should be asked from time to time…

    Does anyone running a Linux box use anti-malware software? Has anyone had malware get onto their Fedora box?

    Please don’t pollute this thread further by saying “No”, but if anyone out there has a “Yes”, I (and presumably others) would like to hear about it.

  15. The statement you reference fails on many levels.

    It isn’t a fact. It isn’t an aphorism. It isn’t a guiding principle. At best, it’s a mild advocacy of a political-economic bias. Worst of all, it’s unnecessarily extraneous and engenders division in a document which hopes to coalesce individualists upon common ground.

    The document needs a good editor.

  16. @Brian Marshall – I don’t use Fedora, but as a data/anecdote point, I will confirm that Linux is not immune to malware – I had some sort of IRC bot infect my machine, apparently using my minecraft server as a vector – it was running as that server’s user account [it could not or did not escalate itself to root], and had installed itself into crontab. I only detected it when investigating bandwidth problems a week later. I don’t know if this was self-propagating or if it was someone scanning the net for minecraft servers to exploit a vulnerability. Linux has no special immunity to malware that can work within ordinary user privileges, particularly with inattentive users who might not even notice something that makes no effort to cover itself up.

  17. “Because, whatever other flaws they may have, they [open source systems] have one overriding virtue – they don’t create an asymmetrical power relationship in which the consumer is ever more controlled by the network provider.”

    From my point of view as a non-programming user, I am in an asymmetric power relationship whether I use open source or closed source. With closed source, I cannot read or modify the code, and so am in an asymmetric power relationship with the programmers who can. At best, I can ask for changes in the code and maybe offer money as an incentive for the programmers to make those changes.

    With open source, I also cannot read or modify the code (I am not a programmer, remember), and so I am also in an asymmetric power relationship with the programmers who can. Again, at best, I can ask for changes in the code and maybe offer money as an incentive for the programmers to make those changes.

    Open source systems do have some benefits over closed source, due to the greater number of programmers able to access the code. But for me as a non-programmer, those benefits are indirect, secondary, and not as great as ESR claims.

  18. ““Open systems and networks aren’t always better for consumers.”

    I’m nowhere near as upset about that as you are, because it’s *true*.

    Lets just take the example of iOS vs Android. One is closed, and the other is open. Yet the iPhone is the single most popular smartphone device, with a higher market share than several of the top selling Android phones combined, The iPad likely has a similar lead over its chief Android tablet competitors. There’s a reason for this.

    Apple is fanatic about user experience. As far as is possible, an Apple device does what it is designed to do, and is as simple to use as can be for what it does, Everything Just Works, the way the user is likely to expect it to. Apple’s Walled Garden is in service of this, because things that can be installed must meet Apple’s UX specs.

    This is *not* true for Android. (There is no inherent reason in Android why it’s not true. The issue is that no vendor of Android devices has developed their user experience to the level that Apple has with iOS.)

    The underlying religious belief in arguments like this is in “freedom of choice”, with more choice equaling more freedom, and hence “better”. This is a questionable assumption.

    What people often *want* is freedom *from* choice. More choice means more decisions that must be made in choosing, and more knowledge required to make those decisions. At some point, you can be overwhelmed with choices. You just want your options simplified.

    I don’t have (or want) an iPhone, and philosophically I’m an Android fan. But I understand why people might prefer an iPhone, and I don’t knock the choice. Freedom means people using what they *want* to use, and if a closed system device does a better job for them, so be it. The proper response for open fans in such cases isn’t railing about open vs closed – it’s addressing the issues that may make closed a better choice for users.

    1. >I’m nowhere near as upset about that as you are, because it’s *true*.

      You have not demonstrated this. All you have shown is that end users often do not understand the consequences of their choices very well. This is not news. and in fact vendors rely on their incomprehension – if users had such understanding, they might buy a closed-source game, but they wouldn’t touch a closed-source OS with a ten-foot pole.

  19. @Deep Lurker

    Your concept of power asymmetry is skewed. It’s the difference between having One developer you Must go to, or being able to go to Any Number of developers Of Your Choice, including yourself at utmost necessity.

  20. I don’t know if the page was changed since Eric read it, but the page now has a fairly clear “About” column which references several other declarations, including the short one EFF recognizes, similar documents from the 90’s, and at least one book. I guess you could call it a fork, or a reply. I’d call it a counterproposal.

  21. @ Random832

    Of course Linux isn’t immune from malware, but I haven’t seen any in about 12 years of running Linux. I don’t run any servers that I am aware of (like sqld, sshd, a ping server, html server, mail server, DNS server, etc.).

    Anyone had malware on Linux when not running an obvious server?

  22. I come across toolchain bugs pretty regularly, just because I’m the sort of programmer who writes the sort of code that breaks compilers. There have been about fifteen occasions in my adult lifetime when I’ve convinced myself I was dealing with one, and I’ve only been wrong once. (That one time, it turned out I was overflowing a signed integer, and thus MSVC was completely within its rights to make demons fly out my nose, and it did). Identifying a compiler bug isn’t really any different from identifying any other sort of bug:

    1. Identify the observed behavior and how it differs from the expected behavior. In the case of a compiler, this does *not* mean observing the behavior of your program. It means disassembling the generated object files and identifying which instructions are incorrect.

    2. Write a minimal test case that reproduces the faulty behavior.

    3. If possible (i.e., if working with an open source compiler), identify the code change to the compiler that introduced the bug, and/or produce a patch that fixes it.

    If you do all of these things, I will take your claim of a compiler bug seriously, regardless of whether you are Don Knuth or an undergraduate CS freshman. If you do none of them, I will not.

    Granted, even if you’ve done these things, it’s still possible that there’s no bug and you’re just misunderstanding the language semantics, as in the case I mentioned with MSVC. But, my taking-you-seriously threshold for that is a couple years of experience, not a couple decades.

    1. >it means disassembling the generated object files and identifying which instructions are incorrect.

      Nice theory. But in the case of the isgps.c code, I didn’t understand the C source affected by the bug. I still don’t; it’s a gnarly ball of bit twiddles doing black magic on binary packets encoded in a manner designed by Cthulhu to drive men mad. I have successfully modified isgps.c by using local tweaks and refactoring followed by regression testing, but despite the fact that I used to code in assembler and know the x86 instruction set pretty well I estimate my odds of being able to tell correct assembler code from incorrect in this case at approximately diddly over squat.

      Admittedly this is worst case, not just the single worst case I’ve seen in four decades but the worst I’ve heard credible details about. “If you’re not frightened of that code, you are perhaps blessed in your ignorance.” Assembler from Jay’s Second Life client would almost certainly be easier to grok.

      Still. There are times when the only possible response to anyone saying “Oh, just verify the assembler” is hollow laughter.

  23. >Anyone had malware on Linux when not running an obvious server?

    There have been successful attempts to run malicious scripts on Ubuntu desktops; scripts packaged in .deb packages claiming to be desktop themes, wallpapers and such and distributed at gnome-look.org.
    A user would, obviously, use sudo to install them, so such scripts would run with root privs and could do just about anything.
    I guess that counts as malware.

  24. @esr

    >All you have shown is that end users often do not understand the consequences of their choices very well. This is not news. and in fact vendors rely on their incomprehension – if users had such understanding, they might buy a closed-source game, but they wouldn’t touch a closed-source OS with a ten-foot pole.

    It sounds a lot like you are disagreeing here with a fundamental tenet of Austrian economics, which is that *individuals* are best placed to understand their own needs. People know their own objectives and preferences and tend to act rationally to achieve them.

    Are you saying that, actually, you know better? Because of your superior knowledge you are better placed to choose an OS for me than I am?

    1. >People know their own objectives and preferences and tend to act rationally to achieve them.

      There are several problems with this account. Rational action based on a broken (non-predictive) model of how things work can easily have pessimal results rather than optimal. Even if your predictive model is good, limited information can lead to bad choices. And even besides these issues, human beings have cognitive biases such as loss aversion that interfere with their ability to optimize for their “objective preferences”.

      These problems don’t usually have large consequences in analyzing the behavior of investors en masse, because markets reward the semblance of rationality whether the actor is actually rational or not, and punish irrationality no matter how superficially “rational” the thinking behind it is. (Some people think there’s an exception around the psychology of speculative bubbles, but that’s arguable for reasons I won’t go into yet.) Markets produce a distribution of behavior that approximates rationality, and the approximation gets better over longer periods.

      But when you propose instrumental rationality as a model of individual behavior you run into serious problems of timescale and information asymmetry that are very different from those affecting markets in the large. At the individual level the predictable irrationality of human beings really matters.

      >Are you saying that, actually, you know better? Because of your superior knowledge you are better placed to choose an OS for me than I am?

      My knowledge enables me to predict that if you choose a closed-source OS, you have dangerously underestimated the long-term harm to yourself from that choice.

  25. @Deep Lurker: In fact, if you want some change, you have more power vs. closed-source developers than you have vs. the open-source variety, simply because closed-source software is generally written for money, and you are a customer. Commercial software vendors want to please their customers so they sell more software. While there are exceptions, open-source hackers tend to stick to hacker projects that please them, with a lot less consideration for outsiders.

  26. @Deep Lurker:

    With open source, I also cannot read or modify the code (I am not a programmer, remember), and so I am also in an asymmetric power relationship with the programmers who can. Again, at best, I can ask for changes in the code and maybe offer money as an incentive for the programmers to make those changes.

    Let’s say I want to add a feature in GPSD to get it to output in protocol buffers, so i can pump the location of a mobile LInux machine to a Google Maps-based Web tracker.

    I plead my case to esr and company, and they turn me down flat, saying the current JSON output out to be good enough for anybody. Maybe my Web tracker doesn’t deal with JSON well, or maybe I prefer a binary protocol. Whatever.

    At this point, I have three options: I can offer one of the GPSD developers cold hard cash to develop the feature, I can write it myself, or, realistically, since it’s open source and written in C, I should be able to find any programmer who understands C and Unix, offering him or her cash to develop the feature.

    If this were a closed source software product, say “Microsoft GPS”, my only choice would be to hire Microsoft to add the feature. I would be at their mercy and they could make me pay anything they wanted.

    But, because it’s open source, the number of programmers that are available goes up exponentially, because there are literally millions of C programmers that understand Unix APIs. That means that my cost for getting the feature developed also goes down dramatically, basically because of supply and demand.

    That, Deep Lurker, is the power of open source for a non-programmer.

    (Alternatively, you could lean to code in C. There are plenty of tutorials, books, Web pages, reference manuals, etc., that you could use at your immediate disposal to learn C and Unix software development. Maybe it’s worth your time investment, maybe not. That depends on what your time is worth, I suppose.)

  27. “if users had such understanding, they might buy a closed-source game, but they wouldn’t touch a closed-source OS with a ten-foot pole.”

    With all due respect, Eric, you’re full of prunes.

    Many users who do have such understanding nevertheless buy Apples and IBM mainframes to run z/OS and even Itanics for VMS. And yes, even Windows.

    There’s more to the equation than simply having the OS be open source. Far more.

  28. To nitpick, these two statements are logically compatible:

    Open systems and networks aren’t always better for consumers.

    In the long run, open systems and networks are always better for consumers.

    1. >To nitpick, these two statements are logically compatible:

      They’re logically compatible in a formal way, but if you assert one in a rhetorical context like the Declaration you will effectively be denying the other.

  29. >It sounds a lot like you are disagreeing here with a fundamental tenet of Austrian economics, which is that *individuals* are best placed to understand their own needs. People know their own objectives and preferences and tend to act rationally to achieve them.

    Understanding their own needs doesn’t necessarily translate into understanding how best to satisfy them. And without specific knowledge trial-and-error is usually the best one can do, which can take a lot of time. I read Eric as pointing out that if they had the understanding of how open and closed source differ, many or most would choose otherwise than they have.

    1. >I read Eric as pointing out that if they had the understanding of how open and closed source differ, many or most would choose otherwise than they have

      That is correct.

  30. Ah, but as the saying goes, in the long term we are all dead. I have been a Mac user since 1986, and the closed-source nature of the Mac has done little or no harm to me. In fact, OS X is much more open source than the Mac OS used to be. So that trend, regarding Apple’s traditional OS, is going in your direction.

    True, iOS is a step backward from an open source p.o.v. I believe that was in part due to the differences between phones and PCs, and in part due to Apple’s fanatical devotion to UX. The latter does not bother me at all, because I believe I receive more personal benefit from that than I would from a pure open source OS, because (as I’ve argued here before) an open source UX is very likely to be, if not inevitably, inferior.

    I also believe (as I’ve also argued before) that Apple is now driving the entire computer industry, for everyone’s benefit. Without the iPhone, Android phones would look like Blackberrys. Without the iPad, there would be no tablet revolution. Without iOS, Android would be a shadow of what it is now. Competition is good for both sides, with Apple showing how things can be done, and Android following (sorry) with open source versions and pressuring Apple to be more open.

    Slightly OT, an example of Android fragmentation. A friend has started using a Square card reader to take credit card payments. In reading about it, I found this list of Devices with known issues. The iOS problem is fixable with an OS upgrade. The Android problems… not so much.

  31. @Morgan Greywolf: For some of us, learing to program at any meaningful level is in fact impossible. For others of us, it is merely more costly than buying control of Microsoft. Please don’t trot out “you can learn to program yourself” if you expect your arguments to be taken seriously.

    Also, you have left out one alternative that applies both in the case of GPSD and Microsoft GPS: You can pay to have any one of those “millions of C programmers” write an alt-GPS from scratch. This puts an upper bound to how large an advantage open source can theoretically have in any particular case – and in some cases the advantage may be zero. It may be easier to hire a programmer to start anew than to have him modify an existing open-source project.

  32. Apple and Microsoft have each put more functionality into end users’ hands immediately than the entire open source collective has.

    As an old Apple ad used to say, “The most powerful computer is the one you can actually use.”

  33. @Deep Lurker:

    This puts an upper bound to how large an advantage open source can theoretically have in any particular case – and in some cases the advantage may be zero. It may be easier to hire a programmer to start anew than to have him modify an existing open-source project.

    That might be true for a small project. Certainly won’t be true for a small change to a big project. Interestingly, the mere existence of the open source version often reduces this upper bound, because the new programmer can look to the existent source for guidance.

  34. @Jeff Read:

    Apple and Microsoft have each put more functionality into end users’ hands immediately than the entire open source collective has.

    OK, let’s remove anything BSD-related from Apple’s distro and see how that works for you.

  35. I come across toolchain bugs pretty regularly

    I once found a hardware bug. This was in, oh… 1985 on a VAX. I had written a FORTRAN-77 program that would plot X-Y graphs. It would pick scale increments based on the range of the data. A user found that in one case, the X scale wasn’t being plotted correctly.

    It looked like a bug in my program. No other software had any apparent problems. I kept stripping stuff out until I had a couple of lines that set a floating-point variable to… I can’t remember.. 1.4 and if you added a number between zero and 1.0 to it (I am just making up the details, it was long ago) you got a negative result.

    I can’t remember how I established that it wasn’t a compiler bug. The problem was fixed by replacing the floating-point board (about 8 x 24 inches) in a fridge sized processing unit.

  36. @ kn

    There have been successful attempts to run malicious scripts on Ubuntu desktops; scripts packaged in .deb packages claiming to be desktop themes, wallpapers and such and distributed at gnome-look.org.

    Fortunately, I don’t download desktops, wallpapers and suchlike; I am very conservative about what I install on my system.

    Thanks for the examples, though.

  37. The problem was fixed by replacing the floating-point board (about 8 x 24 inches) in a fridge sized processing unit.

    As I recall, that board cost a little more than $20,000.

  38. @deep lurker
    “It may be easier to hire a programmer to start anew than to have him modify an existing open-source project.”

    Notice the “start anew”. Apply this to bridge building or drug development or any other “open” R&D field. Starting anew means repeating all the errors again.

    The real benefit of FLOSS is that knowledge does not get lost. Debugged programs incorporate an awful lot of knowledge. Proprietary projects contain a lot of knowledge that simply will get lost at some point.

    1. >@esr: Don’t you mean ‘diddly times squat’?

      *snort*

      I meant diddly over squat for very small values of diddly and very large values of squat, of course. Ain’t free variables fun?

  39. “I meant diddly over squat for very small values of diddly and very large values of squat, of course.”

    Oh, good…for a while there, I thought I’d be forced to invoke L’Hopital’s Rule.

  40. “I estimate my odds of being able to tell correct assembler code from incorrect in this case at approximately diddly over squat.” – ultimately it looks like most of the actual assembler output would be very repetitive and uncreative, and not very hard at all to verify it corresponds to the C code. The relationship between the algorithm and whatever mathematical specification it is an implementation of may be complicated, but the algorithm itself is just table lookup, xor, repeat four times, shift, repeat with another subset of the bits. The question of _why_ this is done, and why those magic constants have the values they do, is beyond the scope of this verification.

  41. Incidentally, it looks like replacing the or operator with xor and removing the grouping parentheses associated with them would save a register and (I think, obviously testing is important) not change the actual result [since p<<1 doesn't share any bits with the rest of the terms].

    I suspect part of the algorithm could actually be done in parallel by having four different parity arrays each containing 6-bit values. (corresponding to the values of the current parity array with indexes ANDed with each of the 24 bytes of the magic constants). Of course, that would only be worth the extra complexity if this algorithm is executed enough times to be a performance bottleneck, since you would then have several orders of magnitude more magic numbers.

  42. “Playing devils advocate here, I believe that they were more referring to the openness of the market. I mead why force out closed-source innovators just because they don’t release their source code or whatever?”

    I think this indicates some confusion [i.e. between what you think and what I think; I’m not saying that one of us is necessarily wrong and the other right] about what role this sort declaration has. Should _I_ not refuse to buy the products of “closed-source innovators”? If I and like-minded people want to refuse to buy closed-source products, why _shouldn’t_ this be in a “declaration of internet freedom”, as a statement of the reasoning behind your decisions, and a request that other people do the same? The market doesn’t require that its participants don’t make decisions for ideological reasons. A boycott is a legitimate market force.

  43. Holy crap, I’m glad I let silly registration processes foil me from signing on. I don’t recall that language being on the initial site I visited. That is a horrible failure of understanding to put that language in such a document.

  44. These problems don’t usually have large consequences in analyzing the behavior of investors en masse, because markets reward the semblance of rationality whether the actor is actually rational or not, and punish irrationality no matter how superficially “rational” the thinking behind it is. (Some people think there’s an exception around the psychology of speculative bubbles, but that’s arguable for reasons I won’t go into yet.) Markets produce a distribution of behavior that approximates rationality, and the approximation gets better over longer periods.

    I’ll take a shot at it.

    Classical macroeconomic theory, including the Laws of Supply and Demand, deal with “producers” and “consumers” of a particular good or service, but don’t really discuss “speculators”. As usual, it would help to begin with some definitions.

    A player in a market can take on one or more roles. He can “produce” the good or service, adding it to the available pool to be “consumed”, which removes it from that pool. Some people act as both, but we normally only consider the net production/consumption in classifying a role. In the case of a service, which can’t very well be “produced” ahead of the time it’s “consumed”, things are a bit hairy, but the big picture remains the same.

    In the case of a distributor or retailer, arguably the original product is “consumed” in “producing” a derivative: I will not buy a shipping container full of Samsung monitors, but Micro Center did, and I bought two monitors from them. In this case, Micro Center “consumed” that shipping container and “produced” the individual monitors. I won’t buy a herd of cattle, but Wendy’s meat supplier will contract to purchase that much, so that they can sell them a large quantity of ground beef, a quarter pound of which may end up in my belly for lunch today.

    But if you’re buying something to resell, and you don’t do anything to add value to whomever you’re selling it, (even if what you’re adding is just the convenience of physically moving the goods closer to the ultimate consumer), and particularly if you never take physical possession of any commodity, but instead just buy/sell contracts to do so, you’re engaging in “speculation”. Because you’re not “producing” (adding to the supply ) or “consuming” (subtracting) the commodity in question in the long term, every purchase you make must be offset by an equal sale at some other time. A “speculator” can influence the price of a commodity in the short term, between the purchase and the sale (the latter may be a “short” sale that actually precedes the purchase), but he can’t do anything to the long-term market. The best he can hope to do is to earn a profit via arbitrage, by anticipating where the market will go and make a purchase if he thinks it’s going up, or a sale if he thinks it’s going down, then reverse the transaction after the move takes place.

    The speculator in this case is fundamentally no different from the person who notices that the market price for a commodity is higher in one place than in another, and figures to profit by buying it where it’s low and selling it where it’s high. The only difference is that the one is exploiting a geographic price gradient, and the other a temporal gradient. The latter is, of course, more difficult due to the fact that the future price can’t be known today, unless one can lock that price in by entering into a futures contract; which is a very valuable service that speculators provide to the producers and consumers who will gladly trade the chance that the price for future delivery may break in their favor, in exchange for the certainty today of what that price will be.

    The temporal arbitrageur provides valuable information to the producers and consumers about where the price is going in the future, by taking those positions in futures markets and by pushing today’s price in that direction, so that those producers and consumers can alter their behavior accordingly.

    Interestingly, Congress actually passed a law making it illegal to speculate in the onion market. The result of this law was to increase the volatility of onion prices, not to decrease it. The reason why should be obvious: When prices start to swing too wildly, speculators are more likely to be willing to bet they’ll swing back later, which helps soak up the price swing in the first place.

    Populists like Bill O’Reilly can rail against the Evil Speculators all they want, but they really can’t magically make prices lose all relationship to the fundamentals of supply and demand. When speculators go long, and the market goes down, or they go short and it goes up, they lose money. Thus the market informs those people that their prognostication techniques aren’t good enough. It also takes from them some of the capital necessary to speculate in the future, and redistributes it to the speculators who correctly took the opposite position, giving them more power to speculate.

  45. @The Monster:

    Populists like Bill O’Reilly can rail against the Evil Speculators all they want, but they really can’t magically make prices lose all relationship to the fundamentals of supply and demand. When speculators go long, and the market goes down, or they go short and it goes up, they lose money. Thus the market informs those people that their prognostication techniques aren’t good enough. It also takes from them some of the capital necessary to speculate in the future, and redistributes it to the speculators who correctly took the opposite position, giving them more power to speculate.

    This would all be true absent the government’s “too big to fail” intervention.

    FWIW, your comment alludes to the blurry line between speculation and consumption, but it might be worth mentioning that the very center of that blurry line, where speculation makes a lot of sense and is required for a functioning society, lies the concept of “insurance.”

  46. > “Open systems and networks aren’t always better for consumers.”
    Funny thing is, this would at least be a sane position (though I’d still disagree with it) if they’d left of the “for consumers” bit.

    Open systems and networks will always be better for consumers. But “better for consumers” need not always mean “better, period” (though I believe that, at least in this case, it does).

  47. Jon Brase,

    “Treat all economic questions from the viewpoint of the consumer, for the interests of the consumer are the interests of the human race.” – Frederic Bastiat

    That said, clearly, non-free systems can be good in the eyes of consumers, otherwise Apple and Microsoft would not exist, no? Or at least, they would exist in a seriously diminished capacity (Steve Balmers’ efforts not withstanding).

    So I think your wrong that open/free systems are always better for consumers. That makes the same mistake that so many liberals make in assuming that consumers are incapable of deciding what is good for them.

  48. @Patrick
    “This would all be true absent the government’s “too big to fail” intervention.”

    So the only reason why government should intervene against speculation is to correct the problems created by… government intervention.

    Funny how that works out, isn’t it?

  49. Don:

    I am glad that both Pauls have picked up on the phoniness of the “Declaration of Internet Freedom.”

  50. @esr
    >>I’m nowhere near as upset about that as you are, because it’s *true*.

    >You have not demonstrated this. All you have shown is that end users often do not understand
    >the consequences of their choices very well. This is not news. and in fact vendors rely on
    >their incomprehension – if users had such understanding, they might buy a closed-source
    > game, but they wouldn’t touch a closed-source OS with a ten-foot pole.

    How about folks who *have* the comprehension and make such choices anyway?

    For instance, about half the folks I know these days are hard-core techs – architects, developers, system administrators, network engineers. An assortment of them have resumes equivalent to yours, and have been in the game as long. They are quite familiar with the benefits of open source, and use open source tools daily. (Some have written them or contributed to them.) Guess what most of them use as workstations? One or another flavor of Mac running OS/X. While the Gnu Utilities bundled with it are open source, OS/X is not.

    Why? For the same reason you run Ubuntu as your preferred flavor of Linux. It Just Works. OS/X is a dandy development platform. Tell them they should use Linux instead and the response might be that they’d rather *use* the machine than tinker with it.

    And when we leave OS land and go to apps, you can still get similar answers, for good reasons. For instance, if you’re in the graphic arts, you use Photoshop. Period. The Gimp is *not* an adequate substitute.

    It helps if we remember that we all start from our own perspective on such things, but that our perspective isn’t the only one, nor is it necessarily the only *right* one.

    You’re lucky. You have existed entirely in the open source environment for decades. You use Linux as your OS. When you write code, you use GCC and Python. The code that you write is entirely open source, and you don’t make your living writing that code. You can adhere to your belief without difficulty.

    The rest of the world isn’t so fortunate. Sometimes it uses closed source because there is no open source alternative. Sometimes it uses closed source because the open source alternative simply isn’t as good. And sometimes folks are being paid to write code, and must use the OS they are writing for and the tools provided for it, like Windows and MS Visual C++.

    I feel the same way about this as I feel about an assortment of other topics: the real world is not always so neatly encapsulated, and you can’t always force things to fit a preexisting theory of how you think things *ought* to be.

    1. >Tell them they should use Linux instead and the response might be that they’d rather *use* the machine than tinker with it.

      This is still ignorance talking, then. My wife Cathy has used Linux on her main machine for years. Not only doesn’t she have to tinker with it, it’s pretty rare that I have to.

      You’re just saying, more elaborately, the same thing – users aren’t aware of the actual cost-benefit tradeoffs.

  51. This is still ignorance talking, then. My wife Cathy has used Linux on her main machine for years. Not only doesn’t she have to tinker with it, it’s pretty rare that I have to.

    I get the feeling that’s largely due to your savvy in choosing a hardware loadout that plays nice with Linux.

    See, it’s 2012 and X11 can and does go pear-shaped in a million different ways depending on your graphics card/monitor setup. This alone has been enough to frustrate more than one of my hacker acquaintances into purchasing Macs.

    Mercifully, the day is now in sight when X11 will die the death. But given the pace of such things, it will be a few years yet before Wayland will be ready for prime time.

    And that’s just graphics! Other subsystems — sound, webcam, WiFi — have wildly varying degrees of support depending on hardware. Assuming you can build your own desktop system and choose well-supported kit beforehand, that may not be a problem, but on laptops? Forget about it. Unless your laptop is incredibly old it will have at least one unsupported or “experimentally supported” piece of hardware in it. Even ThinkPads.

    Which is why I’d say about 2/3 of the hacker community has jumped ship to Macintosh. Apple has done the hard work for you — all you have to do is buy it, boot it up, and use it. Besides, a lot of Linux development these days is done “in the cloud” and Macs have a perfectly serviceable ssh client preinstalled.

  52. Curiously, fascist people like words like “symmetry” or “perfection” and, why not, “freedom”; just purist ideas.

    Power itself implies asymmetry. A plant lives thanks a lot of death happens underground. Nature law.

    To avoid that power get monopolized is good for all (even for those that like the idea). But the other extreme is bad too. The lack of measure is the real problem with humans. Without measure no policy reach a good end.

Leave a Reply to Baylink Cancel reply

Your email address will not be published. Required fields are marked *