Gobby
=====

Blocker:

Critical:

Major:
  * High CPU load while writing (#45)
  * High load (and blocking X11) when opening big text file (#48) [bug]

Normal:
  * Chat command infrastructure (#31)
  * Recognise command line parameters (#33)
  * Documentation (#54) [doc]
  * automatic scroll if the end of a document is looked at (#70)
  * Central directory support (#82)
  * Gobby should save backups (#87)
  * obby:// protocol handler (#88)

Minor:

Trivial:

Enhancement:
  * Indicate activity by changing tab colour to the user colour (#66)
  * Remote document browsing support (#75)
  * Hyperlinks on chat sessions (#80)
  * Server exit causes clients to exit (#85)
  * Chat background filled with user colours (#90)
  * Locate participants (#95)
  * Automatic live storage of documents and chat logs  (#98)
  * RPM's and MacOS installer (#102)
  * Wiki style reverts (#104)


45: High CPU load while writing
-------------------------------
If I connect 2 Gobby's on localhost to each other, I see 100% CPU usage 
while writing fast (in fact, punching onto the keys). This looks like a 
severe issue in either the design or implementation to me.

Can be reproduced on Windows and FreeBSD.

48: High load (and blocking X11) when opening big text file
-----------------------------------------------------------
Opening a 6.7MB large ChangeLog file in gobby produces 100% load and blocks 
gobby completely. Even other windows, like a ssh screen session in an aterm 
did not respond any more. Gobby had to be killed to get the screen session 
working again.

31: Chat command infrastructure
-------------------------------
In order to get the chat more alike to other chats available in the wild 
(like IRC) there should be some commands provider the user might be used 
to, like e.g. /me. Once this framework is implemented in ''Gobby'' it 
should be easy to add new commands.

33: Recognise command line parameters
-------------------------------------
Command line parameters should be parsed and processed. Especially it would 
be nice if Gobby accepted one or more files in it to open it in the 
currently active Gobby session (to use ''Open With'' in your favourite 
desktop environment). However this will get complicated when more than one 
Gobby is open.

We could use X properties on X11 for interprocess communication and some 
WinAPI calls on Windows.

54: Documentation
-----------------
Gobby should get a normal manual just like other projects. Docbook format 
is preferred. There should be a short introduction with an overview about 
Gobby, an installation guide, some basics about the usage and some 
documentation about the algorithms used.

70: automatic scroll if the end of a document is looked at
----------------------------------------------------------
Someone writes new text (usually at the end of the page), but as you don't 
try to scroll all the time you do not realize this. Instead you rest where 
the end of the page was and do not get that new text is added to it. So: If 
the page is scrolled to the end and new lines are added there it should 
automatically scroll down. If you are further up and looking or working on 
something else it shouldn't do so.

82: Central directory support
-----------------------------
Gobby should support a central directory of Sobby servers.

87: Gobby should save backups
-----------------------------
Gobby should save local backups in case of crashes.  

88: obby:// protocol handler
----------------------------
Gobby should register itself as a handler for the obby:// protocol. Like 
this sites could link to obby servers for live sessions.

66: Indicate activity by changing tab colour to the user colour
---------------------------------------------------------------
The tabs of documents not active should flash with the colour of the user 
who did the last edit, either temporarily or permanent. This should be 
customisable. When many user edit the document, the tab colour might change 
pretty fast and if someone is editing the document alone there could be a 
blinking dot to indicate the changes.

75: Remote document browsing support
------------------------------------
It would be great if there were a checkbox on the file tab (besides the 
file name) or on the list that shows subscription, that allows me to browse 
the document with the other side cursor. 

This way, one would be able to show document parts to the others without 
hassle and pair programming with gobby would be improved.

(Depends on #53)

80: Hyperlinks on chat sessions
-------------------------------
Links on chat could be transformed to hyperlinks and sent to the O.S. to be 
opened by the default browser.

85: Server exit causes clients to exit
--------------------------------------
When a server disconnects, clients shouldn't exit (potentially losing 
text).  Instead, they should just indicate to the user that they are 
disconnected, and allow them to save and continue editing text.  If the 
server comes back online, everyone's changes can be sent in.

90: Chat background filled with user colours
--------------------------------------------
The background of lines in the chat box should be colour-coded with the 
colour of the user who wrote them.

95: Locate participants
-----------------------
A flag of the color of the participant which indicates where is he/she 
writing.

Similar to "Locate Participants":
http://www.codingmonkeys.de/subethaedit/images/sessionbig.png

Related to:
http://darcs.0x539.de/trac/obby/cgi-bin/trac.cgi/ticket/53

98: Automatic live storage of documents and chat logs 
------------------------------------------------------
Gobby should publish documents and chat logs to a web page so that people 
who don't have the Gobby software can still read the ongoing document and 
conversation.  It could do this by saving to a local filesystem in a 
specified location, or by webdav, or possibly by some other means.

102: RPM's and MacOS installer
------------------------------
It would be really nice to have RPM's and a MacOS installer for Gobby. That 
would give Gobby lot's of other users.

104: Wiki style reverts
-----------------------
In the HowToTryOutGobby page it mentions that before a server obby is 
implemented "there should be some privileges implemented first".  An 
alternative to this approach would be to treat the documents like a wiki 
page, i.e. anyone can edit it but its easy to see who made what changes and 
revert out those changes.  I'm thinking of an interface similar to the drop 
down menu on the undo button in MS Word.  For those who aren't familiar, 
the drop down contains a history of all of the previous changes that have 
been made and then selects everything above and including the item as your 
drag your mouse over them.

 * Insert text "printf( "Debug: %i\n", lard );"
 * Delete text "/* Gnarly comment */"



