Interview Interview with Forum Software Developer, Arantor.

Welcome to Another Admin Forum!

Welcome to Another Admin Forum! Join our community of forum creators today. Register for a free account and get tips, resources, and support to build and grow your forum. Let's create better forums together!

This is an interview between me and Arantor who has been a software developer for Simple Machines Forum and various forks. He has programming experience on other projects, as well. I have known Arantor for many years and am honored to be able to conduct this interview with him. He's not a member of AAF but he agreed to do this interview with me. :)

Who are you, and can you share a bit about your background in programming and forum software development?
I'm Arantor, currently a developer for a web design agency, and I live in the southeast of the United Kingdom... which is a direct factor in how I came to be where I am!

I grew up in the 1980s and we had a computer in the house. I'm not sure you'd call it a computer by today's standards (laughs) but imagine a box about the size of an iPad that has no screen (you have to plug it into a TV), 40 rubbery keys and if you want to load or save anything, you're plugging in a cassette tape machine to play/record the data as noises, and games took like 5 minutes to load.

But the big thing is that this computer, like all of the home computers of the era, came with a built in programming language. Primitive by today's standards, sure, but the manual would explain how to write code in it and there was no shortage of books you could get full of programs ready to type in, complete with explanations of how it all worked.

By the time I was 7 I'd already taken existing programs out of books and customized them - a lot of the books wrote for several computers at once, being very generic so their games didn't have graphics or sound, so I'd go in and design little graphics for them and maybe try and add sounds.

From there it was just following along as home computers evolved, we had an Amiga then various PCs and eventually in 1999 we got the internet properly and I was able to spend actual time (rather than an evening in the library) browsing, discovering what was out there.

Even then I'd been fascinated by forums as a way for people to talk to each other, and I often wondered about IRC and forums and how this could all evolve so that we could communicate better. It's 25 years later and I still wonder about this.


What inspired you to start working on Simple Machines Forum and the forks?
With SMF it was simple: I'd set up a couple of forums, was very happy with them, and at first it was just a case of paying it forward, doing support. Then as my own needs and wants evolved, people came into my life with ideas and projects, and I realized I'd need to do more than just have the forum and off-the-shelf mods, so I started writing my own.

I'd scour the 'mod requests' board to see what people wanted, at first, and would pick the ones where I had a vague idea how to tackle it but the process would force me to learn more about SMF's internals to do it.

The forks are a much more complex story. Let's start with Wedge, which started in summer 2010. For those who don't know, the end of 2009 and the start of 2010 were fraught with power struggles internally between 'the management' and various contributing forces which ultimately lead to the license changing in SMF, the forming of the non-profit and an overhaul of the team structure.

There was me, wondering what to make of all this, and there was Nao, a guy from France who'd been an enthusiastic bug finder (something like 10% of all bug reports on the bug tracker, ever, were from him), but he was considered too hot-tempered to be eligible for the team. At some point they offered to give him a try-out, voted internally not to let him join, but told him they were just extending the trial period. This, uh, didn't go down well.

Between us we came to the conclusion that the project was adrift - this was still a year before SMF 2.0 would finally come out - and we wanted to preserve the spirit of the project we remembered it being, a community project by and for the community, not whatever it felt like later. Knowing that the license was changing to permit forks, that's exactly what we did - we took the platform and started building on it as we saw fit, all the things we thought should be in there but struggled to convince people.

Ultimately things would go sour in the next 3 years when I realized that while I respected Nao's abilities immensely - and still do - I increasingly found it difficult to work with him. His hard push for performance in a very specific way made it difficult-to-impossible to do some of the more modest UI improvements I wanted. And in the end I just had to walk away. I still regret the decision, but on some level it was the right decision.

Fast forward a couple of years to autumn 2015. My world has immensely changed in this intervening period; I'm in a long-term relationship, I've moved further from home than I'd ever lived before, and my partner - it turns out - has been a long-time SMF admin that, for reasons, gave up her site around the time we met (unrelated) and wanted to start a new one.

I realized that what she'd built over the time she had was... difficult to replicate well in SMF. It was a roleplay site, where people have multiple personas to post as (usually as accounts glued together) and use that to tell stories. You have a primary account as your main account, then each of the characters you post as are separate accounts with different groups, badges, avatars etc.

At some point I began to realize that the featureset that best supports this entire functionality - and so much more, as it would turn out - actually is sufficiently in-depth that trying to maintain it as a mod or even a set of mods isn't entirely practical.

StoryBB was the result of that decision - and when I say it gets in-depth, there's things like modifying how the list of online users is physically tracked (to track which persona is online rather than the account owner), the alerts system got a significant overhaul to recognize the difference when you @ someone or quote someone to recognize whether it was a character quoting another character, or an account quoting an account or whatever. This is not trivial and not something you want to leave to a mod if possible.

Ultimately the reason for the forks is: what I wanted from SMF was not compatible with where the team were going, and not compatible with building that functionality out as mods.


Can you explain some of the key features or improvements you've contributed to Simple Machines Forum or the forks?
To the SMF ecosystem, there were over 100 mods including the SimpleDesk ticket tracking mod (as used on SImple Machines' own website for the Charter members), a full media gallery, plus helping out various other mods.

To the SMF core software itself, the main features I brought during my time in SMF dev were the guts of the alerts system, the background tasks system and the first version of the core likes system. There are others, such as refitting the admin home page, the login popup (which was always intended to support more than just the login by making it an easier jumping-on point for social logins) and some under the hood stuff.

Wedge... where do I begin? Much of what I did in Wedge was out there in a lot of ways. I gutted the SMF ban system, replacing it with a simpler one - no more ban groups with ban triggers, just 'this IP is banned, that email is banned' stuff, with the ability to properly handle Gmail style domains, eg. if you banned test@gmail.com it would know to similarly refuse t.e.s.t+123@gmail.com (or indeed, any domain you told it supported the dot syntax and the + additions)

Probably the feature I'm most proud of in Wedge was the moderation filters system. Rubbish name but essentially I completely rethought how post moderation should work. People don't think of post moderation in terms of permissions (even if this is how SMF implements it), they think of it in terms of rules and outcomes. E.g. "moderate the first 5 posts a user makes", which is how moderation filters were essentially designed - a sort of wizard builder that assembled rules, such as 'when a post is made / if the user has less than 5 posts / moderate the post'

You could stack up other choices, e.g. 'when a post is made / if the user is NOT an admin, AND the post contains the f word / refuse the post' and then add a little message to say why not. And you could add new rules pretty easily; I demoed a plugin that would let you add a restriction on the number of smileys in a post.

StoryBB on the other hand takes a very very different direction. Aside from going on a crusade to modernize the internals, I refitted a great many things in the system. First up, replacing how the theme was done entirely; no more bare PHP, the frontend was built using a template system (not the right one but that's a story for another time), I replaced the CSS with Sass so you could do all sorts of neat things, the aforementioned 'account with characters', eventually giving the characters under an account the ability to add multiple avatars (and pick which you wanted on each post, so you could upload a 'happy' avatar and a 'sad avatar' and use whichever suited the post). There's also a bunch of stuff around matching threads of two people together and creating a collection like a timeline of their shared stories, exporting that to ePub (ebook) format, as well as all kinds of stuff around inviting people to topics. It's very focused around what that style of community wants - which isn't the same as a regular community.


What are some of the challenges you’ve faced while developing or modifying forum software, and how did you overcome them?
Aside from the extremely tedious first step of 'rename everything' (which is, I assure you, extremely tedious), the biggest one is inertia / technical debt. All the time you're just heaping new functionality on, it's easy, anyone can do that. But at some point you have to unpick what's been done to do new things, and that can be very exhausting work, especially when you're doing some kind of complete revamp where it's not enough to introduce a new subsystem, but then to port the whole platform over to it. Like in StoryBB refitting the template system entirely, was the best part of a year's work.

And there's only two answers: get on with it or go home. Ideally doing it incrementally is great, if that's achievable, and that's what I did in StoryBB, I made it (with a bit of effort) so it would run the old templates and the new templates together as I did the conversion. I never did get around to finishing tidying that up though and there's still vestiges of the conversion work laying dormant.


What do you think sets Simple Machines Forum apart from other forum software platforms?
That's an interesting question.

There's definitely things about how the admin panel fits together that are like Marmite - there are people who prefer MyBB's admin panel and would never touch SMF's, just as there are the other direction.

SMF also compared to MyBB does have a responsive theme by default but I believe MyBB is catching that up at the moment.

Comparing to phpBB... I always found phpBB's UI cluttered, in a way SMF's never was, but again like Marmite.

Feature-wise it's fairly close to its open source peers - at least the ones of its generation; it's not going to compete in the same league as Discourse or Flarum or NodeBB, though I leave it to you whether that's an uphill or downhill battle. Certainly it's more feature-ful than Flarum, but that's by design, Flarum chose to go slimline.

It still also has a solid track record on the security front, and doesn't push out as many patches because it doesn't need to.


What trends or innovations do you see shaping the future of forum software development?
The biggest change I think we're going to see is a rebalance of admin vs user. Right now, it is the admin who calls the shots, who decides what information is useful, who decides on its placement, arrangement etc.

I think the next iteration of forum software will give priority to users to be more aggressive about what they do and don't want to see (yes, ignore-boards is a feature that exists in some platforms, but not by default and not nearly as front and centre). I think we might see people having the ability to opt-in and opt-out of boards so they only see the things they care about. I also envisage a time and place where we end up with people being able to rearrange the widgets on sidebars etc.

I am surprised, a little bit, that my long standing philosophy hasn't actually taken off as hard as I thought it would have. I used to talk at length to anyone who'd listen about the notion of 'flavours of forums', where you'd have the core forum system and then major flavours of it. Rather than 'a generic base with options of hundreds of addons', you'd have several core bases maybe made up of addons, similar to how Ubuntu/Xubuntu/Edubuntu/Mythbuntu works.

I envisaged for example 'the community', 'the storefront', 'the roleplay', overarching flavours like that with a lot of the heavy lifting already pre-configured for you, with the ability to grow that over time if you wanted.


For someone starting in PHP or forum software development, what advice or resources would you recommend?
Don't bite off more than you can chew! (laughs)

I wouldn't suggest trying to do what the likes of SMF, XF, IPS do - they're all established apps designed to run on basically any hosting. I'd suggest starting with a modern framework that does a lot of the tedious internal stuff for you, so you can concentrate on the actually forum-y bits and focus on what you want to deliver for your community.

You could do worse than watch https://laracasts.com/series/build-a-forum-with-laravel as a course. It's not going to teach you how to build another SMF, but it'll give you all the foundational stuff of what you actually need to make a working forum, and then how you expand it is up to you. (And honestly, the foundational stuff is more important than all the side features, even if it's the side features that people think they want)


If you could add or change one feature in modern forum software, what would it be and why?
Ooooh, good question.

I do think we're entering an era where it isn't enough to just be a forum any more. I think at the very least rudimentary content management should be first party if not core functionality. I'm not saying 'hey everyone copy Invision' but there is a hugely compelling argument to a product that can supply all that out of the box.

And actually, people go on about 'bloat' when you do that but in practice the more you have in the core framework, the more you find you can actually reuse; e.g. getting a robust image handling setup in the core - and you can share that with a media library (good for CMSes) and a gallery.

I think I'd also like to see more entries in the marketplace that sit in what I tend to think of as the 'prosumer' level - the general advice is often 'start with a free one then upgrade to XF/Invision when you get bigger', as though we're going from hobbyist to pro, but I think more platforms could live in the middle, at maybe a $70 or $80 price point, where it's not going to sell enough to make a full time living off it but it might be a sufficiently effective part time gig to keep the motivation up.

Because that's something we don't talk about nearly enough: that the open source end is considered inferior (even though in reality it punches just as hard), but it has far more consumers than creators, meaning that it feels like a constant gaping maw of consumption that can never be filled, and putting artificial scarcity on it would reduce that while keeping a practical incentive for someone to work on it.

Such a product would need to be more polished than the free market for sure, but I think that's always been a bone of contention in the open source world: the themes, the UI tends to be what developers make, or what people feel like contributing, rather than going out and finding a designer and hiring them to make a design designed for purpose.
 
Back
Top Bottom