diff --git a/pelican.conf.py b/pelican.conf.py index a47bf02..c9f9b69 100644 --- a/pelican.conf.py +++ b/pelican.conf.py @@ -6,8 +6,6 @@ AUTHOR = u'Alexis Métaireau' SITENAME = u"Alexis' log" SITEURL = 'http://blog.notmyidea.org' -PAGES = (('projects', 'pages/projects.html'),) - LINKS = (('Biologeek', 'http://biologeek.org'), ('Filyb', "http://filyb.info/"), ('Libert-fr', "http://www.libert-fr.com"), diff --git a/thoughts/social-coding.rst b/thoughts/social-coding.rst new file mode 100644 index 0000000..617180c --- /dev/null +++ b/thoughts/social-coding.rst @@ -0,0 +1,133 @@ +Fork you ! or how the social coding can help you +################################################# + +:date: 2010-11-05 + +With github_ and bitbucket_ coming around, a lot of new usages appears for the +developpers: it's now easy to get feedback on your code/modifications, and to get +help from others by, for instance, forking repositories. + +Eeach time I see people helping others, I'm amazed by how we like to share +our knowledge. + +I say github, because it seems to be the more mainstream, but I think it's +something strongly related to the DVCS_ principles: the "only" thing github have +made is to turn that into a social network, and to reveal the awesomeness of the +DVCSes to the masses. + +What is really interesting is to see how this platform is addictive: it's +automatically updating a webpages with the more accurate informations about the +projects you'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 +instance. + +Quite nothing, indeed, but, I don't know why, I find this fascinating. + +I haven't had the privilege to see my projects forked from github by strangers, +but I've forked others repository to give an hand some times, when I wanted to, +and the main reason is "because it's **fun**" to do so. + +Yeah, you'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 :) + +New ways to contribute +====================== + +In addition, it seems that he community, or the communities, are there, on those +new social networks for coders. It'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 made. + +Well, "it's not new", you may think. That's true, because it's been a while that +SVN was there and even CVS before that. But, it was a bit messy to "fork" a +project, isn't it ? And I'm not talking about all the hell SVN involved with it +(who have not had issues with those messy .svn folders raises an hand !). + +It have not been so easy to share code and thoughts about code, to propose +changes on existing code, than now. You think it'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'll have answers. + +Even if they don't want it, you can easily keep your changes, and keep getting +their updates! + +Also, lot of *fashionables* projects tend to move on DVCS. +Personally, if I know I can fork on a DVCS instead of from a "simple" VCS, +I'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'll likely dont have +the rights to push to it), because I will not be afraid to break things. + +DVCSes makes the contribution easier. + +Release early, release often +============================ + +Maybe have you read `The cathedral and the bazaar +`_, by Eric Steven Raymond ? +(If not, consider doing so, it's a really interesting reading) + +Among a lot of others interesting things, one hint he gives is *release early, +release often*. + +I understand it as: if you want to get contributors, release your code early, +even if it's not perfect, and don't be afraid to publish your changes each +time it's needed. + +Without notifying it, that's basically what I was doing for my own projects. +I guess that's because Social coding platforms encourages those practices, +partially cause of the possible impact publishing each of your changes can have +on your final solution. + +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's readable, of course! + +A step further for open source softwares +======================================== + +Well, DVCSes are a honking great idea, and they're starting to be really +powerful when applied to free softwares. I mean: if you can't see a project, +it will be hard to contribute to it. And, I don't think anyone wants to +contribute to something closed/proprietary, *just for fun*. Or maybe am I +missing something. + +Maybe it's a kind of revolution, about free and open source softwares (FOSS_), +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 evolve. + +Let's take an example. Imagine I'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's working, and because I know that I can interact with the +authors of the framework while they're doing the changes on it. + +That's communication, nothing more, and of course I can do that with an internal +proprietary solution, but it will cost me **a lot** 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 etc. + +Well, I'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's back to +our DVCSes and new social related tools. + +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'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 community. + +My fix/work will benefit to all the people (and maybe others companies) working +with this framework, and it's a way to prove the community that my company is +enough skilled to make code-fixes to the framework, so that's all good ! + +What's next ? +============= + +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 it. + +If you're not using them right now, maybe you should do so: have a +look on how the programs you're using are made, consider publishing your +experimentations, and share them with others, you will see, it's kind of +addictive !