Topic Jumper - coming soon



  • This is your chance to tell me how much I'm wrong before this gets completed.

    [THIS IS A WIP. YOU CANNOT DO THIS HERE (YET).] Please criticize the design laid out below.


    So, this is a post jumper. You can open it by clicking in the middle of the progress bar, or by pressing p. It's slightly transparent.
    After opening it, keyboard focus is in the textbox, and you can start typing a number. Or, click on one of the boxes and the box will be populated with the number.

    To actually go to the post, click on the green arrow, or press Enter in the textbox.

    The size of the boxes can be calculated from one of a few things, but what I'm using right now is the size of the raw post. I do not doubt that someone here will abuse that via HTML comments in the post raw.

    If you click on a box, the text box is filled with its post number.

    Here's another example with a smaller test topic:

    Proposed workflow:

    1. Read partway through topic
    2. Make reply
      You're clearly stupid and do not know anything about this subject.

    3. Click on "of" in 54 of 54
    4. Click twice on the last green block
    5. You're back where you were.

    fun fact: use ctrl-enter to submit



  • This comment is a WIP, do not read or reply to it yet

    You are wrong/right about this and need to die in a fire/live hapilly after ever



  • @riking said:

    Click on "of" in 54 of 54

    Too small.

    @riking said:

    Click twice

    Doubleclick? Cumbersome.
    Extra clicks? Slow.

    The actual scrollbar is right there. It requires zero clicks, double or otherwise, to summon and then use.

    So what I'm saying is that, if you're going to reimplement the scrollbar, it must be visible on the page at all times, just like the baneling widget.



  • @dhromed said:

    riking said:
    Click on "of" in 54 of 54

    Too small.

    It's 40% of the progress bar. Left 30% - 4px is up, right 30% - 4px is down, middle 40% - 8px is the jumper trigger.



  • How about;

    Pagination, # of items, change # of items in a page, (proper scrolling, in-context, representative size) scrollbar, jump to page, right-clickable, reply inline.

    What's not to like?



  • @skotl said:

    Pagination, # of items, change # of items in a page, (proper scrolling, in-context, representative size) scrollbar, jump to page, right-clickable, reply inline.

    What's not to like?

    This is slightly off-topic, but.....well..... Here's the problem with pagination. And by 'pagination', I mean 'the current implementations of pagination', because that's what really matters. We're comparint implemetations that already exist here.

    How big is this hibox, relative to my screen? The one in the red box(es).

    And the one you just posted:

    That's pretty freaking small.

    Compare that to the size of this hitbox, relative to my screen: (Photo Copyright © Walmart)

    It's... a bit bigger.



  • Also, another redesign - circles instead of arrows, in the middle of the bars.



  • Oh wait - I have a better example!



  • @riking said:

    It's 40% of the progress bar. Left 30% is up, right 30% is down, middle 40% - 8px is the jumper trigger.

    So that's the word "of" PLUS the post numbers?

    Also, 50% of 2px is 1px, so percentages are pointless numbers here.



  • @riking said:

    How big is this hibox, relative to my screen? The one in the red box(es).

    That is a good point and I'll have you know that:

    1. On the CS thread list, I used stylish to make the last page REALLY BIG with like 20px padding etc, just to have a bigger click target
    2. I pretty much only ever click "Last" in the bottom-of-page pager, if and when I use that pager.
    3. When I'm browsing pages (which is almost never), the number link size isn't really an issue.


  • @dhromed said:

    3) When I'm browsing pages (which is almost never), the number link size isn't really an issue.

    I was including both, to be generous. This is a problem on every forum, frankly.@dhromed said:

    1) On the CS thread list, I used stylish to make the last page REALLY BIG with like 20px padding etc, just to have a bigger click target

    Yup. I think I would do that too. But -- we're software developers, right? Us, of all people, should learn about the power of defaults. Not pushing for sane defaults is a real WTF.

    Reference: MS Word 2007, Autosave defaulted to off.

    This is a horrid paraphrasing, but here:

    The truth of this was revealed to some Microsoft researchers, who in the early days of Microsoft Word asked lots of people to send them their configuration files. These were anonymous, because the researchers just wanted to find out what people actually preferred, so they could have those set as the defaults. To their amazement, they discovered that less than 5% had made any changes. At all. Even though there was a fantastically useful autosave feature but it was off by default. Why? Because a programmer inside Microsoft had set the configuration file to all zeroes for simplicity. And "zero" in the config file meant "no autosave".


  • BINNED

    Space work(ed|s) in Opera 12 very nicely (Fast forward activates once you reach the end and press space again).

    Sadly, it got killed in favor of hamburger menus.

    See, there's a keyboard shortcut to add - if window scrolled to bottom, space goes to next page.



  • I like the idea of the topic jumper, but won't it start to add significant overhead on large threads? Surely fetching every reply from the database to calculate the size for every page request is going to cause problems when you hit threads with thousands of posts.

    Are you generating the jumper on the initial page request or dynamically when the box is clicked?



  • @riking said:

    Us, of all people, should learn about the power of defaults. Not pushing for sane defaults is a real WTF.

    What's the relation with this thread scrubber?



  • People were asking for it, the DC Team™ strongly indicated they wanted it, and I was "bored" at 2am.

    @Keith said:

    Are you generating the jumper on the initial page request or dynamically when the box is clicked?

    Eeehhhh.... I'm shipping down all the data on the first load. 😦
    And every additional load.



  • @riking said:

    Compare that to the size of this hitbox, relative to my screen

    Guess what? Spacebar already works on CS to move you to the next page (at least in Opera).


  • BINNED

    @ender said:

    Guess what? Spacebar already works on CS to move you to the next page (at least in Opera 12).

    FTFY


    Filed under: Still bitter



  • @riking said:

    Eeehhhh.... I'm shipping down all the data on the first load.

    Ah, that might not quite fit in with Jeff and Sam's vision. 😄

    I like the idea though.



  • Fit in with the vision? I don't think small data payloads is a high priority -- you should see the rest of the serializers. Half the crap in there has extra wrappings, and some of it I'm not sure is even read by the client! Some of the code is clearly for some past vision that didn't work out in the current data model, and badly needs refactoring. (I'm looking at you, PostAction...)

    The code that I'm writing today is entirely new shit!



  • @riking said:

    People were asking for it, the DC Team™ strongly indicated they wanted it, and I was "bored" at 2am.

    But what's the relation with this thread scrubber?



  • My main problem with infinite scrolling isn't the infinite scrolling itself, but the fact that Discourse only loads a very small number of messages around the message you're viewing, which breaks searching with Ctrl+F, and the scrollbar and a few other things.
    And why must it unload the messages when you move away from them? This really makes no sense to me.



  • @ender said:

    This really makes no sense to me.

    How to handle huge topics?
    (what is a huge topic? 1000 posts? 5000?)



  • @dhromed said:

    How to handle huge topics?(what is a huge topic? 1000 posts? 5000?)

    You're right, my current implementation is breaking down, now that I test it with 800 posts.



  • This post is deleted!

  • Discourse touched me in a no-no place

    @dhromed said:

    How to handle huge topics? (what is a huge topic? 1000 posts? 5000?)

    As yourself this: will it handle a SpectateSwamp megathread?

    Filed under: the thought you didn't want


  • BINNED

    @dkf said:

    As yourself this: will it handle a SpectateSwamp megathread?

    I want that in a book form!


    Filed under: Not a scroll


  • Considered Harmful

    @riking said:

    You're right, my current implementation is breaking down, now that I test it with 800 posts.

    Perhaps it could load up 50-post uh… "chunks" and show your progress within a "chunk." Then you could have ways to jump to the first, previous, next, and last "chunk."


    Filed under: [Discourse blows chunks.](#tag)

  • BINNED

    @error said:

    Perhaps it could load up 50-post uh… "chunks" and show your progress within a "chunk." Then you could have ways to jump to the first, previous, next, and last "chunk."

    I kinda-sorta started working on "paging" that would kinda work in that way: keep infinite scrolling but give you virtual "pages" so you can jump around the topic in chunks. Not in actual DC code mind you, just a proof of concept, but there's a lot of fiddly math that doesn't work right yet involved. When I get it at least somewhat working I'll probably just upload it to JSfiddle for feedback.



  • @riking, thanks for the update on the feature. It definitely looks like it will eventually meet our needs. My only question is couldn't you have just loaded reply placeholders into the page using the approximate size algorithm so that the scrollbar was approximately the representative of the topic length? That seems more intuitive than this approach.

    Note I'm not saying your approach is wrong I'm just not understanding why this is better.

    Edited to remove egg from face/foot from mouth/whatever euphemism for being a dumbass you want to use



  • @dkf said:

    As yourself this: will it handle a SpectateSwamp megathread?

    55*50 = 2750 posts



  • @error said:

    Perhaps it could load up 50-post uh… "chunks" and show your progress within a "chunk." Then you could have ways to jump to the first, previous, next, and last "chunk."

    Already discussed.



  • @rad131304 said:

    Sam, thanks for the update on the feature.

    I'm not Sam. :P

    @error said:

    Perhaps it could load up 50-post uh… "chunks" and show your progress within a "chunk." Then you could have ways to jump to the first, previous, next, and last "chunk."

    50 might be too big for a chunk.

    How about choosing chunk sizes based on the size of the thread.... 1,10,50? With bumps happening at 60 of the previous size.


  • Considered Harmful

    @riking said:

    error said:
    Perhaps it could load up 50-post uh… "chunks" and show your progress within a "chunk." Then you could have ways to jump to the first, previous, next, and last "chunk."

    50 might be too big for a chunk.

    Sorry, I was hinting at the p-word.


    Filed under: [You've basically invented a horizontal scroll bar.](#tag)


  • @riking said:

    I'm not Sam.
    D'oh! I just assumed - didn't realize we had a 3rd Discourse person on here. Also I plead replying on mobile.

    Still, can you provide me some insight on to the decision to implement a horizontal scroll bar over using the existing vertical scroll bar?


    Filed Under [Insert ass pun here]



  • @rad131304 said:

    D'oh! I just assumed - didn't realize we had a 3rd Discourse person on here.

    For the record, I'm not being paid for this. yet

    Also, someone did actually tell me to make it vertical instead... Hmm.



  • @rad131304 said:

    didn't realize we had a 3rd Discourse person on here

    There's also itappmonrobot who's name and icon I see on the DC pulls list.


Log in to reply