libera/#shirakumo - IRC Chatlog
Search
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:53
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
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
Colleen
<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
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:13
Colleen
<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
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
scymtym
right, so the lisp client has no way of encoding an empty list as the value for a key?
19:13:45
Colleen
<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
scymtym
final question: any idea why the above update, when sent with non-empty NAMES key does not produce a reply?
19:16:06
Colleen
<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
scymtym
hm, but the test channel seems to have at least one emote. since the js client displays one
19:23:15
Colleen
<shinmera> I don't want to restart the server at the moment, but at least you should be able to use that locally.
19:27:28
Colleen
<shinmera> The server also could do a better job enforcing validity and things like that
19:30:46
Colleen
<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
Colleen
<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
Colleen
<shinmera> I think those two changes now ensure that every update gets *some* form of reply from the server.
20:07:03
Colleen
<SAL9000-> shinmera: great! I've updated weelichat backfill detection to make use of that
20:07:51
Colleen
<SAL9000-> (it doesn't *require* the backfill update to stop backfill -- the statemachine + timer is still there)
20:19:13
Colleen
<SAL9000-> I guess you haven't figured out the Erlang live-reloading Magic(tm) yet? :P
21:03:30
Colleen
<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
Colleen
<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
Colleen
<shinmera> drakonis: The Lisp side of Harmony is rather minimal, most of the work is in libmixed, which is C.
21:44:28
Colleen
<shinmera> well, minimal isn't the right word, it still does a lot to interface with the OS
21:54:43
Colleen
<mood> I've mostly been focusing on work and just... not being productive on the side, but I'm enjoying myself
21:55:16
Colleen
<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
Colleen
<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:12
Colleen
<mood> We have a product/service that integrates into car dealership websites, that's a fun one
21:59:25
Colleen
<shinmera> Congrats on finding a position you actually enjoy working in! Ime that's pretty rare :)
22:00:06
Colleen
<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
Colleen
<mood> The actual work is getting more fun over time. Other people are taking over the things I don't particularly enjoy
22:02:12
Colleen
<shinmera> Wish I could do the same, there's a lot of gamedev parts I really don't enjoy lol