Software design and development
        Software project life cycles
       
Specifications and documentation 
       
 Planning, abstraction, modularity, and incremental design 
       
 
         12 steps to better software  (Joel on software)
       
 Intro to software eng  (from Dr. Peter Walsh)
       
 Data abstraction  and
        Procedural abstraction  (from Dr. Peter Walsh)
       
 Agile development (wikipedia) and
       and  limitations   (B. Collet)
Version control and git
       Version control and configuration management (oldish notes)
       
  Revision control  (wiki)
       
 Git at viu ,
            example with merge
       
 gitk documentation: 
             from git-scm.com, and
              from gitolite.com
       
Git at github  
       
 Git homepage  (git-scm.com)
       
 tutorial from Lars Vogella 
       
 Git magic (by Ben Lynn)  (pdf)
           (SphereDev.org)
       
 Everyday Git  (kernel.org)
       
 Git for Computer Scientists (T. Virtanen)
       
  git  (wikipedia)
Shells, scripting, and bash
        Bash,
            linux, 
           and  more linux
       
 Bash Guide for Beginners  (M. Garrels)
       
           Bash Scripting Tutorial  (LinuxConfig.org)
       
           A quick guide to writing scripts using the bash shell  (D. Rebbechi)
       
  bash/perl scripts for git  (kernel.org)
Automated builds, architecture, make, and C++
C++ for java programmers (cs@wisc) and another (hostmann.com)
 my own scratchpad of notes on make
       
 GNU make  (GNU.org)
       
  Automating the creation of makefiles  (wikipedia)
       
 Language libraries 
       
 Comp. architecture  (fetch decode execute, run time stack, memory organization, etc. )
       
 defensive programming  (Dr. Walsh's notes)
       
 additional concerns regarding forms and security 
Debugging, and defect tracking/reporting
       
            Norman Matloff's "Guide to Faster, Less Frustrating Debugging"  (U Cal @ Davis)
       
  GDB, valgrind, and gprof quickref 
       
  GDB cheat sheet (yolinux.com)
       
  gdb Tutorial (unknownroad.com)
       
 C++ Programming/debugging  (wikibooks.org)
       
  Painless bug tracking  (JoelOnSoftware.com)
       
 Bug tracking software (open source)
       
   -  Bugzilla (sandbox):
         sample bug report,
         search, and 
             guidelines  (pdfs)
       
   -  Trac 
       
   -  Redmine 
Code standards and inspections
      Coding standards, styles, and inspections (oldish notes)
      
 code reviews, and  sample standards, (both from possibility.com)
      
 Intro  and  software inspections  (from Dr. Peter Walsh)
Software testing
       Testing levels and techniques  (oldish notes)
       
 software testing  (wikipedia)
       
 test driven development (possibility.com) 
       
  Testing types and purposes  (testinggeek.com)
       
Unit and functional testing  (ibm.com)
       
  Test automation  (wikipedia)
       
 Test plan template 
        (atlascode.com)
    
 Module testing  and 
     Testing  (from Dr. Peter Walsh)
Software performance and profiling
       debugging and profiling with valgrind
       
  GDB, valgrind, and gprof quickref 
       
 S. Wolf's guide to gprof (cs.duke.edu)
       
  Profiling tools 
           and  tuning  (wikipedia)
Character sets and graphical interfaces
     Character representations and unicode
    
 Perl gtk2 tutorial  (sourceforge.net)
    
 C++ gtk 2 tutorial  (gnome.org)
    
Additional material and resources
Emacs tutorials
       
 Learning emacs  (emacs wiki)
       
 GNU guided tour of emacs 
       
 emacs tutorial by K. Waclena  (U. of Chicago)
       
Vim tutorials
       
 my short vim guide 
       
 interactive tutorial  (openvim)
       
 vim wiki tutorial 
       
CS resources
       
Tech notes for students 
       
 my csci git/submit notes 
       
Java on otter/cubs
          
 Right now java on otter and in the labs is version 1.8 of OpenJDK,
          
docs available at  openjdk.net 
       
Perl and perl's test module
        notes on creating/using your own modules in perl 
       
 my REALLY old perl notes 
       
 introductory notes on perl Test
       
 Perl Programming 
        (TutorialsPoint.com)
   
 When software projects go wrong ...
       
  9 SW Disasters  (slideshow)
       
 20 famous SW Disasters  (more detail, but includes some fictional events)
       
 When Interfaces Kill  (B. Tognazzini)
       
How to kill patients through bad design (J. Nielsen)
    
Bash exploit (sept.2014) injection attack
       
 If you've heard a bit about the rather serious old bash exploit,
            you might find some of this interesting reading:
            
 
                 Redhat security blog 
            
  
                  Cert Vulnerability notice 
    
Heartbleed OpenSSL vulnerability
       
 
         High level overview from Symantec 
       
 
         The git commit that introduced the vulnerability