|
There are only 16 characters to work with, but programmers just love coming up with creative spellings using hex numbers. I suspect that leetspeak evolved out of these spellings, though personally I prefer the original form. I assume that everyone working as a software developer in English will have seen 0xdeadbeef, and probably some other favorites as well. | |
| deadbeef | old standby #1 |
| feedf00d | old standby #2 |
| feedface | old standby #3 |
| decafbad | developers love to complain about coffee |
| badcafe | developers really love to complain about coffee |
| badc0ffee | developers really, really love to complain about coffee |
| badc0c0a | MacOS X developers might find more meaning in this one. |
| c0c0abad | People who hate MacOS X developers might find more meaning in this one. |
|
A little sed scripting on /usr/share/dist/words can turn up a lot of interesting combinations. For the edification and bemusement of the Gentle Reader, allow me to present a few of them here. I rejected most of the results where '5' replaced an 'S' as being too ugly, but a few passed muster.
cat /usr/share/dict/words | sed \
-e "s/nine/9/g" -e "s/eight/8/g" -e "s/seven/7/g" -e "s/six/6/g" \
-e "s/five/5/g" -e "s/four/4/g" -e "s/three/3/g" -e "s/two/2/g" \
-e "s/one/1/g" -e "s/zero/0/g" \
-e "s/ated/8ed/g" -e "s/[oO]/0/g" -e "s/[lL]/1/g" -e "s/[sS]/5/g" \
| egrep -v "[^0123456789aAbBcCdDeEfF]"
The first few seem particularly suitable for memory fenceposts, either guard words before and after allocations or patterns to scribble over freed memory when looking for use-after-free bugs. | |
| a110c8ed | This memory is in use, buster! |
| 5eef3712 | This is ~(0xa110c8ed). No, it doesn't spell anything nifty. |
| dea110c8 | Scribble over memory after free(), to catch dangling references. |
| defec8ed | to crap all over memory |
| defaced | another bit pattern to scribble over memory to catch use-after-free errors |
|
To express one's true feelings about the quality of the code base there are really only two options:
| |
| c0defaded | It is a well known fact that old code suffers bit rot. Refactor often! |
| badfacade | There are times when bad code can only be papered over. This is one of those times. |
| efface | Good code doesn't make a spectacle of itself. |
| deface | Bad code, on the other hand, gets drunk at its best friends wedding and hits on the bride. |
| decade | This code base has been under development for a long time. |
| baddeed | The EULA for this product specifies the precise amount of bad karma accumulated by using it. |
| acceded | The software has finally given in. |
| befa11 | As in "what has befallen yon dead process?" |
| c0dedbad | self explanatory |
|
Magic numbers are useful in all sorts of situations. Encoding one's birthday (0xMMDDYYYY) is clever, but obscure. Subtle jokes in hex also work well. | |
| abbacadabba | Unfortunately 44 bits won't magically fit into a uint32_t. |
| abadabba dabbadabba abbadabbadabba | Said the monkey to the chimp. Real magic numbers are 128 bit. |
| d00bee | Debugging probably qualifies as "medicinal purposes." |
| d0dec0de | How does one pronounce ioctl anyway? "eye oh cottle," or "eye oct all ?" |
| babe2bed | The kid's bedtime is 7pm sharp. |
| b0cceba11 | You know, I only discovered Bocce Ball in my 30s. |
| 5ca1ab1e | Ignore what you see elsewhere, the secret to scalability is in using good magic numbers. |
| 0x1de | With the leading 0x it sortof looks like "oxide" ... I admit it, this one sucks. |
|
Why should return codes be boring? {0, 1, 2, ...} is so dull. We can do better. | |
| cab0b | yummy |
| fa1afe1 | even more yummy! |
| b1abbed | probably I/O related |
| bedded | The code went to sleep? |
| b0bbed | They call it "floating point" for a reason, bub. |
| beaded | Um, yeah. I can't think of anything funny about this one. |
| bab00 | My sweet baboo! |
| 10aded | I bet it has an itchy trigger finger, too. |
| ba11ad | I structure all my code to iambic pentameter. |
| a100f | My code doesn't like me. |
| acc01ade | Programmers rarely, if ever, hear praise of their work. |
| affab1e | Relatively approachable and friendly code, I guess. |
| babb1e | Why yes, my functions tend to be a bit on the longish side. Why? |
| baff1e | Why yes, my functions tend to be a bit on the complex side. Why? |
| babe1 | You can write FORTRAN in any language. |
| ba1b0a | Its the Eye of the Tiger, baby! |
| ed1f1ce | large, imposing blocks of code |
| 5eceded | This module has declared its independence from the rest of the system. |
| 5c01ded | At times, it is necessary to be stern with the codebase. Give it a time out. |
| 5caff01d | This code was intended to be temporary. That was four years ago. Such is the way of things. |
| ad0be | I bet they use this one in Photoshop. |
| ab0de | my humble abode |
| d8edbabe | In college, yeah, sure you did. |
| 0ddba11 | That is a strange one, alright. |
|
Finally, here are some 16 bit numbers which are more interesting than "dead," "f00d" and "beef" | |
| caca | A statement about software quality, I suppose. |
| deaf | When programming, no-one can hear you scream. |
| c0ed | It is the 21st century, after all. |
| ba1d | If tires can go bald, why not programs? |
| a1fa | I couldn't find a reasonable approximation of beta. |
| f01d | Origami programming! |
| fa11 | If code falls in the forest, does it make a sound? |
| c01d | Software is a dish best served cold. |
| ab1e | Or ! 0xab1e, as the case may be. |
| cede | I give up, I'm done. |
Do you have any additional hex numbers to share? The comments section is open for business. | |
Update: Lisa Simone wrote an article about teaching embedded systems and the use of hex words in an article on her site.