You are reading a single comment by @mashton and its replies. Click here to read the full conversation.
  • Ah.

    This is far more complex than you realise.

    Your post isn't 5457 to me, it is 5368. For I have ignored mdcc_tester who I believe has posted a fair bit in this thread.

    The logic to calculate which page a post is on is quite expensive... we remove, per user viewing it, the posts that are deleted, moderated, by those ignored, etc. In fact... I'm on page 215, I don't know what page you are on.

    The cost is such that we don't do it... we provide a link, the "in reply to" link. That is the only time that we bear the cost of working out what page to find a post on.

    We don't actually know the post number as 5457 (or whatever)... all we actually do is get you to the right page, multiply by 25 (posts per page) and then increment a counter on that from the first post on a page to the last on the page.

    If you think about it that's neat... we only ever need to work on the 25 posts that we're going to display. A SQL SELECT statement that only needs to work on 25 rows. But to do what you need I'd need to calculate the above for each of the 25 posts that can appear on a page. Effectively, the cost of rendering a page will be multiplied by up to 25.

    Fun, eh?

    The joys of a heavily permissioned and yet performant system for displaying long threads (can you imagine the work that happens on the Spotted thread?).

  • Ah ha, yes that makes sense. Of course, I am now wondering if there is a way of performing the necessary lookup logic at the point of hover over, with an AJAX style load, instead of a full page load redirect.

    Not a straightforward fix though.

    You know, if I find the time, I would love to get to grips with the code base and maybe submit some changes. I don't know if you are up for running a getting started session sometime? I know that at least one other person has expressed an interest in doing so. Can't remember who, right now...

  • You know, if I find the time, I would love to get to grips with the code base and maybe submit some changes. I don't know if you are up for running a getting started session sometime? I know that at least one other person has expressed an interest in doing so. Can't remember who, right now...

    Today, it's best just me doing it.

    We built it as a platform, optimised for how it would need to run and grow. It wasn't optimised for how easy it would be to spin up and run a local development environment.

    Needless to say, if you want to start work on it... it's a bitch to get running locally (even though we have provided a repo with Vagrant and some instructions).

    What I'm currently doing is tidying up the Go code so that I can move the Django logic into Go. This will take a few months... but the outcome should be that it will be extraordinarily easy to build and run locally, which means it will also be really easy to work on and contribute to.

    I'm happy to talk you through code, to give lessons on how it works, etc. But today it remains difficult to just get working on it, as it's difficult to run a dev environment.

About

Avatar for mashton @mashton started