﻿<html>
<head>
<title>Interview: Deepankar Datta, P2P</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h2>Interview: Deepankar Datta, P2P Project</h2>
<p><a href="../lspintro.html">-Louis Suárez-Potts</a></p>
<p>2004-11</p>
<p>&nbsp; </p>



<p>Earlier this year, the Peer-to-Peer project, a part of the Distribution Project, came into being, spearheaded by Deepankar Datta.  We had been considering such a project for several years, but it took Deepankar's initiative and drive to get things going. All users can now safely, securely, reliably download OpenOffice.org using <a href="http://www.bittorrent.com">BitTorrent</a>.  The following interview of Deepankar was conducted via email earlier in November.  If users want to help out with the P2P effort, please visit the <a href="http://distribution.openoffice.org/P2P/bittorrent.html">BitTorrent and OpenOffice.org project</a>.</p>
<p>&nbsp;</p>
<p><em>Tell us about yourself--who you are, what you do outside of OOo.</em></p>


<p> My name is Deepankar Datta, and I help the <a href="spotlightindex.html">OpenOffice.org Newsletter</a> and <a href="http://distribution.openoffice.org/P2P/">P2P</a> projects.  Outside of OOo I am a university student in the United Kingdom, as well as keen supporter of FLOSS projects. </p>
<p>&nbsp;</p>
<p><em>How did you first get involved in OpenOffice.org (OOo)?</em></p>


<p> I first got involved in 2003, when I heard of OOo in many online technology sites.  It was a matter of visiting the site and seeing OpenOffice.org was a major contender as an office suite, with the added benefit of a FLOSS background.  After some time playing around with it I was very impressed, and it quickly became the default office suite on my machine.  I decided to volunteer some of my time towards OOo, and saw that help was needed with the newsletter project, and that's how I started to become involved with the community. </p>
<p>&nbsp;</p>
<p><em>You have taken on several key duties:  You are along with Erwin Tenhumberg the producer of the OpenOffice.org Newsletter, as well as the lead and maintainer of the P2P Project.  What is entailed in doing these things?  And.. how do you manage the time?</em></p>


<p> For the newsletter, most of the time is spent finding and archiving summaries of different stories which relate to OOo.  These include community announcements, and news from the other projects of OOo, as well as news stories or reports which reference OOo itself.  It involves a fair bit of browsing and searching through Google, although with some automation these tasks become fairly trivial.  The stories we report get archived in the newsletter mailing list, and are properly formatted, so that by the time we come round to publishing the newsletter, a lot of the stories can be pasted straight in.  This simplifies creating the newsletter and allows it to be done in a matter of hours. </p>

<p> I accidentally fell into the P2P role - I brought up some discussion at some point about using BitTorrent for the distribution of OOo, and ended up volunteering to organise the P2P project.  My role in the P2P project was to help coordinate everyone's activities so that we could have a proper BitTorrent system set up firstly, which then afterwards could be publicised.  I directly manage the web-pages for the P2P project, which link to the BitTorrent servers under the control of OOo contributor Mike!, and generally make sure links point to the correct downloads. </p>
<p>&nbsp;</p>
<p><em>What do you see as the future of OOo and P2P?  Do you think the omnipresence of pirated works in P2P networks will adversely affect the legitimate dissemination of free software via the network?</em></p>


<p> I think that a distinction needs to be made between different P2P networks to really answer this questions.  P2P is used as a catch-all term for file sharing, without identifying the characteristics of the different underlying properties of the network.  The older P2P networks (e.g. Napster in its original form) were shut down as they were a centralised system sharing mainly pirated works.  OOo currently uses BitTorrent as the primary P2P network, and although there are many sites sharing files that may not be entirely legitimate, the ability to set up your own network which can be accessed by any BitTorrent client is a huge advantage in distributing software via this method.  We can currently keep the network clean of any pirated files, and this should protect any legitimate BitTorrent networks from being associated with software piracy. </p>

<p> Currently the BitTorrent downloads are having a modest effect, but I am hoping as OOo 2.0 is released BitTorrent will be regarded as a more convenient way (but not the only way) to download software, especially for large downloads.  BitTorrent is used as a legitimate download method for many 'free software' (FLOSS) projects, but at the moment there is difficulty in automating the process of making files available for download; this has led to only the English language OOo being available from the website. In the future I am hoping that we are able to include the downloads for all other languages that OOo serves. </p>
<p>&nbsp;</p>
<p><em>How can people help you?</em></p>


<p> By volunteering.  There are a lot of tasks which need to be done, especially in the marketing project, which I am part of.  Promoting OOo is a non-stop job, again considering the upcoming 2.0 release.  On my part I would like more volunteers with the newsletter project to achieve a more regular release than the monthly bulletin that is sent out, as well as helping to connect to more of the OOo projects to allow them to publicise their efforts in the newsletter.  [<em>If people want to help, visit the <a href="http://marketing.openoffice.org/">Marketing Project</a> and post an introductory note expressing interest to <a href="mailto:marketing@openoffice.apache.org">marketing@openoffice.apache.org</a>.  Ed. </em>]</p>

<p> Again there are many other parts of the project that need help as well, as there are other projects which do not seem to get as much attention as the others, especially the <a href="http://bibliographic.openoffice.org/">Bibliographic</a> project, as well as the <a href="http://groupware.openoffice.org/">GLOW groupware</a> project.  Testing upcoming releases, helping with questions from new users, telling friends and colleagues, or even making templates which can be used by others would all help, and would not require a lot of time. [<i>For more information on testing, see the <a href="http://qa.openoffice.org/">QA Project.</a> Ed.</i>]</p>
<p>&nbsp;</p>
<p><em>And, finally, what do you see as OOo's (project, product) greatest strength? It's greatest weakness?</em></p>

<p> The strength of OOo is that it is a transparent, open project; the open standards and open source underlying the project are a benefit to anybody who wants to use it, and who can make changes if they want to modify it.  The project itself has a very strong community, in many different languages, who can finally give computer users a choice of office suites, as well as many other supporters who help develop the suite.  On top of this, OOo is free, in the sense that it can lower the cost of setting up computers in developing countries where access to this sort of equipment is difficult.  The greatest weakness I would think is probably awareness and marketing; however much we promote the product (to the point that it is quite recognised within technology circles), it is always a battle, especially compared to competing solutions where marketing budgets are so much larger. </p>




<p>&nbsp; </p>
<p><a href="index.html">Back to Editorial Index</a></p>
</body>
</html>
