GDS Software's Free Software Tools
These tools are provided for use under
the GNU General Public License (GPL). Click here
to get a copy of the GPL. These software tools are provided without
any warranty -- you agree to use them at your own risk. GDS Software
and Don Peterson are not responsible for any losses you suffer
because of this software.
Click here
for some notes on some of the software tools that I like and use.
| archimedean.py | Script to calculate the arc length of an archimedean spiral. For example, use it to estimate the length of toilet paper on a roll. |
| frac.py | A python script that will calculate a rational approximation to a real number. If you download the free mpmath python library, you can calculate to arbitrary precisions |
| ElementaryFunctions.zip |
Graphs of a variety of elementary math functions, useful for a quick picture of how they behave. |
| math_cheatsheet.odt
math_cheatsheet.pdf |
How to do things in Open Office's equation writer. |
| OO_math.pdf |
Introduces the equation-writing capabilities of Open Office 2.0. |
| pycephes.zip |
A pure-python translation of Stephen Moshier's cephes special functions. Bessel functions are missing. If you are doing serious numerical work with python, use scipy instead, which contains the cephes functions written in C. |
| root.py |
Implements a general-pupose root-finding method in python that was published in Embedded Systems Programming, May, 2002, pg 7-14. The method is based on fitting a parabola and converges quickly. It is similar to bisection in that it needs two abscissas where the ordinate differs in sign and thus brackets a root. Convergence is highly likely, unlike a single estimate and Newton-Raphson iteration, where a near-zero derivative can send the algorithm into the next county. |
| ShortTable.zip | A set of tables of elementary math functions intended to print on half of an ANSI-A sized piece of paper. These tables are intended for use when a calculator isn't available. The original is an Open Office spreadsheet -- email me if you'd like a copy of it. |
| eng_grid.py |
This script will generate most any linear isotropic graph paper by creating a PostScript file. |
| iapws95.zip |
This zipfile contains C++ and python code that implements the IAPWS95 equations for the thermodynamic properties of water. You might also want to take a look at John Pye's freesteam project. |
| irr.py |
Calculate irradiance over a wavelength band from a spectral irradiance data file. It is written to work with StellarNet spectroradiometer files, but it can easily be modified to work with other data files. |
| mixture.py |
A script to aid in mixture calculations. Adapted from a C program here. |
| novas.py |
Translation into python of some C code from the US Naval Observatory. It contains routines that are nearly identical to those used for calculations of the Astronomical Almanac. Here are some notes I made on it. |
| reactance.zip | Some PDF files containing reactance charts. Two are for monochrome printers and two are for color printers. These are vector drawings, so will scale to any size. They are made for US letter size paper; if you would like them for another paper size, please send me an email and I will put them into the zip file. What I mean by "Free for non-commercial use" is that anyone can use it, but it is not to be sold by or to anyone. If you wish to sell it or brand it with your logo, please contact me. |
| VoltageDivider.zip |
This C++ program lets you design a voltage divider from the resistors you have on hand. The zip file contains the divider.cpp file along with a Windows executable. A PDF file also shows an ingenious resistor storage system my wife came up with that lets me find a resistor in a matter of seconds. |
| cheat_sheets.zip |
Contains various spreadsheets in Open Office format and PDFs of tables that I find handy to have in the shop. |
| gauge.cpp |
A C++ program to print out combinations of inch gauge blocks that yield a desired composite length. Should work with most any set of gauge blocks; uses brute-force searching to find solutions. |
| square.pdf |
How to use a carpenter's square to lay out angles. |
| thd.py |
Prints out various dimensions associated with threads. Calculates the values based on the ASME B1.1-1989 standard document. If you machine threads on a lathe, you may find this program handy. |
| weigh.pdf | Demonstrates how I "weighed" our trailer with a lever. With a 12 foot long 4x4, I was able to measure 2500 pounds. |
| app.cpp |
Handy application if you like to work at a cygwin command line. Given one or more files, it will cause them to be opened with their registered application. |
| asc.py | Console script to print out ASCII character table in decimal, hex, or octal. |
| bd.c |
Performs a comparison between binary files. |
| bgrep.py | Script to search for regular expressions and strings in binary files. |
| ddiff.zip |
Contains ddiff.py and ddiffcp.py. The ddiff.py script compares two directories and lists the differences between them. You can compare based on time, file size, or content. ddiffcp.py will perform the needed copying operations to help synchronize the content of two directories. |
| goto.zip |
Contains a sh-type shell function and a python script that let you navigate around to various directories. |
| hc.exe |
32-bit Windows console RPN hex calculator (supports floating point too). Use hc -h to get a man page. This has been replaced by an open-source program here. |
| html_tokens.py |
Will produce a list of readable words from an HTML file, all in lower case, one per line. You could then run the list of words through a spell checker. |
| naics.zip |
Contains a python script that can perform NAICS and SIC lookups. These are codes produced by the US Federal government and are used to identify different types of businesses. |
| readability.zip |
Will calculate various readability indexes for text files, such as the Gunning Fog Index, the Flesch-Kinkaid Grade Level, etc. |
| space.py |
See where the space is being consumed in a directory tree and where the biggest files are. |
| tags.py |
Script to generate tag files; supports xBase program files and BASIC. |
| tlc.py |
Script to rename all files in a directory to lower or upper case. |
| unx.py |
Produces a list of files that are candidates for turning their execute bit permission off. Handy in cygwin, since most Windows programs don't know how to behave properly with respect to the execute bit. |
| xref.zip |
A C++ console program that will cross reference the tokens in a set of files. It can perform spell checking. It has a -k option which makes it useful for programmers, as it will split composite tokens in their source code and spell check the individual tokens. |
| fish.zip |
Einstein fish puzzle notes and script to find all solutions by brute-force search. What's of interest to programmers here is probably the comb_perm.py script that can be used for searches using combinations and permutations. |
| otp.py |
Generates one time pads. |
| targets.zip |
Contains two PDF files of shooting targets. |
| sqrtcoding.py | Script to find integers in the decimal expansions of the square roots of integers. |