Sessions
GIVE YOUR CAREER ENTREPRENEURIAL FLAIR – BE YOUR OWN BOSS, NO MATTER WHO SIGNS YOUR PAYCHECK – Dianne Marsh
Have you thought about venturing out on your own, but aren’t sure what that would mean for your future? Or, are you happier working for a company, but concerned that your goals and the company’s may not align well? There are many different paths toward being an entrepreneur, not all of which require becoming a business owner. Dianne Marsh, whose software consulting company is now 12 years old, will describe several of these paths and emphasize the importance of managing your own career regardless of who writes your paycheck.
BUILDING HYPERMEDIA APIS WITH HTML5 AND NODE – Mike Amundsen
Mike Amundsen, internationally known author and lecturer, will be presenting, Building Hypermedia APIs with HTML5 and Node. Mike’s book on the subject will be published by O’Reilly Media in September. Building Hypermedia APIs with HTML5 and Node shows how to build stable, flexible Web APIs using JavaScript on both client and server. Its practical examples demonstrate best practices for writing and maintaining Web APIs and provide clear coverage of general principles of hypermedia that appeal to Web architects.
IOS 5 STORYBOARDS: THE NEW WAY TO LAYOUT APP FLOW – Henry Balanon
Storyboards is a new feature for developers introduced in iOS 5. In this session you will get an introduction on how to quickly layout the workflow of your app with much less code than you previously needed and some advanced techniques as well.
INSIDE RSPEC: THE RUBY LANGUAGE AND EFFECTIVE BDD THROUGH THE RSPEC GEM – Baraa Basata
What are the benefits of RSpec and the growing family of similar “xSpec” tooling in non-Ruby languages? How has BDD thinking precipitated this new generation of tooling? And what does the design of RSpec itself tell us about sustainable software development with Ruby?
We’ll touch on:
* What RSpec is about, with examples
* Qualities of good specs
* Why RSpec, BDD, and TDD are about more than testing
* Building higher-level concepts and domain-specific languages on top of RSpec
* How rigorous principles of sustainable software development apply in Ruby, e.g. Single Responsibility Principle and Open-Closed Principle
CROSS-PLATFORM MOBILE APPS WITH JQUERY MOBILE – Mike Bobiney
jQuery is the hugely popular JavaScript framework that powers nearly half of the top ten thousand most visited websites. You’ll learn how you can use these everyday web technologies to create compelling mobile experiences for your visitors while still supporting older devices. We’ll be covering topics such as navigational structure, layouts, toolbars and the all important list view. But just building a mobile site will only get you so far. You’ll also learn techniques to improve your page load times and tips to roll your own theme with style sheets and icons to help your apps stand out from the crowd.
A BETTER MOUSETRAP – Paul Czarnik
NEW TOOLS FOR THE WEB – Kevin Dangoor
Web applications having been getting increasingly sophisticated over the past couple of years. As usual, developers are pushing the boundaries of what the web can do faster than people can make tools to support their work. In-browser tools in all of the major browsers and IDEs have been charging forward, though. They provide a bunch of new capabilities to get things done quicker, and I’ll show off some of these new tricks and toys. I’ll also talk about where I think the tools fall short.
THE JOURNEY FROM DEVELOPER TO TECHNICAL LEAD – Mark Davidson
As Developers look to grow in their career, from time to time, they need to assess where they are on the path to the next career position. This presentation has been developed to help identify areas where growth opportunities exist and ultimately provide the attendee with the information necessary to construct a plan to achieve that next role.
HIGH PERFORMANCE DEVELOPER/DESIGNER COLLABORATION – Timothy Fisher & Kate Pricer
Join us in this session to hear a story about how two Compuware employees Tim Fisher and Kate Pricer, a developer and a visual designer, have worked side-by-side the past six months on a variety of web and cross-platform mobile apps. Perhaps your familiar with the concept of pair programming for developers? Tim and Kate will tell you how they have used a similar strategy for merging technology and design to achieve high performance design and implementation cycles.
Within Compuware they have formed a team which has gained attention throughout the company for the innovative way they have been working and collaborating side-by-side, merging design and technology on each project they work on.
One of their recent projects was an award winning mobile app for the Maker Faire Detroit which they created from scratch in just a few weeks. Their style of working enables close collaboration and rapid feedback shaving weeks off a typical back and forth period between a development team and a design team. Learn how together they conceive the user experience and UI layout for their projects followed by individual yet highly collaborative work on the graphic design and coding of the projects. Can this strategy work for you? Join us to learn how it has worked at Compuware.
YOU – Leon Gersing
Drawing from personal experience and research from leading behavioural psychologists, this session aims to empower developers to explore themselves and their craft. Helping them to establish confidence in their career, establish their voice in a highly competitive market, manage conflicts healthfully and communicate more effectively with others. No matter where you happen to be on your journey of continual improvement, reflecting on yourself and the effects of interpersonal relationships can provide valuable insight towards achieving your goals technically and emotionally. Learn to leverage the wisdom of those around you to cultivate powerful positive relationships without sacrificing the most important asset in your toolkit: yourself.
EFFECTIVE DATA VISUALIZATION: THE IDEAS OF EDWARD TUFTE – 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.
PYTHON, PEP8, AND WHY READING CODE MATTERS – Rick Harding
As a developer we easily spend as much time reading code as we do writing it. We spend hours learning design patterns, tweaking our editors, and reading techniques all to help write code. We’re going to remind you about the things you need to think about to help reading code. It’s just as important.
MAKING STUFF UP: THE FLOOR IS LAVA AND OTHER LIFE LESSONS FROM IMPROV – Nathan Hughes
In this talk, Nathan Hughes explains how improvisation tools can vanquish daily developer challenges. Understand how defending the line, yes and’ng, natural reactions, empty mind, and other techniques can make you powerful, comfortable, and free. Note: don’t worry, no one will be forced on stage.
FUNCTIONAL CLOUD COMPUTING WITH SCALA AND GRIDGAIN – Nikita Ivanov
This is very hands on presentation with 90% of it dedicated to live Scala coding of various distributed application including MapReduce and Data Grids apps. Nikita has delivered this talk over a dozens times internationally in the last 15 months. This presentation provides great in-depth intro into modern distributed programming with Scala.
INTRO TO NATIVE IOS – Dave Koziol
This session will be a whirlwind tour of what you need to know to get started building native iOS applications. We’ll cover topics ranging from what you need to get started, the tools you’ll be using, and high level details of the language and frameworks needed.
THE USE OF BURN CHARTS TO MANAGE PROJECTS – Scott Miller
Scott Miller will be describing the use of burn charts as a powerful element of data-driven, agile project management. Atomic Object has been using this simple technique for more than five years. Burn charts are a lightweight method of tracking a team’s progress toward completing a project. Burn charts do this by visualizing overall project scope and the rate of task completion over time. These highly visible charts help facilitate predictable (in time and money) delivery and increased customer/team alignment. They are simple to create and update. They can provide a customer a weekly view into the progress being made.
During this hands-on presentation, Scott will break down how Atomic creates and uses burn charts to manage projects. Participants will learn about complexity points, relative estimation, burn chart creation/management and pitfalls associated with using burn-up charts. Participants will pair up to create actual burn charts from real project data.
DECOMPILING ANDROID – Godfrey Nolan
Due to the design of the Java Virtual Machine or JVM it is relatively trivial to reverse engineer Java code from Java jar and class files. While this hasn’t really been an issue in the past since most Java files are hidden on the server, it is an issue on Android phones where the Android apk files are easily obtained and just as easy to decompile back into source.
In this session Godfrey Nolan, author of Decompiling Java, will explain how and why this is possible by unravelling the Java class and dex files and the tools that are currently available to decompile your apk’s. We’ll show some of the classic prat falls that people fall into who aren’t aware of this issue and how you can avoid them. We’ll also look at tools and techniques you should be using to protect your code from prying eyes, such as obfuscation, C++ coding, watermarking etc. to help prevent someone from gaining access to your Android code.
DESIGNING FOR TEST – Erik Przekop
We all know that test driving our code reduces defects and allows us to make changes with confidence. This session will go over some of the micro design patterns we can apply to our code to make it easier to write simple tests. The idea is to enjoy the benefits of testing without making the tests themselves expensive to maintain.
We will walk through several examples in Java. Please bring a laptop and follow along!
STAYING IN SYNC WITH CLOUD TO DEVICE MESSAGING – Chris Risner
Android Cloud to Device Messaging (C2DM) is a service that helps developers send data from servers to their applications on Android devices. The service provides a simple, lightweight mechanism that servers can use to tell mobile applications to contact the server directly, to fetch updated application or user data. The C2DM service handles all aspects of queueing of messages and delivery to the target application running on the target device.
OPEN SOURCE SOFTWARE & THE COMMUNITY – WHAT IT MEANS TO YOU, FOR YOU AND FOR THE COMMUNITY AT LARGE – Barrie Selack
Barrie Selack from Liferay will discuss in this session what open source means for the individual and the community. He will cover the following topics:
* The journey from free open source to open source/enterprise software, growth and growing pains
* Relationships with the community, how the community has a say and plays a part
* Why you should contribute
* How you can contribute
* What it can mean for you in your career
* Success stories of community members
UNBLOCK YOUR TEAM! – Zach Steindler
Nobody gets it right on the first try. The key to getting as close as possible to engineering perfection is to continuously improve and iterate quickly. What stops people from doing this? They block- they don’t have access to the information they need or they are unable to get quick feedback on their changes. This talk is all about what we’ve done at Olark to unblock our team, making it easy for people to get the information they need and quickly iterate towards perfection.
Some explicit examples:
- Building your backend for querying (RPC) and sharing (AMQP) so you don’t have to know the questions ahead of time
- the Olarkacle, which lets us solve many customer problems in a minute using the above system
- Sharing application monitoring data with tinyfeedback so anyone on the team can answer “is this component working normally?”
- Testing so people can make changes without fear of dramatically breaking things (and why the only word that matters is “automated”)
- Enough logging so you can do post-mortum debugging (could you detect stuxnet?)
PASSION & COURAGE IN PROGRAMMING: EXPLORE YOUR LIMITS. CHANGE THE WORLD. HAVE FUN. – Tim Taylor
Inspired in large part by Chad Fowler’s “The Passionate Programmer” but drawing heavily on my personal experiences and challenges in software development, how I stay passionate, how I recovered from a big burn-out, keeping current with changing technology, doing your best work, etc.. I was also inspired by a recent Java Posse podcast where Dick Wall challenges developers to be more courageous.
jQuery – Beginner and Advanced – Karl Swedberg
jQuery Beginner:While the popularity of jQuery has grown tremendously in the past five years, much of its use amounts to little more than pulling in a few plugins and pasting some example code. In this session, Karl will deliver some practical advice to help beginners move from plugin paster to jQuery scripter. You’ll learn about common jQuery patterns such as object literals and anonymous functions so that you can use them with confidence in your own code. Be ready for lots of code examples and demos!jQuery Advanced:One of jQuery’s greatest strengths is its versatility. While its core concepts are easy enough for the absolute beginner to understand, at the same time its powerful toolset can meet the needs of even the most seasoned programmer. In this advanced session, Karl will demonstrate some of the library’s newer features that make jQuery more powerful than ever and suggest some best practices for improving your script’s performance, efficiency, and maintainability.
PATTERN ENABLED DEVELOPMENT – Marvin Toll
In fall 2004, Ford Motor Company chartered a team of Perl/CGI developers to implement a robust 80-table J2EE application with assistance of a single Java consultant.
The lessons learned are emerging as an application development evolution – Pattern Enabled Development – a catalyst for business innovation.
Share in the excitement as Marvin takes us on a multi-year journey across four continents in pursuit of an enabling approach to global code understandability. Hear the latest from the initial Federal Government exposure to the “Write Once, Read Everywhere” mantra. And dissect lessons learned for applicability within your sphere of influence!
ADVANCED SELENIUM RC JAVA – Patrick Wilson-Welsh
Selenium is a powerful and dangerous testing tool, whether you are using Se 1 (which leverages the browser Javascript sandbox) or the emerging Se 2 (which drives browsers externally, and natively from the OS). If you are writing Selenium RC Java code right now, it might suffer from severe brittleness of the kind described here:
http://patrickwilsonwelsh.com/?p=47
In Se 1, you can learn to adopt patterns and practices described here:
http://patrickwilsonwelsh.com/?p=332
http://patrickwilsonwelsh.com/?p=343
http://patrickwilsonwelsh.com/?p=381
By keeping the inherent Domain Specific Languages in your Se 1 Java codebases separate, by keeping the framework code DRY (Don’t Repeat Yourself), and allowing the actual test scenarios to become “wet” in the interest of expressiveness, you can drastically lower the TCO (Total Cost of Ownership) of your Selenium testing efforts.
This presentation will consist mostly of slide and code presentations, with opportunities for some mob programming of real Se test scenarios. Come prepared to read and write Java code.