summaryrefslogtreecommitdiffstats
path: root/articles/on-open-source/index.html
blob: 4195d1fa63dfb543c11a69b1e91e37be5d4137d0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">

    <meta name="generator" content="Hugo 0.30.2" />

    <title>Nine Nines: On open source</title>

    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
    <link href="/css/99s.css?r=1" rel="stylesheet">

    <link rel="shortcut icon" href="/img/ico/favicon.ico">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/ico/apple-touch-icon-114.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/ico/apple-touch-icon-72.png">
    <link rel="apple-touch-icon-precomposed" href="/img/ico/apple-touch-icon-57.png">

    
</head>


<body class="">
  <header id="page-head">
    <div id="topbar" class="container">
        <div class="row">
          <div class="span2">
            <h1 id="logo"><a href="/" title="99s">99s</a></h1>
          </div>
          <div class="span10">
            
            <div id="side-header">
              <nav>
                <ul>
                  <li class="active"><a title="Hear my thoughts" href="/articles">Articles</a></li>
  				  <li><a title="Watch my talks" href="/talks">Talks</a></li>
  				  <li><a title="Read the docs" href="/docs">Documentation</a></li>
  				  <li><a title="Request my services" href="/services">Consulting & Training</a></li>
                </ul>
              </nav> 
              <ul id="social">
                <li>
                  <a href="https://github.com/ninenines" title="Check my Github repositories"><img src="/img/ico_github.png" data-hover="/img/ico_github_alt.png" alt="Github"></a>
                </li>
                    <li>
						<a title="Keep in touch!" href="http://twitter.com/lhoguin"><img src="/img/ico_microblog.png" data-hover="/img/ico_microblog_alt.png"></a>
					</li>
                    <li>
						<a title="Contact me" href="mailto:[email protected]"><img src="/img/ico_mail.png" data-hover="/img/ico_mail_alt.png"></a>
					</li>
              </ul>
            </div>
          </div>
        </div>
    </div>


</header>

<div id="contents">
<div class="container">
<div class="row">
<div class="span9 maincol">

<article class="blog_item">
<header>
	<h1 class="lined-header"><span>On open source</span></h1>
	<p class="date">
		<span class="day">05</span>
		<span class="month">Sep</span>
	</p>
</header>

<div class="paragraph"><p>Last week I read a great article
<a href="http://videlalvaro.github.io/2014/08/on-contributing-to-opensource.html">on
contributing to open source</a> by Alvaro Videla. He makes
many great points and I am in agreement with most of it.
This made me want to properly explain my point of view with
regard to open source and contributions. Unlike most open
source evangelism articles I will not talk about ideals or
any of that crap, but rather my personal feelings and
experience.</p></div>
<div class="paragraph"><p>I have been doing open source work for quite some time.
My very first open source project was a graphics driver
for (the very early version of) the PCSX2 emulator. That
was more than ten years ago, and there
<a href="http://ngemu.com/threads/gstaris-0-6.30469/">isn&#8217;t
much left to look at today</a>. This was followed by a
<a href="https://github.com/extend/wee">PHP framework</a>
(started long before Zend Framework was even a thing) and
a few other small projects. None of them really took off.
It&#8217;s alright, that&#8217;s pretty much the fate of most open
source projects. You spend a lot of work and sweat and
get very little in return from others.</p></div>
<div class="paragraph"><p>This sounds harsh but this is the reality of all open
source projects. If you are thinking of building a project
and releasing it as open source, you should be prepared
for that. This is how most of your projects will feel like.
Don&#8217;t release a project as open source thinking everyone
will pat you on the back and cheer, this won&#8217;t happen. In
fact if your project is a too small improvement over existing
software, what many people will do is say you have NIH
syndrome, regardless of the improvement you bring. So you
need not to rely on other people in order to get your
enjoyment out of building open source software.</p></div>
<div class="paragraph"><p>In my case I get enjoyment from thinking about problems
that need solving. Often times the problems are already
solved, but nevermind that, I still think about them and
sometimes come up with something I feel is better and then
write code for it. Writing code is also fun, but not as
fun as using my brain to imagine solutions.</p></div>
<div class="paragraph"><p>You don&#8217;t need thousands of users to do that. So are
users worthless to me then? No, of course not. In fact
they are an important component: they bring me problems
that need solving. So users are very important to me.
But that&#8217;s not the only reason.</p></div>
<div class="paragraph"><p>I got lucky that the Cowboy project became popular.
And seeing it be this popular, and some of my other projects
also do quite well, made me believe I could perhaps work
full time on open source. If I can work full time then
I can produce better software. What I had one hour to
work on before I can now spend a day on, and experiment
until I am satisfied. This is very useful because that
means I can get it almost right from the beginning, and
avoid the million API breaking changes that occured
before Cowboy 1.0 was released.</p></div>
<div class="paragraph"><p>To be able to work full time on open source however,
I need money. This is a largely unspoken topic of open
source work. The work is never free. You can download the
product for free, but someone has to pay for the work
itself. Life is unfortunately not free.</p></div>
<div class="paragraph"><p>Large projects and some lucky people have their work
sponsored by their employers. Everyone else has to deal
with it differently. In my case I was sponsored for a
while by the <a href="http://leo-project.net/leofs/">LeoFS</a>
project, but that ended. I also had the Farwest fundraiser,
which was a success, although the project stalled after that.
(Fear not, as Farwest will make a comeback as a conglomerate
of Web development projects in the future.) After that I set
up the <a href="http://ninenines.eu/support/">sponsoring scheme</a>,
which I can proudly say today brings in enough money to
cover my food and shelter. Great!</p></div>
<div class="paragraph"><p>This is a start, but it&#8217;s of course not enough. Life
is a little more than food and shelter, and so I am still
looking for sponsors. This is not a very glorious experience,
as I am essentially looking for scraps that companies can
throw away. Still, if a handful more companies were doing
that, not only would I be able to live comfortably, but I
would also be able to stop worrying about the future as I
could put money on the side for when it gets rough.</p></div>
<div class="paragraph"><p>A few companies giving me some scrap money so I could
live and work independently is by far the most important
thing anyone can do to help my projects, including Cowboy.
Yes, they&#8217;re even more important than code contributions,
bug reports and feedback. Because this money gives me the
time I need to handle the code contributions, bug reports
and feedback.</p></div>
<div class="paragraph"><p>If Cowboy or another project is a large part of your
product or infrastructure, then the best thing you can do
is become a sponsor. The second best is opening tickets
and/or providing feedback. The third best is providing
good code contributions.</p></div>
<div class="paragraph"><p>I will not expand on the feedback part. Feedback is
very important, and even just a high five or a retweet
is already good feedback. It&#8217;s not very complicated.</p></div>
<div class="paragraph"><p>I want to expand a little on code contributions
however. Not long ago I ran across the term "patch bomb"
which means dropping patches and expecting the project
maintainers to merge them and maintain them. I receive
a lot of patches, and often have to refuse them. Causes
for refusal vary. Some patches only benefit the people
who submitted them (or a very small number of people).
Some patches are not refined enough to be included.
Others are out of scope of the project. These are some
of the reasons why I refuse patches. Having limited
time and resources, I have to focus my efforts on the
code used by the larger number of users. I have to
prioritize patches from submitters who are reactive
and address the issues pointed out. And I have to plainly
refuse other patches.</p></div>
<div class="paragraph"><p>I believe this wraps up my thoughts on open source.
Overall I had a great experience, the Erlang community
being nice and understanding of the issues at hand in
general. And if the money problem could be solved soon,
then I would be one of the luckiest and happiest open
source developer on Earth.</p></div>
<div class="paragraph"><p>Think about it the next time you see a donation button
or a request for funds or sponsoring. You can considerably
improve an open source developer&#8217;s life with very little
of your company&#8217;s money.</p></div>

</article>
</div>

<div class="span3 sidecol">
<h3>More articles</h3>
<ul id="articles-nav" class="extra_margin">
	
		
			<li><a href="https://ninenines.eu/articles/cowboy-2.1.0/">Cowboy 2.1</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/cowboy-2.0.0/">Cowboy 2.0</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/cowboy-2.0.0-rc.2/">Cowboy 2.0 release candidate 2</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/cowboy-2.0.0-rc.1/">Cowboy 2.0 release candidate 1</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/the-elephant-in-the-room/">The elephant in the room</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/dont-let-it-crash/">Don&#39;t let it crash</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/cowboy-2.0.0-pre.4/">Cowboy 2.0 pre-release 4</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/ranch-1.3/">Ranch 1.3</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/ml-archives/">Mailing list archived</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/website-update/">Website update</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/erlanger-playbook-september-2015-update/">The Erlanger Playbook September 2015 Update</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/erlanger-playbook/">The Erlanger Playbook</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/erlang-validate-utf8/">Validating UTF-8 binaries with Erlang</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/on-open-source/">On open source</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/the-story-so-far/">The story so far</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/cowboy2-qs/">Cowboy 2.0 and query strings</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/january-2014-status/">January 2014 status</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/farwest-funded/">Farwest got funded!</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/erlang.mk-and-relx/">Build Erlang releases with Erlang.mk and Relx</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/xerl-0.5-intermediate-module/">Xerl: intermediate module</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/xerl-0.4-expression-separator/">Xerl: expression separator</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/erlang-scalability/">Erlang Scalability</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/xerl-0.3-atomic-expressions/">Xerl: atomic expressions</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/xerl-0.2-two-modules/">Xerl: two modules</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/xerl-0.1-empty-modules/">Xerl: empty modules</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/ranch-ftp/">Build an FTP Server with Ranch in 30 Minutes</a></li>
		
	
		
			<li><a href="https://ninenines.eu/articles/tictactoe/">Erlang Tic Tac Toe</a></li>
		
	
		
	
</ul>

<h3>Feedback</h3>
<p>Feel free to <a href="mailto:[email protected]">email us</a>
if you found any mistake or need clarification on any of the
articles.</p>

</div>
</div>
</div>
</div>

      <footer>
        <div class="container">
          <div class="row">
            <div class="span6">
              <p id="scroll-top"><a href="#">↑ Scroll to top</a></p>
              <nav>
                <ul>
                  <li><a href="mailto:[email protected]" title="Contact us">Contact us</a></li><li><a href="https://github.com/ninenines/ninenines.github.io" title="Github repository">Contribute to this site</a></li>
                </ul>
              </nav>
            </div>
            <div class="span6 credits">
               <p><img src="/img/footer_logo.png"></p>
               <p>Copyright &copy; Loïc Hoguin 2012-2016</p>
            </div>
          </div>
        </div>
      </footer>

    
    <script src="/js/custom.js"></script>
  </body>
</html>