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...

22 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. Floating Box by Anonymous Coward · · Score: 1, Informative

    Is there no way to integrate that weird floating box (with comment numbers for full, abbreviated and hidden) properly with the page? It's distracting. At least it now stays dead after you close it... until you open a new article. Other than the weird floating box that doesn't integrate properly with the page, I rather like the new system.

  5. 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.

  6. 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.
  7. 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...

  8. Re:Discussion2 Observations by Inda · · Score: 2, Informative
    A personal nitpick (likely CSS related): you can't use bold or italics inside of a blockquote

    Sure you can. Well, bold you can.

    Using Firefox here if you care.

    Please sort the Javascript out fully before implementing this. I like browsing the web on my old, old, old PC. Not all of us feel the need to upgrade our machines into gaming rigs. It plays DVDs, Xvid, MP3s, etc etc - it should be able to handle a bit of nicely coded JS.

    --
    This post contains benzene, nitrosamines, formaldehyde and hydrogen cyanide.
  9. Re:hopefully... by Ironsides · · Score: 2, Informative

    At work my co-workers are "forced" to use IE. Lucky for me, I made them give me local admin rights to my workstation so I can install and uninstall software at will, like FireFox / Opera / Open Office / Gimp / Cygwin.

    I don't know about some of the others, but FireFox installs fine without admin privlidges. All you need to do is place the firefox install directory in the local user profile instead of program files and you are all set.

    --
    Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
  10. Re:Define hypocrisy by Anonymous Coward · · Score: 1, Informative

    Did it never occur to you that not all of us have a choice? I have a feeling more than a few of us are reading/posting from work, where installing a third-party browser (or any program, for that matter) may be prohibited by group policy. And IT isn't going to change the policy just so you can waste time reading Slashdot at work.

    And some people actually prefer IE, believe it or not...

  11. Re:Define hypocrisy by Dilly+Bar · · Score: 2, Informative

    Tried on IE7 RC1 and it doesn't seem to work.

  12. Re:hopefully... by empaler · · Score: 2, Informative

    If they can run programs off of their own USB devices, there's always Firefox Portable. Love it.

  13. "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
    3. Re:"Broken" Opera Javascript... by MagicM · · Score: 2, Informative
      It's not an identifier, though, it's a property.

      My bad. You're right. And in case someone else bothers you about it, you can point them to the ECMAScript spec (PDF) section 11.1.5, where it has the following grammar:
      ObjectLiteral:
        { }
        { PropertyNameAndValueList }

      PropertyNameAndValueList:
        PropertyName : AssignmentExpression
        PropertyNameAndValueList PropertyName : AssignmentExpression

      PropertyName:
        Identifier
        StringLiteral
        NumericLiteral
      Sorry to bug you. Keep up the good work!
  14. If it were just IE... by jd · · Score: 2, Informative
    ...I personally would just stick with the standards. However, the display is not great on Firefox, Opera or Konqueror, with the control widget window sometimes covering a full screen or more. It's sporadic. I haven't seen too many other display bugs, that's the main one, but it's one I'd really like fixed. as it almost has to be a code bug, not a browser bug.


    There are a myriad of other features I would like. The ability to sort was a key feature for me in the classic display, and this new display could have vastly more power on things like that. (For example, sorting by probable association, so if there are multiple threads discussing the same thing, they are together.) You are limited on server-side processing, as it's time-critical - you're serving 100,000 users (the same circulation as a national newspaper), so powerful server-side features can be a real headache. With that kind of userbase, it's much better for the server to just update an index of probable keywords and deliver that to the client to do any further processing or sorting.


    That, to me, is an important tool. Information is useless if it's so scattered that it takes more effort to collate it than to learn it from scratch. The ideal would be to be able to instruct the browser to recursively go through the related articles listed at the top and pull those indexes as well, so that users have the power to view the history and background of a discussion across multiple articles. (It won't prevent rehashing, which is inevitable, but it may encourage people to move further in their thoughts than is otherwise likely to happen.)


    What has always made Slashdot exciting is that it has dared to challenge conventional wisdom on how news works - even the UK's Guardian newspaper cites Slashdot as the inspiration behind the blogs attached to articles, and the BBC's user moderation system is very likely a derivative of the system we all love and use. It's experimented with presentation, filtering, tagging, cross-referencing and windsurfing. The new front-end provides a thick-client interface, with all the possibilities that implies. All that power (Power! POWER! And it's even better than an IBM POWER! Bwahahahahahahaha!)

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  15. 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

  16. 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.'"
  17. Re:hopefully... by pudge · · Score: 2, Informative

    We are shooting for IE7 compatibility, but come on ... IE7 is still in beta. It's a moving target. You can't expect our timeline to be significantly ahead of Microsoft's. :-)

    Also, as other posters have said, it's one thing to criticize sites for using proprietary IE-only functionality. We're using no such proprietary functionality, only stuff that Microsoft says will be included in IE7 anyway.