{"generator":"GNU social 2.0.2-dev","title":"Conversation","totalItems":6,"items":[{"actor":{"id":"https:\/\/cosocial.ca\/users\/evan","displayName":"Evan Prodromou","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/77066-original-tmp20260418043002.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-96-20260418043032.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-48-20260418043032.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-24-20260418043032.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"77066"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/77066-96-20260418043032.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"He\/him. Board member at CoSocial.ca.Research Director, Social Web Foundation.Author of &quot;ActivityPub: Programming for the Social Web&quot; from O&#39;Reilly Media.Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai.Creator of pump.io. Co-creator of GNU social.Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus.Grad student in CS at Georgia Tech.Greek, Arab, Palestinian, American, Canadian, Montr\u00e9alais.","url":"https:\/\/cosocial.ca\/@evan","portablecontacts_net":{"preferredUsername":"evan","displayName":"Evan Prodromou","note":"He\/him. Board member at CoSocial.ca.Research Director, Social Web Foundation.Author of &quot;ActivityPub: Programming for the Social Web&quot; from O&#39;Reilly Media.Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai.Creator of pump.io. Co-creator of GNU social.Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus.Grad student in CS at Georgia Tech.Greek, Arab, Palestinian, American, Canadian, Montr\u00e9alais."}},"content":"<p><a href=\"https:\/\/cosocial.ca\/@evan\" class=\"u-url mention\">@evan<\/a> James archived the repo today, assumably in response to this question. I'm going to keep working from my personal fork, and I'll use that to push to npm. I think I can update the info in package.json on the topic, too. A change that's been waiting too long.<\/p><p><a href=\"https:\/\/social.technoetic.com\/@steve\" class=\"u-url mention\">@steve<\/a> <a href=\"https:\/\/mastodon.social\/@trwnh\" class=\"u-url mention\">@trwnh<\/a> <a href=\"https:\/\/hollo.social\/@hongminhee\" class=\"u-url mention\">@hongminhee<\/a> <a href=\"https:\/\/fosstodon.org\/@jasnell\" class=\"u-url mention\">@jasnell<\/a><\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-13:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116337458337137589","object":{"id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116337458337137589","objectType":"note","content":"<p><a href=\"https:\/\/cosocial.ca\/@evan\" class=\"u-url mention\">@evan<\/a> James archived the repo today, assumably in response to this question. I'm going to keep working from my personal fork, and I'll use that to push to npm. I think I can update the info in package.json on the topic, too. A change that's been waiting too long.<\/p><p><a href=\"https:\/\/social.technoetic.com\/@steve\" class=\"u-url mention\">@steve<\/a> <a href=\"https:\/\/mastodon.social\/@trwnh\" class=\"u-url mention\">@trwnh<\/a> <a href=\"https:\/\/hollo.social\/@hongminhee\" class=\"u-url mention\">@hongminhee<\/a> <a href=\"https:\/\/fosstodon.org\/@jasnell\" class=\"u-url mention\">@jasnell<\/a><\/p>","url":"https:\/\/cosocial.ca\/@evan\/116337458337137589","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116335705042185783","url":"https:\/\/cosocial.ca\/@evan\/116335705042185783"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/trwnh"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/fosstodon.org\/users\/jasnell"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/cosocial.ca\/users\/evan"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/social.technoetic.com\/users\/steve"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hollo.social\/@hongminhee"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-01:objectType=thread:nonce=08295d565615e7f4","notice_info":{"local_id":"12392979","source":"ActivityPub"}},"published":"2026-04-02T22:27:45+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/cosocial.ca\/@evan\/116337458337137589"},{"actor":{"id":"https:\/\/social.technoetic.com\/users\/steve","displayName":"Steve Bate","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/91788-original-tmp20240817131002.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/91788-96-20240817131454.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/91788-48-20240817131454.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/91788-24-20240817131454.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"91788"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/91788-96-20240817131454.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"American living in Southern France.","url":"https:\/\/social.technoetic.com\/@steve","portablecontacts_net":{"preferredUsername":"steve","displayName":"Steve Bate","note":"American living in Southern France."}},"content":"<p><a href=\"https:\/\/cosocial.ca\/@evan\" class=\"u-url mention\">@evan<\/a> <a href=\"https:\/\/mastodon.social\/@trwnh\" class=\"u-url mention\">@trwnh<\/a> <a href=\"https:\/\/hollo.social\/@hongminhee\" class=\"u-url mention\">@hongminhee<\/a> I think he was referring to the GitHub project description: \"Activity Streams 2.0 for Node.js (this package is not actively maintained...\"<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-13:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/social.technoetic.com\/users\/steve\/statuses\/116335339159549073","object":{"id":"https:\/\/social.technoetic.com\/users\/steve\/statuses\/116335339159549073","objectType":"note","content":"<p><a href=\"https:\/\/cosocial.ca\/@evan\" class=\"u-url mention\">@evan<\/a> <a href=\"https:\/\/mastodon.social\/@trwnh\" class=\"u-url mention\">@trwnh<\/a> <a href=\"https:\/\/hollo.social\/@hongminhee\" class=\"u-url mention\">@hongminhee<\/a> I think he was referring to the GitHub project description: \"Activity Streams 2.0 for Node.js (this package is not actively maintained...\"<\/p>","url":"https:\/\/social.technoetic.com\/@steve\/116335339159549073","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116335199274721737","url":"https:\/\/cosocial.ca\/@evan\/116335199274721737"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/trwnh"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/cosocial.ca\/users\/evan"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hollo.social\/@hongminhee"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-01:objectType=thread:nonce=08295d565615e7f4","notice_info":{"local_id":"12391243","source":"ActivityPub"}},"published":"2026-04-02T15:01:40+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/social.technoetic.com\/@steve\/116335339159549073"},{"actor":{"id":"https:\/\/cosocial.ca\/users\/evan","displayName":"Evan Prodromou","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/77066-original-tmp20260418043002.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-96-20260418043032.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-48-20260418043032.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-24-20260418043032.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"77066"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/77066-96-20260418043032.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"He\/him. Board member at CoSocial.ca.Research Director, Social Web Foundation.Author of &quot;ActivityPub: Programming for the Social Web&quot; from O&#39;Reilly Media.Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai.Creator of pump.io. Co-creator of GNU social.Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus.Grad student in CS at Georgia Tech.Greek, Arab, Palestinian, American, Canadian, Montr\u00e9alais.","url":"https:\/\/cosocial.ca\/@evan","portablecontacts_net":{"preferredUsername":"evan","displayName":"Evan Prodromou","note":"He\/him. Board member at CoSocial.ca.Research Director, Social Web Foundation.Author of &quot;ActivityPub: Programming for the Social Web&quot; from O&#39;Reilly Media.Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai.Creator of pump.io. Co-creator of GNU social.Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus.Grad student in CS at Georgia Tech.Greek, Arab, Palestinian, American, Canadian, Montr\u00e9alais."}},"content":"<p><a href=\"https:\/\/social.technoetic.com\/@steve\" class=\"u-url mention\">@steve<\/a> <a href=\"https:\/\/mastodon.social\/@trwnh\" class=\"u-url mention\">@trwnh<\/a> <a href=\"https:\/\/hollo.social\/@hongminhee\" class=\"u-url mention\">@hongminhee<\/a> ha! That was the notice that got me to become a maintainer. But I don't have the admin rights to change it!<\/p><p><a href=\"https:\/\/fosstodon.org\/@jasnell\" class=\"u-url mention\">@jasnell<\/a> can you give admin rights on the activitystrea.ms repo so I can change the message and also push automatically?<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-13:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116335705042185783","object":{"id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116335705042185783","objectType":"note","content":"<p><a href=\"https:\/\/social.technoetic.com\/@steve\" class=\"u-url mention\">@steve<\/a> <a href=\"https:\/\/mastodon.social\/@trwnh\" class=\"u-url mention\">@trwnh<\/a> <a href=\"https:\/\/hollo.social\/@hongminhee\" class=\"u-url mention\">@hongminhee<\/a> ha! That was the notice that got me to become a maintainer. But I don't have the admin rights to change it!<\/p><p><a href=\"https:\/\/fosstodon.org\/@jasnell\" class=\"u-url mention\">@jasnell<\/a> can you give admin rights on the activitystrea.ms repo so I can change the message and also push automatically?<\/p>","url":"https:\/\/cosocial.ca\/@evan\/116335705042185783","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/social.technoetic.com\/users\/steve\/statuses\/116335339159549073","url":"https:\/\/social.technoetic.com\/@steve\/116335339159549073"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/trwnh"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/fosstodon.org\/users\/jasnell"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/social.technoetic.com\/users\/steve"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hollo.social\/@hongminhee"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-01:objectType=thread:nonce=08295d565615e7f4","notice_info":{"local_id":"12391244","source":"ActivityPub"}},"published":"2026-04-02T15:01:39+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/cosocial.ca\/@evan\/116335705042185783"},{"actor":{"id":"https:\/\/cosocial.ca\/users\/evan","displayName":"Evan Prodromou","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/77066-original-tmp20260418043002.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-96-20260418043032.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-48-20260418043032.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-24-20260418043032.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"77066"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/77066-96-20260418043032.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"He\/him. Board member at CoSocial.ca.Research Director, Social Web Foundation.Author of &quot;ActivityPub: Programming for the Social Web&quot; from O&#39;Reilly Media.Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai.Creator of pump.io. Co-creator of GNU social.Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus.Grad student in CS at Georgia Tech.Greek, Arab, Palestinian, American, Canadian, Montr\u00e9alais.","url":"https:\/\/cosocial.ca\/@evan","portablecontacts_net":{"preferredUsername":"evan","displayName":"Evan Prodromou","note":"He\/him. Board member at CoSocial.ca.Research Director, Social Web Foundation.Author of &quot;ActivityPub: Programming for the Social Web&quot; from O&#39;Reilly Media.Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai.Creator of pump.io. Co-creator of GNU social.Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus.Grad student in CS at Georgia Tech.Greek, Arab, Palestinian, American, Canadian, Montr\u00e9alais."}},"content":"<p><a href=\"https:\/\/mastodon.social\/@trwnh\" class=\"u-url mention\">@trwnh<\/a> \"more actively maintained\"?<\/p><p>The code is long-term but it was built by one author of AS2 and maintained by the other. It works well, and I use it in production systems all the time.<\/p><p>I'm pretty sure <a href=\"https:\/\/hollo.social\/@hongminhee\" class=\"u-url mention\">@hongminhee<\/a> has made a similar package, although I'm not sure it's distributed independently.<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-13:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116335199274721737","object":{"id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116335199274721737","objectType":"note","content":"<p><a href=\"https:\/\/mastodon.social\/@trwnh\" class=\"u-url mention\">@trwnh<\/a> \"more actively maintained\"?<\/p><p>The code is long-term but it was built by one author of AS2 and maintained by the other. It works well, and I use it in production systems all the time.<\/p><p>I'm pretty sure <a href=\"https:\/\/hollo.social\/@hongminhee\" class=\"u-url mention\">@hongminhee<\/a> has made a similar package, although I'm not sure it's distributed independently.<\/p>","url":"https:\/\/cosocial.ca\/@evan\/116335199274721737","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/mastodon.social\/users\/trwnh\/statuses\/116333828835838324","url":"https:\/\/mastodon.social\/@trwnh\/116333828835838324"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/mastodon.social\/users\/trwnh"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/hollo.social\/@hongminhee"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-01:objectType=thread:nonce=08295d565615e7f4","notice_info":{"local_id":"12390622","source":"ActivityPub"}},"published":"2026-04-02T12:51:18+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/cosocial.ca\/@evan\/116335199274721737"},{"actor":{"id":"https:\/\/mastodon.social\/users\/trwnh","displayName":"infinite love \u2d33","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/3863-original-tmp20250416155601.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/3863-96-20250416175025.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/3863-48-20250416163444.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/3863-24-20250416222239.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"3863"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/3863-96-20250416175025.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"i have approximate knowledge of many things. perpetual student. (nb\/ace\/they)xmpp\/email: a@trwnh.comhttps:\/\/trwnh.comhelp me live:- https:\/\/donate.stripe.com\/14kg1Og6J4jvfbW145- https:\/\/liberapay.com\/trwnhnotes:- my triggers are moths and glitter- i have all notifs except mentions turned off, so please interact if you wanna be friends! i literally will not notice otherwise- dm me if i did something wrong, so i can improve- purest person on fedi, do not lewd in my presence","url":"https:\/\/mastodon.social\/@trwnh","portablecontacts_net":{"preferredUsername":"trwnh","displayName":"infinite love \u2d33","note":"i have approximate knowledge of many things. perpetual student. (nb\/ace\/they)xmpp\/email: a@trwnh.comhttps:\/\/trwnh.comhelp me live:- https:\/\/donate.stripe.com\/14kg1Og6J4jvfbW145- https:\/\/liberapay.com\/trwnhnotes:- my triggers are moths and glitter- i have all notifs except mentions turned off, so please interact if you wanna be friends! i literally will not notice otherwise- dm me if i did something wrong, so i can improve- purest person on fedi, do not lewd in my presence"}},"content":"<p><a href=\"https:\/\/cosocial.ca\/@evan\" class=\"u-url mention\">@evan<\/a> i would add that there are several other more actively maintained options, at least: <a href=\"https:\/\/json-ld.org\/#developers\" rel=\"nofollow\">https:\/\/json-ld.org\/#developers<\/a><\/p><p>in the most basic case, expanding the document should make it unambiguous:<\/p><p>- all keys are normalized to full identifiers with exactly 1 possible representation instead of infinitely many<br \/>- all values are normalized to JSON <br \/>arrays of JSON objects<br \/>- those JSON objects explicitly say whether they have an id (Reference) or a value (Literal)<\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-13:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/mastodon.social\/users\/trwnh\/statuses\/116333828835838324","object":{"id":"https:\/\/mastodon.social\/users\/trwnh\/statuses\/116333828835838324","objectType":"note","content":"<p><a href=\"https:\/\/cosocial.ca\/@evan\" class=\"u-url mention\">@evan<\/a> i would add that there are several other more actively maintained options, at least: <a href=\"https:\/\/json-ld.org\/#developers\" rel=\"nofollow\">https:\/\/json-ld.org\/#developers<\/a><\/p><p>in the most basic case, expanding the document should make it unambiguous:<\/p><p>- all keys are normalized to full identifiers with exactly 1 possible representation instead of infinitely many<br \/>- all values are normalized to JSON <br \/>arrays of JSON objects<br \/>- those JSON objects explicitly say whether they have an id (Reference) or a value (Literal)<\/p>","url":"https:\/\/mastodon.social\/@trwnh\/116333828835838324","status_net":{"notice_id":null},"inReplyTo":{"objectType":"note","id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116332001773753660","url":"https:\/\/cosocial.ca\/@evan\/116332001773753660"}},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/person","id":"https:\/\/cosocial.ca\/users\/evan"},{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-01:objectType=thread:nonce=08295d565615e7f4","notice_info":{"local_id":"12390621","source":"ActivityPub"}},"published":"2026-04-02T12:51:18+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/mastodon.social\/@trwnh\/116333828835838324"},{"actor":{"id":"https:\/\/cosocial.ca\/users\/evan","displayName":"Evan Prodromou","status_net":{"avatarLinks":[{"url":"https:\/\/gnusocial.jp\/avatar\/77066-original-tmp20260418043002.webp","rel":"avatar","type":"image\/webp","width":400,"height":400},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-96-20260418043032.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-48-20260418043032.webp","rel":"avatar","type":"image\/webp","width":48,"height":48},{"url":"https:\/\/gnusocial.jp\/avatar\/77066-24-20260418043032.webp","rel":"avatar","type":"image\/webp","width":24,"height":24}],"profile_info":{"local_id":"77066"}},"image":{"url":"https:\/\/gnusocial.jp\/avatar\/77066-96-20260418043032.webp","rel":"avatar","type":"image\/webp","width":96,"height":96},"objectType":"person","summary":"He\/him. Board member at CoSocial.ca.Research Director, Social Web Foundation.Author of &quot;ActivityPub: Programming for the Social Web&quot; from O&#39;Reilly Media.Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai.Creator of pump.io. Co-creator of GNU social.Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus.Grad student in CS at Georgia Tech.Greek, Arab, Palestinian, American, Canadian, Montr\u00e9alais.","url":"https:\/\/cosocial.ca\/@evan","portablecontacts_net":{"preferredUsername":"evan","displayName":"Evan Prodromou","note":"He\/him. Board member at CoSocial.ca.Research Director, Social Web Foundation.Author of &quot;ActivityPub: Programming for the Social Web&quot; from O&#39;Reilly Media.Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai.Creator of pump.io. Co-creator of GNU social.Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus.Grad student in CS at Georgia Tech.Greek, Arab, Palestinian, American, Canadian, Montr\u00e9alais."}},"content":"<p>I think if there's one thing I'd say to <a href=\"https:\/\/cosocial.ca\/tags\/ActivityPub\" class=\"mention hashtag\" rel=\"tag\">#ActivityPub<\/a> developers, it's this: it seems like it's going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it's not. You have to keep track of too many variations. Use a JSON-LD library instead. For JavaScript, try activitystrea.ms:<\/p><p><a href=\"https:\/\/github.com\/jasnell\/activitystrea.ms\" rel=\"nofollow\">https:\/\/github.com\/jasnell\/activitystrea.ms<\/a><\/p>","generator":{"id":"tag:gnusocial.jp,2026-06-13:notice-source:ActivityPub","objectType":"application","status_net":{"source_code":"ActivityPub"}},"id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116332001773753660","object":{"id":"https:\/\/cosocial.ca\/users\/evan\/statuses\/116332001773753660","objectType":"note","content":"<p>I think if there's one thing I'd say to <a href=\"https:\/\/cosocial.ca\/tags\/ActivityPub\" class=\"mention hashtag\" rel=\"tag\">#ActivityPub<\/a> developers, it's this: it seems like it's going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it's not. You have to keep track of too many variations. Use a JSON-LD library instead. For JavaScript, try activitystrea.ms:<\/p><p><a href=\"https:\/\/github.com\/jasnell\/activitystrea.ms\" rel=\"nofollow\">https:\/\/github.com\/jasnell\/activitystrea.ms<\/a><\/p>","url":"https:\/\/cosocial.ca\/@evan\/116332001773753660","status_net":{"notice_id":null},"tags":[{"objectType":"http:\/\/activityschema.org\/object\/hashtag","displayName":"activitypub"}]},"to":[{"objectType":"http:\/\/activitystrea.ms\/schema\/1.0\/collection","id":"http:\/\/activityschema.org\/collection\/public"}],"status_net":{"conversation":"tag:gnusocial.jp,2026-04-01:objectType=thread:nonce=08295d565615e7f4","notice_info":{"local_id":"12387746","source":"ActivityPub"}},"published":"2026-04-01T23:20:00+00:00","provider":{"objectType":"service","displayName":"GNU social JP","url":"https:\/\/gnusocial.jp\/"},"verb":"post","url":"https:\/\/cosocial.ca\/@evan\/116332001773753660"}],"links":[{"url":"https:\/\/gnusocial.jp\/conversation\/6287670","rel":"alternate","type":"text\/html"}]}