On Sun, Mar 21, 2010 at 16:15, Nikhil Marathe <[email protected]> wrote: > Hi, > > I would really love to participate in GSoC and get KDE to have > seamless UPnP support and allow > Amarok to treat the network as a great collection. I have been working > on understanding the UPnP > stuff and using the Hupnp library and a bit of Coherence for the past > 2-3 weeks, and been in contact > with Bart Cerneels, the prospective mentor. Based on all this, here is > my first draft of the proposal. > > Please do comment on it so that I'm in good shape for submission on > socghop. Thanks. > > - Nikhil > Proposal follows > > Amarok and KDE UPnP integration > =============================== > > Name: Nikhil Marathe > > email: [email protected] > > Freenode IRC Nick: nsm > > IM: > Google Talk: [email protected] > > Location: Mumbai, India ( GMT+530 ) during the summer. > Gandhinagar, India ( GMT+530 ) current. > > Proposal Title: Rediscover your music, and discover your network's music. > > Motivation for Proposal/Goal: > ============================ > > The KDE project has always been known for its network transparency and > the kioslave concept. > Yet as the network becomes more and more a part of the computer, I > think it it important > to be able to have applications also make use of this transparency. > UPnP is a set of > standards which allow various devices on the network to share content, > including music > and photos. I myself particularly hate filling my storage with > redundant data ( except backups ) > so the concept of having a central place to store music and access it > over the network is very > appealing. Imagine that a use just clicks on the Network panel in > Dolphin and he can see > all devices or users sharing content over UPnP and he can just listen > to some new music. > Or you friend just putting his pics in his UPnP device, and without > any hassles, digiKam > is ready to tag and mince and match them. > > Amarok itself stands to benefit a lot. UPnP media devices allow a > simple collection concept. > I would like Amarok to have seamless integration of those collections > into its own collections > and support the same operations of filtering and sorting. This way I > can have my music in > assorted places and not worry about where it is, but just tell Amarok to Play. > > So to sum it up, I hope to implement a kioslave which allows all > common file like operations > on UPnP content providers. This will be followed by Amarok getting a > Collection backend to > browse and play tracks on the remote servers. > > Implementation Details: > ====================== > > Please see the note about the slave implementation. > That aside I am reading about the UPnP protocols and working my way > around Hupnp. > I have a working kioslave which can list upnp devices on the network. Once I > get > more familiar with the code I will elaborate on this. I am also waiting for > a response on kde-hardware-devel[0] which will help me plan this out further. > > Note about kioslave implementation > ---------------------------------- > > The current kioslave implementation uses Coherence [1], a Python project, > over D-BUS for the UPnP handling. Meanwhile a fledgling project HUpnp > [2] is a C++ library > using Qt and signals and slots. Now I have no personal problems > against either Coherence or > JOLIE, but rather with the dependencies that increase. Considering that a lot > of users in developing countries ( which are increasingly switching to FOSS ) > don't have high bandwidth unlimited connections, increasing the > size/dependencies > of core KDE components should be avoided. Coherence for example requires > about 6Mb of additional components due to Twisted. JOLIE hasn't been explored > at all but perhaps it too will have dependencies like the Java Runtime > and so on. > > Meanwhile having a library like HUpnp will keep the core pretty small. > It provides > the Control Point and device discovery support that is the basic requirement > for > now. I have been in contact with Tuomo Pettinen and he is working hard > on the library > with version 0.5 expected to be out in a few days. He is aiming for > API/ABI stability, > and I'm sure that since most of the implementation will be wrapped behind > solid, > hopefully it won't make a HUGE difference. > > > Tentative Timeline: > =================== > > May - Read the UPnP standards, get comfortable with the library of > choice, write lots > of little code snippets to do specific things, so as to get a feel for > the system. > > May 15th - June 7th > Work on getting Solid backend listening to UPnP devices and presenting > them to applications/slaves. This includes writing documentation > about how to get KDE Apps to access UPnP services. > > June 8th - June 30th > Implement the UPnP kio-slave completely, ie: > * Detect browsable devices ( MediaServer ) > * Allow querying for devices which support it. > * Copying of files and watching for events about any changes in files > > July 1st - July 12th > Implement Amarok Collection, which can browse servers and integrate > their content so that tracks can directly be played by Amarok. Allow > copying content to local collection, and so on. This is the time of > Mid-term review. Ideally what will be pending now is the in-memory > query maker. > > July 12th - July end > Amarok Collection supports queries. If remote server doesn't support queries > an MemoryQueryMaker takes over. Ensure the code works for edge cases > and so on. > Start working on creating PlaylistProvider in a separate branch. Since this > is > an optional part which I can continue working on after GSoC. > > August > As 'pencils-down' approaches, get the code in order, clean it up, take notes, > clear bug reports and get ready for the merge :) > > > About Me: > ======== > > I am currently pursuing a B. Tech. in Information and Communication > Technology, being in the second ( sophomore ) year. > > I have been a KDE user for 7 years now, and a contributor for about a > year. The reason I was attracted to > KDE was the great configurability it offered and the obviously good > looks. In recent years KDE has been > an attractor of brilliant new technologies, and has tried to tap into > emerging phenomena like the social > and semantic web. I identify with this spirit of continually pushing > technology to its boundaries and > that is my primary motivation to develop for KDE. As for my > development efforts, my main focus is kwin-tiling[1] which > will be integrated soon into KDE trunk. Apart from that I have minor > contributions to KGet and Plasma, covered below. > > Amarok has been my defacto music player for years now. I hope to > contribute to it to create a player > which stands head and shoulders above any other player, by providing > users with a seamless music experience. > > Besides being familiar with C and C++, I have extensive experience > with code reading and working with other > people's code. I also love working with bleeding-edge technology like > NoSQL databases, evented-I/O ( node.js ) > and generally staying abreast with the open-source development world > and I am good at adopting them quickly. > > KDE contributions: > Developer of kwin-tiling to add tiling window management to KWin > [1] http://websvn.kde.org/branches/work/kwin-tiling > > KGet: > [Bug 184127] Kget closes automatically when a download is marked as > finished in the list > https://bugs.kde.org/show_bug.cgi?id=184127 > > Pastebin applet: > Added Imgur backend - > http://websvn.kde.org/trunk/KDE/kdeplasma-addons/dataengines/pastebin/backends/imgur.cpp?view=log > and other files. > > Links: > Code - http://bitbucket.org/nikhilm > http://22bits.exofire.net/browse/code > http://github.com/nikhilm > > CV - http://22bits.exofire.net/resume.html > > Other FOSS activities include: > Discussing simple KDE application development at FOSS.in 2009, Bangalore India > [Slides] http://22bits.exofire.net/downloads/foss_in_KDE_mainwindow.pdf > > Core member and principal speaker of Open Source Initiative at DA-IICT > where I give talks on Python, KDE, version control and open source in general. > > Contributing to node.js - redis-node-client and nerve web framework. > > Links > ===== > [0] http://mail.kde.org/pipermail/kde-hardware-devel/2010-March/000749.html > [1] http://coherence.beebits.net > [2] http://herqq.org > _______________________________________________ > Amarok mailing list > [email protected] > https://mail.kde.org/mailman/listinfo/amarok >
Hey Nikhil, Sorry I didn't reply yet. I have been very busy indeed and also felt the other comments were already in line with my feelings. In short: excellent proposal. What the others might not know is that Nikhil already contacted me over a month ago, might even have been before I put the GSoC idea on the 2010 ideas page on techbase. He's been investigating UPnP and already actively discussing with the Solid team. I jokingly said to leave some work for the actual GSoC :) I fully agree with the timeline and think it's more then reasonable with someone with your skill and enthusiasm. Bart _______________________________________________ Kde-hardware-devel mailing list [email protected] https://mail.kde.org/mailman/listinfo/kde-hardware-devel
