Show newer

technology hot take 

@ljwrites you know… the fediverse was originally built on Atom lol

you may not think this is an important issue, and the first post might be a bit misleading (since i would much rather have a locale-independent solution than a locale-dependent one), but personally i think it is VERY important

Show thread

hey eugen stop programming Mastodon for iOS for a second and fix my very important issue github.com/mastodon/mastodon/i

@aescling i'd do at-everyone as like a 👥 sigil, and have it imply local-only and be opt-out for receiving posts

some further fleshed‐out CSS 

html{ Display: Grid; Padding-Block-Start: 2REM; Padding-Block-End: 4REM; Padding-Inline-Start: 1REM; Padding-Inline-End: 1REM; Grid: Auto-Flow / 6FR 4FR; Gap: 1REM; Color: #000000; Background: }
body{ Display: Block; Padding-Block-Start: 6REM; Position: Relative; Margin-Inline-Start: Auto; Margin-Inline-End: 0; Max-Inline-Size: 38EM; Font: Medium / 1.25 Serif; Counter-Reset: SECTION }
body::after{ Display: Block; Clear: Both; Content: "" }
h1,
body>p:First-Child::before{ Display: Block; Margin-Block-Start: 2REM; Margin-Block-End: 2REM; Block-Size: 4REM; Opacity: .75; Font-Size: 3.2REM; Line-Height: 1.25; White-Space: Pre; Text-Align: Center }
body>h1:First-Child,
body>p:First-Child::before{ Position: Absolute; Inset-Block-Start: 0; Inset-Inline-Start: 0; Inset-Inline-End: 0; Margin-Block-Start: 0 }
body>p:First-Child::before{ Content: "…" }
p{ Margin: 0; Text-Align: Justify }
p+p{ Margin-Block-Start: 1EM }
ins[role=note]{ Display: Block; Box-Sizing: Border-Box; Margin-Block-Start: 1REM; Margin-Block-End: 1REM; Border-Block-Start: Thin Solid; Border-Block-End: Thin Solid; Padding: 1EM; Color: ; Background: ; Text-Align: Justify; Text-Decoration: None; Counter-Increment: UNNOTE }
p>ins[role=note]{ Float: Left /* compatibility */; Float: Inline-Start; Clear: Left /* compatibility */; Clear: Inline-Start; Position: Relative; Inset-Inline-End: Calc(-100% - 1REM); Margin-Block-Start: 0; Margin-Block-End: 0; Margin-Inline-End: Calc(-40% / .6); Inline-Size: Calc(40% / .6); Counter-Increment: None }
ins[role=note]::before{ Display: Inline-Block; Margin-Inline-End: .5EM; Min-Inline-Size: 3EM; Background: ; Font-Weight: Bold; Text-Align: Center; Content: "§" Counter(SECTION) ":" Counter(UNNOTE, Upper-Alpha) }
mark+ins[role=note]::before{ Content: "§" Counter(SECTION) ":" Counter(NOTE) }
mark{ Box-Decoration-Break: Clone; Margin: -3PX; Border: 2PX Groove ; Padding: 1PX; Background: ; Counter-Increment: NOTE }
mark::after{ Font-Size: .6EM; Font-Weight: Bold; Line-Height: 1; Vertical-Align: Super; Content: " " Counter(NOTE) }
body>*:First-Child,
hr{ Counter-Increment: SECTION; Counter-Reset: NOTE UNNOTE }

Show thread

@KitRedgrave unfortunately the best solution for that in 2021 is probably <del>embedded SVG</del><ins>custom emoji</ins>

still not entirely sure what emotion tukico represents

Show thread

janice kwan is like dreampunk but filled with hope instead of ennui

good music

@KitRedgrave in more length: ZWJ basically means “form ligature here”. thinking of 🧑‍🌾 as a ligature of 🧑 and 🌾 kind of makes sense; it’s certainly not the most elegant solution, and it was chosen more for political/temporal reasons than accuracy ones (basically, vendors wanted to add a bunch of emoji without waiting for the next Unicode release, and it was questionable whether a lot of those characters would pass muster for atomic encoding anyway. so they defined ligatures between existing characters, and Unicode standardized those).

but the demicolon isn’t a ligature of two semicolons (it doesn’t have the same meaning, and if you showed someone a demicolon, they wouldn’t say “ah yes, that’s two semicolons right there”). plus, forming ligatures from punctuation marks like that doesn’t have any precedent and would be difficult to document. (emoji have a separate data file of sequences, but that’s generally not true for ordinary characters.) it’s its own punctuation mark, so an atomic encoding is best.

that said, there is no rule against fonts encoding their own ligatures above and beyond those defined in unicode. whether encoding demicolon as a ligature of two semicolons is preferable largely depends on what fallback behaviour you want if the font isn’t installed: is a fallback of two semicolons desired? or would you rather use a private‐use character, and make it explicit that it’s not a character with an assigned codepoint in the unicode standard?

@KitRedgrave they’d just encode it atomically; two zwidged semicolons would be a font easter egg more than a unicode one

@aescling (note that the size of annotations isn’t zero, it’s Calc(40% / .6). but the size that annotations take up *in their containing element* is zero, because that width is followed by a negative margin which offsets it.)

@aescling the explicit width of the element (in this example, i wrote this `Inline-Size: Calc(40% / .6)`). this trick only works for annotations of a width predictable from the surrounding context; you can’t use it with annotations whose widths depend on their own contents.

@aescling so the problem being solved here is when you have two annotations, they shouldn’t overlap

using Float: Left plus Clear: Left prevents the overlap by making each annotation come after the end of the previous one

however floats normally do this:

text text blah blah blah, blah
┌───┐blah blah blah
│float │blah bleh bloop
└───┘blorg blah.

relative positioning shifts the float until it is in the margin, but it doesn’t affect the space reserved for it in document flow. to take care of that, we add a negative right margin equal to the width of the float, which effectively pulls the surrounding content in from the right, as if the float had no width.

to see, try disabling the Margin-Right in the web inspector. you’ll see the reserved space. disable Position: Relative, and you’ll see where the float would normally be placed.

@aescling uh, i didn’t look at that when i was writing this, and i’m pretty sure that that didn’t use Grid for sizing the areas (could be wrong), but the technique of using a float with margins that make it effectively 0 width is something i developed for that, yeah

REPOST: the kind of girl who knows about Unicode casefolding :so_cool:

@KitRedgrave @aescling also “kindness” in this case is mostly just a matter of keeping the project scope manageable lol

@KitRedgrave @aescling cutting dependencies is slated for code review, but there are few features in mastodon that nobody needs

Show older
📟🐱 GlitchCat

A small, community‐oriented Mastodon‐compatible Fediverse (GlitchSoc) instance managed as a joint venture between the cat and KIBI families.