Month: June 2011

Wide-azimuth angle gathers

June 30, 2011 Documentation No comments

A new paper is added to the collection of reproducible documents:
Wide-azimuth angle gathers for wave-equation migration

Traveltime approximations for TI media

June 28, 2011 Documentation No comments

A new paper is added to the collection of reproducible documents:
Traveltime approximations for transversely isotropic media with an inhomogeneous background

Executable papers

June 26, 2011 Links No comments

In addition to six different workshops and special sessions devoted to reproducible research, an important event of this year is the Executable Paper Grand Challenge organized by Elsevier.

The Grand Challenge was a “contest created to improve the way scientific information is communicated and used”. Many of the participants focused on implementing reproducible research. The winners were announced this month at the International Conference on Computational Science in Singapore, with winning entries, as well as other solutions, published in Procedia Computer Science.

The Madagascar approach to Reproducible Papers works but is starting to show its age. Perhaps we could learn from other people on how to make it more modern.

Velocity-independent tau-p moveout

June 26, 2011 Documentation No comments

A new paper is added to the collection of reproducible documents:
Velocity-independent tau-p moveout in a horizontally-layered VTI medium

This paper is the first contribution to Madagascar from Politecnico di Milano, Italy.

What are the design principles of Madagascar?

June 19, 2011 FAQ No comments

The Madagascar code is designed around several fundamental principles.

  1. Modularity. This principle comes from Unix. Doug McIlroy, the inventor of Unix pipes, formulates it as

    This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.

    Madagascar makes one exception: RSF files are text streams but they point to binary data. This is the simplest way to handle large datasets while preserving the Unix approach.

  2. KISS (Keep it simple, Stupid!). This principle is closely related to modularity. We try to make our tools and formats as simple as possible to achieve the given functionality.
  3. Test-driven development This principle does not apply literally to scientific programming, because scientific computing is often exploratory: the result of the computational experiment is not always known beforehand. However, once the experiment is completed, it immediately becomes a test for future development, because we expect the results of the experiment to be reproducible. A Madagascar module is not included in the official distribution until there is an example of its usage in reproducible documents.
  4. YAGNI (You ain’t gonna need it!). This principle comes from XP (Extreme Programming). Ron Jeffries, one of the founders of XP, states it as

    Always implement things when you actually need them, never when you just foresee that you need them.

    Madagascar is not developed for imaginary users. It is developed by people who use it and who add functionality as they need it. This is also known as “scratching a developer’s personal itch”, a feeling familiar to the creators of Unix. As Dennis Ritchie admits in a recent interview,

    Apart from doing new and cool stuff, what guided us was really kind of selfish—to write tools we could use ourselves to make our lives easier: “I’d like such-and-such to do such-and-such, and that’s hard to do now. What kind of tool can I write to make that easier?”

(images from Wikipedia)

3D velocity continuation

June 4, 2011 Documentation No comments

A new paper is added to the collection of reproducible documents:
Azimuthally anisotropic 3D velocity continuation