Computers and Programming
R (Old Splus tips)
iPlots for R
Essential Software Skills for Research Scientists
Computing Books at Free Book Centre
Unix (incl. Emacs)
Guide to Programming Languages
MPI (Parallel computing)
Free programming for beginners: Small Basic
Visual Studio Express (Basic, C++, C#)
Learn VB (MS)
VB Graphics Tutorial)
Visual Basic for Microsoft Office applications
Specialty Plotting: Cart: cartogram software
Highcharts: pre-made graphs on a web page
Shiny: custom interactive graphics on a web page
Utilities: Simple version control: archive (commented csh script file)
My useful R functions
An R program for comparing files when using double data entry
Tutorials: Automated Culling of Information from the Internet
UCLA tutorials on many topics
Subsetting Large Datasets: Two methods
Powerpoint posters: How To
Print at FedEx (link to free software)
Other Info: Regular Expressions
Problems with computers doing math: Numerical Nonsense
Here is a simple system for constructing databases from user input on web forms (tested on Linux):
- Get your system administrator to set up a "cgi" directory for you.
- Make a web form on any web page in any public_html directory. Buttons, radio buttons,
checkboxes and textboxes are all allowed (max. of 26 can be changed in cgiwrite.c).
See instructions here.
A simple example is here (use view page source to examine
this). The minimal requirement is a form with a post method with action equal to the
compiled C program "cgiwrite" (including a full URL showing its location in your CGI
directory), and with at least one input field, plus a hidden field called
"dbname" with value equal to the name of the (text) database filename which will hold
the users input. (You can have as many forms as you like for different projects.)
- Make sure the C program "cgiwrite" is in your cgi directory. The PC/Linux version is
here. The source file cgiwrite.c
is only needed if you want to make changes or work on a different platform.
- For security purposes you must either run cgisetup or
do the following:
- In your cgi directory create a file called dbPermissions.txt and be sure that others
in your group can read from it, but not write to it (chmod g+r dbPermissions.txt
and chmod g-w dbPermissions.txt).
- For each project add one line to this file consisting of the name of the
text data file (dbname, above) that will hold users' input, then a space, then
a number (no commas) that is the maximum number of bytes allowed for this file.
This will prevent an evil user from overloading your file system.
- For each new dbname, create the file using touch mydbname where mydbname
is the actual file name you defined. Then allow users to write to it with
chmod g+w mydbname. You may want to also execute the Unix command
chmod g-r mydbname to keep users from reading other users' input.
- For convenience, you probably want to put cgiread and
cgiread.R in your cgi directory. The first of these
is a c-shell file, so you may need to execute chmod u+x cgiread and
rehash the first time you download it. The second file contains
R commands used by the first file. Together these files convert the text database
into a .csv file that can be loaded into R or Excel. Just execute
cgiread mydbname and you will get a message telling you that a
corresponding .csv file was created.
- Optionally, you can convert the stored database directly to a web page. This is done
by running cgihtml (which runs cgihtml.R
behind the scenes). The Linux runstring to convert the current database to html is something like:
cgihtml foobar.db myresults.html mytemplate.html
where the command is run from your cgi directory and "foobar.db" stands for your cgiwrite
database, "myresults.html" is the name of the html file to be created, and "mytemplate.html"
is a template for creating the html file. The template is any html code that somewhere
has a line containing only "TABLE" at the place where you want the table to appear.
Note: be sure that cgihtml is executable (chmod u+x cgihtml)
Note: if the database has a field called "category", the table will be sorted by
Note: it is convenient to setup a csh script file containing the full cgihtml command,
then add a line to the unix "cron" facility using crontab to have the
html file automatically updated from the database by running the script file at periodic intervals.
All links active 5/15/2014. Please report missing links to
Back to My Home Page