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.