I'm Scott Robert Ladd, a consulting software engineer and writer.
E-mail
•
LinkedIn
•
Facebook
I am ACTIVELY seeking consulting / contract
work, on any scale
Evolutionary Algorithms: A New, Crowd-Funded Book
I'm creating Evolutionary Algorithms from two of my previously-published titles, Genetic Algorithms and Simulations and Cellular Automata. The original books received good reviews in the trade press and sold well on the mass market. For this new, combined edition, the author is updating and expanding the material, and I'll be able to avoid limitations imposed (in the past) by commercial publishers.
Evolution by natural selection is evident in such diverse realms as quantum theory, artwork, and biology. In software, evolutionary principles can produce stunning images and support creative learning by computer programs. Evolutionary Algorithms explains the gamut of these ideas, for laymen, home experimenters, and professional engineers. This isn't just a book for geeks -- it's a guide to how evolution manifests itself in the real world, as a practical concept of nature.
In Evolutionary Algorithms, the author shows the practical and artistic implementation of evolutionary and genetic software algorithms, using the principles of complexity science. The book provides complete working programs that demonstrate a wide variety of techniques and principles. Some of the examples are practical in nature; other demonstrations stimulate creative thinking by presenting scientific and artistic concepts.
By helping fund this project, you'll be supporting the writing and production of this book and a supporting web site.
"Ladd's down-to-earth approach and clear explanations make both his descriptions and examples useful to students of... software engineering." — The C User's Journal
"I like the book, the style and the content. I think many [people] could gain quite a lot of benefit by actually working through this book not just browsing. I know I did." — ACCU
Signal Visualization and Analysis
Documentation and download available here.
SigScope is based on my experience with analyzing sensor data; this data is recorded by devices that measure vibration, temperature, magnetic fields, gravity, pressure, electrical fields. In general, the information is recorded at between 10 and 2000 Hertz; understanding it requires FFT analyses and digital filtering. Applications range from studying swaying skyscrapers looking for sympathetic vibrations in machinery, and from monitoring flows in a pipeline to examining fluctuations in magnetic fields.
Version 0.9.42 of SigScope is a conceptual prototype, a revised engine based on my experiences writing custom sensor applications for medical and industrial applications. Written in C# for Microsoft's .Net platform, this version of SigScope is free-as-in-beer for anyone to use. Over the coming months, I'll be adding more features, including a temporal FFTs (showing frequency over time), plus other signal analysis analysis tools. Live data capture and event-triggered recording already built into the structure. Once the design has stabilized, I'll refactor the code into portable C++, to be wrapped in both Linux and Windows interfaces.
Embedded Database Engine
Itzam/C 5.0.0
Updated 5 April 2010
Itzam/Sharp 1.0.3
Itzam/Java 2.2.0
Itzam/C is a deliberately portable and concise C library for creating and manipulating keyed-access database files containing variable-length, random access records. Information is referenced by a user-defined key value; indexes may be combined with or separate from data. File locking supports safe and simultaneous access to database files for multiple processes, threads, and users. Itzam/Core is very tiny, and scales from clusters to embedded systems; it can be compiled with any Standard ANSI/ISO C compiler, including GCC, Intel C/C++, and Microsoft Visual C++. It has been tested on X86, x86_64, AMD64, SPARC, and ARM processors.
Itzam/Sharp implements the Itzam engine in 100% managed C#. At 32K, the Itzam/Sharp engine is both small and powerful, and it works with any .Net language, including F# and Visual Basic.
Itzam/Java implements the Itzam engine in 100% Pure Java — no external C libraries, just Java. It supports the same feature-set as Itzam/Core, and works with small systems such as Android.
Evolutionary Computing Framework
Evocosm is a C++ framework for programming a wide variety of evolutionary algorithms, ranging from genetic algorithms to agent simulations. Evocosm is the foundation for Acovea.
Evolutionary algorithms come in a variety of shapes and flavors, but at their core, they share certain characteristics: populations that reproduce and mutate through a series of generations, producing future generations based on some measure of fitness. An amazing variety of algorithms can be built on that general framework, which leads me to construct a set of core classes as the basis for future applications. As of version 3.3.0, Evocosm supports OpenMP to take advantage of multicore systems.
If you want to see Evocosm in a practical application, take a look at the Acovea project — Analysis of Compiler Options Via Evolutionary Algorithm, a tool for analyzing compilers.
Mathematics
Brahe is where I put all sorts of useful mathematic functions that don't seem to fit anywhere else. Among the bits and pieces here, you'll find:
-
A function,
brahe_sigdig, that rounds floating-point values to a specific number of significant digits -- very useful in scientific and engineering applications. - A basic real-to-real FFT funtion and an artificial signal generator.
- Several pseudorandom number generators, including the Marsenne Twister, various algorithms by Marsaglia, and ISAAC.
- Least common multiple and greatest common denominator functions.
- A few trigonometry functions for finding the inversions of hyperbolic sine, cosine, and tangent.
Education
Unit Circle shows the relationship between angles and trigonometric functions like sine and cosine. To do this, the program implements an interactive "unit circle" (radius = 1) diagram, where the user can click or drag to set angles and see how the values of trigonometric functions change accordingly.
The inspiration for this program was provided by my home-schooled daughters, who had difficulty understanding the nature of trigonometry. As an educational tool, Unit Circle has been a success, and it may evolve into a larger application for exploring other aspects of trigonometry and geometry.
The program isn't rocket science, but did provide an opportunity to work with the Cairo graphics library used in the latest versions of the GTK+ toolkit.
Performance Analysis via Genetic Algorithm
Acovea is an optimization tool, similar in purpose to profiling. Traditional function-level profiling identifies the algorithms most influential in a program's performance; Acovea is then applied to those algorithms to find the compiler flags and options that generate the fastest code. Acovea is also useful for testing combinations of flags for pessimistic interactions, and for testing the reliability of the compiler.

