Misplaced Pages

Open source

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In computing , source code , or simply code or source , is a plain text computer program written in a programming language . A programmer writes the human readable source code to control the behavior of a computer .

#543456

100-476: Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open source model is a decentralized software development model that encourages open collaboration . A main principle of open source software development is peer production , with products such as source code, blueprints , and documentation freely available to

200-423: A CD-ROM , can be done on Gopher. A Gopher system consists of a series of hierarchical hyperlinkable menus. The choice of menu items and titles is controlled by the administrator of the server. Similar to a file on a Web server, a file on a Gopher server can be linked to as a menu item from any other Gopher server. Many servers take advantage of this inter-server linking to provide a directory of other servers that

300-528: A Creative Commons license. The resulting cultural product is then available to download free (generally accessible) to anyone with an Internet connection. Older, analog technologies such as the telephone or television have limitations on the kind of interaction users can have. Through various technologies such as peer-to-peer networks and blogs , cultural producers can take advantage of vast social networks to distribute their products. As opposed to traditional media distribution, redistributing digital media on

400-441: A compiler or an assembler . The resulting executable is machine code ready for the computer. Alternatively, source code can be executed without conversion via an interpreter . An interpreter loads the source code into memory. It simultaneously translates and executes each statement . A method that combines compilation and interpretation is to first produce bytecode . Bytecode is an intermediate representation of source code that

500-719: A derivative work —such as a copy of a software program modified to fix a bug or add a feature, or a remix of a song—but are unable or unwilling to pay the copyright holder for the right to do so. Being organized as effectively a " consumers' cooperative ", open source eliminates some of the access costs of consumers and creators of derivative works by reducing the restrictions of copyright. Basic economic theory predicts that lower costs would lead to higher consumption and also more frequent creation of derivative works. Organizations such as Creative Commons host websites where individuals can file for alternative "licenses", or levels of restriction, for their works. These self-made protections free

600-462: A source-code editor that can alert the programmer to common errors. Modification often includes code refactoring (improving the structure without changing functionality) and restructuring (improving structure and functionality at the same time). Nearly every change to code will introduce new bugs or unexpected ripple effects , which require another round of fixes. Code reviews by other developers are often used to scrutinize new code added to

700-430: A trade secret . Proprietary, secret source code and algorithms are widely used for sensitive government applications such as criminal justice , which results in black box behavior with a lack of transparency into the algorithm's methodology. The result is avoidance of public scrutiny of issues such as bias. Access to the source code (not just the object code) is essential to modifying it. Understanding existing code

800-477: A "cloud" as specific information in a particular file, and the prominence of the FTP, influenced the technology and the resulting functionality of Gopher. Gopher is designed to function and to appear much like a mountable read-only global network file system (and software, such as gopherfs , is available that can actually mount a Gopher server as a FUSE resource). At a minimum, whatever can be done with data files on

900-669: A +. A Gopher+ server will respond with a status line followed by the content the client requested. An item is marked as supporting Gopher+ in the Gopher directory listing by a tab + after the port (this is the case of some of the items in the example above). Other features of Gopher+ include: These are clients, libraries, and utilities primarily designed to access gopher resources. Clients like web browsers, libraries, and utilities primarily designed to access World Wide Web resources, but which maintain(ed) gopher support. Browsers with no Gopher native support can still access servers using one of

1000-424: A Web server, "GET /" was used as a pseudo-selector to emulate an HTTP GET request . John Goerzen created an addition to the Gopher protocol, commonly referred to as " URL links", that allows links to any protocol that supports URLs. For example, to create a link to http://gopher.quux.org/ , the item type is h , the display string is the title of the link, the item selector is "URL:http://gopher.quux.org/", and

1100-529: A bottleneck. This led to the introduction of high-level programming languages such as Fortran in the mid-1950s. These languages abstracted away the details of the hardware, instead being designed to express algorithms that could be understood more easily by humans. As instructions distinct from the underlying computer hardware , software is therefore relatively recent, dating to these early high-level programming languages such as Fortran , Lisp , and Cobol . The invention of high-level programming languages

SECTION 10

#1732772140544

1200-407: A command line: The protocol is also supported by cURL since 7.21.2-DEV, which was released in 2010. The selector string in the request can optionally be followed by a tab character and a search string. This is used by item type 7. Gopher menu items are defined by lines of tab-separated values in a text file . This file is sometimes called a gophermap . As the source code to a gopher menu,

1300-482: A computer program in which the source code is available to the general public for use for any (including commercial) purpose, or modification from its original design. Open-source code is meant to be a collaborative effort, where programmers improve upon the source code and share the changes within the community. Code is released under the terms of a software license . Depending on the license terms, others may then download, modify, and publish their version (fork) back to

1400-437: A gophermap is roughly analogous to an HTML file for a web page . Each tab-separated line (called a selector line ) gives the client software a description of the menu item: what it is, what it is called, and where it leads to. The client displays the menu items in the order that they appear in the gophermap. The first character in a selector line indicates the item type , which tells the client what kind of file or protocol

1500-517: A meeting held at Palo Alto, California , in reaction to Netscape 's announcement in January 1998 of a source code release for Navigator . Linus Torvalds gave his support the following day, and Phil Hughes backed the term in Linux Journal . Richard Stallman , the founder of the free software foundation (FSF) in 1985, quickly decided against endorsing the term. The FSF's goal was to promote

1600-462: A more commercially minded position. In addition, the ambiguity of the term "free software" was seen as discouraging business adoption. However, the ambiguity of the word "free" exists primarily in English as it can refer to cost. The group included Christine Peterson , Todd Anderson, Larry Augustin , Jon Hall , Sam Ockman , Michael Tiemann and Eric S. Raymond . Peterson suggested "open source" at

1700-451: A more nuanced position than corporations have traditionally sought. Instead of seeing intellectual property law as an expression of instrumental rules intended to uphold either natural rights or desirable outcomes, an argument for OSC takes into account diverse goods (as in "the Good life") and ends. Sites such as ccMixter offer up free web space for anyone willing to license their work under

1800-496: A period character) on a line by itself. However, not all servers conform to this part of the protocol and the server may close a connection without returning a final full-stop. The main type of reply from the server is a text or binary resource. Alternatively, the resource can be a menu: a form of structured text resource providing references to other resources. Because of the simplicity of the Gopher protocol, tools such as netcat make it possible to download Gopher content easily from

1900-482: A product (or service) of economic value, which they make available to contributors and noncontributors alike." This definition captures multiple instances, all joined by similar principles. For example, all of the elements – goods of economic value, open access to contribute and consume, interaction and exchange, purposeful yet loosely coordinated work – are present in an open-source software project, in Misplaced Pages, or in

2000-459: A product's design or blueprint, and universal redistribution of that design or blueprint. Before the phrase open source became widely adopted, developers and producers used a variety of other terms. Open source gained hold in part due to the rise of the Internet. The open-source software movement arose to clarify copyright , licensing , domain , and consumer issues. An open-source license

2100-457: A product, movie or CD. By removing the cultural middlemen, messageboards help speed the flow of information and exchange of ideas. OpenDocument is an open document file format for saving and exchanging editable office documents such as text documents (including memos, reports, and books), spreadsheets , charts, and presentations. Organizations and individuals that store their data in an open format such as OpenDocument avoid being locked into

SECTION 20

#1732772140544

2200-420: A product. Copyright creates a monopoly so that the price charged to consumers can be significantly higher than the marginal cost of production. This allows the author to recoup the cost of making the original work. Copyright thus creates access costs for consumers who value the work more than the marginal cost but less than the initial production cost. Access costs also pose problems for authors who wish to create

2300-444: A project. The purpose of this phase is often to verify that the code meets style and maintainability standards and that it is a correct implementation of the software design . According to some estimates, code review dramatically reduce the number of bugs persisting after software testing is complete. Along with software testing that works by executing the code, static program analysis uses automated tools to detect problems with

2400-410: A proprietary license and charge for copies, or an open license. Some goods which require large amounts of professional research and development, such as the pharmaceutical industry (which depends largely on patents, not copyright for intellectual property protection) are almost exclusively proprietary, although increasingly sophisticated technologies are being developed on open-source principles. There

2500-524: A real time conversation online) and image uploading. Some messageboards use phpBB , which is a free open-source package. Where blogs are more about individual expression and tend to revolve around their authors, messageboards are about creating a conversation amongst its users where information can be shared freely and quickly. Messageboards are a way to remove intermediaries from everyday life—for instance, instead of relying on commercials and other forms of advertising, one can ask other users for frank reviews of

2600-484: A requirement to preserve the name of the authors and a copyright statement within the code, or a requirement to redistribute the licensed software only under the same license (as in a copyleft license). One popular set of open-source software licenses are those approved by the Open Source Initiative (OSI) based on their Open Source Definition (OSD). Social and political views have been affected by

2700-472: A single software vendor, leaving them free to switch software if their current vendor goes out of business, raises their prices, changes their software, or changes their licensing terms to something less favorable. Open-source movie production is either an open call system in which a changing crew and cast collaborate in movie production, a system in which the result is made available for re-use by others or in which exclusively open-source products are used in

2800-669: A software format, is published and made available to the public, enabling anyone to copy, modify and redistribute the hardware and source code without paying royalties or fees. Open-source hardware evolves through community cooperation. These communities are composed of individual hardware/software developers, hobbyists, as well as very large companies. Examples of open-source hardware initiatives are: Some publishers of open-access journals have argued that data from food science and gastronomy studies should be freely available to aid reproducibility . A number of people have published creative commons licensed recipe books. An open-source robot

2900-406: A specific platform, source code can be ported to a different machine and recompiled there. For the same source code, object code can vary significantly—not only based on the machine for which it is compiled, but also based on performance optimization from the compiler. Most programs do not contain all the resources needed to run them and rely on external libraries . Part of the compiler's function

3000-415: A string followed by a carriage return followed by a line feed (a "CR + LF" sequence). This is the selector, which identifies the document to be retrieved. If the item selector were an empty line, the default directory would be selected. The server then replies with the requested item and closes the connection. According to the protocol, before the connection closes, the server should send a full-stop (i.e.,

3100-416: A technology that makes webpages easily updatable with no understanding of design, code, or file transfer required. While corporations, political campaigns and other formal institutions have begun using these tools to distribute information, many blogs are used by individuals for personal expression, political organizing, and socializing. Some, such as LiveJournal or WordPress , use open-source software that

Open source - Misplaced Pages Continue

3200-432: A time when there were still many equally competing computer architectures and operating systems. As a result, there are several Gopher clients available for Acorn RISC OS , AmigaOS , Atari MiNT , Conversational Monitor System (CMS), DOS , classic Mac OS , MVS , NeXT , OS/2 Warp , most Unix-like operating systems, VMS , Windows 3.x , and Windows 9x . GopherVR was a client designed for 3D visualization, and there

3300-405: A user forum or community. They can also be present in a commercial website that is based on user-generated content . In all of these instances of open collaboration, anyone can contribute and anyone can freely partake in the fruits of sharing, which are produced by interacting participants who are loosely coordinated. An annual conference dedicated to the research and practice of open collaboration

3400-411: A vote, and the winner was announced at a press conference the same evening. Some economists agree that open-source is an information good or "knowledge good" with original work involving a significant amount of time, money, and effort. The cost of reproducing the work is low enough that additional users may be added at zero or near zero cost – this is referred to as the marginal cost of

3500-600: Is peer production , with products such as source code, blueprints , and documentation freely available to the public. The open-source movement in software began as a response to the limitations of proprietary code. The model is used for projects such as in open-source appropriate technology , and open-source drug discovery. The open-source model for software development inspired the use of the term to refer to other forms of open collaboration, such as in Internet forums , mailing lists and online communities . Open collaboration

3600-556: Is a communication protocol designed for distributing, searching, and retrieving documents in Internet Protocol networks. The design of the Gopher protocol and user interface is menu-driven, and presented an alternative to the World Wide Web in its early stages , but ultimately fell into disfavor, yielding to Hypertext Transfer Protocol ( HTTP ). The Gopher ecosystem is often regarded as the effective predecessor of

3700-408: Is a robot whose blueprints, schematics, or source code are released under an open-source model Free and open-source software (FOSS) or free/libre and open-source software (FLOSS) is openly shared source code that is licensed without any restrictions on usage, modification, or distribution. Confusion persists about this definition because the "free", also known as "libre", refers to the freedom of

3800-412: Is a type of license for computer software and other products that allows the source code , blueprint or design to be used, modified or shared (with or without modification) under defined terms and conditions. This allows end users and commercial companies to review and modify the source code, blueprint or design for their own customization, curiosity or troubleshooting needs. Open-source licensed software

3900-887: Is also thought to be the operating principle underlining a gamut of diverse ventures, including TEDx and Misplaced Pages. Open collaboration is the principle underlying peer production , mass collaboration , and wikinomics . It was observed initially in open-source software, but can also be found in many other instances, such as in Internet forums , mailing lists , Internet communities, and many instances of open content , such as Creative Commons . It also explains some instances of crowdsourcing , collaborative consumption , and open innovation . Riehle et al. define open collaboration as collaboration based on three principles of egalitarianism , meritocracy , and self-organization . Levine and Prietula define open collaboration as "any system of innovation or production that relies on goal-oriented yet loosely coordinated participants who interact to create

4000-442: Is an overarching term that can refer to a code's correct and efficient behavior, its reusability and portability , or the ease of modification. It is usually more cost-effective to build quality into the product from the beginning rather than try to add it later in the development process. Higher quality code will reduce lifetime cost to both suppliers and customers as it is more reliable and easier to maintain . Maintainability

4100-402: Is evidence that open-source development creates enormous value. For example, in the context of open-source hardware design, digital designs are shared for free and anyone with access to digital manufacturing technologies (e.g. RepRap 3D printers) can replicate the product for the cost of materials. The original sharer may receive feedback and potentially improvements on the original design from

Open source - Misplaced Pages Continue

4200-452: Is frequently cited as a contributing factor to the maturation of their programming skills. Some people consider source code an expressive artistic medium . Source code often contains comments —blocks of text marked for the compiler to ignore. This content is not part of the program logic, but is instead intended to help readers understand the program. Companies often keep the source code confidential in order to hide algorithms considered

4300-401: Is mostly available free of charge, though this does not necessarily have to be the case. Licenses which only permit non-commercial redistribution or modification of the source code for personal use only are generally not considered as open-source licenses. However, open-source licenses may have some restrictions, particularly regarding the expression of respect to the origin of software, such as

4400-496: Is necessary to understand how it works and before modifying it. The rate of understanding depends both on the code base as well as the skill of the programmer. Experienced programmers have an easier time understanding what the code does at a high level. Software visualization is sometimes used to speed up this process. Many software programmers use an integrated development environment (IDE) to improve their productivity. IDEs typically have several features built in, including

4500-443: Is open to the public and can be modified by users to fit their own tastes. Whether the code is open or not, this format represents a nimble tool for people to borrow and re-present culture; whereas traditional websites made the illegal reproduction of culture difficult to regulate, the mutability of blogs makes "open sourcing" even more uncontrollable since it allows a larger portion of the population to replicate material more quickly in

4600-470: Is quickly interpreted. The first programmable computers, which appeared at the end of the 1940s, were programmed in machine language (simple instructions that could be directly executed by the processor). Machine language was difficult to debug and was not portable between different computer systems. Initially, hardware resources were scarce and expensive, while human resources were cheaper. As programs grew more complex, programmer productivity became

4700-722: Is software which source code is published and made available to the public, enabling anyone to copy, modify and redistribute the source code without paying royalties or fees. LibreOffice and the GNU Image Manipulation Program are examples of open source software. As they do with proprietary software, users must accept the terms of a license when they use open source software—but the legal terms of open source licenses differ dramatically from those of proprietary licenses. Open-source code can evolve through community cooperation. These communities are composed of individual programmers as well as large companies. Some of

4800-631: Is that many software engineering courses do not emphasize it. Development engineers who know that they will not be responsible for maintaining the software do not have an incentive to build in maintainability. The situation varies worldwide, but in the United States before 1974, software and its source code was not copyrightable and therefore always public domain software . In 1974, the US Commission on New Technological Uses of Copyrighted Works (CONTU) decided that "computer programs, to

4900-598: Is the International Symposium on Wikis and Open Collaboration (OpenSym, formerly WikiSym). As per its website, the group defines open collaboration as "collaboration that is egalitarian (everyone can join, no principled or artificial barriers to participation exist), meritocratic (decisions and status are merit-based rather than imposed) and self-organizing (processes adapt to people rather than people adapt to pre-defined processes)." Open source promotes universal access via an open-source or free license to

5000-477: Is the quality of software enabling it to be easily modified without breaking existing functionality. Following coding conventions such as using clear function and variable names that correspond to their purpose makes maintenance easier. Use of conditional loop statements only if the code could execute more than once, and eliminating code that will never execute can also increase understandability. Many software development organizations neglect maintainability during

5100-418: Is to link these files in such a way that the program can be executed by the hardware. Software developers often use configuration management to track changes to source code files ( version control ). The configuration management system also keeps track of which object code file corresponds to which version of the source code file. The number of lines of source code is often used as a metric when evaluating

SECTION 50

#1732772140544

5200-562: The peer production community. Many open-source projects have a high economic value. According to the Battery Open Source Software Index (BOSS), the ten economically most important open-source projects are: The rank given is based on the activity regarding projects in online discussions, on GitHub, on search activity in search engines and on the influence on the labour market. Alternative arrangements have also been shown to result in good creation outside of

5300-549: The source code is available to the general public for use or modification from its original design. Code is released under the terms of a software license . Depending on the license terms, others may then download, modify, and publish their version (fork) back to the community. Many large formal institutions have sprung up to support the development of the open-source movement, including the Apache Software Foundation , which supports community projects such as

5400-479: The "Open Source Summit", the event was attended by the leaders of many of the most important free and open-source projects, including Linus Torvalds, Larry Wall , Brian Behlendorf , Eric Allman , Guido van Rossum , Michael Tiemann , Paul Vixie , Jamie Zawinski , and Eric Raymond. At that meeting, alternatives to the term "free software" were discussed. Tiemann argued for "sourceware" as a new term, while Raymond argued for "open source." The assembled developers took

5500-525: The Internet can be virtually costless. Technologies such as BitTorrent and Gnutella take advantage of various characteristics of the Internet protocol ( TCP/IP ) in an attempt to totally decentralize file distribution. Open-source ethics is split into two strands: Irish philosopher Richard Kearney has used the term "open-source Hinduism " to refer to the way historical figures such as Mohandas Gandhi and Swami Vivekananda worked upon this ancient tradition. Open-source journalism formerly referred to

5600-834: The Web, a small population of actively-maintained servers remains. The Gopher system was released in mid-1991 by Mark P. McCahill, Farhad Anklesaria, Paul Lindner, Daniel Torrey, and Bob Alberti of the University of Minnesota in the United States. Its central goals were, as stated in RFC   1436 : Gopher combines document hierarchies with collections of services, including WAIS , the Archie and Veronica search engines , and gateways to other information systems such as File Transfer Protocol (FTP) and Usenet . The general interest in campus-wide information systems (CWISs) in higher education at

5700-471: The World Wide Web. The Gopher protocol was invented by a team led by Mark P. McCahill at the University of Minnesota . It offers some features not natively supported by the Web and imposes a much stronger hierarchy on the documents it stores. Its text menu interface is well-suited to computing environments that rely heavily on remote text-oriented computer terminals , which were still common at

5800-581: The available Gopher to HTTP gateways or proxy server that converts Gopher menus into HTML ; known proxies are the Floodgap Public Gopher proxy and Gopher Proxy. Similarly, certain server packages such as GN and PyGopherd have built-in Gopher to HTTP interfaces. Squid Proxy software gateways any gopher:// URL to HTTP content, enabling any browser or web agent to access gopher content easily. For Mozilla Firefox and SeaMonkey , Overbite extensions extend Gopher browsing and support

5900-458: The client should expect. Item type 3 is an error code for exception handling . Gopher client authors improvised item types h (HTML), i (informational message), and s ( sound file ) after the publication of RFC 1436. Browsers like Netscape Navigator and early versions of Microsoft Internet Explorer would prepend the item type code to the selector as described in RFC   4266 , so that

6000-409: The community. The rise of open-source culture in the 20th century resulted from a growing tension between creative practices that involve require access to content that is often copyrighted , and restrictive intellectual property laws and policies governing access to copyrighted content. The two main ways in which intellectual property laws became more restrictive in the 20th century were extensions to

6100-415: The current versions of the browsers (Firefox Quantum v ≥57 and equivalent versions of SeaMonkey): OverbiteWX includes support for accessing Gopher servers not on port 70 using a whitelist and for CSO/ph queries . OverbiteFF always uses port 70. For Chromium and Google Chrome , Burrow is available. It redirects gopher:// URLs to a proxy. In the past an Overbite proxy-based extension for these browsers

SECTION 60

#1732772140544

6200-572: The development and use of free software, which they defined as software that grants users the freedom to run, study, share, and modify the code. This concept is similar to open source but places a greater emphasis on the ethical and political aspects of software freedom. Netscape released its source code under the Netscape Public License and later under the Mozilla Public License . Raymond was especially active in

6300-426: The development phase, even though it will increase long-term costs. Technical debt is incurred when programmers, often out of laziness or urgency to meet a deadline, choose quick and dirty solutions rather than build maintainability into their code. A common cause is underestimates in software development effort estimation , leading to insufficient resources allocated to development. A challenge with maintainability

6400-408: The domain and port are that of the originating Gopher server (so that clients that do not support URL links will query the server and receive an HTML redirection page). Gopher+ is a forward compatible enhancement to the Gopher protocol. Gopher+ works by sending metadata between the client and the server. The enhancement was never widely adopted by Gopher servers. The client sends a tab followed by

6500-507: The effort to popularize the new term. He made the first public call to the free software community to adopt it in February 1998. Shortly after, he founded The Open Source Initiative in collaboration with Bruce Perens . The term gained further visibility through an event organized in April 1998 by technology publisher Tim O'Reilly . Originally titled the "Freeware Summit" and later known as

6600-543: The exchange of money among all the manufacturers. By the time the US entered World War II , 92 Ford patents and 515 patents from other companies were being shared among these manufacturers, without any exchange of money (or lawsuits). Early instances of the free sharing of source code include IBM 's source releases of its operating systems and other programs in the 1950s and 1960s, and the SHARE user group that formed to facilitate

6700-428: The exchange of software. Beginning in the 1960s, ARPANET researchers used an open " Request for Comments " (RFC) process to encourage feedback in early telecommunication network protocols. This led to the birth of the early Internet in 1969. The sharing of source code on the Internet began when the Internet was relatively primitive, with software distributed via UUCP , Usenet , IRC , and Gopher . BSD , for example,

6800-406: The extent that they embody an author's original creation, are proper subject matter of copyright". Proprietary software is rarely distributed as source code. Although the term open-source software literally refers to public access to the source code , open-source software has additional requirements: free redistribution, permission to modify the source code and release derivative works under

6900-446: The general society of the costs of policing copyright infringement. Others argue that since consumers do not pay for their copies, creators are unable to recoup the initial cost of production and thus have little economic incentive to create in the first place. By this argument, consumers would lose out because some of the goods they would otherwise purchase would not be available. In practice, content producers can choose whether to adopt

7000-532: The ground to reach a desired location. The World Wide Web was in its infancy in 1991, and Gopher services quickly became established. By the late 1990s, Gopher had ceased expanding. Several factors contributed to Gopher's stagnation: Gopher remains in active use by its enthusiasts, and there have been attempts to revive Gopher on modern platforms and mobile devices. One attempt is The Overbite Project, which hosts various browser extensions and modern clients. The conceptualization of knowledge in "Gopher space" or

7100-443: The growth of the concept of open source. Advocates in one field often support the expansion of open source in other fields. But Eric Raymond and other founders of the open-source movement have sometimes publicly argued against speculation about applications outside software, saying that strong arguments for software openness should not be weakened by overreaching into areas where the story may be less compelling. The broader impact of

7200-427: The individual programmers who start an open-source project may end up establishing companies offering products or services incorporating open-source programs. Examples of open-source software products are: The Google Summer of Code , often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during

7300-707: The industry and force car manufacturers to adhere to their demands, or risk a lawsuit. In 1911, independent automaker Henry Ford won a challenge to the Selden patent . The result was that the Selden patent became virtually worthless and a new association (which would eventually become the Motor Vehicle Manufacturers Association ) was formed. The new association instituted a cross-licensing agreement among all US automotive manufacturers: although each company would develop technology and file patents, these patents were shared openly and without

7400-475: The instructions can be carried out. After being compiled, the program can be saved as an object file and the loader (part of the operating system) can take this saved file and execute it as a process on the computer hardware. Some programming languages use an interpreter instead of a compiler. An interpreter converts the program into machine code at run time , which makes them 10 to 100 times slower than compiled programming languages. Software quality

7500-433: The menu item points to. This helps the client decide what to do with it. Gopher's item types are a more basic precursor to the media type system used by the Web and email attachments . The item type is followed by the user display string (a description or label that represents the item in the menu); the selector (a path or other string for the resource on the server); the hostname (the domain name or IP address of

7600-435: The open-source framework Apache Hadoop and the open-source HTTP server Apache HTTP . The sharing of technical information predates the Internet and the personal computer considerably. For instance, in the early years of automobile development a group of capital monopolists owned the rights to a 2-cycle gasoline-engine patent originally filed by George B. Selden . By controlling this patent, they were able to monopolize

7700-466: The open-source movement, and the extent of its role in the development of new information sharing procedures, remain to be seen. The open-source movement has inspired increased transparency and liberty in biotechnology research, for example CAMBIA Even the research methodologies themselves can benefit from the application of open-source principles. It has also given rise to the rapidly-expanding open-source hardware movement. Open-source software

7800-403: The phrase open source became widely adopted, developers and producers used a variety of other terms, such as free software , shareware , and public domain software . Open source gained hold with the rise of the Internet. The open-source software movement arose to clarify copyright , licensing , domain , and consumer issues. Generally, open source refers to a computer program in which

7900-720: The product, not the price, expense, cost, or charge. For example, "being free to speak" is not the same as "free beer". Conversely, Richard Stallman argues the "obvious meaning" of term "open source" is that the source code is public/accessible for inspection, without necessarily any other rights granted, although the proponents of the term say the conditions in the Open Source Definition must be fulfilled. "Free and open" should not be confused with public ownership ( state ownership ), deprivatization ( nationalization ), anti-privatization ( anti-corporate activism ), or transparent behavior . Generally, open source refers to

8000-399: The production. The 2006 movie Elephants Dream is said to be the "world's first open movie", created entirely using open-source technology. Source code Since a computer, at base, only understands machine code , source code must be translated before a computer can execute it. The translation process can be implemented three ways. Source code can be converted into machine code by

8100-465: The productivity of computer programmers, the economic value of a code base, effort estimation for projects in development, and the ongoing cost of software maintenance after release. Source code is also used to communicate algorithms between people – e.g., code snippets online or in books. Computer programmers may find it helpful to review existing source code to learn about programming techniques. The sharing of source code between developers

8200-461: The proprietary license model. Examples include: The open-source model is a decentralized software development model that encourages open collaboration , meaning "any system of innovation or production that relies on goal-oriented yet loosely coordinated participants who interact to create a product (or service) of economic value, which they make available to contributors and noncontributors alike." A main principle of open-source software development

8300-481: The protective actions of copyright owners create what some call a " chilling effect " among cultural practitioners. The idea of an "open-source" culture runs parallel to " Free Culture ", but is substantively different. Free culture is a term derived from the free software movement , and in contrast to that vision of culture, proponents of open-source culture (OSC) maintain that some intellectual property law needs to exist to protect cultural producers. Yet they propose

8400-510: The public sphere. Messageboards are another platform for open-source culture. Messageboards (also known as discussion boards or forums), are places online where people with similar interests can congregate and post messages for the community to read and respond to. Messageboards sometimes have moderators who enforce community standards of etiquette such as banning spammers . Other common board features are private messages (where users can send messages to one another) as well as chat (a way to have

8500-404: The public. The open source movement in software began as a response to the limitations of proprietary code . The model is used for projects such as in open source appropriate technology , and open source drug discovery. Open source promotes universal access via an open-source or free license to a product's design or blueprint, and universal redistribution of that design or blueprint. Before

8600-554: The same license, and nondiscrimination between different uses—including commercial use. The free reusability of open-source software can speed up development. Gopher (protocol) Early research and development: Merging the networks and creating the Internet: Commercialization, privatization, broader access leads to the modern Internet: Examples of Internet services: The Gopher protocol ( / ˈ ɡ oʊ f ər / )

8700-409: The server), and the network port . All lines in a gopher menu are terminated by "CR + LF". Example of a selector line in a menu source: The following selector line generates a link to the "/home" directory at the subdomain gopher.floodgap.com, on port 70. The item type of 1 indicates that the linked resource is a Gopher menu itself. The string "Floodgap Home" is what the client will show to

8800-414: The source code. Many IDEs support code analysis tools, which might provide metrics on the clarity and maintainability of the code. Debuggers are tools that often enable programmers to step through execution while keeping track of which source code corresponds to each change of state. Source code files in a high-level programming language must go through a stage of preprocessing into machine code before

8900-683: The standard journalistic techniques of news gathering and fact checking, reflecting open-source intelligence , a similar term used in military intelligence circles. Now, open-source journalism commonly refers to forms of innovative publishing of online journalism , rather than the sourcing of news stories by a professional journalist. In the 25 December 2006 issue of TIME magazine this is referred to as user created content and listed alongside more traditional open-source projects such as OpenSolaris and Linux . Weblogs , or blogs, are another significant platform for open-source culture. Blogs consist of periodic, reverse chronologically ordered posts, using

9000-751: The summer. GSoC is a large scale project with 202 participating organizations in 2021. There are similar smaller scale projects such as the Talawa Project run by the Palisadoes Foundation (a non profit based in California, originally to promote the use of information technology in Jamaica, but now also supporting underprivileged communities in the US) Open-source hardware is hardware which initial specification, usually in

9100-559: The term of copyright (particularly in the United States) and penalties, such as those articulated in the Digital Millennium Copyright Act (DMCA), placed on attempts to circumvent anti-piracy technologies. Although artistic appropriation is often permitted under fair-use doctrines, the complexity and ambiguity of these doctrines creates an atmosphere of uncertainty among cultural practitioners. Also,

9200-427: The time of its creation in 1991 , and the simplicity of its protocol facilitated a wide variety of client implementations. More recent Gopher revisions and graphical clients added support for multimedia. Gopher's hierarchical structure provided a platform for the first large-scale electronic library connections. The Gopher protocol is still in use by enthusiasts, and although it has been almost entirely supplanted by

9300-419: The time, and the ease of setup of Gopher servers to create an instant CWIS with links to other sites' online directories and resources, were the factors contributing to Gopher's rapid adoption. The name was coined by Anklesaria as a play on several meanings of the word "gopher". The University of Minnesota mascot is the gopher , a gofer is an assistant who "goes for" things, and a gopher burrows through

9400-438: The type of the gopher item could be determined by the url itself. Most gopher browsers still available, use these prefixes in their urls. Here is an example gopher session where the user requires a gopher menu ( /Reference on the first line): The gopher menu sent back from the server, is a sequence of lines each of which describes an item that can be retrieved. Most clients will display these as hypertext links, and so allow

9500-432: The user can access. The Gopher protocol was first described in RFC   1436 . Internet Assigned Numbers Authority (IANA) has assigned Transmission Control Protocol (TCP) port 70 to the Gopher protocol. The protocol is simple to negotiate, making it possible to browse without using a client. First, the client establishes a TCP connection with the server on port 70, the standard gopher port. The client then sends

9600-399: The user to navigate through gopherspace by following the links. This menu includes a text resource (itemtype 0 on the third line), multiple links to submenus (itemtype 1 , on the second line as well as lines 4–6) and a non-standard information message (from line 7 on), broken down to multiple lines by providing dummy values for selector, host and port. Historically, to create a link to

9700-448: The user when visiting the example menu. In a Gopher menu's source code, a one-character code indicates what kind of content the client should expect. This code may either be a digit or a letter of the alphabet; letters are case-sensitive . The technical specification for Gopher, RFC   1436 , defines 14 item types. The later gopher+ specification defined an additional 3 types. A one-character code indicates what kind of content

9800-408: Was available but is no longer maintained and does not work with the current (>23) releases. For Konqueror , Kio gopher is available. As the bandwidth-sparing simple interface of Gopher can be a good match for mobile phones and personal digital assistants (PDAs), the early 2010s saw a renewed interest in native Gopher clients for popular smartphones . Gopher popularity was at its height at

9900-454: Was first widely distributed by posts to comp.os.linux on the Usenet, which is also where its development was discussed. Linux followed in this model. Open source as a term emerged in the late 1990s by a group of people in the free software movement who were critical of the political agenda and moral philosophy implied in the term "free software" and sought to reframe the discourse to reflect

10000-480: Was simultaneous with the compilers needed to translate the source code automatically into machine code that can be directly executed on the computer hardware . Source code is the form of code that is modified directly by humans, typically in a high-level programming language. Object code can be directly executed by the machine and is generated automatically from the source code, often via an intermediate step, assembly language . While object code will only work on

#543456