A small tool to view real-world ActivityPub objects as JSON! Enter a URL
or username from Mastodon or a similar service below, and we'll send a
request with
the right
Accept
header
to the server to view the underlying object.
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"ostatus": "http://ostatus.org#",
"atomUri": "ostatus:atomUri",
"inReplyToAtomUri": "ostatus:inReplyToAtomUri",
"conversation": "ostatus:conversation",
"sensitive": "as:sensitive",
"toot": "http://joinmastodon.org/ns#",
"votersCount": "toot:votersCount",
"litepub": "http://litepub.social/ns#",
"directMessage": "litepub:directMessage",
"Hashtag": "as:Hashtag"
}
],
"id": "https://soc.saiyajin.space/users/mai_lapyst/statuses/113620522027051515",
"type": "Note",
"summary": null,
"inReplyTo": null,
"published": "2024-12-09T02:32:58Z",
"url": "https://soc.saiyajin.space/@mai_lapyst/113620522027051515",
"attributedTo": "https://soc.saiyajin.space/users/mai_lapyst",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"cc": [
"https://soc.saiyajin.space/users/mai_lapyst/followers"
],
"sensitive": false,
"atomUri": "https://soc.saiyajin.space/users/mai_lapyst/statuses/113620522027051515",
"inReplyToAtomUri": null,
"conversation": "tag:soc.saiyajin.space,2024-12-09:objectId=2368054:objectType=Conversation",
"content": "<p>Was stuck the past week(s) in my <a href=\"https://soc.saiyajin.space/tags/lisp\" class=\"mention hashtag\" rel=\"tag\">#<span>lisp</span></a> implementation in <a href=\"https://soc.saiyajin.space/tags/zig\" class=\"mention hashtag\" rel=\"tag\">#<span>zig</span></a> on <a href=\"https://soc.saiyajin.space/tags/closures\" class=\"mention hashtag\" rel=\"tag\">#<span>closures</span></a>, as they provide an real challange with their capturing properties. Espc bc I didn't wanted to resort to using things like arbitary \"rules\" to restrict the language only for closure to work, or already implementing a tracing <a href=\"https://soc.saiyajin.space/tags/garbagecollector\" class=\"mention hashtag\" rel=\"tag\">#<span>garbagecollector</span></a> for this.</p><p>I rather choose to use <a href=\"https://soc.saiyajin.space/tags/ARC\" class=\"mention hashtag\" rel=\"tag\">#<span>ARC</span></a> (Atomically Reference counting) for this, which comes with a few problems. And as I found nobody that has solved this problem, I've come up with a solution to it myself: 'Switchable references with strongchain elemination'. A bit bulky name, and the technique is still in it's beginning, but when implemented in rust the compiler dosnt complain and valgrind dosn't detects any leaks.</p><p>I've written a fairly big <a href=\"https://blog.lapyst.dev/posts/11-rollinglisp-001---of-closures-mutability-and-switchable-references\" target=\"_blank\" rel=\"nofollow noopener\">blogpost about it</a> too, including not only the whole explanation how it works but also alternatives I've considered. Check it out if you're interested!</p><p>Now I only need to translate it over to zig, but hopefully that dosnt take so long x3</p><p><a href=\"https://soc.saiyajin.space/tags/coding\" class=\"mention hashtag\" rel=\"tag\">#<span>coding</span></a> <a href=\"https://soc.saiyajin.space/tags/programming\" class=\"mention hashtag\" rel=\"tag\">#<span>programming</span></a> <a href=\"https://soc.saiyajin.space/tags/software\" class=\"mention hashtag\" rel=\"tag\">#<span>software</span></a> <a href=\"https://soc.saiyajin.space/tags/oss\" class=\"mention hashtag\" rel=\"tag\">#<span>oss</span></a> <a href=\"https://soc.saiyajin.space/tags/foss\" class=\"mention hashtag\" rel=\"tag\">#<span>foss</span></a> <a href=\"https://soc.saiyajin.space/tags/ossdev\" class=\"mention hashtag\" rel=\"tag\">#<span>ossdev</span></a> <a href=\"https://soc.saiyajin.space/tags/fossdev\" class=\"mention hashtag\" rel=\"tag\">#<span>fossdev</span></a> <a href=\"https://soc.saiyajin.space/tags/lisp\" class=\"mention hashtag\" rel=\"tag\">#<span>lisp</span></a> <a href=\"https://soc.saiyajin.space/tags/zig\" class=\"mention hashtag\" rel=\"tag\">#<span>zig</span></a> <a href=\"https://soc.saiyajin.space/tags/rust\" class=\"mention hashtag\" rel=\"tag\">#<span>rust</span></a> <a href=\"https://soc.saiyajin.space/tags/softwaredevelopment\" class=\"mention hashtag\" rel=\"tag\">#<span>softwaredevelopment</span></a> <a href=\"https://soc.saiyajin.space/tags/pldev\" class=\"mention hashtag\" rel=\"tag\">#<span>pldev</span></a> <a href=\"https://soc.saiyajin.space/tags/programminglanguages\" class=\"mention hashtag\" rel=\"tag\">#<span>programminglanguages</span></a> <a href=\"https://soc.saiyajin.space/tags/referencecounting\" class=\"mention hashtag\" rel=\"tag\">#<span>referencecounting</span></a> <a href=\"https://soc.saiyajin.space/tags/rc\" class=\"mention hashtag\" rel=\"tag\">#<span>rc</span></a> <a href=\"https://soc.saiyajin.space/tags/arc\" class=\"mention hashtag\" rel=\"tag\">#<span>arc</span></a></p>",
"contentMap": {
"en": "<p>Was stuck the past week(s) in my <a href=\"https://soc.saiyajin.space/tags/lisp\" class=\"mention hashtag\" rel=\"tag\">#<span>lisp</span></a> implementation in <a href=\"https://soc.saiyajin.space/tags/zig\" class=\"mention hashtag\" rel=\"tag\">#<span>zig</span></a> on <a href=\"https://soc.saiyajin.space/tags/closures\" class=\"mention hashtag\" rel=\"tag\">#<span>closures</span></a>, as they provide an real challange with their capturing properties. Espc bc I didn't wanted to resort to using things like arbitary \"rules\" to restrict the language only for closure to work, or already implementing a tracing <a href=\"https://soc.saiyajin.space/tags/garbagecollector\" class=\"mention hashtag\" rel=\"tag\">#<span>garbagecollector</span></a> for this.</p><p>I rather choose to use <a href=\"https://soc.saiyajin.space/tags/ARC\" class=\"mention hashtag\" rel=\"tag\">#<span>ARC</span></a> (Atomically Reference counting) for this, which comes with a few problems. And as I found nobody that has solved this problem, I've come up with a solution to it myself: 'Switchable references with strongchain elemination'. A bit bulky name, and the technique is still in it's beginning, but when implemented in rust the compiler dosnt complain and valgrind dosn't detects any leaks.</p><p>I've written a fairly big <a href=\"https://blog.lapyst.dev/posts/11-rollinglisp-001---of-closures-mutability-and-switchable-references\" target=\"_blank\" rel=\"nofollow noopener\">blogpost about it</a> too, including not only the whole explanation how it works but also alternatives I've considered. Check it out if you're interested!</p><p>Now I only need to translate it over to zig, but hopefully that dosnt take so long x3</p><p><a href=\"https://soc.saiyajin.space/tags/coding\" class=\"mention hashtag\" rel=\"tag\">#<span>coding</span></a> <a href=\"https://soc.saiyajin.space/tags/programming\" class=\"mention hashtag\" rel=\"tag\">#<span>programming</span></a> <a href=\"https://soc.saiyajin.space/tags/software\" class=\"mention hashtag\" rel=\"tag\">#<span>software</span></a> <a href=\"https://soc.saiyajin.space/tags/oss\" class=\"mention hashtag\" rel=\"tag\">#<span>oss</span></a> <a href=\"https://soc.saiyajin.space/tags/foss\" class=\"mention hashtag\" rel=\"tag\">#<span>foss</span></a> <a href=\"https://soc.saiyajin.space/tags/ossdev\" class=\"mention hashtag\" rel=\"tag\">#<span>ossdev</span></a> <a href=\"https://soc.saiyajin.space/tags/fossdev\" class=\"mention hashtag\" rel=\"tag\">#<span>fossdev</span></a> <a href=\"https://soc.saiyajin.space/tags/lisp\" class=\"mention hashtag\" rel=\"tag\">#<span>lisp</span></a> <a href=\"https://soc.saiyajin.space/tags/zig\" class=\"mention hashtag\" rel=\"tag\">#<span>zig</span></a> <a href=\"https://soc.saiyajin.space/tags/rust\" class=\"mention hashtag\" rel=\"tag\">#<span>rust</span></a> <a href=\"https://soc.saiyajin.space/tags/softwaredevelopment\" class=\"mention hashtag\" rel=\"tag\">#<span>softwaredevelopment</span></a> <a href=\"https://soc.saiyajin.space/tags/pldev\" class=\"mention hashtag\" rel=\"tag\">#<span>pldev</span></a> <a href=\"https://soc.saiyajin.space/tags/programminglanguages\" class=\"mention hashtag\" rel=\"tag\">#<span>programminglanguages</span></a> <a href=\"https://soc.saiyajin.space/tags/referencecounting\" class=\"mention hashtag\" rel=\"tag\">#<span>referencecounting</span></a> <a href=\"https://soc.saiyajin.space/tags/rc\" class=\"mention hashtag\" rel=\"tag\">#<span>rc</span></a> <a href=\"https://soc.saiyajin.space/tags/arc\" class=\"mention hashtag\" rel=\"tag\">#<span>arc</span></a></p>"
},
"attachment": [],
"tag": [
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/lisp",
"name": "#lisp"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/zig",
"name": "#zig"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/closures",
"name": "#closures"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/garbagecollector",
"name": "#garbagecollector"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/arc",
"name": "#arc"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/coding",
"name": "#coding"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/programming",
"name": "#programming"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/software",
"name": "#software"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/oss",
"name": "#oss"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/foss",
"name": "#foss"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/ossdev",
"name": "#ossdev"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/fossdev",
"name": "#fossdev"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/rust",
"name": "#rust"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/softwaredevelopment",
"name": "#softwaredevelopment"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/pldev",
"name": "#pldev"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/programminglanguages",
"name": "#programminglanguages"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/referencecounting",
"name": "#referencecounting"
},
{
"type": "Hashtag",
"href": "https://soc.saiyajin.space/tags/rc",
"name": "#rc"
}
],
"replies": {
"id": "https://soc.saiyajin.space/users/mai_lapyst/statuses/113620522027051515/replies",
"type": "Collection",
"first": {
"type": "CollectionPage",
"next": "https://soc.saiyajin.space/users/mai_lapyst/statuses/113620522027051515/replies?only_other_accounts=true&page=true",
"partOf": "https://soc.saiyajin.space/users/mai_lapyst/statuses/113620522027051515/replies",
"items": []
}
},
"likes": {
"id": "https://soc.saiyajin.space/users/mai_lapyst/statuses/113620522027051515/likes",
"type": "Collection",
"totalItems": 13
},
"shares": {
"id": "https://soc.saiyajin.space/users/mai_lapyst/statuses/113620522027051515/shares",
"type": "Collection",
"totalItems": 7
}
}