Application software

Mightycom

Mightycom

In 1980 I wrote the terminal emulation suite Mightycom and I developed it for many years. It was a very powerful terminal program that supported many terminals like: TTY, VT52, VT100, ANSI-BBS, Videotext, Teletel and Cept, supported a lot of file transfer protocols like: Xmodem, and Zmodem. I used the VT100 emulation on Digital Vax 11/750 VMS systems. It also had an internal software MNP / MNP5 stack and an internal software V42 / V42Bis stack, as well as an internal software TCI/CP stack. It also supported fully self-configurable COM port (hardware) setting.

It could send and receive FAX and has a build in scripting language interpreter to automate all the internal function in a script. (MSL Mightycom Script Language) It supported all kinds of graphics cards from CGA to VGA. It will run under any DOS version and it is a typical MS-DOS program. It will run on anu PC / PC-XT or PC-AT computer and the software supports the Dutch / English and French language. The large manual is only in Dutch.  

Mightycom

I was the only programmer /  developer on this program and it is written in plain C language and 8088 assembler (interrupt driver / overlay manager / memory manager). The software was a free addition to the modems we developed and sold, the last version was also sold as a separate product. I was working for Micro Technology at that time and the software was copyrighted. But the company does no longer exist and the software is about 40 years old so I decided to make it available for all MS-DOS fans. You can download the original disk content as a single zip file.

Health Mon

Http health check monitor

Hein Pragt Http health monitor As a technical application manager I face the problem of having a complex application with many servers and lots of api services, and sometimes one or more of the many http servers or rest api’s fails. There is excellent tooling to monitor an application farm but a lot of companies do not invest in this kind of health check maintenance tooling especially not in de development area. Giving the fact that a lot of technical maintenance is done by the devops team and they also don’t have the health check tooling to monitor the servers. I am a programmer so decided to build a small portable dotnet program that could generate a real time status view of all the http(s) services in an application suite. It is a simple http server that will run on any chosen port (default 8080) and it reads a simple xml file with a list of url’s it has to poll and what result status code is expected. When the expected status code is returned it will show a green bar and when the status is different it will show a red bar with the server name and the http error code. The program is a simple x64 DotNet 4.6 console application that you can run from the command line, or at server startup, from a scheduled task.

It expects a settings.xml file and a style.css file in the same directory, the xml file contains a list of all the url’s the program has to poll. It looks like this:

<servers> 
  <server> 
    <group>Dev</group>
    <name>Server one VM00345:8080</name> 
    <url>http://www.system1.com:8080/health</url>
    <valid>200</valid>
  </server> 
  <server> 
    <group>Test</group> 
    <name>Server one VM00347:8081</name> 
    <url>http://www.sever11.com:8081/api</url> 
    <valid>401</valid> 
  </server> 
  <server> 
    <group>Test</group> 
    <name>Server two VM00385:80</name> 
    <url>http://www.apigate.com/test</url> 
    <valid>200</valid> 
  </server> 
</servers>

To give users a chance to change the layout or colors of the healt monitor screen, an external css file is provided, it will be read at startup. It only contains the basics, but if you f.i. use short names you could change the width of the blocks (entry) so more blocks can be displayed on a singe screen. It looks like this:

.ok { background-color: lightgreen; } 
.error { background-color: red; } 
.entry { width: 320px; padding-left: 8px; padding-right: 8px; margin-left: 4px; border: 1px solid gray; float: left; } 
.header { font-size: 1.5 em; padding-bottom: 4px; margin-bottom: 4px; } 
.timestamp { font-size: 0.6em; } 
.groupend { clear: both; } 
.groupbar { width: 99%; color: #ffffff; background-color: gray; margin-top: 6px; }

Since version 1.09 there is a config.xml file where some configuration settings are stored in simple name value format. The commandline port will still overide the config.xml setting.

 <settings> 
   <setting> <name>Port</name> <value>8080</value> </setting> 
   <setting> <name>TimeoutMs</name> <value>2200</value> </setting> 
   <setting> <name>Title</name> <value>Development</value> </setting> 
</settings>

Every time you send a GET request to this health check monitor program the internal http server will poll all he url’s and generate the html status screen. It will not poll until the next GET request, the date time stamp of the last request is in the top of the screen. This http health check program is KISS (keep it simple stupid) and does what it has to do and nothing more. Its portable and does not need installation and it runs anywhere you put it. It only needs the dotnet 3.1 (or higher) installed. The program is closed source, freeware and without any warranty whatsoever. But I use it myself and I think it’s simple, stable and safe. Any recommendations for improvement are welcome.

Download the zip file of the https health monitor program and unpack it in a (logical) folder on your disk drive, I use a folder named portapps in the root folder of my C drive. Run the http health check monitor program by hand (the argument can be a different port number), double click it for the default port and it will start a console application. As long as this console applicatio is running the http server is alive. In the console window it will log all the things it does, including more details on the response codes. Start you browser and type: http//localhost:8080 and the status screen will be displayed in you browser. The timeout on every request is 1.5 seconds, so if a lot of servers are down, the response screen will take a while to load. If you open the port number in the firewall, the http server can also be used on another (client) computer.

Versions

Version 1.09 – Feb 2021 – new features.

Here you can download the zip file with the lates version 1.09 of the HmPHealtheMonitor.exe portable Windows ™ health check monitor program. The executable file is digital signed with my heinpragt.com codesigning certificate. Read the intructions to use above.


Download: HmPHealthMonitor109.zip

Release notes

  • 1.03
    • Initial release
  • 1.04
    • Add timeout of 1.5 sec.
    • Now listening on any IP
  • 1.05
    • Added support for old and invalid TSL/SSL versions.
  • 1.06
    • Added explicit GET methode.
    • Improved error handling.
  • 1.07
    • Improved TSL/SSL handling.
  • 1.08
    • Fixed bug in 404 errorhandling.
  • 1.09
    • Added configurable timeout value for each call.
    • Added a configurable title for the header.
    • Added a config.xml file.

Known issues

  • The windows defender program will sometimes block this program, just right click the exe file and click run anyway.
  • The Avast virusscanner sometimes gives an alarm, I double ckhecked, it is a false positive.

How to install the Health monitor as a service in Windows ™

When you want this health check monitor to run at a Windows server at startup, one way is installing it as a server and set the startup mode to automatic. This also gives the opportunity to run it under another account. There is a nice open source wrapper that can run ANY windows executable (but also runnable jar (Java) programs) under windows as a service. You can find the binary distribution (but also the source code if you need it) at Github, it is the WINSW project for dotnet version 4 with the name: WinSW.NET4.exe, Jus Google it and download it from Github. This is a short manual for this purpose, you can also use it for other programs.

  • Copy the file to the directory containing the executable.
  • Rename the file WinSW.NET4.exe to HmpHealthSrc.exe.
  • Create a xml file with the (same) name HmpHealthSrc.xml.
  • Edit this file and change the content to this:
<service> 
  <!-- ID of the service. It should be unique across the Windows system-->
  <id>HmpHealth</id> 
  <!-- Display name of the service --> 
  <name>HmpHealth WinSW</name> 
  <!-- Service description --> 
  <description>HmpHealth on port 8080</description> 
  <!-- Path to the executable, which should be started -->
  <executable>E:\HealthMonitor\HmPHealthMonitor.exe</executable> 
  <arguments> </arguments> 
</service>
  • To change the port, just put it in arguments.
  • Open a CMD shell and go to the HealtMonitor directory.
  • Type: HmpHealthSrc install to install the service.
  • Open the service manager and check i fit is set to autimatic and start the service.
  • Check, using the browser if the Health Monitor is running.

WINSW commands:

  • ‘install’ – install the service to Windows Service Controller
  • ‘uninstall’ – uninstall the service
  • ‘start’ – start the service (must be installed before)
  • ‘stop’ – stop the service
  • ‘restart’ – restart the service
  • ‘restart!’ – self-restart (can be called from child processes)
  • ‘status’ – check the current status of the service
  • ‘test’ – check if the service can be started and then stopped
  • ‘testwait’ – starts the service and waits until a key is pressed then stops the service
  • ‘version’ – print the version info
  • ‘help’ – print the help info (aliases: -h,–help,-?,/?)

More pages on application software

Hpmef

Minimal Emulator Frontend

There are a number of great emulator frontends available on the Internet, I use retropie on a mini Nes with a Raspberry pi. But for my Windows 10 desktop there are only programs that are huge, with a lot of artwork and sounds, not user friendly and sometimes very hard to configure. After some disappointing experiences I decided that I needed a very simple frontend, just select a game and double click it and it will run on the correct emulator. As always when I cannot find what I need I write it myself, I am an experienced C and C++ programmer and I know how to write portable Microsoft Windows programs. I still have a backup file with a lot of game roms, I only needed to find some stable and portable emulator programs for these game machines. And these game emulators had to have a command line interface to start the emulator with a predefined game rom.

I tested some emulators and after a while I had a good collection of free, portable emulators that I could deliver together with my frontend program. The reason I also package these emulators is that I can predefine them in my machines config file so that the program needs no configuration and will work out of the box. I cannot package any game roms as they are copyrighted, you have to find the game roms yourself. But just copy them into the roms directory in the subdirectory of the game system and the next time the program starts it will scan and add this game to the list. The program is very simple but does exactly what its needs to do and has a user friendly interface. It will work out of the box, there is no need for configuration. There are two config files that are just plain text and you an edit them to add friendly names to the games of to add of delete a game emulator.

To install it just download the zip file, it will contain the exe file and some predefined directories. In the emulators directories there are several preinstalled portable emulators, you can update them yourself as they are free available on the Internet. When you start the program you will have an empty screen, that good. Now just copy the rom files from your archive to the roms directory in the correct folder of the game system and after that start hpmef.exe again and the games should show in the list. Just DoubleClick on the game and the correct emulator should be started with the correct game rom. There are two config files, the file games.txt is a generated file you can edit only the third column and that is the friendly name of the rom and also the display name. By default this is a copy of the rom filename. This friendly name will not be overwritten and will last as long as the file is not deleted. You can delete the file and start the program again, this will generate a new games.txt file.

The second configuration file is the machines.txt file that contains all the game emulators and the abbreviation used to connect the game emulator to the game. It also contains the file mask of the roms for this system. You can edit this file and delete or add emulator programs. Always add new emulator programs under de directory emulators and then add the manually to the machines.txt file. This is the only real configuration you need to do, only if you want to change the default setting. This file will not be created new, so do not delete it and make a backup copy. This program is digitally signed by me so it should be trusted by Microsoft Windows ™. The program is freeware, you may copy it as you like, use it as you like, but there is no warranty whatever. I am a good programmer and I do not expect this program to do anything bad tot your system, but I cannot be responsible for the way people use it so there is no warranty from my side for the use of this program. But my site is trustworthy and I consider myself a trustworthy programmer, but I have to mention this warning.

Download the zip file and unpack it in a (logical) folder on your disk drive, I use a folder named portapps in the root folder of my C drive. It will create a directory structure and add some files. Just make a shortcut to the hpmef.exe file or DoubleClick it to start the program. If you find a bug or have any good suggestion to improve this program you can contact me trough the contact form on this site.

Versions

  • Version 1.01 – Aug 2020 – initial release.

Download

Here you can download the zip file with the lates version 1.01 of the hpmef.exe (Hein Pragt Minimal Emulator Frontend) portable Windows ™ program. This version supports a Gameboy emulator, Gameboy Advance emulator, Nes emulator, Super Nintendo emulator, Nintendo 64 emulator, MSX emulator and Sega geam gear emulator. Have fun!

Download: hpmef101.zip

Links to the emulators homepages

More pages on application software

Hmpfilefind02

hmpFileFind utility

As a Windows software developer for many years I had a directory with all small portable utility programs that I put on every system that I had to work on. HmpFileFind is a simple portable freeware application that helps find files on a filesystem (recursivly) by file pattern and file content. A lot of time I wonder where on my 3 Terabyte hard disk did I put this file and then I use this little application to locate it. I can search the disk for a (wildcard) filename, but also on a word or phrase in the file. As a web developer I sometimes wonder where have I used this link or this word or phrase on my website, then I select the root file of the website on my hard disk, select to only look into *.html files and type a word or phrase that I want to look for. The listbox will be filled with all the filename and the file paths of the files and just double click on the filename to open it in the preferred editor. Regards, Hein Pragt.

Hmpfilefind01

What kind of application is HmpFileFind

This program is very simple, it does not maintain a database it does not keep any internal information and is privacy friendly to use. The only thing is that it saves the last settings and will reload the at the next time to save time. It will not make any modifications to the filesystem and it will only search for a word in a file if the search field is not empty. It can find words in all files that contain text not in binary files.

The program is small and limited, you cannot use regular expression in the search phrase and when searching through a lot of files, this will take some time. The program is portable and is not depending on any other library or runtime, it comes in a X32 and X64 version and the exe files are digitally signed by a coding certificate for your safety. Just unzip the file somewhere on your disk and click to program to start it. A very handy utility for finding your files (that contain certain words) on big filesystems.

Download

This program is digitally signed with my own code certificate and it is trusted by Microsoft windows.

Download. (Version 1.01 2023)

  • Version 1.01
    • Initial release, it might be not completely bug free, I use it a lot myself, I will wait for remarks amd release the next version soon.

More pages on application software

Pragtfotomanager Header

PragtFotoManager utility

Twenty years ago I bought my first digital camera and there were almost no programs to manipulate digital photo’s. So I wrote a little program to fit my needs and for a few years I even sold it. After a few years I decided to make it freeware and this is the last version I compiled. (Currently I cannot compile it anymore, so this is the final version). The program is in the Dutch language and there is no English version. PragtFotoManager is a small portable program that allows you to perform one or more operations on one or more (up to a maximum of 999) photos. The operations are: rename photos, resize photos, create thumbnails, save information from photo, create photo index pages and provide photos with a copyright text. (Watermark). You can perform these operations individually but also run them all at the same time. The program is especially useful when you need to edit large amounts of photos, for example for a website or sending by email. The program will not overwrite your original photos (except when renaming) but creates a copy of the photo with the desired operation. It is not a very modern program, but it still can be very useful. Regards, {-Hein Pragt}.

What kind of operations can it do?

1. Rename photos

Often you have many photos on your hard drive and the file names are not always clear. Most cameras number the photos with a fixed prefix. You can manually rename the photos, but that is often a time-consuming job. This program makes it is possible to select several photos and to provide them all with a meaningful name and serial number in one operation. You can enter the numbering prefix, start number, and interval. You can also adjust the order of the photos before renaming so that after renaming they form a logical whole. For example, when you edit your holiday photos, you can include the place and date in the name.

2. Resize photos

As the number of megapixels of cameras is constantly increasing, the photo files are also getting larger. When you want to send these photos by email or put them on a website, the files are often too large to send and much too large to display on a normal web page. If you put the photos on your web server in a large size but display them in a reduced size, you will consume a lot of bandwidth and your pages will load slowly. Resizing and optimizing photos will make your pages load faster. With the help of this program you can quickly and easily resize photos. You can reduce the photos to a number of standard sizes (800×600) (640×480) (320×240) or enter your own size. The photos will be re-sampled so that the resized photo remains of good quality. To prevent overwriting, the reduced copies will be placed in a subfolder named by the width and height of the format by default. So you can see at a glance what size the photos are in these subfolders.

3. Put copyright text on all photos

You can also automatically place a small (copyright) line of text on every photo when you are resizing, with a selected foreground and background color. This option is useful, for example, to include a copyright notice (watermark) in the photo. The position of this copyright text can be adjusted and you can also place this text in the border around the photo. This option is very useful when you use the want to publish photos on the Internet and clearly state your copyright.

4. Generate thumbnails

Thumbnails are extremely reduced images that can be included in a link on an internet site, for example. You can determine the maximum height and width yourself. The thumbnails will be written in a subfolder thumbs by default, you can adjust this setting yourself. When resizing, the width to height ratio of the original photo will be used. When you post photos on the Internet it is recommended to use thumbnails on the overview page and not the reduced size versions of the photo to make the page load faster and save bandwidth.

5. Convert to another file format

If you want to convert your photos to a different storage format, you can of course do this with a graphics program (such as Photoshop). When you have a large number of files to convert, it may take some time as you will need to open and re-open each file. Pragtfotomanager allows you to convert a large number of files to another file format at once. The input formats can be mixed JPG, GIF or PNG, the output formats are JPG, GIF and PNG.

6. Store EXIF data

Modern cameras save the settings of the photo as extra data (exif). You can make this exif data visible by loading the photo into Photoshop, for example. However, after editing in some programs this information is lost. Since it is important for a photographer to have this exif data such as aperture and shutter speed setting available in text form Pragtfotomanager saves this data in a text file. Pragtfotomanager can create a separate text file for each selected photo with the same name as the photo (extension TXT) where this information will be writtem in readable form. You can also choose to write all this information into one file.

7. Make index sheets

Some photo print centers provide an index sheet. It contains the thumbnails of all photos and the name of the photo. This is very useful when reordering. These index sheets are also very useful to manage your collection of photos. This program can automatically generate index sheets from the selected photos. You can determine the size of the index pages and the size of the thumbnails. The program itself will format it and calculate the number of thumbs per page.

All these operations can be performed separately, but also all at the same time. The program will save the last settings when exiting so that you do not have to re-enter all the settings every time.

Pragtfotomanager121

Download

This program is digitally signed with my own code certificate and it is trusted by Microsoft windows.

Download. (Version 1.21 2019)

More pages on application software

Pragttextutil Header

PragtTextUtil utility

As a Windows software developer for many years I had a directory with all small utility programs including many Unix utilities that I put on every system that I had to work on. This worked fine for many years until I switched to Windows 7 and all these command line tools stopped working. I had to make a choice to recompile all these programs for Windows 7 or collect all the features of these small utility programs and merge them into one portable Windows application. I chose the development of the portable Windows application PragtTextUtil (PTU) that I hereby offer as a freeware application, for everyone that does development or maintenance on Windows based computers. Regards, {-Hein Pragt}.

What kind of application is PragtTextUtil

Pragttextutil01PragtTextUtil is not an text editor although the basic functions to edit text are present in the program. The program aims to perform operations on text such as converting to upper or lowercase letters or removing HTML tags and converting them to neat paragraphs. But also operations as trim, uniq, sort and filtering are present in this application and also a complex operation to generate a sorted word frequency overview to be able to determine, for example, good keywords for a web page. For example, you can filter from a log file all lines that contain a certain word or not a contain a certain word. Also a nice option is search and replace with the ability to use CTRL characters in the search but also the replace text.

As input, the program of course can read all forms of plain text files, but also files as hex/ascii dump, html pages, web pages via an HTTP request (simple wget) to get the exact response of an internet server. But you can also load the contents of your directory into the text editor to for example, create a sorted list of all your music. (Under Windows, it’s still not possible to cut and paste the list from the explorer). You can also use the output of a command line read command directly into the text editor. With the function to request a web page you can load the HTML of this page into the text editor after which you can easily remove all HTML tags and scripting and then convert the bare text to neat paragraphs that you can further edit in your favorite word processor. This allows you, for example, to also retrieve texts from sites that try to block the cutting and copying of the text.

Menu options overview

File
   New
   Open as text
   Open as Unicode text
   Open as text (read first 50 lines)
   Open as text (read last 50 lines)
   Open and convert to hex/ascii
   Open from HTTP
   Open and pipe command line
   Save text
   Save text As
   Read directory listing (date/size/name)
   Read directory listing (names)
   Search trough files
   Compare files
   Exit

Edit
   Undo
   Select All
   Copy to clipboard
   Cut to clipboard
   Paste from clipboard
   Delete selection
   Search text
   Replace text
   Goto line

Operations
   ToUpper selection
   ToLower selection
   Smart ToLower to paragraphs
   Whitespace to single space
   Whitespace to single space (save linebreaks)
   ToWordList (whitespace to inebreaks)
   Count lines, words, characters
   Words statistics (whole document)

Sort
   Sort selection Asc
   Sort selection Desc
   Sort selection Asc (Ignore case)
   Sort selection Desc (Ignore case)

Filter
   Strip html (add linebreaks)
   Format html
   Trim leading and trailing spaces
   Uniq the selection
   Uniq the selection with count
   Filter the selection (delete all except)
   Remove in the selection (delete all that contain)
   UTF-8 to iso-8859-1
   UTF-8 to plain ascii (remove diacrites)
   \n (Unix) to \n\r (Dos/Windows)

Help
   About
   

Download

This program is digitally signed with my own code certificate and it is trusted by Microsoft windows.

Download. (Version 1.08 2021)

Previous releases

Download. (Version 1.07 2018)

Download. (Version 1.04 Jul 2011)

Download. (Version 1.03 Jul 2011)

Download. (Version 1.02 Jun 2011)

More pages on application software