Programming Languages Decisions - Earthquake Forecasting - August 18, 2008
Posted by EQF on August 18, 2008 at 06:53:25:

Copies of this report are presently being circulated around the world.

PROGRAMMING LANGUAGES DECISIONS

This report is intended for any computer programming experts who would like to propose that their favorite programming language is the one that should be used for the potentially important application that is being discussed here.

The report is also for people who are interested in disaster mitigation science. They might want to skip to Section 3 of the report.

If you have a response that would be of interest to people in just one Newsgroup then I recommend that you post it to only that Newsgroup.

If you have a technical comment that you want to make certain that I see then you should send me an E-mail copy of your posting.

The information in this report represents expressions of personal opinion.

1. The Purpose Of This Report
2. Programming Language Recommendations
3. The Importance Of This Effort
4. Download Web Sites
5. Computer Viruses

1. THE PURPOSE OF THIS REPORT

If all goes according to plan, within a few weeks I will begin circulating .exe copies of a Perl language disaster mitigation related computer program that I have been developing during the past decade or so. People will be able to download the program and its associated support files from some Web site for free and then use them for free. The Perl program presently sends data to the Gnuplot program for any graphics work that needs to be done.

When the program is released, things could get a little hectic. So now might be a good time to consider if Perl and Gnuplot are the best choices for future work regarding this application.

Some information regarding the types of data the program generates and the importance of this effort can be found in Section 3 of this report.

ActivePerl version 5.8.8 from

http://www.activestate.com

is being used on a PC computer running Windows XP.

ActivePerl version 5.10 from

http://www.ActiveState.com

is being used on a newer PC computer running Windows Vista.

The Gnuplot graphics program version 4.2.1 for Windows systems from

http://www.gnuplot.info

is being used on both computers.

Newer versions of those programs will be installed on both computers as time permits.

When 5.10 was installed it required that some minor changes be made to the format of the SendKeys and IsKeyPressed commands. The commands still worked with 5.8.8 after the changes were made.

When the downloadable Perl program is released a notice will be circulated regarding that. Programmers will be able to see how it runs on their own computers. As an .exe type program it should run "as is" on PCs running Windows XP or Vista. No Perl compiler will be needed. After people have seen it run they can again express an opinion regarding what the best program languages might be for future work with that application.

Scientific researchers interested in using and developing the program will fall into one of two groups.

A. Independent Researchers

They will have to continue working with Perl and Gnuplot until a decision is made to change to other programming languages. I am not a programming expert. But some of those independent researchers are. And if one of them decides to move in another direction that looks productive then I will probably go along with that.

B. Government and University Researchers

Most of them have their own computer programmers. And they might decide to develop this application using a language they are already working with. Before making such a change they might contact me and ask if I believe that such a change would be a good idea. Or they might simply make the change without consulting with anyone.

When the Perl program is released, programmers can contact governments and universities etc. and recommend that if their own programmers are going to be doing any development work on it then they should change to some other programming language. They can also contact me and state that. If and when I discuss this with government officials etc. I can pass along that information.

I myself will be trying to convince governments etc. to use the program for important research work. It is essentially a probability number generator. And among other things I will be trying to get them to develop more accurate probability equations. Now that several fundamental and crucially important physics discoveries have been made there is almost unlimited room for improvement. That work should be fairly easy for government and university researchers and perhaps even independent researchers once they have the original program. They will be able to add their own equations and subroutines to it and use it to test their theories and data.

2. PROGRAMMING LANGUAGE RECOMMENDATIONS

It is okay with me if the program is translated to some other language or even multiple languages. But if possible I would like to see the following features remain with it.

The programming languages should do or have the following:

--- Be permanently available as free downloads.

That should make it possible for researchers around the world to do their own development work without having to periodically purchase new software. The version of Perl I am using is a free download from the ActiveState Web site. It is possible that that free download situation could change. However I expect that some versions of Perl and Gnuplot will probably always be available as a free downloads from Web sites.

Gnuplot is being used with Perl to take advantage of the fact that the Gnuplot graphics capabilities will probably remain available in their present form or with only minor changes. Some older Perl graphics modules might not work with newer versions of Perl. Additionally, if my program is translated to some other language the new program should still work with Gnuplot.

--- Run with different operating systems such as Windows and Unix and on different types of computers such as standard PCs and Macs.

The present program is designed to work with Windows XP and Vista operating systems on PC type computers. Those are the systems that most of the researchers originally interested in the program are probably using. But Unix and Mac users etc. will probably also want versions of the program that will run with their computers.

--- Be powerful and versatile.

It should be able to:

------ Detect and respond to keystrokes such as when you press an arrow or alphanumeric key.

------ Send keyboard type information to the operating system. For example, the program might need to send information to some other program that allows that to be done only through keyboard entry.

----- Do things such as generate sounds.

----- Chain to another program of the same type while having string and array information remain active and available for use by the chained program.

----- Start an external program running and send information to it and receive information from it using "pipe" commands, for example, while the original program continues running in the background.

When using Windows XP and Vista I have found that Perl has some problems with that. Depending upon the application, Gnuplot being one example, after starting the external program running the Perl program might stop executing commands and wait until the other program exits. I have been able to get around the problem by telling Perl to start a Windows shortcut program that tells the external program to start running.

--- Be moderately easy to use for people who are not professional computer programmers.

Gnuplot probably qualifies for that for at least what my program requires. I have found that Perl works well once you learn exactly how a particular command operates. However, that learning process can be problematic for people such as myself who are not expert programmers. On the other hand, Perl is sufficiently powerful and versatile that it has so far been worth the trouble for me to work through any problems.

--- Be supported by a Newsgroup.

--- Be a compiler type of language.

Programs that interpret one line of code at a time tend to be too slow to do repeated, complex calculations in a reasonable amount of time. With my application for Gnuplot this is not a problem as it does not take too long to generate charts.

The main Perl program needs to be able to do rapid calculations largely when it is processing new data. Most of the time researchers will be examining data screens and tables, trying to interpret their meaning. And the program will be sitting idle, waiting for the next graphics display command.

--- The graphics program should be either extremely fast or have the ability to make small, reversible changes to the screen without the need to replot the entire screen. For example, people might want to display things like multiple lines, arrows, or shapes and have them able to move around the screen fairly quickly.

If my understanding of this is correct, Gnuplot requires that you replot the entire screen if you wish to restore data that you have drawn over. However for my own application that is presently not a major problem as even the slowest replots can refresh the screen at least twice a second.

--- Have a feature that allows .exe versions of the program to be created.

For various reasons that feature is probably not important for Gnuplot. But with the main Perl program it can be because most of the people who will be using it will just want to run it and not make any changes. They will want something that they can get running with a mouse click or two. And they are not going to be willing to work with a compiler. It took me more than a year to determine how to get Perl to generate .exe programs. I was finally able to do that on August 2, 2008. And since them I have been working on getting my programs into shape for circulation rather than continue with efforts to add new features to them.

The .exe programs can be rather large, three megabyes for my present program. And they run a little slower than ones that the Perl compiler generates when you run it. But they are easy to create after all of the necessary modules have been merged with Perl etc. and do not require that .exe program users install anything on their computers.

3. THE IMPORTANCE OF THIS EFFORT

Eventually, many lives and large amounts of money might be affected.

The important introductory physics and math work has already been done. And to a certain extent much of the development work can now be done by computer programmers.

The Perl language program has multiple applications. The first one is operational and "user friendly" features such as help files are presently being added to it to make it easier for people to use. With the other applications a fair amount of additional programming work needs to be done to translate Basic and Excel code to Perl. That could take several months.

The first application enables government, university, and independent researchers to compare earthquakes with one another and in the process learn how they are being triggered. As far as I am aware, this is the first program of that type ever created that will enable them make those comparisons in an almost effortless manner.

Earthquakes can claim tens of thousands of lives in a year. And a single earthquake can do hundreds of billions of dollars worth of property damage in a matter of minutes. As a consequence, any information that governments and researchers can obtain regarding why they are occurring when and where they occur and how they might be predicted could conceivably result in the savings of tremendous numbers of lives and the avoidance of an incredible amount of property damage. If government officials in some city know that one might be approaching they can make certain that major fuel and electricity lines can be shut down quickly when the earthquake occurs so that fires do not start and get out of control.

It is generally accepted that earthquakes occur when fault zone rock layers accumulate strain energy resulting from processes such as the movement of tectonic plates relative to one another. However researchers are not in agreement regarding how they are being triggered - why they are occurring at the exact time they occur, or if they are simply random events that are not being triggered by anything that can be monitored. My data clearly indicate to me that they are often being triggered at specific times by forces associated directly or indirectly with the gravitational pulls of the sun and the moon. Ocean tide height related earthquake triggering would be one such indirect link.

This is something that I have been explaining to the international scientific community for quite a few years. The response has generally been that other data do not show that. And my response has then been that the wrong types of calculations are being done to make those comparisons. People need to use the types of equations I have been discussing. The response has then generally been to do nothing. Scientist who have responded in a positive manner have usually gone off on their own to try to publish papers etc. And I never hear from them again.

This first application contains all of the necessary equations and data tables for doing this earthquake comparison type of work plus fairly sophisticated graphics capabilities for displaying results. I believe that people using the programs will be able to immediately begin doing research that in certain respects is a decade to a quarter of a century more advanced than what can presently be done by top government agency researchers.

After the programs become available there could be thousands of independent researchers around the world doing this type of work without the present need to be employed by a university or government agency. All they will need are moderately powerful personal computers and a basic knowledge of physics and math. They will not need to be able to do any computer programming unless they want to change or add to the original code.

Since earthquakes can quickly cause hundred of billions of dollars worth of property damage, government and university scientists will likely wish to get involved with this program development effort rather than be left behind by independent researchers. And if and when they do, should they be unhappy with the Perl - Gnuplot combination of languages presently being used they will chose some other language or combination of languages to work with. It won't take them long to make such a decision. So, the time window of opportunity for people to make the case that their own favorite programming language is the logical one to use might be less than a year, or just a few months, or perhaps even just a few weeks long.

4. DOWNLOAD WEB SITES

The main Perl program and its associated support files and directories will probably be available as a Windows XP or Vista zip file that can be downloaded for free from some Web site. Because of the moderately large size of that file, at least five megabytes, I cannot store it for downloads at my personal Web site.

http://www.freewebz.com/eq-forecasting/Data.html

That site stops running if too much information is downloaded during a month period of time. So I am instead planning to have the file stored at other Web sites. And if anyone has a recommended download site then I would be interested in that information.

http://sourceforge.net

would be a logical choice. However, at least initially I don't want to go through the trouble of registering at the site. There are several others where I can simply send files to the owners and they will immediately store them at their sites.

5. COMPUTER VIRUSES

When the program is released there will probably be some information made available regarding computer viruses. The main program will be an .exe program. And it will be stored in a zip file. Certain precautions should be taken when those types of files are downloaded and used. I won't be able to personally control the Web sites where they are stored.

If they wish, people might try unzipping the files and running the programs on an old computer. If time permits I will try to see if they will run on a Windows 98 system. Numerous people around the world probably have an old computer sitting somewhere that uses that operating system.

Finally, I myself cannot recall any past instances where someone did something as simple as release a new computer program and as a result, spark a major and virtually overnight revolution in an important area of science where innumerable lives and billions of dollars worth of property damage could be at stake. So there is no way to tell for certain from past events exactly what is going to happen here. I do expect that immediately after the program is released work on this project will get underway by independent researchers and probably government scientists in a number of countries including India and the People's Republic of China. The technology has already been discussed in an internationally circulated news report, in a television program shown around the world, and at a disaster mitigation conference in Beijing, China in December of 2003. We will have to see how long it takes other countries such as the U.S. and Japan to become interested.


Follow Ups:
     ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - mrrabbit  21:00:06 - 8/18/2008  (74251)  (1)
        ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  01:10:47 - 8/19/2008  (74255)  (1)
           ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - mrrabbit  10:24:44 - 8/19/2008  (74259)  (1)
              ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  11:28:22 - 8/19/2008  (74260)  (2)
                 ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Skywise  14:25:56 - 8/19/2008  (74264)  (1)
                    ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  08:34:43 - 8/25/2008  (74271)  (1)
                       ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Skywise  18:58:41 - 8/25/2008  (74272)  (1)
                          ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Roger Hunter  19:22:13 - 8/25/2008  (74273)  (1)
                             ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Skywise  21:57:30 - 8/26/2008  (74277)  (1)
                                ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  09:26:57 - 8/27/2008  (74278)  (1)
                                   ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Skywise  21:22:21 - 8/27/2008  (74280)  (2)
                                      ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  17:37:55 - 9/3/2008  (74323)  (1)
                                         ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Skywise  22:03:10 - 9/3/2008  (74324)  (0)
                                      ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - mrrabbit  21:58:00 - 8/27/2008  (74281)  (1)
                                         ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  17:24:03 - 9/3/2008  (74322)  (1)
                                            ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - mrrabbit  22:42:52 - 9/4/2008  (74327)  (0)
                 ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - mrrabbit  12:52:27 - 8/19/2008  (74262)  (1)
                    ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  14:04:14 - 8/19/2008  (74263)  (0)
     ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Skywise  18:18:23 - 8/18/2008  (74250)  (1)
        ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  01:38:26 - 8/19/2008  (74256)  (0)
     ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Roger Hunter  09:13:39 - 8/18/2008  (74249)  (3)
        ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  09:36:45 - 8/27/2008  (74279)  (0)
        ● publish a report - John Vidale  08:22:41 - 8/20/2008  (74266)  (0)
        ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  01:49:08 - 8/19/2008  (74257)  (1)
           ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - Roger Hunter  06:22:05 - 8/19/2008  (74258)  (1)
              ● Re: Programming Languages Decisions - Earthquake Forecasting - August 18, 2008 - EQF  11:37:06 - 8/19/2008  (74261)  (0)