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