gnusocial.rocks/v3/feed.rss

451 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel><title>GNU social V3</title><link>https://gnusocial.rocks/v3/index.html</link>
<description>Development blog where we announce our progress.</description><language>en</language>
<lastBuildDate>Fri, 25 Feb 2022 21:12:35 +0000</lastBuildDate>
<pubDate>Fri, 25 Feb 2022 21:12:35 +0000</pubDate>
<atom:link href="https://gnusocial.rocks/v3/feed.rss" rel="self" type="application/rss+xml" />
<item><title>
Milestone: Web Monetization
</title><description><![CDATA[
<p><a href="https://webmonetization.org/">Web Monetization</a> is being proposed as a W3C
standard at the Web Platform Incubator Community Group.</p>
<p>GNU social now supports that initiative with the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/WebMonetization">Web Monetization plugin</a>.</p>
<p>With this, we also introduce an ActivityPub (<a href="https://codeberg.org/fediverse/fep/pulls/1">FEP-8c3f</a>) GS extension
<code>gs:webmonetizationWallet</code>. This enables actors to support other actors with Web
Monetization in the fediverse.</p>
<p>It looks like this:</p>
<h2>Own profile</h2>
<p><img src="assets/web_monetization/address.png" alt="" title="" /></p>
<h2>In the profile of other actors</h2>
<p><img src="assets/web_monetization/donate.png" alt="" title="" /></p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-web-monetization.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-web-monetization.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 14:28:36 +0000</pubDate></item>
<item><title>
Milestone: Automatic Accesibility (A11Y) testing
</title><description><![CDATA[
<p>We use <code>pa11y-ci</code> to run our accesibility testing on all GNU social
pages. The process of setting this up was a bit of a ride, but the
results are quite useful:</p>
<p><img src="assets/a11y/report.png" alt="Accesibility report generated by Pa11y" title="" /></p>
<p>We also take screenshots of all pages and compare them with the
previous, allowing us to spot (possibly) unintended changes in the UI.</p>
<p>The way we do this is by using a <code>docker</code> image derived from <code>node</code>,
with <code>pa11y-ci</code> installed, which doesn't have an entrypoint. This then
allows us to spin up a webserver, PHP and Redis containers, mimiking a
staging environment. <code>pa11y-ci</code> uses a JSON config file to tell it
what to do, and handles visiting all pages with the given resolution,
logging in and registering any accesibility violations found.</p>
<p><img src="assets/a11y/violations.png" alt="Accesibility violations found by Pa11y" title="" /></p>
<p>Note that most of these errors are actually the same.</p>
<p>The saved screenshots are then used to detect changes, with
ImageMagik's <code>compare</code>, to generate a report on visual changes.</p>
<p><img src="assets/a11y/compare.png" alt="Screenshot comparisons" title="" /></p>
<p>We were already striving for making GNU social accesible, which is
clear from the really low number of violations found, but there's
always room for improvement :)</p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-automatic-accesibility-a11y-testing.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-automatic-accesibility-a11y-testing.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 13:56:33 +0000</pubDate></item>
<item><title>
Milestone: Collections
</title><description><![CDATA[
<p>We have generalized collections around our search engine. For that introducing
the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Collection">Collection component</a>.</p>
<p>This structure has the following implication:</p>
<pre><code>Collection -&gt; OrderedCollection
|-&gt; Notes (known as Feed)
|-&gt; Actors (known as Circle)
|-&gt; Other Object (known as Collection of ...)
|-&gt; Attachments: AttachmentCollection
|-&gt; Tags: TagCollection
</code></pre>
<p>And it allow us to centralise the scope system in the core, ensuring that no
actor will have access to notes or other objects that shouldn't be able to see.</p>
<p>Finally, with this, a plugin such as <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/NoteTypeFeedFilter">Note Type Feed Filter</a> can be useful in
every note collection (feed).</p>
<p>It also allows plugins such as ActivityPub to <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub/Util/OrderedCollectionController.php">translate every collection
automatically</a>.</p>
<p>We also introduced the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Circle">Circle component</a>, which has a UI similar to the
<a href="https://www.gnusocial.rocks/v3/milestone-albums.html">Attachments Collections</a>,
and enables circle mentions with <code>@#circle_name</code>.</p>
<h2>Notes Filter and Sorting Options</h2>
<p><img src="assets/filters/feed.png" alt="" title="" /></p>
<h2>Actors Filter and Sorting Options</h2>
<p><img src="assets/filters/circle.png" alt="" title="" /></p>
<h2>The Search Component</h2>
<h3>Results</h3>
<p><img src="assets/search/results.png" alt="" title="" /></p>
<h3>Note Options</h3>
<p><img src="assets/search/note_options.png" alt="" title="" /></p>
<h3>Actor Options</h3>
<p><img src="assets/search/actor_options.png" alt="" title="" /></p>
<h2>ActivityPub Examples</h2>
<p><img src="assets/activitypub/collection/circle.jpg" alt="" title="" />
<img src="assets/activitypub/collection/favourites.jpg" alt="" title="" />
<img src="assets/activitypub/collection/outbox.jpg" alt="" title="" /></p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-collections.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-collections.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 13:56:12 +0000</pubDate></item>
<item><title>
Updates: Local Groups
</title><description><![CDATA[
<p><img src="assets/groups/profile.png" alt="" title="" /></p>
<p>We haven't implemented federation of Groups yet, but group tags and <a href="https://socialhub.activitypub.rocks/t/decentralised-group/2200/17?u=diogo">discussion
on how unbounded groups can be federated via ActivityPub</a> has already started.</p>
<p>Concerning federation of traditional groups, we will port our logic from v2 and
translate following the same rules as AndStatus <a href="https://github.com/andstatus/andstatus/issues/248#issuecomment-558703558">because they work</a>, as yvolk beautifully stated :)</p>
<p>Finally, also note that the group actors now have "self-tags", as the other actors, which was a milestone.</p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/updates-local-groups.html</link>
<guid>https://gnusocial.rocks/v3/./updates-local-groups.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 13:13:38 +0000</pubDate></item>
<item><title>
Milestone: Pinned Notes
</title><description><![CDATA[
You can now pin notes in your profile! Given you have suficient permissions to do so (e.g. you created the note), an additional action is represented, allowing you to highlight your favourite notes.</p>
<p>With this feature, an actor has more ways to express itself to the community as a whole. This activity is federated using <a href="https://docs.joinmastodon.org/spec/activitypub/#featured">Mastodon's featured collection extension</a>.</p>
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/PinnedNotes">Source</a>
<img src="assets/profile/pin_note.png" alt="Default view of the actor profile, showing the 'Pin this note' action, and its respective representation" title="" /></p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-pinned-notes.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-pinned-notes.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 12:36:14 +0000</pubDate></item>
<item><title>
Milestone: Notes with LaTeX
</title><description><![CDATA[
<p>LaTeX content types is now supported.</p>
<p><img src="assets/notes/content_type.png" alt="" title="" /></p>
<h2>latex</h2>
<p><img src="assets/notes/latex_content.png" alt="" title="" />
<img src="assets/notes/latex_rendered.png" alt="" title="" /></p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-notes-with-latex.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-notes-with-latex.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 11:41:47 +0000</pubDate></item>
<item><title>
Milestone: Notes with Markdown
</title><description><![CDATA[
<p>Markdown content types is now supported.</p>
<p><img src="assets/notes/content_type.png" alt="" title="" /></p>
<h2>Markdown</h2>
<p><img src="assets/notes/markdown_content.png" alt="" title="" />
<img src="assets/notes/markdown_rendered.png" alt="" title="" /></p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-notes-with-markdown.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-notes-with-markdown.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 11:40:49 +0000</pubDate></item>
<item><title>
Milestone: Mute notifications from a conversation
</title><description><![CDATA[
<p>If a conversation in which you have interacted becomes very active and you wish
to stop receiving notifications derived from that, it is now possible:
<img src="assets/conversation/mute.png" alt="" title="" /></p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-mute-notifications-from-a-conversation.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-mute-notifications-from-a-conversation.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 01:39:10 +0000</pubDate></item>
<item><title>
Milestone: Albums
</title><description><![CDATA[
<p>This is a natural follow up to the <a href="https://www.gnusocial.rocks/v3/milestone-collections.html">Collections Milestone</a>.</p>
<p>An album is a specialisation of an attachment collection, which is itself a
specialisation of a collection.</p>
<p>Albums were implemented with the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/AttachmentCollections">Attachment Collections plugin</a>.</p>
<h2>Here's how it looks</h2>
<h3>Adding an attachment (this is in the right sidebar of attachment pages)</h3>
<p><img src="assets/collection/add_to_collection.png" alt="" title="" /></p>
<h3>List of collections</h3>
<p><img src="assets/collection/meta.png" alt="" title="" /></p>
<h3>Viewing a collection of attachments</h3>
<p><img src="assets/collection/attachments.png" alt="" title="" /></p>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-albums.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-albums.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Tue, 18 Jan 2022 01:23:27 +0000</pubDate></item>
<item><title>
Milestone: ActivityPub
</title><description><![CDATA[
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub">ActivityPub Plugin source</a>.</p>
<p>This milestone could be just this, what's different from any other ActivityPub
plugin? How is it better than v2's?</p>
<p>It's better in how it's organised and extensible, check the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub/EVENTS.md">EVENTS.md</a> for examples.</p>
<h2>Video of GNU social v3 exchanging notes with GNU social v2.</h2>
<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts allow-popups" title="GNU social v3 federating with GNU social v2 via ActivityPub" src="https://tube.tchncs.de/videos/embed/ca778b22-1af2-4b6f-af3d-f24aac7af9f4" frameborder="0" allowfullscreen></iframe>
<!-- text end -->
]]></description><link>https://gnusocial.rocks/v3/milestone-activitypub.html</link>
<guid>https://gnusocial.rocks/v3/./milestone-activitypub.html</guid>
<dc:creator>GNU social development team</dc:creator>
<pubDate>Fri, 10 Dec 2021 16:34:39 +0000</pubDate></item>
</channel></rss>