NokiMo
Touhou-Project.com
Touhou-Project.com

patreon


Taking account(s)

Hey all, it’s been a while since I’ve shared what I’ve been up to. I can report that I’ve let the THP spirit have reign free and have spread myself thin on various projects. So I haven’t managed to finish any of them yet but have gained a few interesting insights. I thought I might share some of them today.

First and foremost, I’ve been working on a little side thing that doesn’t directly affect the boards for the time being. Why? Well, the concept is neat (more on that if and when I finish it) but also because part of its feature set is an experimental account system that keeps track user information. Now, this is not meant for eventual integration with the rest of the site as currently designed but is a useful experiment to figure out how to best implement those sorts of systems generally.

I’ve been messing around with different technologies beyond the usual PHP + SQL backend that THP uses, just to see how difficult it would be to use something else. Can’t say that it’s been that thorough or scientific of a venture but my conclusion is that, for the time being at least, it continues to make sense to keep to what we’re already using. That’s a matter that will have to be revisited if I ever do get to a large overhaul or start an outright replacement for THP’s software.

More interestingly, I also took a look at various different ways of authenticating a user now available. I’ve been aware of things like Oauth/OpenIDfor some time and have always been attracted to the idea of having universal logins that aren’t dependent on specific implementations. I even looked into SQRL, which I think is a neat little way for (especially mobile) users to log in. These methods aren’t without their drawbacks but they do mitigate a lot of the work of managing passwords on the server and thus neutralize the problem of data breaches.

With all that said, I’ll likely be doing a standard email/username type deal to begin with, with possibly a fallback from one of the aforementioned solutions if I have the time. Even if I don’t finish the side project, I’ll likely share specifics down the line.

The second thing that I’ve been working on still involves accounts. I believe I’ve mentioned it before but I’ve started an overhaul of how the internal moderation accounts work. The intent here is not only to streamline the codebase but also add granularity to the permissions, with an eye on having more specialized roles. That is to say, to be able to do certain things that do not require to give someone the same level of trust as a full moderator.

This isn’t that difficult to do but it does require a lot of rewriting of code that interacts with accounts. Though object-oriented, a lot specific actions like setting bans or deleting a post use different methods—to spare you from more jargon, it’s not a unified way of checking permissions. Somewhat tedious as it requires a lot of manual checking to replace.

After that’s working well and I finish with all the bug-checking, I also have to implement a few of the new features for the different-privileged accounts. That shouldn’t be that difficult but I was thinking of reorganizing some of the moderation page while I was at it, leading to even more work. I’ll also share more on that once I’m done, since I’ll probably reach out to the patreon supporters to help me with these new features.

Finally, the other main thing that’s been taking my time is working on a few miscellaneous features and bug fixes for the user-facing portions of the site. Some of this has been requested, some of it I just think it would be nice to have. Nominally not difficult but—you guessed it—tied up with a lot of the other moving parts. The main stumbling block involves the older, archived pages, as bringing feature parity there might be a large mess due to how the code is structured. A lot of corner cases to deal with and the like.

Still, by my estimation, this last thing just needs 3-4 solid days of work out of me to get mostly sorted. Famous last words, I know. I’m not sure how long everything mentioned here would take even if I could dedicate a lot of uninterrupted chunks of time. “An amount of time” is the best I can come up with but the good news is that the partial progress I’ve made with each one has been useful to figure out the conceptual hurdles. I hope to deploy at least one of these three things in the next 10 days and, if I don’t, feel free to badger me until I get it done.

Until next time, take it easy!

Comments

I knew of Oauth, but I'd not heard of SQRL. Sounds very imageboard-like in a way. Might be good for THP's use cases, depending on how these projects develop.

Benjamin Oist


Related Creators