tynet-lichat/shirakumo - IRC Chatlog
Search
18:43:09
Colleen
Shinmera: i have two questions about the emotes extension: 1) why is EMOTES a CHANNEL-UPDATE? the description sounds like emotes download is connection-scope, not channel scope 2) "The server computes a set difference between the known emote names, and the names listed in the event's names slot." doesn't that mean the server sends all the emotes /not/ requested by the client?
18:43:09
scymtym
Shinmera: i have two questions about the emotes extension: 1) why is EMOTES a CHANNEL-UPDATE? the description sounds like emotes download is connection-scope, not channel scope 2) "The server computes a set difference between the known emote names, and the names listed in the event's names slot." doesn't that mean the server sends all the emotes /not/ requested by the client?
18:43:54
Colleen
ah, forget 2). i misread "names of emotes the client knows about." as "names of emotes the client wants to know about."
18:43:54
scymtym
ah, forget 2). i misread "names of emotes the client knows about." as "names of emotes the client wants to know about."
18:46:36
Colleen
but then, if the client does not know about any emotes yet, it would have to send an EMOTES update with an empty NAMES list, but the empty list is omitted making the update malformed
18:46:36
scymtym
but then, if the client does not know about any emotes yet, it would have to send an EMOTES update with an empty NAMES list, but the empty list is omitted making the update malformed
19:09:07
shinmera
scymtym: It's per-channel so that channels can add their own emotes. You can upload new emotes by sending an EMOTE update to the server.
19:10:16
Colleen
(client:s *client* 'proto:emotes :from "scymtym" :channel "test" :names '()) results in 2022-01-12 19:44:25 [INFO ] <LICHAT.CLIENT>: #<CONNECTION {1001B56AE3}>: received #<MALFORMED-UPDATE :FROM TyNET :ID 2099143226 :TEXT "Key NAMES is missing.">
19:10:16
scymtym
(client:s *client* 'proto:emotes :from "scymtym" :channel "test" :names '()) results in 2022-01-12 19:44:25 [INFO ] <LICHAT.CLIENT>: #<CONNECTION {1001B56AE3}>: received #<MALFORMED-UPDATE :FROM TyNET :ID 2099143226 :TEXT "Key NAMES is missing.">
19:11:12
shinmera
Ah. I suppose theres' two problems at play, one that the client doesn't distinguish between nil and unbound, and two that the server mandates the field despite it being specified optional.
19:11:25
Colleen
if emotes are per-channel, should the client resolve :EMOTENAME: in MESSAGEs against the set of emotes obtained for that channel or "globally"?
19:11:25
scymtym
if emotes are per-channel, should the client resolve :EMOTENAME: in MESSAGEs against the set of emotes obtained for that channel or "globally"?
19:12:22
Colleen
right, so the lisp client has no way of encoding an empty list as the value for a key?
19:12:22
scymtym
right, so the lisp client has no way of encoding an empty list as the value for a key?
19:13:45
shinmera
I should clarify this in the spec, but in current lichat-js2, emotes are inherited via channel tree. Meaning in channel foo/bar, emotes from the primary channel, from channel foo, and from channel foo/bar are available, with precedence following as would be natural.
19:15:13
Colleen
final question: any idea why the above update, when sent with non-empty NAMES key does not produce a reply?
19:15:13
scymtym
final question: any idea why the above update, when sent with non-empty NAMES key does not produce a reply?
19:16:06
shinmera
Yes, since the server sends EMOTE replies for every emote in the channel, it will not produce a reply if there are no emotes at all.
19:17:09
Colleen
hm, but the test channel seems to have at least one emote. since the js client displays one
19:17:09
scymtym
hm, but the test channel seems to have at least one emote. since the js client displays one
19:23:15
shinmera
I don't want to restart the server at the moment, but at least you should be able to use that locally.
19:30:46
shinmera
I suppose the server could also send back the EMOTES update with a list of known ones ahead of the payloads.
19:39:43
shinmera
SAL9000-: I've also taken the opportunity to specify the same for the backfill update, so the server will send the original update back once backfilling is complete
19:40:30
shinmera
I think those two changes now ensure that every update gets *some* form of reply from the server.
20:07:51
SAL9000-
(it doesn't *require* the backfill update to stop backfill -- the statemachine + timer is still there)
21:03:30
shinmera
It's terrible because it misappropriates some of the table fields instead of doing The Right Thing of making another table and joining.
21:27:24
shinmera
I feel like a lot of what I'm working on is too half-baked. I don't really know what I would even write about with Alloy, Forge, Trial, or Kandria
21:44:11
shinmera
drakonis: The Lisp side of Harmony is rather minimal, most of the work is in libmixed, which is C.
21:54:43
mood
I've mostly been focusing on work and just... not being productive on the side, but I'm enjoying myself
21:55:16
shinmera
I feel like I'm so far out of the loop I don't even know what you're working on these days?
21:58:40
mood
I work at an internet marketing company. We build websites and things I'm not too involved in. I focus on software development and general "backend" things
21:59:11
mood
We have a product/service that integrates into car dealership websites, that's a fun one
21:59:25
shinmera
Congrats on finding a position you actually enjoy working in! Ime that's pretty rare :)
22:00:06
mood
:) I get a lot of freedom and I like my colleagues. That helps when the work itself isn't all that great
22:01:42
mood
The actual work is getting more fun over time. Other people are taking over the things I don't particularly enjoy
22:10:39
shinmera
I gotta be off for now, currently in Finland (remember that trip idea?) so it's past midnight already lol