Dynamic DNS
Dynamic DNS updater -- C
source for Windows, Linux. Based on open source inadyn, and inadyn-advanced. This is an easy
to use, robust command line utility. It can also be installed as a service.
This fork (inadyn-mt), if you will, adds Unicode, language strings, and SIGUSR1 triggered ip
updates. On Windows, ip updates are RAS event triggered (update on dial-up connect), and Windows
service installation and management is built into the program executible. Timed updates still
work as ever.
The latest gzipped inadyn-mt release vErSiOn, including executibles is also
here, on the present server. :)
07/03/09 -- inadyn-mt audible alerts
inadyn-mt, interfacing with libsndfile, hacked to an MSVC 6 compilable library giving
an audible alert (plays a wave file) on network connection loss.
inadyn-mt-02.15.02-beta.tar.gz
libsndfile-nt-0.0.2.tar.gz
Tested on Windows NT, Linux Fedora and Ubuntu, and FreeBSD.
On Windows NT, compile the lib. Add it (waveout.lib) and winmm.lib to the inadyn-mt project, and
define USE_SNDFILE.
On Linux or FreeBSD, compile the library:
./configure
make
and move it (./libs/libsndfile_nt.a) over to the inadyn-mt ./src directory, and configure and compile with
such as:
./configure --enable-sound --enable-debug
make
If desired, become root, and run install:
make install
will default install to /usr/local/bin, with meta files to /usr/local/etc/inadyn-mt.
--wave_file </full_wavfile_path/wavfile_name> to designate wave file to use, instead of default which is /usr/local/etc/inadyn-mt/extra/wav/alarm.wav, or ./extra/wav/alarm.wav for default install or no install respectively.
--audible_off -- run with this option when configured for sound, but want off.
--alert_retries <0..100> -- set the number of network comm retries before sounding alert. On NT, 10 is good. 0, on Linux, FreeBSD, as
the online test is slower there.
--alert_interval <0..3600000> -- miliseconds between alert soundings when offline.
HTML/PHP
Web Page Input
(ftp://wecs.com/misc/esbfwpi.zip) - A spastically implemented though handy html/php interface
for date stamped web page entries, with comments sections.
Extract the files into localhost only accessible web server directory, and run pageinput.php, like
http://localhost/testdir/pageinput.php?path=public_html_path, where public_html_path is directory
containing publically accessable web content. Path defaults to testdir.
I'm using this together with some
php page generation and navigation routines. It works well within a scheme similar to say,
Drupal, but does not require a database (and a lot less complex/sophisticated I imagine).
CAUTION: The two archives here, extract into working directory, so create a directory for them if
indicated. See also, notes in pageinput.php. And uh, careful with the axe, Eugene.
Procmail Stuff
Auto-Archviving
(ftp://wecs.com/procmail/archcron-fifo.zip) -
Set of modular auto-archiving Procmail routines. See also, related article,
E-mail Archiving.
Header Munging
(ftp://wecs.com/procmail/mung.zip) - I wrote
this set of modular Procmail routines so replying to newsgroups email is
easier -- no need to "reply all" and then remove the personal (non-newgroup)
email addresses. See related article which also contains some warning
about header munging -- some don't like it --
Reply-To Munging. The routines have changed a little since the article -
they are now more modular, and can use without actually doing any munging -
to for instance, check a header's value against a list of values in a text
file.
Modular Proxy Progress Reporting System
Do progress reporting without having to tie progress reporting
code to reporting interface. See and download the WECS
Proxy Progress Reporting System.
Custom Dropdown Grid
Now persistent highlighted selections are not a problem in Corel Paradox
for Windows. The WECS
Custom Dropdown Grid is a Paradox TableFrame clip object featuring
a small object footprint in grid collapsed state saving precious page space;
multiple persistent highlight selection, and a custom function that returns
an array of record numbers representing records selections; incrementle
search with scrollible search text output displayed at the grid's right.
The grid object is very modular encapsulating many objects, and each is
configuable in terms of size, color, etc..
Multidimensional Arrays and Paradox
Multidimensional arrays can come in mighty handy. Often, programming
problems just scream to be implemented with them. Sadly, except for
arrays of TCursors (which can do the job quite beautifully), Paradox provides
only for single dimensional arrays.
The MultiDimArray Abstract Data Type (ADT)
The MultiDimArray ADT provides for arrays of virtually any dimensions.
Implemented within a Paradox library, array accessing is done through library
routine calls, using string literals, string variables, or integer index
parameters. Array access through library routine calls is a little
less convenient than the usual compiler/interpreter enabled bracketed indexing
(exp. arrayVar[2][2][3]), but the ADT provides for all other conveniences
associated with multidimensional arrays.
Get MultiDimArray (Source Code)
MultiDimArray