Hello,

Please file the application at the google site. (http://socghop.appspot.com)
and we will review and get back to you with comments during the interim
period. Remember that you have fill out the form at socghop before the 9th
of April.

-- Tobias


On Mon, Mar 29, 2010 at 1:32 PM, Sanjoy Das
<san...@playingwithpointers.com>wrote:

> > Have you contacted an XMMS2 mentor (use IRC or soc2...@xmms.se) and
> discussed the project already?
>
> Yes.
>
> > Have you read and understood the rules and requirements?
>
> Link Broken. I don't think there will be any clashes though! :)
>
> > Just write a small introduction to yourself.
>
> I'm a 20 year old guy who likes drinking coffee, listening to music and
> writing code, not just because all these things rock but also because he
> can do all of them at the same time. I use Vim and run StumpWM.
>
> > State your preferred email address.
>
> san...@playingwithpointers.com
>
> > State your IRC nickname.
>
> sanjoyd (or sanjoyd_ sometimes).
>
> > What are you studying, subject, level and school?
>
> I'm doing an integrated MS in Mathematics and Computing in the Indian
> Institute of Technology, Kharagpur. I am in my second year now and I
> will graduate in 2013.
>
> > Have you developed software in a team environment before? (As opposed
> to hacking on something on your own)
>
> I've developed an application for the Google Android platform with
> another developer working on the Ruby based back-end. Other than that,
> no.
>
> > Are you already involved with any open source development? If yes,
> please describe the project and the scope of your involvement.
>
> I've patched MonoDevelop and the Mono runtime. I'm currently working on
> a QtScript based plugin framework (which I eventually plan to use to
> implement the XMMS2 client).
>
> > Have you participated to the Google Summer of Code before? As a mentor
> or a student?
>
> No.
>
> > Describe what you consider your three main shortcomings (relevant to
> GSoC) and how you cope with them.
>
> 1. I used to over-engineer at times. These days I tend to cancel this
>    out by applying the YAGNI principle as much as possible.
>
> 2. Though I've worked on a few small user facing applications
>    (http://github.com/sanjoy/Xants-Simulator-Log-Player-Qt4 for
>    instance), I'm not terribly experienced in designing user
>    interfaces. This is taken care of in two ways:
>     * My proposal proposal essentially revolves in providing an
>       infrastructure on which user interfaces may be written easily
>       and dynamically. While I will design a basic user interface, the
>       dynamic nature of the (proposed) infrastructure will ensure that
>       the UI can easily be changed or extended if need be.
>     * Notwithstanding the above point, I will read up extensively on
>       the best practices in UI design to bring myself up to speed
>       before the actual coding session starts.
>
> 3. I sometimes tend to get lost in the details - this directly
>    pertains from the perfectionism inherent in me. This can be
>    taken care of by me not losing track of the big picture and at least
>    semi-rigidly sticking to the timeline.
>
> > Describe what you consider your three main strengths (relevant to
> GSoC) and how they show in previous projects of yours.
>
> While I don't like self-appraisal; mainly because I like my code to
> speak for itself and also because I think it is difficult to list one's
> strengths without going overboard, here is a list of three strengths I
> thought would be relevant.
>
> 1. I learn fast - I had no idea of the QtScript module (and only a
>    little idea of Qt) till started working on Boom (the Qt plugin
>    project) and bootstrapped the project in a total work of eight
>    hours, complete with a QtTestLib (again something I had know
>    pre-knowledge of) test framework.
>
> 2. I write clean and well documented code - Though I am no one to judge
>    myself, I suggest you check out http://github.com/sanjoy/Boom and
>    decide for yourself.
>
> 3. I'm a good software architect - This is, again, evident from the
>    above link.
>
>
> > Please describe the project and the scope.
>
> I plan to create an ultimately extensible XMMS2 client which essentially
> operates through QtScript based plugins. These plugins provide most of
> the user-facing functionality the client has to offer.
>
> The final deliverables shall look like the following:
>
>   i. The ability to connect to the Xmms2 server and perform all the
>      IPC using libxmmsclient++
>
>  ii. A very basic GUI with demarcations (possibly using QPanels) which
>      divide it into  areas responsible for hosting various parts of
>      the application, like the Collection Browser, maybe the media
>      info, or maybe the player controls.
>
>  iii. Various extension points which plugins can hook onto. We provide
>      the GUI elements (like the QPanel, in the above case) as global
>      objects or arguments to the relevant plugins. Since the scripts
>      have access to the entire Qt library, the scripts may build up
>      the UI in whichever way they want. By segregating the UI elements
>      (say, by assigning one QCanvas to the visualization plugin and one
>      QPanel to the lyrics plugin), we can segregate the plugins in a
>      neat modular way. Possibly an infrastructure which allows auto
>      installation and updating of the plugins.
>
>  iv. A default set up consisting of basic, high quality plugins which
>      provide essential functionality and possibly a _little_ more.
>
> > Why did you choose this project?
>
> My interest writing and maintaining the official client specifically
> comes from the 'scratching your own itch' idiom. Despite the
> me finding Xmms2 a fantastic music player, I have not come around to
> using it due to the lack of a decent client. I wish to change all that.
> The whole inspiration behind writing a plugin based client is that while
> it allows regular click-to-run users to stick to the defaults, it also
> allows people like me, who like changing every little bit about how they
> work _and_ how they play, to configure their ultimately extensible
> client to be what they had only dreamt of.
>
> > Include a timeline for your work on the project
>
> I will work out a timeline as soon as all the details are finalized
> (sometime in the 2 days).
>
>  > Include as much technical detail about your implementation as you can
>
> The client shall loosely revolve around a plugin architecture I'm
> currently developing called Boom. While a very basic, proof of concept,
> version should be ready within 3 days, some of the more advanced stuff
> in Boom (like automatic updating and installation of plugins etc.) will
> be developed as a part of the GSoC.
>
> Here is the 'docs/Architecture' file from http://github.com/sanjoy/Boom
>
> """""
>
> ARCHITECTURE
>
>        Sanjoy Das <san...@playingwithpointers.com>
>
> A lot of the core architectural idioms have been lifted from the
> (awesome) Mono addin framework.
>
> The entire plugin architecture revolves around the concept of extension
> points. An extension point is a virtual path where a plugin 'hooks
> onto'. Multiple plugins may register or hook onto the same the extension
> point(s).
>
> For instance, a path might be something like '/network/broadcaster' and
> we might have two plugins 'LANBroadcaster' and 'HTTPBroadcaster' hooked
> onto the same extension point. The core application may, then, query the
> plugin framework and figure out the plugins registered onto the specific
> extension point. It is then up to the core to decide what kind of
> services it wishes to extract from each of the plugins and whether to
> use them at all.
>
> The plugins are essentially ECMA Scripts which have the entire Qt
> library available to them. Furthermore, the application may make some
> additional API available to it by creating QObjects and adding them to
> the globals.
>
> The Qt API shall be make available to the plugins using
> qtscriptgenerator, a Qt Labs project
> (http://qt.gitorious.org/qt-labs/qtscriptgenerator).
>
> To allow true extensibility, one to-be-conceptualized feature is to
> allow plugins to have their own extension points.
>
> This is very much a work in progress and as such these specification are
> to change from time to time.
>
> """""
>
> So, for instance, in the client application, we might have an extension
> point named '/xmms2/visualization' where all the visualization plugins
> hook onto. We provide a global object named 'visualizationWindow' and
> plugins do something like the following in their initializing function:
>
> function initialize () {
>        visualizationWindow.reDraw.connect (function (canvas) {
>                // ...
>                canvas.drawLine ( ... );
>                // ...
>        }
> }
>
> Please have a look at Architecture.png (attached) for a visual
> representation.
>
>  > What do you expect to gain from this project?
>
> The awesome feeling one gets when he sees someone using his software and
> points out that he helped make it possible. The more awesome feeling one
> gets when himself using software he wrote.
>
>  > What would make you stay in the xmms2-community after the conclusion
> of SOC?
>
> Essentially maintaining the developed client, both by writing new
> plugins, maintaining old ones, keeping the code in sync with Qt. The
> above point still applies.
>
>  > Are you familiar with any of the following tools?
>    + git
>       Yes, my preferred version control system.
>    + waf
>       Enough to compile XMMS2. Unless it is a major problem, I plan to
>       use qmake.
>
>  > Which tools do you normally use for development? Why do you use them?
>
> Vim / GCC / GDB. I work on a Debian (Testing) amd64 system. In case
> testing in M$ windows becomes necessary, I've a Virtual installation of
> the same.
>
>  > What development model would you use?
>
> I generally practice defensive programming. I first bootstrap the
> project by writing a few core modules and then I immediately write unit
> tests for the same. Then I keep iterating over this again and again. I
> also tend to use a lot ASSERT macros - especially where I'm making
> (seemingly obvious) assumptions - I like getting a clean abort rather
> than a dirty segfault.
>
>  > What programming languages are you fluent in?
>
> C, C++, Java, C#. I know enough python for most purposes, though I will
> not call myself fluent.
>
>  > What spoken languages are you fluent in?
>
> English, Hindi, Bengali.
>
>  > At what hours are you awake (please specify in UTC)
>
> 0530 hours to 2130 hours generally. This won't be a problem during the
> actual GSoC session - I can shift as required.
>
>  > Would you mind talking with your mentor on telephone / internet
> phone?
>
> No.
>
>  > Will you be available full summer, or do you still have
> lectures/exams/whatever when GSoC starts?
>
> No.
>
>  > Are you planning on some vacation (when you won't be coding on GSoC
> project) during the summer?
>
> No vacation as such. I might have to take a day or two off if I travel
> back home - but such a gap will occur only twice (at most four days of
> no work) and I will inform well in advance.
>
> --
> Regards,
>
> Sanjoy Das
> http://playingwithpointers.com
> http://playingwithpointers.com/custom/public_key.txt
>
>
--
_______________________________________________
Xmms2-devel mailing list
Xmms2-devel@lists.xmms.se
http://lists.xmms.se/cgi-bin/mailman/listinfo/xmms2-devel

Reply via email to