Talk:Chat
From OLPC
Contents |
[edit] Feature Requests
[edit] Text Chat
The core of the chat activity will be simple text-based chat. Typing focus will be placed in an input region at the bottom of the screen within which messages can be created. Hitting the enter key will send the message, inserting it into a scrolling sequence of messages above. Here are some things to think about regarding message formatting:
- XO colors
- buddy picture
- buddy name
- combined messages (eg. when the same individual sends multiple messages in a row)
[edit] Image Chat
The resistive trackpad will make a great tool for drawing within the "input region," where the input region accepts both text and image. We need to make a simple interface that provides a way to "pull in" an image that was previously entered into the chat stream, allowing a child to edit it and/or draw on top of it and then re-enter it into the stream.
We most likely also want to support pasting images into the chat stream. When a child inserts an image (via button in the image toolbar or via paste), should it appear inside the input region? If so, should the text wrap around it? Should it be movable/scalable?
[edit] Audio Chat
Though this is also an implicit feature of the separate video-chat activity, it would be nice to integrate a one to many audio chat on top of the basic chat activity. Considerations, should we include this:
- Need a mute button; This could be a two way mute, or simply mute outgoing audio.
- We could allow audio chat to continue even when the chat activity is not focused. This would allow a child to help another with a separate activity, for instance, by directing them as they work within a separate activity UI.
[edit] (No) File Sharing
File sharing is implicit in all activities via the bboard layer. As such, we don't need to expose any additional functionality for this within the interface for the chat activity itself.
[edit] Presence
Though it's common for chat applications (especially group ones) to list the participants, we get this for free by the nature of the collaborative activity environment. The frame provides a list of all participants in any activity, and allows additional interaction with them via their standard rollovers. As such, we don't need to create a representation for this in the activity interface, freeing up all space for the conversation itself. Similarly, we don't need any form of "buddy list." Essentially, the Friend and Group views serve as a buddy list, and the built-in invite button in the activity toolbar will allow children to invite others into the chat as well. We shouldn't duplicate these functions in the UI, since they will be common and consistent to all activities on the mesh.
[edit] Private Scope
Chat is an activity which, unlike many others, doesn't make sense as a private one. As such, we may want to consider a special case for chat instances that begin with only one person. While the invitation system does provide a means for engaging another individual in the chat, we may also want to consider replicating the "invite" interface within the main screen area when the activity starts with only one participant to make it simple and obvious. Will this special case occur with other activities as well, and how should we handle it?
[edit] Other
(moved from front page)
- Video/Audio conversations - User:Atodorov
- Some way for children to be able to connect to remote buddies (Internet), not only ones in their Mesh network - User:Atodorov
- Note: if XO Laptops share the same 'jabber' server, you will be able to see your buddies over the internet. Mesh is not required. --ixo 20:53, 5 February 2008 (EST)
[edit] Implementation Discussion
[edit] Image Chat
At the moment, the activity uses the Telepathy text channel we get with every shared activity. It does not use Tubes, since all that is being sent is the text that a participant types.
Image chat would require using Tubes, probably for text and images for consistency. This would be a major change to the underlying implementation which is quite simple now. Also the UI code would grow significantly in complexity.
[edit] Audio Chat
This would require Telepathy stream tubes which are not fully implemented yet.
[edit] iChat
I was surprised to see my XO laptop in my Bonjour buddy list in iChat. Similarly, I saw my MacBook advertised in my XO's Neighborhood. However, when I tried to chat between them, nothing happened.
It looks like the XO is advertising itself via the DNS-SD service type _presence._tcp. My guess is that it doesn't implement XEP-0174 (or whatever is actually used for iChat's Bonjour chat); it probably uses its own protocol. What is the future direction of Chat? Will it start to conform to XEP-0174? If not, should it be using a different service type than _presence._tcp? Or is iChat itself the cause of the incompatibility?
- Actually it uses an extension of XEP-0174 (see http://telepathy.freedesktop.org/xmpp/clique.html) for every activity, not just Chat. However, you have to join the room created by the activity with your XMPP client. (And you need to guess which one is for the Chat you want, vs some other activity...)
- A future feature (#6298) will make it easier to do one to one chats in the OLPC collaboration stack, so that initiating a chat via iChat would create a Chat invite on the mesh view which would make it easier to use with a non-OLPC machine.--morgs 10:30, 25 March 2008 (EDT)
[edit] Bug-Fix
Chat scrolling bug fix, limited testing available.
- NOTE: (per Morgan Collett, only for those willing to give testing feedback )
1) Close any chat activity 2) Launch the Terminal activity 3) $ su 4) $ cd /usr/share/activities/Chat.activity/ 5) $ mv chat.py chat.py.old 6) $ wget http://dev.laptop.org/~morgan/chat.py 7) then open Chat Activity ( No reboot required )
- It seems to be working for me with limited interaction. (Dan)
- Works great. (Sherman) --68.200.28.7 15:52, 5 January 2008 (EST)
- so far so good (Harrison)
- seems to have done the trick. (katherine) 11:36, 28 May 2008

