Geophysics, Inversion, and Programming

Bill Harlan's Page

(your picture here)
Interested in geophysics? — Optimal control has regained popularity as the adjoint-state method for waveform inversion. — Invert for offset-dependent wavelets and hyperbolic reflections simultaneously. — Another application is tying surveys . — Automatic moveout picking is more robust with global optimization. — Signal/noise separation has many geophysical applications. — The Rytov/Eikonal approximation of wavepaths properly includes the effect of bandwidth in seismic tomography. — A convenient approximation of seismic anisotropy allows you to generalize higher-order moveout, prestack time-imaging, and depth calibrations with the same few parameters. — Here's my attempt to motivate the logistic function, useful for predicting oil production. — Here is a quick derivation of geostatistical Kriging. — There's more geophysics on another page.
Interested in optimization and inversion? — Instead of regularization, reparameterizing models most effectively stabilizes inverse problems. — The simplest non-linear inversion in reflection seismology might be constrained Dix velocity estimation. — Here are Java classes for Gauss-Newton and conjugate-gradient optimization and older C++ classes. — Use conventional gradient methods to optimize neural networks.
Interested in programming? — Unused generality makes code hard to modify. — Try pair programming. — Try to avoid premature performance tuning. — How do unit tests help? — I worry about code complexity — Maybe you can avoid extending classes. — Here are suggestions on catching Java exceptions properly and routine Java logging — Why do people still use scary class hierarchies? — Does your development framework inflict unnecessary dependencies? — There's more programming on another page.
Interested in program management for programmers? — Here are some Agile essentials and pitfalls. — Have problems prioritizing features? — Does extreme programming work ? — Have problems starting a project? — Sooner or later my projects move to iterative development. — Avoid the unstable_branch. — I fear demo-driven development. — You may find it necessary to defend refactoring. — Here are suggestions on how programmers can improve project management. — Software development is a negotiation. — Ever been burned by an unrealistic development schedule? — Open research is most effective.
Here is a site map.   Search this site:
Here's my address and a short bio.