rtc
rtc copied to clipboard
Add chat example
@tonyfast had a great idea on the call today to create a chat example. As far as I understood (Tony please add details if you want!) it would:
- Let you choose a username on startup
- Let you see other users and start chats with them
- In each chat you could send markdown and have that rendered
- Have one place to run code and see the results. After you run some code you can drag it to a chat to send it to the other person.
Tony, I believe, mentioned building the chat histories as a number of notebook cells. In our case, this could be done by adding a few tables to the datastore like:
- Users, a list of users each with a name
- Chats, each points to two users and a list of cells
I think Tony was thinking about each chat as a notebook itself. We could also do that instead of having a separate Chats table. In which case the notebook name could be the two users who are chatting, and we wouldn't have to add any tables. The chats plugin would just look at the existing notebooks data model and assume maybe they are all stored in a chats folder and use those.
Both sound fun and interesting...
Let you choose a username on startup
I'd like to login with github please.
Let you see other users and start chats with them
I'd like to look at notebookx that stores thread of my teams comments. They are markdown and code cells that are shared through RTC. Each morning, I'd like to sit with my coffee and look over messages sent to me by folks. Sometimes they send me an issue, a code snippet, a cool/weird visualization, papers, questions.
I'd like delete the stuff I don't want and respond in to a specific message with either markdown, code, or knock-knock joke.
In each chat you could send markdown and have that rendered
I want to send/receive whole stinkin' cells that are chock full of code, metadata, and mimetypes. Cells are my units of currency and I want to barter for playlists, plots, pictures, programs, and pdfs just the same. It is my choice to run them just as it is my choice to play in traffic if I want to.
Have one place to run code and see the results. After you run some code you can drag it to a chat to send it to the other person.
People like notebooks! Some people use the same notebook for years! I want chat threads, that I keep for years, using the notebook format that allows me to cram anything I want to into a message except a literal kitchen sink.
Users, a list of users each with a name
Users, nah! My homies, my pals, my colleagues, my wife, my dogs! I want to do this with people I know like any instant messenger. Some people like my folks would definitely have some mimetype filters.
Chats, each points to two users and a list of cells
The chats may be a whole crew! if they talk a lot then I want to filter out parts or threads.
Notebooks in a document database? May something like pgcontents has some play in this? A chat contentsmanager?
I think Tony was thinking about each chat as a notebook itself. We could also do that instead of having a separate Chats table. In which case the notebook name could be the two users who are chatting, and we wouldn't have to add any tables. The chats plugin would just look at the existing notebooks data model and assume maybe they are all stored in a chats folder and use those.
Each day? each month? I think I'd want to query my chats. I've got a lot of friends that do cool shit, and sometimes I gotta hunt it down. I'd want to take full advantage of the notebook format to help me find the cool shit in that structured data.
Both sound fun and interesting...
A/S/L
Will give a try to this.