What's the current status/thought on threading?

Do not post support requests, bug reports or feature requests. Discuss phpBB here. Non-phpBB related discussion goes in General Discussion!
Scam Warning
User avatar
Techie-Micheal
Security Consultant
Posts: 19511
Joined: Sun Oct 14, 2001 12:11 am
Location: In your servers

Re: What's the current status/thought on threading?

Post by Techie-Micheal »

Callum95 wrote:
/a3 wrote:
dandv wrote:
Lumpy Burgertushie wrote:At the time there were no alternatives. and them came the world wide web and html pages etc and then came phpbb ( just a little biased here ) with a clean simple to use and understand way of displaying discussions.
Right. We have modern alternatives nowadays, with AJAX (which is actually 10+ years old and still not adopted by phpBB).
What do you mean? Where would AJAX be suitable for use within phpBB? You act as if everything should be AJAX. But AJAX and hash-bangs do have their problems. ;)
I think he meant that stuff like sending posts / moderator and admin actions, and even searches should be done using AJAX.

Although if everything should be done using AJAX, I also disagree with the use of hash-bangs - we have window.history.pushState().
I know this is off-topic, but if someone could please explain to me hash-bangs are used instead of hash, I'd appreciate it. They way I see it, #! offers nothing other than looking silly.

var ajaxURI = location.hash.slice(1);

Done. Why the silly ! tacked on there?
Proven Offensive Security Expertise. OSCP - GXPN
User avatar
Phil
Former Team Member
Posts: 10403
Joined: Sat Nov 25, 2006 4:11 am
Name: Phil Crumm
Contact:

Re: What's the current status/thought on threading?

Post by Phil »

I believe Google's guidelines for making AJAX-based websites search engine friendly may be related.

I am not, however, aware if the practice exists due to guidelines like these, or if guidelines like these exist due to the practice.
Moving on, with the wind. | My Corner of the Web
User avatar
/a3
Registered User
Posts: 411
Joined: Sun Sep 19, 2010 9:08 am
Location: /dev/random

Re: What's the current status/thought on threading?

Post by /a3 »

Phil wrote:Done. Why the silly ! tacked on there?
Phil wrote:I believe Google's guidelines for making AJAX-based websites search engine friendly may be related.
Yes, that is exactly the reason. From what I understand, what's after the ! should be available as an actual page.
$ git commit -m "YOLO"
User avatar
dandv
Registered User
Posts: 20
Joined: Wed Jun 15, 2011 11:16 pm
Contact:

Re: What's the current status/thought on threading?

Post by dandv »

Techie-Micheal wrote:I know this is off-topic, but if someone could please explain to me [why] hash-bangs are used instead of hash
[...]
What a perfect use for a threaded view! I swear I didn't bribe Techie-Micheal, nor Phil, nor /a3 above. Since I'm not particularly interested in this branch of the conversation, a threaded view would have been great. I could see the hash-bang issue deviating from the topic I'm interested in, and skip over it (maybe by collapsing its branch a-la-reddit).

The point I'm trying to make is that we live in an information-overflow era, and any measure that helps manage the deluge of information and the process of digging through it in search for a nugget of knowledge, is valuable.

To respond to Steve's excellent arguments (the best I've seen so far; wish there were a Like/+1/Reputation button):
Pony99CA wrote:I've used Disqus and it's OK. However, it probably does threading because it doesn't support quoting. Even in a threaded system, quoting is still necessary if you want to make it clear which piece of a post you're addressing.
Agree that quoting is still necessary, even in a threaded system.

The reason Disqus does threading is, I believe, that blog/news comments tend to be way less expository than forum posts such as this. Replying to shorter comments reduces the importance of quoting, because what a user would quote, would most often be the entire comment of the user they reply to. I believe removing quoting was a design decision from Disqus, given the nature of comments (closer to tweets rather than blog posts).
Pony99CA wrote:
dandv wrote: On the other hand, a threaded topic is a superset of a flat topic, because you could always render the threaded topic with an indent of 0 for all posts, and you get the flat view.
First, as a math major, I wouldn't call either a superset. They both show the exact same content, just in a different order and perhaps with different formatting.

Also, removing the indent does not make it "flat"; it just makes it look flat.
Appreciate the language correction :) What I meant was that a flat view is a particular case of a threaded view, and I omitted to mention the difference in sort order:
Pony99CA wrote:The biggest difference between threaded and flat views is the post ordering, not the indenting. By default, in phpBB's flat system, posts are sorted by date (ascending), although you can also sort by other keys and in descending order. in a conversational/threaded view, the root posts may be sorted by date (ascending), but the branches and leaves aren't. Within a given root post, each level may be sorted by date (ascending), but merely removing the indent won't change the default ordering.

And that's the biggest problem that I have with threaded views. The post ordering makes it more difficult to find just the newest items. You have to scan the whole tree to find them. Yes, you can add a view that only shows new items (but without quoting you won't have context) or you can somehow flag the new items, perhaps with color, borders, highlighting, etc., but you still have to scan the whole tree.
Reddit faces exactly this challenge when it renders your inbox of reply notifications. For each reply, there is a "context" link that displays the reply and walks back the parent nodes up to the root comment (example).

Let's say a threaded view would highlight or put a border around new messages, and maybe collapse the read nodes between (but not including) each new post and its read root (entirely new branches would be shown fully expanded). How a user who wants to monitor a thread handles new items depends on their goals:
  • those like me, who are only interested in specific branches of the discussion, will skip new posts in uninteresting branches. With thee classic flat system, skipping those posts requires skimming over them, so a threaded view wins time.
  • those who want to monitor everything will read all the new posts, skipping from highlighted new post to highlighted new post, over read posts. But: this type of visual skipping to the next item of a particular style (highlight, border etc.) is way faster than the actual skimming through text in the previous case.
It could be argued that there are two distinct use cases, thus warranting a per-user, UCP, option. If one view had to be forced, from a utilitarian standpoint aiming to minimize time spent traversing uninteresting information, I would enforce a threaded view, unless the users who want to monitor everything outnumbered those who cared only about specific branches by a factor greater than text skimming speed (1500wpm?) divided by average speed of searching for the next highlighted post (1500 wps?).

As for context: if the new items need context, then, aside from what's already quoted from the replied-to post (if anything):
  • in the threaded view context will be right there, one click away (if read parent nodes are collapsed). It might be interesting to display the immediate read parent of a new post anyway, so that context is readily visible without an extra click.
  • in the flat view, there is no extra context. New posts are simply at the end. If there's no quoting, the context situation is even worse.
Pony99CA wrote:Also, as Lumpy mentioned, you have the indenting vs. scrolling problem. If people keep replying to replies, you either indent so far that horizontal scrolling is necessary or you have to reset or freeze your indents at a certain level, which makes it look like the posts aren't threaded properly.
In the case of freezing the indent, we have the advantages of threaded view, the general case, up to where we freeze the indent. After that, we revert to the particular case of a flat view. A fully-flat view is no better off.

Anyway, there is a more elegant solution to excessive indenting: partially outdenting the branch. Here's an example from a MediaWiki talk page - search for "31", then scroll down half a page.
Pony99CA wrote:Furthermore, unless you display the whole tree on one page, pagination becomes more difficult. If you want to display 20 posts per page, you could end up starting a new page way over on the right side due to indenting (even if that page only contains posts at that level).
That's exactly what mwForum does (example), and it seems to work pretty well. If you follow from the previous page, you have the mental context of where you left off. If you somehow (say, after a search) end up on a page that starts way over on the right side, the first post should either have a link to its parent, or pull the parent in dynamically (with the parent having the same kind of link or pulling in option). This is an improvement I'd like to see in mwForum.
Pony99CA wrote:
dandv wrote:Users can also just reply to the whole thread rather than to an individual message, so they can choose "flat" even in a threaded system.
Unless all users choose to "post flat" or there's an option to view flat, that's not true. They're just posting flat.
Not sure I understand this objection; let me clarify: imagine there is a "reply" button next to each post, and also a "quick reply" type of text area at the bottom of the page. Replying using the latter means replying "flat". This is, indeed, posting flat, which is different from choosing a flat view.
Pony99CA wrote:
dandv wrote: I come to this debate with a user's experience, and no investment in one system or another.
Your first paragraph seems to contradict that. :D
What I meant is that I haven't implemented, or deployed, a threaded system that I'd have to defend. I've only used both systems and got to see the advantages and shortcomings of each.
Pony99CA wrote:As a former developer and user experience person myself, I don't have a problem offering a threaded view as an option selectable from the UCP. In fact, from a database view, it might only require one or two new columns -- a "parent" post ID and possibly a level counter (to make things faster). The parent ID would be useful without threading -- it would allow making the QUOTE attribution a real link to the quoted post, which is useful when somebody has trimmed a quote (like I often do).
Adding a link to the parent would be useful indeed, if you trim a quote, or if the same person said more or less (human memory is fuzzy) the same thing in the quote in two or more posts. I've seen this feature in some forum engines.
Pony99CA wrote:The harder part would come trying to implement the view, as you can't just use a simple SQL statement to sort posts. There might also be other "gotchas", like what happens if you delete a "root" post or merge two topics, but I'm just considering the basic view problem right now.

Steve
What I hope with this debate is to have the possibility of threaded views seriously considered. I've seen the requirement many times, and there is clearly a market share for it. I've been reviewing about 20 OSS forum engines over the past week, and besides reddit (huge system requirements) and slashcode (apparently not actively maintained any more), only Drupal comes close with a threaded view, though Michelle Cox, the author of the Advanced Forum module, hates threaded views, admits that the jump links are likely to be wrong, and that she had never tested the module with threaded views.

At this point in my quest for an OSS threaded forum engine with clean URLs, it looks like phpBB is the best choice because at least some people here are considering the idea of threaded views. The other strong candidate, MyBB, will ditch even the rudiment of a threaded view that they have (which probably won't be missed, given how bad it is).
User avatar
dandv
Registered User
Posts: 20
Joined: Wed Jun 15, 2011 11:16 pm
Contact:

Re: What's the current status/thought on threading?

Post by dandv »

Callum95 wrote:
/a3 wrote:
dandv wrote:We have modern alternatives nowadays, with AJAX (which is actually 10+ years old and still not adopted by phpBB).
What do you mean? Where would AJAX be suitable for use within phpBB? You act as if everything should be AJAX. But AJAX and hash-bangs do have their problems. ;)
I think he meant that stuff like sending posts / moderator and admin actions, and even searches should be done using AJAX.
I don't know where AJAX *is* used. If anywhere, it's not really visible. What hits me, from a user experience standpoint, are page reloads that are absolutely not necessary, and detract from the user's focus. For example, when I update my GitHub committer name in UCP, I get an intermediary page saying "Your profile has been updated. Return to the User Control Panel."

That's how things we done pre-Y2K. Nowadays a Growl-like message saying "Saved" conveys the same information, is much less intrusive, keeps the user on the page they were, and is much faster to render. Stack Overflow and Vanilla Forums do this well.

Vanilla Forums uses AJAX much more effectively, and I'd wager this is because it doesn't suffer from the legacy of phpBB. Even though phpBB development started 6 years before that of Vanilla, and although phpBB has way more contributors, it seems to me that it's being dragged down (or kept in place) precisely by its history.

Anyway, this discussion should take place in a different thread.
Oleg
Former Team Member
Posts: 1221
Joined: Sat Jan 30, 2010 4:42 pm
Location: NYC
Contact:

Re: What's the current status/thought on threading?

Post by Oleg »

I think the appropriateness of threaded view depends on whether topics stay on topic.

If topics stay on topic then branches are useless as people will tend to read all replies anyway, and reading linearly is simpler. If topics go in all kinds of different directions that produces the desire to skip some of the replies, and thus requests for threaded views.

One consequence of only having a flat view is that moderators (in my estimation) would tend to force users to stay on topic, thus making topics more cohesive. This could be argued to be a feature of flat-only boards.

We do have a process for suggesting new features to phpbb.
Participate in phpBB development: Get involved | Issue tracker | Report a bug | Development board | [url=irc://chat.freenode.net/phpbb-dev]Development IRC chat[/url]
My stuff: mindlinkgame.com
User avatar
Lumpy Burgertushie
Registered User
Posts: 67902
Joined: Mon May 02, 2005 3:11 am
Contact:

Re: What's the current status/thought on threading?

Post by Lumpy Burgertushie »

all of that may be true, however phpbb and other boards like this, accomplish the same thing is a simpler way.

each topic in a forum has a read/unread icon. that makes it very very simple to only view the ones you want to read. you can also click on view unread or new posts etc.

in a threaded style, all posts are on one page . even if collapsed, it still means you have way too many things to skim through to find what you want and expand it.


robert
I'm baaaaaccckkkk. still doing work on donation basis. PM your needs.

Premium phpBB 3.3 Styles by PlanetStyles.net

If nobody is in the forest, does a tree really fall?
User avatar
dandv
Registered User
Posts: 20
Joined: Wed Jun 15, 2011 11:16 pm
Contact:

Re: What's the current status/thought on threading?

Post by dandv »

Oleg wrote:I think the appropriateness of threaded view depends on whether topics stay on topic.
That is something I would agree with. Now, it's interesting to see how often forum conversations do stay on topic. In the absence of studies on this, um, topic, I would say from my experience with frequenting probably 100+ forums over the past 15 years, that most of the time, conversations stray in some way or another from the initial topic. This is a natural consequence of human communication - how often do we stay on the initial topic when we talk with someone?

But we don't need to rely that much on my subjective impression above. There are two factors that almost guarantee that straying off the original topic will happen: the number of participants, and the length of the topic. The more people take part in the discussion, and the longer it is, the more likely it is that various unrelated branches of the conversation will emerge. What's also worth considering is that for short conversations (say, under 10 or 20 posts), flat vs. threaded doesn't matter much, as likely all posts would fit on one page anyway. Where a threaded view becomes more and more useful is for longer conversations, where uninteresting branches can be skipped, and ideas can be followed sequentially, along branches. Since longer conversations tend to be more branched, a threaded view emerges as a good solution for visually and conceptually separating divergent ideas.

This divergence need not even be negative (towards "off-topic"). **I find it easier to follow an idea as people reply specifically to it, along the children of a branch, then move to the next idea; versus jumping from idea to idea in a flat thread that intertwines several branches of conversation.**

How the process goes in practice can easily be seen on slashdot or reddit: every single topic evolves as a tree with many branches. This, I'd say, is strong empirical proof that in the vast majority of cases, conversations stray from the main topic.

What I wrote above applies best to a reader new to a mature thread, and somewhat less to participants to a growing thread. However, the 90–9–1 principle ("For every one person who posts on a forum, there are at least ninety-nine other people viewing that forum but not posting") tells us that those who read a topic and never reply to it vastly outnumber those who do reply. If we want to optimize for time spent among all topic users, including the lurking readers, then a threaded view emerges as the solution that minimizes time spent parsing uninteresting information.

What about growing threads and new posts, though?
Lumpy Burgertushie / Robert wrote:each topic in a forum has a read/unread icon. that makes it very very simple to only view the ones you want to read.
Threaded or flat view, the same applies about topics: they are read or unread. In other words, topics in a forum are always flat, no matter how an individual topic is rendered. Click on reddit - it lists all topics of the day in one flat list.
Lumpy Burgertushie / Robert wrote:you can also click on view unread or new posts etc.
As Steve mentioned earlier, new posts can be highlighted in one way or another, or they can be listed in a flat list, with links to their branches.
Lumpy Burgertushie / Robert wrote:in a threaded style, all posts are on one page . even if collapsed, it still means you have way too many things to skim through to find what you want and expand it.
We need to consider this more carefully: what do you mean by "find what you want"? The posts are new, and you know little about them. They could be on the initial topic or not. Or that may not matter. I think that simply listing new posts at the top (as reddit does if you click the "new" link on a story) would be very much equivalent to looking at the last N posts in a flat view.
User avatar
/a3
Registered User
Posts: 411
Joined: Sun Sep 19, 2010 9:08 am
Location: /dev/random

Re: What's the current status/thought on threading?

Post by /a3 »

For what its worth, I frequent Slashdot (all though I don’t participate in the discussions very often) and I find the threaded view far superior to a flat-viewed discussion. However, it depends on how long the discussion is.

The main problem with a threaded view is that it is difficult to sort them into pages. A potential solution to this would be to take a Slashdot-sortof-approach and minimise posts that aren’t part of a particular page. These can then be maximised by clicking. That way a threaded discussion could be broken into pages like this discussion.

^ Maybe people won’t see that the way I see it. I might find time to create an example of what I mean later.
$ git commit -m "YOLO"
User avatar
Lumpy Burgertushie
Registered User
Posts: 67902
Joined: Mon May 02, 2005 3:11 am
Contact:

Re: What's the current status/thought on threading?

Post by Lumpy Burgertushie »

WEll, I was online and participating in discussions in the old style threaded boards before this new style like phpbb was even around. I did not know any better then because I had nothing to compare to.

However, looking back, I respectfully have to disagree with the idea that the old way is better.

I always did find it very difficult to keep track of what was going on in a discussion with all the posts just indenting across the page etc.

I really can't believe that anyone would find that style easier to navigate and participate in than what you are calling a "flat" style board.

oh well, it is certainly to each his own I guess.

robert
I'm baaaaaccckkkk. still doing work on donation basis. PM your needs.

Premium phpBB 3.3 Styles by PlanetStyles.net

If nobody is in the forest, does a tree really fall?
User avatar
Dog Cow
Registered User
Posts: 2498
Joined: Fri Jan 28, 2005 12:14 am
Contact:

Pagination with a threaded discussion

Post by Dog Cow »

Pagination is an interesting problem to solve when displaying a threaded discussion. Here is one solution.

Take a thread tree, let's say one that looks like this:

Code: Select all

Dog Cow
|	|-theFinn
|	|-psoTFX
|		|-Dog Cow
|-dhn
|	|-SHS`
|	|	|-dhn
|	|-Dog Cow
|		|-dhn
|-Acyd Burn
Here we have a root article, posted by me, and 9 followups posted by various other phpBB luminaries. 10 articles in total.

Now, how do we display them, if we want 5 articles per page? Well, one solution is to "flatten" the thread tree by removing the indentations. Let's also give the articles offset numbers too. We get a flat list like this:

Code: Select all

0 Dog Cow
1 theFinn
2 psoTFX
3 Dog Cow
4 dhn
5 SHS`
6 dhn
7 Dog Cow
8 dhn
9 Acyd Burn
Now the rest should become obvious. With our existing phpBB URL structure of giving a topic ID and a start offset, we can easily show articles 0 through 4 with start=0, and articles 5 through 9 with start=5.

Probably the best way to manage this is by using materialized views, or in other words, calculate the new tree and flat layout at thread mutation time (adding or deleting an article), rather than at thread display time.

To make the user interface more practical, having a greater number of articles displayed per page would be first. Also, the thread tree should always be displayed in a column beside the article bodies, and there should be an indication of which articles on the thread tree are currently being displayed. Clicking at various points in the thread tree should take the user to the page (start offset) that contains those articles.
Moof!
Mac GUI Vault: Retro Apple II & Macintosh computing archive.
Inside Allerton bookMac GUIMac 512K Blog
Pony99CA
Registered User
Posts: 4783
Joined: Thu Sep 30, 2004 3:13 pm
Location: Hollister, CA
Name: Steve
Contact:

Re: Pagination with a threaded discussion

Post by Pony99CA »

Dog Cow wrote:Well, one solution is to "flatten" the thread tree by removing the indentations. Let's also give the articles offset numbers too. We get a flat list like this:

Code: Select all

0 Dog Cow
1 theFinn
2 psoTFX
3 Dog Cow
4 dhn
5 SHS`
6 dhn
7 Dog Cow
8 dhn
9 Acyd Burn
Now the rest should become obvious. With our existing phpBB URL structure of giving a topic ID and a start offset, we can easily show articles 0 through 4 with start=0, and articles 5 through 9 with start=5.
So how is this different from doing exactly what we do with just a different sort order? ;)

However, I wonder how things would look if, instead of a true threaded view, we just included the equivalent of breadcrumbs for the reply chain?

Code: Select all

0 Dog Cow
1 theFinn   (Reply to Dog Cow)
2 psoTFX    (Reply to Dog Cow)
3 Dog Cow   (Reply to Dog Cow -> psoTFX)
4 dhn       (Reply to Dog Cow)
5 SHS`      (Reply to Dog Cow -> dhn)
6 dhn`      (Reply to Dog Cow -> dhn -> SHS)
7 Dog Cow   (Reply to Dog Cow -> dhn)
8 dhn       (Reply to Dog Cow -> dhn -> Dog Cow)
9 Acyd Burn (Reply to Dog Cow)
The user names would be links back to the original posts. Maybe hovering over the link actually shows some of the original post (without quotes). That shows the threading without actually adding a threaded view (in this example, the view is threaded, but imagine it was sort by posting order instead). If you want, you could even show future replies, although that might get more complicated (because you'd have to potentially show the tree).

Steve
Silicon Valley Pocket PC (http://www.svpocketpc.com)
Creator of manage_bots and spoof_user (ask me)
Need hosting for a small forum with full cPanel & MySQL access? Contact me or PM me.
WebTechGlobal
Registered User
Posts: 23
Joined: Thu Jul 15, 2010 8:17 pm

Ryan Bayne says no threading please

Post by WebTechGlobal »

I think Web Developers have already settled on the best approach/use for threading and when not to use it.

The best use of threading is in blog post comments where a user may wish to reply to any number of comments on a blog post. Posts on a blog do not normally indented to create discussion but allows response/feedback. It's almost like many little conversations isn't it.

Many little conversations is the opposite to what forums are about and I don't need to tell you guys that. I feel conversations in a forum must move forward all the time and it is that reason I think the idea of threading in phpBB should be buried.

At most I would like to see a mod and a Wordpress plugin that ties a post on each platform together i.e. a web master posts on Wordpress, the same post appears in phpBB, nested comments commence on the WP site, but those nested comments appear in the standard way in phpBB and automatically quote the comment being replied to. New replies on phpBB would reply on the Wordpress post as brand new comments. Visitors can participate in the approach they prefer. This is actually the sort of bridging I'm hoping to add to our WP e-Customers plugin. The ability to bridge like that is a reason phpBB core developers should focus on improving this platform strictly as the forum it has always been and not spend time on this.
User avatar
Lumpy Burgertushie
Registered User
Posts: 67902
Joined: Mon May 02, 2005 3:11 am
Contact:

Re: What's the current status/thought on threading?

Post by Lumpy Burgertushie »

I can see having a blog and a board but I have never seen the point of having a post on one be applied to the other all the time.

why bother with having both systems if you are going to do that?
blogs are normally not disucussions, they are posts with comments ( if allowed ).

most blog systems do not work very well for discussions anyway.


robert
I'm baaaaaccckkkk. still doing work on donation basis. PM your needs.

Premium phpBB 3.3 Styles by PlanetStyles.net

If nobody is in the forest, does a tree really fall?
Post Reply

Return to “phpBB Discussion”