| Data Acquisition and Online Analysis at the NSCL | ||
|---|---|---|
| Prev | Chapter 5. Best Practices for Building Software | Next |
One of the best books on CVS and how to use it is an online book called Open Source Development with CVS. You can buy or download it at: http://cvsbook.red-bean.com/
For a simple introduction to bash scripting see the online document: http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
For Tcl resources we give the standard set of references:
The power point slides for a Tcl/Tk class I gave at the NSCl are at: http://www.nscl.msu.edu/~fox/talks.htm
J.K. Ousterhout Tcl and the Tk Toolkit Addison-Welsey Professional Computing Series
B.B. Welch, K. Jones, J. Hobbs Practical Programming in Tcl and Tk
The NSCL DAQ software is written in C++ to program the application frameworks requires at least a basic understanding of C++. The following are some web and printed resources that you can use for C++:
http://www.nscl.msu.edu/~fox/talks.htm provides the power point presentations for a C++ class I gave at the NSCL.
The definitive C++ book is B. Stroustrup The C++ Programming Language Addison-Wesley Publishing Company.
Much of the NSCL DAQ system uses the standard template library which is part of the C++ standard library. This is described in: D. Musser, G. Derge, A. Saini STL Tutorial and Reference Guide Addison-Wesley Professional Computing Series
Design patterns are descriptions of solutions to general problems of software development that recurr over and over again. In C++ design patterns take the form of descriptions of sets of interacting classes and how they conspire to solve these recurring problems in a 'best of breed' manner. For information about design patterns and applying them to your software development, see:
Design Patterns Elements of Reusable Object-Oriented SOftware by Erich Gamma et al. As there are four authors on this very well known book, this book is often referred to as the Gang Of Four or GOF book.
A system of Patterns Pattern-Oriented Software Architecture Frank. Buschmann et al.
http://wiki.tcl.tk/2339 Describes how to implement several of the patterns described in the GOF book in Tcl.
The Portland Pattern Repository is an online collection of patterns: http://c2.com/ppr/
Makefiles are described in:
A very brief online introduction to Make and Makefiles is in http://oucsace.cs.ohiou.edu/~bhumphre/makefile.html.
Managing projects with GNU Make R. Mecklenburg is an O'Reilly book that describes how to use Make and how to write Makefiles.
An adjunct to Makefiles are the GNU auto tools. These are what are usually used to produce distributions that can be installed with configure ;make install on unix like systems. Autotools are used by the NSCL DAQ and SpecTcl software to help them be as system independent as possible. Autotools are useful for building installations that must be sent elsewhere (to your collaborators), they allow you to build installation systems that can test for and locate software you depend on and will write the makefiles customized to the target system. Unfortunately, the documentation for autotools is not very well organized. Probably the best resource is GNU Autoconf Automake and Libtool by Gary Vaughan et al. This book was published with the 'open commons license' and is available for purchase or download at: http://sources.redhat.com/autobook/download.html.