The "How do I do X?" Thread

On most forums there is the feature that threads with unread posts are highlighted. And there is then an option to jump straight to the first unread posts of a particular thread from the thread view. I don't see that here.

Any chance of that getting implemented?

I get that it'll require a ton more tracking of data but it helps a lot with ensuring that you have actually read all replies.
ratchetfreak
On most forums there is the feature that threads with unread posts are highlighted. And there is then an option to jump straight to the first unread posts of a particular thread from the thread view. I don't see that here.

Any chance of that getting implemented?

I get that it'll require a ton more tracking of data but it helps a lot with ensuring that you have actually read all replies.


There's a couple of ways to address this:
  1. Tracking the timestamp you last visited each forum's thread list and highlighting new threads and threads with new posts since then. It's cheap, but not very useful. Another page refresh and that information is now useless.

  2. For each member, keep track of threads they've actually visited and the last timestamp or post for each. Apart from being more expensive to track, this would also suggest a 'Mark all as read' button on each thread list.

    Additionally, it would have to be an opt-in feature, since I can imagine not everybody is charmed by the idea of us keeping track of which threads you've read last when. And no, the normal server logs don't have enough information in them to accurately reconstruct that data since they don't show who was logged in for a certain request and going by IP is unreliable.

  3. Thread subscriptions that either email you or show a list of unread threads somewhere near your profile button, maybe both.

I was personally thinking we'd go with the useless option #1... j/k ;-)

Seriously, though: #2 and #3 are both on our todo list. These will possibly be one of the $5/mo Patreon reward "Advanced features enabled on your handmade account."

We'll have to see how that shakes out when we have an idea on what kind of impact they have on the server performance.
Kelimion

Seriously, though: #2 and #3 are both on our todo list. These will possibly be one of the $5/mo Patreon reward "Advanced features enabled on your handmade account."


Seriously? These are such basic forum features (as in commonality, not ease of implementation) that paying for them seems utterly ridiculous. It's like a restaurant charging you for water refills.
Kelimion


There's a couple of ways to address this:
  1. Tracking the timestamp you last visited each forum's thread list and highlighting new threads and threads with new posts since then. It's cheap, but not very useful. Another page refresh and that information is now useless.

  2. For each member, keep track of threads they've actually visited and the last timestamp or post for each. Apart from being more expensive to track, this would also suggest a 'Mark all as read' button on each thread list.

    Additionally, it would have to be an opt-in feature, since I can imagine not everybody is charmed by the idea of us keeping track of which threads you've read last when. And no, the normal server logs don't have enough information in them to accurately reconstruct that data since they don't show who was logged in for a certain request and going by IP is unreliable.

  3. Thread subscriptions that either email you or show a list of unread threads somewhere near your profile button, maybe both.

I was personally thinking we'd go with the useless option #1... j/k ;-)

Seriously, though: #2 and #3 are both on our todo list. These will possibly be one of the $5/mo Patreon reward "Advanced features enabled on your handmade account."

We'll have to see how that shakes out when we have an idea on what kind of impact they have on the server performance.


You can enhance #1 by keeping some visitation data in more volatile memory.

For each user you would then only need a single timestamp of last activity in permanent storage. Then in volatile storage you would keep a "lastRefresh" timestamp that was in storage before he started the current "session" and the timestamps of each thread visited in the current "session".

A post is unread if posted after the lastRefresh and after the timestamp corresponding to the thread it is in.

From the behavior I believe that is what vBulletin does; unread posts are marked and tracked as you'd expect but if you don't interact with it for an hour then suddenly everything is marked read and new posts after you last interacted are marked unread.
Sizik
Seriously? These are such basic forum features (as in commonality, not ease of implementation) that paying for them seems utterly ridiculous. It's like a restaurant charging you for water refills.


You may notice I qualified it with 'possibly'. We haven't made a final determination what features will and will not be included for free. I was just throwing it out there as a suggestion.

It's not that strange an idea, though. LWN.net doesn't send thread subscription emails unless you're a paying subscriber. Just about every site that doesn't run advertising comes with perks to keep the lights on. The forums of which you speak more often than not do run advertising.

But like I said, I was just throwing it out there as an idea. It's not set in stone or anything. What is however ridiculous is calling something ridiculous out of hand like that. You could've expressed your dismay without resorting to such hyperbole.

Edited by Jeroen van Rijn on
Sizik
Seriously? These are such basic forum features (as in commonality, not ease of implementation) that paying for them seems utterly ridiculous. It's like a restaurant charging you for water refills.


Kelimion
You may notice I qualified it with 'possibly'. We haven't made a final determination what features will and will not be included for free. I was just throwing it out there as a suggestion.

It's not that strange an idea, though. LWN.net doesn't send thread subscription emails unless you're a paying subscriber. Just about every site that doesn't run advertising comes with perks to keep the lights on. The forums of which you speak more often than not do run advertising.

But like I said, I was just throwing it out there as an idea. It's not set in stone or anything. What is however ridiculous is calling something ridiculous out of hand like that. You could've expressed your dismay without resorting to such hyperbole.

There is a difference between paying for email subscription and paying to see what you have or have not read yet in the web interface.

I don't use email subscriptions but the has-unread-posts indicator (plus a jump to first unread) is basic forum functionality at this point.

edit: also nested quotes don't seem to work quite yet

Edited by Jeroen van Rijn on Reason: nested quote workaround
ratchetfreak
There is a difference between paying for email subscription and paying to see what you have or have not read yet in the web interface.

I don't use email subscriptions but the has-unread-posts indicator (plus a jump to first unread) is basic forum functionality at this point.

edit: also nested quotes don't seem to work quite yet


Fair enough. I can probably implement it in a way that's cheap enough to run at scale anyway. The suggestion was mainly a way to get people thinking about what would be considered worthwhile paid upgrades, and what is considered basic.

I wasn't singling out that particular feature as one of these upgrades, as a careful reading will show. T'was qualified with it both being possibly one of those features and that it additionally depended on how expensive it is to run compared to other features. The 'advanced features' are part 'how cool is that?!' and part 'how much of a resource drain is it'.

We'll take the feedback in consideration of course, and I certainly don't expect 'unread posts' to be a paid upgrade. What is and what is not depends on if a feature is expected/needed, or if it's nice to have or comparatively intensive.

As for what goes on which list, we welcome suggestions as always. Minus the hyperbole, of course. That's just totally uncalled for and doesn't meaningfully contribute to the discussion.

Edit: I should add that we're working on getting 501(c)(3) non-profit status. With that in mind, I could see us setting up a Patreon goal which means that if the proceeds are enough to cover unlocking every feature for everyone, then that's what we'll do. What target that would be is to be determined.

Additionally, we'll be releasing transparency reports at least twice a year that shows how the Patreon proceeds are used.

I for one would prefer to have paid upgrades, if deemed financially necessary, to be the domain of hosted projects. Any features available to regular members would be the same. That's my preference. What ChronalDragon, Abner and Miblo think is also to be taken into consideration.

We'll address 'perks' sometime soon in a more thorough blog post, though. :)

Edited by Jeroen van Rijn on
Kelimion
Tracking the timestamp you last visited each forum's thread list and highlighting new threads and threads with new posts since then. It's cheap, but not very useful. Another page refresh and that information is now useless.

Don't keep timestamp for visited thread list. Keep timestamps for each thread. Then you'll be able to identify which threads exactly have I read and which not (and which have new posts). This is how old handmade forums worked.
mmozeiko
Don't keep timestamp for visited thread list. Keep timestamps for each thread. Then you'll be able to identify which threads exactly have I read and which not (and which have new posts). This is how old handmade forums worked.


Oh, I'm aware :) I added #1 mostly to illustrate that the cheapest option isn't really an option. I was thinking of keeping track of thread|timestamp tuples for each forum, with another forum|cut_off_timestamp, such that you only need to keep track of the subset newer than a given time.

Newer threads are therefore automatically considered unread, but as you go through older unread ones, it'll update the forum's cut off timestamp as well as that thread's one. In doing so it can also remove the info you keep around for read threads older than that cut off which have been marked as read. Either reading all the threads or hitting 'mark all as read' would result in the per thread list being emptied and the cut off timestamp being updated to the newest post in that forum.

Edited by Jeroen van Rijn on
ChronalDragon

Rewrite in C --
We built this site on the Python-based Django server, which was valuable to help us get the site up in a reasonable time frame but has led us to become rather exasperated with its convoluted configuration and API. A Handmade-motivated website ought to be as Handmade as possible, and we have some interesting ideas we want to apply. We'll be working on this in parallel with the features we add to the live, Django version of the site, but don't worry, maintaining the current version will still be a priority.


Will the source be available somewhere? Perhaps it could become a very useful project in its own right: Handmade Forums! A clean, speedy, lean, yet featureful, alternative to the bloated beasts that currently exist! Or am I getting way ahead of myself? I mean, I have ideas... but no knowledge of web coding. :P

Edited by Kyle Devir on
Valmar
Will the source be available somewhere? Perhaps it could become a very useful project in its own right: Handmade Forums! A clean, speedy, lean, yet featureful, alternative to the bloated beasts that currently exist! Or am I getting way ahead of myself? I mean, I have ideas... but no knowledge of web coding. :P


The source to the current version of the site won't be released, at least not until after we've switched to the version actually written from scratch with dependencies limited to such things as crypto that are better left to the domain experts.

The rewrite however will have source available once it's at par with the features in this branch and ready to switch over to. There may be a delay between features appearing on the site added to the new engine and their source release, or there may not be. I'd prefer to do a security audit of every commit before it goes live and another one before the source becomes public just to make sure I didn't miss anything the first time around.

That said, there's a few things that need to happen before the rewrite will start taking shape:
- I'll be training up Miblo in the ways the current site works so he can take over maintenance of this branch
- I'll be helping him implement some of the missing features and crushing some of the bugs as part of that
- The new version of the codebase, as we'd originally envisioned it has some prerequisite tech to build first, which we'll use as the basis for the new site engine

That prerequisite tech can be used for other purposes as well, and will be available before the new site code is released as a separate project. More on that later :)
Kelimion

The rewrite however will have source available once it's at par with the features in this branch and ready to switch over to.


I look forward to it. :)
What language you're using for the back-end? PHP, Ruby,..?

What library will you use for searching this website?