Lone Star Ruby Conf 2008: Scientific Computing with Ruby and Tegu formerly (GSA)
The General Systems Architecture
Since the summer of 2007, I have been assembling my thoughts and programs on systems, machine learning, distributed programming, and problem solving in general. The meaning of these efforts, for me, is to 1) learn what I can about problem solving, 2) apply my education in formal systems, and 3) use these formal systems in solving real-world problems. What this looks like, mostly, is software. What this acts like, eventually, is a more seamless environment for combining people, data, problems, algorithms, and computers. The mantra I have posted on my wall is:
Fast Flexible Open Simple
By fast, I am looking at calendar time and development hours. The flexibility of the system is meant as a measure of the kinds of libraries, data, and algorithms that can be implemented in the platform. The openness includes not only publishing the source, but also creating sound APIs and good documentation. Simple is a measure of usability as counted by steps taken. Non-technical people should have intuitive grasp of the tools they are given to use the GSA.
I have broken down the whole program into five broad strokes:
- Core Analysis Package
- Human Elements Package
- Lab Book
- Natural Language Parser
- Learning Community
For the conference talk, I will mostly cover the core analysis package: the algorithms, parallel processing, and possibly a live demonstration showing how to use the GSA in a practical way.
I wrote the GSA to combine systems science algorithms into one framework. Systems science algorithms are things like neural networks, Bayesian networks and computational game theory. Ruby’s flexibility makes the connection between algorithms, data, and distributed processes very elegant and expandable. The need for the GSA has been apparent from both academic and business uses of scientific computing. The power of the GSA is its openness and flexibility so that current systems can be more easily analyzed.