Advanced C++ Techniques and Other Programming Issues

Woe unto the foolish programmer
who heedeth not Murphy's divine maxim:
That which can go wrong, will go wrong.

Unless you do something to stop it!
Programming Aphorisms
One-liners about programming.

A Software Pirate Shanty
The Law of Mediocrity

Free source -- click here!

Select a topic
Integrating GNUmake with Visual Studio Advanced C++ Techniques Using Threads in High Value Apps  
Legalisms Bash suggestions    
Software Process Improvement Links to helpfull websites Other Programming Commentary Natural Language Processing experiments
SED scripting ideas VI advice ETAGS advice WEB Pages
Xterm FAQ
(or here)
portable to Linux, Windows, and Cygwin including automatic makefile dependency generation without external tools -- just GNU MAKE AND your compiler.

Operating System Issues

Using Threads in C++ Applications.
Some rules that will make your life easier when developing threaded applications
Porting to 64 bit machines.
See IBM's useful description of how various data elements, such as char, int, short, long, etc work on 64 bit linux platforms. Also deals with "endian-ness".


Supreme Court makes patent trolling harder
The supreme court finally overturns Republican patent law nonsense (and I'm a Republican!)
If the above link isn't working, see Patent Law News
SCO Loses the Open Source Copyright Lawsuit Against Novell
Or if that link doesn't work, try this link
Open Source gains legal standing in the courts
Despite lawfirms spreading FUD about the saftey of using open source software in commercial applications, legal standing for open source licenses is being honored by the courts.
If the above link doesn't work, see: this link

Other Programming Advice

Scripting Advice
A strategy for quickly and easily constructing powerful command line scripts usuable on a wide variety of problems.
Hints for using bash
Here are some ideas for using bash
  • In your .bash_profile, add the following:
     #  The following settings do three things:
     #  1.  They make sort consistent across all unix environments, and cygwin.
     #  2.  They make grep (on redhat systems) run 30 times faster in some circumstances.
     #  3.  They make string comparisons in sort and other locale related functions
     #      be pure ascii string comparisons -- you don't get any language specific
     #      re-ordering.  Even the locale, us english, is not a pure ascii sort.  Don't
     #      know why, the did it just to annoy the living crap out of people who expect
     #      sort to ACTUALLY sort!
     export LC_ALL=C
     export LANG=C
     export LC_CTYPE=C
    # Standard aliases:
    alias ll='ls -l'
    alias cls="clear"
    alias sd="cd"
    # Tell bash to monitor xterm window size changes
    set checkwinsize=1
VI -- the visual editor
VI -- An advanced tutorial (or this)
Exuberant CTAGS -- the a great version of CTAGS
ETAGS ideas
Dump the TAGS file in ascii
Exuberant CTAGS -- the better ETAGS
  • Note: you can rename the ctags executable to etags and it knows to generate the etags output by default instead of ctags. Note that ubuntu provides exuberant etags by default but red had doesn't. Don't miss this cool tool.
WEB page maintenance
Mirroring: use lftp to push and pull web sides efficiently