insertnickname 7 years ago

Funny, I just made something like this today (but more primitive), mostly so that I won't miss Walter Bright's comments.

    // ==UserScript==
    // @name     Hacker News VIP highlighter
    // @version  1
    // @grant    none
    // @match    https://news.ycombinator.com/*
    // ==/UserScript==

    function highlightVIPs() {
      'use strict';

      const VIPs = [
        "WalterBright"
      ];

      const userTags = Array.from(document.getElementsByClassName("hnuser"));

      userTags.forEach(tag => {
        const username = tag.href.split("=")[1];
        if (VIPs.includes(username)) {
          tag.style.fontWeight = 'bold';
        }
      });
    }

    highlightVIPs();

(I'm not much of a JavaScript programmer, but it seems to work.)

  • eat_veggies 7 years ago

    Pretty cool! If you want to speed your script up, consider implementing VIPs as a Set() so lookups are approx. O(1) rather than O(n).

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

    • jessaustin 7 years ago

      Probably won't see much speedup with one VIP? b^)

      • insertnickname 7 years ago

        I currently have nine usernames in the array (removed all except Walter from the comment for brevity and privacy), but it's still a pretty small `n`. I don't know at what `n` the set becomes faster than the array, but I haven't noticed any performance impact from the script, and I can't be bothered even googling how to profile it in the browser.

        • sbjs 7 years ago

          To be fair, Walter is a pretty solid choice. He's a successful businessman and extremely technically smart. There are quite a handful of similar people on here, who are very successful and intelligent and whose comments are always well thought out and insightful. (I want to be one of them one day but my career is just budding, so only time will tell.)

          It almost makes me think HN should have a related feature, where people can universally stand out, separate from the leaderboard (link at the bottom). But knowing HN's philosophy, I know this would be against the spirit of the humble-meritocracy they're trying to build, and would do more harm than good.

          In fact, I even wonder if this HN-Friends extension is going to have an adverse affect on its users. Right now the usernames are (probably intentionally) understated, to draw more attention to the content than the author. If we notice the person, we already have a bias not only toward their comment, but to read their comment before anyone else's. This goes against the meritocracy that I love about HN. But I also wonder how many thread discussion I had where I missed the context of who is talking, and the direction could have gone so much differently because of it.

          And even more importantly, I love and encourage this kind of innovation, and don't in any way want to discourage you or anyone from making clever things like this!

          • insertnickname 7 years ago

            It's always fun to read a great comment and only then notice that it was Walter Bright who wrote it (and it often is).

      • JasonFruit 7 years ago

        What exactly is the b^) face? Smily staring cyclops? If it's an emotion, it escapes me.

    • anonytrary 7 years ago

      His solution is fine -- the asymptotic complexity in this case doesn't matter since N is bounded and small.

    • jonathanyc 7 years ago

      Hashing sets add a large fixed cost that dominates for small n. IIRC the rule of thumb is that arrays are better up til around a dozen or two.

peterwwillis 7 years ago

I'd like an extension to remove usernames entirely. I would rather my opinions about commentary be less biased, not more.

  • eat_veggies 7 years ago

    in that case, just add .hnuser to your ad-blocking rules.

  • TeMPOraL 7 years ago

    You'd probably want them hashed instead (maybe with a salt based on toplevel thread ID) - while you may prefer to not know who are you reading, you probably want to know whether a series of comments are written by the same person.

sbjs 7 years ago

Very cool! I think it's especially great that this is a browser plugin instead of a separate website. It's great when developers make things as easy as possible on users. Nice job, I'll be giving it a try!

  • yebyen 7 years ago

    Agree! I am an app developer, and I like to think about how to make app developers jobs (and onboarding) easier, and the next thing I will write on that vein I think, already decided with the idea and design mostly formulated, will be a Chrome extension (for Pivotal Tracker users that also connect Bitbucket to a CI, to aid in merge request management)

    This example is great, as it is open source and supports Firefox too. Maybe I'll do both browsers as well! This HN friends extension does most if not all of the primitive things that I will need to do, so I'm being sincere and I think it's a great publish.

    • eat_veggies 7 years ago

      Luckily, both Chrome and Firefox use the webextensions API, so supporting both is pretty simple.

yebyen 7 years ago

This is super! I was able to understand how to use it right away, installed and upvoted. I don't know how much I will use it, but I have often noticed the same insightful people popping up in discussions I am interested in, and so I will get some value out of it, and I guess I love the logo, too.

mikkergp 7 years ago

I have noticed that sites like reddit and HN feel implicitly anonymous. it'd be interesting to see how this helps reduce some of that. I've been trying my own ways of improving how I interact with people on reddit, maybe I'll try this.

gnicholas 7 years ago

Would be neat if you could tag people with different colors, to indicate like/dislike, or to indicate the primary topic that you have encountered them talking about in the past.

  • b_b 7 years ago

    I would think that would be generally harmful for the point of thoughtful discussion as you are essentially labeling a person from the get-go with a certain bias.

    • walterbell 7 years ago

      Works well when the labeled person writes thoughtful comments.

    • gnicholas 7 years ago

      I think it could actually have the opposite effect — that someone you've tagged at one point as someone you disagree with later posts something that you agree with (or vice versa).

      • genericid 7 years ago

        More pessimistically, it could make you disagree posts because they're made by someone you disagree with.

swaggyBoatswain 7 years ago

this is just like reddit RES that's pretty cool

I was meaning to write my own userscript / chrome extension to show a button if there's a reddit-thread with same URL trending in hackernews, so you can click and go to those comments. It would say how many comments there are, and pull up the one with the most upvotes/comments within a 6 month timespan.

Haven't gotten around to it yet unless someone else wants to make it

I made one for my favorite notetaking app though, that I use fairly often. I made a write up of things I learned to write it

http://vincentmtang.com/2018/06/29/adventures-in-writing-a-t...

dewey 7 years ago

Seems useful, does anyone know of a similar thing for Safari or as a userscript that works in Tampermonkey (across all browsers) or Stylish?

  • ChrisGranger 7 years ago

    With Stylish or similar, you can do the username highlight like so:

    a.hnuser[href*="id=dewey"] { background-color: orange !important; color: white !important; }

tomkinson 7 years ago

Love it. Thanks. Even better if tag is visible btw.

  • eat_veggies 7 years ago

    I'll work on it!

    • sbjs 7 years ago

      Also I would personally prefer for the "tag" box to have a save button next to it. It wasn't clear to me whether it autosaves or if I was supposed to type the name before clicking "add friend". Could just be me though, but I would like this feature. Added this issue so that if people agree or disagree, they can vote on it through thumbs up/down in the Github interface: https://github.com/veggiedefender/hn-friends/issues/1