KitaitiMakotohttps://blog.witch.academy/@/KitaitiMakoto@fediverse.blog/atom.xml2022-05-11T21:17:11.781437+00:00<![CDATA[Plume 0.7.2 is out]]>https://fediverse.blog/~/PlumeDev/Plume%200.7.2%20is%20out/2022-05-11T21:17:11.781437+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2022-05-11T21:17:11.781437+00:00<![CDATA[<p dir="auto">We are pleased to announce this new alpha version of Plume. This release has no migration. You don’t need run it before updating.</p>
<p dir="auto">The most major change is internal one: ActivityPub library’s upgrading.</p>
<p dir="auto">We also added changes to home page and timeline. See a <a href="Plume%20Development%202022-05-06" rel="noopener noreferrer">blog post</a> for details.</p>
<p dir="auto">In addition, a problem that activities don’t reach other instances is solved. We should have fixed it, but other cause have remained. It should be away.</p>
<p dir="auto">See the <a href="https://git.joinplu.me/Plume/Plume/releases" rel="noopener noreferrer">release note</a> for details.</p>
]]><![CDATA[Plume Development 2022-05-06]]>https://fediverse.blog/~/PlumeDev/Plume%20Development%202022-05-06/2022-05-06T03:16:15.698338+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2022-05-06T03:16:15.698338+00:00<![CDATA[<p dir="auto">I’m working with tiny improvements for the next release.</p>
<p dir="auto">As a part of that, I added a few changes to home page and timelines. I</p>
<ul dir="auto">
<li>Moved “My feed” to the first timeline</li>
<li>Removed “Latest articles” timeline</li>
<li>Showed only first timeline at home page</li>
</ul>
<p dir="auto">By these changes, I think you will get free from unexpected article updates.</p>
<p dir="auto">They are applied to this instance. How do you think?</p>
]]><![CDATA[Plume Development 2022-05-03]]>https://fediverse.blog/~/PlumeDev/Plume%20Development%202022-05-03/2022-05-03T15:46:32.237296+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2022-05-03T15:46:32.237296+00:00<![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">I have done an internal improvement I have worked with since Jan. 2022: <a href="https://git.joinplu.me/Plume/Plume/pulls/1022" rel="noopener noreferrer">Upgrade activitystreams to 0.7, again</a></p>
<p dir="auto">It doesn’t affect features and user interfaces directly, but is a large change. So I will use it at <a href="https://blogs.kitaitimakoto.net/" rel="noopener noreferrer">my personal instance</a> and see what will happen. You can also try it using <a href="https://hub.docker.com/repository/docker/plumeorg/plume" rel="noopener noreferrer">Docker images</a>’s <code>ap07</code> tag or <a href="https://git.joinplu.me/Plume/Plume/src/branch/ap07" rel="noopener noreferrer"><code>ap07</code> branch</a> of source code. Note that it might have critical bugs that break federation with other instances.</p>
<p dir="auto">Next, I will implement some tiny features and fixes tiny bugs. And then, I will work with Rocket 0.5, which should be also hard work.</p>
]]><![CDATA[Plume 0.7.1 is out]]>https://fediverse.blog/~/PlumeDev/Plume%200.7.1%20is%20out/2022-01-13T19:13:13.587702+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2022-01-13T19:13:13.587702+00:00<![CDATA[<p dir="auto">We are pleased to announce this new alpha version of Plume. It includes database schema change. You need run migration before start new version</p>
<pre><code dir="auto">% plm migration run
</code></pre>
<p dir="auto">This update added <code>MAIL_PORT</code> environment variable support. See <a href="https://docs.joinplu.me/environment/#mail" rel="noopener noreferrer">documentation</a> for details.</p>
<p dir="auto">Also it added sign-up feature. You can see how to set up at <code>SIGNUP</code> variable in <a href="https://docs.joinplu.me/environment/" rel="noopener noreferrer">Useful environment variables</a> page. <a href="https://fediverse.blog/%7E/PlumeDev/Plume%20Development%202022-01-06" rel="noopener noreferrer">A blog post</a> might help you.</p>
<hr>
<p dir="auto">Now I’m working on <a href="https://git.joinplu.me/Plume/Plume/issues/924" rel="noopener noreferrer">Malfunction while creating a blog post in Persian</a> issue and <a href="https://git.joinplu.me/Plume/Plume/issues/995" rel="noopener noreferrer">upgrading Rocket library to 0.5</a>. I hope the next release includes fixes for them.</p>
]]><![CDATA[Plume Development 2022-01-06]]>https://fediverse.blog/~/PlumeDev/Plume%20Development%202022-01-06/2022-01-06T15:36:09.319523+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2022-01-06T15:36:09.319523+00:00<![CDATA[<p dir="auto">I implemented a feture that sign-up requires an email confirmation. It sends an email to the address a user provides during sign-up process, and you can confirm it exists and is reachable. This prevents a kind of people from creating many spam accounts.</p>
<p dir="auto">For current implementation, when provided address is used for an existing user,</p>
<ul dir="auto">
<li>A) Plume doesn’t send any email to anyone, but,</li>
<li>B) Plume says that an email was sent to the address.</li>
</ul>
<p dir="auto">How do you think about this behavior?</p>
<p dir="auto">A’s purpose is:</p>
<ul dir="auto">
<li>not to send annoying emails to existing users.</li>
</ul>
<p dir="auto">B’s purposes are:</p>
<ul dir="auto">
<li>not to inform to the signing up person that there is a person you can contact using the email address, and,</li>
<li>not to inform that there is a user on Plume who you can attack by trying many passwords.</li>
</ul>
<p dir="auto">(Updated on 2021-01-07)<br>
Confirmation email is sent once when a user signs up (registers), so users can log in without email confirmation. And users have been before this feature is enabled don’t need to be confirmed.</p>
<p dir="auto">Any comments are welcome. I want to release this feature as version 0.7.1 in several days if there is no problem.</p>
<p dir="auto">You may try this feature today using the latest source code or Docker image. It requires running migration before restarting Plume:</p>
<pre><code dir="auto"><span class="source"><span class=""><span class="variable function"><span class=""><span class="punctuation variable">%</span></span></span></span><span class=""> plm migration run</span>
</span></code></pre>
<p dir="auto">Setting <code>SIGNUP</code> environment variable to <code>email</code> enables the feature:</p>
<pre><code dir="auto"><span class="source"><span class=""><span class="variable function"><span class=""><span class="punctuation variable">%</span></span></span></span><span class=""> SIGNUP=email plume</span>
</span></code></pre>
<hr>
<p dir="auto">Thank you for using Plume. I hope you mamage Plume instances with comfort.</p>
]]><![CDATA[Plume 0.7.0 is out!]]>https://fediverse.blog/~/PlumeDev/Plume%200.7.0%20is%20out!/2022-01-02T15:27:42.300776+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2022-01-02T15:27:42.300776+00:00<![CDATA[<p dir="auto">A happy new year!</p>
<p dir="auto">This release include many changes from v0.6.0 because one year passed since it released. I write significant changes. See <a href="https://git.joinplu.me/Plume/Plume/releases/tag/0.7.0" rel="noopener noreferrer">release note</a> for all changes.</p>
<h2 dir="auto">Federation with Mastodon</h2>
<p dir="auto">Now Plume sign outgoing ActivityPub GET requests. This means Mastodon instances with security mode on accept Plume’s requests. It improves interoperability with Fediverse.</p>
<h2 dir="auto">Security fixes</h2>
<p dir="auto">We update dependent crates, some includes security fixes. All administrators are encouraged to update Plume.</p>
<h2 dir="auto">Features</h2>
<p dir="auto">RtoL support was improved. Thanks <a href="https://git.joinplu.me/trinity-1686a" rel="noopener noreferrer">trinity-1686a</a>, <a href="https://git.joinplu.me/mskf1383" rel="noopener noreferrer">mskf1383</a>, <a href="https://git.joinplu.me/mareklach" rel="noopener noreferrer">mareklach</a> and <a href="https://github.com/ahangarha" rel="noopener noreferrer">ahangarha</a>!</p>
<h2 dir="auto">Changes</h2>
<h3 dir="auto">Post URI</h3>
<p dir="auto">Posts’ URIs was changed. Plume uses Posts’ title for URI (with percent-encoded), while capital-cased dash-inserted slug have been used for former versions. Already published posts URIs didn’t change. This affects only newly published posts.</p>
<h2 dir="auto">Fixes</h2>
<h3 dir="auto">Remote interaction</h3>
<p dir="auto">Remote interaction including fav, boost and comment hasn’t worked for some time. It was fixed.</p>
<h3 dir="auto">Menu opening</h3>
<p dir="auto">Menu opening button hasn’t worked for iOS. It was fixed.</p>
<p dir="auto">And some fixes are included in new version. See <a href="https://git.joinplu.me/Plume/Plume/releases/tag/0.7.0" rel="noopener noreferrer">release page</a> for details.</p>
<hr>
<p dir="auto">Thank you for reading on, writing on, translating, reporting issues and development on Plume. We will continue development even if it is slow. Welcome any contributing!</p>
]]><![CDATA[Fediverse.blog server migration]]>https://fediverse.blog/~/PlumeDev/Fediverse.blog server migration/2021-09-04T03:09:35.932778+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-09-04T03:09:35.932778+00:00<![CDATA[<p dir="auto">This fediverse.blog Plume instance’s server has been maintained by <a href="//fediverse.blog/@/gled@pl.remote-shell.net/" title="gled@pl.remote-shell.net" rel="noopener noreferrer">@gled@pl.remote-shell.net</a> for long periods of time. Last month, they became not to be able to keep its domain and server and contacted us: <a href="https://pl.remote-shell.net/notice/A9zTQgaY2CCMRvHJpo" rel="noopener noreferrer">https://pl.remote-shell.net/notice/A9zTQgaY2CCMRvHJpo</a>.</p>
<p dir="auto">I have finished migration. Thank you gled for maintainig the blog for long time!</p>
]]><![CDATA[Plume Development 2021-04-13]]>https://fediverse.blog/~/PlumeDev/plume-development-2021-04-13/2021-04-13T03:17:06.553954+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-04-13T03:17:06.553954+00:00<![CDATA[<h2 dir="auto">Slug (URI) modification</h2>
<p dir="auto">Now article’s URI is automatically modified by Plume to capital case: “article title” → “Article Title” and hyphens are inserted between some type of characters: “タイトル” → “タ-イ-ト-ル”. Sometimes this behavior is not preferred. So I stopped this behavior. Existing URIs won’t be modified. New articles’ titles will be applied.</p>
<p dir="auto">If possible, it’s so appreciated for you to run the latest version from source code or Docker image and report issues, especially whether there’s trouble with federation between Mastodon servers.</p>
<p dir="auto">This was reported long time ago. Thank you for patience until now.</p>
<h2 dir="auto">Next release</h2>
<p dir="auto">We decided to release the next version v0.7.0.</p>
<p dir="auto">The primary reason is that sometimes issues about federation with Mastodon are reported. We didn’t see detailed logs but current edge version of Mastodon requires signing some HTTP headers and Plume v0.6.0 doesn’t. The next version includes the fix for this problem.</p>
<p dir="auto">Of course, we think frequent release is good, though it’s not easy for us. I hope we could develop more rapidly and release more often.</p>
<h2 dir="auto">Request for translation</h2>
<p dir="auto">As said above, we will release the next version. Until Apr. 25, we have translation term. You may translate Plume UIs on <a href="https://crowdin.com/project/plume" rel="noopener noreferrer">our Crowdin project</a>. Two languages were added: Sinhala and Urdu. Translations for them are welcome as well as existing langs.</p>
<p dir="auto">See <a href="https://docs.joinplu.me/contribute/translations/" rel="noopener noreferrer">our translation page</a> for details.</p>
<hr>
<p dir="auto">I’m aware some issues are remaining on Gitea and GitHub. Rust, a programing language in Plume is written, is getting more popular. Contributing to Rust is a chance to learn Rust :) Get involved if you’re intersted!</p>
]]><![CDATA[Plume Development 2021-03-29]]>https://fediverse.blog/~/PlumeDev/plume-development-2021-03-29/2021-03-29T16:01:41.029903+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-03-29T16:01:41.029903+00:00<![CDATA[<p dir="auto">Hi, I came back! And I confirmed questions from you. I should have answered them at Gitea, GitHub and Matrix room, but if you have not replied yet, mention me again.</p>
<p dir="auto">Now I’m enjoying development of Plume again.</p>
<h2 dir="auto">Bug fix to prevent duplicate posts on timeline</h2>
<p dir="auto"><a href="https://riker.rs/" rel="noopener noreferrer">Riker</a> actors including search actor and remote fetch actor have executed their tasks many times ever. I fixed it so that they execute tasks only once.</p>
<h2 dir="auto">Upserting remote posts and images</h2>
<p dir="auto">Plume have tried to save duplicated posts when it fetches remote instance’s post ever. Actually database’s constraint have prevented the duplication and Plume have logged</p>
<blockquote dir="auto">
<p dir="auto">thread ‘pool-thread-<a href="//fediverse.blog/tag/5" title="5" rel="noopener noreferrer">#5</a>’ panicked at ‘Article from remote user couldn’t be saved: Db(DatabaseError(UniqueViolation, “duplicate key value violates unique constraint "post_unique_slug"”))’</p>
</blockquote>
<p dir="auto">Now it upserts (updates or inserts) remote posts into local database and the log doesn’t appear.</p>
<p dir="auto">This fix requires database migration. Run</p>
<pre><code dir="auto">plm migration run
</code></pre>
<p dir="auto">before run the latest version.</p>
<h2 dir="auto">Command to remove duplicated images</h2>
<p dir="auto">Image explosion problem (see posts of <a href="https://fediverse.blog/%7E/PlumeDev/plume-development-2021-02-15" rel="noopener noreferrer">2021-02-15</a> and <a href="https://fediverse.blog/%7E/PlumeDev/plume-development-2021-02-22" rel="noopener noreferrer">2021-02-22</a>) was stopped but images have been remaining. I created a command to remove some of them. How to use it is:</p>
<h3 dir="auto">For poeple who build Plume themselves</h3>
<p dir="auto">Assuming you use revision <a href="https://git.joinplu.me/Plume/Plume/commit/fe92d95f6c8bb130bf9e64dbb8523130418cdae1" rel="noopener noreferrer">fe92d95f6c</a> or earlier.</p>
<ol dir="auto">
<li dir="auto">Back up database and media</li>
<li dir="auto">Run <code>git fetch</code></li>
<li dir="auto">Check out <a href="https://git.joinplu.me/Plume/Plume/src/branch/remove-dup-images" rel="noopener noreferrer">remove-dup-images</a> branch</li>
<li dir="auto">Run migration: <code>cargo run -p plume-cli --bin=plm -- migration run</code></li>
<li dir="auto">Run the command: <code>cargo run -p plume-cli --bin=remove-dup-images</code></li>
</ol>
<h3 dir="auto">For Docker users</h3>
<ol dir="auto">
<li dir="auto">Back up database and media</li>
<li dir="auto">Pull <a href="https://hub.docker.com/layers/143294901/plumeorg/plume/remove-dup-images/images/sha256-eb6cf7ebfe1d55ab6d9f832a999bf42294f03bd59b0d2db50ef2634e80f37313?context=explore" rel="noopener noreferrer">remove-dup-images</a> image: <code>docker pull plumeorg/plume:remove-dup-images</code></li>
<li dir="auto">Move to directory including <code>.env</code> for Plume</li>
<li dir="auto">Run migration: <code>docker exec $CONTAINER plm migration run</code></li>
<li dir="auto">Run the command: <code>docker-compose exec plume remove-dup-images</code></li>
</ol>
<p dir="auto">I don’t indend to include <code>remove-dup-image</code> command into stable release. This is a problem occuring between v0.6.0 and the next release. Stable releases are not affected from it.</p>
<p dir="auto">Some other bugs were fixed, too.</p>
<h2 dir="auto">Contribution wanted!</h2>
<p dir="auto">Some poeple might think to contribute to Plume but have no idea what to do. I introduce a thing to contribute easily.</p>
<p dir="auto"><a href="https://github.com/pullopen" rel="noopener noreferrer">@pullopen</a> reported that Plume doesn’t show all posts at each author’s page. They should be shown with pagination. A pagination is very popular pattern of web development. Therefore you can contribute to <a href="https://github.com/Plume-org/Plume/issues/847" rel="noopener noreferrer">this issue</a> if you can write Rust and have experience of web development.</p>
<hr>
<p dir="auto">I have felt a modecum of relief by releasing <code>remove-dup-image</code>. Next thing to do is preparing v0.7.0, I think.</p>
]]><![CDATA[Plume Development 2021-02-22]]>https://fediverse.blog/~/PlumeDev/plume-development-2021-02-22/2021-02-22T15:50:43.402171+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-02-22T15:50:43.402171+00:00<![CDATA[<h2 dir="auto">Image explosion problem</h2>
<p dir="auto">The image explosion problem I mentioned in <a href="https://fediverse.blog/%7E/PlumeDev/plume-development-2021-02-15" rel="noopener noreferrer">last post</a> needs two steps to fix:</p>
<ol dir="auto">
<li dir="auto">Making Plume stops to save images infinitely, then</li>
<li dir="auto">Removing existing duplicated images</li>
</ol>
<p dir="auto">I achieved the first last week and you can get the fixed version from Gitea’s main branch or Docker latest image. I will work on the latter this week.</p>
<h2 dir="auto">Documentation improvement</h2>
<p dir="auto"><a href="https://git.joinplu.me/Marius" rel="noopener noreferrer">@Marius</a> fixed the presentation problem that preformatted text in <a href="https://docs.joinplu.me/" rel="noopener noreferrer">documentation site</a> sometimes too long and you see horizontal scroll bar. Additinally, he removed build env’s dependency on Node.js. Thanks.</p>
]]><![CDATA[Plume Development 2021-02-15]]>https://fediverse.blog/~/PlumeDev/plume-development-2021-02-15/2021-02-15T15:30:11.145345+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-02-15T15:30:11.145345+00:00<![CDATA[<h2 dir="auto">New posts reach to remote instances</h2>
<p dir="auto">Now some instances of Plume, Mastodon and so on receive Plume’s new posts, and others don’t. The cause of this is that some attempts to notify publishing timed out when Plume instance federates with many instances. That was fixed and now (at unreleased edge version) all instances should receive new posts.</p>
<h2 dir="auto">Menu on iOS works</h2>
<p dir="auto">The problem that nemu doesn’t open on iOS was finally fixed.</p>
<p dir="auto">During the fix, I found that WASM also doesn’t work. <a href="https://github.com/koute/cargo-web" rel="noopener noreferrer">cargo-web</a>, which is used to build WASM, doesn’t work well for newer Rust and it is not maintained now. So we switched WASM builder to <a href="https://rustwasm.github.io/wasm-pack/installer/" rel="noopener noreferrer">wasm-pack</a>, therefore build process slightly changed.
Because of this, you need use wasm-pack instead of cargo-web. The documentation was also updated: <a href="https://docs.joinplu.me/installation/with/source-code/" rel="noopener noreferrer">Compiling from source</a></p>
<h2 dir="auto">Images became links</h2>
<p dir="auto">I made images in post card links.</p>
<p dir="auto"><img src="https://i.gyazo.com/c6049b8115eb60c80b306e17e744e3df.png" alt="https://i.gyazo.com/c6049b8115eb60c80b306e17e744e3df.png"></p>
<p dir="auto">I often tap those images and get remembered that those are not links every time. Now they behave like my expectation!</p>
<h2 dir="auto">Image explosion</h2>
<p dir="auto">Marius reported that his instance has too many images even though it has a few posts. He and I started investigation and it seems related to federation.</p>
<h2 dir="auto">Refactoring</h2>
<p dir="auto">I would like to do some refactorings.</p>
<ul dir="auto">
<li dir="auto">There are many <code>unwrap()</code> and <code>expect()</code> in our Rust code. They bring up hidden problems. I want to rewrite them to error structure.</li>
<li dir="auto">Actors are in <code>plume-models</code> now. I think they should be in <code>plume</code> because they are service objects such as Rocket instance and mailer rather than models.</li>
<li dir="auto">I want to extract more actors including mailer, inbox handling, sending activities to other instances and so on. It must provide well perspective of architecture.</li>
</ul>
<h2 dir="auto">Near future work: user email confirmation</h2>
<p dir="auto">I started working on email confirmation feature as explained at <a href="https://git.joinplu.me/Plume/Plume/issues/636" rel="noopener noreferrer">#636</a>.</p>
<hr>
<p dir="auto">I’m also thinking about the next release. I set the milestone v0.7.0 with well communitation with Mastodon, introducing actor system and implementing multi-author blog feature. The last one is difficult to develop soon. So the next release will inlcude the former two improvements and some bug fixes.</p>
]]><![CDATA[Plume Development 2021-02-08]]>https://fediverse.blog/~/PlumeDev/plume-development-2021-02-08/2021-02-08T13:33:34.952281+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-02-08T13:33:34.952281+00:00<![CDATA[<p dir="auto">Today, there’re few things to write here.</p>
<h2 dir="auto">Interoperability with Mastodon</h2>
<p dir="auto">This is internal improvements. In the future, Mastodon requires <code>(request-target)</code> in requests’ signature HTTP header. I added it.</p>
<p dir="auto">Now I’m working on a problem that when publishing a post, it doesn’t reach some instances including Plume, Mastodon and so on. I had a hypothesis and could verify it’s correct. So, I think I will fix it this week.</p>
<hr>
<p dir="auto">Period! Have fun with reading, interacting with and writing blog articles!</p>
]]><![CDATA[Plume Development 2021-02-01]]>https://fediverse.blog/~/PlumeDev/plume-development-2021-02-01/2021-02-01T14:28:07.491509+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-02-01T14:28:07.491509+00:00<![CDATA[<p dir="auto">Last week I was busy at work and couldn’t write code well. But some people contributed to Plume!</p>
<h2 dir="auto">Mobile menu issue</h2>
<p dir="auto"><a href="https://github.com/marek-lach" rel="noopener noreferrer">@marek-lach</a> continues to work on <a href="https://github.com/Plume-org/Plume/pull/844" rel="noopener noreferrer">mobile menu issue</a> that it doen’t open on iOS. <a href="https://github.com/iamdoubz" rel="noopener noreferrer">@iamdoubz</a> offered to prepare test environment for Marek!</p>
<h2 dir="auto">Performance improvement for user details page</h2>
<p dir="auto">I’ve been aware that user details page such as <a href="https://blogs.kitaitimakoto.net/@/KitaitiMakoto" rel="noopener noreferrer">https://blogs.kitaitimakoto.net/@/KitaitiMakoto</a> sometimes very slow (I linked to my instance because this fix is not applied to fediverse.blog yet). Not only that, the slowness affects whole instance performance. I found the cause (database connection pool is exhausted) and fixed it.</p>
<p dir="auto"><a href="https://riker.rs/" rel="noopener noreferrer">Riker</a>’s actor system and previous attempts on Gitea helped me very well. I feel I stand on top of <a href="https://scholar.social/@meena" rel="noopener noreferrer">@meena</a>’s great works.</p>
<h2 dir="auto">Static build attempting</h2>
<p dir="auto"><a href="https://git.joinplu.me/pwFoo" rel="noopener noreferrer">@pwFoo</a>’s <a href="https://git.joinplu.me/Plume/Plume/issues/871" rel="noopener noreferrer">achieved to build an Alpine Linux image including static Plume binaries</a>. Remaining thing to do seems making it work with PostgreSQL.</p>
<h2 dir="auto">Remote iteraction issue</h2>
<p dir="auto"><a href="https://git.joinplu.me/amreo" rel="noopener noreferrer">@amreo</a> reported <a href="https://git.joinplu.me/Plume/Plume/issues/890" rel="noopener noreferrer">a case that remote interaction (liking and boosting posts on remote instance, and following users on remote instance) fails</a>. His detailed steps to reproduce helps me understand what’s happening without runnig code and jump to thinking how to fix. Detailed information is so appriciated although sometimes providing it is hard.</p>
<h2 dir="auto">Removal of Python from build script</h2>
<p dir="auto"><a href="https://git.joinplu.me/pwFoo" rel="noopener noreferrer">@pwFoo</a> found Python script is used to build Docker image and an base image to build musl binaries doesn’t include Python in it. Python is used to detect CPU architecture. <a href="https://git.joinplu.me/pwFoo" rel="noopener noreferrer">@pwFoo</a> is trying to remove Python dependency and use some system commands but they and I don’t know about CPUs well. If there’s someone who can help us, visit <a href="https://git.joinplu.me/Plume/Plume/issues/887" rel="noopener noreferrer">#887</a>.</p>
<hr>
<p dir="auto">I’m aware that many poeple use Plume and report idea and issues. Thank you all.</p>
]]><![CDATA[Plume Development 2021-01-25]]>https://fediverse.blog/~/PlumeDev/plume-development-2021-01-25/2021-01-25T14:47:57.412604+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-01-25T14:47:57.412604+00:00<![CDATA[<h2 dir="auto">New features</h2>
<p dir="auto">I finished putting edit links to the next of post titles.</p>
<p dir="auto"><img src="https://i.gyazo.com/4ea25f485f2452f85934cd3de3438c7a.png" alt="https://i.gyazo.com/4ea25f485f2452f85934cd3de3438c7a.png"></p>
<p dir="auto">I think this reduces authors’ frustration that they have to click many times to edit posts. But I’m not sure its design is good. If there’s better place for the links, tell me or send a pull request!</p>
<p dir="auto">You can try it using latest <a href="https://hub.docker.com/r/plumeorg/plume" rel="noopener noreferrer">Docker image</a>, building <a href="https://git.joinplu.me/Plume/Plume" rel="noopener noreferrer">repo’s main branch</a> or on <a href="https://blogs.kitaitimakoto.net/" rel="noopener noreferrer">my instance</a>.</p>
<h2 dir="auto">Work in progress</h2>
<p dir="auto">After <a href="https://fediverse.blog/%7E/PlumeDev/plume-development-2021-01-18" rel="noopener noreferrer">the previous post</a>, <a href="https://github.com/iamdoubz" rel="noopener noreferrer">@iamdoubz</a> reported an issue on menu (thanks!) and <a href="https://github.com/marek-lach" rel="noopener noreferrer">@marek-lach</a> is working on it. It became clear that we need testing environement for the issue.</p>
<h2 dir="auto">Working on code</h2>
<p dir="auto"><a href="https://git.joinplu.me/pwFoo" rel="noopener noreferrer">@pwFoo</a> finally <a href="https://git.joinplu.me/Plume/Plume/issues/871#issuecomment-5059" rel="noopener noreferrer">succeeded to build Docker image including Plume’s musl builds</a>! That’s great though they’re pointing there are some more works are needed.</p>
<p dir="auto">During developing more edit links, I added tests for a request handler. This is the first tests for handlers. As I learned to how to do it, I became able to test Plume’s behaviors.</p>
<p dir="auto">On the other hand, I feel necessity of structuring test fixtures. Advices (or pull requests ;) ) are appreciated.</p>
<p dir="auto">I added logging settings to <code>.env.sample</code> to suppress logs from external libraries. Logs are important. I can investigate some feredation issues with logs.</p>
<p dir="auto"><a href="//fediverse.blog/@/Ana/" title="Ana" rel="noopener noreferrer">@Ana</a> filed an issue that Mastodon will verify requests from other instances more strictly in the near future and Plume requires some modification. I’m working on it. Implementation is briefly finished but I’m struggling to run a Mastodon instance on my machine to check it. At first, I ran Mastodon by Docker Compose but after some DNS problems I decided to run it on host machine.</p>
<h2 dir="auto">Others</h2>
<p dir="auto">There was <a href="https://matrix.to/#/!EQCycwwoFqVhWztkfh:disroot.org/$16109025711009waCZL:is.nota.live?via=disroot.org&via=matrix.org&via=feneas.org" rel="noopener noreferrer">a question about backing up and restoring Plume’s data in Matrix room</a>. Daniel answered with a great guide.</p>
<p dir="auto"><img src="https://i.gyazo.com/9cd311eb6148301443b0afbd43ceffc3.png" alt="https://i.gyazo.com/9cd311eb6148301443b0afbd43ceffc3.png"></p>
<p dir="auto">I feel we should write more guide but I find myself writing code rather than documentation…</p>
<hr>
<p dir="auto">Some people reported feature requests and issues. They’re appreciated. Thank you very much!</p>
]]><![CDATA[Plume Development 2021-01-18]]>https://fediverse.blog/~/PlumeDev/plume-development-2021-01-18/2021-01-18T09:31:23.701105+00:00KitaitiMakotohttps://fediverse.blog/@/KitaitiMakoto/2021-01-18T09:31:23.701105+00:00<![CDATA[<p dir="auto">Since <a href="https://fediverse.blog/%7E/PlumeDev/plume-0.6.0-is-out" rel="noopener noreferrer">previous release 0.6.0</a>, we added serveral improvements to Plume. You can try them by checking out latest <code>main</code> branch or pulling a docker image <code>plumeorg/plume:latest</code>. Here are some of them!</p>
<h2 dir="auto">Left to Right block in Right to Left article</h2>
<p dir="auto">According to <a href="//fediverse.blog/@/ahangarha/" title="ahangarha" rel="noopener noreferrer">@ahangarha</a>, it’s natural to read code blocks left-to-right in right-to-left documents in Persian. <a href="//fediverse.blog/@/FDB_hiroshima/" title="FDB_hiroshima" rel="noopener noreferrer">@FDB_hiroshima</a> added <code>dir="auto"</code> HTML attribute to make it work.</p>
<p dir="auto"><img src="https://i.gyazo.com/8bb4c002492c49f8acfbf16fb7731436.png" alt="https://i.gyazo.com/8bb4c002492c49f8acfbf16fb7731436.png"></p>
<p dir="auto">This improvement is applied to this fediverse.blog instance.</p>
<h2 dir="auto">More language</h2>
<p dir="auto">By <a href="https://github.com/Plume-org/Plume/issues/830" rel="noopener noreferrer">an issue</a> by <a href="https://github.com/pullopen" rel="noopener noreferrer">@pullopen</a>, I found Chinese translations were not embedded into Plume binary. I added translations for languages below:</p>
<ul dir="auto">
<li dir="auto">Afrikaans</li>
<li dir="auto">Welsh</li>
<li dir="auto">Danish</li>
<li dir="auto">Greek</li>
<li dir="auto">Finnish</li>
<li dir="auto">Hebrew</li>
<li dir="auto">Hungarian</li>
<li dir="auto">Korean</li>
<li dir="auto">Dutch</li>
<li dir="auto">Norwegian</li>
<li dir="auto">Santali</li>
<li dir="auto">Sinhala</li>
<li dir="auto">Slovak</li>
<li dir="auto">Slovenian</li>
<li dir="auto">Turkish</li>
<li dir="auto">Ukrainian</li>
<li dir="auto">Vietnamese</li>
<li dir="auto">Chinese</li>
</ul>
<p dir="auto">Though some langs don’t have translations actually, I added all langs registered on Crowdin, a translation platform we use.</p>
<h2 dir="auto">Bug fix about remote liking, boosting and following</h2>
<p dir="auto">You can sometimes neither like nor boost articles, nor follow someone on remote instances now. This happen when target article’s title or writer’s name includes non-ASCII characters. This problem will be fixed in the next release.</p>
<p dir="auto">This fix is applied to this fediverse.blog instance.</p>
<h2 dir="auto">Menu improvement for iOS</h2>
<p dir="auto"><a href="https://github.com/marek-lach" rel="noopener noreferrer">@marek-lach</a> fixed an issue that menu is not opened even though you tap the menu icon.</p>
<p dir="auto">I have neither iPhone, iPad nor macOS. I’m so glad if you try it and send feedbacks, though surely I will test it before next release (should be 0.6.1 or 0.7.0).</p>
<h2 dir="auto">Riker actor system library</h2>
<p dir="auto">This was a long time refactoring. <a href="https://riker.rs/" rel="noopener noreferrer">Riker</a> is an actor system library for Rust. By actor model, we can get simple perspective of system archtecture keeping it easy to write asynchronous tasks. This should make Plume more stable and performant.</p>
<p dir="auto"><a href="https://scholar.social/@meena" rel="noopener noreferrer">@meena</a> repeated trial & error many times, and eventually wrote a design doc. That’s a great work. Thank you.</p>
<h2 dir="auto">Proxy support</h2>
<p dir="auto"><a href="https://git.joinplu.me/dr-bonez" rel="noopener noreferrer">@dr-bonez</a> sended <a href="https://git.joinplu.me/Plume/Plume/pulls/829" rel="noopener noreferrer">a pull request to introduce proxy support</a> and it was merged. You can run Plume and make it federate with the fediverse behind a proxy server.</p>
<h2 dir="auto">Logging fundamental</h2>
<p dir="auto">I added <code>tracing</code> logging library. I intend to use it for investigation of federation problems in the near future. We are often reported federation issues. Fixing it is so hard if we cannot reproduce the problem on our development environment. At that time, we need record logs on production environment, and <code>tracing</code> should be a fundamental to help us well.</p>
<h2 dir="auto">Musl build effort</h2>
<p dir="auto">This is not our improvement, but what <a href="https://git.joinplu.me/pwFoo" rel="noopener noreferrer">@pwFoo</a> is attempting. Musl is a alternate libc for static link. By building Plume with it, you can get more portable binary and run Plume on variuos machines including Alpine Linux. See <a href="https://git.joinplu.me/Plume/Plume/issues/871" rel="noopener noreferrer">the issue</a> if you’re interested in it.</p>
<h2 dir="auto">Rust version update</h2>
<p dir="auto">We updated Rust version to <code>nightly-2021-01-15</code>.</p>
<p dir="auto">Some day suddenly building Docker image on Docker hub failed. To fix it, we need to upgrade some crates and update Rust version. If you build Plume from source code, newer Rust will be donwloaded automatically according to <code>rust-toolchain</code> file.</p>
<h2 dir="auto">Milestone 0.7.0</h2>
<p dir="auto">I create the <a href="https://git.joinplu.me/Plume/Plume/milestone/11" rel="noopener noreferrer">0.7.0 milestone</a> on our Gitea instance and added some issues there. Those are not promises but useful for me to get concentrated on current task without keeping other tasks in my mind. In addition, I think some of you have wanted to know what is being developed now, and the milestone provides the information.</p>
<h2 dir="auto">Edit links at the side of article title</h2>
<p dir="auto">I started adding edit links to the site of article title in home and blog pages.</p>
<p dir="auto"><img src="https://i.gyazo.com/4ea25f485f2452f85934cd3de3438c7a.png" alt="https://i.gyazo.com/4ea25f485f2452f85934cd3de3438c7a.png"></p>
<p dir="auto">Now you need click links three times to reach to draft’s edit page:</p>
<ol dir="auto">
<li dir="auto">visit dashboard</li>
<li dir="auto">visit a draft article</li>
<li dir="auto">tap an edit link</li>
</ol>
<p dir="auto">This improvement reduce it:</p>
<ol dir="auto">
<li dir="auto">just tap an edit link in home page</li>
</ol>
<p dir="auto">or,</p>
<ol dir="auto">
<li dir="auto">visit dashboard</li>
<li dir="auto">tap an edit link at the side of article title</li>
</ol>
<p dir="auto">I’m sure it’s useful to put edit links in dashboard and blog pages. But I’m not sure whether putting them in home page is nice. Feedbacks are welcome!</p>
]]>