Slashdot Mirror


Slashdot Discussion2 In Beta

Discussion2 has been in beta for a few months now on Slashdot. Initially available only to subscribers, it now should be available to anyone willing to login and click the checkbox at the head of every discussion. It is far from complete: IE doesn't work (patches welcome, but since only a quarter of you use it, it's not a huge priority) and performance is lacking (you want a fast computer for larger discussions) but it's already an improvement for most users. Read on for some notes on what we have planned.

The primary reason for discussion2 was to get beyond the pain in the ass that is navigating large discussion threads on Slashdot. You know the problem: once threads get deep, you have to click repeatedly, waiting for tabs to load. Or even when you encounter a long comment, you have to wait to get the full comment text.

Cool Things D2 Does Now
  1. Allows you to change your threshold, open and close threads, and expand long comments in place, without ever loading a new page.
  2. Allows you to moderate a comment without clicking a save-button that loses your place in a thread.
  3. A new, more intuitive user interface that more clearly displays the nature of comment thresholds.
  4. Vastly Improved threaded view that allows you to see more of the discussion in less space, without clutter.
Some items on the TODO list (more or less in order of priority)
  1. Make it Progressive - Right now D2 simply gets all the comments in a discussion. This sucks. We need to write a task to retrieve only appropriate comments. So if you are at Score:4 threshold, we don't bother retrieving the full text of all comments at Score:-1. And even better, if someone moderates or posts a comment, we need to update the page you are reading to reflect those changes. Again, the goal here is that once you load a page, you don't need to close it until you are done with the discussion. This actually has MANY subtle problems, like how do you notify a user when a thread 10 pages up has been replied to.
  2. Make it Fast Actually I think solving #1 will mostly solve #2 at the same time. Since right now we get the full discussion, we are getting WAY to much data. We need to get say 50 comments at a time, not all 1000. This will give your browser time to catch up and make the whole thing "Feel" faster. Right now, on my machine a 200-300 comment page is very usable, but to much larger and it starts slowing down. This is all machine dependent. I'm sure there are good javascript tricks that would help improve performance.
  3. In-Place Posting You should be able to post a comment without reloading a page. Right now you can just open a tab, but then you are looking at a stale discussion. This isn't that hard either- especially once we finish #1. Just need to open the reply page in a div, and when you save, make sure that the new comment is properly retrieved and inserted into the thread. But there's some subtle stuff here like how to handle previews. We need to change some of our error handling- the current system uses previews as an opportunity to warn readers about things that are "Wrong" about their comment. We need to figure out how to do that without launching new pages. It's not hard, but it'll take some time.
  4. Compatibility ok so Opera's broken Javascript implementation won't work unless they fix their browser, but we'd like to make at least IE work for the trivial percentage of Slashdot readers forced to use IE by their corporate overloads. But since 2/3rds of you use Firefox, fixing IE is just not at the top of my priority list... I'd rather make it work better for the majority. And as every web developer knows, cross browser platform compatibility can be a real bitch. But before we are out of beta, it probably would be nice to get IE functional, if only for other websites using our source code that actually have IE as the dominant population.
  5. Smooth out the UI there are a lot of parts to this problem. Right now the threshold change is buttons but it should actually be draggable, I'd like the widget to toggle from the top to the side, but need to build a horizontal version of the widget. The expansion/contraction of comments and threads have weird functionality that could be improved- for example there is a difference between expanding a comment and expanding a thread. And there's new concepts like expanding a child vs expanding an entire thread vs expanding "Siblings" vs expanding hidden children vs visible children. These are very interesting user interface questions that we'll start working out soon.
  6. Rethink What Old Functionality By this I primarily mean discussion filters and ordering. By default D2 uses a thread ordered, chronological display. The old system had many other sort modes, but I'm not how sure how effective these are once threaded. So I may simply leave the old system in place for users who want to see a flat discussion ignorant of threads ordered by date or score. Since this is only a tiny percentage of users, I figure it can wait.
Conclusion

A lot of the stuff you see in D2 is just javascript you can easily play with yourself. We haven't mangled it or anything so you js haxx0rz are welcome to submit patches for interesting ideas. We don't have a backend for progressive rendering, but there are a LOT of features that we want to implement that wouldn't even require you to touch the perl. Of course if you're willing to hack perl, it's all up on the website not that anyone ever actually bothers to contribute anything more than ideas and complaints, but it sure never hurts to ask!

Already around 13,000 of you are using Discussion2. We're a ways off from flipping a switch to make it the default for everyone, but it's already substantially better for users with fast computers and Firefox. Hopefully in a few more weeks it will be good enough for everyone. Thanks for the help along the way. We hope you like the new system... I sure do. And mad props to Nate & Pudge for their work on this...

13 of 421 comments (clear)

  1. IE not so important... by Beuno · · Score: 5, Informative
    IE doesn't work (patches welcome, but since only a quarter of you use it, it's not a huge priority)

    As a follower of firefox since day 1, reading that in a place as big as slashdot really made a tear drop.
  2. subscribers only? by Mini-Geek · · Score: 3, Informative
    Discussion2 has been in beta for a few months now on Slashdot Initially available only to subscribers, it now should be available to anyone willing to login and click the checkbox at the head of every discussion.
    I've had it since July 13th and I'm not a subscriber. Is the above statement incorrect or was I just accidentally offered it?
    --
    do {print "Mini-Geek Rules!\n";}
    until ($TheEndOfTheWorld);
  3. Opera by UpnAtom · · Score: 5, Informative

    I'm not sure what is supposed to happen, but there's no way to adjust threshold and the floating window is just annoying.

    I'm using the lastest weekly, 8573.

    Opera are pretty good at fixing bugs promptly if you let them know. Use the form if you don't have other contacts:
    https://bugs.opera.com/wizard/

    1. Re:Opera by stevesliva · · Score: 3, Informative
      I'm not sure what is supposed to happen, but there's no way to adjust threshold and the floating window is just annoying.
      Ironically, the floating window adjusts the threshold. No, it's not readily apparent that it does so, because it doesn't say "threshold" on it, but, there it is.
      --
      Who do you get to be an expert to tell you something's not obvious? The least insightful person you can find? -J Roberts
  4. Re:Tried it, didn't like it by jx100 · · Score: 4, Informative

    Just use the threshold menu on the left to move the threshold down. You'll still keep the capability to close comment threads.

  5. Re:Define hypocrisy by Richard+Steiner · · Score: 3, Informative

    It certainly is hypocritical, especially if those standards are so new (or so poorly implemented in mainstream browsers such as IE) that a large percentage of folks can't use the new version.

    What ever happened to serving the lowest common denominator?? There's a REASON why many sites eschew CSS and other trendy UI-centric crap and focus instead on maximizing the ability to deliver information.

    Slashdot is going the way of KDE and Gnome, with too much concentration on flashy UI elements and not enough concentration on service a diverse user base.

    --
    Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
    The Theorem Theorem: If If, Then Then.
  6. Re:Define hypocrisy by Rich0 · · Score: 4, Informative

    I agree with you on that point - you should code to the standard and making it look right is the browser's problem.

    However, I do want to comment that the threshold box tends to load outside of the window on konqueror - which is ACID2 compliant in the version I am using. If I hit the top link to reload just the comments it works fine.

    So this isn't an IE-only issue...

  7. "Broken" Opera Javascript... by Fweeky · · Score: 5, Informative

    Ok, so you're using a global variable called comments; a "hash" indexed by comment ID. Except it's just an object to JS, and you're telling it to create numeric elements in it... these elements are not just array indexes, they're also method names, and numeric method names.. well, they're a Bad Idea.

    With 2 search and replace operations, I have the basics of Discussion2 working in Opera 9.01 on a locally saved page:

    First, instead of doing comments = { [cid]: ... } do comments = { 'c[cid]': ... }. Now instead of comments.1234567, you're asking for comments.c1234567. Now in comments.js, replace comments[cid] with comments['c'+cid]. Now changing the threshold works just fine.

    1. Re:"Broken" Opera Javascript... by pudge · · Score: 4, Informative

      There is nothing wrong with the code. "Bad Idea" implies that we are using the the object literal in a way that could possibly be misinterpreted by a standards-compliant browser. That's not true.

      And yes, I already knew about the possibility of the fix you suggested, but we already have performance issues, and I am not going to add potentially thousands of concatenations per click to work around a bug in Opera, when Opera could just fix the stupid bug.

    2. Re:"Broken" Opera Javascript... by pudge · · Score: 4, Informative
      Oh, and here's the documentation. There's nothing in there about restricting the use of numbers.

      The real problem, BTW, is that Opera cannot handle *certain* numbers. Specifically, IIRC, it cannot handle 2^23 ... 2^24-1. Which happens to be where our cids fall.

      Totally not kidding. Check this out:
      var y = { 8388607: 1, 8388608: 3, 16777215: 5, 16777216: 7 };
      document.write("8388607:"+ y[8388607] + "<br>");
      document.write("8388608:"+ y[8388608] + "<br>");
      y[8388608] = 4;
      document.write("8388608:"+ y[8388608] + "<br>");
      document.write("16777215:"+ y[16777215] + "<br>");
      y[16777215] = 6;
      document.write("16777215:"+ y[16777215] + "<br>");
      document.write("16777216:"+ y[16777216] + "<br>");
      In Opera 9.01 build 3489 for Mac OS X, this produces:
      8388607:1
      8388608:undefined
      8388608:4
      16777215: undefined
      16777215:6
      16777216:7
      In Opera 8.54 build 2200 for Mac OS X, this doesn't work at all, because 2^24 makes it crap out completely. If I remove 16777216: 7, then it produces:
      8388607:1
      8388608:undefined
      8388608:4
      16777215: undefined
      16777215:6
      16777216:undefined
      Of course, in Safari and Firefox etc., it does as expected:
      8388607:1
      8388608:3
      8388608:4
      16777215:5
      16777 215:6
      16777216:7
  8. Re:Scratch that. by miscz · · Score: 4, Informative

    There is a bug in the moderation system though, at least it seemed so to me today. I could use single moderation point on the same page as many times as I wanted, it didn't work after going somewhere else and unfortunately it was my last mod point so I can't be sure if it wasn't me not being able to count. And I don't know how to report a bug :P

  9. Re:Define hypocrisy by drinkypoo · · Score: 4, Informative
    I'm assuming that the parent is working in an environment where he can't load Firefox because of lack of admin rights to his workstation? If so, try installing it into your profile where you do have rights, it runs OK for me that way.

    Why install? Download Firefox Portable. (I guess portableapps had to rename it because a search for "portable firefox" still brings up the old home not used for absolute aeons, as we measure time on the intarweb.)

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"