Ignoring a topic
-
-
@asdf Eh, sorry if I used the wrong term. He's changing the database to add the "isIgnoring" flag, right? That's what I'm talking about.
-
@NedFodder said in Ignoring a topic:
He's changing the database to add the "isIgnoring" flag, right? That's what I'm talking about.
Sort of. The db will end up with objects like this:
> db.objects.find({'_key':'uid:1:ignored:tids'}) { "_id" : ObjectId("57100753588b2c2a1d2bc455"), "_key" : "uid:1:ignored:tids", "value" : "90", "score" : 1460668243249 }
So...you can see that the
_key
(which is how stuff gets looked up) identifies the user and what it's storing about him. So it's just more rows with a differently formatted key.
-
@NedFodder said in Ignoring a topic:
He's changing the database to add the "isIgnoring" flag, right? That's what I'm talking about.
I was just being a
-
@boomzilla How does NodeBB cope with the document size limit?
-
@blakeyrat Zillions of documents. I think I've referred to what are documents above (and possibly in other places around here) as rows, records or objects. My understanding of how it all works is still pretty basic. I've been learning a lot by trial and error and looking at examples in the code base.
-
@boomzilla said in Ignoring a topic:
@blakeyrat Zillions of documents. I think I've referred to what are documents above (and possibly in other places around here) as rows, records or objects. My understanding of how it all works is still pretty basic. I've been learning a lot by trial and error and looking at examples in the code base.
As i understand it pretty close yeah, an object is effectively a row in a traditional table, with collections of documents having the same schema being a traditional SQL table analog.
there's also some glue type objects, and a fairly generic sorted set object (which is what you're using for the ignoring tids) that seems to be a mongoDB equivalent of an index?
-
@loopback0 said in Ignoring a topic:
Why don't we have a shed emojicon!?
By the time we got finished bikeshedding it, it was a emojicon.
-
@blakeyrat said in Ignoring a topic:
@boomzilla How does NodeBB cope with the document size limit?
What's that, like 16 MB? I don't think anything that needs to be loaded to build a page should be more than, oh, a few MB total.
yes, yes... 2 MB ought to be enough for anybody... in all seriousness, though, that's on the large side even for images and attachments. Anything bigger should probably be hosted somewhere else.
-
@accalia said in Ignoring a topic:
there's also some glue type objects, and a fairly generic sorted set object (which is what you're using for the ignoring tids) that seems to be a mongoDB equivalent of an index?
It has indices. I think a sorted set is when you pull all of the documents based on a key. Or something. The _key field is definitely not unique.
@anotherusername said in Ignoring a topic:
What's that, like 16 MB? I don't think anything that needs to be loaded to build a page should be more than, oh, a few MB total.
Yeah. Post sizes are definitely smaller than that, though the cooked is going to be bigger than the raw.
-
@boomzilla said in Ignoring a topic:
The _key field is definitely not unique.
-
@boomzilla The closest analog to a "document" in a relational database is a "row". (They're not the same, of course, because a "document" doesn't have a set schema and a "row" does.)
The problem is they're limited to 16 MB, so you have to be careful how you use them, or have some way of handling the situation where a document grows (or tries to) beyond that.
-
@boomzilla said in Ignoring a topic:
The _key field is definitely not unique.
It's... not? It should be.
@boomzilla said in Ignoring a topic:
Yeah. Post sizes are definitely smaller than that, though the cooked is going to be bigger than the raw.
I'm not saying, "people are going to add 16 MB of ignore lists right now and break everything OMG emergency", I'm just curious how NodeBB handles that because they don't seem to be wrapping their MongoDB calls in anything to cope with the size limit.
I'm sure the answer is: they don't do anything to cope with the size limit and everything just breaks. Because why wouldn't it be.
Now if they had a professional software developers who actually gave a third of a shit about the product, like for example: me, they might have implemented a Mongo wrapper capable of splitting a single "record" into however many documents are required to store it.
-
@boomzilla said in Ignoring a topic:
@Jaloopa said in Ignoring a topic:
Looks sensible, but I'd be tempted to have the current state in the dropdown as well, with a check mark or highlight. Consistency and muscle memory and all that
Good point.
Hmm...not sure how to line all that up. Or what about after?
A better way to do it would be the way Windows does it, with a check showing to the left in a separate area of space dedicated to it:
-
@xaade said in Ignoring a topic:
I hate, actionable buttons that actually represent state. It's a terrible UI un-feature.
I agree. People get confused as to whether the button shows the current state, or clicking on it will enable that state, regardless of the wording.
-
@boomzilla said in Ignoring a topic:
I never used it but I'm so fucking tired of listening to the complaints.
Well, you'd be able to mute them, then!
I'm sure lots of people would appreciate being to ignore stuff like the guacamole thread. I know I would.
-
@blakeyrat said in Ignoring a topic:
The closest analog to a "document" in a relational database is a "row". (They're not the same, of course, because a "document" doesn't have a set schema and a "row" does.)
Yeah, that's how I've been using the term. As I understand mongodb, you can have different collections of documents. In NodeBB, the main collection seems to be
objects
.@blakeyrat said in Ignoring a topic:
The problem is they're limited to 16 MB, so you have to be careful how you use them, or have some way of handling the situation where a document grows (or tries to) beyond that.
I suppose that could happen eventually over time here, for those things that store an array of topic ids or something.
@blakeyrat said in Ignoring a topic:
The
_key
field is definitely not unique.It's... not? It should be.
_key
is a nodebb "defined" field that's indexed. There's also a unique (I'm assuming)_id
field. NodeBB stores stuff by the_key
field. Some things are unique by that, others are not, by design. Since it's a basic key / value store, that's how you (or at least how the NodeBB guys solved it...no clue if that's normal or whatever) end up with the equivalent of one to many relationships.
-
@FrostCat More to the point, he has to keep his eye on them (in theory at least) because he's a moderator. So he's not the intended audience for this feature regardless.
I don't. I want to ignore any thread that gets fucking stupid and never see it again ever.
-
@FrostCat said in Ignoring a topic:
A better way to do it would be the way Windows does it, with a check showing to the left in a separate area of space dedicated to it:
I certainly wasn't thinking about Windows, but that was my original intent. I'm just too much of a CSS retard to have figured out how to do it. Hmm....padding?
-
@boomzilla said in Ignoring a topic:
Yeah, that's how I've been using the term. As I understand mongodb, you can have different collections of documents. In NodeBB, the main collection seems to be objects.
Ok a normal person would use "collections" like a relational database would use "tables". And not just have a single generic one labeled "objects" like an idiot.
But then I remember that NodeBB was apparently written initially for a key/value store and Mongo support was added later, so it uses Mongo in a fucking moronic retard way. And now that I remember that, I retract my questions.
But... still Redis record size is 2 GB. MongoDB document size is 16 MB. So if they're "testing" (as if!) this shit on Redis and not considering Mongo, which is likely because all open source developers are incompetent, they're going to give someone a NASTY surprise sooner or later. Probably us.
Then I'll point and laugh and laugh and laugh.
-
@FrostCat said in Ignoring a topic:
@xaade said in Ignoring a topic:
I hate, actionable buttons that actually represent state. It's a terrible UI un-feature.
I agree. People get confused as to whether the button shows the current state, or clicking on it will enable that state, regardless of the wording.
When there's a and clicking the button brings down a list which indicates which of the possible states is selected, then I think it's sufficiently clear.
-
@blakeyrat said in Ignoring a topic:
Ok a normal person would use "collections" like a relational database would use "tables". And not just have a single generic one labeled "objects" like an idiot.
I'm sure you know better.
-
-
@blakeyrat said in Ignoring a topic:
More to the point, he has to keep his eye on them (in theory at least) because he's a moderator. So he's not the intended audience for this feature regardless.
I know that. I was enabling a mod abuse joke. He wouldn't want to ignore entire threads just because of individual complains in them, most likely.
-
@boomzilla said in Ignoring a topic:
I certainly wasn't thinking about Windows, but that was my original intent.
I mentioned Windows because it was an obvious example. Presumably X and MacOS let you do something similar.
@boomzilla said in Ignoring a topic:
I'm just too much of a CSS retard to have figured out how to do it. Hmm....padding?
Not sure. If there were a table the solution would be obvious. My next thought would be put the check in all three rows, and have it be the background color in the other two, but that might not be a good idea. Padding or margin or whatever might work--I'm not a CSS expert either.
-
@anotherusername said in Ignoring a topic:
When there's a and clicking the button brings down a list which indicates which of the possible states is selected, then I think it's sufficiently clear.
I work with a LOT of people and I'm quite convinced that's not true. We're talking about the people who will paste a screenshot of a Word document into an Outlook message, where the Word window has a screenshot of the thing they actually wanted to show you embedded in it. Twice. In one email.
-
@boomzilla said in Ignoring a topic:
I certainly wasn't thinking about Windows, but that was my original intent. I'm just too much of a CSS retard to have figured out how to do it. Hmm....padding?
If you intend to use the checkmark in FontAwesome (I believe there's a handful to choose from), you can do this:
<i class="fa fa-fw fa-check"></i>
for the selected option<i class="fa fa-fw"></i>
for the other options
The
fa-fw
forces the element to be a set width, so it should (in theory; haven't tried it) align everything properly. Just stick those things before the option text, et voila ;)Obviously, replace
fa-check
with whatever checkmark you want to use.
-
@FrostCat said in Ignoring a topic:
I work with a LOT of people and I'm quite convinced that's not true. We're talking about the people who will paste a screenshot of a Word document into an Outlook message, where the Word window has a screenshot of the thing they actually wanted to show you embedded in it. Twice. In one email.
Yeah, but those people will never get a clue. You literally cannot dumb it down enough for them. And most of the people here actually have a clue, so I'm pretty sure we'd have no problems with it.
-
@anotherusername said in Ignoring a topic:
. And most of the people here actually have a clue, so I'm pretty sure we'd have no problems with it.
I still don't like it either, because I don't know if the people who wrote the software had a clue, without learning the hard way.
-
@RaceProUK in practice, that appears to work. I just fiddled around in the element inspector for a minute:
-
@anotherusername Yeah, that looks better:
-
@boomzilla said in Ignoring a topic:
@anotherusername Yeah, that looks better:
But now the dashes don't line up.
-
-
@FrostCat they already didn't line up.
-
@anotherusername said in Ignoring a topic:
@FrostCat they already didn't line up.
But now it's more noticeable.
@boomzilla said in Ignoring a topic:
DOWNVOTE
Mod abuse!
-
I diaapprove this feature. It let's people leave the topic when we're still talking to them.
-
@fbmac said in Ignoring a topic:
It let's people leave the topic when we're still talking to them.
But doesn't prevent you from peppering them with notifications.
@FrostCat said in Ignoring a topic:
Mod abuse!
I have not yet begun to abuse!
-
@boomzilla said in Ignoring a topic:
@FrostCat said in Ignoring a topic:
But now the dashes don't line up.
DOWNVOTE
LIAR
-
@fbmac said in Ignoring a topic:
I diaapprove this feature. It let's people leave the topic when we're still
talking to themdeleting posts.
-
Started a topic over there:
-
@boomzilla said in Ignoring a topic:
I'm just too much of a CSS retard to have figured out how to do it. Hmm....padding?
As I said above: Why not use an actual table? It's tabular data, after all.
-
@asdf Oh, you've already solved the problem, sorry. NodeBB decided not to show me those posts until I posted my reply…
-
-
@asdf Eh, not really; it's more like a list with icons.
Nah, screw that, it is a list with icons ;)
-
@ben_lubar said in Ignoring a topic:
@boomzilla said in Ignoring a topic:
uid:1
That's me!
You wish.
@RaceProUK said in Ignoring a topic:
Nah, screw that, it is a list with icons
Indeed.
-
@anotherusername said in Ignoring a topic:
@loopback0 said in Ignoring a topic:
Why don't we have a shed emojicon!?
By the time we got finished bikeshedding it, it was a emojicon.
Not ???
-
@boomzilla said in Ignoring a topic:
Started a topic over there:
I think unread section is useless, no one uses it the way it works now
Shades of Jeff there. "I don't use this so it's useless"
-
@boomzilla said in Ignoring a topic:
@anotherusername Yeah, that looks better:
Couple of things. First, why is the icon for "show in unread" different from the icon on the actual "unread" menu item (the one that looks like an in-tray)?
Second, why does an item with a checkmark need its opposite to appear as a separate menu line? Near as I can tell, what you're doing here is providing two controls, one that says whether or not thread activity shows up your notifications list and the other that says whether or not it shows up in your unread list. So why not just have those two things in the menu, with a checkmark on each? Or if you're going to do it the new hipster everything-is-a-phone broken UI metaphor way, one of those clickable slide switches you can't actually slide, that turns green when it's active?
If there's currently no way to remove thread activity from both the notification list and the unread list, switching off either could switch on the other one. Then, when that ability does become available, just stop doing that.
-
@flabdablet said in Ignoring a topic:
Second, why does an item with a checkmark need its opposite to appear as a separate menu line? Near as I can tell, what you're doing here is providing two controls, one that says whether or not thread activity shows up your notifications list and the other that says whether or not it shows up in your unread list. So why not just have those two things in the menu, with a checkmark on each? Or if you're going to do it the new hipster everything-is-a-phone broken UI metaphor way, one of those clickable slide switches you can't actually slide, that turns green when it's active?
While you are right that it's two booleans, I think this radio list makes sense: the fourth state would be "Notify me on new posts, do not show this thread in unread (and don't highlight it like unread in any other screens)". I think you don't want to "hide" the topic from unread if you are that interested in a topic that you'd want to be spammed every time somebody makes a post.
If you're against the checkmark, wouldn't it better be a radio-list-circled-dot like ? Though then the others might need a circle to indicate they can be chosen as well...
Filed under: Developers shouldn't make UI designs
-
@JBert If it's a radio button list it should look and behave like one, and it should always have exactly three empty circles and one filled one. But given that all it does is control whether new thread activity turns up in spot A or spot B or neither or both, I really fail to see why expanding the spot A and spot B booleans out into a full truth table is necessary or even desirable.