Skip to content

Month: December 2018

Amore 0.1

If you’re so inclined, you can get version 0.1 of Amore here.

The only thing that’s missing from what I hoped to include in this version is the ability of users to delete or edit their own posts. It requires some restructuring of the code dealing with headers and cookies, so I opted to kick it down the road to version 0.2.

Amore 0.1 is very rudimentary and doesn’t federate yet, but it’s a start and it works at a very basic level. For v0.1, I’ll call that a success.

The road to Amore v0.1

Despite some fits and starts with coding Amore, I’m making progress towards version 0.1. I already see a bunch of things I want to change in future versions, but alpha software is a bit like a rough draft. It isn’t meant to be pretty or bug free, but should have the primary functions and mostly work.

Right now, site admins can set it up for open or closed registrations, users can create posts, and their posts will be listed on their profile page. Amore can create files for Nodeinfo, though I think it may need some work, since I’m not sure it’s being sent out as application/json which is required by the Nodeinfo protocol. Each post has it’s own page viewable by anyone, but I still have to create user pages that also can be viewed by anyone. I’m toying with the idea of having a list of users, similar to Explore on Mastodon, but I’m not sure that will make version 0.1.

Still to be done is showing the most recent posts on the front page, users being able to create and edit their profiles, having the profiles viewable by anyone, and giving users the ability to delete or edit their own posts. When those features are done, I think I’ll call it version 0.1 and start refactoring and working on version 0.2 features and improvements.

Protocols

There are a lot of different protocols on the web (XKCD sums it up nicely). Basically, every big company has their own way of doing things making stuff easier to find, or putting stuff in context. The three protocols below are encouraged by different major tech companies, though they all kind of do the same thing.

  • Open Graph protocol: http://ogp.me/
  • Microformats: http://microformats.org/
  • Schema: https://schema.org/

The protocols below are used by different projects on the Fediverse.
OStatus protocol: https://www.w3.org/community/ostatus/wiki/Main_Page
ActivityPub: https://www.w3.org/TR/activitypub/
Zot: https://project.hubzilla.org/help/en/developer/zot_protocol
Diaspora: https://diaspora.github.io/diaspora_federation/

OStatus is an older protocol and is mainly used by older projects on the Fediverse, such as GnuSocial.

ActivityPub is a newer protocol which has been adopted as a standard by the W3C, giving it some authority over the others. It’s mainly used by newer projects, such as Misskey, and it’s the one I’ll be focusing on in Amore.

Zot was developed by the Hubzilla project, but is also used by Osada.

The diaspora* protocol was developed by the diaspora* project, but is also implemented in Friendica.

Some Fediverse projects, such as Mastodon and Pleroma, implement multiple protocols, usually to include OStatus, ActivityPub, or both.

Rabbit holes

Several years go I used to get sucked into the rabbit hole that is Wikipedia. I used to visit its Main Page, then click on some random link, go to an article, and get caught in this loop of clicking random links and reading random articles. It was exciting and it felt like I was absorbing all this valuable information when most of it was, in fact, useless.

Lately, my latest rabbit hole has been to go to fediverse.network or the-federation.info, and find random Fediverse instances to visit. I imagine this is what it felt like when Facebook and Twitter were still new and shiny and trusted by their users.

For what it’s worth, Mastodon runs more than 70% of all Fediverse instances.

Cool feature of the day: Some Mastodon instances have public membership lists, like this one at mastodon.social.

That’s Amore

When the site you visit first
Is on the Fediverse,
That’s Amore!

It’s almost winter break, so it almost goes without saying that I’ve been thinking about a project to keep me from getting bored. Over the past month or so I’ve been looking at the Fediverse and the projects associated with it. It sort of started with Twitter and Facebook clones, but it’s really taken off over the past couple of years due to Mastodon. Since finding about the Fediverse, and after trying and failing to get along with GnuSocial, the idea of creating my own version started taking hold.

But that would be too simple. Since there are already a bunch of applications that play in the federated universe, surely I could find one that suited my needs. Alas, that’s not the case. None of the applications I looked at had simple installation instructions. Some of them even required specific usernames on the server in order to run (Yes, PeerTube, I’m giving you the evil eye). Ideally, I want a web-based application that can be installed and running in under five minutes. While I’m willing to take an hour or two if I think the software is worth it, most Fediverse friendly applications don’t seem worth the effort.

Not finding an admin-friendly application, I decided to create Amore, an open-source, Fediverse friendly, microblogging and dating application written in PHP, using MySQL/MariaDB. PHP and MySQL are at the backbone of millions of websites, including Facebook, Wikipedia, Wikia, and any website running WordPress, so it’s only natural to expect to find a web-based application that uses them. Applications that run other languages or use other databases create hurdles to use.

With regard to social media, I like Twitter a lot. I’m on it nearly every day. I like the character limit, since it forces people to get to the point. Plus, it’s easier to be witty in small doses.

If all of this wasn’t difficult enough, I also want the software to function as a dating site, though the implementation will be left up the individual website owners. I’ve tried a lot of dating apps and websites, and I’m usually disappointed by them. I understand, most dating websites only exist to make money for the owners. If there’s no profit motive, the website/app wouldn’t exist. In contrast, most Fediverse websites are run without ads, either relying on donations or being run out of someone’s pocket. To me, a dating website that runs without ads, or without requiring paid memberships would be great, but it leads to a potential problem.

An ideal dating website/app has millions of active users all around the globe. However, unless it’s owned by a billionaire, it’s hard to imagine it getting by without ads or paid memberships. Millions of users means a lot of servers, a lot of bandwidth, and a lot of money to keep running.

I’m hoping that the decentralized nature of the Fediverse – combined with easy to install, setup, and use – will encourage website admins to consider running Amore, preferably without ads or the need for paid memberships.

Despite all that, Amore is still very much alpha software. It’s not suitable to be run on a production website. It lacks many features found on most CMS software, let alone any Fediverse apps, or dating applications.