Slashdot Discussion2 In Beta
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- Allows you to change your threshold, open and close threads, and expand long comments in place, without ever loading a new page.
- Allows you to moderate a comment without clicking a save-button that loses your place in a thread.
- A new, more intuitive user interface that more clearly displays the nature of comment thresholds.
- Vastly Improved threaded view that allows you to see more of the discussion in less space, without clutter.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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...
...We get IE functionality soon. Its pretty hypocritical not to considering the majority of slashdot users are against people developing IE only sites. Its also quite a stretch for me to get FF on my work computer. I'm sure the case is the same with many slashdotters.
As a follower of firefox since day 1, reading that in a place as big as slashdot really made a tear drop.
ok, the little control box either needs to be movable, or on the right hand side where it'll be less likely to cover text. It makes a big part of the screen useless as it is now.
Please for the love of , apply the moderation to a comment as soon as the moderation value has selected from the drop down box. I constantly forget to press the "Moderate" button which is hidden somewhere down the bottom, and therefore comments that I wanted to moderate don't.
Apart from that, it's a vast improvement. Especially being able to selectively browse comments that are below the threshold value, without loosing track of the conversation.
My spoon is too big.
I'm lowly member with a normal account, and I've been able to view the new comment system for like 2 months. Just a minor clarification...
I'll form my OWN solar system! With blackjack! And hookers!
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/
Nobody is being thrown away - IE users simply have a worse experience of the site but they can still read the articles and participate in the discussions.
Reality is defined by the maddest person in the room
End-users who choose to stick with a non-standards-compliant browser cause extra work for web developers. This is less than optimal, because it causes fewer features to be developed slower.
The problem is that end-users are the only ones in a position to change this. However, end-users usually have no idea that they're causing a lot of extra work to be done. One good solution to fix this is to develop for standards-compliant browsers first, and fix other issues later (which makes more sense purely from a development standpoint as well).
It is most certainly not a bad idea to get people to install firefox.
If you have trouble running it on your computer, install a post-1998 operating system. Upgrade to a 486. splurge for that extra 256MB of RAM. Get your cat out of the computer tower. Do whatever it takes, but get with the program.
If you can read this, I forgot to post anonymously.
Given the # of people who are only allowed to use IE when they're at work, if /. stops working w/ IE, productivity should skyrocket.
[o]_O
It took me 5 minutes and 20-30 mouse clicks to figure out two things:
1) You must have images turned on. The "up arrow" and "down arrow" things are represented in non-image mode by a bunch of asterisks, and there's nothing to indicate that they're live.
2) You must have javashit turned on. OK, I wasn't that surprised by the need for Javascript since this is supposedly the new AJAX hawtness, but I was surprised that it failed so ungracefully.
3) There's a lag (because we're dealing with Javascript) between the mouse click and the re-rendering of the page and the threshold box/menu.
4) There's an annoying thing about the threshold box, in that if all I want to do is crank it to "80 full / 0 abbreviated / 0 hidden" (I have zero interest ever seeing an abbreviated comment. This isn't Digg - It's OK to say something that takes more than one line to express.), I've gotta reposition the mouse after every click on the threshold box.
How about we find a middle ground: Website uses D2, but fails gracefully: If Javascript is disabled, it reverts back to D1.
(Yeah, I disable Javascript wherever possible. Google Maps and online shopping/banking are probably the only exceptions I make to this rule. I'm also occasionally on bandwidth-restricted connections, and have developed a habit of browsing as lean as possible. If a website's contents are mostly text, it should be just as usable with its images, javascript, and even colors/fonts overridden. I still prefer a good serif font over the "new" default, too :)
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.
... } 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.
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]:
I'd like to see a new/old flag, where "new" is any comments that have been added since my last visit to the article. Also a way to set the threshold to expand only the new comments.