Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC2997: Add t-shirt #2997

Open
wants to merge 4 commits into
base: old_master
Choose a base branch
from
Open

Conversation

Sorunome
Copy link
Contributor

@Sorunome Sorunome commented Feb 7, 2021

Rendered

Signed-off-by: Sorunome [email protected]

Please note that this proposal is meant as a joke and is not to be taken seriously


Unstable implementation: #2997 (comment)

@Sorunome Sorunome changed the title MSC2996: Add t-shirt MSC2997: Add t-shirt Feb 7, 2021
@turt2live turt2live added kind:core MSC which is critical to the protocol's success proposal A matrix spec change proposal proposal-in-review labels Feb 7, 2021
@Cadair
Copy link
Contributor

Cadair commented Feb 7, 2021

But what colour should they be?

@SimonBrandner
Copy link
Contributor

And what sizes will be available?

@SimonBrandner
Copy link
Contributor

And what sizes will be available?

Hmmm, I think we should also use something better than S, M, L and Xl... We should use some units like beard-seconds! Also, we should probably display the sizes in binary for simplicity

@PaarthShah
Copy link

From a purely grammatical nitpick, I have to point out that even assuming that the Matrix spec will never be complete and that there will always be more MSCs, that MSC2997 as-rendered will never be able to refer to itself.

That is to say, in the sentence "There's an MSC for that!" (emphasis mine), present on the T-shirt, it would be improper grammar for "that" to be allowed to refer to MSC2997, and thus explain the T-Shirt's existence.

Potential solutions:
Add a second line: "...and an MSC for this." ("this" being the operative reflexive pronoun to properly reference MSC2997)
OR
Disambiguate the original phrase: "If you can think of it, there's an MSC for it!"

Potential downsides of either include "ruining the joke", but I think that's a perfectly acceptable compromise for technical correctness.

@MTRNord
Copy link
Contributor

MTRNord commented Feb 8, 2021

From a purely grammatical nitpick, I have to point out that even assuming that the Matrix spec will never be complete and that there will always be more MSCs, that MSC2997 as-rendered will never be able to refer to itself.

That is to say, in the sentence "There's an MSC for that!" (emphasis mine), present on the T-shirt, it would be improper grammar for "that" to be allowed to refer to MSC2997, and thus explain the T-Shirt's existence.

Potential solutions:
Add a second line: "...and an MSC for this." ("this" being the operative reflexive pronoun to properly reference MSC2997)
OR
Disambiguate the original phrase: "If you can think of it, there's an MSC for it!"

Potential downsides of either include "ruining the joke", but I think that's a perfectly acceptable compromise for technical correctness.

What about we strikte "that" in the Text and put a handwritten "this" over it to emphanzise how the spec progress works?


## Security considerations

Unfortunately not all people are able to wear t-shirts, so a solution for those would have to be
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what about wristbands with text for them?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a fair point, though I'm not sure if it would mitigate the security that a t-shirt provides. For one, the surface area of a t-shirt far outweighs that of a wristband. Wristbands can also be made from a variety of materials, some even opting for mere paper.

Not to mention the lack of area for displaying the intended messaging of the MSC.

I think if wristbands is taken as an approach, care should be taken to ensure the security and practicality of the device.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about a hat? Or similar headware? It is more visible than a wristband and everyone that is affected by MSC tends to have a head. Or do we also want to integrate aliens via a bridge end expect headless users?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about capes? Almost everyone has a neck and you can make them pretty big to put arbitrary messages on them. Would need to come with a disclaimer not to wear them next to aircrafts though.

@deepbluev7
Copy link
Contributor

Please comment on some line of the MSC, since otherwise the discussion is hard to follow, since you don't get threads!

@ShadowJonathan
Copy link
Contributor

In all seriousness, i'd like to have one on https://shop.matrix.org, preferably in the following format;

[matrix] logo on top, and underneath, in hand-writing font; "There's an MSC for that!"

@MTRNord
Copy link
Contributor

MTRNord commented Feb 8, 2021

In all seriousness, i'd like to have one on https://shop.matrix.org, preferably in the following format;

[matrix] logo on top, and underneath, in hand-writing font; "There's an MSC for that!"

Use threads please

@uhoreg
Copy link
Member

uhoreg commented Feb 12, 2021

Use threads please

Yes, threads are important to use for T-shirts

proposals/2997-tshift.md Outdated Show resolved Hide resolved
{
"type": "m.t-shirt",
"content": {
"body": "There's an MSC for that!"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should body in this case actually be the user? T-shirts are generally most useful on the user's body

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As @uhoreg pointed out here it might be a plan that, moving forward, any event should have a fallback body to display.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My suggestion is simply that the t-shirt will be more useful if the body in question were to be the user's body instead of some arbitrary text.

Properly serialising the end user may however prove to be a significant implementation challenge

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oooh, do you mean like this?

{
  "type": "m.t-shirt",
  "content": {
    "body": "@sorunome:sorunome.de"
  }
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a medical stuff, so it's probably depending on us to spec HL7 FHIR resource state events. ^_^

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should make it a state event, then? Since state_keys starting with @ are preserved so that they only can be set by the user themself and not by others.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes! And the content is quite obvious.
https://www.hl7.org/fhir/genomics.html

Copy link
Contributor

@kate-shine kate-shine Feb 18, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the other hand, I'm quite worried that the serialization of user would require a space of t-shirt-as-rooms


Instead of a shirt, a sweater or thelike could be used.

Instead of just printing normal event contents on the shirt we might want to consider using
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While the increased flexibility for metadata would be useful, specific care should be given to the sizing implementation. Smaller users may have issues with the fit of a room based t-shirt

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It could allow us to have not only "One size fits all" t-shirts, but also "One size fits many" - at once!


## Potential issues

Once the spec is complete and there are no more MSCs the t-shirt will be obsolete.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once the spec is complete and there are no more MSCs the t-shirt will be obsolete.
Once the spec is complete and there are no more MSCs the t-shirt will be obsolete. That's unlikely to happen anytime soon though.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Once the spec is complete and there are no more MSCs the t-shirt will be obsolete.
Once the spec is complete and there are no more MSCs the t-shirt will be obsolete.
That is never going to happen, though.

Comment on lines +9 to +10
Get a t-shirt with "There's an MSC for that!" written on it. This T-shirt shall include a code block
typeset in a monospace block that should read

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Get a t-shirt with "There's an MSC for that!" written on it. This T-shirt shall include a code block
typeset in a monospace block that should read
Get a t-shirt. This T-shirt shall include a code block typeset in a monospace block that should read

@turt2live turt2live added the needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. label Jun 8, 2021

## Alternatives

Instead of a shirt, a sweater or thelike could be used.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems shirts have not been considered which I find quite sad since I am a regular user of them

@@ -0,0 +1,39 @@
# MSC2997: "There's an MSC for that!"
Copy link
Contributor

@MTRNord MTRNord Oct 1, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly for visual reference based on the current MSC state. :) Not finished in the slightest, and more a 15m photoshop adventure than anything else. But maybe it helps future readers to visualize some ideas on this MSC.

Fonts used are roboto mono regular and "Maybe Next" Regular.

Front

@yncyrydybyl
Copy link
Member

There is another draft for an implementation from @nadineminagawa. It will cover the front end and back end implementation of this MSC.
The fake handwriting should be replaced by some real handwriting. And we need to find out if we want to have the side effects.
MSC-Shirt.pdf

@HarHarLinks
Copy link
Contributor

MSC-Shirt.pdf

  • please note that as long as this MSC isn't merged, the unstable prefix de.sorunome.t-shirt should be used for the backend implementation as demonstrated by MTRNord ;)
  • I'm not sure why the n on the frontend would be crossed out, but then I'm not a native English speaker
    image

@yncyrydybyl
Copy link
Member

I'm not sure why the n on the frontend would be crossed out, but then I'm not a native English speaker

"an" is used if the following words sounds like a vowel but "a" for a consonant sound.

We can stay with the "a". There is the example of an MP3-Player at https://dictionary.cambridge.org/grammar/british-grammar/a-an-and-the

image

@HarHarLinks
Copy link
Contributor

"an" is used if the following words sounds like a vowel but "a" for a consonant sound.

exactly, "MSC" is pronounced ~ "emm ess see", which means it should be "an MSC" same as "an MP3"

@axelsimon
Copy link

There is another draft for an implementation from @nadineminagawa. It will cover the front end and back end implementation of this MSC.

Quick nitpick: the apostrophe used on the t-shirt draft is upside down, it should be (ie, heavy part up, cf. wikipedia article).

Comment on lines +12 to +17
{
"type": "m.t-shirt",
"content": {
"body": "There's an MSC for that!"
}
}
Copy link
Contributor

@HarHarLinks HarHarLinks Aug 15, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A POC implementation was done for CCCamp23!

The following constitutes the backend implementation

Suggested change
{
"type": "m.t-shirt",
"content": {
"body": "There's an MSC for that!"
}
}
{
"type": "m.t-shirt",
"content": {
"body": "There's an MSC for that!",
"background": "$bgcolor",
"text-color": "$fgcolor",
"size": "$size",
"fitted": $fitted,
"frontend.logo": $logo,
"backend.highlight": $highlight
},
"origin_server_ts": $timestamp
}

where

  • bgcolor is the shirt's color, in this case #000000
  • fgcolor is the frontend print's color, in this case #FFFFFF
  • size is the T-shirt size in T-Shirt sizes, we used S, M, L, XL, XXL, XXXL
  • optionally, fitted indicates whether it's a fitted T-shirt (boolean)
  • logo is whether the frontend depicts the [matrix] logo (boolean), in this case true
  • highlight is whether the backend implementation uses syntax highlighting (boolean), in this case true
  • timestamp is the creation or event start, in this case 1692049320000

Full event as implemented by us:

{
  "type": "de.sorunome.t-shirt",
  "org.matrix.msc2997.content": {
    "body": "There's an MSC for that!",
    "background": "#000000",
    "text-color": "#FFFFFF",
    "size": "M",
    "fitted": true,
    "frontend.logo": true,
    "backend.highlight": true
  },
  "origin_server_ts": 1692049320000
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(gratz @Sorunome, you're eternalised in a couple T-shirts now.... 🎉)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(implementation accepted - MSC description updated)

Copy link
Contributor

@HarHarLinks HarHarLinks Sep 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We iterated for Matrix Community Summit 2023!
It is based on the extensible events for media and by extension, files.
content contains 3 blocks:

  • Like the media extensible events, there is the m.text fallback block in case your t-shirt manufacturer is unable to reproduce the graphic given by the file.
  • The m.file block holds some common properties
  • The m.t-shirt block (unstable prefix org.matrix.msc2997.t-shirt) specifies some t-shirt specific details

Some details of the event metadata are not shown in the backend for comprehensiveness.

Suggested change
{
"type": "m.t-shirt",
"content": {
"body": "There's an MSC for that!"
}
}
{
"type": "de.sorunome.t-shirt",
"sender": "$sender_mxid",
"content": {
"m.text": [
{ "body": "There's an MSC for that!" }
],
"m.file": {
"url": "mxc://$some_url",
"name": "$url_label",
"mimetype": "$mime",
"size": "$size"
},
"org.matrix.msc2997.t-shirt": {
"background": "$bgcolor",
"text-color": "$fgcolor",
"fitted": $fitted,
"frontend.logo": $logo
"backend.highlight": $highlight
}
},
"origin_server_ts": $event_start
}

where:

  • sender_mxid per https://spec.matrix.org/latest/client-server-api/#room-event-format
  • some_url a url in the format of https://spec.matrix.org/latest/client-server-api/#matrix-content-mxc-uris that coincidentally also works when using it with the HTTP(s) protocol instead of MXC - we used mxc://summit2023.matrixmeetup.de/conference
  • mime the material of the shirt, in this case t-shirt/cotton
  • size is the T-shirt size in T-Shirt sizes, we used S, M, L, XL, XXL, up to 5XL
  • bgcolor is the shirt's color, in this case #000000
  • fgcolor is the frontend print's color, in this case #FFFFFF (only relevant if the fallback text is used)
  • optionally, fitted indicates whether it's a fitted T-shirt (boolean) - our implementation lists it explicitly even if false
  • logo is whether the frontend depicts the graphic indicated by the m.file.url (boolean), in this case true
  • highlight is whether the backend implementation uses syntax highlighting (boolean), in this case true
  • timestamp is the creation or event start, in this case 1695283200000

Full event as implemented by us:

{
  "type": "de.sorunome.t-shirt",
  "sender": "@me:homeserver.tld",
  "content": {
    "m.text": [
      { "body": "There's an MSC for that!" }
    ],
    "m.file": {
      "url": "mxc://matrixmeetup.de/summit2023",
      "name": "Matrix Community Summit 2023",
      "mimetype": "t-shirt/cotton",
      "size": "L"
    },
    "org.matrix.msc2997.t-shirt": {
      "background": "#000000",
      "text-color": "#FFFFFF",
      "fitted": true,
      "frontend.logo": true,
      "backend.highlight": true
    }
  },
  "origin_server_ts": 1695283200000
}

@turt2live turt2live removed the needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. label Aug 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:core MSC which is critical to the protocol's success proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.