Gateway Software Symposium
March 7 - 9, 2008 - St. Louis, MO
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.
Presentations
Groovy, the Blue Pill: Writing Next Generation Java Code in Groovy
There are wild-eyed radicals out there telling you that Java is dead, statically-typed languages are passe, and your skills are hopelessly out-of-date. Those extremists are the same ones who don't bat an eye at throwing out years of experience to learn a new language from scratch, pushing aside a familiar IDE for a new one, and deploying to a whole new set of production servers with little regard to legacy integration.
While this "burn the boats" approach to software development might sound exciting to some folks, it's giving your manager the cold shakes right now. What if I told you that there was a way that you could integrate seamlessly with your legacy Java code, continue to use your trusty IDE and stable production servers, and yet take advantage of many of the exciting new dynamic language features that those fanatics keep prattling on about? You'd probably say, "Groovy!" I would, too...
This talk focuses on integrating Groovy with your legacy Java codebase in a way that wouldn't raise an eyebrow in the most conservative of organizations. We'll look at the dramatic reduction in line of code you can achieve by simply flipping your POJOs (Plain Old Java Objects) to POGOs (Plain Old Groovy Objects). We'll talk about calling Java classes from Groovy, and calling Groovy classes from Java. We'll look at Groovyc, the integrated compiler that manages Groovy/Java dependencies without a hiccup.
Not once will I tell you to throw out the old in favor of the new. In each case, I'll show you how to integrate the new with the old. Don't throw out your Ant build scripts; mix in a bit of Groovy to spice 'em up. Don't toss out your existing unit tests. (You are unit testing, aren't you? AREN'T YOU?) If not, Groovy is the perfect excuse to get started with a new language in way that improves the quality of your Java application without actually putting the new code into production. That is, until you get hooked on doing things the Groovy way...
If the Red Pill of Dynamic Languages scares the pants off of you (or your manager), don't worry about it. The Blue Pill still offers plenty of benefits. There is no other language on the JVM that offers you the level of deep Java compatibility such that you could rename your "dot J-A-V-A" files to "dot G-R-O-O-V-Y" and not skip a beat. Of course, they both end up with a "dot C-L-A-S-S" extension at the end of the day, so there's good chance that no one would ever be the wiser anyway. Groovy: funny name, serious software, and Java through-and-through.
Groovy, The Red Pill: Metaprogramming, the Groovy Way to Blow a Buttoned-Down Java Developer's Mind
This talk focuses on the ways that Groovy can turn a traditional Java developer's world-view upside down. We'll start by talking about how you can thumb your nose at The Man by leaving out many of the main syntactic hallmarks of Java: semicolons, parentheses, return statements, type declarations (aka Duck-typing), and the ever-present try/catch block. Then we'll look at features like operator overloading and method pointers that Groovy welcomes back into the language with open arms.
The bulk of this session focuses on metaprogramming with Groovy. We'll add new methods to classes at runtime -- even if they were originally implemented in Java, and even if they were declared final. (Thanks, ExpandoMetaClass!) We'll call methods that don't exist and avoid the dreaded MethodNotFound Exception. (Thanks, invokeMethod!) We'll narrowly scope our metaprogramming shenanigans using Use blocks and Categories, and then cast our changes to the wind such that every instance of a class gets our added juice.
If you are happy taking the Blue Pill, this talk is not for you. You can continue using Groovy as a slimmed-down dialect of Java -- an 'After' picture to Java's 'Before'. If, however, the Red Pill looks interesting, please join me. Remember, all I'm offering is the truth. Nothing more.
Grails for (Recovering) Struts Developers: A Groovy Alternative
Struts enjoys an unprecedented marketshare in the Java web development space -- 60%-70% according to most surveys. As newer, modern web frameworks come to the scene, very little attention is paid to the real costs of migrating an existing Struts application. This talk shows you ways to mix Groovy into a legacy Struts application, dramatically reducing both the lines of code and the complexity. We'll also introduce you to Grails (a Groovy-based web framework) whose URL-mapping capabilities allow it to replace your Struts application without breaking legacy URLs.
Grails is a modern Web development framework that mixes familiar Java technologies like Spring and Hibernate with contemporary practices like convention over configuration. Written in Groovy, Grails give you seamless integration with your legacy Java code while adding the flexibility and dynamism of a scripting language. After you learn Grails, you'll never look at Web development the same way again.
KEYNOTE: How to Lie with Open Source
Following in the fine tradition of such books as "How to Lie with Statistics", "How to Lie with Charts", and "How to Lie with Maps", this provocative talk explores our most cherished myths, misunderstandings, and outright lies about Open Source software. Without a firm grasp of the truth, it is difficult to recognize FUD (Fear, Uncertainty, and Doubt) as "Facts Under Duress". And if you don't know the truth, how can you lie about it?
The economics of free software are surprisingly nuanced. ("How can they stay in business when they give it away for free?") The politics of free software can be positively Machiavellian in their intent and Orwellian in their vocabulary. ("When is free software not Free?") The legality of free software -- whether it's the myriad of licenses or the Byzantine doctrine of patents -- forces technologists to moonlight as amateur lawyers.
Whether you favor open standards or fierce protection of intellectual property, come gather ammunition to bolster your arguments. This "Open Source" stuff isn't going away anytime soon, so you'd better be prepared to lie about it intelligently...
Real World JSON
JavaScript Object Notation is becoming a familiar delivery platform for Web 2.0 content. JSON gives you all of the flexibility of a RESTful web service without the hassle of trying to deal with deeply nested, complex XML in a language that is conspicuously lacking in native XML support. In this talk, we look at popular websites (like Yahoo!) that offer JSON output. We look at client-side JavaScript code that effortlessly consumes JSON in the browser. We even look at ways to easily generate JSON from Java Servlets (using JSON.org libraries) and the native support for JSON that Grails offers out of the box.
This talk also gives us the opportunity to brush up on our JavaScript, as well as look at clever ways that JSON can work around Cross-Site Scripting issues.
YSlow: Building Your Website for Speed
How optimized is your website? YSlow, a FireFox/FireBug plugin, doesn't pull any punches. It gives any website an A, B, C, D, or F rating based on 14 individual analysis points. You'll be amazed (or depressed) at what YSlow thinks of your site. In this talk, we'll walk through these points step by step, learning what Yahoo! (the creator of this utility) does to keep its web properties running as quickly as possible.
These points are nicely summarized in "High Performance Web Sites", by Steve Souders (a companion book to the plugin). The analysis points that YSlow looks at are programming language, server, and web framework agnostic. The lessons learned here are really a deep look into HTTP, taking advantage of the native capabilities of the protocol -- making the Internet work for you.
Groovy, Grails and Google Maps: Mashups 101
Groovy is a new dynamic language that dramatically speeds up Java development. Grails is a complete web framework in a box, including a web server and a database. Google Maps allows you to add maps to your webpage in a few lines of code. Put all three together and you are built for speed.
In this talk, Scott discussed how to incorporate Google Maps with your database-driven web application. Mashing up local data is one thing: mapping data from other websites like Google Calendar is just as easy. Groovy's XML parsing capabilities make dealing with web services a breeze. Creating mashup means understanding both web services and Ajax-based mapping services. This talk provided sound fundamentals in both. The rich toolsets out there allow you to spatially-enable data that you never thought of mapping.
Books
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.
-
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.
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
-
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
