!NicAJNwJawmHrEhqZs:matrix.org

Ement.el

440 Members
Ement.el, a Matrix client for Emacs. | https://github.com/alphapapa/ement.el112 Servers

Load older messages


SenderMessageTime
25 Sep 2024
@zippoh:ellipsys.xyz@zippoh:ellipsys.xyz left the room.22:05:41
26 Sep 2024
@thibaultmartin:matrix.orgThib (m.org) changed their display name from Thib (m.org, back Sep 26) to Thib (m.org).06:57:48
@gilganix:matrix.orgMist

Damn you are awesome alpha xD (and a good motivator to learn lisp ngl, after haskell that is… have been sleeping on it for far to long 😒)

09:10:02
@alphapapa:matrix.orgalphapapa
In reply to Mist

Damn you are awesome alpha xD (and a good motivator to learn lisp ngl, after haskell that is… have been sleeping on it for far to long 😒)

I would recommend learning Lisp before Haskell. I became interested in them at around the same time.

18:17:05
27 Sep 2024
@ynakao:matrix.org@ynakao:matrix.org left the room.05:30:45
@gilganix:matrix.orgMist
In reply to alphapapa
In reply to Mist

Damn you are awesome alpha xD (and a good motivator to learn lisp ngl, after haskell that is… have been sleeping on it for far to long 😒)

I would recommend learning Lisp before Haskell. I became interested in them at around the same time.

The thing is that I am intereted in haskell more than lisp, but I think you are right tbh!

06:06:03
@alphapapa:matrix.orgalphapapaLisp is more powerful anyway ;)13:46:14
@libregeekingkid:matrix.orgrajudev joined the room.15:28:07
@human:hackliberty.orghumanlisp is perfect, expect it's performance lol18:22:48
@alphapapa:matrix.orgalphapapa
In reply to human
lisp is perfect, expect it's performance lol

Lisp can perform very well. See e.g. SBCL

18:40:03
29 Sep 2024
@csantosb:matrix.orgcsantosb changed their profile picture.11:16:17
@csantosb:matrix.orgcsantosb changed their display name from csantosb to cayetano santos.11:16:54
1 Oct 2024
@gilganix:matrix.orgMist
In reply to @alphapapa:matrix.org
Lisp is more powerful anyway ;)
Really? In what ways?
07:05:52
@alphapapa:matrix.orgalphapapa
In reply to @gilganix:matrix.org
Really? In what ways?

That's a very large topic, and I'm afraid I don't have time to write about it now. You can find many discussions on the web about the power of Lisp in general. For Elisp specifically, cl-letf is an example of a powerful tool that you can use to, e.g. redefine a function within a certain form, so it only takes effect in the context you need. Few other languages let you do something like that.

Another example of Lisp's power in general is a NASA mission where the software on a rover encountered an error, and thanks to Lisp, NASA was able to remotely redefine the function that produced the error, then continue execution from where it left off, all over a radio link across space. No need to recompile and redeploy software, etc. Powerful interactive debugging and condition handling.

16:38:51
@thomas:berryhill.me@thomas:berryhill.me left the room.17:51:57
@alphapapa:matrix.orgalphapapa invited @jwwiegley:matrix.orgJohn Wiegley.20:42:39
@jwwiegley:matrix.orgJohn Wiegley joined the room.21:51:35
@jwwiegley:matrix.orgJohn WiegleyHello all21:51:44
2 Oct 2024
@alphapapa:matrix.orgalphapapaHi John. Honored to have an Emacs legend with us. :)01:32:11
@gilganix:matrix.orgMist
In reply to alphapapa
In reply to @gilganix:matrix.org
Really? In what ways?

That's a very large topic, and I'm afraid I don't have time to write about it now. You can find many discussions on the web about the power of Lisp in general. For Elisp specifically, cl-letf is an example of a powerful tool that you can use to, e.g. redefine a function within a certain form, so it only takes effect in the context you need. Few other languages let you do something like that.

Another example of Lisp's power in general is a NASA mission where the software on a rover encountered an error, and thanks to Lisp, NASA was able to remotely redefine the function that produced the error, then continue execution from where it left off, all over a radio link across space. No need to recompile and redeploy software, etc. Powerful interactive debugging and condition handling.

Oh that is a very cool feature indeed! Was not aware of it until now!

05:32:31
@gilganix:matrix.orgMist

I appreciate the enlightenment xD

05:32:46
@mitigate:matrix.org@mitigate:matrix.org joined the room.05:38:04
@mitigate:matrix.org@mitigate:matrix.orghas there been any thought of a logging framework for ement, so what gets shown also gets logged locally? i'm used to emacs chat client logging chat buffer contents by appending them to a text file (ala ERC) ? the present design seems to preclude any logging because of its "object model" ?05:41:16
@gilganix:matrix.orgMistRedacted or Malformed Event05:44:37
@phil.catalyst:matrix.orgPhil

mitigate: I want that as well, but haven't done anything about it thus far. One option to the "events may turn up in any order" problem would be to log the current session's events to a separate file in whatever order they turn up and then, either upon disconnection or else just periodically, sort the session file's contents and append them in the correct order to the permanent log.

Or append everything to the permanent log at the outset, but also store the timestamp for the last time that log file was sorted, and on disconnection re-sort the portion of the file with events post-dating the previous timestamp.

Or log to a sqlite database, and rebuild text files from that.

I suppose in principle the same ewoc-based approach used in room buffers could be used to edit log files within Emacs, but I don't imagine that scales well for multi-megabyte logs with years of chat history…

I'm sure there are better ideas, but that's my starter for ten.

06:30:35
@mitigate:matrix.org@mitigate:matrix.orgyes, the first step would be to persist the events the official client offers no logging, none of the clients offer logging, the servers apparently persist json, maybe there is some json database technology?09:50:51
3 Oct 2024
@mitigate:matrix.org@mitigate:matrix.orgre: the docstring for ement-disconnect, there are two sentences about ement-auto-sync which implies they are describing behaviour when t or nil, but they both indicate t behaviour ("enabled" "when enabled"). the last sentence that "existing room buffers are left alive" is false as ement-disconnect-hook which gets called calls ement-kill-buffers and gets rid of all ement buffers01:40:51
@mitigate:matrix.org@mitigate:matrix.orgI tried researching some logging solutions but the protocol spec left me with cringe01:43:22
@alphapapa:matrix.orgalphapapa
In reply to @mitigate:matrix.org
re: the docstring for ement-disconnect, there are two sentences about ement-auto-sync which implies they are describing behaviour when t or nil, but they both indicate t behaviour ("enabled" "when enabled"). the last sentence that "existing room buffers are left alive" is false as ement-disconnect-hook which gets called calls ement-kill-buffers and gets rid of all ement buffers
Please file a bug report about that.
02:44:45
@alphapapa:matrix.orgalphapapa
In reply to @mitigate:matrix.org
has there been any thought of a logging framework for ement, so what gets shown also gets logged locally? i'm used to emacs chat client logging chat buffer contents by appending them to a text file (ala ERC) ? the present design seems to preclude any logging because of its "object model" ?

The subject has come up before. Phil's ideas are a good summary. We could just dump the incoming events to files, but the biggest problem with that is duplication of events in the log files. As, e.g. JSON objects, they could be deduplicated by message ID, but as plain-text, that would be more difficult.

The design of Matrix means that serious logging probably needs to be handled by dedicated programs. But something relatively useful could probably be hacked together based on Ement.

02:46:53

Show newer messages


Back to Room ListRoom Version: 6