I apologize in advance for a potentially pathetic digression, but I need to make a passionate plea: After using the restroom, PLEASE WASH YOUR HANDS!
I'm no Adrian Monk, but gentlemen, do yourself (and all with whom you
have contact) a favor and wash your hands after using the restroom in
any capacity -- especially after the big deuce. Thank you!
February 2008 Archives
Here's how I obtain high-quality, syntax-colored prints (or PDFs) of my source code files:
#!/bin/bash
ENSCRIPT_OPTS="--fancy-header=emacs -H3 -j -f Courier7"
ENSCRIPT_OPTS="${ENSCRIPT_OPTS} --color -2 -r -E"
ENSCRIPT_OPTS="${ENSCRIPT_OPTS} --mark-wrapped-lines=arrow"
ENSCRIPT_OPTS="${ENSCRIPT_OPTS} --ul-position=+125-25"
if [ $# -lt 1 ]; then
echo "Usage: ..."
exit 1
fi
FILE=${1}
enscript ${ENSCRIPT_OPTS} ${FILE} -o ${FILE}.ps
Enscript knows about dozens of types of source for colorizing its output. Once
I've created the Postscript output, I can either print it as it is, or
generate a PDF file for a handy on-screen reference.
Over the years, I've used more than a few methods of version or source
control -- SCCS, RCS, CVS -- but I discovered that each had its
weaknesses, and eventually stopped using them altogether. Then, about
six months ago, I set aside my preconceived notions about learning yet
another version control system (at the risk of wasting time), and began
investigating Subversion. I cannot overemphasize how glad I am that I
did. In addition to being significantly easier to use than CVS, Subversion provides atomic commits.
This means that either the commit succeeds in its entirety, or it
doesn't commit at all (i.e. all commits in the current context are
rolled-back). This is a vital piece that insures the integrity of your
data (e.g. if you experience a network or disk failure during the
commit). Subversion also supports WebDAV access to the repository. This
means that, in addition to direct access via the file:// method, and svn:// or svn+ssh:// protocol, a properly-configured Apache web server will allow access to the repository via http:// or https:// protocols.
If you're on the fence about whether or not Subversion can help you, or if you are seeking an experienced opinion about using it, leave a comment and I'll get back to you as soon as I can.
If you're on the fence about whether or not Subversion can help you, or if you are seeking an experienced opinion about using it, leave a comment and I'll get back to you as soon as I can.
Here's an interesting C function to reverse the bits of an unsigned integer:
unsigned int reverse(unsigned int v)
{
v = (((v & 0xaaaaaaaa) >> 1) |
((v & 0x55555555) << 1));
v = (((v & 0xcccccccc) >> 2) |
((v & 0x33333333) << 2));
v = (((v & 0xf0f0f0f0) >> 4) |
((v & 0x0f0f0f0f) << 4));
v = (((v & 0xff00ff00) >> 8) |
((v & 0x00ff00ff) << 8));
return((v >> 16) | (v << 16));
}
I really need my reverse(0x77ff0300) in the morning! Sorry, bad joke (and for the odd word-wrapping)...
Here's a quick and dirty method of generating a table of powers of two at the command line:
#!/bin/bash
echo "Powers of two (2):"
echo;
for i in `seq 0 34`; do
printf "2**(%2d) = %11d\n" $i "$(( 2**$i ))"
done
echo;
Note that this does require BASH.