1. 92

Hey folks,

Lobsters has had a busy week of code to announce.

The big new feature is the reply tracking that @355e3b implemented. You now have a page to see all new replies to your comments and stories at a glance, including a page showing only unread replies.

I’ve long thought that the conversations are the best part of the Lobsters community. I hope this helps grow good discussions. To avoid this also helping flame wars grow, though, the replies page does not include replies or replies to comments with negative scores (less than 1% of comments in the last 90 days).

I know many folks currently watch the thread page (for example) that’s linked from the “Comments Posted” number on their profile to see new replies to their comments. If this rolls out smoothly, in a week or so I’ll change that link to be a page of just the user’s comments, not thread, and remove the “Your Threads” link in the header. This will make actually reading someone’s comments a lot easier; it’s often hard to find them in the tree of replies.

Related to comments, there will be less comment deletion when users become inactive by deactivating or being banned. Previously all of their comments were deleted; in the future only their comments with negative scores are. (To be explicit: I did not retroactively undelete any comments from inactive users, this is only a future change.) This is like how inactive users’ stories are not deleted because that would take down any community discussion. This change preserves more discussion for the community, which can otherwise turn into swiss cheese as users leave. To balance the user privacy against the community good, though, deactivating users can now choose to disown their comments. Doing so will change the author on their comments to @inactive-user.

Next up is a much smaller feature: hat doffing, for hats that no longer apply. The first use was @jcs stepping down from being sysop, second was @zg changing employers. A doffed hat is still displayed on old comments and on profiles, but can’t be used on new comments. There’s no UI for this, please just message me if you no longer need a hat.

Under the covers, I finished some flaky deployment automation, knocked ~45% off deployment time, and fixed some logging. My thanks to @jstoja for his ansible advice. This is not exciting user-level stuff, but having deployment and backups runing smoothly has freed up time and attention for these other features and bugfixes.

And speaking of bugfixes, let me call out some recent contributions:

And thanks also to all the folks who’ve made suggestions in issues and pull requests or talked through feature design in chat.

    1. 10


      To clarify a interaction: If you visit a story page with unread comments, the unread comments get marked as read and removed from the unread page. You will see the time get highlighted in red.

    2. 3
      > curl -s "https://lobste.rs/s/usel8g/unread_tracking_less_deletion_hat"

      Something has gone wrong somewhere for unlogged in users… comment pages are empty.

      1. 1

        Yep, just fixed. Sorry about that.

    3. 3

      Thanks! All very useful.

      I don’t have a real suggestion here but: The one thing I do like about the threads page vs the new replies one is that it lets me quickly see which comment of mine the reply is to, while the new replies page has less context (unless the reply quoted some). Not a huge deal though, and the tradeoff is that the threads page is more cluttered when threads are larger.

      edit: One minor inconsistency. Comments I’ve upvoted don’t have the upvote button highlighted in red on the replies page (but do everywhere else), which made me think I hadn’t upvoted some that I had.

      1. 4

        I like the new threads idea, too, to deal with exact problem pushcx mentioned. I also like seeing at least parent comment over mine. I still think HN’s parent link on comments is easiest solution since I can either:

        1. Click it, quickly read 1 or more prior comments, and hit Back button to return to mine.

        2. Use New Tabs for any like that so I can look at those with obvious context first then the rest.

        A non-HN solution might be just starting with parent comment, then yours, and then the rest. So, context you replied to is top level on your thread page. The cost is only one extra comment per thread instead of pile of them we have in old model.

      2. 3

        Thanks for noting the inconsistency, I’ve fixed it.

    4. 3

      Awesome features! Thank you @pushcx for implementing them, and thank you to everyone who contributed.

    5. 2

      Yay, I’m a hat doffing guinea pig! 😆

      1. 3

        And let us hope that @journeysquid never doffs the banana king hat.

        1. 1

          That was hilarious. Thanks for sharing it.

    6. 2

      @pushcx I’m not sure if Replies is working properly for me. When I click on Replies and go to All, I see two replies from 1 - 2 months ago [0][1]. They show up in All and Comments. I don’t see any other replies in any other section.

      [0] https://lobste.rs/s/hvjwd6/how_become_part_time_programmer#c_91muap

      [1] https://lobste.rs/s/z6dilb/initial_impressions_moving_from_git#c_5usy2s

      1. 2

        Mine seems broken. It said nothing when I connected earlier. Then it gave me two replies while the email gave me four. Maybe there’s delays in how the algorithm works.

      2. 2

        Yep, it was bugged and is fixed now. Thanks for reporting it.

        1. 1

          Looks good now, thanks.

    7. 2

      Hey @pushcx et al!

      Firstly, thank you for continuing to work on the code base to improve the site! Bravo! :-)

      I’m concerned about removing the Your Threads feature; I rely on it all the time to get me to threads I’m following; I would really prefer that to stay if possible please.

      Just my 2¢.


    8. 2

      happy to implement a little notification feed with Stream if people think it’s useful. pretty easy to aggregate it and plug in realtime WS based updates.

    9. 1

      “there will be less comment deletion when users become inactive by deactivating or being banned”

      This is a great improvement since we’ve had some great comments deleted as a side effect of deactivation. Since you said you didnt undelete, does that mean the comments “removed by author” or whatever it says are still there where they could be restored if account owner chose? Or am I misunderstanding?

      1. 2

        Yes, users can undelete comments unless they were deleted by a moderator. Lobsters does “soft” comment deletion via a boolean is_deleted on the comments table.

        1. 1

          Would it be possible to make the removed by author delete hide the username as well?

          1. 1

            Yes, but overwriting the data prevents a lot of very easy-to-make future bugs that present it.

            1. 1

              Does’t have to be overwritten from the database. Just has to show [deleted] or something on the frontend.

      2. 0

        there will be less comment deletion when users become inactive by deactivating or being banned

        At least for the being banned part I dislike the decision. A ban expresses the wish that someone should no longer be part of the community, this should include all of his statement. For one because most bans will most likely happen because of comments and secondly I think this to be good style to not use the work of someone with whom I don’t want any interaction. At the very least the non-deletion should be an opt-in feature so the banned user can decide about the fate of his contributions.

        1. 7

          The rationale behind here (I guess) is that when comments are deleted (even bad ones) context for comments around is lost. Some users (like me) are reading lobsters comments weeks after the last comment has been posted, by removing some comments, the threads start to be a big mess and you have to become and expert at guessing what’s missing.

          I totally agree that if someone has been banned, it’s probably because of his comments, but as you’ll note, when such bad comments are written, there is often very good replies that are often very informed and really nice for the threads.

          There are some pros and cons about it and, to me, when there is a doubt, better to keep more information than to trash it.

          1. 2

            Ha! Thank you for better expressing my thoughts than I was able to do myself 😀

        2. 2

          That sounds like an all or nothing decision. Nuance would require considering that a person might do good or bad things (in eyes of community) on a site with ours concerned about getting rid of the bad things. The good things they do, esp in terms of insightful comments, can still have benefit for people at that time and future readers. @pushcx previously said something along the lines of this site becoming a treasure trove of discussions worth archiving, sharing, or Googling. That’s what I hope as well. His seems to be supporting that goal by only throwing out the trash (negative scores) of banned users while keeping the treasure (neutral or good scores).

          On top of this, you might also not want to use those comments in light of your preference to avoid further interactions with such people. I can see the sense in it. Them just being here without the person being here is probably not going to hurt us in general case, though. Far as opt-in to non-deletion, two things come to mind:

          (a) That’s giving extra privileges and developer time for codebase to someone we’ve already decided to punish severely. Are they even worth the time? And do we want to let them take back any good stuff they gave after they’ve annoyed us enough for a ban? As in, we’d get nothing versus something out of whatever time we put into them.

          (b) Copyright Law. Depending on country (esp in US though), whoever publishes something has rights to how their content is shown and distributed. There may be some copyright consideration here. A preemptive solution would be modifying the site’s terms so that all comments are Creative Commons by default. Whatever is most permissive. It would be on invite page with a notice to current Lobsters that it applies from now on and retroactively to all comments. People leaving for legal reasons could fully delete their comments.

          1. 2

            All or nothing it is but I am in favor of keeping them all if the banned user is ok with it because:

            o I think it is fair after being banned to have a say in this. I don’t think this gives somebody power over something besides his own contributions. Also it’s easy to do, all you need is a single SQL statement to flip the is_deleted flag mentioned by @pushcx above or am I misunderstanding something? Also there is zero dev time, an e-mail from the banned user to the sysop if he feels like it’s ok to keep his comments should suffice

            o only deleting negative comments is also harmful as it removes context and it might lead to stories being only told by the winners. Especially as I didn’t see a threshold being mentioned. So -1 is enough to be eradicated…

            o I don’t think a single ban happened because of the majority of the community requested a ban. I also don’t think a single comment got the majority of votes from the users following the chosen tags. Most people are quiet. So I find it hard to justify the decision with “it’s better for the community”

            If I have to choose between keeping or deleting my actual preference would be to keep all unless law forbids to or the banned user asks for deletion of all of his comments. This would mean that all voices are being heard and we are adults and should be able to deal with unpleasant stuff.

            I hope banning is something that’s happening very seldomly and I’d rather deal with the blanks than starting to make arbitrary decisions about good and bad.

          2. 1

            If this site is going to become a treasure trove of good conversations worth archiving, I’d like to see what some of the good threads we’ve had so far are.

            1. 1

              I consider those anything where I see something really interesting or well-explained here that I usually don’t see elsewhere that’s worth passing on. I’ve seen quite a few over the year you’ve been here. You really haven’t learned anything or saw a unique comment you enjoyed here?

              1. 1

                I probably phrased that poorly.

                I’ve seen and enjoyed a lot of conversations here. What I’m wondering about is being able to discover said conversations as a new user, or after the fact. A “Best of Lobsters”, if you will. They don’t happen quite every day, and I’m not aware of any lists of those. I’ll probably start tracking them in my wiki, but yeah.

                The fact that your ability to dig into the history of your threads only goes back a couple of months, for example, keeps me from being able to reminisce without basically writing a program to scrape the whole site.

                I do think this site can be a treasure, but I’d kinda like a map. :)

                1. 1

                  “What I’m wondering about is being able to discover said conversations as a new user, or after the fact. A “Best of Lobsters”, if you will.”

                  I see what you mean now. I’ve been wondering same thing recently. It would probably have to be us curating the best that we post somewhere over time. HN added a feature for it at the site level called “favorites” where you just click that button on a story or comment to add it to your favorites page. For our site, lists might be made for each user, integrated from many users, or even done on a per tag basis. I don’t have a specific recommendation for now past bookmarking/saving good stuff to hand to people later when appropriate.

                  “The fact that your ability to dig into the history of your threads only goes back a couple of months, for example, keeps me from being able to reminisce without basically writing a program to scrape the whole site.”

                  (@pushcx might find this interesting, esp second paragraph)

                  Oh yeah, that’s a great point that reminds me of something. It is hard versus some other sites to find an older conversation due to limits of how far I can go back. On HN, I’ve been able to help people who replied late (i.e. work/family reasons) by opening a chain of older posts in new tabs that I quickly use “Find” on. I found our conversation in just a few minutes that way. There probably should be no limit past a rate limit either in general or when the site has significant activity. Basically, one user not DDOSing another.

                  Now, one might say just search for the info. That doesn’t work. The site search is very unreliable for me. That would be OK given I usually do a site-specific search on DuckDuckGo or Google for these sites that gets close to conversation I need. Even worse, those either find no threads or only a few since they don’t seem to index Lobsters at all. I mean, even Google doesn’t know much of this site exists. I’m not sure why since web tech and SEO isn’t my thing. If this is to be an archive, then it’s imperative that be fixed because something invisible to Google is asking to be overlooked or forgotten over time.

                  In my case, there were actually people asking for my comments or mini-essays on certain topics. I also wanted to revisit some from others. I couldn’t find them in Lobsters search or Google. One gave me threads with little relevance. One gave me “no results.” So, I just gave up on those prior writings until Google indexes the site or some other solution is found.