ActivityPub Viewer

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.

Open in browser →
{ "@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", "blurhash": "toot:blurhash", "focalPoint": { "@container": "@list", "@id": "toot:focalPoint" }, "Hashtag": "as:Hashtag", "Emoji": "toot:Emoji" } ], "id": "https://ma.fellr.net/users/fell/statuses/111305954796132345", "type": "Note", "summary": null, "inReplyTo": null, "published": "2023-10-27T08:08:05Z", "url": "https://ma.fellr.net/@fell/111305954796132345", "attributedTo": "https://ma.fellr.net/users/fell", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://ma.fellr.net/users/fell/followers" ], "sensitive": false, "atomUri": "https://ma.fellr.net/users/fell/statuses/111305954796132345", "inReplyToAtomUri": null, "conversation": "tag:ma.fellr.net,2023-10-27:objectId=7396488:objectType=Conversation", "content": "<p>Guys, it happened. :drgn_flat_sob: </p><p>Despite me being an absolute performance addict beyond reason, I have decided not to write my dice roller entirely in C++, for now. At least not until Godot 4.2 comes out, which brings hot-reloading to GDExtension.</p><p>GDScript is slow, and I really hate wasting people&#39;s CPU cycles, but prototyping the game logic is just so much quicker because it&#39;s right in the editor and changes are applied immediately.</p><p>I am also certain that I will be able to convert GDScript to GDExtension C++ fairly easily, because all I do is call engine functions, basically. It&#39;s just a matter of translating the syntax. </p><p>Last but not least, It would make a nice case study to directly compare the same implementations in GDScript and GDExtension C++.</p><p><a href=\"https://ma.fellr.net/tags/Godot\" class=\"mention hashtag\" rel=\"tag\">#<span>Godot</span></a> <a href=\"https://ma.fellr.net/tags/GodotEngine\" class=\"mention hashtag\" rel=\"tag\">#<span>GodotEngine</span></a> <a href=\"https://ma.fellr.net/tags/CPP\" class=\"mention hashtag\" rel=\"tag\">#<span>CPP</span></a> <a href=\"https://ma.fellr.net/tags/CPlusPlus\" class=\"mention hashtag\" rel=\"tag\">#<span>CPlusPlus</span></a> <a href=\"https://ma.fellr.net/tags/GDScript\" class=\"mention hashtag\" rel=\"tag\">#<span>GDScript</span></a> <a href=\"https://ma.fellr.net/tags/GDExtension\" class=\"mention hashtag\" rel=\"tag\">#<span>GDExtension</span></a> <a href=\"https://ma.fellr.net/tags/GameDevelopment\" class=\"mention hashtag\" rel=\"tag\">#<span>GameDevelopment</span></a> <a href=\"https://ma.fellr.net/tags/GameDev\" class=\"mention hashtag\" rel=\"tag\">#<span>GameDev</span></a> <a href=\"https://ma.fellr.net/tags/Prototyping\" class=\"mention hashtag\" rel=\"tag\">#<span>Prototyping</span></a> <a href=\"https://ma.fellr.net/tags/Programming\" class=\"mention hashtag\" rel=\"tag\">#<span>Programming</span></a> <a href=\"https://ma.fellr.net/tags/Performance\" class=\"mention hashtag\" rel=\"tag\">#<span>Performance</span></a> <a href=\"https://ma.fellr.net/tags/Gaming\" class=\"mention hashtag\" rel=\"tag\">#<span>Gaming</span></a> <a href=\"https://ma.fellr.net/tags/RPG\" class=\"mention hashtag\" rel=\"tag\">#<span>RPG</span></a> <a href=\"https://ma.fellr.net/tags/TTRPG\" class=\"mention hashtag\" rel=\"tag\">#<span>TTRPG</span></a> <a href=\"https://ma.fellr.net/tags/Tabletop\" class=\"mention hashtag\" rel=\"tag\">#<span>Tabletop</span></a> <a href=\"https://ma.fellr.net/tags/VirtualTabletop\" class=\"mention hashtag\" rel=\"tag\">#<span>VirtualTabletop</span></a></p>", "contentMap": { "en": "<p>Guys, it happened. :drgn_flat_sob: </p><p>Despite me being an absolute performance addict beyond reason, I have decided not to write my dice roller entirely in C++, for now. At least not until Godot 4.2 comes out, which brings hot-reloading to GDExtension.</p><p>GDScript is slow, and I really hate wasting people&#39;s CPU cycles, but prototyping the game logic is just so much quicker because it&#39;s right in the editor and changes are applied immediately.</p><p>I am also certain that I will be able to convert GDScript to GDExtension C++ fairly easily, because all I do is call engine functions, basically. It&#39;s just a matter of translating the syntax. </p><p>Last but not least, It would make a nice case study to directly compare the same implementations in GDScript and GDExtension C++.</p><p><a href=\"https://ma.fellr.net/tags/Godot\" class=\"mention hashtag\" rel=\"tag\">#<span>Godot</span></a> <a href=\"https://ma.fellr.net/tags/GodotEngine\" class=\"mention hashtag\" rel=\"tag\">#<span>GodotEngine</span></a> <a href=\"https://ma.fellr.net/tags/CPP\" class=\"mention hashtag\" rel=\"tag\">#<span>CPP</span></a> <a href=\"https://ma.fellr.net/tags/CPlusPlus\" class=\"mention hashtag\" rel=\"tag\">#<span>CPlusPlus</span></a> <a href=\"https://ma.fellr.net/tags/GDScript\" class=\"mention hashtag\" rel=\"tag\">#<span>GDScript</span></a> <a href=\"https://ma.fellr.net/tags/GDExtension\" class=\"mention hashtag\" rel=\"tag\">#<span>GDExtension</span></a> <a href=\"https://ma.fellr.net/tags/GameDevelopment\" class=\"mention hashtag\" rel=\"tag\">#<span>GameDevelopment</span></a> <a href=\"https://ma.fellr.net/tags/GameDev\" class=\"mention hashtag\" rel=\"tag\">#<span>GameDev</span></a> <a href=\"https://ma.fellr.net/tags/Prototyping\" class=\"mention hashtag\" rel=\"tag\">#<span>Prototyping</span></a> <a href=\"https://ma.fellr.net/tags/Programming\" class=\"mention hashtag\" rel=\"tag\">#<span>Programming</span></a> <a href=\"https://ma.fellr.net/tags/Performance\" class=\"mention hashtag\" rel=\"tag\">#<span>Performance</span></a> <a href=\"https://ma.fellr.net/tags/Gaming\" class=\"mention hashtag\" rel=\"tag\">#<span>Gaming</span></a> <a href=\"https://ma.fellr.net/tags/RPG\" class=\"mention hashtag\" rel=\"tag\">#<span>RPG</span></a> <a href=\"https://ma.fellr.net/tags/TTRPG\" class=\"mention hashtag\" rel=\"tag\">#<span>TTRPG</span></a> <a href=\"https://ma.fellr.net/tags/Tabletop\" class=\"mention hashtag\" rel=\"tag\">#<span>Tabletop</span></a> <a href=\"https://ma.fellr.net/tags/VirtualTabletop\" class=\"mention hashtag\" rel=\"tag\">#<span>VirtualTabletop</span></a></p>" }, "attachment": [ { "type": "Document", "mediaType": "image/png", "url": "https://ma.fellr.net/system/media_attachments/files/111/305/940/204/962/172/original/890170e8d4e807e4.png", "name": "Screenshot of the Godot Engine editor with a blue, twenty sided die displayed in the 3D viewport in the center. There is a scene tree to the left and a properties panel to the right. At the bottom is a log window.", "blurhash": "U47_1kn~56bb-=oJMxax0fX9=|of8^f+%NWB", "width": 1920, "height": 1016 } ], "tag": [ { "type": "Hashtag", "href": "https://ma.fellr.net/tags/godot", "name": "#godot" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/godotengine", "name": "#godotengine" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/cpp", "name": "#cpp" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/cplusplus", "name": "#cplusplus" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/gdscript", "name": "#gdscript" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/gdextension", "name": "#gdextension" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/gamedevelopment", "name": "#gamedevelopment" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/gamedev", "name": "#gamedev" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/prototyping", "name": "#prototyping" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/programming", "name": "#programming" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/performance", "name": "#performance" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/gaming", "name": "#gaming" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/rpg", "name": "#rpg" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/ttrpg", "name": "#ttrpg" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/tabletop", "name": "#tabletop" }, { "type": "Hashtag", "href": "https://ma.fellr.net/tags/virtualtabletop", "name": "#virtualtabletop" }, { "id": "https://ma.fellr.net/emojis/42513", "type": "Emoji", "name": ":drgn_flat_sob:", "updated": "2023-04-04T09:06:08Z", "icon": { "type": "Image", "mediaType": "image/png", "url": "https://ma.fellr.net/system/custom_emojis/images/000/042/513/original/drgn_flat_sob.png" } } ], "replies": { "id": "https://ma.fellr.net/users/fell/statuses/111305954796132345/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://ma.fellr.net/users/fell/statuses/111305954796132345/replies?min_id=111307223807497905&page=true", "partOf": "https://ma.fellr.net/users/fell/statuses/111305954796132345/replies", "items": [ "https://ma.fellr.net/users/fell/statuses/111307223807497905" ] } }, "likes": { "id": "https://ma.fellr.net/users/fell/statuses/111305954796132345/likes", "type": "Collection", "totalItems": 26 }, "shares": { "id": "https://ma.fellr.net/users/fell/statuses/111305954796132345/shares", "type": "Collection", "totalItems": 5 } }