david long