David Woolford

A programmer disguised as a Post Doc.

I came from Australia to work for Steve Ludtke.

See my old project: SwarmPS


A theoretical summary of the weak phase approximation and more - this is an excerpt taken from the introduction in my thesis.

What is Single Particle Reconstruction?

If you want to figure out where all of the atoms of a protein are arranged in space, how do you do it? There are several techniques for doing this, the one we use is called single particle reconstruction.


Overview of single particle reconstruction

In this flow diagram my primary role is the development of EMAN2, which is a large suite of image processing algorithms and interfaces.


Some of my work in EMAN2

Here are a few of the C++ classes that I wrote in EMAN2

Patterns in EMAN2

C++ Articles

Useful C++ articles

The assignment operator revisited

Callbacks in C++ using template Functors

The importance of virtual destructors

Bjarne's C++ FAQ

C++ is sometimes like what you call the name of a song...

You are sad, the Knight said in an anxious tone: let me sing you a song to comfort you.

Is it very long? Alice asked, for she had heard a good deal of poetry that day.

It's long, said the Knight, but very, very beautiful. Everybody that hears me sing it -- either it brings the tears into their eyes, or else --

Or else what? said Alice, for the Knight had made a sudden pause.

Or else it doesn't, you know. The name of the song is called "Haddocks' Eyes."

Oh, that's the name of the song, is it? Alice said, trying to feel interested.

No, you don't understand, the Knight said, looking a little vexed. That's what the name is called. The name really is "The Aged Aged Man."

Then I ought to have said "That's what the song is called"? Alice corrected herself.

No, you oughtn't: that's quite another thing! The song is called "Ways and Means": but that's only what it's called, you know!

Well, what is the song, then? said Alice, who was by this time completely bewildered.

I was coming to that, the Knight said. The song really is "A-sitting On A Gate": and the tune's my own invention.


Templated inheritance in Python

My work

Programming Mantras

These are phrases I keep in mind when programming:

The designer knows that he has achieved perfection, not when there is nothing left to add, but when there is nothing left take away.

If you don't have time to do it right the first time, when you will you ever have time?


Here is some EMAN2 code that I have ported to make use of cuda. You can't see the CUDA code on the web because the machine which builds the documentation does not have the CUDA_FLAG on.

Why many calls to cudaFree/cudaMalloc seems to cause havoc

Why cudaMemcpyDeviceToDevice seems to fail

Marching cubes in CUDA using histopyramids



Matrices of the perspective transformation - this is a nice summary of everything involved in the perspective transform, better even than what I've found in books.

Fast shadows - an interesting paper on implementing shadows.

Does MathML work ?


Let's try some interesting formulas:

E=m c2

and ei pi=-1

and AA x in CC (sin2x +cos2x=1)

and one more: sum_(i=1)n i3=((n(n+1))/2)2

Trivial examples.

First, using asciimath formatting. `a+b`

Then, using latex format.

$$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$$

Email: <woolford AT SPAMFREE bcm DOT edu>



DavidWoolford (last edited 2009-08-12 23:39:00 by DavidWoolford)