by Mark Meeker
It sounds too good to be true and probably for good reason. You add a single line of code to each of your pages and it will magically do anything including serve ads, providing user and marketing analytics, displaying a widget, or even go so far as handling some major site functionality. But what impact does this "simple" script include have on your site's performance, security or user experience?
In this half-day session, Molly will provide an overview of where HTML5 is within the W3C process, what it's originators at the WHAT-WG are thinking about, and then jump on in to the really interesting topics of the day. Continuing deeper, we'll look at HTML5 media elements and APIs including video, audio and canvas; we'll examine related technologies such as Scalable Vector Graphics (SVG) and its role within contemporary site and application design; and finally wrap up with a variety of related work in geolocation and device-orientated standards such as is emerging via other standards bodies.
- A better understanding of the origins, goals and current thinking in HTML5
- Real-world techniques to implement HTML5 and related tech into current workflow
- A look at how browsers are changing the way we work, for better or worse
- Guidance as to how to manage open, emerging technologies based on individual and group skill sets
- A solid foundation for determining next steps regarding emerging tech and your current development practices
The full title of this talk reveals its grand aims: Game Theory and Software Development: Explaining Brinkmanship, Irrationality and Other Selfish Sins.
Once in a while, a topic, seemingly orthogonal to software development, presents a great opportunity to showcase how engineering can benefit from knowledge of seemingly more social disciplines. In this talk, the fundamental principles of economics Game Theory are compared to often inexplicable behaviours and decisions we frequently observe in programming projects.
Then, with a good Game Theory vocabulary under your belt, several standard games are studied in a manner that will allow you to better manipulate the inputs. These games are present in web framework choices, project planning and estimation, and even team decisions on which bug to solve first. With a good understanding of Game Theory, you'll be able to understand and influence what you previously labeled 'irrational behavior'. It turns out to be far from irrational when examined in the context of self-preservation. Once these behaviors are understood, you will be able to ethically influence the outcomes to your personal and corporate advantage.
by Mark Meeker
by Peter Bell
As our web applications become more interactive, frameworks like jQuery or dojo are 'necessary but not sufficient'.
In this presentation we'll deep dive into the capabilities and strengths of this prominent language of the web.
by Tim Berglund
Grails is emerging as a standard JVM web framework in environments ranging from startups to the enterprise. It's a full-stack solution build on rock-solid components, fully relying on convention over configuration, and using the best application language the JVM has yet seen: Groovy. This is the place to be for web apps on the JVM.
In this introductory talk, we'll get a whirlwind introduction to Grails, visiting seven things you need to know about the framework to get started.
1. Creating an app
2. Development using the Tomcat server
3. Interacting with the database
4. Building your UI
5. Processing web requests
6. Tapping the huge plugin community
7. Deploying to production
by Johnny Wey
One of the most exciting new additions to the suite of technology collectively known as "HTML 5" is an official WebSocket standard. This finally allows full duplex bi-directional communication between a client and server of TCP.
However, the technology is still new and rapidly changing. In this talk, Johnny will explain what a WebSocket is, how it works, how to implement it on browsers that don't natively support it, and how it relates to other technologies and platforms such as HTTP long polling, Comet, Flash Sockets, mobile and JSONP. He'll also discuss the different types of server implementations, scaling strategies, and how it can be integrated into an existing applications.
by Adrian Cole
by Neal Ford
by Has Dockter
by Ted Neward
In this session, we'll look at CouchDB, how to set it up, store data to it, retrieve data from it, and in general figure out where it fits within your next project.
The Dojo Toolkit is one of the original Ajax toolkits, and has reinvented itself again through a series of improvement in modularity, performance, API improvements, adjustments for HTML5 and mobile platforms, and much more to provide a stellar platform for building web apps.
by Mark Meeker
We live in a global economy. One of the most logical ways for a site to expand is to market their services to users in other countries. But moving into new countries and markets means supporting multiple languages and multiple currencies, with each offering their own unique set of challenges. Localizing (or localising) isn't as simple as swapping translated text. From managing content of different lengths to displaying that text right-to-left, making your site work around the globe offers unique challenges.
This session will look at the impact of internationalization on the client-side and what it takes to make your user experience a global one.
by Tim Berglund
If you've gotten your feet wet with Grails. You've talked to friends, you've done some reading, you've seen a presentation that sold you on the awesomness of the framework. What's next? Why, some hacking, of course!
Come to this 90-minute workshop ready to create a persistent domain model, build a scaffolded UI, modify page layouts, and maybe even build some Ajax into your new web app. See how quickly you can get started building robust, scalable web apps for the JVM.
Bring a laptop of be prepared to pair with a friend. Please have a current release of Grails (http://grails.org/Download) downloaded and unzipped.
by Peter Bell
If you're creating the next generation of interactive web and mobile applications which need to connect back to your server on a regular basis, node.js is a technology you can't afford to ignore.
by David Chandler
The browser has become an increasingly important platform for enterprise development, and GWT has long appealed to developers looking to migrate desktop apps to the Web. There are still limitations of Web apps vs. desktop apps, but HTML 5 has addressed many of these.
This session will primarily cover HTML5 features of interest to mobile and enterprise developers, including the FileSystem API and desktop-like file handling, AppCache, local storage, Geolocation, and determining device form factor. We'll also take a look at Maven integration and new features in the latest Google Plugin for Eclipse.
by Neal Ford
Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours - sometimes even minutes - no matter what the size of a project or the complexity of its code base.
In the second half of the workshop, we introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We'll discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branding is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to delivery incrementally.
"That's really useful, but it looks like it was designed by a developer."
Ever heard that? Want to fix it? Think you don't have the design ability?
Here's a dirty little secret, design is a skill, it can be learned. This session will take you through the basics of design theory for applications. By the end you should be on your way to building not just useful apps that people have to use, but awesome apps that people love to use.
- Design Dos and Don'ts
- Planning a Design
- Design Fundamentals
by Has Dockter
In this talk we will cover many Gradle power features that are particularly helpful for the real heavy lifting often needed in enterprise builds.
We will start this session with the concept and advantages of auto-wiring the Task Dependency Graph based on the inputs and outputs. We will then talk in details about the new dependency management features such as the new cache, customizable dynamic revision handling and customizable version conflict resolution. From there we'll explore the new extension mechanism for Gradle DSL and introduce the Gradle daemon. We will also discuss our take on best practices for dealing with module dependencies in the enterprise and how this can be mapped with Gradle. Finally we will show how you can programatically customize the way the Gradle build model is mapped to the STS Gradle Eclipse plugin.
by Johnny Wey
by Nate Schutta
Sure, Ajax might not be the hardest thing you'll have to do on your current project, but that doesn't mean we can't use a little help here and there. While there are a plethora of excellent choices in the Ajax library space, jQuery if fast becoming one of the most popular. In this talk, we'll see why. In addition to it's outstanding support for CSS selectors, dirt simple DOM manipulation, event handling and animations, jQuery also supports a rich ecosystem of plugins that provide an abundance of top notch widgets. Using various examples, this talk will help you understand what jQuery can do so you can see if it's right for your next project.
Once we've established a solid understanding of just what jQuery can do out of the box, we'll delve deeper into the plugin space. jQuery is designed to be extended and while odd are there's a plugin that meets your needs, sometimes only a homegrown solution fits. Starting with a couple of very simple examples, we'll work our way up to more full fledged widgets.
by Tim Berglund
Ratpack is a hyper-lightweight, Groovy-based web framework for developing and deploying simple apps in a hurry. Like its high-achieving cousin Gaelyk, it provides Groovy developers with a way to create web apps without days of iteration zero setup time.
In this talk, we'll look over Ratpack's very simple structure and live-code a small, practical example application. We'll look at how to evolve simple controller logic, how to manage templates, how to persist data, and how to deploy Ratpack applications to the web. The Java world needs ways to build small applications in a hurry, and Ratpack is the latest way to do it!
You've heard about Sonar and are intrigued by its features. It can analyze code in both a static and dymanic manner making aggregated sense of the complex figures gathered by the underlying tools such as CPD, FindBugs, Cobertura, Checkstyle and many more. You believe your team can benefit from using it to gether metrics and to facilitate code reviews. But how do you get started? The answer is easy. Through a hands on workshop that has you installing, running and reviewing code.
This workshop is purely hands on and will give attendees first-hand experience of the setup, configuration, and use of Sonar to analyze Java and Groovy code. Attendees will install Maven, Gradle and then Sonar and proceed to analyze an open source project, all during the course of this three hour class.
Prerequisite: Motivation to analyze source code for team-wide improvement of coding techniques and architecture.
Spock is an awesome tool that exploits Groovy AST transformation to provide elegant, fluent syntax for writing automated tests.
In this presentation we will learn how to use Spock to test both Java and Groovy code. We will take an example orientated approach to learning the strengths of this powerful testing tool.
HTML 5 has introduced us to the Canvas API, 2D graphics and the pleasures of plugin-free video and audio playback. One of the next hurdles we will face is native support for 3D graphics and simulations, visualizations and games.
This will be an example-driven workshop that will cover the basics of 3D graphics, OpenGL and where it is going on the Web.
by Matt Stine
Chef is a community-developed platform for automated provisioning, configuration and integration of software infrastructure. It currently boasts 190+ individuals and 40+ companies (including parent company OpsCode) as contributors, and companies like EngineYard, ElectronicArts, GoTime and Rhapsody as adopters.
Chef achieves fully automated infrastructure via three primary disciplines:
- Automated provisioning of bare metal, virtualized and cloud environments.
- Configuration of servers via roles ("webserver", "appserver", "loadbalancer") and receipies, which are dclaratvie descriptions of resource (e.g. Apache, MySQL, Hadoop) configurations written in a Ruby DSL
- Systems integration via dynamic lookup and discovery
We'll dive deeply into Chef's architecture and features, including its idempotency, its thick client/thin server philosophy, its intentional lack of dependency management (preferring and order-based configuration), and its deep integration with other tools. We'll then leverage Chef to set up infrastructure of a typical JVM-based web development project with various IS, application server and datastore configurations. You'll leave a ready to get cooking with Chef on your next software delivery effort.
by Gabriel Dayley
29th November to 2nd December 2011