181 comments

[ 2.4 ms ] story [ 287 ms ] thread
You many want to consider a naughty words filter. https://github.com/LDNOOBW/List-of-Dirty-Naughty-Obscene-and...
I understand a lot of those, but why is "beaver cleaver" on the list? I could see how it might be used in a dirty way, but that can't be the most common way it's used, right?
Well it's on the filter list, so someone must consider it more offensive than words not on the list such as "gaping poophole thrusting".
The "dirty" use seems pretty silly (sounds like something out of a crass 80's movie or something), but I can't really imagine using it in a non-dirty manner either. I mean I know people have hunted and trapped beavers, but when the capture them they don't just, like, thwack them with a giant cleaver, right? Would ruin the pelt if nothing else.
Not sure if you're messing with me, but Beaver Cleaver is the name of a famous sitcom character. Awesome show IMO, you can watch the entire series for free on archive.org

https://archive.org/details/leave.it.to.beaver.complete.seri...

I wasn't -- I was not aware that his last name was Cleaver, haha.
TIL. That said, I'm sure if you polled most folks these days, beaver would mean animal or women's genitalia, and not leave it to beaver.

Given the relatively common crass meaning for beaver, beaver cleaver sure sounds like a sexual innuendo to me.

Since the raison d'être of this project seems to be spelling ridiculous things out of hex colors, I think it would lose a lot of its appeal with such a filter.
(comment deleted)
Or better yet, they could ignore this suggestion entirely!
Where has this been all of my career? Very #BADA55 indeed!
#BADA55 is skin color of kerbals from KSP
You can do the same with ipv6 addresses. Something like dead:beef::babe
This is the kind of quirky, brilliant link I crave from Hacker News. If I was near you creator, I would garland you and rub your feet.
Interesting. You consider it a waste of time. So this post from you must be an example of the sunk cost fallacy, as you throw good time after bad.
I have enjoyed this exchange about as much as the original link. Bravo
I think you're both right. It's a fun little page that doesn't actually serve any purpose, like... comedic art?

The practical solutions to this opinion divide are to somehow categorize entries like this as [funny] or whatever so people can skip them informedly, or to simply accept that HN aggregates content that appeals to different minds.

The point is it's a lot easier to remember facade than ffb6c1. Also since when did HN posts need a point?!
This is the kind of thing HN is for. That's not to say it's not also great at incubating overly-pedantic technocratic bikeshedding of computing minutiae, which has its place. Don't ever change, HN.
Let's keep having threads with 4 comments discussing the latest Haskell library borefest then. Threads like this have their place.
I personally find it uninteresting, but I don't think it decreases the value of HN or the quality of the community-- people will find novelty in different things. It also seems like the kind of content that the guidelines praise. I appreciate when people deep-dive into niche topics because it fosters (in my subjective view) the best type of discussion.
It’s one of those ‘do it because you can’ kind of things. I wouldn’t spend time doing it myself, but happy to see others do it.
Second sentence escalated quickly.
(comment deleted)
#B00B00 is one of my favorites as a dad with young kids (it’s red). :)
What a fun and fantastic mnemonic tool!
I have a project named “xidoc”. I spent a long time trying to come up with a logo and a primary color, then I got the cute idea of using the letter ξ (xi) in the color #d0c (which happens to be a quite lovely magenta).
pretty cool, now we need something like a prettier plugin that forces hexes to the nearest hexword to make it useful
Love it. Now I need some nice looking/sounding palette phrases :-)
I love that "booboo" is blood red.
7->T and 6->G is pushing it too far, imho.
I'd like to have filters to play with different levels of substitution. Only alpha, only 3 -> e, etc.
Isn't LEET === 1337 pretty standard?
For some reason I used to think that 1337 was LEET upside down.
(comment deleted)
Bringing up the topic of "leet" actually serves in two capacities: not only is it a prime example of 7=T, but leetspeak's overall orthography [0] is conceptually similar to this "hexwords" site far beyond 7=T.

[0] https://en.wikipedia.org/wiki/Leet#Orthography

2->Z as well. I've been a h4x0r for 25+ years and "21663D" looks nothing like "zigged" to me.
But 2 and 6 are more similar to Z and G than 3 are to E.
i agree, 9 would be better suited as G
It's all capital letters, so 6 = G instead of 9 = g
But then how am I supposed to turn a slur like #FA6607 into a nice (might I say fruity) shade of orange?
Well, we could be more careful about allowing #B16075 to design website palettes. :)
The hacker news orange is #ff6600. Pretty close.
Yeah, if you sort by closeness, this is the closest word.
(comment deleted)
#5A6E57, SAGEST, is interesting because it appears to be the most sage-like color on the board and is therefore autological.
This is dumb, and I am in love with it. I'll have to use some of these... :)
This should be turned into some hybrid between Wordle and MDN.
This would make a pretty cool MIT Mystery Hunt puzzle!
What does "alpha" switch do?
Includes longer words to define the alpha (transparency) channnel
Hexspeak[0] is a time-honoured tradition, with constants like 0xDEADBEEF used to mark uninitialised memory. Fun to see it applied to colours.

0. https://en.wikipedia.org/wiki/Hexspeak

Yeah B16B00B5 and CAFEBABE are 2 of my favorite funnier ones Ive used a bunch of times. They make for more interesting placeholder values than "foo" and "bar" anyway.
Shouldn't that be B16?

I'd make a joke about beware of the woke crowd coming for you, but I think even joking about that causes offense nowadays.

No 6 looks like a 'b'. I think closest to 'g' is 9.
But 'B' is already there, and all the other characters are uppercase, so '6' -> 'G' scans easier to my eye.

'619' may be 'big', but it doesn't scan that well. 'B16' looks more like 'BIG'

(comment deleted)
Without commenting on the reasonability of it, you may want to be aware that a growing population of vegetarian and female tech workers may find these offensive.
Beef dies in the wild too so DEADBEEF should not, I do not care if they want to use B16D1CC instead :) I can't see why CAFEBABE would be offensive though.

...And honestly I guess I don't care? If people are that mad about some levity then I probably do not want to work with them.

From the HN rules:

> Eschew flamebait. Avoid unrelated controversies and generic tangents.

I don't understand how any part of that applies to my comment at all, sorry. (I take it from the way you quoted it at me that you think it does.) "Flamebait" applies to the comment I was replying to, though, I think.
Francophones might not have the same understanding of the distinction as you do.
If you want levity, why not just use terms that aren't offensive? If you can't think of a joke without being sexist or misogynist, then that's on you - don't blame others for "not having a sense of humor"
You might get a pass on #cafebabe if your local baristas don't speak 1337.
I remember seeing 0xdeadbeef for the first time in dbx, which was my first experience with seeing uninitialized memory - was really surprised to not see it in the list on the website, since it's rgb+o (red/green/blue + opacity).
Didn't someone once set the PETA website to #BEEEEF
So which of these actually spell the color they represent (or something closely related)? From a quick glance, I have no found any. Do color-words like that exist in other languages maybe?
maybe #5EABED, which is a shade of blue?
#B00B00 (dark red) was my favorite
Great color for errors!
#1C1E57 (ICIEST) is dark blue, which could hold true in certain contexts!

#DEBA65 (DEBAGS) is brown, much like de color of de bags made of de paper.

And on a related and exceptionally juvenile note, it should be very possible - and frankly obligatory, for those in fashion tech companies reading this - to create and sell a #B00B1E colored bra.

Tangentially related, and equally juvenile, I own the telephone number in Australia: 08 80087355

Still gives me a chuckle. Grow up.

RIP your voicemail
It's 2022: RIP the concept of voicemail
You think the concept of people leaving audio messages to one another is dead? That seems like something that will never die out.
in my circle its common to email mp3 attachments
The concept of people leaving audio messages _with a reasonable expectation that someone will listen to them_ is (thankfully) dying out, at least among my social circles.

You can leave a message if you want, I'm not going to listen to it. The only entities that make unexpected phone calls are scammers and bots.

I get spam calls but I never get spam voice mails. As such I never pick up unexpected calls but I do listen to messages.

Might be a regional thing?

Given that I never get ham voice calls, it is reasonable for me to assume that any voice mails that I receive are therefore spam (but, no, you're right, I don't recall ever noticing a spam voice mail. But then I wouldn't notice one, whether it existed or not, because I don't check them)
> I never get spam voice mails

You must not be in the United States then. Pretty much guaranteed every phone number in the US has received at least one “automobile extended warranty” voicemail.

(comment deleted)
I just called, why didn't you pick up?
Voicemail not enabled and no SIP client logger in.

Should have connected for a few giggles this arvo.

(EXTREMELY minor spoilers for Everything Everywhere All At Once) .

.

.

.

.

.

.

My inner child chuckled to see 55378008 displayed on a calculator near the end of that movie.

#CABB1E is kind of like a taxicab yellow
A couple more I spotted:

#ACAC1A is a shade of green and Acacia is a type of tree.

#57061E (stogie) is dark brown, and a stogie is a cigar.

#C0A575 (coasts) is a sandy-brown beach color.

#6E0DE5 (geodes) definitely has that deep purple color you think of.

And my favorite, #5A6E57 (sagest) is about as close to the color sage as you can get.

#A55E55 (asses) is brown. Oh... wait.
There is a large population of brown asses in the world.
The issues isn't the color of the asses, but rather that the word spelled is assess. As in, the tax assessor is coming to assess our property now that we put on that addition. I expect our assessment to go up.
just make sure you're wearing brown pants when you read the bill
Good question. I thought of an algorithm to find the hex word colors that most closely match the color they represent...

Basically: get the color of the _word_ by doing an image search and extracting the dominant color from the first image result. Then compare that color to the hex color (in CIELAB color space) to get the color difference. Track the hex words with lowest difference.

Here's a rough impl in Python:

  import sys
  import os
  import heapq
  
  import requests
  from google.cloud import vision
  
  from colormath.color_objects import sRGBColor, LabColor
  from colormath.color_conversions import convert_color
  from colormath.color_diff import delta_e_cie2000
  
  from bs4 import BeautifulSoup
  
  def download_image_for_query(query):
      search_key = os.getenv("GOOGLE_CUSTOM_SEARCH_ENGINE_KEY")
      search_engine_id = os.getenv("GOOGLE_CUSTOM_SEARCH_ENGINE_ID")
      resp = requests.get(
          f"https://www.googleapis.com/customsearch/v1?key={search_key}&cx={search_engine_id}&q={query}&searchType=image"
      )
      img_url = resp.json()["items"][0]["link"]
      img_content = requests.get(img_url).content
      return img_content
  
  def dominant_rgb_colors(image_content, num_colors=1):
      vision_client = vision.ImageAnnotatorClient()
      image = vision.Image(content=image_content)
      response = vision_client.annotate_image({"image": image})
      return [
          (int(c.color.red), int(c.color.green), int(c.color.blue))
          for c in response.image_properties_annotation.dominant_colors.colors
      ][:num_colors]
  
  # class to store hex word and calculate the difference from "true" image, based on image search
  class HeapibleHexWord:
      def generate_rgb_version(self):
          return tuple(int(self.hex_version.lstrip("#")[i:i+2], 16) for i in (0, 2, 4))
          
      def __init__(self, hex_version, english_version):
          self.hex_version = hex_version
          self.english_version = english_version
          self.rgb_version = self.generate_rgb_version()
          self.delta_from_true = float("inf")
          
      def calculate_delta_from_true(self):
          true_rgb = sRGBColor(*self.rgb_version)
          query = self.english_version
          img_content = download_image_for_query(query)
          test_rgb = sRGBColor(*dominant_rgb_colors(img_content)[0])
         
          # via http://hanzratech.in/2015/01/16/color-difference-between-2-colors-using-python.html
          delta = delta_e_cie2000(
              convert_color(true_rgb, LabColor),
              convert_color(test_rgb, LabColor)
          )
          self.delta_from_true = delta
          
      def __lt__(self, other):
          return self.delta_from_true < other.delta_from_true
  
  # scrape words from hexwords site
  hexwords_url = 'https://hexwords.netlify.app/'
  
  hexwords_page = requests.get(hexwords_url)
  soup = BeautifulSoup(hexwords_page.text, 'html.parser')
  
  buttons = soup.find_all('button', class_='svelte-1m9ptdb')
  
  hex_words = []
  for button in buttons:
      if button.text == '':
          continue
      hex_version, _, english_version = button.text.split("\n")
      hex_words.append((hex_version, english_version.replace("(", "").replace(")", "")))
  
  # iterate over the hex words, calculating the color diff between the word's hex
  # color and the "true" color based on image search
  
  hex_words_heap = []
  heapq.heapify(hex_words_heap)
  
  NUM_WORDS = 10 # looks like throttled at some point
  
  for i, hex_word in enumerate(hex_words[:NUM_WORDS]):
      print(f"working on {i}: {hex_word}")
      heapible_hex_word = HeapibleHexWord(*hex_word)
      heapible_hex_word.calculate_delta_from_true()
      heapq.heappush(hex_words_heap, heapible_hex_word)
  
 ...
I sometimes wish HN had the equivalent of Reddit Gold. Well done.
awesome! Agree with previous comment, this is cool
Alas, I'm gonna bet a lot of images are an object in the center and plenty of white or other background around it.
How many colors do you typically identify or would be willing to accept? Somewhere between 10 and 25 would be sufficient… not every word will have a color association, but many will have more than one.

I think you need to be pretty strict to not find a match after 50 words.

Kind of a stretch, but #B05535 (bosses) and #BE57ED (bested) are both sort of purplish colors that looter games like Borderlands sometimes use for "pretty rare, but not unique" items (which would typically be dropped by a boss monsters when you defeat them).
#D0661E - a nice brown doggie.

#CA771E - brown cattle.

#C10ACA - a purple cloaca.

#C017A1 - coital, similarly purplish pink.

Lots of blues and greens starting with #5EA... (Sea...). #5EABED (Seabed), #5EABEE (Seabee), #5EAD06 (Seadog) and #5EA by itself.

(I used https://hex-colours.netlify.app/, which looks like it was the original from another comment, and allows you to search pieces of words.)

Similar things in a number's value v/s its number of characters I think is called True Number, & only 4 is a true number like 4 value & FOUR has exact 4 letters.
#ACCE55 is green and #F1A5C0 is pinkish red, great colors for a login prompt
And then #1060FF for logoff.
SEABED - blue CASSIS - purplish pink berry color
A bit of a stretch, but I remarked upon #ACE71C (acetic), which is an oily, vinegary green
#AC1D1C is red, just like its PH test- that was the most satisfying one to me at first glance.
My children definitely have clothes in colors close to #BAB1E5. #B00B00 kind of looks like blood.
5EABED (a blue) and B00B00 (blood red) were the best matches I found