CodeMash 2012 schedule

Friday 13th January 2012

  • An Introduction to SignalR

    by Brady Gaster

    SignalR, an asynchronous signaling library, is one of the new tricks in the Microsoft web stack. Think about the possibilities available to you in a browser when you've got constant, server-initiated conversations and real-time responsiveness from within the web browser (like chat, stock updates, publish/subscribe implementations, and so on). Brady Gaster will introduce you to SignalR and will walk through the process of setting up an MVC 3.0 application to work with SignalR using both it's Hub and Connection methodologies. From the server-side implementation of each, up through the jQuery code that allows for the web content to respond to server activity, and a brief investigation into the code SignalR dynamically creates to proxy the calls will be topics covered during this session.

    At 9:30am to 10:30am, Friday 13th January

    In Nile, Kalahari Waterpark Resort Convention Center

  • Bring the Users: Integrating UX into Your Organization

    by Carol Smith

    User Experience (UX) can be surprisingly difficult to bring into organizations. This session will give you the facts to back up your convictions. Carol will provide you with clear and convincing responses to tough questions about UX and usability methods. You’ll leave with facts about the Return on Investment (ROI) of UX, how to respond to UX skeptics, and how to turn your entire team into usability evangelists.

    At 9:30am to 10:30am, Friday 13th January

    In Orange, Kalahari Waterpark Resort Convention Center

  • Building an English-based Rules Engine Using .NET and IronRuby

    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.

    At 9:30am to 10:30am, Friday 13th January

    In Salon G, Kalahari Waterpark Resort Convention Center

  • Code Kata and Analysis

    by Jim Weirich

    A Code Kata is a simple programming exercise, practiced repeatably by a developer. Much like a musician practices scales and finger exercises to develop his musical skills, a developer will practice code katas to develop his programming skills.

    This talk will be a live performance of a simple TDD-based code Kata, followed by an analysis of the forces and choices involved in the feedback loop between the code and the tests encountered during the kata. By examining this interaction of tests and code, we come to a better understanding of how to use tests to actively affect the direction of our design. By reflecting on the process, we understand how to pick "what to test next".

    This talk is targeted for developers who have started using Test Driven Design (TDD) and feel that they don't quite "get it" yet, and are looking for guidance in the technique.

    At 9:30am to 10:30am, Friday 13th January

    In Cypress, Kalahari Waterpark Resort Convention Center

  • Introducing Heroku - The Polyglot Cloud Application Platform

    by Sandeep Bhanot

    Please select from the following options – 1) Ruby 2) Java 3) Python 4) Node.js 5) Clojure 6) All of the above If presented with the above quiz, Heroku would pick #6. Heroku provides a fully managed cloud platform that lets you develop in any of the above languages (with more on the way). With no servers, routers, load balancers etc. to manage, you’re free to focus entirely on your code. With Heroku, you can scale your application up or down with a single command, deploy your code with a simple git push command and monitor your application logs and status in real time. Interested in finding out more? Come join us for an introduction to Heroku and see how you can develop your next application in the cloud. We promise – no more quizzes. Just some code and some command lines.

    At 9:30am to 10:30am, Friday 13th January

    In Salon H, Kalahari Waterpark Resort Convention Center

  • Java SE 7: The Platform Evolves

    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.

    At 9:30am to 10:30am, Friday 13th January

    In Aloeswood / Leopardwood, Kalahari Waterpark Resort Convention Center

    Coverage slide deck

  • Making a Mockery of Hard to Test Code

    by Phil Japikse (MVP)

    Test Driven Development can be hard. Oh, sure, it's easy to write the standard bank account tests that you see in all of the demos. But what about real life? What about that service that hasn't been developed yet? What if the code you are trying to test doesn't follow Uncle Bob's SOLID principles? I will show you how free mocking tools will brighten your day!

    At 9:30am to 10:30am, Friday 13th January

    In Indigo Bay, Kalahari Waterpark Resort Convention Center

  • Polyglot Programming: The Power of Hybridization

    by Bruce Eckel

    Programming languages always seem to do some things well but not others: Python punts when it comes to user interfaces, Java’s artificial complexity prevents rapid development and produces tangles, and it will be awhile before we see benefits from C++ concurrency work. The cognitive load of languages and their blind spots increases the cost of experimentation, impeding your ability to fail fast and iterate. If you use a single language to solve your problem, you are binding yourself to the worldview limitations and the mistakes made by the creator of that language. Consider increasing your wiggle room by crossing language boundaries, complementing a language that is powerful in one area with a different language powerful in another. Language hybridization can speed development to quickly discover your real problems, giving you more time to fix them. After making a case for hybridizing your thinking in general, I will present a number of simple examples; first showing the benefits of using other languages with multiprocessing in Python and Actors in Scala, then hybridization creating a Go language JSON-RPC server and a Python client, and finally a Python web server with a web client using CoffeeScript, jQuery and Ajax. All examples are kept small so that the syntax of each new language can be explained.

    At 9:30am to 10:30am, Friday 13th January

    In Salon E, Kalahari Waterpark Resort Convention Center

  • Rapid Android development with JRuby

    by Andrew Glover

    If you aren’t building a mobile app today, maybe these tidbits of information will convince you otherwise: 70% of the world’s population has a mobile phone; what’s more, over a million Android devices are activated weekly. 1/2 of all local searches are done on a mobile device; moreover, over 90% of mobile Internet access is social media related. Clearly, if you aren’t building mobile apps today, you will be soon. In this session, I’m going to show you Ruboto, a framework that leverages the power of JRuby to enable you to quickly build and deploy Android apps. As you’ll see, with the expressiveness of Ruby and the full stack nature of this Rails-like framework, you can go from idea to device in short-order. You will leave this session with the knowledge of how to rapidly build a GPS enabled mobile app targeting Android using your existing Java and/or Ruby skills. Now it's up to you to build the next Angry Birds with your new skills!

    At 9:30am to 10:30am, Friday 13th January

    In Zambezi, Kalahari Waterpark Resort Convention Center

  • UI Automation - Testing iOS Apps from the Top Down

    by Jonathan Penn

    So, for the nth time, you fire up your awesome iOS app to run through your testing steps. Manually. Over and over. And you have to do the same tests on the iPad. And the iPod touch. On iOS 4 and then 5. And you just want to pull your hair out. Oh, and you just found a memory leak. Fix it and start over again. And again. Now we have UI Automation, Apple's official UI testing framework. You manipulate your app with Javascript through the views and controls, similar to the way you'd manipulate a web page. The scripts can drive the simulator or even the device. As part of Instruments, Apple's performance monitoring and debugging tool, you can automate your apps through all kinds of scenarios and evaluate the performance or memory usage. Its so powerful and flexible that it can look a little overwhelming at first. We'll investigate the framework through live interactive demos against a real application and walk through good practices to keep your test suite organized as it grows. A very basic understanding of iOS and Javascript programming is assumed.

    At 9:30am to 10:30am, Friday 13th January

    In Salon F, Kalahari Waterpark Resort Convention Center

  • .NET Collections Deep Dive

    by Gary Short

    The .Net framework provides a rich set of collection classes, but how much do you really know about them? In this presentation we’ll take a deep dive into the .Net 4.0 collection classes and examine which are best for what scenario and why. By the end of the presentation, you’ll no longer be happy just reaching for the same old collection you always have before, but you’ll be armed with the information required to pick the best collection for your needs.

    At 10:45am to 11:45am, Friday 13th January

    In Salon D, Kalahari Waterpark Resort Convention Center

  • A better way to get to done: NuGet Package Management

    by Rob Reynolds

    Last year a collective effort of the .NET community and Microsoft started a project to help make you more productive. Join one of the non-Microsoft core team members as he deep dives into the awesome of NuGet. Come find out what package management means for you and the bottom line. You don’t want to miss this!

    At 10:45am to 11:45am, Friday 13th January

    In Salon A, Kalahari Waterpark Resort Convention Center

  • Advanced IoC with Castle Windsor

    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!

    At 10:45am to 11:45am, Friday 13th January

    In Nile, Kalahari Waterpark Resort Convention Center

  • ASP.NET MVC vs. Ruby on Rails

    by Shay Friedman

    There has been a long debate lately about the similarities and differences of ASP.NET MVC and Ruby on Rails. In this session, Shay Friedman will walk you through the good, the bad and the ugly of both frameworks providing you points to consider when coming to choose one of them. Come and see how these two wonderful web development frameworks collide!

    At 10:45am to 11:45am, Friday 13th January

    In Salon H, Kalahari Waterpark Resort Convention Center

  • C#'s Greatest Mistakes

    by Jon Skeet

    C# is a fabulous language. A lot of care has been paid to its design, and the specification is precise and well-written. It’s pragmatic and powerful, giving some of the features which make scripting languages terse while maintaining the benefits of static typing. So what’s not to like? Well... nothing’s perfect. In this session I’ll explore some aspects of C# which perhaps took too much legacy from C++ and Java, some “gotchas” from newer features which can cause pain if you’re not aware of them, and some aspects which are simply not quite as smooth as they might be.

    At 10:45am to 11:45am, Friday 13th January

    In Salon G, Kalahari Waterpark Resort Convention Center

  • Dealing with Information Overload

    by Scott Hanselman

    As developers, we are asked to absorb even more information than ever before. More APIs, more documentation, more patterns, more layers of abstraction. Now Twitter and Facebook compete with Email and Texts for our attention, keeping us up-to-date on our friends dietary details and movie attendance second-by-second. Does all this information take a toll on your psyche or sharpen the saw? Is it a matter of finding the right tools and filters to capture what you need, or do you just need to unplug. Is ZEB (zero email bounce) a myth or are there substantive techniques for prioritizing your live as a developer? Join Scott Hanselman as we explore this topic…perhaps we’ll crowd-source the answers!

    At 10:45am to 11:45am, Friday 13th January

    In Aloeswood / Leopardwood, Kalahari Waterpark Resort Convention Center

  • Developing Enterprise Mobile Apps

    by Sohil Shah

    This talk will cover architecting and implementing an Enterprise Mobile App. The development will be done using OpenMobster, an open source platform for mobilizing cloud services. It will involve writing a Sync App. It will cover how to write the Cloud side channels to expose the Enterprise backend. Then on the device side this data will be available for access in offline mode. As the data changes on one device, the Sync Engine will automatically push it to the Cloud and other devices using that piece of data.

    You will also learn how to use the cross platform Java API for performing Push. Push is the mechanism used by the Cloud to notify the device of some change that may have occurred on the Cloud. The Java API abstracts the low-level details of Push associated with iPhone and Android.

    At 10:45am to 11:45am, Friday 13th January

    In Zambezi, Kalahari Waterpark Resort Convention Center

  • Get the Tech Out of Your Cukes

    by Jeff Morgan

    Cucumber is a great tool for writing executable specifications. When written well they provide the basis for a team's understanding of the specification. When they run successfully they provide a confirmation that a feature is done and working properly.

    The problem is that most Cucumber features are written poorly. They often include technical terms or a lot of unnecessary details that hide the behavior we are trying to describe. This problem is so profound and pervasive in the industry that some are beginning to believe that is is not possible to describe behavior well with Cucumber.

    This talk and hands on demonstration will bring attention to typical smells found in cucumber scenarios. Once we discuss a smell, we'll look at an example that exhibits that problem and then refactor the code and feature to clean it up. Along the way we'll also introduce some common design patterns that can be applied to keep your code nice and d.r.y.

    At 10:45am to 11:45am, Friday 13th January

    In Indigo Bay, Kalahari Waterpark Resort Convention Center

  • Have Fun the Rong Way

    by Matt Yoho

    Rong is a client-server Pong implementation written in Ruby that hopes to take a whack at your office productivity. Though Pong itself is a relatively uncomplex game, it allows a variety of interesting game programming problems to be explored when constructing the game in a robust manner as a client-server application. We'll talk through the structure of the implementation, the involved libraries, including libraries supporting 2-D game development in Ruby, and the techniques involved in creating a responsive network-based game.

    At 10:45am to 11:45am, Friday 13th January

    In Cypress, Kalahari Waterpark Resort Convention Center

  • Ubiquitous App development with PhoneGap

    by Andrew Glover

    You’ve been tasked to build an app for your company that does x,y, and z. You’ve also been informed that it needs to work on iOS and Android. You think “no problem!” -- that’s what HTML 5 is for! But then you find out that the app needs native features like GPS and a camera. What are you to do? PhoneGap is an innovative framework that allows you to build mobile apps in HTML 5 that have access to device features reserved for native apps. Simply put: with PhoneGap, you can build HTML 5 apps that can use device features like geolocation, the accelerometer, and even a camera, for example. In this session, you’ll learn how to build a web-based mobile app using HTML 5 and JavaScript that is able to live inside the PhoneGap container and take advantage of native features, such as GPS. You’ll see that with PhoneGap the same web app can then be deployed onto an iOS device and an Android one. One app. Multiple device platforms. Job done.

    At 10:45am to 11:45am, Friday 13th January

    In Salon F, Kalahari Waterpark Resort Convention Center

  • Keynote: How We Got Here, And What To Do About It

    by Barry Hawkins

    If you are developing software and getting paid for it, software process is part of your life. Even the absence of a defined process is a process of sorts. For over forty years the world of software development has been churning through forms of process, with each successor disclaiming the validity of its forebears to the cheers of those liberated from the oppressive chains of process past.

    But if the latest acclaimed process is the answer, why do so many groups slough off what seemed to be working well a scant few years ago in favor of yet another choice? Furthermore, the time between process changes gets shorter and shorter. Waterfall reigned for ages, then RUP, then Scrum and XP, and now Lean/Kanban, each enjoying successively shorter seasons of favor as the de facto choice. Process is but a framework to facilitate the collaboration of a group of people to produce a desired outcome. It is not a substitute for culture, technical excellence, discipline, and product strategy.

    In this keynote, Barry emphasizes the need to continue thinking critically about the processes and practices we embrace, accounting for the context in which they exist, and the importance of reflection and refinement at both the organizational and personal levels

    At 12:00pm to 1:30pm, Friday 13th January

    In Keynote Dining Hall, Kalahari Waterpark Resort Convention Center

  • A Few of My Favorite (Python) Things

    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.

    At 1:45pm to 2:45pm, Friday 13th January

    In Salon D, Kalahari Waterpark Resort Convention Center

  • Android Pro Tips

    by Michael Pardo

    Android has made mobile development easy and accessible to thousands of developers, but what makes the best Android developers stand out? This discussion covers the tips and tricks that professional Android developers use to make featured apps.

    At 1:45pm to 2:45pm, Friday 13th January

    In Nile, Kalahari Waterpark Resort Convention Center

  • Be the Input: Kinect With Your Computer.

    by Ben Barefield

    Last year Microsoft released the Kinect, a completely new way of interacting with the computer that turns the user’s body into the input device. Using XNA as a platform, you will learn about how the Microsoft Kinect SDK works and how it can be used to control the computer. You will also learn to overcome the new challenges the Kinect introduces into building a user interface in this session. The Kinect is just the beginning of “touch-free” computing. The techniques you will learn in this session will give you a jump start on creating truly natural interfaces for the touch-free future.

    At 1:45pm to 2:45pm, Friday 13th January

    In Salon A, Kalahari Waterpark Resort Convention Center

  • Beautiful Front End Code with Backbone.js and CoffeeScript

    by Chris Nelson

    It's time to write client side code we can love every bit as much as our server side code. After years of missteps and bad ideas, things are finally taking shape to let us do it. Coffeescript provides a beautiful syntax for writing javascript that causes the noise to fade away and our intent to shine through. Backbone.js gives us an elegant MVC framework that provides just enough structure and guides our client side code towards the kind of clean, reusable codebase we are used to from server side frameworks. Combining these with practices we know work such as Test Driven Development, there's no longer any excuse at all for ugly front end code. In this session I'll share my experience writing real applications this way and show how these excellent technologies fit together.

    At 1:45pm to 2:45pm, Friday 13th January

    In Aloeswood / Leopardwood, Kalahari Waterpark Resort Convention Center

  • C# Stunt Coding: I Dare You to Try This at Home

    by Bill Wagner

    Do you want to write code that adapts to code that calls it? Write C# libraries that perform actions you never thought possible in a statically typed language? This session will show you coding techniques based on Expression Trees that enable you to write meta-code that examines the code that calls it and adapts its behavior based on the caller. You’ll learn to write general purpose algorithms you never dreamed were available in C# or .NET. If your mind has been blown enough yet, we'll go into the Roslyn API set and build code that builds more code to do even more interesting and crazy things. All in the name of good, never evil.

    At 1:45pm to 2:45pm, Friday 13th January

    In Salon H, Kalahari Waterpark Resort Convention Center

  • CI++: Going Beyond Continuous Integration

    by Alex Papadimoulis

    Continuous Integration has become a proven practice for improving software quality by ensuring that the codebase is _integrated_ (validated, compiled, and unit tested) on a _continuous_ (on check-in or scheduled) basis. It’s a great first step on the road to quality production code, but it’s just that: a first step. Beyond the gates of continuous integration lies a path filled with quality quagmires, from countless configuration files to database script disasters to deployment automation. While many developers will shrug their shoulders and say that it’s not their problem, the true professionals will not only take an interest in how their code makes it through production, but advocate for an end product that reflects the quality of their work. In this technology-neutral talk, we’ll explore how to take the foundation laid by continuous integration all the way through production, discuss how to deal with both the technical challenges and the people challenges (management, operations, etc), and show how a single developer can make a huge impact on the software development organization.

    At 1:45pm to 2:45pm, Friday 13th January

    In Indigo Bay, Kalahari Waterpark Resort Convention Center

  • Design Patterns for Parallel Programming

    by Michael Slade

    You have started developing applications that take advantage of today’s multi-core processors. Come learn how to take your parallel programming skills to the next level. This session will focus on design patterns in parallel programming. Come learn about Parallel Loops, Fork/Join, Producer/Consumer, Map/Reduce and other design patterns used in parallel programming.

    At 1:45pm to 2:45pm, Friday 13th January

    In Salon G, Kalahari Waterpark Resort Convention Center

  • Developers Can’t Design (and Other Completely Untrue Design Myths)

    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.

    At 1:45pm to 2:45pm, Friday 13th January

    In Orange, Kalahari Waterpark Resort Convention Center

    Coverage slide deck

  • Dynamic .NET Demystified

    by Keith Dahlby

    It's been a few years since dynamic .NET went mainstream with the promotion of the Dynamic Language Runtime into .NET 4, but it's still largely viewed as a fringe technology. This session aims to change that by reviewing what the DLR is, diving into how it works with C# 4 and Visual Basic 10, and looking at some interesting applications of the DLR. In particular we'll discuss C# interop with IronPython and IronRuby; Clay, a dynamic library used by Microsoft's Orchard CMS; and simplified data access through Microsoft.Data, Simple.Data and Rob Conery's Massive.

    At 1:45pm to 2:45pm, Friday 13th January

    In Salon E, Kalahari Waterpark Resort Convention Center

Schedule incomplete?

Add a new session

Filter by Day

Filter by coverage

Filter by Topic

Filter by Venue

Filter by Space