comparison toolbox-blog.txt @ 2:458f2c48ecce

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