by Matt Yoho
We'll illustrate how much a RESTful architecture buys you when building a Rails application with respect to topics such as: reduced application code, clean client-side interaction, cacheability and scalability, and crafting great public APIs. If you haven't looked at the theory of REST in detail or just need a refresher, we'll cover the essence of the theory as a means of illustrating just how low-friction this approach makes building web applications with rich client experiences. This talk will feature examples and code in Ruby on Rails on the server and Backbone.js on the client, but the ideas are applicable to the design of any web application.
by Ben Callahan
This session will be a hands-on walk through of the latest responsive and adaptive web design techniques. Attendees will walk away with a working knowledge of how to implement a responsive front-end on their sites. Particular attention will be given to ensuring that sites are built responsibly (for example, proper image sizes are served to the device). Additionally, the session will cover techniques that can be used on the server in combination with client-side technologies to offer a more seamless user experience. Specific topics covered: - fluid grids - flexible media (images/video/...) - media queries - polyfills - useful resources - effective testing Because this topic is so new, the specifics will certainly change as we approach the conference date. Never fear, I'll make sure that the content presented is fresh and current as well as easy to understand and applicable.
Mobile devices are so useful because they can get on the net with their built-in wi-fi or cellular data radios. But how does this work? In iOS, we have a slew of networking APIs, each appropriate in different situations. From decades-old BSD sockets to the new-in-iOS-5 iCloud, there are a wide range of networking calls available to your app, and an equally wide range of semantics in how to use them. In this talk, we'll start with high-level abstractions like iCloud and other objects that can either load from or save to a URL, then progress down through the stack, grabbing arbitrary content from URLs, self-networking with Bonjour and Game Kit, and finally accessing the socket layer with CFNetwork and BSD sockets.
by Stephen Chin
JavaFX 2.0 is the next version of a revolutionary rich client platform for developing immersive desktop applications. One of the new features in JavaFX 2.0 is a set of pure Java APIs that can be used from any JVM language, opening up tremendous possibilities. This presentation demonstrates the potential of using JavaFX 2.0 together with alternative languages such as Groovy and Scala. It also will showcase the successor to JavaFX Script, Visage, a DSL with features specifically targeted at helping create clean UIs.
Managing change is a crucial part of building software. Mastering the source control tool Mercurial will help you gain significant insight into how your code is changing. That insight will allow you to track down bugs, remove duplication, discover refactorings, and maintain quality. We'll do a quick tour of basic Mercurial, then dive into its more advanced features. While advanced, they are still practical enough to be used during your day to day development. Essential features we'll discuss include named branches, Mercurial Queues, the record extension, aliases, shell functions, log acrobatics, blame, and sub repos. Though the topic here is Mercurial, the practices and concepts also apply to Git.
Windows 8 will bring a new style of Windows applications: Metro. Metro style applications bring a new set of issues in writing applications that take full advantage of our computers. When do I use the new Async capabilities of .Net 4.5, and when do I use the Task Parallel Library? What happens when Windows 8 suspends my application when switching to another Metro application? Come learn the answers to these questions and others as we explore parallel programming in Metro applications.
Ever been invited to a project kickoff party only to find out that you’re flying solo? Congratulations, you’ve just become the ultimate co-located, self-organized, cross-functional, energized agile team of one. Join us for this session where we explore how the lone coder can take advantage of the best agile has to offer in this era of ever shrinking budgets.
by William Wallace
BDD has been embraced by many as the solution to "TDD drag" - helping developers keep focused on the business value of the software they create while at the same time covering their code with tests. This has been a challenge with .NET - the tools haven't been that expressive. Many .NET developers who want to do BDD turn to tools from other languages with a better history of BDD development, like Ruby’s RSpec. While such solutions work, wouldn’t it be nice to keep all the code for your domain solution and the tests in the .NET framework? Well you can and I’ll show you how.
This presentation will introduce Node.js and MongoDB, showing you how to use the two together to create a backend service. Following a brief introduction, we'll talk about ways to get started using these technologies by creating small, non-critical services. We'll also discuss the installation and popular Node.js modules, creating a logging solution, and finally load test a Rails application using these technologies.
I think it's safe to say that at this point, having SOME sort of automated testing for your application is considered a best practice. Unfortunately, creating a testable application is like having 6-pack abdominal muscles: everyone wants them but few are willing to put in the hard work to make it happen. This talk will approach the idea of Test-Driven Development / Behaviour-Driven Development from a different angle, instead taking a look at strategies for structuring your application is such a way that continuous integration and delivery of your application is not only possible but easily achievable. We will start by looking at anti-features of an application: ways of building things that make them very difficult to test. From there we will progress onto things like Demeter's Law, dependency injection and how to create the complementary infrastructure to test your application. Finally we will focus on building your confidence level with respect to flawless deploys from "all hands on deck, we're deploying" to "that's the 12th change we pushed into production today".
by Mike Bobiney
by Carol Smith
Getting user feedback on your progress is key to making successful interfaces and it doesn’t have to take months. In this session you will learn how setting up regular usability tests can allow you to save time doing the studies and without sacrificing quality. In this session you will learn strategies and techniques that can be used for making traditional and remote usability testing methods easier to plan and conduct. We will cover usability testing from planning through analysis, and ways to provide useful and usable recommendations to the team.
This session will cover the following topics:
• Planning tips and tricks
• Recruiting methods
• Note taking and managing observers
• Specific tips for methods (Traditional, Rapid Iterative Testing and Evaluation (RITE)
• Specific tips for locations (in-person, on-site, remote)
• Brief review of software
• Sharing your findings
• Making usable recommendations
by Bill Heitzeg
Several years ago Domino’s Pizza contracted an outside firm to build an on-line ordering site for them. At that time, very few people were using the web for commerce. As the years went by more and more hungry people were turning to the web for their pizza and wings. Not designed for such a massive number of orders, the outsourced site was in trouble. With no more bailing wire and duct tape available, it was clear something needed to be done. A decision was made to bring the business in-house, not just the software development, but the entire operations around the site. This presentation will explore the adventure of such a massive undertaking and the happy go lucky days that followed.
by Mark Rendle
C# 3.0 and LINQ gave us anonymous delegates, lambdas and closures, and C# 4.0 improved on them. But these “functional” features have applications beyond messing about with IEnumerable<T>. In this session I’ll present 10 simple and not-so-simple uses of first-class functions to help cut down on repeated code and improve maintainability, and hopefully leave the audience with a new and exciting way of approaching coding problems.
by Jeff Casimir
Ruby can't scale. Tell that to LivingSocial, GroupOn, Gowalla, Sony, and the rest of our community pushing millions of requests per day. Scaling an application isn't about piling up hardware and dropping in the newest database fad, it's the combination of design and refinement.
In this session, we'll look at refining Ruby code using tools to:
This is not about info-porn. It's about finding the 1% of your code that, through optimization, can dramatically improve performance.
by Joe Fiorini
by Parag Joshi
So Windows 8 is just cool! Add NFC to that and we have a super cool experience. We will create a simple metro app with Windows 8 , add ability to use NFC to communicate with another Windows 8 machine and create a multi player game. You will see how easy it is to use NFC in Windows 8 and write your own application.
by Ted Neward and Jessica Kerr
Most useful applications require persistent storage. Most persistent storage requires a database. Android offers several local storage options: preferences, files, and a database. Here, Android developers who are past "Hello World" and familiar with SQL will get a head start for easy database interactions. We will create and use a schema in the supported SQLite database, check its contents in the debugger, and explore its limitations. After this session, budding Android developers will know what to do with all that mobile data.
by Godfrey Nolan
Just because you're coding Mobile applications doesn't mean that you can't take advantage of the benefits Continuous Integration (CI). Come to this session and learn all about CI on both the iPhone and Android platforms. Learn the difference between Hudson and Jenkins, all about headless emulators, as well as the best tools to use for unit testing, functional testing and beta app deployment of your mobile apps.
by Leonard Fingerman
There are many ways to consider on how to design and execute effective automated tests and continuously keep the pulse on quality of product delivery. However when it comes to leveraging existing CI pipeline for functional and performance testing many may not realize that main ingredients are already built-in. This presentation will share the recipes on how to propel automated testing with immediate feedback to the entire team.
This presentation is based on:
• Hudson/Jenkins CI engine
• Ruby and Rake to setup, execute and tear-down test environments
• Hpricot (Ruby gem) and Hudson plug-ins to report and trend graphical results dynamically
• .NET test tools (Visual Studio MS Team System and Telerik WebAii)
by Colin Bowern
How do you deploy database changes with your web application today? Are you still rolling scripts by hand to move your database from one version to the next? In this session we will take a look at how to manage database schema changes in your web application through exploring the change lifecycle. We will take first version application and walk through the upgrade process showing you the tools and techniques needed to keep your schema changes reliable and consistent.
by Hadi Hariri
C# 4.0 introduces the Dynamic keyword. The team said it was to add better support for COM, yet we’ve already seen its usage extend to ASP.NET MVC 3 and other scenarios. The truth of the matter is, when it comes to working with things such as XML and JSON, dynamic types can really enhance productivity. If you’re a fan of static typed languages and whether or not you like dynamic languages, come to this session and learn to love the new dynamic keyword. We’ll see how you can really gain productivity and flexibility when using it appropriately. Used in quite a few OSS projects already, dynamic really has changed the scenery when it comes to writing applications in C#.
by David Giard
We spend much of our time collecting and analyzing data. That data is only useful if it can be displayed in a meaningful, understandable way. Yale professor Edward Tufte presented many ideas on how to effectively present data to an audience or end user. In this session, I will explain some of Tufte's most important guidelines about data visualization and how you can apply those guidelines to your own data. You will learn what to include, what to remove, and what to avoid in your charts, graphs, maps and other images that represent data.
Functional programming is in the air. The most common question in java programmers mind is whether it is useful and possible to do functional programming(FP) in Java ? I will start of with a quote from Timothy Budd, “Research results from the psychology of programming indicate that expertise in programming is far more strongly related to the number of different programming styles understood by individual than it is the number of years of experience in programming.” So FP will help you to become a better Java developer. And the good news is FP is language agnostic. Its a style that you learn and can use in almost all programming languages. Outline of the presentation - Introduction to FP with examples written in Java - Why FP is important to learn and explain the benefits of FP in enterprise software development - Overview of the FP libraries available in Java (functionaljava, lambdaj etc)
The cat’s out of the bag! Not only is Project Codename “Roslyn” delivering the next generation C# and Visual Basic compilers and language services, it also provides a powerful set of APIs for building "code aware" tools and extensions. In this information-packed session, we'll explore six major Roslyn APIs in depth, covering parsing, retrieving semantic information, analyzing data and control flow, and scripting. Armed with this knowledge, we'll see how easy it is to leverage the APIs to analyze and generate C# and VB source code, add C# scripting support to an application, or even extend the existing C# and VB language service features in Visual Studio.
If you haven't worked with GWT, or haven't looked at it in years, this session will provide and solid overview of all the fundamental components included in the toolkit.
Outline I. The Original Release
a) Perfect caching strategies
c) Image compositing
d) Compression optimization
Packaging II. 1.x Evolution
b) Improved compression
d) Handlers vs Listeners
e) Pluggable dev server III.
b) New Resources System
c) Compiled Stylesheets
d) data: image inlining
f) Compiler point-cuts
g) CSS3 optimized Layout
IV. 2.x Evolution
a) Improve i18n/RtL support
c) Editors framework
d) Spring Roo and Data bound widgets
V. The Capital-F Future
a) More HTML5
b) Stealing from the future!
The fastest query is the one never run - Using Microsoft Server AppFabric Cache you can dramatically improve the performance of your web / enterprise application without investing in big hardware or complicated programming. We'll take a real-world application with performance issues, add AppFabric cache to it to demonstrate the difference even short term caching can make to your application. We'll then walk through how you can make this effortless using code injection. The code samples will be specific to AppFabric and .NET but the concepts and approaches are common to many application platforms.
by Bill Pugh
With experience based on Java Programming Puzzlers (previously presented with Joshua Bloch), looking at thousands of coding mistakes found by FindBugs, and working with students and developers writing Java code for over 15 years, I'll discuss some common Java coding puzzlers and bug patterns, and techniques you can use to avoid them. While inexperienced developers can be particularly subject to many of these mistakes, they also occasionally bite experienced developers. Many of them are puzzlers, in the sense that they are hard to detect in code reviews, exhibit surprising behavior, and hard to debug. I'll avoid esoteric puzzlers that are largely a theoretical possibility, and focus on real bugs that occur with a distressing frequency in real code, illustrated by examples from current open source software. The talk will be accessible and value both to those new to the Java programming language and those with more than a decade of experience.
Open Source and Microsoft have never been the best of companions. But with the Windows Azure platform, Microsoft set out to support and promote interoperability. This session will take a tour around one of the most robust third-party language libraries - the Windows Azure SDK for PHP. I will describe the SDK’s features; and demonstrate how to create and deploy a web site to the cloud using familiar PHP tools and concepts.
11th–13th January 2012