Chrissy Teigen is on Bluesky y'all it's real
{
"type": "entry",
"published": "2023-04-28T01:28:18+00:00",
"url": "https://twitter.com/ZoeSchiffer/status/1651760218165108736",
"photo": [
"https://pbs.twimg.com/media/Fuw7DqHagAE8p0m.png"
],
"content": {
"text": "Chrissy Teigen is on Bluesky y'all it's real"
},
"author": {
"type": "card",
"name": "Zo\u00eb Schiffer",
"url": "https://twitter.com/ZoeSchiffer",
"photo": "https://pbs.twimg.com/profile_images/1564799885794086914/ZU6qMT_n.jpg"
},
"post-type": "photo",
"_id": "36843158",
"_source": "2773"
}
{
"type": "entry",
"published": "2023-04-28T01:05:17+00:00",
"url": "https://twitter.com/jgmac1106/status/1651754424023371776",
"quotation-of": "https://twitter.com/czeburashkaHS/status/1651675929003933696",
"content": {
"text": "I have a new fav"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/czeburashkaHS/status/1651675929003933696": {
"type": "entry",
"published": "2023-04-27T19:53:22+00:00",
"url": "https://twitter.com/czeburashkaHS/status/1651675929003933696",
"photo": [
"https://pbs.twimg.com/media/Fuvuf3TWcBUHyrA.jpg"
],
"content": {
"text": "#NoweZdjecieProfilowe",
"html": "<a href=\"https://twitter.com/search?q=%23NoweZdjecieProfilowe\">#NoweZdjecieProfilowe</a>"
},
"author": {
"type": "card",
"name": "Czeburaszek",
"url": "https://twitter.com/czeburashkaHS",
"photo": "https://pbs.twimg.com/profile_images/1651675905448607746/vx61UAPP.jpg"
},
"post-type": "photo"
}
},
"_id": "36842855",
"_source": "2773"
}
I had a great time at #NABShow last week meeting everyone and filming interviews at the booths! Check out my new behind-the-scenes video with a description of how I filmed and published these
videos the same day! youtu.be/snevS9H4_xs
{
"type": "entry",
"published": "2023-04-27T23:58:49+00:00",
"url": "https://twitter.com/aaronpk/status/1651737698309410817",
"content": {
"text": "I had a great time at #NABShow last week meeting everyone and filming interviews at the booths! Check out my new behind-the-scenes video with a description of how I filmed and published these \nvideos the same day! youtu.be/snevS9H4_xs",
"html": "I had a great time at <a href=\"https://twitter.com/search?q=%23NABShow\">#NABShow</a> last week meeting everyone and filming interviews at the booths! Check out my new behind-the-scenes video with a description of how I filmed and published these \nvideos the same day! <a href=\"https://youtu.be/snevS9H4_xs\">youtu.be/snevS9H4_xs</a>"
},
"author": {
"type": "card",
"name": "Aaron Parecki",
"url": "https://twitter.com/aaronpk",
"photo": "https://pbs.twimg.com/profile_images/1477113672803622912/ljLUwFLP.jpg"
},
"post-type": "note",
"_id": "36841803",
"_source": "2773"
}
The more and more I think about it @koneko
"We Bonk Hard, and Our Kisses Taste Like Your Mom"
Does need to be a guitar rock ballad.
{
"type": "entry",
"published": "2023-04-27T23:38:03+00:00",
"url": "https://twitter.com/jgmac1106/status/1651732472021876736",
"content": {
"text": "The more and more I think about it @koneko\n\n\"We Bonk Hard, and Our Kisses Taste Like Your Mom\"\n\nDoes need to be a guitar rock ballad.",
"html": "The more and more I think about it <a href=\"https://twitter.com/koneko\">@koneko</a>\n\n\"We Bonk Hard, and Our Kisses Taste Like Your Mom\"\n\nDoes need to be a guitar rock ballad."
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"_id": "36841545",
"_source": "2773"
}
Lotta comments about Bluesky on Twitter Blind rn…
{
"type": "entry",
"published": "2023-04-27T19:52:21+00:00",
"url": "https://twitter.com/ZoeSchiffer/status/1651675673923297280",
"content": {
"text": "Lotta comments about Bluesky on Twitter Blind rn\u2026"
},
"author": {
"type": "card",
"name": "Zo\u00eb Schiffer",
"url": "https://twitter.com/ZoeSchiffer",
"photo": "https://pbs.twimg.com/profile_images/1564799885794086914/ZU6qMT_n.jpg"
},
"post-type": "note",
"_id": "36837129",
"_source": "2773"
}
This will be a good thread explaining why aid to Ukraine ain't like your bank account.
F-- the New York Times, this is more bullshit reporting:
"The price tag for delivering it is staggeringly high. U.S. taxpayers have spent $35.4 billion on security aid ...
{
"type": "entry",
"published": "2023-04-27T19:16:42+00:00",
"url": "https://twitter.com/jgmac1106/status/1651666699517587472",
"quotation-of": "https://twitter.com/Carl___Spackler/status/1651665967607345174",
"content": {
"text": "This will be a good thread explaining why aid to Ukraine ain't like your bank account."
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/Carl___Spackler/status/1651665967607345174": {
"type": "entry",
"published": "2023-04-27T19:13:47+00:00",
"url": "https://twitter.com/Carl___Spackler/status/1651665967607345174",
"content": {
"text": "F-- the New York Times, this is more bullshit reporting:\n \n\"The price tag for delivering it is staggeringly high. U.S. taxpayers have spent $35.4 billion on security aid for Ukraine since Russia invaded on Feb. 24, 2022\u2014more than $3 million per hour.\"\n\n1/"
},
"author": {
"type": "card",
"name": "Carl Spackler (Kaja Kallas stan account)",
"url": "https://twitter.com/Carl___Spackler",
"photo": "https://pbs.twimg.com/profile_images/1624569172150652928/TczIOsrg.jpg"
},
"post-type": "note"
}
},
"_id": "36836336",
"_source": "2773"
}
Wow Google Docs just glitched on me and I seemingly lost the entire piece I'd been writing. Has this happened to anyone before? What do I do? Version history won't work 😭
{
"type": "entry",
"published": "2023-04-27T17:30:45+00:00",
"url": "https://twitter.com/ZoeSchiffer/status/1651640035912085506",
"content": {
"text": "Wow Google Docs just glitched on me and I seemingly lost the entire piece I'd been writing. Has this happened to anyone before? What do I do? Version history won't work \ud83d\ude2d"
},
"author": {
"type": "card",
"name": "Zo\u00eb Schiffer",
"url": "https://twitter.com/ZoeSchiffer",
"photo": "https://pbs.twimg.com/profile_images/1564799885794086914/ZU6qMT_n.jpg"
},
"post-type": "note",
"_id": "36834122",
"_source": "2773"
}
How much more proof do we we need?
Forget any courts or the UN.
Just as basic humans.
How much more proof of genocide do you need?
{
"type": "entry",
"published": "2023-04-27T17:07:35+00:00",
"url": "https://twitter.com/jgmac1106/status/1651634208723410945",
"photo": [
"https://pbs.twimg.com/media/FuvIiXUXoB8I3Qm.jpg"
],
"content": {
"text": "How much more proof do we we need?\n\nForget any courts or the UN.\n\nJust as basic humans.\n\nHow much more proof of genocide do you need?"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "photo",
"_id": "36833601",
"_source": "2773"
}
hey @fnj (beyond wow 3 character OG) I need to redo that thread.
somehow broke and split in two I think as I was either shadowbanned or just trolling and replied to wrong tweet
entire thread starts halfway down this mess:
moving to website tomorrow
How about Vulhedar where Russia got their ass whooped...what does that look like from getting "almost saved"
{
"type": "entry",
"published": "2023-04-27T15:39:00+00:00",
"url": "https://twitter.com/jgmac1106/status/1651611915095818248",
"quotation-of": "https://twitter.com/jgmac1106/status/1651387770084925440",
"content": {
"text": "hey @fnj (beyond wow 3 character OG) I need to redo that thread.\n\nsomehow broke and split in two I think as I was either shadowbanned or just trolling and replied to wrong tweet\n\nentire thread starts halfway down this mess: \n\nmoving to website tomorrow",
"html": "hey <a href=\"https://twitter.com/fnj\">@fnj</a> (beyond wow 3 character OG) I need to redo that thread.\n\nsomehow broke and split in two I think as I was either shadowbanned or just trolling and replied to wrong tweet\n\nentire thread starts halfway down this mess: \n\nmoving to website tomorrow"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/jgmac1106/status/1651387770084925440": {
"type": "entry",
"published": "2023-04-27T00:48:20+00:00",
"url": "https://twitter.com/jgmac1106/status/1651387770084925440",
"photo": [
"https://pbs.twimg.com/media/FuroalvX0AA4bwV.jpg"
],
"in-reply-to": [
"https://twitter.com/jgmac1106/status/1651387309500035076"
],
"content": {
"text": "How about Vulhedar where Russia got their ass whooped...what does that look like from getting \"almost saved\"",
"html": "How about Vulhedar where Russia got their ass whooped...what does that look like from getting \"almost saved\"\n<a class=\"u-mention\" href=\"https://twitter.com/Bundsch90207916\"></a>\n<a class=\"u-mention\" href=\"https://twitter.com/DefensePolitics\"></a>\n<a class=\"u-mention\" href=\"https://twitter.com/dujon_jeffrey\"></a>\n<a class=\"u-mention\" href=\"https://twitter.com/just_ice_served\"></a>"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "reply"
}
},
"_id": "36831267",
"_source": "2773"
}
cc/ @MooshieMadz
There is a literal John Wick NAFO shrine
John Wick patron saint of doggies!
twitter.com/lindsaygoldwer…
{
"type": "entry",
"published": "2023-04-27T15:00:47+00:00",
"url": "https://twitter.com/jgmac1106/status/1651602296537600001",
"quotation-of": "https://twitter.com/Blackamazon/status/1651601196371656705",
"content": {
"text": "cc/ @MooshieMadz \n\nThere is a literal John Wick NAFO shrine",
"html": "cc/ <a href=\"https://twitter.com/MooshieMadz\">@MooshieMadz</a> \n\nThere is a literal John Wick NAFO shrine"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/Blackamazon/status/1651601196371656705": {
"type": "entry",
"published": "2023-04-27T14:56:25+00:00",
"url": "https://twitter.com/Blackamazon/status/1651601196371656705",
"content": {
"text": "John Wick patron saint of doggies!\ntwitter.com/lindsaygoldwer\u2026",
"html": "John Wick patron saint of doggies!\n<a href=\"https://twitter.com/lindsaygoldwert/status/1651186418968846336\">twitter.com/lindsaygoldwer\u2026</a>"
},
"author": {
"type": "card",
"name": "\ud83d\uddfdSydette Cosmic Dreaded Gorgon Clydesdale\ud83c\uddec\ud83c\uddfe",
"url": "https://twitter.com/Blackamazon",
"photo": "https://pbs.twimg.com/profile_images/1641644505454501888/1X3bjguT.jpg"
},
"post-type": "note"
}
},
"_id": "36830567",
"_source": "2773"
}
The left side of my Twitter feed is warmth and happy (besides spillage into notifications)
The right side more dark, scary, and full of pronounced nonsense
{
"type": "entry",
"published": "2023-04-27T13:51:19+00:00",
"url": "https://twitter.com/jgmac1106/status/1651584816255496193",
"photo": [
"https://pbs.twimg.com/media/FuubmiSWYAE_S3W.jpg",
"https://pbs.twimg.com/media/FuubmiTXoAIzoYO.jpg"
],
"content": {
"text": "The left side of my Twitter feed is warmth and happy (besides spillage into notifications)\n\nThe right side more dark, scary, and full of pronounced nonsense"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "photo",
"_id": "36828783",
"_source": "2773"
}
You can't ban math. Saying no algorithms for kids under 18 is stupid.
{
"type": "entry",
"published": "2023-04-27T12:32:08+00:00",
"url": "https://twitter.com/jgmac1106/status/1651564888286720002",
"content": {
"text": "You can't ban math. Saying no algorithms for kids under 18 is stupid."
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"_id": "36826930",
"_source": "2773"
}
substack has just become 4chan with more words
{
"type": "entry",
"published": "2023-04-27T12:00:18+00:00",
"url": "https://twitter.com/jgmac1106/status/1651556877707145218",
"content": {
"text": "substack has just become 4chan with more words"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"_id": "36826509",
"_source": "2773"
}
Hey @moxi3ann looks like you were right.
Teixeira was a mass shooter caught early
Airman Accused of Leak Has History of Racist and Violent Remarks, Filing Says nyti.ms/3Nd80wU
How DCSA approved a clearance is mind boggling.
{
"type": "entry",
"published": "2023-04-27T09:57:52+00:00",
"url": "https://twitter.com/jgmac1106/status/1651526063770464258",
"content": {
"text": "Hey @moxi3ann looks like you were right.\n\nTeixeira was a mass shooter caught early\n\nAirman Accused of Leak Has History of Racist and Violent Remarks, Filing Says nyti.ms/3Nd80wU\n\nHow DCSA approved a clearance is mind boggling.",
"html": "Hey <a href=\"https://twitter.com/moxi3ann\">@moxi3ann</a> looks like you were right.\n\nTeixeira was a mass shooter caught early\n\nAirman Accused of Leak Has History of Racist and Violent Remarks, Filing Says <a href=\"https://nyti.ms/3Nd80wU\">nyti.ms/3Nd80wU</a>\n\nHow DCSA approved a clearance is mind boggling."
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"_id": "36824365",
"_source": "2773"
}
Are you defeated by closed doors during eternal Caturday?
{
"type": "entry",
"published": "2023-04-27T00:05:31-0400",
"url": "https://martymcgui.re/2023/04/27/000531/",
"category": [
"Caturday"
],
"video": [
"https://res.cloudinary.com/schmarty/video/upload/vc_h264/mmmgre/84/b5/21/b5/5f3615bc2dedbe6fe63fd9d07ea4631e03b3e30a62cb71398d4a87e4.mov"
],
"content": {
"text": "Are you defeated by closed doors during eternal Caturday?",
"html": "<p>Are you defeated by closed doors during eternal Caturday?</p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "video",
"_id": "36820334",
"_source": "175"
}
{
"type": "entry",
"published": "2023-04-26T23:38:16-0400",
"url": "https://martymcgui.re/2023/04/26/bad-web-dev-ideas-emoji-as-ids-in-urls/",
"category": [
"\ud83d\udd78\ufe0f\ud83d\udc8d",
"webring",
"IndieWeb",
"update",
"emoji"
],
"syndication": [
"https://fed.brid.gy/"
],
"name": "Bad web dev ideas: emoji as IDs in URLs",
"content": {
"text": "It's another rambling web dev post sorry not sorry grab a beverage and let's go.\nBegin with the Horrible Admission \ud83e\udd2b\ud83d\ude33\nRather than make you wait, here it is:\nI created and maintain An IndieWeb Webring and it uses emojis as IDs. When you add your site to the webring by signing in, an emoji ID is created for you, and it acts, in some ways, like your username or profile ID.\nFor example my webring profile is: \ud83d\udd78\ufe0f\ud83d\udc8d.ws/\ud83d\udeaf\n\n Hopefully you see the appeal. The webring is on an emoji domain, which I registered at IndieWeb Summit 2018 inspired by something Doug Beal presented. It was soon decided that I must in fact build a webring there and, leveraging his influence as the originator of the idea, Doug insisted that emojis be used as user IDs. Probably because: moar emojis!\n \n\nWhy even have IDs? \ud83d\udec2\ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f\nThis is a dang good question and I could probably sleep better if I drop them.\n\n Ring-ness and identifying click sources\n \n\n\n At the time, the idea was that a webring should be a ring, with adjacency. In other words, if I click the \"next site\" link on your website, it should consistently go to the same site. If I click the \"previous site\" link on their site, it should consistently go back to yours. In order to consistently know which site to send them to next, the webring needs to know where you're coming from.\n \n\nHistorically there has been a way to know where a visitor is coming from: the HTTP \"Referer\" [sic] header. However, at the time (and in the time since) there have been privacy issues around using this header, and it was not uncommon to see sites sabotage this info with purposeful redirects, browser standards were added to allow degrading or removing referrer info, and Chrome even implemented default policies to degrade it.\nSo the more reliable thing would be to put some identifier in the URL and trust that webring members wouldn't like weirdly spoof one anothers' unique webring URLs.\n\n Profile pages\n \n\n\n Another at the time thought was that webring members might want to \"prove\" that they were on the webring. An active profile page with rel-me verification linking back to their homepage could allow other sites and tools to say \"oh hey! you're a member of this webring\". Maybe we could show some stats there! At any rate, none of those use cases ever came into existence as far as I know. (Besides, stats are gross.)\n \n\n\n Why not use <xyz> as an ID? \ud83e\udd14\ud83d\udca1\n \n\nSome things I considered and discarded:\nJust use the URL. URLs-appended-to-URLs require escaping and sanitizing and this gets ugly and long.\n Use a hash of the URL. I like this approach (spoiler alert) but even when they are short hashes are also long and ugly.\n \n Use a numeric ID like a database row. This would probably be fine but numeric IDs can be easily crawled (fine for a webring I guess??) and people get weird about low ID numbers sometimes (warning: orange site link). Also they are boring.\n \n\n Something more clever. Well, we probably could have but this was a weekend hack kind of project.\nThe original sin \ud83c\udf4e\ud83d\udc0d\n\n There is a fun little NodeJS library called hash-emoji that takes any-ol-thing and gives you back a string of emojis of the length you ask. Under the hood, it uses a strong SHA256 hash in hexadecimal, parses that hexadecimal number, then uses modulo arithmetic to keep adding \"digits\" just like any hash algorithm, only the \"digits\" come from a collection of emojis that were in wide use back in 2017 when the library was created.\n \n\n\n I alluded to this in my post about adding a directory to the webring in 2019, but slapping a random emoji or two or three on someone's profile is potentially problematic. When some folks pointed out it was odd that they were assigned a country flag for a place they had never been, I cheekily forked hash-emoji to make hash-emoji-without-borders, which is identical in all ways except I pulled out all flags. Now nobody would get a flag!\n \n\nHowever, by removing the flags I had shrunk the key space for the emoji hash. It wasn't great to begin with - using one emoji from the initial set of ~1300 was bound to lead to collisions eventually - but by changing the set I felt like I was increasing the likelihood that some new signup would be assigned the same emoji ID as an already existing site in the ring.\nSo, I bumped the length of new IDs up to 2. And then, after an unrelated change where I started normalizing URLs differently before creating their hash ID, up to 3.\n\n Let me tell you. 3 emoji almost always tell a story. You can't not see them. Sometimes those stories can be problematic! Or maybe it's nice but you don't find it relatable. Or maybe there is no story, per se, but you're assigned something that you object to being associated with, like weapons or kissing faces or drugs and alcohol or religious symbols, or ...\n \n\nSome folks also ran into issues with the URLs on their web hosting. While I tend to think of the web as being universally UTF-8, that's not necessarily the case. Some hosts would mangle the Unicode URLs, resulting in the webring not being able to find them, resulting in sites being de-listed from the ring. To make it easy for the widest possible of webring users to simply copy their webring links and paste them into their site, I change it to use the %-encoded versions of the emojis. So now my beautiful \ud83d\udd78\ufe0f\ud83d\udc8d.ws/\ud83d\udeaf has become the horrific: https://xn--sr8hvo.ws/%F0%9F%9A%AF\nInstead of worrying too much about any of this I just ... left it alone. A few times I received requests for folks who wanted something custom, and sometimes I obliged as long as it was a request for a unique one- or two-emoji ID, so it couldn't collide with someone's future random ID.\nFooling around, finding out \ud83e\udd6b\ud83e\udeb1\nI've been low-key working on porting the webring from its old and crumbling NodeJS implementation to (hear me out) PHP (I SAID HEAR ME OUT). The basic idea is to reduce the number of emails I get from GitHub where dependabot reports a vulnerability in this or that dependency-of-a-dependency, and more importantly to reduce the amount of time that updating those dependencies takes by reducing the amount of breakage that occurs. I guess this is me saying that churn among dependencies for NodeJS apps feels more disruptive to me than I expect churn to be for PHP. Please don't @ me. Any way.\n\n hash-emoji is broken\n \n\n\n When porting hash-emoji from Javascript to PHP I had some issues where the modulo and division math wasn't working. Turns out SHA256 digests, which are hex-encoded strings 64-characters in length, make for very large numbers when you represent them as numbers to do number math on them. With basic PHP numeric types this was turning up junk, zeroes for every modulo division.\n \n\nSo I tried out both of the main PHP extensions for arbitrary precision math, GMP and BC Math, and got results that were at least functional. However, they weren't the same as the Javascript hash-emoji implementation.\nAt least, they weren't the same until I updated my copy of hash-emoji to use BigInt to make sure it was doing its arbitrary precision math properly. It was at this point that Javascript hash-emoji now began consistently outputting the same results as my new PHP implementation.\nThat means the original hash-emoji algorithm, due to some quirks of Javascript Number math for large numbers, gives results that are not consistent with the same algorithm when using arbitrary precision math types.\n\n With my skills I cannot hope to make a PHP port of hash-emoji that produces identically quirky results to the Javascript version, so, it looks like emoji IDs will have to change again.\n \n\nConsidering the abyss \u26ab\ud83d\udc40\nI thought that, if the emoji ID generation has to change, maybe I can change it for the better? I brainstormed some ideas in the IndieWeb chat. One nice change would be to bring the emoji set up-to-date to at least Unicode 14 (published 2021, implemented widely during 2022). One major unsolved challenge would be to come up with some \"unproblematic\" set of emojis. For example, modifiers for skin tone and gender are widely supported, even in complex combinations like people kissing.\n\n Thanks to sknebel some helpful suggestions, like generating IDs without skin tone modifiers and stripping out skin tone modifiers before looking up an ID. This would allow webring users to customize any emoji that have skin tone variants. Maybe that could be expanded to customizing more things when there are variants by gender, or complex combinations like family with two adults and two children, if it should come up. A \"customize your ID\" tool begins to design itself (lol).\n \n\nsknebel also pointed me to an excellent resource that the Unicode consortium calls the \"best definition of the full set [of emoji]\" - the emoji-test.txt file. Here's the Unicode 14 emoji-test.txt file. It encodes each emoji in a line-oriented format, organized helpfully into groups and sub-groups like the ones you see on your favorite emoji keyboard.\nI could parse this file out into various datasets annotated with their groupings and sub-groupings. Then, I could use those definitions to pull together any combination of (sub-)groupings that I want into different hash-emoji datasets.\n\n I could expand a \"customize your ID\" tool to allow folks who don't like their initial ID to opt out of any groups they don't want emojis from. I could treat those groupings as a flag set and map that flag set to an emoji to prepend to their ID, so each combination of groups becomes its own key space. Nice!\n \n\nReader, let me tell you: I do not want to do all of that.\nEnd with the other Horrible Admission \ud83e\udd2b\ud83d\ude0f\nAs implemented, the webring isn't a true ring. Whether a visitor clicks your custom emoji /next link or your custom emoji /previous link, the webring, in fact, sends you to another active site in the ring at random.\nSo what's next? I think the webring can function fine without these IDs. The copy-paste webring links can become identical for everyone, and the directory, sign-in, and dashboard pages don't make use of them at all. The one exception is individual profile page URLs for member pages, which I think I can safely drop.\n\n What do you think? Are you horrified by any of this? Enraged? Got an ideas I can try instead? Drop me a reply, I'd love to hear from you!",
"html": "<p>It's another rambling web dev post sorry not sorry grab a beverage and let's go.</p>\n<h2>Begin with the Horrible Admission \ud83e\udd2b\ud83d\ude33</h2>\n<p>Rather than make you wait, here it is:</p>\n<p>I created and maintain <a href=\"https://xn--sr8hvo.ws/\">An IndieWeb Webring</a> and it uses emojis as IDs. When you add your site to the webring by signing in, an emoji ID is created for you, and it acts, in some ways, like your username or profile ID.</p>\n<p>For example my webring profile is: <a href=\"https://xn--sr8hvo.ws/%F0%9F%9A%AF\">\ud83d\udd78\ufe0f\ud83d\udc8d.ws/</a><a href=\"https://xn--sr8hvo.ws/%F0%9F%9A%AF\">\ud83d\udeaf</a></p>\n<p>\n Hopefully you see the appeal. The webring is on an <a href=\"https://en.wikipedia.org/wiki/Emoji_domain\">emoji domain</a>, which I registered at <a href=\"https://indieweb.org/2018\">IndieWeb Summit 2018</a> inspired by something <a href=\"https://dougbeal.com/\">Doug Beal</a> presented. It was soon decided that I must in fact build a webring there and, leveraging his influence as the originator of the idea, Doug insisted that emojis be used as user IDs. Probably because: moar emojis!\n <br /></p>\n<h2>Why even have IDs? \ud83d\udec2\ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f</h2>\n<p>This is a dang good question and I could probably sleep better if I drop them.</p>\n<h3>\n Ring-ness and identifying click sources\n <br /></h3>\n<p>\n <i>At the time</i>, the idea was that a webring should be a <i>ring</i>, with adjacency. In other words, if I click the \"next site\" link on your website, it should consistently go to the same site. If I click the \"previous site\" link on <i>their</i> site, it should consistently go back to yours. In order to consistently know which site to send them to next, the webring needs to know where you're coming <i>from.</i>\n <br /></p>\n<p>Historically there has been a way to know where a visitor is coming from: the HTTP \"Referer\" [sic] header. However, <i>at the time</i> (and in the time since) there have been privacy issues around using this header, and it was not uncommon to see sites sabotage this info with purposeful redirects, <a href=\"https://developer.mozilla.org/en-US/docs/Web/Security/Referer_header:_privacy_and_security_concerns\">browser standards were added to allow degrading or removing referrer info</a>, and <a href=\"https://developer.chrome.com/blog/referrer-policy-new-chrome-default/\">Chrome even implemented default policies to degrade it</a>.</p>\n<p>So the more reliable thing would be to put some identifier in the URL and trust that webring members wouldn't like weirdly spoof one anothers' unique webring URLs.</p>\n<h3>\n Profile pages\n <br /></h3>\n<p>\n Another <i>at the time</i> thought was that webring members might want to \"prove\" that they were on the webring. An active profile page with <a href=\"https://indieweb.org/rel-me\">rel-me verification</a> linking back to their homepage could allow other sites and tools to say \"oh hey! you're a member of this webring\". Maybe we could show some stats there! At any rate, none of those use cases ever came into existence as far as I know. (Besides, stats are gross.)\n <br /></p>\n<h3>\n Why not use <xyz> as an ID? \ud83e\udd14\ud83d\udca1\n <br /></h3>\n<p>Some things I considered and discarded:</p>\n<ul><li>Just use the URL. URLs-appended-to-URLs require escaping and sanitizing and this gets ugly and long.</li>\n <li>Use a hash of the URL. I like this approach (spoiler alert) but even when they are short hashes are also long and ugly.</li>\n <li>\n Use a numeric ID like a database row. This would probably be fine but numeric IDs can be easily crawled (fine for a webring I guess??) and <a href=\"https://news.ycombinator.com/item?id=12962235\">people get weird about low ID numbers sometimes</a> (warning: orange site link). Also they are <i>boring</i>.\n <br /></li>\n <li>Something more clever. Well, we probably could have but this was a weekend hack kind of project.</li>\n</ul><h2>The original sin \ud83c\udf4e\ud83d\udc0d</h2>\n<p>\n There is a fun little <a href=\"https://github.com/earobinson/hash-emoji\">NodeJS library called hash-emoji</a> that takes any-ol-thing and gives you back a string of emojis of the length you ask. Under the hood, it uses a strong SHA256 hash in hexadecimal, parses that hexadecimal number, then uses modulo arithmetic to keep adding \"digits\" just like any hash algorithm, only the \"digits\" come from a collection of emojis that were in wide use back in 2017 when the library was created.\n <br /></p>\n<p>\n I alluded to this in <a href=\"https://martymcgui.re/2019/01/19/an-indiewebring-directory/\">my post about adding a directory to the webring in 2019</a>, but slapping a random emoji or two or three on someone's profile is <i>potentially problematic</i>. When some folks pointed out it was odd that they were assigned a country flag for a place they had never been, I cheekily forked hash-emoji to make <a href=\"https://github.com/martymcguire/hash-emoji-without-borders\">hash-emoji-without-borders</a>, which is identical in all ways except I pulled out all flags. Now nobody would get a flag!\n <br /></p>\n<p>However, by removing the flags I had shrunk the <i>key space</i> for the emoji hash. It wasn't great to begin with - using one emoji from the initial set of ~1300 was bound to lead to collisions eventually - but by changing the set I felt like I was increasing the likelihood that some new signup would be assigned the same emoji ID as an already existing site in the ring.</p>\n<p>So, I bumped the length of new IDs up to 2. And then, after an unrelated change where I started normalizing URLs differently before creating their hash ID, up to 3.</p>\n<p>\n Let me tell you. 3 emoji almost always tell a story. You can't <i>not</i> see them. Sometimes those stories can be problematic! Or maybe it's nice but you don't find it relatable. Or maybe there is no story, per se, but you're assigned something that you object to being associated with, like weapons or kissing faces or drugs and alcohol or religious symbols, or ...\n <br /></p>\n<p>Some folks also ran into issues with the URLs on their web hosting. While I tend to think of the web as being universally UTF-8, that's not necessarily the case. Some hosts would mangle the Unicode URLs, resulting in the webring not being able to find them, resulting in sites being de-listed from the ring. To make it easy for the widest possible of webring users to simply copy their webring links and paste them into their site, I change it to use the %-encoded versions of the emojis. So now my beautiful <a href=\"https://xn--sr8hvo.ws/%F0%9F%9A%AF\">\ud83d\udd78\ufe0f\ud83d\udc8d.ws/</a><a href=\"https://xn--sr8hvo.ws/%F0%9F%9A%AF\">\ud83d\udeaf</a> has become the horrific: https://xn--sr8hvo.ws/%F0%9F%9A%AF</p>\n<p>Instead of worrying too much about any of this I just ... left it alone. A few times I received requests for folks who wanted something custom, and sometimes I obliged as long as it was a request for a unique one- or two-emoji ID, so it couldn't collide with someone's future random ID.</p>\n<h2>Fooling around, finding out \ud83e\udd6b\ud83e\udeb1</h2>\n<p>I've been low-key working on porting the webring from its old and crumbling NodeJS implementation to (hear me out) PHP (I SAID HEAR ME OUT). The basic idea is to reduce the number of emails I get from GitHub where dependabot reports a vulnerability in this or that dependency-of-a-dependency, and more importantly to reduce the amount of time that updating those dependencies takes by reducing the amount of breakage that occurs. I guess this is me saying that churn among dependencies for NodeJS apps feels more disruptive to me than I expect churn to be for PHP. Please don't @ me. Any way.</p>\n<h3>\n hash-emoji is broken\n <br /></h3>\n<p>\n When porting hash-emoji from Javascript to PHP I had some issues where the modulo and division math wasn't working. Turns out SHA256 digests, which are hex-encoded strings 64-characters in length, make for <i>very large numbers</i> when you represent them <i>as numbers</i> to do <i>number math</i> on them. With basic PHP numeric types this was turning up junk, zeroes for every modulo division.\n <br /></p>\n<p>So I tried out both of the main PHP extensions for arbitrary precision math, <a href=\"https://www.php.net/manual/en/book.gmp.php\">GMP</a> and <a href=\"https://www.php.net/manual/en/book.bc.php\">BC Math</a>, and got results that were at least functional. However, <i>they weren't the same</i> as the Javascript hash-emoji implementation.</p>\n<p>At least, they weren't the same <i>until</i> I updated my copy of hash-emoji to use <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt\">BigInt</a> to make sure it was doing its arbitrary precision math properly. It was at this point that Javascript hash-emoji now began consistently outputting the same results as my new PHP implementation.</p>\n<p>That means the original hash-emoji algorithm, due to some quirks of Javascript Number math for large numbers, gives results that are not consistent with the same algorithm when using arbitrary precision math types.</p>\n<p>\n With my skills I cannot hope to make a PHP port of hash-emoji that produces identically quirky results to the Javascript version, so, it looks like emoji IDs will have to change <i>again</i>.\n <br /></p>\n<h2>Considering the abyss \u26ab\ud83d\udc40</h2>\n<p>I thought that, if the emoji ID generation has to change, maybe I can change it for the better? I <a href=\"https://chat.indieweb.org/dev/2023-04-26#t1682525287569200\">brainstormed some ideas in the IndieWeb chat</a>. One nice change would be to bring the emoji set up-to-date to at least Unicode 14 (published 2021, implemented widely during 2022). One major unsolved challenge would be to come up with some \"unproblematic\" set of emojis. For example, modifiers for skin tone and gender are widely supported, even in complex combinations like people kissing.</p>\n<p>\n Thanks to <a href=\"https://www.svenknebel.de/posts/\">sknebel</a> some helpful suggestions, like generating IDs without skin tone modifiers and stripping out skin tone modifiers before looking up an ID. This would allow webring users to customize any emoji that have skin tone variants. Maybe that could be expanded to customizing more things when there are variants by gender, or complex combinations like family with two adults and two children, if it should come up. A \"customize your ID\" tool begins to design itself (lol).\n <br /></p>\n<p>sknebel also pointed me to an <i>excellent</i> resource that the <a href=\"https://www.unicode.org/reports/tr51/tr51-21.html#Identification\">Unicode consortium calls the \"best definition of the full set [of emoji]\"</a> - the emoji-test.txt file. Here's the <a href=\"https://unicode.org/Public/emoji/14.0/emoji-test.txt\">Unicode 14 emoji-test.txt</a> file. It encodes each emoji in a line-oriented format, organized helpfully into groups and sub-groups like the ones you see on your favorite emoji keyboard.</p>\n<p>I could parse this file out into various datasets annotated with their groupings and sub-groupings. Then, I could use those definitions to pull together any combination of (sub-)groupings that I want into different hash-emoji datasets.</p>\n<p>\n I could expand a \"customize your ID\" tool to allow folks who don't like their initial ID to opt out of any groups they don't want emojis from. I could treat those groupings as a flag set and map that flag set to an emoji to prepend to their ID, so each combination of groups becomes its own key space. Nice!\n <br /></p>\n<p>Reader, let me tell you: I do not want to do all of that.</p>\n<h2>End with the other Horrible Admission \ud83e\udd2b\ud83d\ude0f</h2>\n<p>As implemented, the webring isn't a true <i>ring</i>. Whether a visitor clicks your custom emoji /next link or your custom emoji /previous link, the webring, in fact, sends you to another active site in the ring <i>at random</i>.</p>\n<p>So what's next? I think the webring can function fine without these IDs. The copy-paste webring links can become identical for everyone, and the directory, sign-in, and dashboard pages don't make use of them at all. The one exception is individual profile page URLs for member pages, which I think I can safely drop.</p>\n<p>\n What do you think? Are you horrified by any of this? Enraged? Got an ideas I can try instead? Drop me a reply, I'd love to hear from you!\n <br /></p>"
},
"author": {
"type": "card",
"name": "Marty McGuire",
"url": "https://martymcgui.re/",
"photo": "https://martymcgui.re/images/logo.jpg"
},
"post-type": "article",
"_id": "36820335",
"_source": "175"
}
Hey #NAFO any nominations for the nomenclature for this kind of nonsense...
"I supported #Ukraine but then I saw #NAFO. Now I be like," Go Russia."
Literally nobody joins Team Genocide over a meme. Nobody.
Not Maoist username f*ckoffrandomnumbers that's for sure.
Need a name
It’s funny because I used to be somewhat pro-Ukraine but after seeing NAFO twitter and realizing that all Ukraine supporters are extremely annoying and repulsive I imme...
{
"type": "entry",
"published": "2023-04-27T02:35:34+00:00",
"url": "https://twitter.com/jgmac1106/status/1651414757847580673",
"quotation-of": "https://twitter.com/fuckoff09090909/status/1651411186821242880",
"content": {
"text": "Hey #NAFO any nominations for the nomenclature for this kind of nonsense...\n\n\"I supported #Ukraine but then I saw #NAFO. Now I be like,\" Go Russia.\"\n\nLiterally nobody joins Team Genocide over a meme. Nobody.\n\nNot Maoist username f*ckoffrandomnumbers that's for sure.\n\nNeed a name",
"html": "Hey <a href=\"https://twitter.com/search?q=%23NAFO\">#NAFO</a> any nominations for the nomenclature for this kind of nonsense...\n\n\"I supported <a href=\"https://twitter.com/search?q=%23Ukraine\">#Ukraine</a> but then I saw <a href=\"https://twitter.com/search?q=%23NAFO\">#NAFO</a>. Now I be like,\" Go Russia.\"\n\nLiterally nobody joins Team Genocide over a meme. Nobody.\n\nNot Maoist username f*ckoffrandomnumbers that's for sure.\n\nNeed a name"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/fuckoff09090909/status/1651411186821242880": {
"type": "entry",
"published": "2023-04-27T02:21:23+00:00",
"url": "https://twitter.com/fuckoff09090909/status/1651411186821242880",
"in-reply-to": [
"https://twitter.com/mykolatemplate/status/1650962499624136704"
],
"content": {
"text": "It\u2019s funny because I used to be somewhat pro-Ukraine but after seeing NAFO twitter and realizing that all Ukraine supporters are extremely annoying and repulsive I immediately backtracked into supporting Russia",
"html": "It\u2019s funny because I used to be somewhat pro-Ukraine but after seeing NAFO twitter and realizing that all Ukraine supporters are extremely annoying and repulsive I immediately backtracked into supporting Russia\n<a class=\"u-mention\" href=\"https://twitter.com/mykolatemplate\"></a>"
},
"author": {
"type": "card",
"name": "Maoist",
"url": "https://twitter.com/fuckoff09090909",
"photo": "https://pbs.twimg.com/profile_images/1650908334151680007/XSkD55BX.jpg"
},
"post-type": "reply"
}
},
"_id": "36818433",
"_source": "2773"
}
Utterly humiliating but here we are. Follow me on Bluesky & TikTok:
{
"type": "entry",
"published": "2023-04-27T02:05:39+00:00",
"url": "https://twitter.com/ZoeSchiffer/status/1651407227029438464",
"photo": [
"https://pbs.twimg.com/media/Fur6Ht7akAMgaa9.jpg",
"https://pbs.twimg.com/media/Fur6HtBaQAIWTRZ.jpg"
],
"content": {
"text": "Utterly humiliating but here we are. Follow me on Bluesky & TikTok:",
"html": "Utterly humiliating but here we are. Follow me on Bluesky & TikTok:"
},
"author": {
"type": "card",
"name": "Zo\u00eb Schiffer",
"url": "https://twitter.com/ZoeSchiffer",
"photo": "https://pbs.twimg.com/profile_images/1564799885794086914/ZU6qMT_n.jpg"
},
"post-type": "photo",
"_id": "36818063",
"_source": "2773"
}
Uhh ohh troll gonna tell my boss, whose pfp I forged, that I am #NAFO
Please.. Please call me a Nazi in the complaint Jeff.
The Ombudsman loooves those complaints.
After I drop the nice surprise I'm preparing, he will soon be the ex-academic LMAO.
{
"type": "entry",
"published": "2023-04-26T20:09:18+00:00",
"url": "https://twitter.com/jgmac1106/status/1651317548309262338",
"quotation-of": "https://twitter.com/dujon_jeffrey/status/1651310055109824512",
"content": {
"text": "Uhh ohh troll gonna tell my boss, whose pfp I forged, that I am #NAFO\n\nPlease.. Please call me a Nazi in the complaint Jeff.\n\nThe Ombudsman loooves those complaints.",
"html": "Uhh ohh troll gonna tell my boss, whose pfp I forged, that I am <a href=\"https://twitter.com/search?q=%23NAFO\">#NAFO</a>\n\nPlease.. Please call me a Nazi in the complaint Jeff.\n\nThe Ombudsman loooves those complaints."
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"refs": {
"https://twitter.com/dujon_jeffrey/status/1651310055109824512": {
"type": "entry",
"published": "2023-04-26T19:39:31+00:00",
"url": "https://twitter.com/dujon_jeffrey/status/1651310055109824512",
"in-reply-to": [
"https://twitter.com/gotemann_sascha/status/1651254441876639746"
],
"content": {
"text": "After I drop the nice surprise I'm preparing, he will soon be the ex-academic LMAO.",
"html": "After I drop the nice surprise I'm preparing, he will soon be the ex-academic LMAO.\n<a class=\"u-mention\" href=\"https://twitter.com/DefensePolitics\"></a>\n<a class=\"u-mention\" href=\"https://twitter.com/gotemann_sascha\"></a>\n<a class=\"u-mention\" href=\"https://twitter.com/jgmac1106\"></a>\n<a class=\"u-mention\" href=\"https://twitter.com/just_ice_served\"></a>"
},
"author": {
"type": "card",
"name": "Jeffrey The Extra-Ordinary NAFO Hunter",
"url": "https://twitter.com/dujon_jeffrey",
"photo": "https://pbs.twimg.com/profile_images/1569969533859037184/d-RByjVI.jpg"
},
"post-type": "reply"
}
},
"_id": "36811796",
"_source": "2773"
}
If you are gonna play FAFO as a bunch of #proudboys larpers you don't get to cry when we arrive at the Find Out part.
nbcnews.com/politics/justi…
{
"type": "entry",
"published": "2023-04-26T19:32:51+00:00",
"url": "https://twitter.com/jgmac1106/status/1651308378314899473",
"content": {
"text": "If you are gonna play FAFO as a bunch of #proudboys larpers you don't get to cry when we arrive at the Find Out part.\n\nnbcnews.com/politics/justi\u2026",
"html": "If you are gonna play FAFO as a bunch of <a href=\"https://twitter.com/search?q=%23proudboys\">#proudboys</a> larpers you don't get to cry when we arrive at the Find Out part.\n\n<a href=\"https://www.nbcnews.com/politics/justice-department/ex-proud-boys-head-enrique-tarrio-twitter-spaces-doj-jury-rcna81543\">nbcnews.com/politics/justi\u2026</a>"
},
"author": {
"type": "card",
"name": "jgregorymcverry.com",
"url": "https://twitter.com/jgmac1106",
"photo": "https://pbs.twimg.com/profile_images/1647931395585474561/-o6Vd9Ki.jpg"
},
"post-type": "note",
"_id": "36810995",
"_source": "2773"
}