Stuff Tools
Introduction
Stuff Tools comprises a bunch of perl modules and utility programs. There's some useful, erm, stuff in there. Some examples:
| groupby | Provides statistical aggregation function for textual input in the unix fiter program tradition. |
| sq, dq | Trivial quoting programs to help use find & xargs with filenames that contain whitespace. sq=single quote, dq=double quote. |
| ascii2morse | You want to type out morse code with a QWERTY keyboard, right? |
| sumup | Adds up numbers in the unix filter style. Outputs statistical operations on set - sum, mean etc. It can also can output is proper byte units like KiB |
| dms2dec | Degrees, minutes and seconds to decimal. Useful for people who make angular measurements. |
| remdup | Searches a directory tree for files with the same contents (based on md5 or sha1 checksum). For files where there are duplicates, it removes all but one, replaceing them with a link to the one "master" copy of the file. This program was written with for saving on disk space with the open clipart librar where there seem to be a lot of duplicate files. |
These are only really examples of how to use the perl modules. The modules contain a variety of nice utility functions including, but not limited to:
- Convenient and flexible pretty debugging output
- Keep pod docs in your programs and generate usage info directly - no need to maintain two files. Yes this is more of less the same as doing "pod2text ... $0", but a lot cleaner to use.
- operations on numerical ranges
- tabular output of data (alternative to perl "write" which is better for some kinds of data)
- morse code parsing and conversion, including American Morse dialect (something the existing CPAN morse modules don't do)
- CSV creation and parsing from an to arrays. With proper escaping of quotes and delimiters.
How you can help
Since Stuff Tools are in a pretty early stage of development, one of the easiest and best ways of helping to to provide feedback. For now this just means emailing the author (see below for details).
However, it would also be great to contribute code, bug reports or documentation.
History
Stuff utilities was borne out of the frustration derived from re-implpementing the same old perl bits and bobs each time I started a new contract. I've developed some useful little gizmos over the years and it's annoying that each time I start a new contract I have to implament a-fresh (since implementations for one employer usually belong to them).
So I decided to implement this little toolset so that I can use it as a generic base which I can then specialize for new customers. The way I've set out the licensing should mean that I can use the generic parts distributed here, but use them as a base to write code that is OK for customers to keep and use as they wish without the more restrictive aspects of some licensing models...
All code in this project is a clean-room implementation - I was not employed by anyone to write any code distributed in the Stuff Tools.
Licensing
All modules are licensed under the GNU LGPL.
All programs are licensed under the GNU GPL.
Author
The author of the Stuff Tools is Matthew Gates
