Going to stick to using Koype Publish now as my Micropub client of choice. This way, I can make sure features are tested in the real world (testing in production, anyone?) and that they continue to make sense. I definitely enjoy the automatic formatting detection in the editor - makes it easy to just keep typing. I'd want an option for intelligent character insertion (like quotation marks, da...
{
"type": "entry",
"published": "2019-07-13T13:14:32.14382-07:00",
"url": "https://v2.jacky.wtf/post/142a0d7a-ab69-410f-925e-ac8539d46d54",
"category": [
"koype"
],
"content": {
"text": "Going to stick to using Koype Publish now as my Micropub client of choice. This way, I can make sure features are tested in the real world (testing in production, anyone?) and that they continue to make sense. I definitely enjoy the automatic formatting detection in the editor - makes it easy to just keep typing. I'd want an option for intelligent character insertion (like quotation marks, da...",
"html": "<p>Going to stick to using <a href=\"https://publish.koype.net\">Koype Publish</a> now as my <a href=\"https://indieweb.org/Micropub/Clients\">Micropub client</a> of choice. This way, I can make sure features are tested in the real world (testing in production, anyone?) and that they continue to make sense. I <i>definitely</i> enjoy the automatic formatting detection in the editor - makes it easy to just keep typing. I'd want an option for intelligent character insertion (like quotation marks, da...\n </p>"
},
"author": {
"type": "card",
"name": "Jacky Alcin\u00e9",
"url": "https://v2.jacky.wtf",
"photo": "https://aperture-proxy.p3k.io/9f6c6c125a7640abc3c67f876753b4bf233d06d6/68747470733a2f2f76322e6a61636b792e7774662f6d656469612f70726f66696c652d696d616765"
},
"post-type": "note",
"_id": "4446954",
"_source": "1886"
}
New post: Plaidophile: Post privacy beesbuzz.biz/8011
{
"type": "entry",
"published": "2019-07-13T19:47:06+00:00",
"url": "https://twitter.com/fluffy/status/1150129544059392001",
"content": {
"text": "New post: Plaidophile: Post privacy beesbuzz.biz/8011",
"html": "New post: Plaidophile: Post privacy <a href=\"https://beesbuzz.biz/8011\">beesbuzz.biz/8011</a>"
},
"author": {
"type": "card",
"name": "fluffy",
"url": "https://twitter.com/fluffy",
"photo": "https://aperture-proxy.p3k.io/6776e53f9c2bb77f83c692f04b54d5d295ab745c/68747470733a2f2f7062732e7477696d672e636f6d2f70726f66696c655f696d616765732f313131333235383031363135313730373634382f767a7065584346742e706e67"
},
"post-type": "note",
"_id": "4446712",
"_source": "2773"
}
New post: Plaidophile: My webmention endpoint wish list beesbuzz.biz/6982
{
"type": "entry",
"published": "2019-07-13T19:47:05+00:00",
"url": "https://twitter.com/fluffy/status/1150129541400203266",
"content": {
"text": "New post: Plaidophile: My webmention endpoint wish list beesbuzz.biz/6982",
"html": "New post: Plaidophile: My webmention endpoint wish list <a href=\"https://beesbuzz.biz/6982\">beesbuzz.biz/6982</a>"
},
"author": {
"type": "card",
"name": "fluffy",
"url": "https://twitter.com/fluffy",
"photo": "https://aperture-proxy.p3k.io/6776e53f9c2bb77f83c692f04b54d5d295ab745c/68747470733a2f2f7062732e7477696d672e636f6d2f70726f66696c655f696d616765732f313131333235383031363135313730373634382f767a7065584346742e706e67"
},
"post-type": "note",
"_id": "4446713",
"_source": "2773"
}
I finally have private posts working in Publ. This is just a test; in particular this post should only appear to people who are not logged in, and should disappear as soon as they do.
Think of it as the sound of one hand yapping.
{
"type": "entry",
"published": "2019-07-13T12:15:59-07:00",
"summary": "I finally have private posts working in Publ. This is just a test; in particular this post should only appear to people who are not logged in, and should disappear as soon as they do.\nThink of it as the sound of one hand yapping.",
"url": "https://beesbuzz.biz/8011",
"name": "\ud83d\udd12 Post privacy",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4446603",
"_source": "2778"
}
Still don’t have my phone from that Lyft ride two days ago. If you’ve been reaching me and for some reason haven’t tried anything else but texting/calling - this is why. (v2.jacky.wtf/post/eed0fed3-…)
{
"type": "entry",
"published": "2019-07-13T19:26:08+00:00",
"url": "https://twitter.com/jackyalcine/status/1150124270170836992",
"content": {
"text": "Still don\u2019t have my phone from that Lyft ride two days ago. If you\u2019ve been reaching me and for some reason haven\u2019t tried anything else but texting/calling - this is why. (v2.jacky.wtf/post/eed0fed3-\u2026)",
"html": "Still don\u2019t have my phone from that Lyft ride two days ago. If you\u2019ve been reaching me and for some reason haven\u2019t tried anything else but texting/calling - this is why. (<a href=\"https://v2.jacky.wtf/post/eed0fed3-7376-45de-b0af-6a9ad02c62a9\">v2.jacky.wtf/post/eed0fed3-\u2026</a>)"
},
"author": {
"type": "card",
"name": "Jacky's Static Shock for SDCC 2020",
"url": "https://twitter.com/jackyalcine",
"photo": "https://aperture-proxy.p3k.io/7fb55150034c2f355fd9230425bf3f93ac570133/68747470733a2f2f7062732e7477696d672e636f6d2f70726f66696c655f696d616765732f313134393037373139353736353130343634302f596b4b5f5276455f2e6a7067"
},
"post-type": "note",
"_id": "4446466",
"_source": "2773"
}
Still don’t have my phone from that Lyft ride two days ago. If you’ve been reaching me and for some reason haven’t tried anything else but texting/calling - this is why.
{
"type": "entry",
"published": "2019-07-13T12:26:07.72657-07:00",
"url": "https://v2.jacky.wtf/post/eed0fed3-7376-45de-b0af-6a9ad02c62a9",
"content": {
"text": "Still don\u2019t have my phone from that Lyft ride two days ago. If you\u2019ve been reaching me and for some reason haven\u2019t tried anything else but texting/calling - this is why.",
"html": "<p>Still don\u2019t have my phone from that Lyft ride two days ago. If you\u2019ve been reaching me and for some reason haven\u2019t tried anything else but texting/calling - this is why.</p>"
},
"author": {
"type": "card",
"name": "Jacky Alcin\u00e9",
"url": "https://v2.jacky.wtf",
"photo": "https://aperture-proxy.p3k.io/9f6c6c125a7640abc3c67f876753b4bf233d06d6/68747470733a2f2f76322e6a61636b792e7774662f6d656469612f70726f66696c652d696d616765"
},
"post-type": "note",
"_id": "4446420",
"_source": "1886"
}
I’m not sure if @indiewebcat is a 10x cat, but I’m sure @anomalily has known a few.
10x Cats.
If you ever come across this rare breed of cat, adopt them. If you have a 10x cat as part of your household, you increase the odds of success significantly.
...
{
"type": "entry",
"published": "2019-07-13T19:08:02+00:00",
"url": "https://twitter.com/karabaic/status/1150119714472902657",
"category": [
"https://twitter.com/indiewebcat",
"https://twitter.com/anomalily"
],
"quotation-of": "https://twitter.com/DuaneOBrien/status/1149939387913818112",
"content": {
"text": "I\u2019m not sure if @indiewebcat is a 10x cat, but I\u2019m sure @anomalily has known a few.",
"html": "I\u2019m not sure if <a href=\"https://twitter.com/indiewebcat\">@indiewebcat</a> is a 10x cat, but I\u2019m sure <a href=\"https://twitter.com/anomalily\">@anomalily</a> has known a few."
},
"author": {
"type": "card",
"name": "jk",
"url": "https://twitter.com/karabaic",
"photo": "https://aperture-proxy.p3k.io/2ee3b865b9b8e263c48d59db355130ea178c8b6b/68747470733a2f2f7062732e7477696d672e636f6d2f70726f66696c655f696d616765732f3839393132323138383932313434363430302f4e5a4849307342322e6a7067"
},
"post-type": "note",
"refs": {
"https://twitter.com/indiewebcat": {
"type": "card",
"name": "Dora",
"url": "https://twitter.com/indiewebcat",
"photo": null
},
"https://twitter.com/anomalily": {
"type": "card",
"name": "Lillian Karabaic \ud83d\udd1c Vidcon",
"url": "https://twitter.com/anomalily",
"photo": null
},
"https://twitter.com/DuaneOBrien/status/1149939387913818112": {
"type": "entry",
"published": "2019-07-13T07:11:29+00:00",
"url": "https://twitter.com/DuaneOBrien/status/1149939387913818112",
"content": {
"text": "10x Cats. \n\nIf you ever come across this rare breed of cat, adopt them. If you have a 10x cat as part of your household, you increase the odds of success significantly. \n\nHow do you spot a 10x Cat?"
},
"author": {
"type": "card",
"name": "Duane O'Brien",
"url": "https://twitter.com/DuaneOBrien",
"photo": "https://pbs.twimg.com/profile_images/1047859379154944000/pBw46oIj.jpg"
},
"post-type": "note"
}
},
"_id": "4446317",
"_source": "2773"
}
You’re right! But, I did witness a serious injury that the SFFD responded to, and I did hear both police sirens & the distinctive sound of crowd control guns at the time I noted. Here’s the story on the one on Thursday; no note of the injury I witnessed
sfgate.com/bayarea/articl…
this article is about the skateboarding + police at dolores in 2017, not the event yesterday
{
"type": "entry",
"published": "2019-07-13T18:58:50+00:00",
"url": "https://twitter.com/karabaic/status/1150117397057064960",
"quotation-of": "https://twitter.com/jaakkosf/status/1149811585222733825",
"content": {
"text": "You\u2019re right! But, I did witness a serious injury that the SFFD responded to, and I did hear both police sirens & the distinctive sound of crowd control guns at the time I noted. Here\u2019s the story on the one on Thursday; no note of the injury I witnessed\n\nsfgate.com/bayarea/articl\u2026",
"html": "You\u2019re right! But, I did witness a serious injury that the SFFD responded to, and I did hear both police sirens & the distinctive sound of crowd control guns at the time I noted. Here\u2019s the story on the one on Thursday; no note of the injury I witnessed\n\n<a href=\"https://www.sfgate.com/bayarea/article/hill-bomb-San-Francisco-skateboarders-Dolores-St-14090264.php\">sfgate.com/bayarea/articl\u2026</a>"
},
"author": {
"type": "card",
"name": "jk",
"url": "https://twitter.com/karabaic",
"photo": "https://aperture-proxy.p3k.io/2ee3b865b9b8e263c48d59db355130ea178c8b6b/68747470733a2f2f7062732e7477696d672e636f6d2f70726f66696c655f696d616765732f3839393132323138383932313434363430302f4e5a4849307342322e6a7067"
},
"post-type": "note",
"refs": {
"https://twitter.com/jaakkosf/status/1149811585222733825": {
"type": "entry",
"published": "2019-07-12T22:43:39+00:00",
"url": "https://twitter.com/jaakkosf/status/1149811585222733825",
"category": [
"https://twitter.com/karabaic",
"https://twitter.com/dpworks"
],
"in-reply-to": [
"https://twitter.com/karabaic/status/1149690733604962305"
],
"content": {
"text": "this article is about the skateboarding + police at dolores in 2017, not the event yesterday"
},
"author": {
"type": "card",
"name": "jacob petrie",
"url": "https://twitter.com/jaakkosf",
"photo": "https://pbs.twimg.com/profile_images/1049018542593462272/3ORxApW2.jpg"
},
"post-type": "reply",
"refs": {
"https://twitter.com/karabaic": {
"type": "card",
"name": "jk",
"url": "https://twitter.com/karabaic",
"photo": null
},
"https://twitter.com/dpworks": {
"type": "card",
"name": "Dolores Park Works",
"url": "https://twitter.com/dpworks",
"photo": null
}
}
}
},
"_id": "4446161",
"_source": "2773"
}
Trending timeline: Harrison Ford
Me: oh no oh no oh no
Trending timeline: ... just turned 77! Happy birthday!
{
"type": "entry",
"published": "2019-07-13T18:55:48+00:00",
"url": "https://twitter.com/fluffy/status/1150116634192822272",
"content": {
"text": "Trending timeline: Harrison Ford\n\nMe: oh no oh no oh no\n\nTrending timeline: ... just turned 77! Happy birthday!"
},
"author": {
"type": "card",
"name": "fluffy",
"url": "https://twitter.com/fluffy",
"photo": "https://aperture-proxy.p3k.io/6776e53f9c2bb77f83c692f04b54d5d295ab745c/68747470733a2f2f7062732e7477696d672e636f6d2f70726f66696c655f696d616765732f313131333235383031363135313730373634382f767a7065584346742e706e67"
},
"post-type": "note",
"_id": "4446162",
"_source": "2773"
}
While it has some rough edges, the Webmention protocol has a lot going for it. One of the nice things about it is that it’s easy to add support via a third-party endpoint, such as webmention.io, which is what I (and many others) use.
There’s a few things I wish were better, though, and I think these can all be addressed by the endpoint itself, while remaining within the specification as it’s written today. I would be tempted to write an endpoint that works this way, if I weren’t already overwhelmed with other projects.
Definitely support the webmention.io API. There’s a lot of folks already using that to retrieve mentions to display them on their site, and I see no reason for that to change.
Having some form of moderation would be nice. Mentions at their core should be kept perpetually but with a disposition of accept/reject/pending, and domains should also have a default disposition (which defaults to pending). When a new webmention comes in, it should get the domain’s default disposition (along with an unmoderated flag), and then when moderating them, the user should be able to change the default disposition for the domain.
Mentions should be periodically refreshed to see if they’re still valid. The refresh interval can be some form of slow exponential growth, like the Fibonacci sequence or something. Whenever the status of the mention changes, that should reset the refresh interval. Mentions which have disappeared should not be rendered while they’re invalid, and the moderation queue should also show a section for “approved but disappeared” mentions.
When a mention is sent or refreshed, it should also get a source and destination pointer; track the mention in terms of the original URLs provided, but they should be displayed and fetched based on what their current URL is, after chasing redirections or the like.
Relatedly, multiple incoming mentions should be consolidated based on what their source and destination URLs resolve to. For example, if Alice pings Bob from http://alice.example.com/1/first-entry → https://bob.example.org/blog/hello.html, and then Alice’s URL updates to https://alice.example.com/blog/1/First-Entry, if Alice’s site re-sends backfill pings, the endpoint should only report a single ping that comes from https://alice.example.com/blog/1/First-Entry. Likewise, if Bob’s URL changes to https://bob.example.org/weblog/hello, when Bob’s site retrieves mentions for the new URL it should also include mentions that went to the old URL.
Obviously for this case there will be a period of time between a site’s URLs changing and the original pings being refreshed, but maybe a new mention to an older target can also trigger a refresh of existing mentions to see if they’re subject to consolidation.
Also the consolidation should only happen at the retrieval level; the original source/destination URLs should always be preserved, since it’s always possible for an old URL to become unique again.
There should also be some automatic consolidation of pings that have the same path but differing schemes; webmention.js handles this on the rendering end but it’d be nice if the endpoint could do this automatically. For example, if a ping comes in from both http://example.com/12345 and https://example.com/12345, they should be consolidated to both have come from the https: version, probably. It would also probably make sense to do some sort of intelligent auto-consolidation based on domain aliases, like www.example.com vs. example.com.
Support for private webmention.
Support for Vouch, both from a validation perspective and providing UX to make it easier for folks to present their whitelist (like maybe when a domain is whitelisted it can also be added to a vouch list).
Also maybe some form of conversation threading would be nice? I’m not sure how that could be reasonably implemented (aside from supporting Salmention and hoping others come along with that) but it’d do a lot to address the UX problems with Webmention as a conversational platform.
{
"type": "entry",
"published": "2019-07-13T11:31:52-07:00",
"summary": "While it has some rough edges, the Webmention protocol has a lot going for it. One of the nice things about it is that it\u2019s easy to add support via a third-party endpoint, such as webmention.io, which is what I (and many others) use.\nThere\u2019s a few things I wish were better, though, and I think these can all be addressed by the endpoint itself, while remaining within the specification as it\u2019s written today. I would be tempted to write an endpoint that works this way, if I weren\u2019t already overwhelmed with other projects.\nDefinitely support the webmention.io API. There\u2019s a lot of folks already using that to retrieve mentions to display them on their site, and I see no reason for that to change.\nHaving some form of moderation would be nice. Mentions at their core should be kept perpetually but with a disposition of accept/reject/pending, and domains should also have a default disposition (which defaults to pending). When a new webmention comes in, it should get the domain\u2019s default disposition (along with an unmoderated flag), and then when moderating them, the user should be able to change the default disposition for the domain.\nMentions should be periodically refreshed to see if they\u2019re still valid. The refresh interval can be some form of slow exponential growth, like the Fibonacci sequence or something. Whenever the status of the mention changes, that should reset the refresh interval. Mentions which have disappeared should not be rendered while they\u2019re invalid, and the moderation queue should also show a section for \u201capproved but disappeared\u201d mentions.\nWhen a mention is sent or refreshed, it should also get a source and destination pointer; track the mention in terms of the original URLs provided, but they should be displayed and fetched based on what their current URL is, after chasing redirections or the like.\nRelatedly, multiple incoming mentions should be consolidated based on what their source and destination URLs resolve to. For example, if Alice pings Bob from http://alice.example.com/1/first-entry \u2192 https://bob.example.org/blog/hello.html, and then Alice\u2019s URL updates to https://alice.example.com/blog/1/First-Entry, if Alice\u2019s site re-sends backfill pings, the endpoint should only report a single ping that comes from https://alice.example.com/blog/1/First-Entry. Likewise, if Bob\u2019s URL changes to https://bob.example.org/weblog/hello, when Bob\u2019s site retrieves mentions for the new URL it should also include mentions that went to the old URL.\nObviously for this case there will be a period of time between a site\u2019s URLs changing and the original pings being refreshed, but maybe a new mention to an older target can also trigger a refresh of existing mentions to see if they\u2019re subject to consolidation.\nAlso the consolidation should only happen at the retrieval level; the original source/destination URLs should always be preserved, since it\u2019s always possible for an old URL to become unique again.\nThere should also be some automatic consolidation of pings that have the same path but differing schemes; webmention.js handles this on the rendering end but it\u2019d be nice if the endpoint could do this automatically. For example, if a ping comes in from both http://example.com/12345 and https://example.com/12345, they should be consolidated to both have come from the https: version, probably. It would also probably make sense to do some sort of intelligent auto-consolidation based on domain aliases, like www.example.com vs. example.com.\nSupport for private webmention.\nSupport for Vouch, both from a validation perspective and providing UX to make it easier for folks to present their whitelist (like maybe when a domain is whitelisted it can also be added to a vouch list).\nAlso maybe some form of conversation threading would be nice? I\u2019m not sure how that could be reasonably implemented (aside from supporting Salmention and hoping others come along with that) but it\u2019d do a lot to address the UX problems with Webmention as a conversational platform.",
"url": "https://beesbuzz.biz/6982",
"name": "My webmmention endpoint wish list",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445967",
"_source": "2778"
}
So, the first two dosage tapers on my nortriptyline (40→30 and 30→20) went off without any trouble, but going down from 20→10 was really hard, to the extent that I decided to go back to 20 and keep using it for now. Basically, I had massive SNRI withdrawal symptoms, and also ended up being in severe pain all over. After two days of that I decided that maybe the nortriptyline is doing something for me after all, just not as much as I need it to, and went back to 20mg/day. I’m still feeling pretty hecked up from that so it’ll probably be a couple more days until I’m back up to where I was before.
Supposedly it’s okay to take both nortriptyline and gabapentin, so maybe I’ll try combination therapy once I’m back to my previous homeostasis (which was livable but not great).
Meanwhile, I really hope I’m able to do a song this weekend… it’s a gift for someone and I need it to be done by Monday, and I just plain haven’t had time to work on it.
{
"type": "entry",
"published": "2019-07-11T18:34:05-07:00",
"summary": "So, the first two dosage tapers on my nortriptyline (40\u219230 and 30\u219220) went off without any trouble, but going down from 20\u219210 was really hard, to the extent that I decided to go back to 20 and keep using it for now. Basically, I had massive SNRI withdrawal symptoms, and also ended up being in severe pain all over. After two days of that I decided that maybe the nortriptyline is doing something for me after all, just not as much as I need it to, and went back to 20mg/day. I\u2019m still feeling pretty hecked up from that so it\u2019ll probably be a couple more days until I\u2019m back up to where I was before.\nSupposedly it\u2019s okay to take both nortriptyline and gabapentin, so maybe I\u2019ll try combination therapy once I\u2019m back to my previous homeostasis (which was livable but not great).\nMeanwhile, I really hope I\u2019m able to do a song this weekend\u2026 it\u2019s a gift for someone and I need it to be done by Monday, and I just plain haven\u2019t had time to work on it.",
"url": "https://beesbuzz.biz/8337",
"name": "Bleah",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445968",
"_source": "2778"
}
Wow, I’ve been traveling for most of the past week and a half. Aside from a brief stop back in Seattle between IndieWeb Summit and visiting San Francisco for family gatherings, I’ve mostly been away from home since June 28. Yikes.
I didn’t really get to see a lot of friends on the San Francisco side of things (although I had some good times with my brother and my friend Mark) but that’s okay, since I got a lot of stuff done on Publ. Or, specifically, on Authl, the authentication layer, and the Publ integration with it. I have sign-in by email, IndieLogin, and Mastodon working! I will also probably add direct auth for IndieAuth at some point, now that I know how easy it is to implement an OAuth basic authentication flow. Hopefully soon I’ll have friends-only entries going up on this site!
Pain-wise I’ve been doing a lot better. I’ve been tapering off the nortriptyline, but I’ve been taking magnesium supplements. I still hit a crash point in the evening pretty easily, so it’s not like this has, like, solved everything, but it’s at least doing more for me than the nortriptyline alone was. I’m currently at 20mg and taper down to 10mg tonight, so this is where I’ll probably start to see if it really was a placebo early on.
Gender-wise, something rather interesting has been happening this trip: I’ve been going into the men’s room as usual (because when I travel and am in “boy mode” clothing I don’t want to cause a panic), and pretty much every time, someone’s taken it upon themselves to point out that I was in the men’s room and redirected me to the women’s room. At the same time, I still keep getting “sir"ed a lot, although I don’t know how much of that is people changing their mental alignment for me after they hear my voice. (Probably a lot.) I don’t feel like my appearance has changed at all over the past year, so I dunno what’s going on there.
Also gender-wise, a lot of people have been respecting the use of she/her pronouns for me, and that just feels… off. Still. I think I’m back to thinking of they/them as my primary pronoun. Honestly, the main reason I switched to she/her was because if I was requesting they/them, people would just treat it as unspecified and still default to he/him. I think my way of specifying pronouns is going to switch to "they/them, but she/her is fine.” Because if someone’s going to misgender me I’d rather it go to the femme side of things.
And a really cute thing happened at my nephew’s 1st birthday party: Camille, one of my nieces (who just turned 6 yesterday), wanted to get to know me better, and the first question she asked me was, “Are you a he, a she, or a they?” And I sort of fumbled over things and I eventually said “it depends but ‘they’ and she are ‘fine.’” Anyway, I wonder where she picked that up from. Wherever it was, it fills me with hope for the future. It’s also what got my mind grinding away about, like, which situations call for which pronouns. I think generally it’s they/them for folks my age or younger, and she/her for folks who are stuck in their ways regarding “proper” English.
Anyway, I guess that’s all for now. Unless something else occurs to me in the next hour fifteen minutes, apparently before my flight boards.
Edit: oh yeah, I think I need to switch to a backpack as my only conveyance. They’re kind of cumbersome for keys and wallet and stuff but purses are heavy and lopsided, and having both a backpack and a small purse is really awkward. My current backpack is great for just carrying my laptop to work but it’s garbo for actually organizing all my needs. My larger purse carries my iPad and all my other regular needs but it hurts my back after a whole day of using it. Any recommendations for better backpacks (ideally ones which are femmy and have room for an iPad, a laptop, some sketchbooks, and makeup et al) would be appreciated.
Edit 2: oh and another thing: fuck all the plastic straw bans, seriously. I’m gonna start just carrying my own plastic straws with me everywhere. I swear, people see one injured sea turtle and suddenly all people with disabilities and sensory issues just get completely thrown under the bus…
Edit 3: oh god only 4 weeks until my next big trip why is everything happening all at once
{
"type": "entry",
"published": "2019-07-08T14:16:33-07:00",
"summary": "Wow, I\u2019ve been traveling for most of the past week and a half. Aside from a brief stop back in Seattle between IndieWeb Summit and visiting San Francisco for family gatherings, I\u2019ve mostly been away from home since June 28. Yikes.\nI didn\u2019t really get to see a lot of friends on the San Francisco side of things (although I had some good times with my brother and my friend Mark) but that\u2019s okay, since I got a lot of stuff done on Publ. Or, specifically, on Authl, the authentication layer, and the Publ integration with it. I have sign-in by email, IndieLogin, and Mastodon working! I will also probably add direct auth for IndieAuth at some point, now that I know how easy it is to implement an OAuth basic authentication flow. Hopefully soon I\u2019ll have friends-only entries going up on this site!\nPain-wise I\u2019ve been doing a lot better. I\u2019ve been tapering off the nortriptyline, but I\u2019ve been taking magnesium supplements. I still hit a crash point in the evening pretty easily, so it\u2019s not like this has, like, solved everything, but it\u2019s at least doing more for me than the nortriptyline alone was. I\u2019m currently at 20mg and taper down to 10mg tonight, so this is where I\u2019ll probably start to see if it really was a placebo early on.\nGender-wise, something rather interesting has been happening this trip: I\u2019ve been going into the men\u2019s room as usual (because when I travel and am in \u201cboy mode\u201d clothing I don\u2019t want to cause a panic), and pretty much every time, someone\u2019s taken it upon themselves to point out that I was in the men\u2019s room and redirected me to the women\u2019s room. At the same time, I still keep getting \u201csir\"ed a lot, although I don\u2019t know how much of that is people changing their mental alignment for me after they hear my voice. (Probably a lot.) I don\u2019t feel like my appearance has changed at all over the past year, so I dunno what\u2019s going on there.\nAlso gender-wise, a lot of people have been respecting the use of she/her pronouns for me, and that just feels\u2026 off. Still. I think I\u2019m back to thinking of they/them as my primary pronoun. Honestly, the main reason I switched to she/her was because if I was requesting they/them, people would just treat it as unspecified and still default to he/him. I think my way of specifying pronouns is going to switch to \"they/them, but she/her is fine.\u201d Because if someone\u2019s going to misgender me I\u2019d rather it go to the femme side of things.\nAnd a really cute thing happened at my nephew\u2019s 1st birthday party: Camille, one of my nieces (who just turned 6 yesterday), wanted to get to know me better, and the first question she asked me was, \u201cAre you a he, a she, or a they?\u201d And I sort of fumbled over things and I eventually said \u201cit depends but \u2018they\u2019 and she are \u2018fine.\u2019\u201d Anyway, I wonder where she picked that up from. Wherever it was, it fills me with hope for the future. It\u2019s also what got my mind grinding away about, like, which situations call for which pronouns. I think generally it\u2019s they/them for folks my age or younger, and she/her for folks who are stuck in their ways regarding \u201cproper\u201d English.\nAnyway, I guess that\u2019s all for now. Unless something else occurs to me in the next hour fifteen minutes, apparently before my flight boards.\nEdit: oh yeah, I think I need to switch to a backpack as my only conveyance. They\u2019re kind of cumbersome for keys and wallet and stuff but purses are heavy and lopsided, and having both a backpack and a small purse is really awkward. My current backpack is great for just carrying my laptop to work but it\u2019s garbo for actually organizing all my needs. My larger purse carries my iPad and all my other regular needs but it hurts my back after a whole day of using it. Any recommendations for better backpacks (ideally ones which are femmy and have room for an iPad, a laptop, some sketchbooks, and makeup et al) would be appreciated.\nEdit 2: oh and another thing: fuck all the plastic straw bans, seriously. I\u2019m gonna start just carrying my own plastic straws with me everywhere. I swear, people see one injured sea turtle and suddenly all people with disabilities and sensory issues just get completely thrown under the bus\u2026\nEdit 3: oh god only 4 weeks until my next big trip why is everything happening all at once",
"url": "https://beesbuzz.biz/4684",
"name": "Finally heading home",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445969",
"_source": "2778"
}
Remember how a few months ago I had a positive interaction with Lending Club regarding deadnames on 2FA emails? Well, the other day when I logged in it required a 2FA email and, amazingly enough, they actually fixed the problem! I hope more companies actually start to take these complaints seriously and fix issues with how they handle trans peoples' names.
{
"type": "entry",
"published": "2019-07-03T16:08:08-07:00",
"summary": "Remember how a few months ago I had a positive interaction with Lending Club regarding deadnames on 2FA emails? Well, the other day when I logged in it required a 2FA email and, amazingly enough, they actually fixed the problem! I hope more companies actually start to take these complaints seriously and fix issues with how they handle trans peoples' names.",
"url": "https://beesbuzz.biz/8383",
"name": "Lending Club update",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445970",
"_source": "2778"
}
Kevin and Ryan raise some very good points about where OStatus went wrong. I absolutely agree that Webfinger is a terrible approach to identity brokering (and I have a lot of problems with the /.well-known thing in general), and while I haven’t looked seriously into Salmon because it seemed unnecessary, it also sounds like it was a major pain in the butt to deal with on top of that.
What’s frustrating to me is that Mastodon (and possibly ActivityPub itself?) makes Webfinger absolutely necessary to support (and provides worse feed discovery/modeling as a result!), and I believe it does something Salmon-esque for conversational threading as well (although I’m sure someone will correct me on this point).
Meanwhile, another reason to avoid ActivityPub is that things like this are necessary.
{
"type": "entry",
"published": "2019-07-02T11:00:58-07:00",
"summary": "Kevin and Ryan raise some very good points about where OStatus went wrong. I absolutely agree that Webfinger is a terrible approach to identity brokering (and I have a lot of problems with the /.well-known thing in general), and while I haven\u2019t looked seriously into Salmon because it seemed unnecessary, it also sounds like it was a major pain in the butt to deal with on top of that.\nWhat\u2019s frustrating to me is that Mastodon (and possibly ActivityPub itself?) makes Webfinger absolutely necessary to support (and provides worse feed discovery/modeling as a result!), and I believe it does something Salmon-esque for conversational threading as well (although I\u2019m sure someone will correct me on this point).\nMeanwhile, another reason to avoid ActivityPub is that things like this are necessary.",
"url": "https://beesbuzz.biz/1439",
"name": "Addendum to the previous",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445971",
"_source": "2778"
}
(This is a somewhat-edited version of a disconnected ramble I posted on Twitter/Mastodon while on the train home today. I feel like putting this somewhere that I own it, but am not in a good enough mental state to actually write it properly.)
Yesterday at IndieWeb Summit, someone – Aaron, I believe – mentioned that one of the big differences between IndieWeb initiatives and ActivityPub is that IndieWeb is made up of simple building blocks you can pick and choose while ActivityPub frontloads a lot of complex work. This is a sentiment I very much agree with and it’s unfortunate that the main reason Mastodon switched from OStatus (which is very IndieWeb-esque) is because it made it slightly less inconvenient to pretend to have private posts. Which aren’t even implemented that well.
Mastodon’s “private” posts really suck from a bunch of standpoints. There’s no ability to backfill or even view on web without being on the same instance, and Mastodon’s actual privacy controls go in the wrong direction, so it’s still necessary for a separate vent account. As usual I don’t know if this is a problem with ActivityPub itself, or an artifact of how Mastodon shoehorned its functionality into ActivityPub, but either way, the end result is that Mastodon’s post privacy isn’t really all that useful, nor is it really all that private.
So, right now ActivityPub is the darling of the fediverse, but I’m hoping that the current push toward AutoAuth and trying to use it as a basis for private webmentions and the obvious next steps of private feeds and private WebSub will change that. I do worry that IndieAuth/AutoAuth are kind of hard to do in piecemeal ways though (well, okay, IndieAuth becomes really easy using IndieLogin but I don’t want to see a single endpoint become what everyone on the Internet relies on). And of course once you get into an integration between auth stuff and content stuff you also need to worry a lot more about content management and how it integrates, as well as this seeming fundamentally incompatible with static site generation.
At the Summit there was definitely a lot of compromise that people were doing, such as using Javascript libraries to introduce externally-hosted dynamic IndieWeb stuff onto statically generated pages. I think in this world where SSGs can be supplemented with third-party endpoints that use client-side JavaScript there could be a world where some level of privacy can happen via clever use of client-side includes of data at non-public unguessable URLs. (Although the ideal solution for that is to use the third-party APIs to generate webhooks that then trigger a file change → git commit → commit hook → build/redeploy.)
Non-public unguessable URLs aren’t great for privacy in general (and I mean, Publ has had “privacy through obscurity” since day one and there’s several reasons why I rarely use it anyway) but it’s at least better than nothing.
{
"type": "entry",
"published": "2019-07-01T23:59:03-07:00",
"summary": "(This is a somewhat-edited version of a disconnected ramble I posted on Twitter/Mastodon while on the train home today. I feel like putting this somewhere that I own it, but am not in a good enough mental state to actually write it properly.)\nYesterday at IndieWeb Summit, someone \u2013 Aaron, I believe \u2013 mentioned that one of the big differences between IndieWeb initiatives and ActivityPub is that IndieWeb is made up of simple building blocks you can pick and choose while ActivityPub frontloads a lot of complex work. This is a sentiment I very much agree with and it\u2019s unfortunate that the main reason Mastodon switched from OStatus (which is very IndieWeb-esque) is because it made it slightly less inconvenient to pretend to have private posts. Which aren\u2019t even implemented that well.\nMastodon\u2019s \u201cprivate\u201d posts really suck from a bunch of standpoints. There\u2019s no ability to backfill or even view on web without being on the same instance, and Mastodon\u2019s actual privacy controls go in the wrong direction, so it\u2019s still necessary for a separate vent account. As usual I don\u2019t know if this is a problem with ActivityPub itself, or an artifact of how Mastodon shoehorned its functionality into ActivityPub, but either way, the end result is that Mastodon\u2019s post privacy isn\u2019t really all that useful, nor is it really all that private.\nSo, right now ActivityPub is the darling of the fediverse, but I\u2019m hoping that the current push toward AutoAuth and trying to use it as a basis for private webmentions and the obvious next steps of private feeds and private WebSub will change that. I do worry that IndieAuth/AutoAuth are kind of hard to do in piecemeal ways though (well, okay, IndieAuth becomes really easy using IndieLogin but I don\u2019t want to see a single endpoint become what everyone on the Internet relies on). And of course once you get into an integration between auth stuff and content stuff you also need to worry a lot more about content management and how it integrates, as well as this seeming fundamentally incompatible with static site generation.\nAt the Summit there was definitely a lot of compromise that people were doing, such as using Javascript libraries to introduce externally-hosted dynamic IndieWeb stuff onto statically generated pages. I think in this world where SSGs can be supplemented with third-party endpoints that use client-side JavaScript there could be a world where some level of privacy can happen via clever use of client-side includes of data at non-public unguessable URLs. (Although the ideal solution for that is to use the third-party APIs to generate webhooks that then trigger a file change \u2192 git commit \u2192 commit hook \u2192 build/redeploy.)\nNon-public unguessable URLs aren\u2019t great for privacy in general (and I mean, Publ has had \u201cprivacy through obscurity\u201d since day one and there\u2019s several reasons why I rarely use it anyway) but it\u2019s at least better than nothing.",
"url": "https://beesbuzz.biz/674",
"name": "A long-winded IndieWeb ramble I wrote on the train back from Portland",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445972",
"_source": "2778"
}
One of the biggest bits of functionality I want to get in the next milestone for Publ is private posts. Doing private posts requires some way of determining the identity of the person who is reading the site. There are a lot of mechanisms to choose from. Most of them are largely incompatible with one another, and there isn’t any single mechanism that checks all my boxes. And of course the standards keep on shifting, and keep on getting a new unifying standard that will fix everything.
So, IndieLogin is a really great way to get started with IndieWeb authentication for people who are in the IndieWeb ecosystem. If you have your own website on your own domain name and an account on one of its connected RelMeAuth providers, it covers everything. But not everyone who I want to grant stuff to has their own website, or the ability to set one up. Siloed OAuth is still useful. And being able to log in via email address is also beneficial.
{
"type": "entry",
"published": "2019-06-30T23:58:57-07:00",
"summary": "One of the biggest bits of functionality I want to get in the next milestone for Publ is private posts. Doing private posts requires some way of determining the identity of the person who is reading the site. There are a lot of mechanisms to choose from. Most of them are largely incompatible with one another, and there isn\u2019t any single mechanism that checks all my boxes. And of course the standards keep on shifting, and keep on getting a new unifying standard that will fix everything.\nSo, IndieLogin is a really great way to get started with IndieWeb authentication for people who are in the IndieWeb ecosystem. If you have your own website on your own domain name and an account on one of its connected RelMeAuth providers, it covers everything. But not everyone who I want to grant stuff to has their own website, or the ability to set one up. Siloed OAuth is still useful. And being able to log in via email address is also beneficial.",
"url": "https://beesbuzz.biz/6715",
"name": "IndieWeb Summit day 2: Authl finally gets some love",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445973",
"_source": "2778"
}
First day of #IndieWeb Summit, scattered notes that I take as they come. Hopefully I don’t end up misrepresenting things too badly.
{
"type": "entry",
"published": "2019-06-29T18:01:02-07:00",
"summary": "First day of #IndieWeb Summit, scattered notes that I take as they come. Hopefully I don\u2019t end up misrepresenting things too badly.",
"url": "https://beesbuzz.biz/3785",
"name": "IndieWeb Summit 2019, day 1",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445974",
"_source": "2778"
}
So, the last few days have been feeling a lot better overall. I’m not sure how much of that is reducing my nortriptyline dose or how much is because I’ve been taking magnesium regularly. But either way, I’m just like… in less agony. My wrists still hurt most of the time, especially after I’ve been working for a few hours, and I’m still driving to work more often than I’d like, but all in all I’m feeling, I dunno, better?
I was in a pretty dark place about a week ago and now things are just feeling like how they are on average for me in general, so to me that’s a pretty big improvement.
This weekend I’m going down to Portland for IndieWeb Summit and I’m looking forward to it. Hopefully I can improve my understanding of the current ecosystem, and maybe make some contributions to it which are important to me. In particular it’ll be nice to chat with Aaron and Jamey about our respective areas of overlapping interest, and talk everyone’s ear off about Publ and what I’m trying to do with it. Maybe I can even get others to want to contribute to it! Also definitely looking forward to meeting Jacky, Darius, and everyone else I’ve interacted with in IndieWeb stuff!
{
"type": "entry",
"published": "2019-06-27T22:11:50-07:00",
"summary": "So, the last few days have been feeling a lot better overall. I\u2019m not sure how much of that is reducing my nortriptyline dose or how much is because I\u2019ve been taking magnesium regularly. But either way, I\u2019m just like\u2026 in less agony. My wrists still hurt most of the time, especially after I\u2019ve been working for a few hours, and I\u2019m still driving to work more often than I\u2019d like, but all in all I\u2019m feeling, I dunno, better?\nI was in a pretty dark place about a week ago and now things are just feeling like how they are on average for me in general, so to me that\u2019s a pretty big improvement.\nThis weekend I\u2019m going down to Portland for IndieWeb Summit and I\u2019m looking forward to it. Hopefully I can improve my understanding of the current ecosystem, and maybe make some contributions to it which are important to me. In particular it\u2019ll be nice to chat with Aaron and Jamey about our respective areas of overlapping interest, and talk everyone\u2019s ear off about Publ and what I\u2019m trying to do with it. Maybe I can even get others to want to contribute to it! Also definitely looking forward to meeting Jacky, Darius, and everyone else I\u2019ve interacted with in IndieWeb stuff!",
"url": "https://beesbuzz.biz/8779",
"name": "Feelings",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445975",
"_source": "2778"
}
David Yates wrote a great defense of RSS which I completely agree with. To summarize the salient points: RSS is open RSS works RSS is very well-supported by a lot of things RSS is a suitable name as shorthand for “RSS/Atom” because the name “Atom” is overloaded and basically anything that supports Atom also supports RSS and vice-versa
(Note that there’s one inaccuracy in that since that article was written, Twitter has moved over to algorithmic manipulation of the timeline. This can currently be disabled but who knows how long that’ll last?)
Most IndieWeb folks are also really gung-ho about mf2 and h-feed, and while I don’t see any reason not to support it (and it certainly does have some advantages in terms of it being easier to integrate into a system that isn’t feed-aware or convenient to set up multiple templates), I’ve run into plenty of pitfalls when it comes to actually adding mf2 markup to my own site (for example, having to deal with ambiguities with nesting stuff and dealing with below-the-fold content, not to mention a lot of confusion over things like p-summary vs. e-content), and so far there doesn’t seem to be any real advantage to doing so since everything that supports h-feed also supports RSS/Atom, as far as I’m aware.
For me the only obvious advantage to h-feed is that you can add it to one-size-fits-none templating systems like Tumblr where you don’t have any control over the provided RSS feed, but in those situations there’s not really a lot more added flexibility you’re going to get by adding h-feed markup anyway. I guess it also makes sense if you’re hand-authoring your static site, but that just means it becomes even easier to get things catastrophically wrong.
{
"type": "entry",
"published": "2019-06-27T12:19:53-07:00",
"summary": "David Yates wrote a great defense of RSS which I completely agree with. To summarize the salient points: RSS is open RSS works RSS is very well-supported by a lot of things RSS is a suitable name as shorthand for \u201cRSS/Atom\u201d because the name \u201cAtom\u201d is overloaded and basically anything that supports Atom also supports RSS and vice-versa\n(Note that there\u2019s one inaccuracy in that since that article was written, Twitter has moved over to algorithmic manipulation of the timeline. This can currently be disabled but who knows how long that\u2019ll last?)\nMost IndieWeb folks are also really gung-ho about mf2 and h-feed, and while I don\u2019t see any reason not to support it (and it certainly does have some advantages in terms of it being easier to integrate into a system that isn\u2019t feed-aware or convenient to set up multiple templates), I\u2019ve run into plenty of pitfalls when it comes to actually adding mf2 markup to my own site (for example, having to deal with ambiguities with nesting stuff and dealing with below-the-fold content, not to mention a lot of confusion over things like p-summary vs. e-content), and so far there doesn\u2019t seem to be any real advantage to doing so since everything that supports h-feed also supports RSS/Atom, as far as I\u2019m aware.\nFor me the only obvious advantage to h-feed is that you can add it to one-size-fits-none templating systems like Tumblr where you don\u2019t have any control over the provided RSS feed, but in those situations there\u2019s not really a lot more added flexibility you\u2019re going to get by adding h-feed markup anyway. I guess it also makes sense if you\u2019re hand-authoring your static site, but that just means it becomes even easier to get things catastrophically wrong.",
"url": "https://beesbuzz.biz/5896",
"name": "RSS: there\u2019s nothing better",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445976",
"_source": "2778"
}
I just read this great essay by Matthias Ott. It does a great job of summarizing the state of affairs of blogging and social media, and how we can try to escape the current orbit to get back to where the web was meant to be.
I especially like the bit about “Don’t do it like me. Do it like you.” Because that is exactly why I’ve been building Publ the way I have; I have specific goals in mind for how I manage, maintain, and organize my site, and these goals are very different than what other existing blogging and site-management software has in mind. The fact that I post so many different kinds of content and that they need different organizational structures to make sense makes this a somewhat unique problem. I’d like to think that Publ is a very general piece of web-publishing software, but it’s probably so general because I have such specific needs. Which makes for an interesting paradox, I suppose.
I guess what I’m saying is that I want to see more types of web-based publishing where the schema and layout fit the content, not the other way around. But it also needs to be able to interoperate with other stuff, while still making sense from a producer-consumer UX perspective.
{
"type": "entry",
"published": "2019-06-25T21:22:10-07:00",
"summary": "I just read this great essay by Matthias Ott. It does a great job of summarizing the state of affairs of blogging and social media, and how we can try to escape the current orbit to get back to where the web was meant to be.\nI especially like the bit about \u201cDon\u2019t do it like me. Do it like you.\u201d Because that is exactly why I\u2019ve been building Publ the way I have; I have specific goals in mind for how I manage, maintain, and organize my site, and these goals are very different than what other existing blogging and site-management software has in mind. The fact that I post so many different kinds of content and that they need different organizational structures to make sense makes this a somewhat unique problem. I\u2019d like to think that Publ is a very general piece of web-publishing software, but it\u2019s probably so general because I have such specific needs. Which makes for an interesting paradox, I suppose.\nI guess what I\u2019m saying is that I want to see more types of web-based publishing where the schema and layout fit the content, not the other way around. But it also needs to be able to interoperate with other stuff, while still making sense from a producer-consumer UX perspective.",
"url": "https://beesbuzz.biz/5709",
"name": "Keeping it personal",
"author": {
"type": "card",
"name": "fluffy",
"url": "https://beesbuzz.biz/",
"photo": "https://aperture-proxy.p3k.io/67f0e159262fa91b1915cde9588795b89a61ec8f/68747470733a2f2f6265657362757a7a2e62697a2f7374617469632f6865616473686f742e6a7067"
},
"post-type": "article",
"_id": "4445977",
"_source": "2778"
}