Michelle Charlton | Simon | Ron Charlton | Carly

All Charltons (click me)

R.I.P. Zippy 1998-04-25 — 2011-11-21.

See Ron, Michelle, Carly or Simon.

Play 3D tic-tac-toe in your web browser.

Ron had the largest-numbered license plate in the universe.

See 3D rotating cubes and see their simple JavaScript source code (PDF).

See Roget's Thesaurus (pubic domain HTML, 2.1 MB, one page). You may download this file for offline use.


Free Mac Software by Ron Charlton

(The software was tested on macOS Monterey [12.x], Ventura [13.x] and Sonoma [14.x])

macOS Command Line Utilities release 1.9a (2024-03-12) — macOS command line utilities by Ron Charlton
These 34 freely distributable, native macOS command line utilities (see descriptions and changes and program documentation) provide a variety of functions for general use. All utilities are universal2 executables; they will run on both Intel (amd64) and Apple silicon (arm64) Macs with macOS 10.15 and later.
  • A1c — Hemoglobin A1c to blood glucose mg/dl and mmol/mol converter.
  • bitCounter — Count the zero bits and one bits in a file or standard input.
  • lcase — Filter to set all letters to lower [upper|swap] case.
  • charFreq — Count the various characters in the input, and output a list of character frequencies sorted by descending frequency of occurrence.
  • cnl (Convert NewLines) — Provide universal conversion of line endings in text files or standard input.
  • crs (Carriage Return Status) — Report CRs, LFs, CRLFs and LFCRs in file(s).
  • CutMiddleBytes — Cut the middle from the input and send the ends to the output. Also will send just the middle to the output if requested.
  • detab — Replace tab characters with runs of space characters.
  • entab — Replace runs of space characters with tab characters.
  • eq — Convert among several numeric bases and ASCII.
  • escape_html — Change & < > " to character entities (&amp; etc).
  • EvolvoType — Evolve a phrase by keeping random, correct characters. This demonstrates how evolution works quickly by retaining good qualities.
  • file2Carray — Read binary data from a file (or redirected stdin) and write an equivalent C char array to a file (or stdout).
  • genfile — Generate a file of specified size filled either with 'A' characters or with high-quality pseudorandom bytes generated with AES in CTR mode, or a repeated phrase. The phrase can include escaped characters.
  • letterFreq — Count the letters in the input and show a sorted list of letter frequencies.
  • jumblist — Unscramble jumbled letters to make a word.
  • locc — Count lines of C, C++ or Go source code in file(s) or standard input. locc ignores comment-only lines and blank lines to give an accurate count of source code lines.
  • middle — Extract lines from the middle of a text file.
  • PhoneWords — Find words to replace the digits in a phone number with the letters on a phone's keypad.
  • remcomments — Remove comments from C, C++ and Go source code.
  • retab — Change tab character widths in a text file(s) without changing its appearance.
  • reverseFile — Reverse the line order from text input and write the lines to the output.
  • RonTime — Time a command to microsecond accuracy, up to about 28 years, while providing file wild-card globbing to that command.
  • sha3sum — Show SHA-3 digests for files named on the command line. Digests of 224, 256, 384 and 512 bits are supported.
  • shake256 — Provide a 512-bit SHAKE256 hash for file(s) or standard input.
  • shuffleBytes — Shuffle the order of bytes in a file to a new file or in-place.
  • sleepSeconds — Sleep (pause) for a number of seconds. sleepSeconds' range is 1 microsecond to 2,147,483,647.999 seconds (about 68 years).
  • text2Cstring — Read text from a file or stdin, and write an equivalent C string to an output file or standard output. text2Cstring relies on the C compiler concatenating C string literals separated by only whitespace.
  • timeleft — Show your life expectancy and probability of dying within one year, updated every second.
  • unescape_html — Restore & < > " from character entities in HTML code.
  • unfold — Unfold blocks of text, separated by blank lines, into single lines.
  • wildspeller — wildspeller is a spelling aid that matches spelling guesses with *? wildcards or a best guess without wildcards. For example, 'wildspeller knewmoanya' will find 'pneumonia', as will 'wildspeller pneumon*'. wildspeller now uses metaphone3 as its sound-alike matching algorithm. Also a rare bug has been squashed.
  • wrapText — Break long lines at a space.
  • Xdebt — Show the total US public debt each second and the per capita debt. The amount shown is based on the 2022-08-25 figures for debt, population, and the rates of change for both.

Get macOS Command Line Utilities (CLUtils.pkg, 57 MB)




Free Windows® Software by Ron Charlton

(The software was tested on Windows® 7)

This freeware contains no trojan, virus, spyware, adware, nagware, rootkit or malware of any kind.


TTTCube version 4.4 — Play Three-dimensional Tic Tac Toe (TTT) against your computer
TTTCube (for Windows®) plays three-dimensional (3D) tic tac toe on a 4 by 4 by 4 board. You play against TTTCube. Four markers in a straight line wins. 3D tic tac toe is much more complex and challenging than regular 2D tic tac toe. See TTTCube's Help topic How To Play for the rules of 3D tic tac toe.

With TTTCube you can

  • choose a difficulty of Easy, Medium or Hard
  • rotate the board by 90° at a time in either direction
  • undo your moves
  • save and open games in progress and finished
  • resize the window and thereby change the board size
  • make the board transparent
  • select a background of Gradient, Solid or one of four different Images

TTTCube can be beaten whether you or TTTCube moves first.

See TTTCube Help History (final page) for changes in 4.4 and earlier versions.



TimeLeftPy version 51 — A USA life expectancy predictor
TimeLeftPy is a Windows® program that shows your life expectancy and probability of dying within a year, updated every second, when given your birth date and whether you are female or male. The prediction is based on 2016 USA Social Security Administration information, and is applicable to USA residents.

Every 30 or so seconds (or every few seconds if you are over 40 years old) you live you will see your expected time of death move later by a second. The longer you live, the even longer you are likely to live in total.



64-bit Mersenne Twister version 1.7 — A high quality 64-bit pseudorandom number generator for Visual Basic .NET programmers
64-bit Mersenne Twister (MT) is a long period, fast, high quality pseudorandom number generator (PRNG). Its period is 219937-1 (approximately 106002). It has equidistribution in 311 dimensions. The Visual Basic .NET class MTRandom64 implementing 64-bit Mersenne Twister (in mt19937-64.vb) produces over 135 million 64-bit pseudorandom integers per second on a 3.60 GHz Intel i7-3820 processor. MT has a sound theoretical basis and has been tested thoroughly. The original MT authors' site has details about the algorithm.

MTRandom64 has functions to produce 32-bit, 64-bit (and with Visual Studio 2010 and later, 128-bit) integers, as well as 53-bit precision reals. In all, MTRandom64 provides eight equidistribution generator functions and seven initializing methods. Saving a generator's state to a file and loading it later is simple.

MTRandom64 has been successfully tested against the original MT authors' mt19937-64.c code by generating 100 million integers and 100 million reals with both, and comparing the entire outputs.

MTRandom64 passes George Marsaglia's Diehard tests.

MTRandom64 implements MT as a VB class. Code is included in a separate file to demonstrate use of the VB class in your program. Test code for the class is also included to duplicate the original authors' mt19937-64.out.txt file.

MTRandom64 will not compile with VB 6 or earlier.

This MTRandom64 (mt19937-64.vb) release is version 1.7, dated 2014-06-18.



32-bit Mersenne Twister version 4.1 — A high quality, 32-bit pseudorandom number generator for Visual Basic .NET programmers
Mersenne Twister is a long period, fast, high quality, 32-bit pseudorandom number generator. Its period is 219 937-1 (approximately 106 002). It has 623-dimensional equidistribution. The Mersenne Twister algorithm, by Makoto Matsumoto and Takuji Nishimura (1998), has a sound theoretical basis and has been tested thoroughly.

MTRandom is a Visual Basic .NET class that implements the Mersenne Twister algorithm. It produces approximately 114 million 32-bit pseudorandom integers per second on a 3.60 GHz Intel Core i7-3820 processor. It has functions to produce 32-bit and 64-bit (and with Visual Studio 2010 and later, 128-bit) integers, as well as 32- and 53-bit precision reals. In all, MTRandom provides sixteen equidistribution generator functions and six initializing methods. It allows many generators to be individually initialized and independently used.

MTRandom has been successfully tested with Visual Studio 2005, 2008, 2010 and 2012.

MTRandom passes George Marsaglia's Diehard tests.

MTRandom will not compile with Visual Basic 6.0 or earlier. A Visual Basic for Applications (VBA) version of Mersenne Twister, by Pablo M. Ronchi, will compile with VB 6.0.

This MTRandom release (mt19937ar.vb), dated 2012-08-19, contains the following changes:

  1. Added Sub init_by_crypto() to provide easy access to 219 937-1 initial states. This does not make MTRandom cryptographically secure.
  2. One MT19937ar.vb file now works with Visual Basic 2012 & 2010, and by changing two lines, Visual Basic 2008 & 2005.
  3. Now always initializes mag01() = {0UI, MATRIX_A}.

The last change corrects a subtle error: MTRandom silently erred when a saved MTRandom state was loaded without first initializing MTRandom another way.



Mortgage version 1.3 — An English language mortgage loan calculator
Mortgage is an English language program for Windows® to help evaluate fixed-interest-rate mortgage loans. Mortgage will find the loan principal, interest rate, duration or payment when given the other three.

You can do what-ifs such as, "What will my payment be if I borrow $100,000 at 7% for 30 years?" or "How much can I borrow at 6.25% for 25 years if I can afford $1,100 monthly payments?" You can repeatedly change one or more of the loan numbers and find a new value for one of the other numbers.

Mortgage will show the total amount paid and the total interest paid for a loan.

With a set of loan numbers, Mortgage can show a repayment schedule, with the amount paid toward principal and interest for each month, as well as copy the schedule to the system clipboard, or print it.

Mortgage is not suitable for car loans. Those loans are calculated in a different manner that Mortgage does not support.

Mortgage requires Microsoft's free .NET Framework version 2.0. Your computer may already have it. If not, Mortgage's setup program will offer to download it from Microsoft. The Framework is a 22.4 MB download.

Version 1.3 adds explanatory Tool Tip balloons to Mortgage's two windows. The balloons appear when the mouse pointer touches various items. The balloons can be turned on and off.



EOL version 3.3.1 — A text file End-Of-Line converter
EOL (End-Of-Line) is a Windows® program that converts English language text files among Windows®, old Mac and Unix/MacOS formats. It detects the format of each text file automatically. Use EOL's graphical user interface to select a drive and folder. Next, select one or more files by clicking or using wild card (*?) names. Select whether to make backup copies, then select the desired text file format and click to convert the file(s).

EOL requires Microsoft's free .NET Framework version 4.0. Your computer may already have it. If not, EOL's setup program will offer to download it from Microsoft.

See also command line utility cnl.

Version 3.3.1 allows selecting all files in the list with Ctrl+A key combination or with a menu item.



WildSpeller version 2.2a — An English spelling aid using wild cards
WildSpeller is an English spelling aid for Windows®. WildSpeller can help when you know how to spell part of a word. Type the word, using wild cards "*" and "?", into WildSpeller. Asterisk (*) replaces any number of letters, including none; question mark (?) replaces exactly one letter.

Click once and you have a list of words. You can select a word and copy it to the Windows® clipboard with a double-click. If you use no wild card, WildSpeller will list words that sound like what you spelled.

WildSpeller knows over 135,000 English words, including American, British and Canadian spellings.

Version 2.2a is functionally unchanged from version 2.2.



WinThesaurus version 3.2.1a — An English language thesaurus
WinThesaurus is a Windows® thesaurus (for finding synonyms: words of same or related meaning). WinThesaurus has 30,260 root words and phrases, and over 2.5 million synonyms, for an average of 83 synonyms per root.

WinThesaurus can help when you are looking for a particular word but can only think of a related word. Type the word you know into WinThesaurus (or find it in a list), click once, and you have a list of synonyms. You can select one and copy it to the Windows® clipboard with two more clicks. WinThesaurus is based on the Moby Thesaurus data (included with WinThesaurus).

WinThesaurus version 3.2.1a fixes an egregious crashing when the first item in the left list box was clicked initially. Synonyms that match wild cards in the text entry box are marked in the Synonyms list box.



WinGhost version 1.4a — An English language ghost word game
Play the ghost word game against your Windows® computer. The goal is to avoid spelling words of four or more letters. You move by typing a letter that leads toward an English word. You and WinGhost take turns adding a letter to the end until a player completes a word, at which point that player loses. Proper nouns are not allowed. Remember, if you spell a word of four or more letters, you lose!

In version 1.4a you can tell WinGhost to move first. WinGhost also uses a larger, serif font now. A hint error from version 1.2 is corrected.



WinJumble version 1.8 — An English language word unscrambler and anagram finder
WinJumble (for Windows®) knows 376,000 English words. Type between two and 31 letters, and WinJumble will find all of the single words (not phrases) that can be made by using all of the letters. If you type 'ate', WinJumble will not find 'at' because 'at' does not contain all of the letters.


Windows® Command Line Utilities release 31 (2021-01-16) — Windows® command line utilities by Ron Charlton
These 39 freely distributable, native Windows® command line utilities (see descriptions and changes) provide a variety of functions for general use. x86 and x64 versions are provided. They require no support files and may be copied anywhere in your executable search path.
  • A1c
  • beep
  • bitCounter
  • case
  • charFreq
  • cnl
  • crs
  • commconv
  • copyFile
  • CutMiddleBytes
  • detab
  • emptyBlankLines
  • entab
  • eq
  • escape_html
  • EvolvoType
  • file2Carray
  • filedate
  • genfile
  • hashTime
  • hexdump
  • HexToRawBytes
  • LetterFreq
  • locc
  • middle
  • PhoneWord (x64 only)
  • reverseFile
  • RonTime
  • sha3sum
  • sleepSecs
  • text2Cstring
  • unescape_html
  • unfold
  • unsort
  • wc
  • which
  • wraptext
  • xargs
  • Xdebt
  • uniq


The zip file contains a Visual Basic .NET project. See more about Mersenne Twister for Visual Basic .NET or more about 64-bit Mersenne Twister for Visual Basic .NET for a description of the projects' contents.

* The zip file contains an installer (also with removal). Windows® 7, Vista and XP will open zip files as folders. Other Windows® versions may require 7-Zip (freeware), WinZip, WinRAR, or similar, to open the zip file.


E-mail: Ron, Michelle, Carly or Simon Charlton <Ron @ RonCharlton.org>

Document last revised: 2023-04-25