cmsharpe.com

Cheryl's Spot on the Web - since September 1, 1997
Now at cmsharpe.com

About cmsWxCalcIII

This Version

See the Help file for more information on how the program works and what was done in each update.

History

The beginning

In the mid-1970s, I derived (somehow) the wind chill equation from some equation fragments in the book, The Weather Almanac, by Gale Research. That equation was then used to create a programmable calculator algorithm, then, in the 1980s, the algorithm was rewritten in BASIC and named "Chill." It was later rewritten again in C in the mid-1990s.

The other beginning

Sometime in the 1980s, I also took equations I found in Techniques of Observing the Weather and any other source I could find - and created "Psychro." That program's entire purpose in life was to convert dry- and wet-bulb readings from a psychrometer into dew point and relative humidity.

WxCalc (C++)

In 1995, I decided to try C++ programming. As a demonstration project, I merged "Chill" and "Psychro" into a command-line-based C++ program. Unit conversions were added at this point.

WxCalc2 (C++)

Once WxCalc was working, I began working on a graphical user interface (GUI) for the program with the help of Microsoft's Visual C++. WxCalc2 was a multiple-document version, which quickly proved to be unacceptable for this program.

WxCalc2a (C++)

WxCalc2a replaced the ill-fated WxCalc2. This C++ for Windows program was last updated in 1997 when I abandoned C++ programming. Partly because of less-than-optimal design, WxCalc2a was very difficult to maintain or enhance. A better understanding of object-oriented programming back in 1995 probably would have helped a lot.

WxCalc2a differs from cmsWxCalcIII in that it requested input via a dialog box and displayed its output on the main window. The output was in one set of units at a time, which could be changed by clicking the appropriate button. WxCalc2a output could not be copied to the Windows clipboard. There was also no quick-set for the units selections. Otherwise the two programs are rather similar. In fact, many of the functions in cmsWxCalcIII (other than units conversions) were originally taken directly from the C++ code in WxCalc2a and modified slightly to be compatible with JavaScript. cmsWxCalcIII introduced psi (pounds per square inch) in the pressure units.

cmsWxCalcIII (JavaScript)

This program was created primarily with the goal of placing it on the World-Wide Web. It is written in JavaScript (1.3+) and its source code is considered public domain (although technically, it is possible that small parts of it are the property of the U.S. Government, since it incorporates pieces of WxCalc2a which I wrote on government time).

The "cms" was prepended to the program name when I discovered that someone else already had a "WxCalc" on-line. Mostly to avoid any confusion, I put my initials in the title of this program.

cmsWxCalcIII was my first significant JavaScript application. I was quite pleased with the speed at which I was able to proceed (because, at the time, I was used to much more tedious languages like C, C++, and Pascal). This program was started on December 12, 2000 and version 1.0 was completed just 13 days later, working only part-time on the project.

cmsWxCalciv (Tcl/Tk)

The next in the WxCalc series was cmsWxCalc4, and, like most of its predecessors, was in yet another programming language! Tcl/Tk was selected this time, due to the relative ease with which the user-interface could be designed. The GUI for version 4 is significantly more compact than its ancestors, and somewhat more efficient. Cross-platform compatibility between Unix/Linux/Windows (others?) was possible, due to the script nature of the program, and the presence of Tcl interpreters on several different platforms at the time.

The program was near completion when Tcl fell out of favor with me. cmsWxCalciv was usable, except for the Web-update feature that was never added. No further work is planned on this version, which was abandoned in 2001.

cmsWxCalc5 (Java)

With the demise of Tcl came the rise of Java 2 (now called Java 1.2). Unfortunately for version 5, my initial affection for Java was even more short-lived than Tcl, due mostly to the sudden popularity of yet another programming language: Python. So, version 5 managed some minimal functionality, but not enough to qualify as anywhere near finished. One feature that was to be part of version 5 is also a major part of version 6: the "engine" that drives the calculations is a separate "object" from the user interface. Work on cmsWxCalc5 was suspended in early 2002. (Update [2024-05-08]: later versions of Java competed successfully with Python for my attention, but I never finished cmsWxCalc5, despite that.)

cmsWxCalc6 (Python)

Sixth time's a charm? Apparently so. Python/Tkinter was the basis for the #6 entry in the wxCalc series. Version 1.0 was released October 27, 2003. This version had several unprecedented features....

cmsWxCalc6 features that were beyond the functionality of cmsWxCalc4:

UPDATE (2024-05-08): cmsWxCalc6 was written in a now-obsolete version of Python, and is no longer supported. It had a major defect (which I don't remember in any detail), so should not be used, even if you can find a version of Python that will run it.

cmsWxCalc7 (Java)

Apparently, there was some effort to create a cmsWxCalc program with newer Java, but it was also never completed. It was intended to be written in Java 1.5, and was last updated in 2007.

WxCalc2A+ (Rust)

This (under construction) project is an updated replica of the WxCalc2A program (see above). It is mainly a demonstration project to establish the viability of the Rust-language pieces of the project, and is a precursor to cmsWxCalc8 (see below). As of 2024-08-13, the program is essentially complete, needing mainly more-detailed testing and verification of the calculations library (which has been updated very substantially with this project).

cmsWxCalc8 (Rust)

This version is still, as of August 2024, mostly in the "imagination" phase (although see WxCalc2A+, above). Although much of a usable software library has already been produced, there is no work yet done on a GUI. If the project ever gets "off the ground," it will be written in my current favorite programming language, Rust.

Cheryl M. Sharpe, October 20, 2004, with updates May 8, 2024

Valid HTML5! Valid CSS!