by Brad Colbow
In design the user experience is paramount and getting the little details right can make a huge difference. In this presentation Brad talks about his experience designing interfaces for mobile devices and looking at how little changes can have a big impact on how we use them. You will be introduced to the world of human interface guidelines for mobile devices. What can we learn by comparing and contrasting the guidelines of these mobile players and how can we incorporate it into our apps and websites? What are the main differences in developing for these platforms and what do user experience designers need to take into account before starting a project? Should you focus on building an app or make your website mobile friendly instead?
Welcome to the world of Ruby: where the gems are deep, rough, and rarely documented! No need to fear though, in this presentation you'll learn what a RubyGem is, how they're used in Rails and Ruby applications, and of course, how to make your own. You'll see just how easy it is to share your code with others in the Ruby universe, and why creating packages is a joy instead of a burden thanks to the tools and ecosystem of RubyGems.
by Timothy Fisher and 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 known as “Fisher Pricer” which has gained recognition 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.
by Matt Stine
Have you ever wished that your local development sandbox could look exactly like production, but you've got a mismatch between your local OS and your production OS? And what about the age old "it works on my machine" excuse that quite often stems from differences between developer sandboxes?
Many have turned to virtualization, creating a machine image that can be passed around the team. But who manages the template? How do you keep things in sync? In this session, we'll explore Vagrant (http://www.vagrantup.com), an open source tool that allows you to easily create and manage virtual development environments that can be provisioned on demand and "thrown away" when no longer needed.
Our agenda will include:
by Joshua Smith
Prolog is not like any other language you are likely to come across. It is a logic driven, declarative language that has been around since the 70s. It is not OOP nor purely functional, and though it has influenced many languages it never really got popular outside of Japan. That's the bad news and most people stop here. However, the good news is that Prolog allows you to attack certain problems in an elegant and succinct way. Prolog and Prolog-like languages have found use in a variety of AI, scheduling systems, and the semantic web. This presentation is directed at novice Prolog programmers and people who may have never seen prolog. Prolog has very little syntax (more than Fourth, less than Ruby) and so that part is easy (you'll get a handout). The hard part of Prolog is that it's so different. We will cover the basics of Prolog and work our way up to a simple expert system. We will also cover how to use Prolog to consume and provide web services using the LGPL'd SWI Prolog.
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.
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.
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 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 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 Keith Elder
In this session we will explore writing an English-based rules engine that allows developers to create domain-specific rules for an application that can be easily understood by anyone. We will use a combination of C# and the DLR (dynamic language runtime) with IronRuby on the .NET platform to create a way to write, manage, and process rules for an application.
by Scott Seighman
The Java SE 7 release is the result of nearly five years of industry-wide development involving open review, weekly builds and extensive collaboration between Oracle engineers and members of the worldwide Java community via the OpenJDK project. Over the past year the OpenJDK community has continued to grow, including the addition of major vendors such as IBM and Apple. In June Oracle announced that the Java SE 7 Reference Implementation will be based entirely on the OpenJDK open source code.
The Java SE 7 release includes new features such as small language changes for improved developer productivity, a new Filesystem API, support for asynchronous I/O, a new fork/join framework for multicore performance, improved support for dynamic and script languages, updates to security, internationalization and web standards and much more.
In this session, we'll provide an overview of the these new features and highlight the major improvements.
by Amir Barylko
All of us who use Castle Windsor IoC Container know how easy is to configure and use. But registering classes and interfaces is just the tip of the iceberg with Windsor. Have you ever wonder how to start using Aspect Oriented Programming in your code? Well if you are using Windsor, you already could! Without any setup! What about creating factories that just wrap Windsor functionality? What if I told you that you don't need to write those classes, Windsor can do it for you! Join me for a session in which we will explore together Windsor facilities (like Startable, TypedFactory and Nhibernate, etc) and AOP functionality provided out of the box!
by Mike Pirnat
Python's "batteries included" philosophy means that it comes with an astonishing amount of great stuff. On top of that, there's a vibrant world of third-party libraries that help make Python even more wonderful. We'll go on a breezy, example-filled tour through some of my favorites, from treasures in the standard library to great third-party packages that I don't think I could live without, and we'll touch on some of the fuzzier aspects of the Python culture that make it such a joy to be part of.
by Jen Myers
Designers are designers and developers are developers and never the twain shall meet, right? Except – not really. There are some imaginary lines drawn around the two disciplines of design and development, but the truth is they are closely intertwined, and it can be very useful for a developer to have design knowledge and skills in his or her toolbox. This presentation will correct some commonly-held misconceptions about design, cover the basics of design from a developer’s perspective and explore how a developer can employ these principles to build clearer, cleaner and more usable applications.
Discussion: What is design, or more to the point, what isn’t it? Introducing the design myths we’re going to debunk: design is decoration, design is entirely subjective, and design is separate from development.
Myth #1: Design is decoration. Typically, design is defined as only the visual layer on top of website or application. However, design also encompasses structure, content and organization, at all levels of a project.
Myth #2: Design is subjective. True, there is difficult-to-define element of creativity to design. But, just like coding, design has rules and guiding principles, such as those dealing with color theory, typography, negative space, ratios and contrast.
Myth #3: Design is separate from development. They are different disciplines, but having each work in tandem will produce stronger products that won’t need design retrofitting later down the road. Developers can facilitate this with a bit of design know-how integrated into their communication and process.
When validating a piece of hardware instead of a piece of software, mocking and unit tests don’t help. Instead, a test framework needs to be primarily geared toward external instrument control, automated data collection, and mathematical analysis. Using Python, we’ll demonstrate an easy to use framework containing tests that configure DMMs and function generators, gather data from devices under test, then perform FFTs, phase analysis, and other data processing. We’ll also talk about a few issues that become much more significant in hardware analysis, such as adding randomness to tests while preserving repeatability, and generating highly combinatorial, device-specific tests on the fly. Finally, we’ll show the framework in action with a live test of a switch/measure system. Ben Fitzpatrick will be acting as demo minion and hardware wrangler.
11th–13th January 2012