Scott Davis
Author of "Groovy Recipes"

Scott Davis is the founder of ThirstyHead.com, a training company that specializes in Groovy and Grails training.
Scott published one of the first public websites implemented in Grails in 2006 and has been actively working with the technology ever since. Author of the book Groovy Recipes: Greasing the Wheels of Java and two ongoing IBM developerWorks article series (Mastering Grails and in 2009, Practically Groovy), Scott writes extensively about how Groovy and Grails are the future of Java development.
Video
Presentations
Tomorrow's Tech Today: HTML 5
In this talk, you won't be subjected to discussions about the features that will appear in some distant future release of a web browser. Instead, you'll see the HTML 5 features that are already being used by Google, Apple, and others. You'll see the features that are supported by today's browsers, ready for you to use right now.
HTML 5 offers dramatic new improvements for page organization, offering out-of-the-box support for elements like header, footer, nav, section, and article. HTML 5 adds native support for form features such as placeholder text, autocomplete, autofocus, and validation. Additionally, there are a host of new form elements available (email, url, number, range, date, and search) that gracefully degrade in "classic" web browsers -- IE, I'm looking at you!
Grails + CouchDB
Apache CouchDB is a schema-free document store that uses HTTP GETs, PUTs, and DELETEs instead of SQL SELECTs, INSERTs, and DELETEs. It speaks JSON fluently instead of tables, columns, and rows. It uses JavaScript Map/Reduce functions instead of SQL for the query language. It offers effortless replication among distributed CouchDB instances.
"CouchDB is built of the Web. I’ve never seen software that so completely embraces the philosophies behind HTTP." Jacob Kaplan-Moss, Django Developer
If you want to get a room full of programmers all riled up, just casually drop the word, "NoSQL." To some, NoSQL means, "death to all antiquated, 1970s-era persistence solutions!" Others take a more pragmatic approach -- "Not Only SQL" means that while relational databases are suitable for some applications, there is an emerging crop of equally viable (and interesting) persistence strategies out there.
And how does Grails -- a web framework that is tightly coupled to relational databases via GORM (the Grails Object-Relational Mapping API) and Hibernate -- deal with a non-relational document store behind the scenes? I guess that you'll just have to show up to find out, won't you? If you're new to Grails, new to CouchDB, or both, this talk offers an exploration into each technology and how they can be teased into working together.
Compile Time and Runtime Metaprogramming With Groovy
Groovy should feel instantly familiar to Java developers -- after all, Groovy is an extension to the Java language. Many of Groovy's enhancements come in the form of metaprogramming, or new methods added to existing classes. In this talk, we'll take a look at how Groovy adds these methods to Java classes, and how you can do the same. Despite the somewhat frightening nomenclature, it's much easier than you might think.
The dynamic nature of Groovy makes it a fantastic language for building dynamic applications for the Java Platform. The metaprogramming capabilities offered by the language provide everything that an application development team needs to build systems that are far more capable than their all Java counterparts. Taking advantage of Groovy's metaprogramming capabilities brings great new possibilities that would be very difficult or just plain impossible to write with Java alone. Building Domain Specific Languages in Groovy is easy to do once a team has a good understanding of the Metaobject-Protocol (MOP) and the method dispatch mechanisms used by the Groovy runtime environment.
This session will cover in detail a number of advanced metaprogramming concepts in Groovy. The discussion will cover using dynamic method interception, meta-class manipulation, AST transformations and Groovy's Metaobject-Protocol (MP) to build flexible applications in Groovy including implementing a Domain Specific Language (DSL).
Books
Groovy Recipes: Greasing the Wheels of Java (Pragmatic Programmers)
by Scott Davis
-
Each recipe in Groovy Recipes begins with a concise code example for a quick start, followed by in-depth explanation in plain English. These recipes will get you to-to-speed in a Groovy environment quickly.
You'll see how to speed up nearly every aspect of the development process using Groovy. Groovy makes mundane file management tasks like copying and renaming files trivial. Reading and writing XML has never been easier with XmlParsers and XmlBuilders. Breathe new life into Arrays, Maps, and Lists with a number of convenience methods. But Groovy does more than just ease traditional Java development: it brings modern programming features to the Java platform like closures, duck-typing, and metaprogramming.
As an added bonus, this book also covers Grails. You'll be amazed at how quickly you can have a first-class web application up and running from ground zero. Grails includes everything you need in a single zip file⎯a web server (Jetty), a database (HSQLDB), Spring, Hibernate, even a Groovy version of Ant called GANT. We cover everything from getting a basic website in place to advanced features that take you beyond HTML into the world of Web Services: REST, JSON, Atom, Podcasting, and much much more.
GIS for Web Developers: Adding 'Where' to Your Web Applications
by Scott Davis
-
There is a hidden revolution going on: geography is moving from niche to the mainstream. News reports routinely include maps and satellite images. More and more pieces of equipment cell phones, cars, computers now contain Global Positioning System (GPS) receivers. Many of the major database vendors have made geographic data types standard in their flagship products.
GIS for Web Developers introduces Geographic Information Systems (GIS) in simple terms and demonstrates hands-on uses. With this book, you'll explore popular websites like maps.google.com, see the technologies they use, and learn how to create your own. Written with the usual Pragmatic Bookshelf humor and real-world experience, GIS for Web Developers makes geographic programming concepts accessible to the common developer.
This book will demystify GIS and show you how to make GIS work for you. You'll learn the buzzwords and explore ways to geographically-enable your own applications. GIS is not a fundamentally difficult domain, but there is a barrier to entry because of the industry jargon. This book will show you how to "walk the walk" and "talk the talk" of a geographer.
You'll learn how to find the vast amounts of free geographic data that's out there and how to bring it all together. Although this data is free, it's scattered across the web on a variety of different sites, in a variety of incompatible formats. You'll see how to convert it among several popular formats including plain text, ESRI Shapefiles, and Geography Markup Language (GML).
With this book in hand, you'll become a real geographic programmer using the Java programming language. You'll find plenty of working code examples in Java using some of the many GIS-oriented applications and APIs. You'll be able to:
Find free sources of GIS data on the web Browse GIS data using open source desktop viewers Manipulate GIS data programmatically Store and retrieve data using geographically-enabled databases Explore free web toolkits like Google Maps Publish and consume web services using Open Geospatial Consortium (OGC) interfaces

