David Noble presented on practical code generation techniques to improve Java productivity. He discussed how tools, practices, and frameworks can help developers write less code, have fewer defects, and develop applications faster. Specific techniques mentioned include model-driven development, annotations, aspect-oriented programming, bytecode manipulation, and code generation from metadata. Examples of productivity tools for Java include IDE features, code snippet libraries, GUI builders, application generators, and frameworks like Maven, Grails, and Wicket.