diff options
author | Marcello Stanisci <marcello.stanisci@inria.fr> | 2016-02-19 16:04:57 +0100 |
---|---|---|
committer | Marcello Stanisci <marcello.stanisci@inria.fr> | 2016-02-19 16:04:57 +0100 |
commit | 0113b8eabb1f833bc8953384179da450876144e5 (patch) | |
tree | 8fd41a92203b5578a48dc4fcac4e4b573d81ce7b /src/frontend_blog | |
parent | 652332ea48f6e8160cd10c690755a0c38a0ae3ef (diff) |
fixing the "state" problem
Diffstat (limited to 'src/frontend_blog')
-rw-r--r-- | src/frontend_blog/essay_cc-fulfillment.php | 2 | ||||
-rw-r--r-- | src/frontend_blog/essay_contract.php | 4 | ||||
-rw-r--r-- | src/frontend_blog/essay_fulfillment.php | 5 | ||||
-rw-r--r-- | src/frontend_blog/essay_pay.php | 3 | ||||
-rw-r--r-- | src/frontend_blog/index.html | 44 |
5 files changed, 8 insertions, 50 deletions
diff --git a/src/frontend_blog/essay_cc-fulfillment.php b/src/frontend_blog/essay_cc-fulfillment.php index 5122d384..53d5baaa 100644 --- a/src/frontend_blog/essay_cc-fulfillment.php +++ b/src/frontend_blog/essay_cc-fulfillment.php @@ -11,7 +11,7 @@ session_start(); $payments = &pull($_SESSION, "payments", array()); - $payments[$article] = "payed"; + $payments[$article] = array("ispayed" => true); $fulfillment_url = url_rel("essay_fulfillment.php"); header("Location: $fulfillment_url"); die(); diff --git a/src/frontend_blog/essay_contract.php b/src/frontend_blog/essay_contract.php index 8a7c49f8..03ba6c17 100644 --- a/src/frontend_blog/essay_contract.php +++ b/src/frontend_blog/essay_contract.php @@ -19,7 +19,6 @@ include("../frontend_lib/util.php"); include("../frontend_lib/config.php"); include("./blog_lib.php"); - $article = get($_GET['article']); if (null == $article){ echo "Please land here just to buy articles"; @@ -63,7 +62,8 @@ $hc = $got_json["H_contract"]; session_start(); $payments = &pull($_SESSION, "payments", array()); - $payments[$article] = "inprogress"; + $payments[$article] = array("ispayed" => false); + log_string("ctr ".article_state_to_str($payments[$article])); echo $resp->body->toString(); } ?> diff --git a/src/frontend_blog/essay_fulfillment.php b/src/frontend_blog/essay_fulfillment.php index ce7497a3..7c0b4538 100644 --- a/src/frontend_blog/essay_fulfillment.php +++ b/src/frontend_blog/essay_fulfillment.php @@ -28,10 +28,11 @@ session_start(); $payments = get($_SESSION['payments'], array()); $my_payment = get($payments[$article]); + log_string("ffil " . article_state_to_str($my_payment)); $pay_url = url_rel("essay_pay.php"); $offering_url = url_rel("essay_offer.php", true); $offering_url .= "?article=$article"; - if ("payed" != $my_payment || null === $my_payment){ + if (false == $my_payment['ispayed'] || null === $my_payment){ $tid = get($_GET['tid']); $timestamp = get($_GET['timestamp']); // 1st time @@ -66,12 +67,12 @@ die(); } $hc = json_decode($resp->body->toString(), true)['H_contract']; + $my_payment['hc'] = $hc; $js_code = "executePayment('$hc', '$pay_url', '$offering_url')"; $cc_page = template("./essay_cc-form.html", array('article' => $article, 'jscode' => $js_code)); echo $cc_page; return; } - // control here == article payed $article = get_article($article); echo $article; diff --git a/src/frontend_blog/essay_pay.php b/src/frontend_blog/essay_pay.php index 217ada4e..d6611ad6 100644 --- a/src/frontend_blog/essay_pay.php +++ b/src/frontend_blog/essay_pay.php @@ -47,5 +47,6 @@ } session_start(); $payments = &pull($_SESSION, "payments", array()); - $payments[$article] = "payed"; + $payments[$article]['ispayed'] = true; + log_string("ispayed == true"); ?> diff --git a/src/frontend_blog/index.html b/src/frontend_blog/index.html index 79a6b98d..b9b02dec 100644 --- a/src/frontend_blog/index.html +++ b/src/frontend_blog/index.html @@ -144,50 +144,6 @@ Gakuin University <li><a name="stoc-Freedom-or-Power_003f" href="/essay_fulfillment.php?article=scrap1_43"><h3>43. Freedom or Power?</h3></a><div class="teasers_item"><p>In the free software movement, we stand for freedom for the users of software. We formulated our views by looking at what freedoms are necessary for a good way of life, and permit useful programs to foster a community of goodwill, cooperation, and collaboration. Our criteria for free software specify the freedoms that a program’s users need so that they can cooperate in a community. </p></div></li> <li><a name="stoc-Appendix-A_003a-A-Note-on-Software" href="/essay_fulfillment.php?article=scrap1_U.2"><h3><span class="roman">Appendix A: A Note on Software</span></h3></a><div class="teasers_item"><p>This section is intended for people who have little or no knowledge of the technical aspects of computer science. It is not necessary to read this section to understand the essays and speeches presented in this book; however, it may be helpful to those readers not familiar with some of the jargon that comes with programming and computer science. </p></div></li> <li><a name="stoc-Appendix-B_003a-Translations-of-the-Term-_0060_0060Free-Software_0027_0027" href="/essay_fulfillment.php?article=scrap1_U.3"><span class="roman"><h3>Appendix B: Translations of the Term “Free Software”</span></h3></a><div class="teasers_item"><p>The following is a list of recommended unambiguous translations of the term “free software” into various languages.</p></div></li> -======= - <li><a name="stoc-The-GNU-Manifesto" href="/essay_offer.php?article=scrap1_4"><h3>4. The GNU Manifesto</h3></a><div class="teasers_item"><p>The GNU Manifesto was written by Richard Stallman at the beginning of the GNU Project, to ask for participation and support. For the first few years, it was updated in minor ways to account for developments, but now it seems best to leave it unchanged as most people have seen it.</p></div></li> - <li><a name="stoc-Why-Software-Should-Not-Have-Owners" href="/essay_offer.php?article=scrap1_5"><h3>5. Why Software Should Not Have Owners</h3></a><div class="teasers_item"><p>Digital information technology contributes to the world by making it easier to copy and modify information. Computers promise to make this easier for all of us. </p></div></li> - <li><a name="stoc-Why-Software-Should-Be-Free" href="/essay_offer.php?article=scrap1_6"><h3>6. Why Software Should Be Free</h3></a><div class="teasers_item"><p>The existence of software inevitably raises the question of how decisions about its use should be made. For example, suppose one individual who has a copy of a program meets another who would like a copy. It is possible for them to copy the program; who should decide whether this is done? The individuals involved? Or another party, called the “owner”? </p></div></li> - <li><a name="stoc-Why-Schools-Should-Exclusively-Use-Free-Software" href="/essay_offer.php?article=scrap1_7"><h3>7. Why Schools Should Exclusively Use Free Software</h3></a><div class="teasers_item"><p>There are general reasons why all computer users should insist on free software: it gives users the freedom to control their own computers—with proprietary software, the computer does what the software owner wants it to do, not what the user wants it to do. Free software also gives users the freedom to cooperate with each other, to lead an upright life. These reasons apply to schools as they do to everyone. </p></div></li> - <li><a name="stoc-Releasing-Free-Software-If-You-Work-at-a-University" href="/essay_offer.php?article=scrap1_8"><h3>8. Releasing Free Software If You Work at a University</h3></a><div class="teasers_item"><p>In the free software movement, we believe computer users should have the freedom to change and redistribute the software that they use. The “free” in “free software” refers to freedom: it means users have the freedom to run, modify and redistribute the software. Free software contributes to human knowledge, while nonfree software does not. Universities should therefore encourage free software for the sake of advancing human knowledge, just as they should encourage scientists and other scholars to publish their work.</p></div></li> - <li><a name="stoc-Why-Free-Software-Needs-Free-Documentation" href="/essay_offer.php?article=scrap1_9"><h3>9. Why Free Software Needs Free Documentation</h3></a><div class="teasers_item"><p>The biggest deficiency in free operating systems is not in the software—it is the lack of good free manuals that we can include in these systems. Many of our most important programs do not come with full manuals. Documentation is an essential part of any software package; when an important free software package does not come with a free manual, that is a major gap. We have many such gaps today. </p></div></li> - <li><a name="stoc-Selling-Free-Software" href="/essay_offer.php?article=scrap1_10"><h3>10. Selling Free Software</h3></a><div class="teasers_item"><p>Many people believe that the spirit of the GNU Project is that you should not charge money for distributing copies of software, or that you should charge as little as possible—just enough to cover the cost. This is a misunderstanding.</p></div></li> - <li><a name="stoc-The-Free-Software-Song" href="/essay_offer.php?article=scrap1_11"><h3>11. The Free Software Song</h3></a><div class="teasers_item"><p>The lyrics of “The Free Software Song” are sung to the melody of the Bulgarian folk song “Sadi moma bela loza.”</p></div></li> - <li><a name="stoc-What_0027s-in-a-Name_003f" href="/essay_offer.php?article=scrap1_12"><h3>12. What’s in a Name?</h3></a><div class="teasers_item"><p>Names convey meanings; our choice of names determines the meaning of what we say. An inappropriate name gives people the wrong idea. A rose by any other name would smell as sweet—but if you call it a pen, people will be rather disappointed when they try to write with it. And if you call pens “roses,” people may not realize what they are good for. If you call our operating system Linux, that conveys a mistaken idea of the system’s origin, history, and purpose. If you call it GNU/Linux, that conveys (though not in detail) an accurate idea. </p></div></li> - <li><a name="stoc-Categories-of-Free-and-Nonfree-Software" href="/essay_offer.php?article=scrap1_13"><h3>13. Categories of Free and Nonfree Software</h3></a><div class="teasers_item"><p>Free software is software that comes with permission for anyone to use, copy, and/or distribute, either verbatim or with modifications, either gratis or for a fee. In particular, this means that source code must be available. “If it’s not source, it’s not software.”</p></div></li> - <li><a name="stoc-Why-Open-Source-Misses-the-Point-of-Free-Software" href="/essay_offer.php?article=scrap1_14"><h3>14. Why Open Source Misses the Point of Free Software</h3></a><div class="teasers_item"><p>When we call software “free,” we mean that it respects the users’ essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.” </p></div></li> - <li><a name="stoc-Did-You-Say-_0060_0060Intellectual-Property_0027_0027_003f_0040entrybreak_007b_007dIt_0027s-a-Seductive-Mirage" href="/essay_offer.php?article=scrap1_15"><h3>15. Did You Say “Intellectual Property”? It’s a Seductive Mirage</h3></a><div class="teasers_item"><p></p></div></li> - <li><a name="stoc-Words-to-Avoid-_0028or-Use-with-Care_0029--Because-They-Are-Loaded-or-Confusing" href="/essay_offer.php?article=scrap1_16"><h3>16. Words to Avoid (or Use with Care) <br>Because They Are Loaded or Confusing</h3></a><div class="teasers_item"><p>There are a number of words and phrases that we recommend avoiding, or avoiding in certain contexts and usages. Some are ambiguous or misleading; others presuppose a viewpoint that we hope you disagree with. </p></div></li> - <li><a name="stoc-The-Right-to-Read_003a-A-Dystopian-Short-Story" href="/essay_offer.php?article=scrap1_17"><h3>17. The Right to Read: A Dystopian Short Story</h3></a><div class="teasers_item"><p>For Dan Halbert, the road to Tycho began in college—when Lissa Lenz asked to borrow his computer. Hers had broken down, and unless she could borrow another, she would fail her midterm project. There was no one she dared ask, except Dan. </p></div></li> - <li><a name="stoc-Misinterpreting-Copyright_002d_002d_002dA-Series-of-Errors" href="/essay_offer.php?article=scrap1_18"><h3>18. Misinterpreting Copyright—A Series of Errors</h3></a><div class="teasers_item"><p>Something strange and dangerous is happening in copyright law. Under the US Constitution, copyright exists to benefit users—those who read books, listen to music, watch movies, or run software—not for the sake of publishers or authors. Yet even as people tend increasingly to reject and disobey the copyright restrictions imposed on them “for their own benefit,” the US government is adding more restrictions, and trying to frighten the public into obedience with harsh new penalties.</p></div></li> - <li><a name="stoc-Science-Must-Push-Copyright-Aside" href="/essay_offer.php?article=scrap1_19"><h3>19. Science Must Push Copyright Aside</h3></a><div class="teasers_item"><p>It should be a truism that the scientific literature exists to disseminate scientific knowledge, and that scientific journals exist to facilitate the process. It therefore follows that rules for use of the scientific literature should be designed to help achieve that goal. </p></div></li> - <li><a name="stoc-Freedom_002d_002d_002dor-Copyright" href="/essay_offer.php?article=scrap1_20"><h3>20. Freedom—or Copyright</h3></a><div class="teasers_item"><p>Copyright was established in the age of the printing press as an industrial regulation on the business of writing and publishing. The aim was to encourage the publication of a diversity of written works. The means was to require publishers to get the author’s permission to publish recent writings. This enabled authors to get income from publishers, which facilitated and encouraged writing. The general reading public received the benefit of this, while losing little: copyright restricted only publication, not the things an ordinary reader could do. That made copyright arguably a beneficial system for the public, and therefore arguably legitimate. </p></div></li> - <li><a name="stoc-What-Is-Copyleft_003f" href="/essay_offer.php?article=scrap1_21"><h3>21. What Is Copyleft?</h3></a><div class="teasers_item"><p>Copyleft is a general method for making a program (or other work) free, and requiring all modified and extended versions of the program to be free as well.</p></div></li> - <li><a name="stoc-Copyleft_003a-Pragmatic-Idealism" href="/essay_offer.php?article=scrap1_22"><h3>22. Copyleft: Pragmatic Idealism</h3></a><div class="teasers_item"><p>Every decision a person makes stems from the person’s values and goals. People can have many different goals and values; fame, profit, love, survival, fun, and freedom, are just some of the goals that a good person might have. When the goal is a matter of principle, we call that idealism.</p></div></li> - <li><a name="stoc-Anatomy-of-a-Trivial-Patent" href="/essay_offer.php?article=scrap1_23"><h3>23. Anatomy of a Trivial Patent</h3></a><div class="teasers_item"><p>Programmers are well aware that many of the existing software patents cover laughably obvious ideas. Yet the patent system’s defenders often argue that these ideas are nontrivial, obvious only in hindsight. And it is surprisingly difficult to defeat them in debate. Why is that? </p></div></li> - <li><a name="stoc-Software-Patents-and-Literary-Patents" href="/essay_offer.php?article=scrap1_24"><h3>24. Software Patents and Literary Patents</h3></a><div class="teasers_item"><p>When politicians consider the question of software patents, they are usually voting blind; not being programmers, they don’t understand what software patents really do. They often think patents are similar to copyright law (“except for some details”)—which is not the case. For instance, when I publicly asked Patrick Devedjian, then Minister for Industry in France, how France would vote on the issue of software patents, Devedjian responded with an impassioned defense of copyright law, praising Victor Hugo for his role in the adoption of copyright. (The misleading term “intellectual property” promotes this confusion—one of the reasons it should never be used.) </p></div></li> - <li><a name="stoc-The-Danger-of-Software-Patents" href="/essay_offer.php?article=scrap1_25"><h3>25. The Danger of Software Patents</h3></a><div class="teasers_item"><p>I’m most known for starting the free software movement and leading development of the GNU operating system—although most of the people who use the system mistakenly believe it’s Linux and think it was started by somebody else a decade later. But I’m not going to be speaking about any of that today. I’m here to talk about a legal danger to all software developers, distributors, and users: the danger of patents—on computational ideas, computational techniques, an idea for something you can do on a computer. </p></div></li> - <li><a name="stoc-Microsoft_0027s-New-Monopoly" href="/essay_offer.php?article=scrap1_26"><h3>26. Microsoft’s New Monopoly</h3></a><div class="teasers_item"><p>European legislators who endorse software patents frequently claim that those wouldn’t affect free software (or “open source”). Microsoft’s lawyers are determined to prove they are mistaken. </p></div></li> - <li><a name="stoc-Introduction-to-the-Licenses" href="/essay_offer.php?article=scrap1_27"><h3>27. Introduction to the Licenses</h3></a><div class="teasers_item"><p>This part contains the text of the latest versions of the primary GNU licenses: the GNU General Public License (GNU GPL), the GNU Lesser General Public License (LGPL), and the GNU Free Documentation License (FDL). Though they are legal documents, they belong in this book of essays because they are concrete expressions of the ideals of free software. </p></div></li> - <li><a name="stoc-The-GNU-General-Public-License" href="/essay_offer.php?article=scrap1_28"><h3>28. The GNU General Public License</h3></a><div class="teasers_item"><p>The GNU General Public License is a free, copyleft license for software and other kinds of works. </p></div></li> - <li><a name="stoc-Why-Upgrade-to-GPLv3" href="/essay_offer.php?article=scrap1_29"><h3>29. Why Upgrade to GPLv3</h3></a><div class="teasers_item"><p>Version 3 of the GNU General Public License (GNU GPL) has been released, enabling free software packages to upgrade from GPL version 2. This article explains why upgrading the license is important. </p></div></li> - <li><a name="stoc-The-GNU-Lesser-General-Public-License" href="/essay_offer.php?article=scrap1_30"><h3>30. The GNU Lesser General Public License</h3></a><div class="teasers_item"><p>This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below.</p></div></li> - <li><a name="stoc-GNU-Free-Documentation-License" href="/essay_offer.php?article=scrap1_31"><h3>31. GNU Free Documentation License</h3></a><div class="teasers_item"><p>The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. </p></div></li> - <li><a name="stoc-Can-You-Trust-Your-Computer_003f" href="/essay_offer.php?article=scrap1_32"><h3>32. Can You Trust Your Computer?</h3></a><div class="teasers_item"><p>Who should your computer take its orders from? Most people think their computers should obey them, not obey someone else. With a plan they call “trusted computing,” large media corporations (including the movie companies and record companies), together with computer companies such as Microsoft and Intel, are planning to make your computer obey them instead of you. (Microsoft’s version of this scheme is called Palladium.) Proprietary programs have included malicious features before, but this plan would make it universal.</p></div></li> - <li><a name="stoc-Who-Does-That-Server-Really-Serve_003f" href="/essay_offer.php?article=scrap1_33"><h3>33. Who Does That Server Really Serve?</h3></a><div class="teasers_item"><p>Digital technology can give you freedom; it can also take your freedom away. The first threat to our control over our computing came from proprietary software: software that the users cannot control because the owner (a company such as Apple or Microsoft) controls it. The owner often takes advantage of this unjust power by inserting malicious features such as spyware, back doors, and Digital Restrictions Management (DRM) (referred to as “Digital Rights Management” in their propaganda). </p></div></li> - <li><a name="stoc-Free-but-Shackled_003a-The-Java-Trap" href="/essay_offer.php?article=scrap1_34"><h3>34. Free but Shackled: The Java Trap</h3></a><div class="teasers_item"><p>If your program is free software, it is basically ethical—but there is a trap you must be on guard for. Your program, though in itself free, may be restricted by nonfree software that it depends on. Since the problem is most prominent today for Java programs, we call it the Java Trap. </p></div></li> - <li><a name="stoc-The-JavaScript-Trap" href="/essay_offer.php?article=scrap1_35"><h3>35. The JavaScript Trap</h3></a><div class="teasers_item"><p>In the free software community, the idea that nonfree programs mistreat their users is familiar. Some of us refuse entirely to install proprietary software, and many others consider nonfreedom a strike against the program. Many users are aware that this issue applies to the plug-ins that browsers offer to install, since they can be free or nonfree. </p></div></li> - <li><a name="stoc-The-X-Window-System-Trap" href="/essay_offer.php?article=scrap1_36"><h3>36. The X Window System Trap</h3></a><div class="teasers_item"><p>To copyleft or not to copyleft? That is one of the major controversies in the free software community. The idea of copyleft is that we should fight fire with fire—that we should use copyright to make sure our code stays free. The GNU General Public License (GNU GPL) is one example of a copyleft license.</p></div></li> - <li><a name="stoc-The-Problem-Is-Software-Controlled-by-Its-Developer" href="/essay_offer.php?article=scrap1_37"><h3>37. The Problem Is Software Controlled by Its Developer</h3></a><div class="teasers_item"><p>I fully agree with Jonathan Zittrain’s conclusion that we should not abandon general-purpose computers. Alas, I disagree completely with the path that led him to it. He presents serious security problems as an intolerable crisis, but I’m not convinced. Then he forecasts that users will panic in response and stampede toward restricted computers (which he calls “appliances”), but there is no sign of this happening. </p></div></li> - <li><a name="stoc-We-Can-Put-an-End-to-Word-Attachments" href="/essay_offer.php?article=scrap1_38"><h3>38. We Can Put an End to Word Attachments</h3></a><div class="teasers_item"><p>Don’t you just hate receiving Word documents in email messages? Word attachments are annoying, but, worse than that, they impede people from switching to free software. Maybe we can stop this practice with a simple collective effort. All we have to do is ask each person who sends us a Word file to reconsider that way of doing things.</p></div></li> - <li><a name="stoc-Thank-You_002c-Larry-McVoy" href="/essay_offer.php?article=scrap1_39"><h3>39. Thank You, Larry McVoy</h3></a><div class="teasers_item"><p>For the first time in my life, I want to thank Larry McVoy. He recently eliminated a major weakness of the free software community, by announcing the end of his campaign to entice free software projects to use and promote his nonfree software. Soon, Linux development will no longer use this program, and no longer spread the message that nonfree software is a good thing if it’s convenient. </p></div></li> - <li><a name="stoc-Computing-_0060_0060Progress_0027_0027_003a-Good-and-Bad" href="/essay_offer.php?article=scrap1_40"><h3>40. Computing “Progress”: Good and Bad</h3></a><div class="teasers_item"><p>Bradley Horowitz of Yahoo proposed here that every object in our world have a unique number so that your cell phone could record everything you do—even which cans you picked up while in the supermarket.</p></div></li> - <li><a name="stoc-Avoiding-Ruinous-Compromises" href="/essay_offer.php?article=scrap1_41"><h3>41. Avoiding Ruinous Compromises</h3></a><div class="teasers_item"><p>The free software movement aims for a social change: to make all software free so that all software users are free and can be part of a community of cooperation. Every nonfree program gives its developer unjust power over the users. Our goal is to put an end to that injustice. </p></div></li> - <li><a name="stoc-Overcoming-Social-Inertia" href="/essay_offer.php?article=scrap1_42"><h3>42. Overcoming Social Inertia</h3></a><div class="teasers_item"><p>Almost two decades have passed since the combination of GNU and Linux first made it possible to use a PC in freedom. We have come a long way since then. Now you can even buy a laptop with GNU/Linux preinstalled from more than one hardware vendor—although the systems they ship are not entirely free software. So what holds us back from total success? </p></div></li> - <li><a name="stoc-Freedom-or-Power_003f" href="/essay_offer.php?article=scrap1_43"><h3>43. Freedom or Power?</h3></a><div class="teasers_item"><p>In the free software movement, we stand for freedom for the users of software. We formulated our views by looking at what freedoms are necessary for a good way of life, and permit useful programs to foster a community of goodwill, cooperation, and collaboration. Our criteria for free software specify the freedoms that a program’s users need so that they can cooperate in a community. </p></div></li> - <li><a name="stoc-Appendix-A_003a-A-Note-on-Software" href="/essay_offer.php?article=scrap1_46"><h3><span class="roman">Appendix A: A Note on Software</span></h3></a><div class="teasers_item"><p>This section is intended for people who have little or no knowledge of the technical aspects of computer science. It is not necessary to read this section to understand the essays and speeches presented in this book; however, it may be helpful to those readers not familiar with some of the jargon that comes with programming and computer science. </p></div></li> - <li><a name="stoc-Appendix-B_003a-Translations-of-the-Term-_0060_0060Free-Software_0027_0027" href="/essay_offer.php?article=scrap1_47"><span class="roman"><h3>Appendix B: Translations of the Term “Free Software”</span></h3></a><div class="teasers_item"><p>The following is a list of recommended unambiguous translations of the term “free software” into various languages.</p></div></li> - </ul> </section> </body> </html> |