Status of UNIX.COM Forum Transformation

Having spent a lot of time over the past year taking a legacy vBulletin site (this forum) and making the site responsive on mobile; I've happy with the results; but it will soon be time to move on.

Basically, at our core, we are a LAMP (Linux, Apache2, MySQL and PHP) site, and vBulletin was built on the LAMP stack.

vBulletin provided a user interface system with HTML templating (served from the DB, as well as version control and template management in the same DB), and PHP hooks to install PHP plugins (functionality).

In a nutshell, when a user accesses a vBulletin page the PHP makes a synchronous call to the DB and the results are formatted in HTML using HTML templates (which are also in the DB), and those templates are cobbled together and served to the user.

Over the past year, I have made a lot of changes in many HTML templates and getting rid of many obsolete <table> DOM elements, replacing them with <div> DOM elements, etc. and adding a lot of new CSS and Javascript / jQuery, to enhance presentation.

I knew this was only a "bandaid fix" and someday, the entire vBulletin user interface must change. So, I started looking at various ways do to this, and it seems that the best approach may be to:

Modify the underlying PHP calls to return the DB data in JSON format.

Basically, most all of the cool and rapidly evolving (and exciting) technology in Javascript frameworks provide for what happens in the user's browser and does nothing for the PHP (server side). This means we are "good to go" with our LAMP stack and core PHP functionality (with the exception we need to move to PHP7 sooner than later).

So, what we need to do is to modify the PHP calls to the DB to return the data in JSON format so we can easily use any new web development framework for the user experience (Angular, Vue, React, Oracle Jet, electron, or "WhatEverTron" -- the field is changing almost daily and certainly weekly).

Keep the Existing User Interface and Build a New One in Parallel.

There is no reason to trash the existing user experience; and based on my experience here, users do not like change (even a single color change or a change of margin in a single item can cause negative feedback from users.) . For this reason, I'm not inclined to break the current user interface. Instead, I think it is better to build a parallel one using a "framework" (like Vue.js or Angular.js) or a ""non framework framework"" (like Oracle Jet) - have not decided. Actually, it might be good to build more than one parallel user experiences to the same back end database.

What Does All this Mean for Users?

It's probably good news for our "hard core forum fans" who like the current forum format. There will not be a lot of new development in the "vBulletin HTML template" side of things; just bug fixes and small features enhancements here and there.

However, the future is to move away from vBulletin (and the underlying forum format) by building a parallel user experience on top of the same LAMP back-end. This means, for example, taking a PHP call to the database that shows a thread, for example, and adding some code to have it (in parallel) produce the same data in JSON objects. Then, we can take these JSON objects and easily build new user experiences with the same rich DB we have and have the flexibility to adapt to new innovations in browser technology. The field is moving forward very fast. Times are exciting.

I am guessing that I will start with the user profiles. The user profile pages are a mess and are based on some very old legacy vBulletin code which, in the old days, permitted users to define their own CSS theme. This resulted in a clunky, buggy, very hard to maintain user profile page experience. I may change this first, I think (not sure). As mentioned, the best way ahead is to tackle each PHP call one step-at-a-time by adding a JSON output which can be used by react. js or Angular.js or Vue.js or Oracle JET.... or any cool Javascript toolkit or framework which works with Data as Javascript Objects (DAJSO).

Anyway. Thanks!

Obviously, there is a big project ahead and I'm currently a team of one on the coding side of this project and have other things to do in life; but I'll try to make progress on moving the forums ahead. Thanks for your patience and for supporting this site.

8 Likes

Having spent a few days with Oracle JET, I cannot really see how rebuilding existing working pages with Oracle JET would be the best use of our development time.

However, for building new pages and features, Oracle JET has already come in handy as I have started to build working dashboard where I can easily monitor forum performance on my desktop. I am considering porting this to the main forums so all moderators and forum advisors can see the dashboard on their desktop or mobile.

Anyone have any indicators they would like to see added to the live dashboard?

2 Likes

In more general terms, I sometimes hit the forums when not very responsive. That happens because of backup. I believe. Is there an indicator that you can set on the dashboard? In other words I want to be able to blame reasonable causes and not go off in a pointless direction.

2 Likes

Added three "LED" indicators that turn red for each of the following when they run:

  • mysdump
  • gzip
  • find

However, to be honest, I have not noticed any noticeable slowdown when backups occur since moving to the new server.

Today, when testing the LED indicators, there was little noticeable slowdown when I ran the backups.

Before, most slowdowns happened when the anti-spam database was being updated, but we killed that application after moving to the new server.

I may add a "free memory" indicator and a "percent filesystem full" indicator next.

1 Like

OK.. Done.... added:

  1. Disk Space Free %
  2. Free Memory
  3. Cached Memory

3 Likes

OK... added CPU totals for:

Server (All)
Apache2
MySQL

Maybe later will add some "cybersecurity" indicators too :slight_smile:

1 Like

Slightly rearranged.