]> Sergey Matveev's repositories - mmc.git/commitdiff
Short feature list
authorSergey Matveev <stargrave@stargrave.org>
Sun, 12 Mar 2023 16:37:00 +0000 (19:37 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 12 Mar 2023 16:37:00 +0000 (19:37 +0300)
doc/arch.texi
doc/index.texi
doc/usage.texi
doc/why.texi [new file with mode: 0644]

index 6ae56be5103abb67e4357d5b289ae83747649556..efc624bb7bdaa00f1ce0f1c78b95843e88662923 100644 (file)
@@ -89,11 +89,12 @@ So how all that decisions are composed together?
 
 @itemize
 
-@item @command{cmd/start} creates @file{debug} FIFO, prepares
-configuration file for @command{tmux} (actually there is just single
-path to the command replaced with the real one) and runs it with single
-window split on two halves: one just shows debug messages (all raw MM
-messages for debugging), another one runs @command{cmd/mmc} itself.
+@item @command{cmd/start} creates @file{debug} and @file{users/status}
+FIFOs, prepares configuration file for @command{tmux} (actually there is
+just single path to the command replaced with the real one) and runs it
+with single window split on two three parts: one just shows debug
+messages (all raw MM messages), other shows colourized list of
+non-offline users, another one runs @command{cmd/mmc} itself.
 
 @item @command{cmd/mmc} logs in to the server, fetches a list of all
 known users and channels I am subscribed to. Then it creates necessary
index b29347d5c0f53a9b5b920c6be3aee19b722df7a0..38e7a66fc2fda173585b95c4e31d7e93e2311875 100644 (file)
@@ -14,45 +14,25 @@ Copyright @copyright{} 2023 @email{stargrave@@stargrave.org, Sergey Matveev}
 I wrote it solely for my personal needs, but you may find its simplicity
 and flexibility useful.
 
-Mattermost (MM) does not have any sane and convenient client. GUI,
-mobile versions and browser application requiring you to frequently
-update your Web-browser are not an option of course.
-
-@url{https://github.com/matterhorn-chat/matterhorn, Matterhorn} is the
-only known console/terminal client for me, but until there will be any
-official instructions how to bootstrap Haskell compiler, I can not even
-try it. @url{https://github.com/42wim/matterircd, matterircd} was the
-only possibility to use that platform (that is forced to be used by my
-employer) that acts like an ordinary IRC-server bridged with MM.
-
-But IRC-client (@url{https://irssi.org/, irssi} in my case) can not send
-long and multiline messages, because of IRC protocol limitations. And
-because of frequent cyrillic alphabet usage, that takes twice as long
-bytes per character, messages are relatively short and are often split
-on single word boundary. Also it has neither vi-editing capabilities,
-nor simple way to use/emulate @command{readline} or use external editor.
-@command{matterircd} converted attached files to URLs that can be used
-with supplementary utility to download them from the server with proper
-authorization.
-
-Fortunately MM is written on Go and has convenient simple library to
-deal with its API. So I tried to write my own console implementation
-from the scratch without those IRC-limitations. I thought about bridging
-to XMPP protocol, that won't have any noticeable limitations, even
-containing file transfer possibility, but denied the idea as yet another
-level of complication. Moreover I was not sure that I was satisfied with
-any known XMPP-client (although in general I liked
-@url{https://mcabber.com/, mcabber}). Writing an ordinary TUI
-application with high level library similar to @command{curses} seemed
-to be pretty complicated task and reinventing of yet another bicycle.
-Initially I was not a fan at all of
-@url{https://tools.suckless.org/ii/usage/, suckless} way of chat clients
-building, where you have bunch of FIFOs per channel you deal with. But
-more I thought, that idea started to look nicer and nicer.
-@ref{Architecture, Look} what I came to!
+@itemize
+@item @url{https://tools.suckless.org/ii/, Suckless} minimalist FIFO and
+filesystem-based backend. @url{https://github.com/tmux/tmux/wiki, tmux}
+based frontend with colourized output.
+@item Ability to store channel's whole message history, keeping
+threading meta information in both human and machine friendly format.
+@item Ability to send and retrieve files. Multiline messages support.
+@item All channels refreshing after the login.
+@end itemize
+
+@command{mmc} is
+@url{https://www.gnu.org/philosophy/pragmatic.html, copylefted}
+@url{https://www.gnu.org/philosophy/free-sw.html, free software}
+licenced under @url{https://www.gnu.org/licenses/agpl-3.0.html, GNU
+Affero GPLv3}.
 
 @insertcopying
 
+@include why.texi
 @include arch.texi
 @include usage.texi
 @include faq.texi
index db261d64e7ce858c25bf1436a14d0521fa63d49a..9b26e01a5be3cc0d7312078a14258c74949a7d3c 100644 (file)
@@ -7,9 +7,7 @@
 compile Go programs in @file{cmd} subdirectory.
 
 @example
-for c (cmd/rd cmd/mmc cmd/sb cmd/ch-leave) @{
-    pushd $c ; go build -ldflags=-s ; popd
-@}
+for c (cmd/rd cmd/mmc cmd/sb cmd/ch-leave) @{ pushd $c ; go build ; popd @}
 @end example
 
 @item Create and change to the directory where the state will be kept.
diff --git a/doc/why.texi b/doc/why.texi
new file mode 100644 (file)
index 0000000..009edb4
--- /dev/null
@@ -0,0 +1,39 @@
+@node Why
+@unnumbered Why
+
+Mattermost (MM) does not have any sane and convenient client. GUI,
+mobile versions and browser application requiring you to frequently
+update your Web-browser are not an option of course.
+
+@url{https://github.com/matterhorn-chat/matterhorn, Matterhorn} is the
+only known console/terminal client for me, but until there will be any
+official instructions how to bootstrap Haskell compiler, I can not even
+try it. @url{https://github.com/42wim/matterircd, matterircd} was the
+only possibility to use that platform (that is forced to be used by my
+employer) that acts like an ordinary IRC-server bridged with MM.
+
+But IRC-client (@url{https://irssi.org/, irssi} in my case) can not send
+long and multiline messages, because of IRC protocol limitations. And
+because of frequent cyrillic alphabet usage, that takes twice as long
+bytes per character, messages are relatively short and are often split
+on single word boundary. Also it has neither vi-editing capabilities,
+nor simple way to use/emulate @command{readline} or use external editor.
+@command{matterircd} converted attached files to URLs that can be used
+with supplementary utility to download them from the server with proper
+authorization.
+
+Fortunately MM is written on Go and has convenient simple library to
+deal with its API. So I tried to write my own console implementation
+from the scratch without those IRC-limitations. I thought about bridging
+to XMPP protocol, that won't have any noticeable limitations, even
+containing file transfer possibility, but denied the idea as yet another
+level of complication. Moreover I was not sure that I was satisfied with
+any known XMPP-client (although in general I liked
+@url{https://mcabber.com/, mcabber}). Writing an ordinary TUI
+application with high level library similar to @command{curses} seemed
+to be pretty complicated task and reinventing of yet another bicycle.
+Initially I was not a fan at all of
+@url{https://tools.suckless.org/ii/usage/, suckless} way of chat clients
+building, where you have bunch of FIFOs per channel you deal with. But
+more I thought, that idea started to look nicer and nicer.
+@ref{Architecture, Look} what I came to!