CSGSA Tools '06

Andrew R. Dalton

George A. Dowding

Nicholas A. Kraft

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Table of Contents

1. LaTeX
1.1. Introduction
1.1.1. About
1.1.2. Tools for LaTeX2e
1.2. Generating printable/viewable documents
1.2.1. Generating postscript output for a simple document
1.2.2. Generating PDF output for a simple document (dvips/ps2pdf)
1.2.3. Generating PDF output for a simple document (pdflatex)
1.2.4. Generating output for a document with a style
1.2.5. Generating output for a document with a bibliography
1.2.6. Configuring one or more style repositories
1.3. Creating a LaTeX document
1.3.1. LaTeX basics
1.3.2. Creating the document
1.3.3. Beginning a document
1.3.4. Adding sections to the document
1.3.5. Labeling sections in the document
1.3.6. Adding external files to the document
1.3.7. Adding headers and footers the document
1.3.8. Adding an abstract to the document
1.3.9. Adding a style to the document
1.3.10. Adding a BibTeX bibliography to the document
1.4. Common macros and environments
1.4.1. Subsections
1.4.2. Lists
1.4.3. Columns
1.4.4. Tables
1.4.5. Figures
1.4.6. Type properties
1.4.7. Math
1.4.8. Positioning and formatting
1.5. Resources
2. CUCSThesis, Presentations and Graphics
2.1. Overview
2.2. A Minimal Document
2.3. Typsetting Code
2.3.1. The listings package
2.3.2. Features of Code Listings
2.3.3. Using the listings package
2.4. Presentations
2.4.1. Introduction
2.4.2. Powerdot
2.4.2.1. About
2.4.2.2. How to install
2.4.2.3. How to compile
2.4.2.4. Setting up the presentation
2.4.2.5. Creating slides
2.4.2.6. Adding content to slides
2.4.2.7. Presentation structure
2.4.2.7.1. Making sections
2.4.2.7.2. Making outlines
2.4.2.8. Changing slide style
2.4.2.9. Miscellaneous
2.4.2.10. Resources
2.5. Intro to Pstricks
2.6. Tiger Style
2.6.1. Select a Style
2.6.2. Basic Customization
2.6.3. Make a new Style
3. Text Editors
3.1. Vim/Gvim
3.2. Xemacs
3.2.1. Background
3.2.2. Features
3.2.3. Basic Usage
3.2.4. Buffers and Files
3.2.5. Important Commands
3.2.6. Demo Basic Commands
3.2.7. Enough Lisp to be Dangerous
3.2.8. Basic Customization
3.2.8.1. Modes
3.2.8.2. auto fill mode
3.2.8.3. Mouse Wheel
3.2.8.4. Line and Column Numbers
3.2.8.5. Font Lock Mode (syntax highlighting)
3.2.9. Adding A Date Insertion Function
3.2.10. CC mode
3.2.11. The Most Current AUCTEX
3.2.12. TRAMP
3.2.13. Other Useful Modes
3.2.14. Resources
4. Revision Control Systems
4.1. Concurrent Versions System (CVS)
4.1.1. Terminology
4.1.2. Configuration
4.1.3. Setup
4.1.4. Updating your workspace
4.1.5. Restoring a Previous Version
4.1.6. Branches
4.1.7. Publishing a project
4.1.8. References
4.2. Subversion (SVN)
4.2.1. Terminology
4.2.2. Configuration
4.2.3. Setup
4.2.4. Updating your workspace
4.2.5. Restoring a Previous Version
4.2.6. Branches and Merges
4.2.7. Tags
4.2.8. Publishing a project
4.2.9. References
5. Scripting Part I
5.1. Common Utilities
5.1.1. GNU Coreutils
5.1.2. Find
5.1.3. Grep
5.2. Common Languages
5.2.1. Bourne Shell (sh) and Bourne-Again Shell (bash)
5.2.2. C Shell (csh) and Tenex C Shell (tcsh)
5.2.3. Sed
5.2.4. Awk
5.2.5. Perl
5.3. Simple Example
5.3.1. Solution: bash
5.3.2. Solution: tcsh
5.3.3. Solution: perl
5.4. (Slightly Less) Simple Example
5.4.1. Solution: bash
5.4.2. Solution: tcsh
5.4.3. Solution: perl
5.4.4. Solution: find
5.5. More examples
6. Ruby and Python
6.1. General-purpose Dynamic Languages
6.2. Python
6.2.1. References
6.2.2. Python Uses
6.2.3. Features
6.2.4. packages
6.3. Ruby
6.3.1. Features
6.3.1.1. Resources
6.3.1.2. Blocks
6.3.1.2.1. Closures
6.3.1.2.2. Initial Thoughts
6.3.1.2.3. Ruby Classes
6.3.1.2.4. Blocks
6.3.1.2.5. metaprogramming
6.3.1.2.6. Extending
7. Apache Ant & Gnuplot
7.1. Apache Ant
7.1.1. Writing Simple Buildfiles
7.1.2. Writing a (Slightly) More Complex Buildfile
7.1.3. More Interesting Tasks
7.2. Gnuplot
7.2.1. Examples
8. GNU Autotools
8.1. Links
8.2. Example
9. SSH and PGP
9.1. Overview
10. Alternative Programming Languages
10.1. Programming Language Paradigms
10.2. Common Design Patterns
10.2.1. Recursion
10.2.2. First-Class, Higher-Order, Nested, and Partial Functions
10.2.3. Iterators, Maps, and Folds
10.2.4. Variants and Pattern Matching
10.2.5. Other Design Patterns
10.3. Functional Programming Languages
10.3.1. Lisp
10.3.2. ML
10.3.3. Haskell
10.3.4. Erlang
11. gcc, gdb, gprof, distcc, colorgcc
11.1. GCC
11.1.1. Compiling GCC (method 1)
11.1.2. Compiling GCC (method 2)
11.2. GDB
11.2.1. External links
11.2.2. Screen capture
11.3. gprof
11.3.1. Creating the executable
11.3.2. Running the executable
11.3.3. Obtaining the profile information
11.4. distcc
11.4.1. Brief introduction
11.4.2. Using distcc in daemon mode
11.4.3. Using distcc over SSH
11.5. colorgcc
11.5.1. Configuration
11.5.2. Usage
A. GNU Free Documentation License