Gerald Moull
MyDocz Ltd
Christchurch, NZ
03 342 5550


FileBackup - Incremental Backup and Replication of directories

Powershell scripts designed to provide incremental backup of directory structures (Groups) of files and keep local or remote replicated directories (Duplicates) up-to-date.

Backup scripts check for files modified since the previous backup and creates a Backup file of changes which it adds to a Store of incremental BackUps. The Backup can also be copied to a remote server using FTP.

Unpack scripts read the Backup files and place those changes into a replicated Duplicate directory keeping it up-to-date. It optionally verifies that complete directories match.

Batch processes enable multiple Groups of files to be backed up or unpacked with email notifications to ensure you know the backups are working. These can be added to the Task Scheduler for ongoing backups.

Documentation and source for 'FileBackup' can be viewed at


Alternative to httpWebRequest allowing modern ciphers on versions of Windows Server prior to 2022.

A site I manage integrates to a 3rd Party that updated their SSL connectivity and in doing so restricted the number of allowable ciphers for clients to connect with to 3 (for TLS 1.2). They are as follows:


The managed site operates in a .Net environment and its httpWebRequest classes use the underlying operating system's https commmunication facilities. The 3 ciphers were not supported on anything other than Windows Server 2022 and we were not in a position to migrate to this platform.

I therefore investigated placing another server in our network to operate as a 'proxy' for our calls. The 3rd party uses Linux and PHP, so this was a natural choice.

However, we have PHP installed on our Windows Servers, so investigated if curl within PHP would use these ciphers in a Windows environment.

They did indeed make use of these ciphers, so I have put together a mdzWebRequest package of PHP proxy and .Net class to wrap the .Net httpWebRequest class to optionally make use of the proxy.

A testing/demonstration page can be viewed at

This test allows the properties of the a mdzWebRequest object to be set and the resource envoked. There are also a number of preconfigured tests demonstrating mdzWebRequest handling Text, JSON, XML, Image and HTML data.

For security reasons, the object can not call the resource directly, instead it is coded to always use the mdzWebRequest Proxy which is held on its own domain that only allows access from the MyDocz network (ie the mdzWebRequest Test) and only allow 2 requests per 10 seconds across all users.

Documentation and source for mdzWebRequest can be viewed at

yasl - Yet Another SMTP Limit (for hMailServer)

This is a module to apply hourly and daily limits to the number of messages hMailServer accounts can send.

This was created to stop hacked accounts being used to send spam.

It runs on set Daily/Hourly limits that can be set per domain or account and have time based overrides - eg if someone is going to do a mail shot.

Processing is performed by a Singleton class/object that loads configuration when the first messages is sent and keeps its loaded. History is also held in memory, rather than examining log files, to maintain performance and reduce risk to the mail server and other services on the server should an email account be hacked.

Yasl is provided as a web service hosted on IIS in .Net (c#). Administration pages are provided to view the current status of configuration and activity, plus an option to reload configuration without the need to restart the web service.

Logs of activity are created periodically, on demand or when the Singleton object is destroyed. The latest logs are reloaded when the object is recreated so that activity status is maintained.

Documentation and source for 'yasl' can be viewed at

CSS Reference

I wanted a quickly accessible reference for all CSS properties, so created this page.

CSS Reference Page


Gerald Moull
MyDocz Ltd
Christchurch, NZ
03 342 5550