Feasibility of a reddit-like "hot" order


(Noam Yorav-Raphael) #1

Hi,

I consider using Discourse to start a forum for political discussion. I think that as it gains traction, a default “hot” order, which combines popularity measures (likes, replies and views) with the age of the conversation, would be very useful. Like in Reddit, it would let visitors see what’s most interesting, and would also allow new posts to have an opportunity to be rated.

My question is, can you estimate how difficult would it be for an experienced programmer (me) to add this feature along the way?

Thanks,
Noam


(Sam Saffron) #2

Would be pretty easy, cause we already ship with it … its called /top Discourse Meta


(Noam Yorav-Raphael) #3

Thanks! However, /top is not exactly what I mean. top orders by popularity, and filters by date. This means that when people want to see interesting posts they go to top, and new posts depend on people viewing the default latest. Reddit has a top view too, but the default view is called “hot”, and it shows posts ordered by a function of both popularity and date. This means that the front page shows both new posts and recent highly rated posts. New posts which get a high rating remain in the hot view for a relatively long time, while less interesting posts drop quickly down the list.

This means that people immediately see interesting posts on the front page, but we don’t depend on other pages (latest) for new posts to get rated.


(Noam Yorav-Raphael) #4

I’d like to repeat my main question: since I think that this feature is not yet available in Discourse, can you estimate how difficult would it be for an experienced programmer (me) to add this feature - another order option, sorted by a function of both popularity and date.


(Jeff Atwood) #5

Not quite – our /top page selects the “correct” default time interval for you. If you have been here recently, you’ll get “top today”. If you have been gone for even longer, “top week”. Longer still? “top month” or “top year”. Forever? “top all time”.


(Noam Yorav-Raphael) #6

That’s a nice feature. But I still think that a front page that serves both the interest of the reader and the rating of new posts is nice. So I still think it would be a nice feature, and wonder how hard it would be for me to implement it for my instance of Discourse.


(Sam Saffron) #7

Integrating a custom sort and tab via a plugin will be challenging


(Noam Yorav-Raphael) #8

And how difficult would it be to do it via a patch?


(Sam Saffron) #9

impossible, you would be stuck with code you have no fighting chance of keeping up to date.


(Noam Yorav-Raphael) #10

Would keeping the patch up to date be impossible because it would be a complicated patch, or because the code changes a lot?


(Sam Saffron) #11

This code is likely to be refactored a few times in the next year AND I have never seen non-trivial patches kept up. Instead what I see is dead version of Discourse that are left behind with security holes.

Only viable solution is a plugin, which means you would need to come up with an extensibility interface and that is hard.

Why not start with something easier, we have like 200 bugs open :slight_smile:


(Noam Yorav-Raphael) #12

:smile:
My motivation is to create a discussion forum for Israeli political discussions (entirely non-profit, I just think it would be important). I would try to fix bugs that I encounter, and be very happy to contribute the fix to help others. However, I don’t see myself fixing Discourse bugs that don’t itch me - I’m sorry, but I already don’t manage with other things I have to do in my life.

I asked because I think that this feature might be important to the forum I envision. If I see it’s actually important, and decide to create a patch, I will try hard to keep it up to date.


(Sam Saffron) #13

My point here is that this is a rather complex area that is very involved. If you want to even start broaching it I would strongly recommend getting used to Discourse first by itching other, smaller itches you have, that do not require major rearchitecture. I am not trying to solicit FREE help here, just trying to make sure you are set up for success.

This is a terrible idea for a first project with Discourse, its complicated, very complicated.

Also, I strongly recommend using the tool first as is and seeing if the current features work for you before trying to mold it into something it is not.

For your particular case I would strongly recommend focusing on getting RTL working as perfectly as a possible and perfecting the translation, both are far more important than another topic sorting.


(Noam Yorav-Raphael) #14

Indeed. I never thought of it being a first project, I just considered how difficult it would be to add it if in the future I think it’s important. It’s obviously not important for a low volume forum, as it would be in the beginning.

It’s great that you mention RTL and translation! Those are indeed the first things I am about to get into, as they are critical for a good forum in Hebrew. I hope to start in the next few days.