I’ve often thought that open source social networking and microblogging world is a little bit of a mess.
It all started from the noble premises: People thought Facebook was evil, and had to be replaced with software that honours privacy and data portability. People thought Twitter wasn’t quite as evil, but could do with a little bit more data portability stuff and decentralisation.
And what we ended up with is a giant pile of competing implementations that are having a vibrant dialogue on how all this stuff should work and interoperate. Of course, that’s what the optimists would say. The pessimists would just say that there’s a bunch of programs that sorta kinda do what they were supposed to do, but they’re not Facebook and Twitter killers, and you can’t really trust any of them yet. Or some can. Maybe.
I for one am not entirely pessimistic. Open source world has demonstrated that we can build world-class content management systems like Drupal and blogging engines like Movable Type and (yech) WordPress.
The “Facebook killer” hasn’t materialised yet. One of the earliest pieces of software was DIASPORA*, but that was more like a breeding ground for ideas. There’s been a whole lot of competing ideas and services, but none that have actually shown viability that the blog services have had. So if you want an open source Facebook killer right now, the best bet you have is to just set up a blog using above-mentioned pieces of software, and eschew all those social features.
We may not exactly have a viable Facebook killer yet, but we do have a Twitter alternative: StatusNet. It’s a feature-packed microblog engine that works just fine, interoperates with other social networks (you can make it to crosspost your stuff to Twitter, for example) and supports some groundbreaking federation protocols (OStatus).
Except now it seems that there’s cracks in the foundation. At 1.1.0, it seems that StatusNet software is nearing the end of its life, and the flagship website the software was originally written for, Identi.ca, will be soon switching to the next-generation software, pump.io. The developers never really got some of the stuff working the way they figured it should work, so it’s apparently time for a clean slate.
By perusing the StatusNet readmes, things start to make an awful lot of sense.
MySQL 5.x. The StatusNet database is stored, by default, in a MySQL server. […] The server must support the MyISAM storage engine — the default for most MySQL servers — and the InnoDB storage engine.
*…slowly backs away…*
Yyyyyyeah. Just because it’s a professionally supported software with a highly polished interface doesn’t mean it’s beautifully engineered. It’s 2013. There’s no justification whatsoever for new applications to use MyISAM storage, and there’s been no justification for that for the entire lifespan of StatusNet software.
But still, StatusNet is a piece of software for the LAMP (Linux, Apache, MySQL, Perl/Python/PHP) stack. LAMP stack is very common in cheap webhosting world. Want to take a step away from the hosted cloud applications? Want to make a stand in web world? You can just pay for web space, stick WordPress in, and hey presto, you’re a king of your own website. (Or stick in Drupal, and you’re the enlightened meritocrat. Whatever.)
The beauty of LAMP is that it’s available and easy for webhosts to implement. Entirely unlike the environments that these newfangled social networking implementors are proposing.
So, if you’re not happy with identi.ca’s new software, you can always get a cheap webhost, stick StatusNet there, and off you go. But pump.io, the new software identi.ca will use, is not as easily deployed. It requires Node.js, which is an application server in its own right. It requires NoSQL data storage engines, which you can’t run on your own webhosts that easily.
I was pretty happy when I noticed that INT2000, avarthrel.org’s webhost, actually supports Ruby on Rails out of box. Rails is a trendy web development technology from a few years back - and out of the box, it doesn’t even require all that much from the webhosts. Rails doesn’t require an application server and by default it only supports normal SQL storage. Maybe in 10 years, we’ll see what trendy application servers and what trendy NoSQL engines the normal LAMPish webhosts will support.
As a side note, I just wish to make it clear that I’m not against the development of this kind of “trendy” things. I’m just saying that LAMP-style webhosts are what normal people and small companies use and have access to and can afford, and they don’t do “trendy” things. Everyone can deploy Drupal or Wordpress or whatever, or can find a neighbourhood geek to do that. Setting up other stuff is just not in the radar, or worse, not allowed. Neither of my webhosts (Nebula and INT2000) support custom application servers. At all. I’d need to rent a virtual server to do that, and while it’s more flexible, it’s also both frigging expensive and more headachey because you need to do more things.
And all of the newfangled social networking software depends on this “trendy” bullshit. Application server this, application server that. NoSQL database here, NoSQL database there. I can’t run that. Almost no one else can.
The weird thing is, identi.ca’s planned switch to pump.io is going to be rocky. pump.io is new software and as such it’s going to be less polished. There’s a few conversations in identi.ca that highlight some of the prominent issues that are going to bite people in the butt. To wit:
Backups are currently a little bit hazy. StatusNet was founded on the principle that everything is open, your data is yours, and your data is not at the mercy of the cloud. But in practice, this is not really going all that well, because StatusNet’s backup functionality has been, and still is, quite “experimental”. StatusNet/E14N staff are having headaches about providing backups to everyone who need it.
pump.io doesn’t have the same feature set. Okay, you can follow other people and have conversations with them. But as it happens, one of the big selling points of identi.ca is that a) you can make 140-character brain dumps, b) those braindumps are stored in identi.ca and c) the brain dumps can be crossposted to Twitter so that people who use Twitter can follow them. pump.io will not have this feature ready at the identi.ca switchover. This is going to be a massive headache until the Twitter bridge will be rebuilt on pump.io software. I get it that E14N was never happy with how the StatusNet Twitter bridge worked, because it could never ensure full interoperability. The important point from user point of view, however, is that because StatusNet Twitter bridge never worked that well, as an ordinary user I never expected it to do anything more than to just act as a dumb bridge for my outgoing non-reply entries. Actually, I was more annoyed by the fact that it attempted to do more than that, because that interoperability was so easy to screw up. I would have hoped that this bridge was a priority.
Client support will be highly broken. Goddamn it, I hate shopping for microblogging clients. I spent a long time finding clients that actually do what I want, and I found Mustard to be nearly perfect for my purposes. Guess what? We don’t know how things will go with Mustard. The switchover is a month away and at this moment we haven’t heard anything from the developer. So I won’t have a frigging client either.
So what do we have here? This is the Amarok 2.0 situation.
A quick history lesson: Amarok 1.4 was nearly a perfect Linux music player app. I used it, even when it’s a KDE application and I was a Gnome guy. Amarok 1.4 had tons and tons of awesome features. Then Amarok 2.0 came around. Amarok 2.0 had some impressive changes under the hood, had internally more interesting music database, and in theory had a better user interface - though they screwed it up in the first releases a little bit. And it had support for multiple audio engines! Hell yeah, GStreamer for us Gnome guys!
…but, of course, Amarok 2.0 broke a lot of functionality. A LOT of functionality. It simply didn’t exist in the software at the time of the release. In fact, this was emblematic to the first iteration of KDE 4.x releases across the board.
Oh, and they yanked the GStreamer support later, because people weren’t using it. I was, dammit.
As a Gnome guy, I took a bit of schadenfreude on the whole thing. KDE 4 was a gigantic failure. …and then Gnome 3 happened and I wasn’t so amused any more. The lesson we learnt that this sort of horrifying things could happen to any software project.
Yes, I’m sure Amarok’s latest versions are getting a lot better. KDE has managed to probably get a whole lot of its old functionality back. I’m sure that I’ll one day return to Gnome 3, since it’s apparently making good strides at becoming a usable desktop environment that doens’t eat gobs of memory, but until then, I’ll make do with LXDE. And GMPC frontend for the Music Player Daemon is quite similar to the old versions of Amarok.
So it all leaves me to wonder how am I going to accomplish all this.
My big goal is to just post microblog notices first, and secondly to interact with other people. So what I’ll need to do is to have some way of posting to all of the services at once. And I need some way to ensure that my data is backed up somehow. Most of my microblogging stuff is currently in identi.ca. And if I could somehow have that service on my own web host, that would be fantastic.
It’s just that I can’t just go and install StatusNet. I’d prefer to run it on beastwithin.org, and we don’t have MySQL here. SQLite would be best - Movable Type already does that, and it works just fine for real blogging, why wouldn’t it do for personal microblogging?
So… I wonder what I’ll end up doing? I will probably be a bit hesitant to post stuff on identi.ca after the switchover until it has the features I need - outgoing Twitter bridge and client support. Should I just whip open Emacs or NetBeans and write a minimalist microblog engine that doesn’t suck and doesn’t try to use every unworkable trendy technology under the sun, and that would allow me to keep data locally and crosspost to other services? Who knows. One thing is certain, though: The near future will be interesting and full of danger!