Programs and Scripts
Note: All programs and scripts are provided as-is. You can use them for
free, but don't make me reliable if something is not working as it
should
or you expected. I appreciate it if you notify me in case you found
something
useful.
Nearly all programs and scripts are written in perl. Perl is a powerful
language which is easy to learn if you know the basics of C and Unix
Regular
Expressions. If you need more information on this, visit the Perl
homepage.
On most systems you need to rename all files you d/l from here
from
.perl to .pl! It was necessary to rename them because some systems
wanted to execute them as .pl files.
Mailing List Analysis using SQL DB
This command line program (Perl) parses large files with
collected E-Mails from Mailing Lists. In the first stage, they are
stored in a SQL DB (I used Debian Linux - Sarge testing and MySQL). In
a second step threads are computed, in a third step you can export Edge
Lists for further network analysis using programs like UCInet. You can
use a SQL browser to get statistical data of the authors and threads of
E-Mails. There is a documentation inside the program. It is in my view
only useful for Social Scientists analysing mailing lists. You can
download it here.
This program enables you to easily design online surveys or order
forms.
It has grown so big that it was necessary to introduce own pages for
it.
Try this link to
find
out more.
Es gibt auch eine deutsche
Seite dazu - RST eignet sich für die einfache
Durchführung
von (unterschiedlichen, mehrsprachigen) Online-Umfragen z.B. in der
Soziologie
oder Marktforschung.
This tiny perl script provides a solution for the following problem:
You
have an existing document covering several pages. You wish to print
additional
information on each page, like Page numbering, Author text, etc.
You can use this script as template and apply changes when needed.
In this current version only HP PCL printers (i.e. Laserjet 5L) are
supported.
How many of the german domain names (*.de) are hosted in germany and
how
many are truly located somewhere else? This I wanted to know and this
program
turned out to be very helpful. It requires two more files: One is
tracedomain.data,
which is also supplied here
(only for german domains yet). The other file needed is your input file
which holds all domains you want to know where they are located.
tracedomain.pl
then does a traceroute to every domain (first with www prefix and if
this
does not work out, plain domain as written in the file).
Three output files are created:
The .out file contains the most valuable information, which can be
processed
using a statistical analysis program like SPSS or visualization
software
(i.e. Excel): Every domain is listed with Status (OK, not connected or
unable to reach right now), Country (where the host is placed), TLD
(Top
Level Domain, last readable domain name of your searched domain, i.e.
*.net),
Hops (Number of hops to reach the specific domain) and rt-time
(Round-Trip
time: mean, calculated from max. 3 packets sent by traceroute). If you
are not familiar with those terms, please read the manual to traceroute
first (tracert.exe if you are using DOS/Windows 95).
The .error file lists all domains which could not be reached or were
not
connected and also prints the traceroute of this domain. This helps you
to easily adapt the tracedomain.data file or to insert the
correct
location in your .out file.
The .log file contains all the information of the .out file and the
traceroute
output for each domain. If you are interested in different internet
routings,
you can look for my outputs which are available using anonymous ftp here.
To create the domain names, I took all german domains from nic.de
and weeded those files from all other information than domain names
with
This perl script reads the file Domains.txt in your current directory
and
extracts all domain names, writing it to Domains.weed. Currently only
working
for german domains only, but easily adaptable for other domain
names.
This script is randomly selecting a certain number of lines from an
ASCII
input file.
Scripts concerning IRC statistics
This is the core. It behaves like an IRC user, but you can program it.
Right now it asks the server every five minutes for users, channels,
and
servers connected. This data is appended to a file. Socip.pl also uses
RRD (Round Robin Databases) and mrtg.
You can easily change this script for your special needs.
Sometimes the program crashes (due to various reasons). For starting
up again, I used a script called by crontab every five minutes. Socip.botchk
is also available.
There are several IRC servers out there. Some include new commands.
The original Net::IRC module, which I used, does not react to all
commands.
That's why I changed and patched the original Net::IRC code. You can
find
this enhanced version of Net::IRC
here.
This script expects an ircII logfile as inputfile, which is scanned
line
by line. Certain outputs of ircII are recognized and the specific data
is stored. It knows i.e. several date-output formats of several
versions
of IRC. Right now it knows the /lusers, /list and /date command of
ircII.
After all data is read, reports are created collecting all User and
Channel info. Those reports could be used in Excel or SPSS.
Moreover, transform3.pl knows to handle them as well.
This is for use with mrtg3. Report files like those created by
irc_report.pl
are transferred into a Round-Robin-Database.
This script uses Round-Robin-Databases created with transform3.pl or
Socip.pl
and plots nice graphs. Moreover a sample HTML-page is stored, which
accesses
all new graphs.
Ancient programs for C64 and Amiga
This information is not connected to Rostock University.
I wrote several programs for Commodore C64 and Amiga Computer. All
are listed here just for historical reasons. If you need one, please
send mail.
C64 RAM Test, Eprom
Still needed is C64 RAM Test. This program sits in an EPROM which
replaces
the C64 Operating System Eprom. It is designed that only absolutely
necessary
chips are needed. It runs without a working C64 RAM, CIA, VIC, etc.
When
you turn the C64 on, 8 green numbered sprites are displayed on the
screen,
each one representing a Bit and a certain RAM IC, respectively. Then
the
RAM test continues, and if one bit fails, the corresponding sprite will
turn red. If the test should work OK for some time, you can press space
and a more comfortable RAM test program will turn up which runs
non-stop,
testing nearly all the 64K and displaying wrong bits. If you want to
buy
this program on an Eprom, please contact me.
C64 Disk Manager
German Disk manager software. Directory of an inserted disk is read,
you
can follow and alter each used sector. Very easy to use program.
C64 Software Verwaltung. C64 Software Manager
Creates database of all C64 software. Is able to read Directories of
disks
and tapes (also Turbo Tape format).
Special system which uses a custom format for every VC 1541 data disk
and is able to store 300KB of data that way on the database disk! Very
fast search option.
C64: Vizawrite to ASCII text converter
This perl-script vizawritetoascii.pl
is able to convert files written with Vizawrite (C64/C128) to ASCII
text
files.
Amiga: GASS (6502 cross-Assembler).
Written in C, released on aminet ages ago. Allows you to write C64
programs
on the Amiga using it's superiour editors (Cygnus) and compile
lightning
fast. Supports bank-switching.
Amiga: Varus network
Network linking one Amiga (server) and up to nine C64. Allows data
transfer
and Sim-Screens (you can see C64 screen content on Amiga screen of
selected
machine and keystrokes on Amiga are transmitted to C64). Requires
special
hardware on Amiga (connected to its parallel port) and C64 (Expansion
slot).
As far as we (including my former programming partner Mathias Kettner) know, the only
network
created between C64 and Amiga that deserves its name.
Recently developed scripts helping with Fritz!Box address book import and Mac OS X filename transformation
Fritz!Box address book script CSV import
You can use this script to import .csv-data (name, phone number) to an Fritz!Box address book. The modern Fritz!Box is able to maintain several address books, so you can define one "personal", one "work", one "kindergarten parents", one "family" address book. It is useful to create those .csv files and then use this perl script to create an .xml-file which you can import into your Fritz!Box.
Perl script to transform and rename Mac OS X UTF encoded filenames
There are two different possibilities UTF-Filenames (and directories) can be written, for example German Umlaut "a¨": "a" with two dots above (two characters) or simply one UTF-code "a". Sometimes you can recognize this when renaming the file with this Umlaut, you try to erase it, but you need two backspaces, after the first stroke an "a" appears. This is really very strange and took me weeks to find a solution: All files and directories with special characters to be found in MAC OS encoding only (three dots for example as one special sign) need to be replaced with "normal" characters. There are many more characters treated in the script, also filenames starting with "-" are replaced with "_", because some storage providers do not properly backup those files.
The script does all the renaming. After this your data should be copied to other OS systems like Windows or Linux without the previous problems and backup software should also work then.
The script runs in a Mac OS terminal window using built-in-perl. So it works out of the box without need to install additonal software. Every file is saved also in a Database file - using also built in SQL lite technology. There are log files written for each transformation (UTF characters, files starting with "-", files ending with space, files ending with dot, .tif-files without extension can be automatically added .tif etc.).
There are also modes where you can read the database file and search for sha256 checksums to find the file location and how it needed to be processed. Moreover you can find duplicate files using this method.
Last changes: June 14th, 2019
This page is (c) Kajetan Hinner
1998-2019 unless otherwise stated. Without written permission it's not
allowed to
use any of this content (including links) commercially. Non-commercial
use is encouraged .It's not allowed to make profit out of my work.
Follow this Link to get to my
homepage.