Show HN: Hacker Smacker – spot great (and terrible) HN commenters at a glance
hackersmacker.org75 points by conesus 2 days ago
75 points by conesus 2 days ago
Hacker Smacker adds friend/foe functionality to Hacker News. Three little orbs appear next to every commenter's name. Click to friend or foe a commenter and you'll more easily spot them on future threads. Makes it easy to scroll and spot the commenters you love to read (and hate to read).
Main website: https://hackersmacker.org
Chrome/Edge extension: https://chromewebstore.google.com/detail/hacker-smacker/lmcg... Safari extension: https://apps.apple.com/us/app/hacker-smacker/id1480749725 Firefox extension: https://addons.mozilla.org/en-US/firefox/addon/hacker-smacke...
The interesting part is friend-of-a-friend: if you friend someone who also uses Hacker Smacker, you'll see their friends and foes highlighted too. This lets you quickly scan long comment threads and find the good stuff based on people you trust.
I built this to learn how FoaF relationships work with Redis sets, then brought the same technique to NewsBlur's social layer. The backend is CoffeeScript/Node.js/Redis, and the extension works on Chrome, Edge, Firefox, and Safari.
Technically I wrote this back in 2011, but never built a proper auth system until now. So I've been using it for 15 years and it's been great. PG once saw it on my laptop (back when he was still moderating HN, in 2012) and remarked that it was neat.
Thanks to Mihai Parparita for help with the Chrome extension sandboxing and Greg Brockman for helping design the authentication system.
Source is on GitHub: https://github.com/samuelclay/hackersmacker
Directly inspired by Slashdot's friend/foe system, which I always wished HN had. Happy to answer questions!
I’d encourage a change of labels away from “friend/foe”. It may seem minor but the subtle loaded nature of those paired terms encourages an adversarial stance rather than one of productive discourse. It’s not catchy so there’s probably better than this but, just as an example— “engage/ignore” could better signal to the user a neutral “do I want to bother with this person?” Agreed, independent of where the terminology came from, I think if you're trying to promote healthier engagement both for yourself and others using this extension, then not having such adversarial names it's probably a good idea. It should just end up being a sort of web of trust to help you decide what's worth engaging with — and sometimes perfectly valid people that you're not actually enemies with or anything just aren't worth your time engaging with because of fundamental axiological or positional differences. That's just Slashdot's influence. They did the same thing at some point. Ah, okay-- though that doesn't mean the author can't do better, if I'm not just being too nitpicky. Dot product of opinions? Using a fancier term for the same thing might be a significant axis though. maximize your projection onto like minded commenters, create that bubble you always yearned for but until now have never had the add-on to empower the inner-you! finally, you can ignore that filthy plane of delusional outcasts and banish them to the orthogonal abyss forever. I've wanted something like this for a long time and also thought of the slashdot system. This is directly from that. favorite / potato Although there are some commenters I would want to follow because they are potato. There is something so magical about some of the more delulu Take Havers around here. I'd suggest to move even beyond "engage/ignore". This is HN. The focus should be "does this person provide interesting or thought provoking comments", not "relationships" or "engagement". There are plenty of HN commenters whose opinions I absolutely dislike (I'm sure it's mutual ;), but I still read them - they are at least well reasoned or point out missing facts. I don't have to like them to learn from them. I like friend and foe far more than engage and ignore. A foe isnt someone you ignore. Ignoring is what builds bubbles. A foe can often be right even if you disagree. A foe is also someone you might preemptively punch in the face if they get too close before you could determine if they actually meant you harm right then. I'd prefer not to label things such that I'm justifying the label's negative potential by the disproportionately small "even if" range of positive ones. People I want to ignore I usually disagree with as well, but that's not the problem: the problem is they are repetitive and boring. I sure hope the disagreement to ignore ven diagram doesnt look like that. If u never engage, how will you ever know you were wrong about something repetitive and boring? Which is not at all what I wrote. Most things are interesting if you look deeply into them. People on the other hand can be repetitive and boring about them. Which would extend to the excessive use of meta-argument: complaining people aren't listeninf but also not actually saying anything of substance. I wonder what the second order effects of this on the HN karma system will be. It'll create a graph of karmic supernodes perhaps. Say I green-blob someone with a big reputation here, say jacquesm; no doubt lots of other people will do the same. The friends-of-friends icon is going to appear widely but it'll all be a single edge away from Jacques' node. Is that much of a signal? I dunno. That's 30 seconds of thought about it. It's a fun idea though so I'll try it. Version two: hide foes? Come to think of it, maybe the 'foe' aspect is the fun part... EDIT: it's like I summoned him. > Version two: hide foes? That's a good idea. Here's my bad idea: the extension auto downvotes foes and auto upvotes friends. :) Funny; I wrote a greasemonkey script to be able to highlight certain commenters here, but didn't even once consider adding a "networked" element to it. I would prefer to do the opposite, where everything is displayed in chronological order (with an option to display by threads or not; even if not you can still find what each one is a reply to) regardless of voting and regardless of who wrote them. Related, there is already an extension that allows selected users to be highlighted, but without the shared server data for computing friend-of-a-friend relationships: I just keep a custom stylesheet that annotates usernames with various emoji. Most of the time I update it as I read, but occasionally I’ll peruse the hidden comments to note e.g. uncharitable participation and revealed bigotry. I created and shared Ethos which is a sentiment and discourse analysis thing for HN and it's been plugging away. You're welcome to use its API if you want. Submit a PR for the CORS to be changed as needed. Original post: https://news.ycombinator.com/item?id=46993774 A question, per your final comment on being available to answer questions: What do you feel is the benefit to the community for this that isn't offered by native blocking/existing extensions? I ask not out of malice, I ask because 2 reasons:
1. I imagine spending time on this/it's working well required you to see the value/benefit to it.
2. We must assume all hacker news commenting follows the rules, IE; good faith comment with relevant experience when required. This seems like a way to promote getting around that. > that isn't offered by native blocking/existing extensions There is no “native blocking” on HN. You cannot block a user or hide their comments and submissions in perpetuity. You can only hide on a per-story basis. https://github.com/samuelclay/hackersmacker/blob/main/web/im... How old is that icon set? I swear I used that same peppers icon for a Windows app that I published around 2002. Interesting. I'd love to have a browser extension that automatically blocks all comment sections on every site I visit, so I wouldn't feel the need to interact with anyone online. 14 days ago exactly this was submitted to HN: https://news.ycombinator.com/item?id=46991435 Way down on my list of projects to vibe code is tags for HN users. I.e `Elon Stan` , `smart about aeronautics` , `grumpy` , `reasonable` etc etc. I like reading different opinion but if I formed an opinion about a user id like to record that without using my brain I have a text file of commentors I normally disagree with and check in on them from time to time (about weekly). Its good fun and often I find there will be topics I do agree with them on. Reading the same opinions all the time is no fun. I used https://github.com/ToneyAlexander/HackerTagger for a bit almost a decade ago. Data locally stored, good but didn't transfer across machines, not so great. It had a little text label next to names so you could manually add whatever you want. Recently I've thought about this extension and using it to tag the LLM users, or the humans who tend to pop up to fan the flames or who regularly post thought terminating comments - little tags to remind me to ignore the bots and trolls. Installed! Lets see how this goes. I'm going through previous interactions I've had with people. Hmm, I installed this in Waterfox for Android, and I don't appear to be able to tap on the bubbles next to people's usernames this seems like it would increase tribalism and polarization Indeed. Why engage with ideas on the merits when you can color (literally) your own opinion of them before even reading. I guess if you just prefer wearing horse blinders? Another step towards the Redditification of hackernews. This is the exact opposite kind of functionality pages like HN need, we need ways to get people to engage with others' ideas more substantively rather than literally put someone on the "bad guy I won't talk to list". That's weird, I'm reading HN every day and never felt a need for something like that. In my experience, the quality of comments is very high and really bad ones tend to be downvoted or flagged fast. Could this be a time zone issue such that people in certain time zones are less fortunate than others? what about privacy? It would appear that friend/foe lists are entirely public (the latter feels a bit rude) Finally someone brings this place the explicit toxicity it had been missing all those years. /s If you're on HN and you look in the comments and can't tell who the toxic one is, it's you. I would suggest categorizing the quality of comments by its content and not its creator. Oh, nevermind, that’s a silly thought. Challenge my core belief? Well… I could rationally evaluate that, or, I could just use a tool to block it from my vision! Bubble thickener. There are some trolls in here that seemingly evade getting banned despite their moronic comments... Also, many comments just take a wrong premise and attack you (e.g. that not wanting the slaughter of innocent people equals supporting terrorists who want to slaughter innocent people). They don't offer anything more than that, so that IMO taking the time to consider their mostly one-note opinion is just wasting said time. > There are some trolls in here that seemingly evade getting banned despite their moronic comments... As moderators we can only judge comments according to the guidelines, and can only ban accounts if they repeatedly breach them. You're always welcome to email us (hn@ycombinator.com) about an account that has been continually breaching the guidelines. I think that's the point though? Plenty of things not worth engaging with also aren't technically violating any rules: but wasting the brainpower on them also isn't worth it in a reliable way. That's where an ignore system is useful. I have emailed HN before when I spot really terrible things and they have been quick to effect change. There are enough bad-faith commenters on HN that I personally would find this very useful.
ineedasername - 4 hours ago
logicprog - 3 hours ago
jacquesm - 4 hours ago
ineedasername - 4 hours ago
Lerc - 2 hours ago
globalnode - an hour ago
unethical_ban - an hour ago
tyre - an hour ago
groby_b - 9 minutes ago
rustystump - 3 hours ago
ineedasername - an hour ago
XorNot - 2 hours ago
rustystump - an hour ago
XorNot - 43 minutes ago
scrumper - 4 hours ago
cpeterso - an hour ago
pavel_lishin - 23 minutes ago
zzo38computer - 2 hours ago
omoikane - 4 hours ago
aendruk - an hour ago
ddtaylor - 3 hours ago
Reubachi - 3 hours ago
chatmasta - 2 hours ago
waltbosz - 3 hours ago
ZpJuUuNaQ5 - 3 hours ago
efilife - 3 hours ago
cousinbryce - 3 hours ago
istillcantcode - 3 hours ago
thinkingemote - an hour ago
titaniumtown - 4 hours ago
logicprog - 3 hours ago
ImPostingOnHN - 4 hours ago
subdavis - 3 hours ago
sickofparadox - an hour ago
jonathanstrange - 3 hours ago
goodpoint - 3 hours ago
Retr0id - 3 hours ago
elcapitan - 3 hours ago
croisillon - 21 minutes ago
SV_BubbleTime - 4 hours ago
netsharc - 4 hours ago
tomhow - 4 hours ago
XorNot - 2 hours ago
ddtaylor - 3 hours ago
kmeisthax - 3 hours ago