Support Forum

All Things Five

YS Yellow Swordfish
Yellow Swordfish
Member

Needing a break from bug-fixing, testing and support I have decided to open up a conversation on version 5 – (why don’t we use codenames by the way?)

I would like this conversation to include Paul, James, David (if he is still around) but would suggest we keep content under our hat for quite a while yet as we still don’t know what we will be able to deliver.

First though… 4.3 – this version will, by it’s very nature, be content neutered as it’s release must coincide with WP3.0 – the WP and WPMU merge. I suggest we keep new items to simple and easy tasks to avoid the need for weeks of beta testing because, as we all know, the Mullenweg likes to drop releases early if possible with minimal advance notice. So small new things, bug fixes and merge ought to be our target.

I doubt we will be able to get away without a 4.3.1 and maybe even a 4.3.2 although we have discussed the notion of a subforum for ‘patches’ if they are small and simple enough. The main opposition to that method are the WP team themselves that never seem happy unless they throw in a couple of changes we need to deal with in each update.

Which brings us to 5. And I think we should start the discussion by throwing out all new features and concentrating on the philosophy.

PHP
I have no idea when the Mullenweg will decide the time is right to move up to php5. We, of course, are not bound by that decision and could declare php5 as a minimum any time we like. But as with all technical mandates like this it is only worth doing if we genuinely need php5 features and, at the moment, we do not (for current code).

Seems to me that the main reason for adopting php5 is for the OOP and while I would sort of like to go down that route it is a major commitment, a big learning curve and one hell of a lot of rewriting… although, there again, we are planning one hell of a lot of rewriting anyway. In many respects I do not have a preference and that may well just be coloured by the learning needed to do things the proper php5 way. Perhaps the right question should be: ‘Would adopting php5 make our task any easier, our codebase smaller, performance faster and ongoing development simpler?’

MYSQL
MySQL is a different matter altogether although hosts seem more reluctant to upgrade MySQL to V5 than they do php. But for us MySQL5 has some definite and useful advantages. Views, Stored Procedures – even Triggers (I believe) come into play. These can boost performance dramatically as well as take some of the strain out of the codebase.

I fully support mandating MySQL V5 as a minimum requirement although we have to take into account how that would play out in the real world of recalcitrant hosts.

MY VISION OF SPF5
So move along now to what we want to see as the goals of SPF5. As stated, I believe we should forget all about features for now and concentrate on the framework – even if that means ripping out most of what we have now to accommodate what we believe is the right way to go forward.

So this is my top level list:

Display Templates: Move completely away from the hard-coded, rigid display method we now have to a templating system where the user can decide what goes where and in what sequence. I see no reason why this should follow the WP theme model which is actually quite difficult for most users to deal with and fully support the design of our own templating sub-system to try and make it as easy as possible.

CSS Sprites: Move away from the use of icon sets to single images containing a complete set positioned by CSS. This is actually a little more difficult for the average user but gives us great gains in performance and http requests.

CSS UI: Allow the end user to alter forum CSS via a UI. This could work by storing all of the CSS in a database table from which we can generate a CSS file. The CSS could be broken down into small sections with identifiable names linked to the template.

Simplified Visuals: Allow for forum displays with no or fewer) icons and a simplified look. Tis would, of course, be tied onto the templating system.

SPF Plugins: This doesn’t have to be that clever. We should be able to simply define a folder and allow the end user to store code in that folder (with one main file like WP) that we optionally include.

Highslide: Replace Highslide with the alternative, more lightweight version written by Gene (a user).

Editors: Let’s at least try and get rid of TinyMCE although we must always remember that it actually doesn’t do that bad a job of stripping out the garbage and formatting to valid HTML.

Database Queries: Handle database errors gracefully and properly into an error log file (as we have akrady done on Search queries).

Display As-You-Go: We currently create the whole page in memory before displaying it. As things have become more complex it is time to at least look at more normal page display.

Message Strings: Allow the user to alter the  more common  and public message strings (front end only).

Mobile Browsing: We can’t ignore this any longer. Seems like the main problem to resolve is the javascript and editor.

Login/Registration: If we get what we want for this finally deal with it in an acceptable and organised way.

(Since starting to write this we just learned that WP3.0 has been pushed back two more weeks to early May – was originally late March – so I giess that makes this a little more premature than I expected but hey – it’s never to early to start talking.)

 

10 Answers

New Answer

MP Mr Papa
Mr Papa
Member

I will have to defer the MySQL 5 question to you…  the amount of mysql I know now is HUGE compared to what I knew a year or two ago – but still learning…  I have no idea what those MySQL 5 features really mean…  the only thing I would say is that MySQL 5 is far less supported by lazy hosts than php 5…  php 5 is much closer to acceptance than MySQL 5…  still, leave it for you…

I most definitely would like us move to php 5 only…  it is more universally adopted than it used to be…  wp is setting up for the switch, but dont expect it near term…  not sure we would need to immediately rip out the guts, but would give us the option to do piecemeal… we had sort of agreed to make v5 php 5 prior and I guess my preference would be to go with php 5…

I think we will be looking near the end of the year for 5.0 release if 4.3 is in May…

Along the same lines, I think we make wp 3.0 the min wp version for 5.0… and evaluate that based on the next wp version as it will likely beat us out too…

on all these version things, we need to decide relatively early and communicate and then communicate again…  so folk see it coming and can go beat up there hosts though that wont likely help…

Have we been talking about 5.0????  Think our visions are jiving here!   So first, where we agree on 5.0

Template System – absolutely.  this is going to rip the code apart. so might go nicely with php 5.  we should try to avoid tables too but that may not be possible.  basically, users should be able to put spf elements just about where they want.  have no problem with a layered approach where it takes a couple of releases to get there.

Plugins – yes.  the easy part is the hooks and filters.  we put them where we want them and utilize the wp action and filter system.  the hardest part is api for getting the plugins from the folder – and thats not rocket science.  and the actions/filters will grow over time as we get requests for additional ones…

Editors – would love to get rid of tinymce.  but we need similar capability and then may have to rewrite some of the current tinymce plugins depending on fucntionality of new editor…  one that had very simple texteditor, html or bbcode built in would be awesome.  did see one a while ago.

Mobile Browsing – agree

Display as you go – think I agree, but this may become obe (overcome by events) with templating. by definition templating needs to (or should) output as you go

Message Strings – agree and frankly, pretty easy

Highslide – definitely something different.  nothing agains the current except its not GPL.  would really like to be fully GPL.  Gene’s highslide is an option, but we could do another survey as part of that.

DB Queries – its time.  lets never display a bad query result to users again…

and for your other ones

CSS Sprites – thats all you graphics master…

CSS UI – indifferent but could be useful for folks but only if they (or we) make it use relocated code.  otherwise its gonna get overwritten at upgrade

Simplified Visuals – would have thought this would be encompassed in the template system. each template function call will have a set of arguments

Login/Registration – not sure what you mean here, short of registration and password recovery redirection which is dependant on wp

and finally a few more that I want to do for 5.0…  of course, need to balance everything…

RTL Support – well, I dont want to work this  Wink and wouldnt use, but we should get full support going

Forum Stats – that tracker stats thing, plus more details user/post stats.  some might get done in 4.3

Digest Options – support daily, weekly, etc digests of subscription messages instead of every one.  we should bite the bullet and allow auto subscribe to all new posts with appropriate warnings – too many requests to ignore

Polls – a good forum needs them

The problem we are going to have is order… 

We just need to get James to finish playing with that wiki and get practicing coding! LaughCool

YS Yellow Swordfish
Yellow Swordfish
Member

Here is a very quick overview of MySQL Stored Procedures, Views and Triggers. These are all available in MySQL version 5 but I am not sure if they were all introduced into the first 5.0 as such. Need to check that.

More importantly, I do not know for sure whether the WP $wpdb class can properly deal with them but this is easy enough to check with some basic experimentation.

And finally – yes I do realise many hosts are reluctant to move up to MySQL V5!

Views:
At it’s most basic a ‘View’ is like a compiled SQL statement that returns a virtual table. It is stored in the database catalogue just like a table but consists simply of the SQL statement itself. When called (by the View name) it returns the data just like a standard SQL query.

Advantages:

  1. our php code does not have to define the SQL – just call the View.
  2. the SQL is not exposed in the code
  3. much faster return of data

 

Disadvantages:

  1. you can not pass in parameters to a View.

Stored Procedures:
A stored procedure is like a ‘super’ view. It can consist of one or multiple SQL statements and logic using the MySQL functions which include the usual – IF, CASE, LOOPS etc. These procedures can be very complex and at the end will return a final data set. And the real bobus is that you can pass parameters into a Stored Procedure.

Advantages:

  1. our php code does not have to define the SQL – just call the Proc
  2. the SQL is not exposed in the code
  3. much faster return of data
  4. can pass in parameters.

 

Disadvantages:

  1. probably only maintenance.

Triggers:
Triggers can be dangerous and should be used with extreme care and caution. Basically a trigger is attached to a table and will monitor that table awaiting a pre-defined data event or change. When this happens it will ‘trigger’ an event which, most usually, will be an update to another table. A typical example would be setting a trigger on the Users table that is fired when a new user is created so it can automatically create the sfMembers data.

Advantages:

  1. they can replace program logic and once setup will reliably perform their task.

Disadvantages:

  1. Hard to debug and to ensure they really do only get fired when appropriate. As I said p they can be dangerous!

 

For a basic, decent and simple tutorial on these – if you can cope with the idiosyncratic use of English – then go here: http://www.mysqltutorial.org/

LU Luffer
Luffer
Member

Here are my thoughts as you asked for them, but I don’t expect you to pay them much attention.

PHP

Moving to PHP 5 would seem like a sensible move to me, I don’t know PHP at all so if I’m going to get more involved and learn anything, I’d rather start with a newer version Laugh As my background (from way back) is mainly C++ then I’m more comfortable working in an OOP and it should make the learning curve that much easier. I would feel far more comfortable working with classes and objects, makes me feel all warm and fuzzy. That is assuming of course that I can make the effort to actually do the learning fast enough to be of any use! Haha…

Of course eventually WP will move to PHP5 so why not beat them to it! If you’re looking long-term then this has to be the most logical choice even if the release of version 5 takes longer as a result. With version 4.3 supporting WP3 there shouldn’t be any major changes to the core to break SPF for a while (yeah right). It would seem like a good time to make the switch.

MYSQL

I know even less MySQL than I do PHP (ie none) I vaguely remember some database course I did in my uni days that involved some SQL but never really listened during those lectures.

I agree with Steve about support from hosts though, lots of them are still dragging their heels (though I’d be alright). It’s a vicious circle though, hosts won’t upgrade because everything mostly still works with MySQL4, therefore web developers are reluctant to use MySQL5 because it’s not supported by the hosts. Classic catch 22!

Part of me says it’s time the web moved on and as such embrace MySQL5, performance gains would be a big benefit. But you risk alienating some existing users who will be stuck at SPF 4.3 until their host moves to MySQL5. You need to weigh up the pros and cons and make the decision, but the only thing I’d say is SPF5 with PHP5, and MySQL5 kind of fits nicely don’t you think? Plus you’d be doing your own little bit to push the web forwards!

Display Templates: Sounds good to me, I also agree with Steve about trying to move away from tables, or at the very least minimising their use.

CSS Sprites: Oooh Sprites, now that takes me back to my days of programming in BASIC on my Spectrum 48k! This is actually the first I’ve ever heard of sprites in CSS. I’ve done a quick Google and it looks very cool, would have quite a big impact on something like SPF where there are loads of icons all over the place, only one image to download and job done!

CSS UI: You mean in a similar way in which the admin panel can currently be customised? Maybe, but I like the way it works now with skins and I think setting up the entire UI in the back-end for configuration will be a challenge. It will also increase your database requests again when people are using the forum, having to fetch styling information.

Highslide: If it can be GPL then I’d certainly support that, I’ve never been a fan of highslide. Though I admit it does serve its purpose.

Editors: As for alternatives to tinyMCE the main ones I’m aware of that have similar features are CKEditor and Xinha. It would be nice to have iPhone/mobile browser support, but to my knowledge there isn’t one out there. This one is down to the manufacturers I feel, though CKEditor works if you hit the “Edit Source” button as it has a built in HTML editor. I quite like CKEditor actually.

 

Mobile Browsing: Kind of follows on from above really, a custom layout for mobiles could be handy if a mobileOS is detected. If the template system is adopted it should make that easier. But it should also be optional, I like my phone to show the full web. I don’t mind scrolling around the screen, I prefer that to a cut down version. I don’t like the WPTouch plugin for that reason, all sites end up looking the same on an iPhone!

Login/Registration: Well I am big advocate of eliminating the WP login and registration but understand the difficulties. I think it would be nice to try and eliminate all traces of WordPress for the forum user. Maybe its wishful thinking, but then this is a wish list.

Digest options: I like the idea of daily/weekly digests with details on new topics you’re subscribed to. Still not keen on the idea of auto-subscribe, but if it’s what people want I guess it should be included. But I think it should be something that the user has to enable in their preferences. I couldn’t think of anything worse than signing up for a forum and then getting bombarded with email notifications as a default setting. This is a dangerous feature in the wrong hands, because even with a user having to set this in preferences, there’s still nothing to stop the admin editing the database to override it.

Things I think could be useful to add in SPF5:

Setup wizard: The installation of SPF is very easy, but when first confronted with the admin panel it’s very daunting. Perhaps a wizard could be introduced for setting things up with groups and forums, permissions etc..

Post Preview: I’ve seen this in other forums with presumably an onHover action that shows pops up a window with an excerpt of the post. Can be very useful when browsing a busy forum especially when subject titles can be a little poor!

Threaded topics:  As I’ve said previously I’m a big fan of Usenet and one of the great advantages it has over forums in my opinion (other than speed) is the ability to thread topics. So you can have a single topic branch off and not get confused with other posts going off an a different tangent.

It would be handy in a topic such as this one where each aspect that’s being discussed could head off on its own branch, but still be within the “All Things Five” thread. I don’t have any idea about how that could be managed in the UI but it’s not something I’ve ever seen. Topics always seem to be listed in a list, so if a topic does branch off, things can get very confusing!

Unanswered topics: Something to add to the admin menu, shows any topics that haven’t had a reply. Very useful in support forums with multiple admins/moderators. Means a topic won’t get missed, be quite handy here!

Now do I need to sign any sort of NDA Cool Oh and where do I go to learn some PHP5 and brush up my coding skills? I think I need to get my “hello world” out of the way before I start getting any ideas, 10 years without coding means it feels like I’m starting all over again! I’m sure it’s all still buried in my brain somewhere, just need to dig it out and dust it off.

YS Yellow Swordfish
Yellow Swordfish
Member

CSS UI:
I was not meaning that the CSS is loaded from the database. Much better than that.
I have recently been helping Judy (my OH)  make some changes to a forum she runs which uses an Invision Power Board following a software update. I am not overall impressed with IPB but there is one feature that rocks – and that is the CSS editing.
Imagine a select list of components… ‘Login Strip’, ‘Admin Bar’, ‘Breadcrumbs’,’About Box’ etc…. Maybe even more granular than that. You select an item and up pops the CSS for just those classes/ids selected (from your selected skin of course).
You make some changes and save them. Maybe change something else and when you are done you click on an Update button.
This process actually regenerates the stylesheet – in other words rebuilds the CSS file. And it is the CSS file that is actually used by the system.
The definitions – broken down to those low level components are stored in the database. It’s very neat and friendly.

You could go overboard here and extend it of course – which I am NOT suggesting. There could be tools offered to help with the syntax. And if this was done in the front end – you could even preview the changes by using AJAX to alter the CSS of the displayed forum.

HIGHSLIDE:
I regularly search and to date I have not found anything that does what Highslide does in a single package. One of our users has written a cut down version that mimics Highslide and, last time I looked, supports all we need. I would have switched to it already But I am trying to get some sort of commitment from him regarding future support and bug fixing. I think I will get there and this really will make a decent replacement and will remove the commercial license’ aspect. (Highslide is Creative Commons by the way).

EDITORS:
The ideal would be to find a decent editor that has RTE, HTML and bbCode built in. the strength of TinyMCE is its data handling. May not be perfect but we ignore that aspect at our peril. I keep looking!

THREADED TOPICS:
It would be a bit of a nightmare but if someone can come up with a decent model then we would consider it. At the moment there are too many loose ends and it does not fit in with the model we have very well.

I would recommend you write your ideas up on Mantis. If Steve hasn’t created you an account I can do so.

As to php I am no expert at all. I learnt most of what I know starting with an O’Reilly pocket guide…. But I couldn’t hack C++ which says it all really!

LU Luffer
Luffer
Member

Did I get an account on Mantis…. whatever Mantis is? Smile

MP Mr Papa
Mr Papa
Member

no…want one? thats our bug tracker… go create one and we can bump up the permissions…

LU Luffer
Luffer
Member

Okay, created an account. I’ll keep quite there until I’ve figured it all out though!

Bed time now, congratulations on the release of 4.2 by the way!

MP Mr Papa
Mr Papa
Member

thanks… have the email, so will upgrade when I get a few minutes to breathe…