[BLOG][Milestone] Collections
This commit is contained in:
parent
50b36d1b3a
commit
5c6f430204
BIN
v3/assets/filters/circle.png
Normal file
BIN
v3/assets/filters/circle.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 65 KiB |
BIN
v3/assets/filters/feed.png
Normal file
BIN
v3/assets/filters/feed.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.9 KiB |
BIN
v3/assets/search/actor_options.png
Normal file
BIN
v3/assets/search/actor_options.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 79 KiB |
BIN
v3/assets/search/note_options.png
Normal file
BIN
v3/assets/search/note_options.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 78 KiB |
BIN
v3/assets/search/results.png
Normal file
BIN
v3/assets/search/results.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 81 KiB |
152
v3/feed.rss
152
v3/feed.rss
@ -2,10 +2,63 @@
|
||||
<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, 10 Dec 2021 16:35:16 +0000</lastBuildDate>
|
||||
<pubDate>Fri, 10 Dec 2021 16:35:16 +0000</pubDate>
|
||||
<lastBuildDate>Tue, 18 Jan 2022 00:30:48 +0000</lastBuildDate>
|
||||
<pubDate>Tue, 18 Jan 2022 00:30:48 +0000</pubDate>
|
||||
<atom:link href="https://gnusocial.rocks/v3/feed.rss" rel="self" type="application/rss+xml" />
|
||||
<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 -> OrderedCollection
|
||||
|-> Notes (known as Feed)
|
||||
|-> Actors (known as Circle)
|
||||
|-> Other Object (known as Collection of ...)
|
||||
|-> Attachments: AttachmentCollection
|
||||
|-> 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>
|
||||
|
||||
<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>
|
||||
|
||||
<!-- 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 00:21:29 +0000</pubDate></item>
|
||||
<item><title>
|
||||
Milestone: ActivityPub
|
||||
</title><description><![CDATA[
|
||||
|
||||
@ -21,6 +74,8 @@ plugin? How is it better than v2's?</p>
|
||||
<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>
|
||||
@ -121,6 +176,8 @@ tag.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/milestone-tags.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./milestone-tags.html</guid>
|
||||
@ -193,6 +250,8 @@ Given a valid colour, it's the actor's responsibility whether or not the colours
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/milestone-actor-colour-theme-plugin.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./milestone-actor-colour-theme-plugin.html</guid>
|
||||
@ -215,6 +274,8 @@ Updates: Interface Structure and Flexibility improved
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/updates-interface-structure-and-flexibility-improved.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./updates-interface-structure-and-flexibility-improved.html</guid>
|
||||
@ -267,6 +328,8 @@ for actual internationalization of the free network.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/milestone-notes-and-actors-with-languages.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./milestone-notes-and-actors-with-languages.html</guid>
|
||||
@ -315,6 +378,8 @@ Milestone: ActivityStreams 2.0 and WebFinger
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/milestone-activitystreams-20-and-webfinger.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./milestone-activitystreams-20-and-webfinger.html</guid>
|
||||
@ -435,6 +500,8 @@ forget to subscribe!</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -481,6 +548,8 @@ attempts to generate a page preview from open graph and oembed. I.e., acts when
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -489,83 +558,4 @@ attempts to generate a page preview from open graph and oembed. I.e., acts when
|
||||
<guid>https://gnusocial.rocks/v3/./updates-implement-storeremotemedia-for-v3-and-port-embed.html</guid>
|
||||
<dc:creator>GNU social development team</dc:creator>
|
||||
<pubDate>Fri, 13 Aug 2021 13:37:42 +0100</pubDate></item>
|
||||
<item><title>
|
||||
Updates: Improve the Attachments system
|
||||
</title><description><![CDATA[
|
||||
|
||||
<p>With the milestone <a href="https://www.gnusocial.rocks/v3/milestone-port-media-handling-from-v2.html">Port Media system from
|
||||
v2</a> we had ported the existing
|
||||
attachment system. The fact is that this system wasn't good enough.</p>
|
||||
|
||||
<p>It's always important to start with the original code as that allows us
|
||||
to review past decisions and understand all the corner cases previously
|
||||
considered.</p>
|
||||
|
||||
<p>Sadly, what motivated us to re-design the attachment system were the
|
||||
non-considered corner cases. In particular:</p>
|
||||
|
||||
<ul>
|
||||
<li>Remove <code>title</code> from attachment, as it's part of the relation between attachment and note.</li>
|
||||
<li>Remove <code>actor</code> from attachment, many actors may publish the same attachment.</li>
|
||||
<li>Remove <code>is_local</code> from attachment, as it's part of the relation between attachment and note.</li>
|
||||
<li>Remove <code>remote_url</code> from attachment, different urls can return the same attachment.</li>
|
||||
<li>Attachment now has a reference counter </li>
|
||||
<li>Add entity GSActorToAttachment</li>
|
||||
<li>Add entity GSActorToRemoteURL</li>
|
||||
<li>Add entity RemoteURL</li>
|
||||
<li>Add entity RemoteURLToNote</li>
|
||||
<li>Add entity RemoteURLToAttachment</li>
|
||||
<li>AttachmentToNote now has a title attribute</li>
|
||||
</ul>
|
||||
|
||||
<p>Key commits:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/32ad5dbd74ebb369c4b3ed688e1fb78464fabe49">32ad5dbd74 - [ENTITY] Split Attachment in various new entities</a></li>
|
||||
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/c381e58d3307e7dd07abeb9cf5b3998e34f5bd48">c381e58d33 - [ENTITY] Refactor RemoteURL entities to Link</a></li>
|
||||
</ul>
|
||||
|
||||
<p>The structural changes and how it compares to v2 is detailed in our
|
||||
<a href="http://agile.gnusocial.rocks/doku.php?id=attachment">wiki</a>.</p>
|
||||
|
||||
<p>Some relevant observations:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>Link</code> is now part of GNU social Data Representation terms. It represents
|
||||
any remote URL being shared in a note.</li>
|
||||
<li>There's only one fixed directory for GSFiles.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
]]></description><link>https://gnusocial.rocks/v3/updates-improve-the-attachments-system.html</link>
|
||||
<guid>https://gnusocial.rocks/v3/./updates-improve-the-attachments-system.html</guid>
|
||||
<dc:creator>GNU social development team</dc:creator>
|
||||
<pubDate>Thu, 05 Aug 2021 13:37:42 +0100</pubDate></item>
|
||||
</channel></rss>
|
||||
|
@ -43,6 +43,10 @@ Our objective is to further differentiate GNU social from the alternative softwa
|
||||
</div></div></div>
|
||||
<div id="template-wrapper"><div class="template-unit">
|
||||
<h3>Blog</h3>
|
||||
<h4 class='allposts_header'>January 2022</h4>
|
||||
<ul>
|
||||
<li><a href="./milestone-collections.html">Milestone: Collections</a> — January 18, 2022</li>
|
||||
</ul>
|
||||
<h4 class='allposts_header'>December 2021</h4>
|
||||
<ul>
|
||||
<li><a href="./milestone-activitypub.html">Milestone: ActivityPub</a> — December 10, 2021</li>
|
||||
|
@ -54,6 +54,8 @@ plugin? How is it better than v2's?</p>
|
||||
<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 -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
|
@ -81,6 +81,8 @@ GNU social development team
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
|
@ -105,6 +105,8 @@ Given a valid colour, it's the actor's responsibility whether or not the colours
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
|
96
v3/milestone-collections.html
Normal file
96
v3/milestone-collections.html
Normal file
@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.86, maximum-scale=5.0, minimum-scale=0.86">
|
||||
<link rel="shortcut icon" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="https://www.gnusocial.rocks//assets/css/reset.css">
|
||||
<link rel="stylesheet" href="https://www.gnusocial.rocks//assets/css/blog.css">
|
||||
<link rel='stylesheet' type='text/css' href="https://www.gnusocial.rocks//assets/fonts/opensans/opensans.css"><title>Milestone: Collections - GNU social V3</title>
|
||||
</head><body>
|
||||
<header>
|
||||
<div class="home-menu menu menu-horizontal menu-fixed">
|
||||
<a class="menu-heading" href="https://gnusocial.rocks/">
|
||||
<img src="../assets/img/gnu-social-logo-invert.svg" alt="GNU social">
|
||||
<b>gnu</b>social
|
||||
</a>
|
||||
</div>
|
||||
<div class="sidebar">
|
||||
<ul class="menu-list">
|
||||
<li class="menu-item menu-selected"><a href="index.html" class="menu-link">Blog Index</a></li>
|
||||
<li class="menu-item"><a href="https://code.gnusocial.rocks/" class="menu-link">Repository</a></li>
|
||||
<li class="menu-item"><a href="https://coverage.gnusocial.rocks/" class="menu-link">Code Coverage</a></li>
|
||||
<li class="menu-item"><a href="https://docs.gnusocial.rocks/" class="menu-link">Documentation</a></li>
|
||||
<li class="menu-item"><a href="https://agile.gnusocial.rocks/" class="menu-link">Wiki</a></li>
|
||||
<li class="menu-item"><a href="https://kanban.undefinedhackers.net/?controller=BoardViewController&action=readonly&token=d2293e55cabae7cceff9fb496c651328195357d392b9e61a9f229ed6d463" class="menu-link">Roadmap</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="content">
|
||||
</div></div></div>
|
||||
<div id="template-wrapper"><div class="template-unit">
|
||||
<!-- entry begin -->
|
||||
<h3><a class="ablack" href="milestone-collections.html">
|
||||
Milestone: Collections
|
||||
</a></h3>
|
||||
<!-- bashblog_timestamp: #202201180021.29# -->
|
||||
<div class="subtitle">January 18, 2022 —
|
||||
GNU social development team
|
||||
</div>
|
||||
<!-- text begin -->
|
||||
|
||||
<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 -> OrderedCollection
|
||||
|-> Notes (known as Feed)
|
||||
|-> Actors (known as Circle)
|
||||
|-> Other Object (known as Collection of ...)
|
||||
|-> Attachments: AttachmentCollection
|
||||
|-> 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>
|
||||
|
||||
<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>
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
</div></div>
|
||||
<footer class="footer l-box is-center">
|
||||
This site's source is
|
||||
<a href="https://code.undefinedhackers.net/GNUsocial/gnusocial.rocks">hosted here</a>.
|
||||
</footer></body></html>
|
39
v3/milestone-collections.md
Normal file
39
v3/milestone-collections.md
Normal file
@ -0,0 +1,39 @@
|
||||
Milestone: Collections
|
||||
|
||||
We have generalized collections around our search engine. For that introducing
|
||||
the [Collection component](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Collection).
|
||||
|
||||
This structure has the following implication:
|
||||
|
||||
Collection -> OrderedCollection
|
||||
|-> Notes (known as Feed)
|
||||
|-> Actors (known as Circle)
|
||||
|-> Other Object (known as Collection of ...)
|
||||
|-> Attachments: AttachmentCollection
|
||||
|-> Tags: TagCollection
|
||||
|
||||
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.
|
||||
|
||||
Finally, with this, a plugin such as [Note Type Feed Filter](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/NoteTypeFeedFilter) can be useful in
|
||||
every note collection (feed).
|
||||
|
||||
It also allows plugins such as ActivityPub to [translate every collection
|
||||
automatically](https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub/Util/OrderedCollectionController.php).
|
||||
|
||||
## Notes Filter and Sorting Options
|
||||
![](assets/filters/feed.png)
|
||||
|
||||
## Actors Filter and Sorting Options
|
||||
![](assets/filters/circle.png)
|
||||
|
||||
## The Search Component
|
||||
|
||||
### Results
|
||||
![](assets/search/results.png)
|
||||
|
||||
### Note Options
|
||||
![](assets/search/note_options.png)
|
||||
|
||||
### Actor Options
|
||||
![](assets/search/actor_options.png)
|
@ -104,6 +104,8 @@ is properly tested, we have the
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -85,6 +85,8 @@ for actual internationalization of the free network.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
|
@ -108,6 +108,8 @@ The key ones are:</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -133,6 +133,8 @@ tag.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
|
@ -140,6 +140,8 @@ GNU social development team
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -76,6 +76,8 @@ attempts to generate a page preview from open graph and oembed. I.e., acts when
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -109,6 +109,8 @@ any remote URL being shared in a note.</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -143,6 +143,8 @@ markup, we hope to achieve an accessible, fast and polished structure by which a
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
|
@ -55,6 +55,8 @@ GNU social development team
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- text end -->
|
||||
<!-- entry end -->
|
||||
</div>
|
||||
|
@ -84,6 +84,8 @@ forget to subscribe!</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user