XSF Discussion - 2019-01-24

  1. jonas’

    rion, I am aware of the email you are referring to; I have to think about it.

  2. jonas’

    thanks for reminding me

  3. jonas’

    rion, this has been requested several times, but I haven’t found a good way to implement it yet. Also, this needs a good way for the components to let the server know that their caps have changed. I have wire format for that in the pipeline, but I’m not really happy with it yet.

  4. jonas’

    also, this is mostly server-side stuff then which I’m not at all familiar with

  5. Zash

    Is there a way for anything to say "my caps changed"?

  6. jonas’

    for clients, yes

  7. jonas’

    they re-send presence

  8. jonas’

    for anything else, not

  9. Zash

    for _anything_

  10. jonas’

    Zash, you’re a server dev. what would you prefer? send an IQ to all your open outbound streams? a nonza to all your open outbound streams? have a pubsub node on the server JID itself to which interested peers can subscribe?

  11. jonas’

    (the latter is then like the first option, except that you need to keep track about who is interested)

  12. Zash

    What's the ultimate goal?

  13. edhelas

    Zash which metadata ?

  14. jonas’

    Zash, 1. provide clients with caps of JIDs related to their server (e.g. a MUC component) during connection startup (e.g. via a stream feature or something) 2. provide servers with means of learning their peers caps and keep them up-to-date (this was requested), and possibly broadcast changes of remote caps to interested local clients

  15. Zash

    edhelas: It's a dataform, you can make something up. I'd suggest something with an URI value. Then stick an pubsub URI/L or whatever there.

  16. edhelas

    Zash this will require changes on the XMPP server, no ?

  17. Zash

    jonas’: for 1) it's probably fine for the server to disco#info external components as they connect and stick a caps-hash in the stream features next to its own (needs some origin indicator)

  18. jonas’

    Zash, what do external components do when they change their caps for whatever reason?

  19. Zash

    jonas’: atm? nothing.

  20. jonas’

    no, what are they supposed to do when that happens?

  21. jonas’

    for example, change to an http upload component’s maximum file size

  22. Zash

    jonas’: I guess that's what we need to figure out.

  23. jonas’

    exactly :)

  24. Zash

    So yeah, I guess we want the new caps hash pushed to whoever's interested, probably in some container, most likeley some way to enable it.

  25. Zash

    I do wonder if we need to ditch the current component protocol, since it's without stream features

  26. Zash

    Does it need to be global or local to the stream?

  27. jonas’


  28. Zash

    jonas’: "caps push" or whatever

  29. jonas’

    what does "global" mean then?

  30. jonas’

    in the end, it should be able to propagate across domain boundaries I guess

  31. Zash

    jonas’: do you(r client) want to be subscribed to eg all the MUCs you ever heard of?

  32. jonas’

    probably not

  33. Zash

    or, hm, your server maybe

  34. jonas’

    but those one is joined in might be interested

  35. jonas’

    but those one is joined in might be interesting

  36. Zash

    jonas’: "global" as in something that uses stanzas, as opposed to a nonza-thing

  37. jonas’

    I was thinking of using <message/> actually because messages with unknown payloads cause the least trouble

  38. Zash

    headlines even

  39. jonas’

    yeah... for s2s (and component<->server) that might be good enough

  40. jonas’

    and when done cleverly it can be implemented with a pubsub component. although that gives me flashbacks of Push

  41. Zash

    if it's something clients opt-in to then the payload container shouldn't matter

  42. Zash

    maybe some science is in order, like, what disco#info queries do clients send and to what

  43. Seve

    @board I may be on mobile today unfortunately Wish it worked ^

  44. Ge0rG

    > send an IQ to all your open outbound streams? What would be wrong with a roster-push style IQ for changed caps?

  45. jonas’

    Ge0rG, client2s or s2s or component2s?

  46. Zash


  47. jonas’


  48. Ge0rG

    jonas’: s2s and component2s

  49. Ge0rG

    but yeah, having to disconnect and reconnect in the client is sucky. Also some clients will cache server caps in RAM to not play that dance every single time

  50. jonas’

    on connecting, one could send the caps in stream features for s2s, too

  51. Ge0rG

    jonas’: this doesn't even start to address the caps-change problem

  52. jonas’

    Ge0rG, that’s true, but I don’t get your comment about reconnect

  53. Ge0rG

    jonas’: the solution to update the client-side server-caps hash is to reconnect

  54. Ge0rG

    jonas’: except when it's not

  55. jonas’

    ah, I see

  56. Ge0rG

    I don't think I made it more clear now.

  57. jonas’

    enough to nudge my parser out of the local minimum and find a more sensible interpretation of this exchange

  58. Ge0rG

    Why is everybody so unimpressed by the 0280 LC?

  59. Zash


  60. Ge0rG

    Zash: yeah. Apparently last year's council never completed the LC

  61. Ge0rG

    But as the XEP hasn't changed in years, it still sucks and all my arguments from 2016 still are true.

  62. Ge0rG

    quick poll: should I make XEP-0410 "Informational" instead of "Standards" before Proposing?

  63. Zash

    Is this legal?

  64. jonas’

    Ge0rG, I think switching tracks is a rather undefined thing to do

  65. Ge0rG

    Ohnoez. So now I need to ask Council for a decision on that, which will hand it over to Board for some serious XEP-0001 yak shaving.

  66. Kev

    410 is Standards.

  67. Ge0rG


  68. Kev

    Wait, I thought there was going to me a disco feature in there, did I dream that?

  69. Zash

    Kev: Do you have a good explanation of why?

  70. Ge0rG

    The only wire protocol it adds is the disco#info tag

  71. jonas’

    that’s probably enough

  72. Ge0rG


  73. Kev

    Zash: Because it introduces a new disco feature.

  74. Kev

    Or I thought it did, but it doesn't seem to.

  75. Ge0rG

    Kev: https://op-co.de/tmp/xep-0410.html

  76. jonas’

    I tend to agree with Kev; it essentially defines a behaviour for IQ ping on MUCs, with feature discovery.

  77. jonas’

    that’s not just Informational IMO

  78. Kev

    Ge0rG: Ah.

  79. jonas’

    Kev, it’s on the TODO, but Ge0rG didn’t want to make changes during LC

  80. Ge0rG

    Kev: PR is https://github.com/xsf/xeps/pull/739 - I'm just preparing it for Council submission

  81. Ge0rG

    Kev: and one of the LC notes was "Informational" or "Standards"

  82. Ge0rG

    jonas’: now that the LC is formally over, I can ask you any time to merge the PR, right? (I'm not doing it yet, though)

  83. jonas’

    I have to read up in '1 on that

  84. jonas’

    the LC isn’t formally over until Council has voted, is it?

  85. Ge0rG

    jonas’: until Council has voted about what exactly?

  86. jonas’

    Advance vs. Reject

  87. Ge0rG

    jonas’: and it will vote that on the XEP version submitted for LC? Regardless of two weeks worth of LC feedback?

  88. Ge0rG

    Or will it Reject and I need to get you to apply the PR and then to re-LC?

  89. jonas’

    sorry, I don’t have '1 in front of me

  90. Ge0rG


  91. Ge0rG

    I've just sent a mail to standards@, and I'll kindly ask Dave to put the PR+XEP for a vote next week.

  92. edhelas

    so I'd like your point of view on the experiment that I made to add avatar support in Pubsub, basically the idea is to publish 0084 items directly into the Pubsub node as items, this doesn't requires any changes server side, configuring the notifications without payload is adviced

  93. edhelas

    the only case it's meh is when a getitems is done on the node, then the base64 of the avatar is delivered

  94. edhelas

    on other cases, it's the same system as 0084

  95. jonas’

    edhelas, ugly

  96. edhelas

    you have a notification headline of the urn:xmpp:avatar:metadata item, you request the content, check the id and request the rest

  97. jonas’

    defeats the entire design of '84 with the separate nodes to handle the issue with the large payload

  98. jonas’

    will not work properly with node item count limits

  99. jonas’

    mixes data and metadata in the same "stream"

  100. edhelas

    ok :)

  101. edhelas

    jonas’ what is the issue of mixing different kind of content in the same stream ? we have namespace for that

  102. edhelas

    on my side it's the only solution that I found that doesn't requires big changes server side

  103. edhelas

    and I'll not wait for MIX to have such basic features available

  104. Zash

    you could have a node with items for all other nodes

  105. Zash

    you could have an URI/URL in node metadata

  106. edhelas

    this requires to set rights on the other node to publish content and restrict them

  107. edhelas

    only the publishers can publish the avatar

  108. edhelas

    and url/uri is possible yes, still in the mood of 0084 afaik

  109. jonas’

    edhelas, as you mentioned yourself: "the only case it's meh is when a getitems is done on the node, then the base64 of the avatar is delivered"

  110. jonas’

    item counts will be off, too

  111. jonas’

    you have to do additional filtering, interactions with RSM and so on

  112. edhelas

    on my implementation, displaying only 9 items and not 10 on one page is "ok"

  113. edhelas

    but indeed it's not perfect

  114. edhelas

    but RSM with chat message correction can also gives you 28 messages for 30 requested in the end

  115. pep.

    "Seve> @board" < I'm happy it doesn't. That's not something that should be in <body/>

  116. Seve

    pep., I don't disagree, but give the feature

  117. Seve


  118. Kev

    It should be in body, and then there should be a reference to annotate it.

  119. pep.

    The "@" is metadata, and is not required in body

  120. Zash

    You can use it as UI, but then not send it. Like Converse.js

  121. pep.


  122. pep.

    Although converse still fails in some cases, but that's the spirit

  123. edhelas

    Zash I'll try out the URL in metadata thing and not publish the base64

  124. pep.


  125. Zash

    https://xmpp.org/extensions/xep-0060.html#impl-uri ?

  126. edhelas

    no, example 4 in https://xmpp.org/extensions/xep-0084.html#process-pubmeta

  127. pep.

    Why http?

  128. edhelas

    where do you want to publish it ?

  129. edhelas

    on another pubsub service ? which one ? the same as where the node is ?

  130. edhelas

    we don't have any kind of filtering feature when ding disco#items on pubsub service, that's also why I moved comments nodes

  131. edhelas

    it is possible but having simple HTTP URL is also fine, this node will only be about pulling data

  132. edhelas

    (in my case Movim can even host it)

  133. pep.

    So we use http "because my client does it anyway" and it's a really ugly hack just because nobody is pushing for "the right thing"(tm)?

  134. edhelas

    0084 allows it, also base64 handling through xml is having limits

  135. edhelas

    i don't have control over the upload process of the picture for example

  136. jonas’

    if I could take one day off to attend the summit remotely, which should I take? 31st or 1st?

  137. Kev

    Hard to say. I think often the first day discussions are more intense than the second as we prioritise the stuff more people consider important/interesting.

  138. jonas’

    hard trade-off

  139. jonas’

    thursday is burger day at work. I’d be missing good burgers.

  140. Holger

    >30 participants on the list. Not bad.

  141. Seve

    Looks very promising this year

  142. Ge0rG

    And I have no way to get out of this project. I hope for a calm week so I can at least listen in

  143. ralphm set the topic to

    XSF Board Meeting | Logs: http://logs.xmpp.org/xsf/ | Agenda https://trello.com/b/Dn6IQOu0/board-meetings

  144. ralphm

    sc/me bangs gavel

  145. ralphm bangs gavel

  146. ralphm

    0. Welcome + Agenda

  147. ralphm

    Hi. Who? What?

  148. Seve

    Here on the phone, though

  149. ralphm

    Careful to not break it.

  150. Seve


  151. Guus


  152. Seve

    Good one

  153. Guus

    Mattj sent his apologies

  154. Nÿco


  155. ralphm

    1. Minute taker

  156. ralphm


  157. Guus

    Nyco has a different nickname? (or maybe it renders differently, with this update I had for my client). As we're not verified by MUC membership, anyone could pop in here now under the name 'Mattj' and vote in his name, right?

  158. Nÿco

    sorry, got a backup client, my default one had the bookmark removed, will investigate

  159. ralphm

    Guus means: start implementing MIX.

  160. Guus

    Doesn't matter Nyco - Just wondering out loud

  161. ralphm

    In any case, it uses the same real JID, so we're good.

  162. ralphm

    No takers (haha!)?

  163. ralphm

    2. Commitments

  164. ralphm

    Call for Editors. jonas’ ?

  165. Guus

    I've seen the call, but no responses, iirc

  166. ralphm

    Shall I remove the item?

  167. Guus

    I'm not sure what more that we can do, other than keep doing calls

  168. ralphm

    And since we're not actually doing them, I'm removing the item.

  169. ralphm

    * Clarify how initiate last call for Exp. XEPs

  170. Guus

    that was in your PR, right?

  171. ralphm

    I put in a Pull Request for this, along with how to actually propose.

  172. ralphm


  173. ralphm

    It would be nice to get reviews on this.

  174. Guus

    I've read and remember agreeing with it - I'll go over it once more after the meeting and +1 on the PR

  175. Guus

    do we need an in-meeting vote on this?

  176. ralphm

    I put it up for review

  177. ralphm

    Don't know what MattJ's handle is

  178. Ge0rG

    on github it's @mwild1

  179. Guus


  180. ralphm

    He doesn't show up as an option, so I'll look into that.

  181. ralphm

    It might also be nice to get opinions from the floor

  182. Guus

    and council/editors, specifically. They work with this stuff

  183. ralphm


  184. ralphm

    * Update Board status on members page

  185. ralphm

    This sounds like an 'Alex' item.

  186. Ge0rG

    ralphm: might be useful to bring the PR up for Council then. I kind of missed it

  187. Kev

    (I've just had a scan of that PR and have issue with it, FWIW, in places)

  188. ralphm

    Ge0rG: the point is that Board is the Approving Body.

  189. ralphm

    Kev: great, all feedback is welcome

  190. Kev

    Board is the approving body, but I think it'd be irresponsible to make significant changes to the standards process without consulting the body responsible for the standards :)

  191. Kev

    I don't think there's a rush for this, so I suggest getting it put on Council's agenda too.

  192. Guus

    https://xmpp.org/about/xsf/members <-- has board members?

  193. ralphm

    Kev: I'm happy for it to be on the Council's agenda.

  194. Kev


  195. ralphm

    Guus: right, I'll archive it

  196. Guus

    I'm unsure if I read the meaning of "Update Board status on members page" right.

  197. Seve

    I thought we were talking about the update I did not that long ago

  198. ralphm

    Kev: for what it is worth, I had already mentioned this PR on the standards list a week ago.

  199. Kev

    ralphm: I think it's worth flagging things explicitly on the Council agenda.

  200. ralphm

    Kev: that was the goal already and why we are discussing it. The Council's Chair is invited to Board meetings explicitly for these things.

  201. ralphm

    (and also on the Board mailing list)

  202. ralphm

    Anyway, I trust it will be discussed in the next Council meeting now. Meanwhile comments are also welcome on the PR. Moving on.

  203. ralphm

    3. GSoC

  204. ralphm

    flow: updates?

  205. Guus

    there's been an announcement, blogpost, wiki page, and revival of the GSoC that's since silent.

  206. ralphm


  207. Guus


  208. Guus

    no proposals as of yet, it seems

  209. ralphm

    The wiki page still has the default templates indeed

  210. ralphm

    4. XMPP Summit / FOSDEM

  211. ralphm

    Updates: van arranged, 500x keychain bottle opener ordered, 100x hoodies ordered.

  212. Guus

    dinner invite went out

  213. ralphm

    I sent out a reminder regarding the removal of vending machines at FOSDEM.

  214. Guus

    the hotel signup thingy has expired, so if you're still looking for a place, you'll have to make your own arrangements. You can probably still use Thon EU if you want.

  215. ralphm

    So far only 16 responses for Dinner. Another reminder to please fill in the form. No response, no food!

  216. Guus

    I'm happy with the turnup at the summit. It's more than last year.

  217. Kev


  218. Guus

    people should write down suggestions for agenda items on the wiki

  219. Guus

    who's this "Allergies: everything but filet mignon" <--??

  220. ralphm

    31 registered people for Summit

  221. ralphm

    Kev of course

  222. Kev

    It was suggested to me, but I didn't.

  223. Guus

    moving on?

  224. Guus

    I can't stay to long, today

  225. Guus

    did we loose ralphm ?

  226. ralphm


  227. Guus


  228. ralphm

    5. JabberSpam trademark application

  229. ralphm

    JabberSPAM actually

  230. Guus

    Ge0rG's response to Peter, did that get a response?

  231. Ge0rG

    Guus: not from Peter, AFAICT

  232. ralphm


  233. ralphm

    The project v.s. organization thing is a bit of a thing.

  234. ralphm

    I can see how having another organization with Jabber in its name might complicate the trademark situation.

  235. ralphm

    And hence why Peter said that might not be a good idea.

  236. Ge0rG

    is "that might not be a good idea" equivalent to the board denying the request?

  237. Ge0rG

    I'm a bit lost here about how to go on.

  238. Guus

    there's precedent for having an org with 'jabber' in it's name, trademarked: https://xmpp.org/about/xsf/jabber-trademark/approved-applications.html

  239. Ge0rG

    I wonder if they paid the 500$ fee.

  240. Ge0rG

    I actually heard once that the fee was never imposed.

  241. Guus

    I can only assume it was, but don't know.

  242. Guus

    as on how to go on: I'd like to get Peters feedback, as he's most knowledgable on this

  243. ralphm

    Well, as Ge0rG said, it might not fit the description of project either. I am struggling with this myself, and have started reading all the documentation linked from https://xmpp.org/about/xsf/jabber-trademark/background.html

  244. Ge0rG

    from a process point of view, it would be great to have this process terminate eventually with an official board response.

  245. Guus

    I've read that - there's nothing conclusive in there that I could find.

  246. Guus

    best I could reason is that George is putting forward two projects, sharing (part of) a name.

  247. Guus

    (the manifesto and the blacklist)

  248. Ge0rG

    Guus: this is a question similar to "does a github organization count as an organization in terms of the trademark licensing agreement"

  249. Guus

    Ge0rG you're right.

  250. ralphm

    https://xmpp.org/about/xsf/jabber-trademark/license-decision-process.html lists the options

  251. Guus

    As long as there's no legal representation of the github org ...

  252. Guus

    a github organization is not a legal entity, I think.

  253. ralphm

    It also says that the XSF Trademark Committee makes this decision.

  254. Ge0rG

    the XSF Trademark Committee is Board + Peter?

  255. ralphm

    It is comprised of: “a XSF Director and XSF Members who have been authorized by the XSF Board of Directors to manage the trademark licensing program”

  256. ralphm

    The former we don't have

  257. Ge0rG

    And the latter we don't have either

  258. ralphm

    and the latter we may not have explicitly appointed

  259. Guus

    so it's up to board to pick up the slack there.

  260. ralphm

    I think so to.

  261. ralphm


  262. Guus

    let's not complicate things furhter.

  263. Ge0rG

    If I volunteer to the XSF Trademark Committee, will I be put into a position to decide upon my own request?

  264. ralphm

    I tend to have opinions other than Guus and mine.

  265. ralphm

    (on anything in this meeting, really)

  266. ralphm

    want to have, I meant

  267. Guus

    you have other opinions that you? 🙂

  268. Guus

    ah 😃

  269. ralphm

    FWIW, I tend to approve, if we get the details correct.

  270. Seve

    Could that be changed for just Board for example? So we do not have to go though that process

  271. Ge0rG

    I would assume that the XSF Trademark Committee implicitly is the XSF Board.

  272. ralphm

    Seve: I suppose Board could appoint Board to be on the Committee.

  273. Guus

    Seve, I don't think we have to go to that process to begin with.

  274. ralphm

    But I think Board is clearly authorized if it votes on the matter.

  275. Ge0rG

    I am fully OK with the Board voting on trademark applications.

  276. Ge0rG

    Also deciding on whether to ask for one of the fees.

  277. Ge0rG

    (personally, I'd love to change the process to not demand any fees from non-commercial entities)

  278. ralphm

    I'm not considering any changes to the process before understanding how it is currently supposed to work.

  279. Guus

    Ge0rG working on the assumption that Peter does not bring up new issues, you change the name on the trademark application to the non-abbreviated name (as you already suggested), and we're licensing to two projects, instead of an organization, I tend to be OK with issuing the trademark. Let's ping Peter, and find out more.

  280. Ge0rG

    Guus: I'm not sure whether my mail counts as "pinging Peter"

  281. Guus

    I'll ask Peter for an update

  282. Ge0rG

    Guus: also one of the open questions was whether the long-name trademark will allow me to use the shortname in URLs

  283. ralphm


  284. ralphm

    Thanks Guus

  285. Ge0rG

    and that question is kind of blocking for me

  286. ralphm

    I understand.

  287. Ge0rG

    because if the answer is "no", the whole application stops making much sense.

  288. Guus

    I assume it is OK, but would like Peter's feedback on that.

  289. ralphm

    Let's try and get more answers for/during next week at the Summit.

  290. ralphm

    6. Executive Director (bis)

  291. Ge0rG


  292. ralphm

    I know we have discussed this at length already, but I've been reading our bylaws, and I'm not too comfortable about the vacancy for this officer.

  293. Guus

    what are your concerns?

  294. ralphm

    The point is that the bylaws (and e.g. the trademark policy) explicitly mention this role.

  295. ralphm

    And it is unclear how things should work in the absence of an ED.

  296. Ge0rG

    from the floor, I'd assume that All Of Board needs to make any decisions then.

  297. ralphm

    Right, but I wonder if that should be made explicit. Unfortunately, we didn't really get much feedback on our previous meeting on this topic, either.

  298. ralphm

    The minutes now state: “As of now, Board is executing their decisions themselves. The consensus seems to be that this mode of operation is fine for now, and there is no extreme pressure to find a replacement.”

  299. ralphm

    I think that is aligned with Ge0rG's comment.

  300. Guus

    I'm not to worried about not filling the position, and not change the bylaws either.

  301. ralphm


  302. Guus

    if a problem does occur, we'll have to resort to appointing another ED.

  303. Guus

    which will then be problematic, probably.

  304. Guus

    but in effect, the ED has been absent for years.

  305. Guus

    and/or done nothing in that role

  306. Seve

    What problems could be encounter because of that?

  307. Guus

    it's way past time for me

  308. ralphm

    I cannot currently think of one. So maybe we should leave at this for now.

  309. ralphm

    7. AOB

  310. Seve

    Ok, no problem.

  311. Guus

    I'd like to vote on the ED thing asap

  312. Guus

    it's been dragging

  313. Guus

    AOB: nyco, did you get in touch with that designer friend for the badges?

  314. Ge0rG

    Guus: what exactly would you like to vote on?

  315. Guus

    Ge0rG to keep the position, but vacant.

  316. Ge0rG

    Ah, yeah. The badges. Would be great to have them.

  317. ralphm

    Guus: I'll put the vote on for next meeting.

  318. Guus

    nyco ?

  319. ralphm

    Ge0rG: Postponing that item.

  320. ralphm

    8. Date of Next

  321. Guus

    lets do +2w

  322. ralphm

    Next week is the Summit. We may meet in person, but I'm not scheduling a meeting.

  323. ralphm

    Suggesting +2W

  324. Ge0rG

    (also better for Minutes and following in here)

  325. ralphm

    Ge0rG: any formal meeting would also be in here

  326. Seve

    Unfortunately I will not attend Summit nor Fosdem this year, so I'm okay with what you suggest

  327. ralphm

    (transcribed or otherwise)

  328. ralphm

    9. Close

  329. ralphm

    Thanks all!

  330. Guus

    Thanks, bye!

  331. ralphm bangs gavel

  332. Ge0rG

    Thanks Board!

  333. Nÿco


  334. Seve

    Thank you guys

  335. ralphm set the topic to

    XSF Discussion | Logs: http://logs.xmpp.org/xsf/ | Agenda https://trello.com/b/Dn6IQOu0/board-meetings

  336. Ge0rG

    > Stream closed by us: Improper 'from' attribute (invalid-from) That had to hurt.

  337. Zash

    Is that even legal (assuming the server did it in response to the clients 'from')

  338. Zash

    Is that even legal (assuming the server did it in response to the clients 'from')?

  339. neshtaxmpp

    moparisthebest: hi...

  340. moparisthebest


  341. Link Mauve

    Andrew Nenakhov, it seems Xabber asks for the vCard-temp of the contacts on their full JID, and twice in a few ms, when the contact connects.

  342. Ge0rG

    Link Mauve: https://github.com/redsolution/xabber-android/issues/839

  343. Link Mauve

    Oh, thanks.

  344. Link Mauve

    It is doing it twice though, which isn’t described in this bug report.

  345. Ge0rG

    Link Mauve: once is one too many already, but please add a comment

  346. Link Mauve

    Ge0rG, done.

  347. jonas’

    Link Mauve, tried a XEP-0030 request? some software includes a version there in some way

  348. Link Mauve

    jonas’, that did it, thanks; I just edited the comment.

  349. jonas’


  350. Link Mauve

    Also, you were all waiting for it, but poezio now supports SVG avatars. o/

  351. Link Mauve

    Also, since you were all waiting for it, poezio now supports SVG avatars. o/

  352. jonas’

    does it raster them to a pixel graphic before rendering them as character art first?

  353. Link Mauve

    Of course.

  354. Link Mauve

    To a 16×16 buffer.

  355. Link Mauve

    The character art is just either Unicode half-blocks, or full-blocks, depending on whether your ncurses is broken.

  356. jonas’

    boooring ;-)

  357. jonas’

    should do fancy tricks with \ and / to approximate lines ;-)

  358. Zash

    Now get me 2x2 pixel avatars next to nicks in rooms

  359. Link Mauve

    jonas’, we have Unicode support, there is no reason not to use it. :p

  360. Link Mauve

    Zash, the code to do that is here.

  361. Link Mauve

    I’m not that sure about the usefulness of it yet.

  362. Zash

    Something something human visual identification of symbols and colors and something

  363. jonas’

    I think it might actually be useful

  364. Link Mauve

    I probably should add a cache of the rendered pixel data first though.

  365. pep.


  366. Link Mauve

    Otherwise rendering the participants list might become slow.

  367. pep.

    For those who wonder what Link Mauve's avatar looks like

  368. Zash


  369. Link Mauve

    pep., cute isn’t it? ^^

  370. Link Mauve

    Zash, jonas’, if you find a nice algorithm rendering finer pixels, I’m all for it.

  371. pep.

    Maybe someday we'll implement MAM in poezio

  372. Link Mauve

    This looks a bit like motion detection in video codecs.

  373. Zash

    Link Mauve: U+2596 .. U+259F

  374. pep.

    When we're done with avatars

  375. Link Mauve

    Zash, the issue is about identifying which two colours and which block character to use.

  376. Zash

    Those + for- and background colors gets you 2x2 pixels in one square

  377. moparisthebest

    you could copy whatever gitea does for generating avatars

  378. jonas’

    Link Mauve, with SVG, you have the additional data

  379. jonas’

    you don’t need to do much guess on the pixel data

  380. moparisthebest

    but I find them basically indistinguishable after more than 2 or 3

  381. Link Mauve

    jonas’, not with this renderer though.

  382. jonas’

    Link Mauve, write your own!

  383. Link Mauve

    And we still need to quantize to two colours per actual character.

  384. Link Mauve

    jonas’, no, I won’t write a new SVG renderer. :p

  385. jonas’


  386. Ge0rG

    Link Mauve: so you are back at fixing poezio, after fixing the prosody caching module? ☺️

  387. Link Mauve

    Ge0rG, I didn’t manage to reach anything satisfying there yet.

  388. Zash


  389. Link Mauve

    Yes, these two characters are perfect to represent Prosody’s logo.

  390. Zash

    What more could you possibly need? :)

  391. Link Mauve

    I’m pretty sure most avatars in this MUC won’t render that well. :p

  392. Zash

    That's one character tho. (followed by a space because my terminal is weird)

  393. jonas’

    which one is it?

  394. Zash


  395. jonas’

    the character

  396. Zash

    It doest't like double-wide chars

  397. jonas’

    not the terminal…

  398. jonas’

    I wanna see how it renders in mine

  399. Link Mauve

    jonas’, ▚.

  400. Zash


  401. Zash

    There's a few around that one useful for drawing pixel art