![]() |
The MCH ServerCurrent Version: 4.84f |
Operating contiuously now since 2012, MCH began as an experiment in capturing local weather data, and quickly grew. MCH is designed to capture/maintain weather data for multiple locations, and generate web pages using those data. MCH is written using the Free Pascal language (an open-source project that attempts to match Delphi/Kylix functionality), using the Lazarus Rapid-Application-Development Integrated Development Environment (a RAD IDE, if you favour jargon). A large amount of weather data is kept for each location, on a daily, monthly and yearly basis. Records and normals can be calculated from any time period. Extremes track maximums and minimums (and min and max means) for each time period. The system is designed to incorporate live observations into its database, generating statistics as it goes. A data-output feature, operating on a user-configurable schedule, makes live weather data available in a tabular format, for graphics generation, research archiving, etc. A huge set of embeddable tags allows you to get data out of MCH and into your web pages. The tags cover everthing from current observations, to system statistics. Tables can be generated from periodic data. Loops and system constants are available. A large number of optional paramters lets you format the data to look exactly as you want. See the Test page for examples. The possible permutations of data tags and modifiers is geometrically large. MCH can track multiple locations, using a variety of capture methods. Each location 'owns' a collection of web pages templates; however, data from any location can be embedded into any page from any other location. MCH was designed from the outset not to rely on outside services. Thus, it maintains its own databases—in easy-to-edit CSV format. Over many years of operation, this has proven itself to be an extremely reliable, compact format that is easy to read, write, and process. MCH can be compiled and run on any platform that will support Free Pascal/Lazarus—so, almost everything made in the last 20 years but Android and iPhone. It can also cross-compiled for many other environments, including Android. MCH has a very small footprint. The reference implementation, tracking 29 locations, worked very well on a 15-year-old laptop with only a Gigabyte of memory, and with two of the visual tools running (mcSky, to determine the sky condition, and mcOCR, to capture backup values), with a typical system load of 1.5. MCH is optimized to handle large volumes of input data. Data waiting to be read in are queued and processed in order, chronologically, and according to configurable granularity limits (i.e. in batches), guaranteeing that the system will not bog down while loading data. Further, when multiple input files are detected, MCH suspends some activities (updating and writing, for example) while reading the data, offering improved data-assimilation speeds. MCH tracks much more than just weather data, including a full-fledged events/anniversaries system and a searchable user-defined database. A data-cutter function allows you to extract information from text or HTML files, directly into a user variable. MCH automatically adjusts for Daylight-Savings time; as well, DST rules can be provided/modified. MCH is supported by a suite of tools, always growing. MCH's compact data-storage footprint means that you can measure your data in Kilos and Megas again! The ability to store data for any date allows you pre-store sunrise/sunset/sunlight, moonrise/set/light, anniversary and event data, years in advance. The program itself has a small footprint (under 3 Megs). The program is now considered mature but is still being actively developed. MCH is designed to accept data in a frozen format. Support programs are designed to capture the data from various sources and prepare it. When the format changes, it is much easier to adapt a small data-capture program, than it is to modify the weather server itself. Web pages are generated from template files, which are HTML with embedded data tags. Pages can be scheduled to be updated when new data are available, or according to a recurring schedule--minutes, hours, days, or months. Data tracked:
Visit the reference implementation today and see all that MCH can do! Downloads: *MCH is not an open-source product, nor is it currently available for public download. However, the source code for MCH and all of its support tools is freely available upon request to mizar64@gmail.com. |