[HN Gopher] Bash one-liner to produce a list of HEX color codes ... ___________________________________________________________________ Bash one-liner to produce a list of HEX color codes that read like English words Author : ailef Score : 93 points Date : 2022-10-01 18:11 UTC (4 hours ago) (HTM) web link (gist.github.com) (TXT) w3m dump (gist.github.com) | teaearlgraycold wrote: | Fun fact: Every Java .class file starts with the magic bytes | C0FEBABE | tragomaskhalos wrote: | It's CAFEBABE | belter wrote: | CAFEBABE | | "...We used to go to lunch at a place called St Michael's | Alley. According to local legend, in the deep dark past, the | Grateful Dead used to perform there before they made it big. It | was a pretty funky place that was definitely a Grateful Dead | Kinda Place. When Jerry died, they even put up a little | Buddhist-esque shrine. When we used to go there, we referred to | the place as Cafe Dead. Somewhere along the line, it was | noticed that this was a HEX number. I was re-vamping some file | format code and needed a couple of magic numbers: one for the | persistent object file, and one for classes. I used CAFEDEAD | for the object file format, and in grepping for 4 character hex | words that fit after "CAFE" (it seemed to be a good theme) I | hit on BABE and decided to use it. At that time, it didn't seem | terribly important or destined to go anywhere but the trash can | of history. So CAFEBABE became the class file format, and | CAFEDEAD was the persistent object format. But the persistent | object facility went away, and along with it went the use of | CAFEDEAD - it was eventually replaced by RMI...." | | - James Gosling | TillE wrote: | I've been using that as my own alternative to DEADBEEF for | years, I had no idea it was part of the official Java spec. | Maybe it got lodged in my brain subconsciously at some point. | jrumbut wrote: | I had the distinct pleasure of discovering CAFEBABE myself, | in high school (not sure what direction this is dating myself | in but I'll risk it), when I went on a tear of opening odd | things in a hex editor. | | Now I will never be able to see without thinking of this | story: https://aphyr.com/posts/341-hexing-the-technical- | interview | nick0garvey wrote: | Interesting one liner but would like to see the colors it | generates | Silverback_VII wrote: | Not long ago I saw a link here to site with the words and the | colors... | amenghra wrote: | This maybe? https://news.ycombinator.com/item?id=31673662 | styfle wrote: | Also this https://news.ycombinator.com/item?id=14537747 | [deleted] | LanternLight83 wrote: | https://gist.github.com/aileftech/dd4f5598b1f3837651fdf16e5a... | kragen wrote: | I tried this a few years ago; | http://canonical.org/~kragen/sw/dev3/colors.html has them as | foreground colors and | http://canonical.org/~kragen/sw/dev3/colors.2.html has them as | background colors. I tested 3-letter words as well as 6-letter | words, and used 1 as "l" as well as "I", but I didn't try | aghasemi's very productive suggestion of using 5 as S. I don't | remember if it it didn't occur to me or if I tried it and didn't | like the results. | | Some of them are pretty #bad (#011 doesn't really look much like | "oil") and some, though they read quite well, correspond to awful | colors; you might even say, #faeca1 colors. Still, I've made my | #bed, #0dd as it may be; now I must #11e in it. I think I've #fed | you enough #babb1e for today. | ratsmack wrote: | I don't like using multiple commands. mawk | 'BEGIN{b = "[abcdefois]"; l = "[a-z]"; W = "^" b l l l l l "$"}; | $0 ~ W {print "#" toupper($0);}' /usr/share/dict/words | Keyframe wrote: | you also aren't going to get valid color codes | kbr2000 wrote: | I came up with: gawk 'BEGIN {IGNORECASE=1} | ((length($1) == 6) && /^[a-fois]+$/) | {gsub(/o/,0);gsub(/i/,1);gsub(/s/,5); print toupper("#"$1)}' | /usr/share/dict/words | | (caveat: it does not filter out duplicates) | netule wrote: | Reminds me of debugging pointer values in C with 0xDEADBEEF. | dspillett wrote: | I know this is only looking at single words, so would miss this, | but I always like to work ABAD1DEA into PoC work. | brrrrrm wrote: | Similarly, a list of hex words https://jott.live/code/hex_words | nine_k wrote: | Never mind the colors. | | This snippet demonstrates how a number of small tools, each doing | its narrow job, strung together via the most trivial interface, | produces a non-trivial result. | | This composability is still unreachable to the vast majority of | GUI tools. | kupopuffs wrote: | Ah yes, the Unix Way | [deleted] | throwing_away wrote: | SaaS companies hate this one weird trick! | vesinisa wrote: | The non-trivial part here is actually the source data (the dict | file.) It is also its pitfall - after adding 5 for S you should | see a lithany of plurals. Most dict files (for English anyway) | however seem to omit plural nouns. I guess the logic is that in | English most plurals are regular, and the naive algorithm for | deriving them from the singular forms (correctly most of the | time) is quite trivial. | Waterluvian wrote: | Does anyone have a link to a guide on how to write Python or node | or rust programs that behave well with bash? Ie. Streaming inputs | and outputs and other things I probably don't know about? | [deleted] | KMnO4 wrote: | It's pretty easy. You have three basic streams: | | 1. Stdin - just iterate through sys.stdin | | 2. Stdout - regular printing will go there | | 3. Stderr - print errors here eg with print(..., | file=sys.stderr) | | And then beyond that as long as your script gets invoked by the | interpreter (Ie #!/usr/bin/env python) everything will "just | work". | pwpwp wrote: | It's missing #DADB0D | kragen wrote: | I look forward to your improved version that tests against the | Cartesian product of /usr/dict/words with itself plus the empty | string and maybe some slang words like "bod". I suggest you | limit to shortish words before the Cartesian product rather | than after. | mellosouls wrote: | https://en.wikipedia.org/wiki/Dad_bod | kragen wrote: | Testing against a list of all Wikipedia article titles is | indeed also an avenue worth exploring, and I hope you | explore it. | gabrielsroka wrote: | I installed the American English large dictionary on Ubuntu. | It has `bod`. | kragen wrote: | Nice! I'm just using the 102'401-entry version. | dwheeler wrote: | I appreciate the presence of #C0FFEE. | | Can't do computing without that!! :-) | silisili wrote: | Fun idea. Perhaps could stretch a little like we did in | calculators and add 5 for S, or even 7 for T, but that would | likely be a bit less readable. | ghasemi wrote: | I added a comment for 5 vs S. 7/T looks like it's a bit too | much :D | bawolff wrote: | You could just do full 1337 speek. | mod wrote: | Little town I frequently drive through has a population of | 1337. | | I always have a little giggle. | silisili wrote: | come to think of it, doing a separate list of toLower l -> 1 | isn't a bad idea either... ___________________________________________________________________ (page generated 2022-10-01 23:00 UTC)