Tools
"Write it, fix it, categorize it. We've got your tools for all those bools!"
Very little can be achieved without the appropriate tools. Take to heart the philosphy of the
Pragmatic Programmers and
automate everything. To start you off, here are several of the
development and
system
tools I use regularly.
They won't cover all your needs, to be sure, but it's a reasonable start1.
Note: The tools listed below are provided according to the conditions outlined in the over-arching
disclaimer for the Imperfect C++ CD.
: located locally (on the CD).
: located on the World Wide Web
2.
Development Tools
|
I use all these development tools in the course of my work, and I recommend them all, even the ones I wrote!
|
CVS
Manufacturer: open source community
Home Page: http://www.cvshome.org/
Concurrent Versions System (CVS), is the dominant open-source network-transparent version control system. CVS is useful for everyone from individual developers to large, distributed teams. Also you should check out the great book "Pragmatic Version Control using CVS" by the Pragmatic Programmers.
|
Doxygen
Manufacturer: Dimitri van Heesch / open source community
Home Page: http://www.stack.nl/~dimitri/doxygen/
Doxygen is one of the leading open-source source code documentation tools. I use it with most of my libraries - STLSoft recls Open-RJ UNIXEm - and don't have many complaints. So long as you do the professional thing, and document as you code, you'll have no problems. Still, writing the documentation itself is still a PITA - if anyone's got any tips for how to make that easier, please let me know!
|
NDoc
Manufacturer: open source community
Home Page: http://ndoc.sourceforge.net/
NDoc is a documentation tool for .NET development. It can analye your .NET projects and is able to produce help in HTML, CHM, LaTex and MSDN formats. Nothing much more to say, other than it's got GUI and/or command-line forms, and is readily integrated into make-driven build chains.
|
Synesis Software Development Tools
Manufacturer: Synesis Software
Home Page: http://synesis.com.au/devtools.html
These are a miscellaneous collection of scripts and executable programs, including source manipulation, version control drivers, wizards and code generators. These are available online, and are updated from time to time. They're not included on the CD because some of them were decidedly lacklustre at the time that I was preparing it, and I decided not to embarass myself. By the time you read this, they'll be online in a robust and de-uglified form. ;)
|
Vim
Manufacturer: Bram Moolenaar / open source community
Home Page: http://www.vim.org/
Vi IMproved - says it all. Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems. Vim is often called a "programmer's editor," and so useful for programming that many consider it an entire IDE. It's not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files. I alternate hundreds of times a day between Vim and Visual Studio '98. Maybe I should make my mind up, or maybe "evolve" to a better editor, such as Emacs, or super-charge my typing speed with Visual Studio.NET (yes, I am kidding!). Anyway, where VS'98 lets me down, Vim satisfies all my needs. Try it, use it, love it. (Plus, it gives you the Vi skills to survive on unfriendly UNIX boxes.)
|
System Tools
Dependency Walker
Manufacturer: Microsoft / Steve P. Millar
Home Page: http://www.dependencywalker.com/
This is a fabulously useful tool, that used to be part of the Microsoft Platform SDK but is now provided free of charge by Steve Miller. It provides a graphical, hierarchical decomposition of the dependent dynamic modules (DLLs). This can be extremely useful in diagnosing "DLL Hell".
|
Synesis Software System Tools
Version: 2.5.2.370
Manufacturer: Synesis Software
Home Page: http://synesis.com.au/systools.html
File: systools_linux_2.5.02.0370.tar,
Operating System: Linux,
Size: 120 KB
File: systools_win32_2.5.02.0370.zip,
Operating System: Win32,
Size: 621 KB
These tools have evolved over the last several years to provide functions that are either not available as part of the operating system, or whose interface is poorly designed or somewhat inaccessible. If you're a software engineer, you'll find these tools most helpful, since most of them have come about to directly serve my needs. A good example of this is the whereis tool, which has -i, -l and -p flags that constrain the search to the locations specified in the INCLUDE, LIB and PATH environment variables. Another good example is nvx (Environment Expander), which expands any named environment variable(s), or the predefined variables via the same options for whereis, and can also mark any that don't exist. This is a great help at diagnosing problems in compiler environment settings. But the tools can also be of use to system administrators and power users: I've had plenty feedback (and some requests) from such folks.
|
SysInternals
Manufacturer: Mark Russinovich and Bryce Cogswell
Home Page: http://www.sysinternals.org/
The unmatched rich source of Windows system utilities - and if any OS needed utilities it's Windows - from the inestimable Mark Russinovich and Bryce Cogswell. If you are doing serious things with Windows, you need to be checking out this site regularly. A word of warning for C++ programmers: the code's pretty hideous looking C. Still, you can't fault them for that, though, because they get it to do some pretty impressive things.
|
Windows Shell Extensions
Version: 1.6.1
Manufacturer: Synesis Software
Home Page: http://shellext.com/
File: shellext1_6_1.exe,
Operating System: Win32,
Size: 169 KB
Windows Shell Extensions are small, COM components that plug into Windows Explorer and customise its behaviour. Since using a mouse and/or doing things manually in windows is marginally better than have teeth pulled, I've been writing Shell Extensions for a long time. Available at http://shellext.com/ are some of the general purpose ones I've released free of charge. I've had thousands of downloads of these in the last few years, and only two bug reports (now fixed), so I invite you to download and install them, and make using Windows slightly less onerous.
|
|