annotate toolbox-blog.txt @ 2:458f2c48ecce

more docs
author Jeff Hammel <k0scist@gmail.com>
date Tue, 19 May 2015 20:08:52 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
1 Toolbox deployed
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
2
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
3 Mozilla has a lot of software tools for a wide class of problems we
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
4 typically encounter. We're self-motivated people: when we encounter a
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
5 problem, sometimes we look or ask around to see if anyone else has did
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
6 anything similar, but if something doesn't turn up (quickly) we'll
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
7 write it ourselves.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
8
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
9 This is pretty much how (the functional parts of) the Open Source
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
10 world works. It goes hand in hand with the bazaar model:
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
11 http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar . The
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
12 strength of the bazaar model is robustness: the process cannot be
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
13 stopped by any particular point of failure. You get a robust
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
14 ecosystem of software that evolves in a manner parallel to biological
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
15 life.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
16
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
17 The weakness of the bazaar approach, especially when considered as
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
18 part of an economic system, is that effort is duplicated. The Open
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
19 Source revolution has made the greatest gains in proliferation: number
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
20 of languages, number of software projects, and ability to easily fork
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
21 existing code using distributed version control. But, just as the
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
22 federated web is harder to achieve than information silos, harvesting
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
23 and consolidating the vast richness of software is harder than its
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
24 proliferation and not merely for technical reasons.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
25
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
26 Proliferation was largely a technological problem. This is best
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
27 illustrated by DVCS. Consider the contrast between forking and
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
28 merging. With centralized version control, both forking and merging
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
29 are hard. With DVCS, forking is now trivial. But despite the fact
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
30 that better tools have been introduced (which actually largely don't
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
31 have anything to do per se with DVCS), merging is a human problem.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
32 Regardless of the amount of cleverness and hours required, technical
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
33 problems are solvable and will be solved. Human problems can't be
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
34 solved simply by throwing resources at them.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
35
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
36 Information curation will be the problem of this dawning decade.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
37 Using the internet as the predominent informatic presence in peoples'
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
38 lives, the question has gone from "can this be done?" to "how do I
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
39 figure out how to do this?" (shadowed only by the overarching
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
40 question, "why am I doing this?"). Programming has lost its position to
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
41 UI/UX design.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
42
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
43 Toolbox exists as a prototype to aid in unmixing the software tool
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
44 soup. It carries two related purposes:
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
45
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
46 1. To give people a place to put and find software tools of a wide
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
47 variety of types, purpose, and sources. To this end, a tool should
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
48 have a name, a description, a URL, and appropriate metadata. Mozilla
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
49 tools live in any number of places: in user repos, in shared repos, as
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
50 web apps, on github, or at any number of off-site hosts. Often, for
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
51 reasons of convenience and legacy, a useful tool exists packaged [*]
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
52 as part of another tool or other piece of software. In this sense,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
53 toolbox is a software index, similar to PyPI or softpedia.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
54
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
55 2. To give people a tool to curate the existing Mozilla tools towards
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
56 the end of consolidating similarly purposed code towards discrete
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
57 high-quality pieces of software. Often, as explained above, code is
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
58 duplicated. This is done because either an appropriate existing tool
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
59 could not be found (in an expedient manner) or existing tools were not
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
60 appropriate to the task at hand. Toolbox, as a software index, should
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
61 mostly solve the former case given proper participation.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
62 If an existing tool is found to be unsuitable for the task at hand,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
63 this can be for a few reasons:
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
64
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
65 - no such software exists to solve the problem. In this minority case,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
66 there is nothing to do but to write the software or reconsider what
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
67 you're actually trying to do
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
68
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
69 - there is software that could be built on, but it is not an expedient
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
70 solution to the problem. This again can be for several reasons:
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
71
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
72 * the modification to the upstream project is easily doable and
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
73 expedient, but a lengthy review/approval process hampers is
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
74 practicability to a solution within the time frame desired. This
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
75 is essentially a problem in the area of deployment/packaging
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
76 since, in the open source model, the upstream code is freely
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
77 available, but concerns external to the code itself
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
78 (i.e. distributability) require more than just the code
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
79 modifications for continuation of an operable software process [**].
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
80 In this case, an appropriate methodology is as follows:
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
81
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
82 A. The issue is ticketed with the upstream project with the
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
83 appropriate patch.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
84
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
85 B. A vendor branch is created of the upstream project with the fix
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
86 applied.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
87
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
88 C. Relevent packaging/deploy systems are updated to point to the
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
89 vendor branch instead of the upstream project.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
90
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
91 D. Changes to the upstream project are propagated (either manually
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
92 or automatically) to the vendor branch.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
93
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
94 E. The change is accepted upstream. If there are no other
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
95 discrepencies between the vendor branch and the origin, the vendor
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
96 branch is deleted and all references point to the origin. If there
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
97 are discrepencies, the particular upstreamed change is removed
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
98 from the vendor branch and fetched from upstream.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
99
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
100 While none of this is hard, it requires time, management
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
101 (i.e. attention), and adequate tools.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
102
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
103 * the modification won't be accepted upstream. This is similar to
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
104 the above case, except the vendor branch will never (conceivably)
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
105 go away. It is usually not possible to distinguish the case up
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
106 front or in any predictable time-frame. It may also be
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
107 conceivable to permanantly fork the project; that is, the vendor
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
108 branch becomes a first-class resource (a project of its own right)
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
109 versus a temporary necessity that should not (normally) be
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
110 consumed downstream.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
111
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
112 * The modification to the code is hard in terms of required time to
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
113 invest, required maintenance, and/or required attention to
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
114 complexity. In general, the required work and maintenance will be
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
115 unknown whereas the time to measure from nothing to a working
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
116 solution may be more estimable.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
117
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
118 - there are one or more softwares that nearly do what you desire, but
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
119 not quite. This is often due to a misclarity of intent of the
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
120 software formulators, or software that may have originally had a
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
121 clear intent but that has been adopted to fulfill more nebulous
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
122 purposes.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
123
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
124 The above presents a best-practices scenario. In order for open
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
125 source, as a global village, to sustain and flourish, the strengths of
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
126 open source -- the unconstrained flow of information, the championship
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
127 of the individual, cooperative advantage, and community ethics -- must
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
128 be utilized and best practices must be achieved as the flowerbed is
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
129 shared with corporate interests to which the open-source ecosystem,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
130 while competition for market share mandating utilization via its
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
131 (often) excellent code base, the proliferation of potentially
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
132 non-moneyed (and non money-oriented) alternatives represents a direct
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
133 threat to the power structure[***].
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
134
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
135 More directly, effort must be made towards coherency and cohesiveness
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
136 of open source. How does one bring order to the bazaar?[****] One
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
137 must begin with an understanding of how the bazaar works. Open source
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
138 programmers are, by inspection, largely good citizens (after a
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
139 fashion). They allow consumption and distribution of their work,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
140 their source code, without exploit it for a capital
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
141 advantage[*****]. If the process of organizing is fitted organically
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
142 into their existing workflow, open source programmers will
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
143 organize. If the practical advantage to themselves and to the system
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
144 as a whole of organizing is perceived, a coder will go to the
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
145 (non-over-burdening) required effort in order to make this so. When
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
146 first exposed to tools such as issue trackers, VCS, automated testing
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
147 (e.g.), programmers often first resist adoption of these technologies
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
148 until a case clearly manifests that the tool in question does (or more
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
149 often, would have) saved considerable time, effort, and/or
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
150 status. Then the developer uses the tool and will consider anyone who,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
151 as s/he previously did, does not naive. This pointing of arrows is an
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
152 example of how the bazaar works: individuals are agents and operators of
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
153 information, but the transfer of information, which is in what makes
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
154 information valuable, is a transpersonal process. You do not bring
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
155 order to the bazaar; you plant the seeds and nurture towards a
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
156 bountiful harvest.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
157
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
158 ------
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
159
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
160 [*] using the term loosely
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
161
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
162 [**] For instance, consider a software project requiring a one line
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
163 modification of gcc to build. Assuming even that this one line is a
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
164 proper and non-contraversial fix for a gcc bug, gcc releases are
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
165 heavily checked for stability and released only periodically, so the
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
166 turnaround even given a swift review process will be long and also in
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
167 general unknowably long. The software project in question can, as a
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
168 patchwork fix, require its developers to apply the patch to their own
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
169 gcc source and build their own compiler to continue project
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
170 development. However, this raises the bar to entry quite a bit,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
171 skill-wise, time-wise, and psychologically. In addition, while
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
172 previously the project could require a particular OOTB version of gcc,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
173 following the patch requirement, precise build instructions must be
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
174 provided and it will become difficult to diagnose what is going wrong
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
175 with particular compile errors. All legacy developer environments
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
176 will be rendered non-working and all developers will have to apply the
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
177 same additional work to get a good development environment going
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
178 forward unless tools are provided.
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
179
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
180 [***] Open source is not unique in this particular position. In fact,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
181 the anti-marketing market is a large market. Consider sales of Che
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
182 Guevera t-shirts, feminist literature from the traditional publishing
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
183 oligarchy, and Hollywood's marketing of the underdog. In all of these
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
184 cases, that which is being peddled is -- symbolically and sometimes
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
185 literally -- in direct philosophic conflict with the marketeer. The
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
186 market, however, cares only to the degree that this is
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
187 perceived as an existential threat (which is usually not at all), and
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
188 subversion may be safely sold and counted only in terms of dollars. If
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
189 the Recording Industry Association of America ever needed a slush
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
190 fund, it could easily gain an buffer by selling plain white cotton
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
191 T-shirts emblazoned with the logo: "Destroy the RIAA".
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
192
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
193 [****] The question itself is intentionally flawed
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
194
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
195 [*****] There is the case where (a) programmer(s) intentionally
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
196 (conciouslly or subconciously) will set up a consulting firm
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
197 installing overly complex house-ware, charging for their expertise,
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
198 and then running. While this does happen, it is not a major factor in
458f2c48ecce more docs
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
199 open source at large.