Details and Discussion
As many of you know, FSTDT is undergoing a major rewrite this summer and fall and moving to a new host sometime between November of this year and January of the next at the latest.
(I'm calling this version 5.0 of the site, because as far as I know, this will be the fifth rewrite since FSTDT became more than a collection of static HTML files — though please correct me on that if I'm wrong and I'll bump the version number up or down accordingly.)
This post will be gradually be populated with details about the new server-side code and site design, calls for code-monkeys and other folks with technical know how, etc.
I also want the comments thread to be a place to discuss the new site, so feel free to ask questions and post suggestions and general comments even though there's not much here right now.
Some general mostly technical details in no particular order (read "a highly disorganized non-order")
• FSTDT will be moving away from Windows Server and onto a Linux server, and the main database will use PostgreSQL instead of MS SQL Server. A couple of SQLite databases will be used to log errors and store user session information (but not user accounts).
• The aim of the first version of the new site code will be feature-parity with the current code, though there will still be several new features simply as a result of switching to a radically different platform (or the switch thereto making them very easy to implement). Virtually all long-standing bugs will be fixed. The new FSTDT code will also be highly modular and use generic programming as much as possible to make it much easier to add new features and fix bugs. It will also most likely rely substantially less on classes and objects for many things.
• Nearly all of the new FSTDT code will be open source licensed under version 2.0 of the MPL
with a "no secondary licenses" clause. (I will discuss the rationale in more detail later, but the gist of it is that it is a fair middle ground between insanely permissive BSD-style licenses and insanely restrictive copyleft licenses like the GPL.) A small part won't be open-sourced for security reasons or for being specific to the server FSTDT is running on. The code will be hosted on GitHub.
• Something non-technical people care about: Using PostgreSQL and SQLite means UTF-8 / Unicode will be supported out-of-the-box with no configuration!
However, it will make importing existing quotes into the new database somewhat of a bitch when they contain non-ASCII characters. Unfortunately, a lot of the process of importing old data into the new database will have to be done manually because of this and the point below.
• The database structure in general will have a radically different schema. Most notably, it will use foreign keys extensively
. This will make it much easier to fix things like quotes spelling "David J. Stewart" 50 different ways. It will also speed up search times, eliminate redundancy, and decrease database size. User accounts and information will be stored in a separate database from quotes and comments. (Why wasn't this done originally?)
• The current user accounts system is going to be scrapped altogether, meaning you're all going to have to re-register your accounts. (Sorry, guys.) On the upside, the new user-accounts system will have private messages and optionally let you use a secret question + answer to reset your password in addition an email password reset code. Since there's been two documented SHA2-256 collisions and using SHA anything is a terrible idea for hashing passwords anyway, passwords will most likely be slow-hashed using Slowfish (what I call OpenBSD's variant of Blowfish).
• The registration process is going to be reversed: you provide an email address and receive an email verification code first
, then you use that code to register a user account. That both throws spambots for a total loop and discourages users that are unlikely to comment from registering. Shy Says already has code for this in place, but it's written in VB.NET (though it uses its own mini-server instead of XSP/IIS and uses very few ASP.NET components — still, a lot of the Shy Says code is applicable to FSTDT and can be straightforwardly translated to Node).
• I'm considering pubadmin a feature of the current FSTDT codebase, so the first version of the new site will have a working pubadmin! (Even though it had to be gutted during the process of me taking over the site from Distind.)
• AJAX / XmlHttpRequests will be used for certain things, such as posting and editing comments, submitting quotes, logging in and out, pubadmin, mod tools, and so forth.
• Half-decent mod / admin tools!
• The general layout and design of the site will be very similar to the current one except substantially more polished and substantially more mobile-device and search-engine friendly. It won't look like something out of the 90s, and I won't be ashamed of it.
• URLs will be user- and search-engine friendly, ex. http://www.fstdt.net/random/cstdt, http://www.fstdt.net/quote/123456. The URL routing code will also likely include code for backwards-compatibility with current URLs, at least for a while. That means the current URLs will still work during that time (but they will display a message saying the site has changed and to use the new URLs from now on).
The New FSTDT Site!, Details and Discussion 8 Comments
[5/14/2017 6:35:15 PM]
Fundie Index: 4
Submitted By: shy