Blog / January 2010

  • 11 January 2010Reviewing the Kanji goes Open Source!

    I want to thank everyone who's supported Reviewing the Kanji through 2009 ! Your donations and gifts have cheered me up and made a difference.

    Now it's my turn to give you something. Here's the little present I talked about in the last news post. I wanted to make this announcement on the 1st of January, but let's not fret...

    Reviewing the Kanji enters 2010 with a big bold step... one that I had in mind for a long time... we're going open source baby!

    Read on...

    Me, myself and... well, screw it

    Honestly, from the beginning of the project, I have always wanted to work as a team, but perhaps I was being too demanding or just plain old school... I was stuck with this idea of working with someone living around here, that I could meet and discuss the latest ideas around a cup of coffee, you know.. good times!

    In retrospect, this idyllic scenario was just an excuse that kept me from really looking into the possibility of developing the website as a community project. Could ego, or insecurity also have played a part? Naaaaaah, of course not. :-)

    I have learnt so much from the work of other programmers (I'm afraid you may not learn as much from mine ^^), and it's funny also how we conveniently forget that so many of the tools we use today are made by people who have shared their code.

    To summarize my thoughts and recent states of mind.. working solo just feels incongruent now with how I relate to what I do. I am really happy about going open source with the website, and I wish I had done it sooner.

    So why Open Source ?

    Let's face it, I was just shooting myself in the foot (*a collective DUH from the audience*).

    • I can't do it alone. There's way too many cool things to do: offline application with synching, multi language support, custom keywords, improved SRS and so on
    • This site has a much brighter future ahead by going open source. Not just this site in fact, but also Reviewing the Hanzi, and if things go well it's very likely that Trinity will make a come back also as an open source project
    • As a community project, it will make this community even stronger
    • And of course, it will be much more motivating for me to work on the website when I see others helping out and contributing to it
    One concern I've had is: "Is it too late?". I think it's not.

    I have described two phases for the project. While there is still a lot of work for phase one, in a sense 2010 and the open source release mark the beginning of phase two : when RevTK really becomes a collaborative effort.

    Phase two is new territory and much is open for discussion and for active collaborators to leave a mark and influence the project roadmap. For example, should we include kanji readings or vocabulary? Even in phase one, we are still missing major components such as the offline application and synching where there isn't any design document yet.

    Having also an established user base and community is a great motivator: there are at least a good thousand users ready to scream at you because you changed something that "worked just fine the way it was" ;-) I jest, I jest! More seriously, you will have immediate feedback and support for your work.

    Another concern was Git, the version control tool. After spending more time with it I realized it really isn't that difficult to use. It seems more complicated than it is because of the extra hoops you have to jump to get in with the SSH keys required by Github, and the Msysgit package on Windows. On Mac OS you can just use the gorgeous Terminal ;) But I have only recently switched to Mac OS for development, so I can help with both sides if you are stuck. I have put together a mini-guide to save you some time and help contributors: Git' up to speed - A Git crash course.

    The License

    I spent a good while looking at licenses, and have settled on the GNU Affero General Public License, "AGPLv3" in short. Licenses are a subject of many heated debates, and I am certainly open to discussion.

    The way I see it, AGPL is GPL fixed for web apps. With GPL, a modified codebase can sit on a server and be used by thousands of people accross the world, and the changes may never be shared because technically it is not "distributed". AGPL fixes that, requiring that any use of the application accross the wire counts as a distribution, and thus requires the authors to share the derived work, and make the changes available for download to all users.

    New territory

    As the project lead and maintainer I will have to find the right balance between keeping the project goals in check, and adapting the roadmap to contributions that reflect what you want and not necessarily always things that I had in mind.

    Naturally, contributors who become actively involved into the project will have more influence on the direction of the site and the roadmap.

    I'm really excited actually of learning to manage an open source project, and community. There are many social aspects which may be challenging, a few of which I have learned through managing the forums.

    I really want to stress here that I'm totally new at this, so please bear with me. I have to learn the ropes of leading an open source project, become proficient with version control and Git, manage the roadmap, continue to document the codebase, answers questions, discuss new features and so on.

    This is what I want. I'm happy with my decision to make the project open source. If 2010 can bring just one actively involved developer, I will consider it a success.

    Going forward

    Just as the site goes open source... I'm going on another retreat.. from 20-30 January I won't be able to help you with the codebase or any questions you may have. The first week of February I'll be back into the world ^^ and will have a week of "holidays" to look at the project etc.

    I have just finished reading Pro Git, and moving on to The Cathedral and the Bazaar. I saw it mentioned somewhere in a StackOverflow.com question about open source. Great book, I just got it today and only started peeking through it and already found very interesting talks about the social aspect of managing an open source project. This will come very handy ;) Thank you Chris for the Amazon gift!

    And with that, A Happy New Collaborative Year to all!

    PS: please discuss this announcement in this forum topic. Let's aggregate questions there for now and I'll do my best to keep track of them, thank you.

    JapanesePod101.com