Developers.Projects: Difference between revisions

From Shareaza Wiki
Jump to navigation Jump to search
(Importing page from Tikiwiki)
 
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Projects in Shareaza==
{{do not translate}}
 
We often receive e-mails from students and other people who are willing to work on Shareaza.
We often receive e-mails from students and other people who are willing to work on Shareaza.


If you want to work on one of the following projects please investigate the problem to assess how difficult it is. You might then go and announce on the Developer forum what you are working on. Please keep in mind that everyone involved with the Shareaza project is doing this in his/her spare time. So don't expect much guidance and initial support. If we see that you are making progress, you'll be very welcome in the Developer forum as an active developer.
If you want to work on one of the following projects please investigate the problem to assess how difficult it is. You might then go and announce on the Developer forum what you are working on. Please keep in mind that everyone involved with the Shareaza project is doing this in his/her spare time. So don't expect much guidance and initial support. If we see that you are making progress, you'll be very welcome in the Developer forum as an active developer.
===Projects that don't require programming knowledge===
 
== Projects that don't require programming knowledge ==
Indeed there are things that don't require C++ skills
Indeed there are things that don't require C++ skills
====Translations====
Is there already a translation of Shareaza for your language? Is it up-to date? Check out the [http://svn.sourceforge.net/viewvc/shareaza/trunk/Languages/ SVN repository] to find out. Is there a website translation for your language? You can check that by going to [http://www.shareaza.com/] and finding your language in the right side bar of flags. [[Translate.Website|Instructions for translating the website.]]
====Artwork / Skins / Webdesign====
For new releases we are always looking for a new logo / webdesign / skin etc. You can always do a new Shareaza skin. If it is good it might be considered as a new default skin. You can read about making skins in the  [http://www.shareaza.com/?id=skindocs/default skinning tutorial]. It's also a good idea to read through the developer forum and the skin forum before doing such a project.


If you aren't up to a big job like that, or aren't very artistic, then you can always create a new [[Collections|collection]] or collection [[CollectionTemplate.HowTo|template]]. Collections are little more then some html, and possibly some javascript and/or CSS. Once you have a working collection it is usually very easy to create a nice template from it.
=== Translations ===
====Documentation====
Is there already a translation of Shareaza for your language? Is it up-to date? Check out the [http://svn.sourceforge.net/viewvc/shareaza/trunk/Languages/ SVN repository] to find out. Is there a website translation for your language? You can check that by going to http://shareaza.sourceforge.net/ and finding your language in the right side bar of flags.
The Shareaza documentation on this wiki is always out of date. If you feel you have a good knowledge of Shareaza, feel free to update the information in here. You might also translate existing pages into your language.
 
For more information see the [[Translate.Website|Instructions for translating the website]].


===Projects that require coding skills===
=== Artwork / Skins / Web design ===
First of all, everyone willing to work on the Shareaza codebase has to become familiar with the code. One good way to do that is trying to fix bugs from the [http://sourceforge.net/tracker/?group_id=110672&atid=657152 Bugtracker] or implement little features from the [http://sourceforge.net/tracker/?group_id=110672&atid=657155 Feature request tracker]. You can find more bugs / feature requests on the [http://forums.shareaza.com/ Forum].
For new releases we are always looking for a new logo / web design / skin etc. You can always do a new Shareaza skin. If it is good it might be considered as a new default skin. You can read about making skins in the [[skinning tutorial]]. It's also a good idea to read through the developer forum and the skin forum before doing such a project.


====Fix bugs / Implement little feature requests====
If you aren't up to a big job like that, or aren't very artistic, then you can always create a new [[Collection]] or collection [[CollectionTemplate.HowTo|template]]. Collections are little more then some html, and possibly some javascript and/or CSS. Once you have a working collection it is usually very easy to create a nice template from it.
As mentioned above, you are always welcome to fix bugs or implement fetaure requests from our bug-/fetaure request trackers. You might submit them via [http://sourceforge.net/tracker/?atid=657154&group_id=110672&func=browse sourceforge] or in the code submission forum. [http://shareaza.trillinux.org/bts/ This] is a second feature request tracker with asorted feature requests.


====Implement a website for submitting and downloading skins====
=== Documentation ===
The Shareaza documentation on this Wiki is always out of date. If you feel you have a good knowledge of Shareaza, feel free to update the information in here. You might also translate existing pages into your language.
 
== Projects that require coding skills ==
First of all, everyone willing to work on the Shareaza codebase has to become familiar with the code. One good way to do that is trying to fix bugs from the [[Bugtracker]] ({{trac|report|Trac}}) or implement little features from the Feature request forums. You can find more bugs / feature requests on the {{Shareaza Forums}}.
 
=== Fix bugs / Implement little feature requests ===
As mentioned above, you are always welcome to fix bugs or implement feature requests from our forums and our bug report tracker. You might submit them via {{trac|report|Trac}} or in the code submission forum. [http://shareaza.trillinux.org/bts/ This] is a second (currently not officially used) feature request tracker with asorted feature requests.
 
=== Implement a website for submitting and downloading skins ===
If you have good PHP / MySQL and webdesign skills, this project is for you. This website should integrate well into the current Shareaza website and allow up- and downloading of skins for Shareaza. It should display a preview image for each skin. It should also have an admin interface where we can delete skins.
If you have good PHP / MySQL and webdesign skills, this project is for you. This website should integrate well into the current Shareaza website and allow up- and downloading of skins for Shareaza. It should display a preview image for each skin. It should also have an admin interface where we can delete skins.


====Implement a new transfer protocol====
=== Implement a new transfer protocol ===
This a more sophisticated project suited for computer science students etc. There are some issues with the HTTP protocol currently in use.
This a more sophisticated project suited for computer science students etc. There are some issues with the HTTP protocol currently in use.
* It doesn't allow Firewall to Firewall transfers because it is TCP based.
* It doesn't allow Firewall to Firewall transfers because it is TCP based.
* It is not possible to cancel a transfer while while data is being transmitted without simply closing the connection.
* It is not possible to cancel a transfer while while data is being transmitted without simply closing the connection.
* Therefore it is necessary to request small chunks of data which is inefficient.
* Therefore it is necessary to request small chunks of data which is inefficient.
The goal of this project is to implement an UDP based protocol that fixes these issues. There is also a writeup by Mike on that topic. Unfortunately I can't access it at the moment because the forum is down. You might want to read the specifications of the Gnutella1 [http://groups.yahoo.com/group/the_gdf/files/Proposals/Pending%20Proposals/F2F/ F2F protocol] (You need a yahoo account to access these files).
The goal of this project is to implement an UDP based protocol that fixes these issues. There is also a writeup by Mike on that topic. Unfortunately I can't access it at the moment because the forum is down. You might want to read the specifications of the gnutella [http://groups.yahoo.com/group/the_gdf/files/Proposals/Pending%20Proposals/F2F/ F2F protocol] (You need a yahoo account to access these files).
 
=== Update Shareaza's [[gnutella]] support ===
Shareaza's support for the original gnutella protocol is pretty much out of date. The goal of this project is to change that. In particular that means implementing all the features required to be a Gnutella Ultrapeer. As far as I know this is support for GUESS and Dynamic Querying. You can find specifications for these protocols at [http://www.the-gdf.org www.the-gdf.org] and in the Files section at the [http://groups.yahoo.com/group/the_gdf/ GDF yahoo site].


====Update Shareaza's Gnutella support====
=== Rewrite the MediaPlayer plugin ===
Shareaza's support for the original Gnutella protocol is pretty much out of date. The goal of this project is to change that. In particular that means implementing all the features required to be a Gnutella1 Ultrapeer. As far as I know this is support for GUESS and Dynamic Querying. You can find specifications for these protocols at [http://www.the-gdf.org] and in the Files section at the [http://groups.yahoo.com/group/the_gdf/ GDF yahoo site].
The current MediaPlayer Plugin of v2.4 and previous versions had two problems:
# It seemed to be quite messy and was based a lot on Microsoft example code
# The first problem is probably the reason why Mike decided not to release the source for the current plugin.


====Rewrite the MediaPlayer plugin====
So that's why it has been rewritten from scratch by Ryo-oh-ki/raspopov. But as he didn't have much time, he only coded the basics, so things like audio visualization and parts of the partial files preview mechanisms are still missing on the plugin. Your task is now to finish the rewrite the MediaPlayer plugin. Doing this requires some knowledge about Shareaza Plugins in general, as well as knowledge about Micosoft multimedia APIs ([http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directshow/htm/directshow.asp DirectShow]).
The current MediaPlayer Plugin has two problems:
1. It seems to be quite messy and based a lot on Microsoft example code
2. The first problem is probably the reason why Mike decided not to release the source for the current plugin


So your task is now to rewrite the MediaPlayer plugin. Doing this requires some knowledge about Shareaza Plugins in general as well as the Micosoft multimedia APIs (probably [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directshow/htm/directshow.asp DirectShow]).
[[Category:External Links]]

Latest revision as of 11:58, 20 August 2010

  Translation

Do not translate this page into other languages. It is either low priority, too specific or incomplete.

e

We often receive e-mails from students and other people who are willing to work on Shareaza.

If you want to work on one of the following projects please investigate the problem to assess how difficult it is. You might then go and announce on the Developer forum what you are working on. Please keep in mind that everyone involved with the Shareaza project is doing this in his/her spare time. So don't expect much guidance and initial support. If we see that you are making progress, you'll be very welcome in the Developer forum as an active developer.

Projects that don't require programming knowledge

Indeed there are things that don't require C++ skills

Translations

Is there already a translation of Shareaza for your language? Is it up-to date? Check out the SVN repository to find out. Is there a website translation for your language? You can check that by going to http://shareaza.sourceforge.net/ and finding your language in the right side bar of flags.

For more information see the Instructions for translating the website.

Artwork / Skins / Web design

For new releases we are always looking for a new logo / web design / skin etc. You can always do a new Shareaza skin. If it is good it might be considered as a new default skin. You can read about making skins in the skinning tutorial. It's also a good idea to read through the developer forum and the skin forum before doing such a project.

If you aren't up to a big job like that, or aren't very artistic, then you can always create a new Collection or collection template. Collections are little more then some html, and possibly some javascript and/or CSS. Once you have a working collection it is usually very easy to create a nice template from it.

Documentation

The Shareaza documentation on this Wiki is always out of date. If you feel you have a good knowledge of Shareaza, feel free to update the information in here. You might also translate existing pages into your language.

Projects that require coding skills

First of all, everyone willing to work on the Shareaza codebase has to become familiar with the code. One good way to do that is trying to fix bugs from the Bugtracker (Trac) or implement little features from the Feature request forums. You can find more bugs / feature requests on the Shareaza Forums.

Fix bugs / Implement little feature requests

As mentioned above, you are always welcome to fix bugs or implement feature requests from our forums and our bug report tracker. You might submit them via Trac or in the code submission forum. This is a second (currently not officially used) feature request tracker with asorted feature requests.

Implement a website for submitting and downloading skins

If you have good PHP / MySQL and webdesign skills, this project is for you. This website should integrate well into the current Shareaza website and allow up- and downloading of skins for Shareaza. It should display a preview image for each skin. It should also have an admin interface where we can delete skins.

Implement a new transfer protocol

This a more sophisticated project suited for computer science students etc. There are some issues with the HTTP protocol currently in use.

  • It doesn't allow Firewall to Firewall transfers because it is TCP based.
  • It is not possible to cancel a transfer while while data is being transmitted without simply closing the connection.
  • Therefore it is necessary to request small chunks of data which is inefficient.

The goal of this project is to implement an UDP based protocol that fixes these issues. There is also a writeup by Mike on that topic. Unfortunately I can't access it at the moment because the forum is down. You might want to read the specifications of the gnutella F2F protocol (You need a yahoo account to access these files).

Update Shareaza's gnutella support

Shareaza's support for the original gnutella protocol is pretty much out of date. The goal of this project is to change that. In particular that means implementing all the features required to be a Gnutella Ultrapeer. As far as I know this is support for GUESS and Dynamic Querying. You can find specifications for these protocols at www.the-gdf.org and in the Files section at the GDF yahoo site.

Rewrite the MediaPlayer plugin

The current MediaPlayer Plugin of v2.4 and previous versions had two problems:

  1. It seemed to be quite messy and was based a lot on Microsoft example code
  2. The first problem is probably the reason why Mike decided not to release the source for the current plugin.

So that's why it has been rewritten from scratch by Ryo-oh-ki/raspopov. But as he didn't have much time, he only coded the basics, so things like audio visualization and parts of the partial files preview mechanisms are still missing on the plugin. Your task is now to finish the rewrite the MediaPlayer plugin. Doing this requires some knowledge about Shareaza Plugins in general, as well as knowledge about Micosoft multimedia APIs (DirectShow).