🐕u200d🦺 Epicyon, Fediverse platform lasting 2 days
By OctoSpacc
Caution
The content of this page has been entirely machine-translated into English, from Italiano. Therefore, it might contain any kind of errors.
By now, we know, the more time passes, the more I end up exploring ever more minute details of the Fediverse.
Today I'll tell you a little about a platform of this world that is quite unknown, and which had good premises, but turned out to be a hole in the water: Epicyon strong>.
Before starting, however, let's see what a desperate situation I ended up in.
5 weeks ago I had finally installed my instance of Misskey, to date a highly respectable microblogging platform in the ActivityPub panorama, which has been slowly gaining more and more in recent times users.
One of the reasons why Misskey is growing is certainly that it is lighter than Mastodon, and this is also why I initially preferred its installation. Alas, fate still wanted to mistreat me, deciding to let everything end in a big fiasco (with a small tasting one first).
Without going into too much detail - anyone who thinks they want to know can read my complaints about Mastodon in the days of Thursday 1 and Tuesday 13 (è clearly not a coincidence...) (but the good discussion started 2 days after) of this December, or wait for an article that maybe I will write - from the fateful day until December 19th I was again without an instance my my mine. Again without power, since my kingdom was reduced to ashes.
After this entire week, in which I tried and tried again to get my server back up and running, failing miserably, I clearly understood that it was needed > a reconfiguration from scratch, preferably with some lighter software than Misskey.
It was at this point that I said to myself "yes, let's try this Epicyon; what could possibly go wrong?". Eh eh, what...
A look at Epicyon
Epicyon I discovered it weeks ago, totally by chance, while I was looking for something, I don't remember what , on the Web.
That list of plus points that appears on the main page of the site immediately catches my attention: a technology stack that isn't flashy or used only because it's trendy, with little complexity strong> server side (and therefore requiring few resources there), even with zero client-side JavaScript (so the application weighs virtually nothing), suitable for installation on single-board computer, also designed for browser with terminal interface... the premises were good >.
The advantages of low-scale technology were immediately showcased by this little program: the installation amounted to installing some dependencies from apt, downloading the sources from the repository, and creating the configurations for the reverse proxy (Nginx) and the boot system (systemd).
Absolutely zero problems along the way; the trouble, in fact, came later!
I created my accounts - first the "sysadmin" one, which holds the administration permissions and which I use to write as an instance administrator, and then the personal one - as I begin to orient myself in the application, several minor problems become aware of my presence and, like spirits, one at a time begin to manifest.
The user interface
Let's start with theinterface, which is the first thing you deal with when using any application; well, it's really strange!
Once you learn it it's not difficult, but it has certain things that seem designed to cause confusion.
On your profile page you click the banner (which wastes space, I feel like saying, compared to a small button) at the top of the home page.
Only from the profile page can you then open the settings of the account, which are mixed with those of instance administration without a clear division.1
On the main screen not all subsections (including specific views for message flows) are visible, you need to click a button to show all the buttons.
Questionable choices.
This doesn't seem to be the intent at all, but I like to think that this is a point in favor, because it performs an artificial selection of the users: those Twitter refugees, who months ago (now the situation has calmed down) arrived on Mastodon to behave badly - publishing public messages like "ooo but how the fuck do you use this thing?", or " what a shitty social network, you don't understand shit", and I won't report anything else - they won't seek refuge even by mistake from what is "more than a dog" (this is the etymology of the name of the platform, according to Wikipedia).
Graphic customization
One of the things I was looking for most in the settings was the theme configuration.
Initially I only found the color customization and text size options of the applied theme, but luckily that wasn't all: it was a bit hidden, but in the end I found the option to switch to a completely different template.
In fact, I didn't like the default theme very much, but I found some nice ones among those others already included. My favorite is called "Pixel", and offers a view that appears relaxing to me, with its backgrounds of a pseudo violet -lavender (#9ba0d4
) and the text shown with a particular font >, with characters made up of small squares put together (indeed, to simulate clearly visible pixels). The effect it has is interesting, because it is evidently a theme that cannot be classified either as light or dark; exists in its category. Or perhaps it can be defined as light, because the text is black, then the background is necessarily light by contrast. Oh well, I don't care: the fundamental point is that, for me, it's really beautiful.
Another theme that caught my attention was "LCD", which simulates an old monochrome LCD screen with a greenish background. I appreciate it very much on an artistic level, but I just can't use it, it's too heavy on the eyes using a modern backlit screen!
It is a pity however, in my opinion, that the changes to the graphics are applied at instance level, and therefore reserved only < strong>to administrators (to those with the "Artist" rank, precisely). Other platforms, such as Friendica and Misskey, implement themes more flexibly.
Scaling issues
There are also themes that are more suitable for anyone, but unfortunately the graphics of theinterface have an even more serious problem regarding what can fall under unsatisfiable aesthetic desires: scaling poorly strong>.
Perhaps with some of the themes the problem is not too noticeable, but with others the text is often too large, and it happens several times that buttons or icons > are disproportionate or even misaligned.
Testing on an almost full screen (the screen space occupied by browser and operating system elements must therefore be taken into account), on a desktop PC with a 1360x768 monitor, and on a mobile with a 6.2" 9:18 display, I think that padding, even if all in all the interface is OK. The unusability comes when I try slightly more square resolutions, for example by keeping the browser window not completely expanded horizontally on my 16:9 monitor. In this case, I'll let the following video do the talking. Even on my smartphone, things can look ugly , if I turn it horizontally.
<video title=“Video showing scaling at different resolutions, and how it’s too crooked at some, with the “Pixel” theme.” class=“Center” src=“https://sitoctt-assets.octt.eu.org/Media/Epicyon-Dec-2022/UI-Scaling-Bug-Pixel.webm” controls=“true” muted=“true” loop=“true” autoplay =“true”>Video showing scaling at different resolutions, and how it’s too crooked at some, with the “Pixel” theme.
Getting to the heart of it
I think it would be easy for me to fix the interface, since it would involve changing the CSS a bit and that's the end of the story.
Before I could even think about it, unfortunately, other problems emerged, this time of functionality.
Trying to publish...
The very first post I sent from the platform, made without touching any options other than the simple text field, seemed fine.
A moment later, as soon as I created the second account, I noticed an appreciable function - which Mastodon introduced only a few months ago, while other popular platforms do not feature at all: the choice of language used in your own post, used to allow other users to filter away public messages that appear in unwanted languages. I then set my new message in Italian, just to, I published... and the message did not appear to me in any timeline. Only on Epicyon, though, and from both of my accounts; on other instances it appeared normally. However, your publications are editable, which is great. Here too we are on a par with Mastodon, but above other federated platforms. Some points may be pros and cons, depending on your point of view. The absence of a federated timeline is a bit inconvenient, because it makes the discovery of new content more difficult, but it's not the end of the world: as on other services, in the home (which here is called "Inbox") arrive the shares of messages from unknown users strong> by the users who follow each other, so every now and then you can discover new profiles from there. The lack of local history, however, will probably be felt if you want to host a server for your group of friends. Well, maybe not even too much: Epicyon seems to be designed to have a few active local users, a dozen at most, and at that point we all simply follow each other. The idea of running a program of this type without any centralized database system, instead having it store all the data as files scattered throughout the system's file system, I also like it a lot conceptually, but it has concrete scalability limits. But basically, when not pushed to the limit, this software really performs as promised. The software didn't promise not to have terrifying bugs, so in fact you can't complain about that, but the few promises it made it kept very well . Oh God, the program actually claims to be in "Production/Stable" status, so this excuse holds up to a certain point... The good things, fortunately, don't end here! Unfortunately, the separation of reactions from appreciation is decidedly not very intelligent. When finding other people's publications through the platform interface, we have just a few fewer limitations compared to what we see on Mastodon. From Epicyon, continuing, there are different modes that can be set for a message. There is no need to explain those in common with the major platforms, but some deserve special attention. One of the key points of Epicyon, at least this is the idea, is made up of its features oriented towards the so-called "sharing economy". Unfortunately - and here we are now starting to notice a trend, with malfunctions - for me to publish the request for something it worked, while trying to post a < strong>offer
It took me a good 10 minutes to understand that no, my account hadn't just crashed, but simply I can't even see my own messages if published in a language not present in the list< /strong> of those accepted by me, which by default is only English. I had to by hand add at least Italian (I added all the languages while I was at it) to the white list.
It's certainly a programming oversight, because this behavior wouldn't make the slightest sense from the point of view of user experience design... but it's not good at all! p>
The main message flows
At the same time, however, the server does not risk having to deal with unmanageable quantities of data traffic over time, which will instead be proportional only to the users' activity on the instance and those directly followed by them.Excellent performance
Who knows what would happen if I tried to set up a project like "Epicyon.uno" or "Epicyon.social"... I imagine a huge disaster.
With htop we can go into details: on my Raspberry Pi 3, in moments of quasi-stall (in which I am not using the application, but the server obviously has tasks to perform), the CPU usage is around 3% (out of a total theoretical maximum of 400%, considering the 4 cores), and the RAM used between 40 and 70 MB (approximately 4.5 to 7.5% of the RAM of a Pi3). The HTML generated by the server, then, is essential, and the client therefore takes just a few moments to receive it.Reactions to posts
I was immediately pleased to notice that the platform allows you to react to messages using emoji, as well as allowing the classic sending of appreciation for the post - the standard "like", so to speak, which here is a heart.
This opinion is not only mine, but also that of the developers of Misskey and, I believe (I have never checked in person) also Pleroma: reacting from there to a message coming from a platform that does not support reactions (like Mastodon) translates into an appreciation received from that other server. On Epicyon, however, reacting to a publication that comes from less feature-rich instances is virtually useless.
On top of all that, I don't think there's even a way to see a list of all the messages you've reacted to; so, goodbye to the idea of using reactions at least as a personal filter of posts read and liked over time.The search
The text search with normal keywords is unfortunately limited to your own messages, but there are other options for other situations: in addition to being able to search by hashtag (which, by the way, the search interface recommends), apparently you can even search by emoji! However, I did not test this additional function, having only noticed it too late.
Finally, you can search for elements relating to the functions of the sharing economy (which I am now getting to): skills, or objects and services.Advanced features
Collaborative economy
It is possible to create posts that describe objects or services that you are looking for or are making available, specifying the relevant category< /strong> and (optionally) a price.
These messages can appear in the timelines dedicated to them, and by default they are not federated; the server admin can specify a list of third-party instances with which to federate this type of post.
On your profile, you can then indicate a list of your skills, with a percentage level.
Mixture of modes
Damn, because here too an indigestible salad has been made: those which are modalities definable as "reception", that is, which determine who the message will reach and how it will be displayed - public, unlisted, followers-only, or direct - are mixed with modes that I can define as "typological", that is, which set the post as normal (containing text and/or attached files), or as a special category.
In practice, this means that you cannot change the privacy level of those special type posts strong>.
If this is perhaps not a problem for the sharing economy functions, which do not even place elements on the user profile page, it could be a problem for the surveys, which are unfortunately implemented as a post type and not as an option additional for normals.
Problems with surveys
The fact that they necessarily have to be public is not the most bizarre thing about the implementation of polls, because there are worse things.
It seems that select (with the dedicated buttons, obviously) one of the available options, and then press save, does not have the same effect in the backend that other platforms have ; you create a response comment (visible as such from other servers), as if you had written the desired option by hand in a new message under the same discussion.
Not only does this screw up the anonymity of the polls as provided by all other applications, but it just doesn't work: that strange response is not added to the vote counters on the poll.
A look at events
In any case, for any type of publication you can optionally set a position (by inserting an OpenStreetMap link - which didn't work at all for me) and a date strong>, both of which are potentially useful if you want to report an event, something Epicyon expects.
Dated posts should also show up in the calendar section of the app. I didn't check whether at least this thing worked, unfortunately, but I tried the "reminder" message, and it works: a message of this type comes from your account, like >direct, at the appointed time; in addition to appearing in the calendar, it is accessible in a button (highlighted with an alternative color) that appears in the navigation bar at the top of the home page.
Non-micro blogging
The last mode that can be set for posts is that of "article", therefore having a title and no strict limit for the body ; something foreseen by ActivityPub, suitable for more classic blogging, and which has already been observed around for some time with WriteFreely, Plume, Lemmy, or Friendica.
Articles should end up on your profile page... but that doesn't happen for me. The functionality is broken and the only way to find articles, your own or those of other instance users, is to go through for the dedicated timeline.
Ah, in addition to this here, which is actually a timeline with special visualization, there is also one that puts into >show only multimedia messages, a bit like it was Pixelfed.
Instance-level contents
These special views here can, among other things, be set as instance mode, in a way that makes navigation of local posts possible to those who visit the site without logging in.
Actually, there is also a third option for the instance type: "news". This highlights the news arriving from the flows set by the server administrators.
That's right, in this sense Epicyon provides particularly interesting tools: the news, set by RSS sources, appear in a sidebar on desktop. Based on further configuration they can be subject to filters, which automatically add hashtag or content warnings /em>) based on the text.
The server also displays a feed that aggregates all the news that it gradually downloads.
On the opposite side, still on desktop, there is a further bar, which makes external links conveniently available. Some point to information or documentation of the instance, while others can be set by administrators and point to any URL.
Loads of mess!
So far, all in all, this piece of software didn't seem bad at all: with some small inconveniences, sure, but no program more complex than a Hello Worldcan never be perfect, and this Epicyon still has some solid points in its favor.
The problem, the big mess, is that the serious problems that exist are enormous. I dare say mastodontic, for a platform whose animal is large, but not elephantine!
There's not much space to discuss here, so I'd rather do a quick overview.
Something about a good part of these errors came out in the server logs, but in a too generic way, and therefore (even if I didn't want to waste too much time on it) ) I couldn't figure out why certain problems occurred.
After a few minutes of sending them, some of your messages may randomly disappear from the instance. They can no longer be found by browsing around, reaching them directly from the link returns a 404 error, but on third-party instances that received them in time they remain visible. Similarly, some messages may disappear from the profile page of another user who is local to your instance, when you go looking for them.
By the law of retaliation, some messages appear as duplicates in certain situations. I've noticed this definitely happens for posts on your profile page (image here 🖼️), where they even split into small groups, but potentially also for any post on the personal timeline if done some actionlike boost.
Speaking of interactions to posts, I have seen that sometimes they may not be successful. I remember perfectly well that it can happen with the reaction function - in one case I had to try a second time to assign one to a message for the action to work - and it seems to me it could happen also with heart and sharing, but I didn't frame these two cases well.
Remaining on interactions, this time with profiles: it is tragic that in some cases* trying to follow some accounts doesn't work > precisely. By pressing "Follow", I sometimes had to wait a few tens of seconds for the user to actually appear in my following list, without any indication from the application; other times, even waiting for hours (days...) or trying again several times didn't help anything. It seems that the problem does not depend on the software the remote instance is running on, so I have no idea why it happens.
There are two different pages that can appear for profiles: one with the view of recent posts (of which I linked a screenshot above), but no options other than follow, and one with several options (of which I leave a image here 🖼️). Sometimes the first one opens, other times the second. It doesn't center the part of the application from which you come to open the screen, and I don't see any way to go from one section to another. The second seems to come up more commonly when you already follow the account you're viewing, but not always. If you want to see the messages of a particular user, but the software has decided not to at that moment, in practice, you attack .
Really strange bug: Misskey accounts appear with an alphanumeric ID instead of the normal username (only the first part - the one that indicates the domain is okay). There are no problems if you try to refer to an account with its real username, because the message arrives (or the search succeeds, if that is the function you are using)... however, if you are by replying to the account in question, the suggested username will be the strange one, which doesn't exist and therefore doesn't work. Even if it didn't break messages, this problem would still be annoying, because it wouldn't allow you to understand at a glance who you're talking to... I can already imagine what it would be like to participate in threads with many users.
Some instance settings are sentient and change state on their own. Sometimes for example, after a server restart, the option that opens new recordings to anyone reactivates by itself. Something also happened regarding the instance mode, which went from standard to "news" without me setting it that way; however, this might not be a bug, maybe some action I did as admin (and which I don't remember, here you go) had this side effect but expected by the developers. We'll never know, but it's scary.
There are some problems with retrieval, and/or excessive caching, of account metadata by third-party instances. I've checked several other servers, running some tests that lead me to some inconclusive conclusions; in particular, regarding the profile photos (the main square one):
- Mastodon, I've tried several instances, completely refuses to see the picture, and puts the elephant placeholder in its place.
- Misskey goes like this: some instances put their placeholder, while others load the banner photo as a profile image (which however I have never set, and therefore I see that Epicyon puts one on its own based on the theme of 'instance; nice surprise!)... I won't ask any questions, go.
- Friendica (of which I was only able to use one instance), however, can see the photo. Friendica, however, is a slightly more advanced software, and internally it uses complex methods to obtain the metadata of many types of Web resources. All in all, it could be a caching problem (who knows if on my server's side, or the others), and maybe not malformed data, but it's still something that doesn't work >.
And now?
The dream of a lightweight but feature-rich ActivityPub server has inexorably collapsed, there is no really nothing else to say. After just seeing the first few problems I thought I wanted to keep Epicyon for at least a week, so as to test it properly, but in the end it started to behave too badly. I had to take it out after just 2 days.
It's really a shame, then, that it proved to be too broken to be realistically usable. For now I have to opt for other software, and maybe I found something good - and this is a story for a next time - but I really hope that Epicyon can in future become usable.
Fortunately, even if at the hands of just one person, therefore slowly, development is progressing at a pace of several commits per day.
Speaking of this, after having done a touch and go look at the sources, I have to say one thing: compared to more established servers, the code of this one It seems to me to be in pretty bad shape. The files are not well divided into folders, there are some that number in the hundreds (or even a thousand!) of kilobytes, and there are huge functions in which loops and controls appear under many, too many levels of indentation.
I wouldn't want to be in the shoes of the person who is maintaining it because, as things are, I fear that fixing this software to make it work properly will not be a simple thing, and it won't take a short time at all...
🏷️ Notes and References
-
Looking at all the available settings can give a good insight into what some of the potential of any platform is. Commenting on them all, especially the ones I haven't tested, would be madness; However, I thought of leaving a screenshot here 🖼️ complete, anyone who wants can at least read the various options on their own. ↩