Today I wrote an awesome program called mkdong that will make a dong of your desired length and print it to your terminal, like this:
% ./mkdong
usage: mkdong <length>
% ./mkdong 5
()/()/////D
% ./mkdong 25
()/()/////////////////////////D
That last one is impressive, isn’t it? Hmm… Yeah, it’s Friday. What do you want from me? I still got work done! Cool thing is if the dong is too big, well then it throws an error:
% ./mkdong 60
warning: a 60" dong is too big! cannot be longer than 40"!
“What is the point of this?”, you might ask yourself. That’s a good question. I’ve been so busy with other shit lately that I’ve barely had time to code. I suppose I was itching to write
something, anything… Dongs!!
It all started harmlessly enough with a silly AIM conversation with my coding buddy at work. We were talking about a bug, and well, read on and you’ll see. It regressed quickly.
jughead: well there is the problem, now I just gotta figure out wtf
jathanism: what did you do!
jughead: nothing, it’s something in the rt stuff
jathanism: hmm, maybe with a certain ticket
jathanism: maybe one that is blank or something
jathanism: or missing xml data
jathanism: or might be a bug
jughead: ok from now on
jughead: bugs are not bugs
jughead: they are dongs
jathanism: ok
jughead: “I found a dong in this code”
jathanism: or might be a dong
jughead: #1 deterrent of all linux exploits
jughead: change root account to “poop”, chown -R poop.poop /
jughead: no uid 0
jughead: no user root
jathanism: what?
jathanism: you rename uid 0 to poop ?
jughead: poop will get it’s own uid
jughead: and gid
jathanism: oh
jathanism: would that work?
jathanism: there aren’t any hard-coded things to uid 0?
jughead: no idea, lets try it
jathanism: yeah let’s try it on marduk!
jughead: hahahahfdsaf
jughead: dsfa
jughead: hmm…. /dev/ would have to be rebuilt
jughead: MKNOD
jughead: hate that shit
jughead: MAKEDEV
jughead: FUCK YOU LINUX
jathanism: mkdong
jathanism: aww yeah
jathanism: i just made mkdong
jathanism: % ./mkdong 5
8====0
jathanism: % ./mkdong 15
8==============0
jathanism: % ./mkdong 25
8========================0
jathanism: % ./mkdong 41
warning: a 41″ dong is too big! cannot be longer than 40″!
jughead: you should modify that
jughead: ()/()\\\\\\\\\\\\\\D
jathanism: hahahlk
jughead: looks much better
jathanism: ok!
jathanism: % ./mkdong 40
()/()\\\\\\\\\\\\\\\\\\\\D
jathanism: aww yeah
So I took the stupidity and ran with it and mkdong was born!
The initial dongs were a little primitive and sickly looking. So I took his suggestion and improved their visual style. Here is how it turned out:
#!/usr/bin/env python
import sys
maxlen = 40
try:
donglen = int(sys.argv[1])
except:
print "usage: mkdong <length>"
sys.exit()
if donglen > maxlen:
print 'warning: a %s" dong is too big! cannot be longer than %s"!' % (donglen, maxlen)
sys.exit()
else:
dong = '()/()'
for i in range(1, donglen): dong += "\"
dong += 'D'
print dong
We laughed. We joked. We Tweeted. And then it regressed even further:
jughead: dude everyone loves mkdong
jathanism: aww yeah
jathanism: it needs easter eggs
jughead: DUDE
jughead: MAKE IT PRINT IN BLUE
jathanism: ok!
jughead: how exactly does one “suck a fuck”
jathanism: the ascii coloring fucks up the length
jughead: you can just put the blue at the beginning
jughead: and at the end
jughead: doesn’t have to be each char
jathanism: it’s not
jughead: is there a dong in the code?
jathanism: /tmp/mkdong 5
jathanism: will just use forward slashes instad
jathanism: released
jughead: man mkdong is the best ever
A feature request! I had to make it print in blue! But to do that I had to replace all of the “\” that make up the dong itself, with “/” so as to not have the
ANSI escape codes eat up the extra backslashes. (Backslashes are interpreted characters, duh.) I also had to replace the
print statement with a system call to
echo -e so that the colorization would be interpreted. This is high tech shit, man!!
And then I released it to the public. So there you have it. Here is the final release of mkdong 2.0 for your pleasure:
#!/usr/bin/env python
import os, sys
maxlen = 40
color = '\\e[0;34m' # blue
try:
donglen = int(sys.argv[1])
except:
print "usage: mkdong <length>"
sys.exit()
if donglen > maxlen:
print 'warning: a %s" dong is too big! cannot be longer than %s"!' % (donglen, maxlen)
sys.exit()
else:
dong = '()/()'
for i in range(donglen): dong += '/'
dong += 'D'
os.system('echo -e "%s%s"' % (color, dong))
Use it well. And remember they aren’t bugs, they’re dongs! Squish? Gross.