9 ms·
> Like getting notified when someone @mentions or replies to you Really? _that_ is complicated? Serious question, do you find it complicated because you're st
by hasenj 9y ago
> Like getting notified when someone @mentions or replies to you
Really? _that_ is complicated?
Serious question, do you find it complicated because you're still a beginner, or is there something I'm missing?
What language(s) did you use?
- askmike 9y agoI guess it is complicated compared to all the features mentioned before: complicated is not the right term, but extending users sessions with notification/messaging support is probably more code than the rest of the forum combined (in every language). Suddenly there are a lot of things (on top of user sessions, which most web languages/environments have plug and play solutions for) hitting your database and effecting your caching strategies.
- zachsnow 9y agoThis person said only that there is a lot to do, not that it is complicated.
- KajMagnus 9y agoWell this @mention is a bit more complicated than what one might think. For example: If someone creates a post, without any @mention, then edits it, and adds a @mention — then, do you detect this, when looking at the edits, and send a @mention notification now? And what if s/he edits the post again, and removes the @mention, then, do you remove the notification? Cancel the email if it hasn't been sent yet? And if the email has been sent, and the user clicks the link, and views the post — but the @mentioned user sees no @mention because it was removed, then ... this is not good UX. Should you do something about this? Explain that the @mention got removed? Or just leave the user slightly confused? Also, do you really want to send an email for a @mention immediately? What if the user who writes the post, keeps editing it, after having saved it? Should you wait for a minute or two, until s/he seems to be done editing it? And then generate the @mention email? Or directly, even if then an early out-of-date version of the post will be included in the email. What if the @mentioned user is in do-not-disturb mode, then you need to schedule the notification for later. And what if the @mentioned user is already online and sees the post with the @mention in, diriectly? Then maybe you needn't generate any notification at all. But how do you determine what s/he is reading currently? There's a lot to think about (more than what I mentioned above) that one might not think about, ... before one starts implementing everything. — And this is just for @mentions. ... Kind of goes on like this, with every small seemingly simple feature you want to add.
- nerdponx 9y agoSure, but the complexity you're describing is basically business logic. Incorporating it still shouldn't lead to a slow bloated web application.
- test1235 9y agoI don't think OP said his project was slow or bloated: just that it was a lot of work to implement the extra little features.
- foxhop 9y agoWhat if the @mention user decides to change his/her display name, now you need to parse @mention into a unique id and save that in the database with comment body and then translate it back when you serve it to the currently chosen @mention name...
- ShannonAlther 9y agoWhy would you allow users to change their display name? It's a forum, not social media.
- foxhop 9y agoCheckout Remarkbox, I generate them a random display name when they sign up and then allow them to change their display name later. Regardless of the type of application, why would you not want a user to be able to change their display name? If I was able to change my display name on hacker news, I think I would.
- always_good 9y agoOf course it's social media. The username and avatar is one's social identity on a forum. I think you have a very narrow experience with forums if you find it surprising that someone wants to change their username if you accept that they would also want to change their avatar.
- 9y ago
- Johnny555 9y agoA good example of "the devil's in the details" is the decision chart of how Slack decides whether to send a notification for a particular message. I mean, how complicated could it be, if the user is in the channel and he doesn't have notifications turned off, then send it, it's just a simple nested if statement, right? But, it turns out that when you map out all of the decision points, it's quite a bit more complicated. https://twitter.com/mathowie/status/837735473745289218 https://twitter.com/mathowie/status/837735473745289218
- hasenj 9y agoNice but misleading graph. If you count the situations that lead to "No" you'll realize that all the "No" cases can be easily checked for, and if you're not in a "No" case then you're in a "Yes" case. Can probably be implemented in a regular function with about 30 lines of code?
- robinwassen 9y agoIt's not hard to implement the logic when you have the rules. It's hard to define the rules.
- arkh 9y ago> It's not hard to implement the logic when you have the rules. It's hard to define the rules. Software development in a nutshell.
- Johnny555 9y agoYou're glossing over the fact that in order to have all of those complicated notification rules that users expect, you have to allow the user to set all of those complicated notification settings. You have to give them the ability to subscribe to threads, set notification preferences for a variety of items (channels, username mentions, keyword mentions, @here mentions, etc), set DND and exceptions, etc.
- KajMagnus 9y ago
- always_good 9y agoA modern forum system is a culmination of all these features and many more. And each feature always seems trivial on the surface. That you pick on this feature as an easy one makes me chuckle and shake my head slowly as I recall the hubris of my past self. I once made the mistake of thinking that building a forum would be easy, so I can relate.