blog.notmyidea.org/fork-you-or-how-the-social-coding-can-help-you.html

168 lines
No EOL
9.5 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<title>
Fork you! or how the social coding can help&nbsp;you - Alexis Métaireau </title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="https://blog.notmyidea.org/theme/css/main.css?v2"
type="text/css" />
<link href="https://blog.notmyidea.org/feeds/all.atom.xml"
type="application/atom+xml"
rel="alternate"
title="Alexis Métaireau ATOM Feed" />
</head>
<body>
<div id="content">
<section id="links">
<ul>
<li>
<a class="main" href="/">Alexis Métaireau</a>
</li>
<li>
<a class="selected"
href="https://blog.notmyidea.org/journal/index.html">Journal</a>
</li>
<li>
<a class=""
href="https://blog.notmyidea.org/code/">Code, etc.</a>
</li>
<li>
<a class=""
href="https://blog.notmyidea.org/weeknotes/">Notes hebdo</a>
</li>
<li>
<a class=""
href="https://blog.notmyidea.org/lectures/">Lectures</a>
</li>
<li>
<a class=""
href="https://blog.notmyidea.org/projets.html">Projets</a>
</li>
</ul>
</section>
<header>
<h1 class="post-title">Fork you! or how the social coding can help&nbsp;you</h1>
<time datetime="2010-11-05T00:00:00+01:00">05 novembre 2010</time>
</header>
<article>
<p>With <a href="http://github.com">github</a> and
<a href="http://www.bitbucket.org">bitbucket</a> coming around, a lot of new usages
appears for the developpers: it&#8217;s now easy to get feedback on your
code/modifications, and to get help from others by, for instance,
forking&nbsp;repositories.</p>
<p>Eeach time I see people helping others, I&#8217;m amazed by how we like to
share our&nbsp;knowledge.</p>
<p>I say github, because it seems to be the more mainstream, but I think
it&#8217;s something strongly related to the
<a href="http://en.wikipedia.org/wiki/Distributed_revision_control"><span class="caps">DVCS</span></a>
principles: the &#8220;only&#8221; thing github have made is to turn that into a
social network, and to reveal the awesomeness of the DVCSes to the&nbsp;masses.</p>
<p>What is really interesting is to see how this platform is addictive:
it&#8217;s automatically updating a webpages with the more accurate
informations about the projects you&#8217;re involved in, and add a bit of
magic to that using webhooks, allowing you to update your website each
time you push to you repository, for&nbsp;instance.</p>
<p>Quite nothing, indeed, but, I don&#8217;t know why, I find this&nbsp;fascinating.</p>
<p>I haven&#8217;t had the privilege to see my projects forked from github by
strangers, but I&#8217;ve forked others repository to give an hand some times,
when I wanted to, and the main reason is &#8220;because it&#8217;s <strong>fun</strong>&#8221; to do&nbsp;so.</p>
<p>Yeah, you&#8217;re probably right, you have to be a nerd to find fun to fork
others. The good point is that geeks are a kind of nerds, and some geeks
are coders&nbsp;:)</p>
<h2 id="new-ways-to-contribute">New ways to&nbsp;contribute</h2>
<p>In addition, it seems that he community, or the communities, are there,
on those new social networks for coders. It&#8217;s really handy to drop an
eye on interesting projects, to report bugs, propose new features, and
check what new projects this or this person have&nbsp;made.</p>
<p>Well, &#8220;it&#8217;s not new&#8221;, you may think. That&#8217;s true, because it&#8217;s been a
while that <span class="caps">SVN</span> was there and even <span class="caps">CVS</span> before that. But, it was a bit
messy to &#8220;fork&#8221; a project, isn&#8217;t it ? And I&#8217;m not talking about all the
hell <span class="caps">SVN</span> involved with it (who have not had issues with those messy .svn
folders raises an hand&nbsp;!).</p>
<p>It have not been so easy to share code and thoughts about code, to
propose changes on existing code, than now. You think it&#8217;s better to
implement this or that in a different way ? Clone it (fork it), make
your changes and publish them, and then ask projects owners about it.
For sure you&#8217;ll have&nbsp;answers.</p>
<p>Even if they don&#8217;t want it, you can easily keep your changes, and keep
getting their&nbsp;updates!</p>
<p>Also, lot of <em>fashionables</em> projects tend to move on <span class="caps">DVCS</span>. Personally,
if I know I can fork on a <span class="caps">DVCS</span> instead of from a &#8220;simple&#8221; <span class="caps">VCS</span>, I&#8217;ll
probably be quicker to fork/clone, and to publish changes on my own
copy, than if I had to do so on the upstream repository (and I&#8217;ll likely
dont have the rights to push to it), because I will not be afraid to
break&nbsp;things.</p>
<p>DVCSes makes the contribution&nbsp;easier.</p>
<h2 id="release-early-release-often">Release early, release&nbsp;often</h2>
<p>Maybe have you read <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/">The cathedral and the
bazaar</a>, by Eric
Steven Raymond ? (If not, consider doing so, it&#8217;s a really interesting&nbsp;reading)</p>
<p>Among a lot of others interesting things, one hint he gives is <em>release
early, release often</em>.</p>
<p>I understand it as: if you want to get contributors, release your code
early, even if it&#8217;s not perfect, and don&#8217;t be afraid to publish your
changes each time it&#8217;s&nbsp;needed.</p>
<p>Without notifying it, that&#8217;s basically what I was doing for my own
projects. I guess that&#8217;s because Social coding platforms encourages
those practices, partially cause of the possible impact publishing each
of your changes can have on your final&nbsp;solution.</p>
<p>If you have considered publishing your projects, code snippets, or
whatever (code related) but did not done it, considering them not yet
ready, maybe should you think about it twice: you can get feedback and
probably start some interesting discussions about it, if you write code
that&#8217;s readable, of&nbsp;course!</p>
<h2 id="a-step-further-for-open-source-softwares">A step further for open source&nbsp;softwares</h2>
<p>Well, DVCSes are a honking great idea, and they&#8217;re starting to be really
powerful when applied to free softwares. I mean: if you can&#8217;t see a
project, it will be hard to contribute to it. And, I don&#8217;t think anyone
wants to contribute to something closed/proprietary, <em>just for fun</em>. Or
maybe am I missing&nbsp;something.</p>
<p>Maybe it&#8217;s a kind of revolution, about free and open source softwares
(<a href="http://en.wikipedia.org/wiki/Free_and_open_source_software"><span class="caps">FOSS</span></a>),
that is going on. I really like to know I have my word to say about the
changes in the tools I use, and to know that I can make them&nbsp;evolve.</p>
<p>Let&#8217;s take an example. Imagine I&#8217;m using a web framework on daily basis,
as a part of my job as a web developer. I do like using an open source
software because I know how it&#8217;s working, and because I know that I can
interact with the authors of the framework while they&#8217;re doing the
changes on&nbsp;it.</p>
<p>That&#8217;s communication, nothing more, and of course I can do that with an
internal proprietary solution, but it will cost me <strong>a lot</strong> more time,
for a dead-simple reason: a company is not as big and powerful as a
community can be: it will cost time to work on this framework, resources
to maintain it, fix bugs&nbsp;etc.</p>
<p>Well, I&#8217;m starting advocating here about Free and Open Source Softwares
use on companies, what is a bit beyond the scope of this article, so
let&#8217;s back to our DVCSes and new social related&nbsp;tools.</p>
<p>If I find a bug in this framework, while working, I have the possibility
to go and talk with the creators of the framework, to open a ticket, and
even to make a fix for it, because I&#8217;ve access to the source code. If I
want to create a new feature, I just have to fork it, hack it, and then
publish my code to have feedback of the&nbsp;community.</p>
<p>My fix/work will benefit to all the people (and maybe others companies)
working with this framework, and it&#8217;s a way to prove the community that
my company is enough skilled to make code-fixes to the framework, so
that&#8217;s all good&nbsp;!</p>
<h2 id="whats-next">What&#8217;s next&nbsp;?</h2>
<p>I hope those social coding platforms are only the begining of a new
area. I hope they will make people realize what the power of the
community is, and how easily they can becomes part of&nbsp;it.</p>
<p>If you&#8217;re not using them right now, maybe you should do so: have a look
on how the programs you&#8217;re using are made, consider publishing your
experimentations, and share them with others, you will see, it&#8217;s kind of
addictive&nbsp;!</p>
</article>
<footer>
<a id="feed" href="/feeds/all.atom.xml">
<img alt="RSS Logo" src="/theme/rss.svg" />
</a>
</footer>
</div>
</body>
</html>