Project

General

Profile

Brainstorming » History » Revision 82

Revision 81 (Greg Burri, 04/14/2011 04:18 PM) → Revision 82/101 (Greg Burri, 04/14/2011 04:22 PM)

h1. Brainstorming 

 [[Brainstorming version 1.0]] 

 h2. Future versions 


 h3. 1.1 

 See "here":http://dev.d-lan.net/projects/pmp/versions/21 

 h3. 1.2 

 * Persist cache by creating one file by physical volume, do not delete a file cache when a physical volume disappear or has disappeared. It's useful when a hot pluggable device is removed or plugged like a external disk drive. 
 ** Maybe it's simpler to save each shared dir in a separated file. 
 ** see http://msdn.microsoft.com/en-us/library/aa365728%28v=VS.85%29.aspx 
 * Improve the chat feature 
 ** Be able to write multi-line message by pressing shift-enter to add an endline. 
 ** When @ is types a list of known peer is shown. (Autocompletion) 
 ** @<nick> are printed in italic. 
 ** When a message is received containing @<nick> where <nick> is your nick the window will blink 
 ** You can press 'tab' to choose among the last person which has sent a message to you 
 * Improve directory sharing : 
 ** Shared directory can be set as readonly 
 ** The user can choose a particular folder into a shared directory where to put a download (file or directory). 


 h4. 1.3  

 * Add a stats tab with some graphs : 
 ** A graph of download and upload rate over time 
 ** A graph of the number of peer over time 
 ** A graph of the sum of available global data over time 
 ** A graph of the total download and upload rate over time 
 ** Stats are persisted in a file 
 ** Data can be exported in csv files 
 ** The most uploaded files (this day, this week, total) 
 ** The total bytes uploaded and downloaded (this day, this week, total) 
 * Add an option to be able to move and re-size windows in the MDI area. 
 * Be able to drag'n drop a file or a folder from a remote peer (browse window) to our local folders (local browse window). 


 h3. 1.4 

 * Handle URL (link) in the chat and the log 
 ** An URL is displayed on top of the file browsing windows like : _D-LAN://192.168.1.46/movies/sci-fi_. It's allowed to copy or paste an URL. 
 ** Add a link definition. The user can make link from its files/folder or from a remote file/folder. See [[Protocols#Links-to-resource]]. 
 ** To develop... 
 * Be able to switch the download list from the current flat list (only files are displayed) and the hierarchic view which shows all the folders in a treeview. This second view show the progress of each folder.  


 h3. Not planned 

 * The user can set a flag to active bandwidth and CPU limitation. If activated then downloading, uploading and hashing rates will be reduced. 
 ** This option is available from the trayicon (Core) or in the settings panel (GUI) 
 ** Automatically detect a running game and set the limitation flag. 
 ** Automatically detect CPU/bandwidth usage and set limitation flag. 
 ** See by an icon next to the peer name in the peer list when a peer has setted the option to reduced the bandwidth. 
 * The user can dynamically change the number of _downloader_ in the settings window (1 to 10 for example). 
 ** More downloader will increase the global transfer rate but will download more file in the same time thus the files will be available later. 
 * Detect duplicates (files which have the same size, same hash and same name) on the local machine and allow the user to easily remove them.  
 ** [Greg] Compare only the hashes is better because some identical files may have not the same filename. Moreover the size (or the name) is pointless because the hash identify the data. 
 ** There is a button somewhere to open a blank browsing window. 
 * The users can add some comments or tags associated to theirs sharing. These comments or tags are displayed in the list of peers (new column ? tooltip ?). 
 ** You can switch the peer-list to a tag-list 
 * Preview of video and mp3 files from a peer. Streaming ? 
 * Virtual folder to aggregate some real folders. For example the virtual folder 'Divx' may merge '/mnt/Divx1', '/mnt/Divx2' and '/home/paul/movies'. 
 * Create a theme with : "Qt Style Sheets":http://doc.trolltech.com/4.5/stylesheet-examples.html. See the interface of _Qt Examples and Demos_. 
 * Protect some sharing by a password / user rights for shares. 
 * IPv6 support. 
 * The user can save favorites (a folder in a peer). The favorites are displayed in a panel below the peer list. 
 * The peer list shows by an icon the OS (Linux/MacOSX/Windows) 
 * Identify certain file (like mp3) without theirs metatags. Same mp3s with different id3tag will be considering to have the same content. 
 * The user can create peer groups and drags peer into like a classic IM (pidgin). 
 * Automatic update system under windows and mac osx. Like Firefox. 
 * Try to keep a small core and add a plugin system like Firefox. 
 ** Use of qt-script for plugins ? 
 * To have the Windows 7 compatible certification : http://www.readyset7.com/software.aspx :F 
 * Using of "Lucene":http://lucene.apache.org/ for a better searching engine 
 * Create a tool like "ExpanDrive":http://www.expandrive.com/windows (_Windows_) which can simulate a file system. Therefore the user can browse an D-LAN network from Explorer, for example : _G:\<user>\<share1>\etc.._. Same thing under _Linux_ with _mount_. See http://code.google.com/p/whefs/ for a virtual file system tool. 
 * Create a voting system per peer, you can tell if you like or dislike a peer ('+' or '-'). Then, a good or bad icon will appear next to the nick of each peer in the peer list. If a peer share virus or corrupted files it will be shown as such. 
 * Use THEX:"http://open-content.net/specs/draft-jchapweske-thex-02.html#anchor4" to verify file integrity. 
 * Ability to ban a peer, for example leecher. 

 h3. Technical 

 * Use of a faster malloc (and optimized for multi-threading) lib like "nedmalloc":http://www.nedprod.com/programs/portable/nedmalloc/ or "hoard":http://www.hoard.org/. 

 h4. Searching 

 * User can use quotes to search a complete sentence, for example : "I have a dog". 
 * Search in meta data like ID3tag and in compressed file (zip, etc.). 

 h4. Chat 

 * Private chat (point-to-point). 
 * Chat by channel (each user can join one or more channel and he will receive all the messages broadcasted to the selected channels). The channel can be created by any user (like battlenet). 
 * Status : online, occupied, away. (with auto away) 
 * Be able to mute someone 
 * Bridge to XMPP, each core act as a XMPP server... 
 * Bridge to IRC, each core act as a IRC server. This feature should be implemented after channels and private messages. server...