Session 2013 (86)
Children categories
The Single Responsibility Principle states that a class should have one (and only one) reason to change. Classes that don't adhere to this principle can result in tightly coupled spaghetti code that leads to more bugs and higher maintenance. We'll look at how to identify these classes by using some heuristics and looking for "code smells", and we'll clean them up using refactoring tools, design patterns, dependency injection and even aspect-oriented programming. Examples will be in C#, but the concepts can be applied to a variety of languages.
The Windows Phone 8 SDK brings along many new features that could benefit your next Windows Phone app. Come take a look at several of these new features including: Tiles, Changing Lock Screen & Notifications and Speech Recognition. We will also discover the additional tooling support and templates covered with this release. This is definitely a session to get you up to speed quickly with this new and exciting platform.
Carl Franklin tells the story of how he came to be a software developer, an Internet pioneer, a teacher, and a podcaster and reflects on where we've been to try and figure out where we're headed.
Can you hear me now? Move over Siri, here comes an army of speech-enabled mobile applications on Windows Phone. Mobile applications are not always easy to work with due to the small screen and small on-screen keyboard. Using our voice is natural form of communication amongst humans, and ever since 2001: A Space Odyssey, we’ve been dreaming of computers who can converse with us like HAL9000. Thanks to the new Microsoft SDKs for voice recognition and speech synthesis (aka text-to-speech), we are now one step closer to this reality. This session explores the development techniques you can use to add voice recognition to your Windows Phone applications, including in-app commands, or even voice commands that can be used in the phone to launch your app. We’ll also see how your apps can respond to the user via speech synthesis, opening-up a new world of hands-free scenarios. This reality is here, you’ll see actual live demos with speech and you can now learn how to do it.
Join Richard Campbell as he tells his story of software, hardware and charity that ultimately has led him to the Humanitarian Toolbox (humanitariantoolbox.net). The Humanitarian Toolbox is an open source initiative to build software for disaster relief – both for the Non-Governmental Organizations that are involved in disaster relief, the citizen volunteers that donate their time to assist during a disaster and the disaster victims themselves. Richard will take you along on his journey of experiences with technology over several decades to show how you can help change the world with software.
Felix Baumgartner jumped from over 128,000 feet to break a world record for sky diving. An image was posted to a Facebook account after his landing and in 40 minutes it had logged over 216,000 likes, 10,000 comments, and 29,000 shares.
The Pottermore website, digital home to one of the world’s greatest known Wizards, saw a billion (with a “B”) page views just two weeks after it launched and was signing up new users at a rate of 25,000 per day.
Whether you need this level of instant scalability, or you are simply wanting to be ready for it when your own idea takes off the cloud allows you to create solutions that can scale easily and have high availability, however, these do not come automatically. You need to know how best to leverage a cloud platform to achieve these capabilities successfully. This presentation focuses on architecture patterns and coding techniques that help provide reliable cloud solutions. While the content for this presentation can be applied to many cloud platforms the examples will be given using Windows Azure.
Many organizations are delivering software fast enough that fully automated deployment is a must, not only for development but also in production. While deploying application code is fairly straightforward, automating deployment of database changes represents a significant technical challenge and often requires organizational jujitsu to fully implement. Many assume that the gains to be made from automating database changes can only be realized in a greenfield project, but in this talk we will describe how to implement database automation for a legacy code-base with many complex interdependent applications. Beginning with an overview of the open source and commercial tools available to automate database deployments, we'll go on to describe roll-out strategies and supply tips for overcoming road blocks and common pitfalls.
All of us have experienced, and had to answer for, unexpected outages at one point or another. And sometimes the rumors that surround them are even more damaging than the actual event (I heard we lost all the moneys!) The problem is, most of the time we don't even know what normal looks like for our applications. How many user normally login in at 10am on a Wednesday? How quickly does the authentication service normally respond during peak load? For that matter, what does peak load normally look like? And what effect does a deploy normally have on website responsiveness? So we generally end up deploying something (a cron job or Nagios script) that is written to catch that very specific outage event. And all is good… until the next outage. There is always a next outage.
At this point metrics-driven engineering steps in and says "MEASURE EVERYTHING!" Tools like Etsy's Statsd and Graphite fuel this approach by allowing engineers to fire events within their applications (e.g. tracking logins, response times, deployments, etc.) Operations can then create dashboards with the resulting metrics. And this is great, but pretty dashboards may not help you avoid that next outage unless you hire someone to watch them all the time (mmmm… pretty dashboards are pretty.) To solve this final piece of the puzzle, LivingSocial built a monitoring framework called Rearview that sits on top of these technologies. With this application and minimal coding, engineers can create automated monitors that are always watching the data for situations that are specifically not normal. This metrics-driven devops approach shifts the paradigm from "seeing the data" to "interpreting the data" and allows anyone to MONITOR ALL THE THINGS!
The whole world (or so it seems) is moving towards Claims Based authentication. This session is an overview of what Claims Based Authentication is, as well as various methods to provide and consume claims providers within .Net applications.
Do you or your company have a need for a mobile application but no mobile developers or afraid of mobile development? No worries, with the use of commonly known web technologies such as HTML5, JavaScript, and CSS3 in conjunction with PhoneGap you will be able to effectively and efficiently create a cross-platform Single Page Application (SPA).
We will begin with a brief overview of PhoneGap including its capabilities, shortcomings, and a discussion on when to use PhoneGap over creating a native application. We will discuss the importance of creating an application that has the feel of a native application with a fast and fluid experience using SPA technologies.
Diving deeper into mobile application development we will create a simple HTML 5 application that can be consumed by a PhoneGap container. Additionally, we will walk through the creation of the various container applications for Android, iOS, Windows Phone/Windows Store App.
Somehow Windows Azure has this reputation of being a .NET platform. Not true! In this session, we’ll dispel this myth quickly. We’ll see how easy it is to run Azure apps written in PHP, Java, Python and Node.js. We’ll do this from the cloud, from an emulator, and even from non-cloud apps (I know, right?) And… We’ll endure the presenter’s unending creation of puns.
In this talk, we'll show why everyone sucks at giving feedback, looking at why we have a knee-jerk reaction at first. We'll talk about how to give and receive feedback well. We'll look at these three things: soliciting good feedback, taking feedback well and giving great feedback. By the end, you'll know how to use feedback to move forward and make everything you work on better.
Distributed computing is a reality that most developers have to deal with these days. The mobile form factor is huge! While the platforms (iOS, Android, Windows 8) are radically different, the method of delivering data to applications on these devices doesn’t have to be. How do you create one set of back-end services that can provide and consume data from all three of these platforms?
Companies have realized that one of their most valuable assets is their data. But how can that data quickly and easily be put in the hands of the people who can utilize it?
The answer to both of these questions can be found in RESTful web services. In this session you learn how REST services work, where their interoperability comes from and how to quickly build your own rest services using Microsoft’s ASP.NET Web API framework.
Trying to pinpoint performance issues in any application can be complicated. ASP.NET applications often tend to lend even more difficulties when it comes to understanding the true performance bottleneck in application performance. In this session we will start with a quick overview of the methodology to dissect an ASP.NET application to identify performance issues and identify methods to ensure that your testing is truly showing results and not a false-positive. The second half of of the session will be a hands-on demonstration using two different tools for performance diagnostics, Fiddler to try and identify if the issue is server side, #of requests, or otherwise, and ANTS profiler to truly dig into the server side.
Metaprogramming. It's awesome, right? Powerful? Maybe a little scary?
Let's kick things up a notch. If writing code that writes code is powerful, what's hacking the life of the programmer writing the code? That's got to be an 11 on the meta-meter. *At least.* We'll talk about some of the bad assumptions we've made, lies we've bought into, and why we have the most awesome job ever.
Open source tools. We all use them. Whether it’s an entire toolkit, a framework that meets some specific needs, or a simple custom control from NuGet, CodePlex, or CodeProject, it is hard to ignore the opportunity to improve our rate of development while learning new things from open source projects.
But what does “open source” truly mean? Especially when working in a professional or corporate environment, what are our rights and limitations as open source consumers to use, modify, and redistribute these tools. Often that depends upon the authors' own decisions regarding project licensing.
In this one-hour session, we will review a few of the core principals of open-source development and consumption, compare and contrast some of the more popular licenses in use today, and discuss both how to use the open source works of others and also how to properly license your own.
Be afraid. Be very afraid. For you are about to enter the mysterious and foreboding land of regular expressions. A land of strange-looking hieroglyphics. A land of many flavors and implementations. A land where its devotees possess seemingly magical powers over text. But be afraid no more, for you have a guide. And your guide will show you the way through this land.
In this session, we'll take a whirlwind tour of the features found in most regular expression implementations. Then we'll dive deep. We'll take a peek *inside* a regular expression engine. From character literals to character classes, from backreferences to look-around, you'll see every step a regular expression engine takes when it parses text. By the end of this session, you'll be able to *think* like a regular expression engine.
12 technologies. 22 distinct adventures. One application. You choose how to build it. We help you get there.
The relentless Page Refresh has been delivering its blinding white flash to your users and consuming valuable bandwidth for years. Does your team have the Backbone to Knockout the Page Refresh? You can engage the hubs of SignalR, broadcast with Socket.io, or maybe even Pusher. Will your server stack be up to the challenge? Wield frameworks like Node.js, ASP.NET MVC and WebAPI, or Rails. You will practice hours in the dojo of Heroku, and explore Azure skies to complete all of the paths in this adventure. Can you step outside of your comfort zone and mash some code? Are you up to the challenge?
In this session, you will embark on a “Choose Your Own Adventure”-style project where you will make decisions as you develop a Single-Page Application. You will make technology choices that include JavaScript or CoffeeScript, Backbone or Knockout, ASP.NET or Rails or Node.js, and Heroku or Azure. When you complete your adventure, you will have a fully-working application built with the technologies of your choosing. The best part is, you can keep coding and recoding until you have not one but many incredible implementations of the Single-Page Application.
More Info at: ChooseYourOwnApplication.com
This session will not teach you why we are on Earth, but it will teach you how to find out where we are on it. Looking for the user? Just find the phone. Thanks to standard built-in Location Services and hybrid positioning hardware, every modern smartphone knows where it is. In this session, ActiveNick shows you how to build a truly “smart” phone application by adding Location Intelligence Services (LIS) to it. Using a variety of tools for iOS, Windows Phone, jQuery and Android, you will learn how to locate the device in the world using the phone GPS and other Location Services, display maps and manipulate them with touch gestures, geocode addresses into lat/long pairs, perform proximity searches against various geospatial data stores and display the results on map and more. We’ll discuss the various mapping technologies, SDKs and APIs across various mobile platforms, native & web, and explore how they apply within a distributed architecture that integrates smartphones. Location Intelligence is a natural extension of mobility and you cannot ignore it, so why would you ignore this session?
WordPress began as a tool to build blog sites, but it has evolved into a general purpose content management system. WordPress powers a significant amount of the world's top websites, and an even larger amount of new websites. With its focused core functionality, a WordPress site is easy to get up and running. A vast ecosystem of plugins, widgets, and themes, makes it easy to customize Wordpress for almost any application you can think of. In this session, you'll learn how install Wordpress, how to use its core functionality, and how to get started writing your own plugin.
Gain a knowledge of SharePoint 2013 features for creating, managing and maintaining enterprise content.
Cancelled
So, you need a Content Management System on the .NET framework. While your business might spend wheelbarrows of money on a platform that is powerful and extensible, your personal site would abandon extensibility for a free, open-source solution. But what if we had an option that was free and powerful and extensible? We do: Orchard CMS. Since we already know that Orchard is free, in this session we will discuss the power of Orchard’s CMS engine. You will learn how to build new modules for the Orchard platform, allowing you to extend functionality as you see fit to meet the needs of your site, your business, and customers.
While many of us dream of jobs in game development, the methods for producing quality games that perform in real time are much different than the methods used to produce quality productivity software. XNA Game Studio and Microsoft's AppHub give you the tools necessary to make and publish your own games for the Xbox Live Indie Games Marketplace. The session will being with a brief overview of using XNA Game Studio to create software for the Xbox 360. The session will then present the nuances of proper game design by introducing topics such as the game components, sprite animation, background music, sound effects, and threading. By the end of this sessions, attendees should possess the tools and knowledge to create simple games for the Xbox 360.
In this whole day session, we will teach you the design considerations for Windows 8 Applications, developing with WinRT as well as WinJS, using UI controls, Contracts, Lifetime management, interacting with hardware, as well as getting your applications accepted into the Windows Store.
Come on in, get strapped down, and get ready for drinking from the fire hose!
Your dream has come true! You just got hired in as a game developer for Bad Snowstorm Inc. They are almost ready to launch their new text-based adventure game, but their development team (Billy, the CEO’s son) is having a hard time keeping up with changing requirements. Billy never learned about interfaces or loosely coupled code, so your job will be to implement better practices that will make adding requirements faster than an avalanche.
This workshop is divided into two parts. In part one, you will get an introduction to Dependency Injection through an interactive exercise. You will then inherit some tightly coupled source code, and begin refactoring in response to changing requirements. You will do this by writing your own simple “Poor man’s DI” engine, because what better way to understand what it is and how to use it than by rolling your own.
In part two, we will refactor again, taking our “Poor man’s DI” engine to the next level. You will be introduced to various techniques such as constructor injection, method injection, and property injection, and their practical application into your code base. You will end the day by looking at existing frameworks like Ninject, StructureMap and Castle Windsor.
You will leave this session with a solid understanding of DI, and how to use it in your current and future projects.
Are you tired of TDD workshops that make you do boring things like calculate bowling scores and prime factors or demonstrate how to win at the game of life? If so, this is the session for you! In this TDD workshop we will be building the domain model for EverCraft -- a new MMORPG from Blizzards of the Coast. We have lots of story cards prepared covering features from combat to magic, classes to spells, and races to items. Plus, we'll be defining some of these cards during the session in case you want that +9 knife of ogre slaying or enjoy casting magic missile at the darkness.
This workshop is language agnostic and for all levels of developers. The focus is on TDD and emergent design but pair programming will be covered as well. The only requirement is that you bring a laptop and that you be able to test-drive you code with your language of choice. When you are done you will emerge a better programmer for the experience but there is small chance you will have a craving for Cheetos and Mountain Dew.
DevOps and Continuous Delivery are a set of methodologies, mindsets, and principles that all share a common goal: release better software faster and more reliably. It’s about bringing together the entire development organization -- developers, operations, QA, project management, etc. -- to make the process of going from concept to production as smooth and predictable as possible.
There are whole lot of specific techniques available to help accomplish these objectives, but not everything works for every organization. While not every application needs 100% test coverage, and certainly not every organization can go to production multiple times a day, understanding automation and frequent deployment -- and how they can be used to benefit development organizations of all shapes and sizes -- will be a key takeaway of this workshop.
In this workshop, we’ll also explore these techniques, discuss their implementation, and do a number of hands-on exercises to experience DevOps and Continuous Integration first-hand. Each participant will have their own (or can optionally share) a pre-configured server hosting a number of familiar tools. By the end of the workshop, each participant will learn how to leverage these various issue tracking, source control, database, and automation tools to build a robust and flexible DevOps / Continuous Delivery workflow.
All that's required to participate is a laptop with a modern web browser. A text editor and an ability to connect to a Subversion or Mercurial repository would be helpful, but not necessary. An ability to whip up awesome coding solutions to simple problems is not at all needed, but may earn you some bragging rights.
In this workshop, I will provide a base website and we will make a truly remarkable user experience by implementing ARIA roles, states and live regions as well as making sure the site complies to WCAG 2.0 AA standards for accessibility.
JavaScript is a unique language with unique challenges. Learning how to practice TDD in such a rich and interactive environment is a skill that takes much practice. Whether it's dealing with the asynchronous nature of JavaScript and Ajax, or it's working with user events and modifying the DOM, getting automated tests built around a JavaScript application is definitely not for the faint of heart.
This workshop is focused on how to meet the challenges of Test-Driven JavaScript Development. We'll tackle this complexity through a series of coding exercises, with most of the time spent in the code (some reading is required though). A basic knowledge of TDD is expected before starting the class, although we'll review the core concepts. All exercises can be completed through the Cloud9IDE, although you may use your personal editor of choice if you prefer.
You're a developer with years of experience creating amazing web or WinForms applications, but you've just been assigned to a *gasp* WPF or Silverlight (or WP7) project! Because you're an expert developer, you're expected to love this new technology and be productive from day 1. You click File | New | WPF (or Silverlight) project and feel completely lost as you open the XAML files. Not only that, but you have to contend with new patterns like MVVM! Trust me, it's not as bad as it appears and XAML is NOT as hard as you think. This hands-on workshop will cover the things you need to know to be successful on your first XAML-based project.
While Visual Studio is an amazing IDE, it clearly lacks the power of the world's best text editor! Whether as a stand-alone editor or as a plugin to your favorite IDE (Visual Studio included), learning how to use Vim will change how you work. You'll learn how to install, configure and use this amazing text editor. You'll understand the difference between Insert, Ex and Command modes and how to stop the incessant beeping you're sure to encounter when you first try this amazing editor. :wq
Passbook is new open standard developed by Apple which allows users to quickly access scannable barcodes and other information useful for real-world situations from their iOS devices. These situations include scanning boarding passes, redeeming coupons, or showing a membership card among other available actions.
In this session we will learn what a Passbook pass is made up of, design guidelines for a pass, and how to create a pass from within your own application. We will also touch on how these passes can be updated and what is needed to support a pass from your own server including the creation of passes and how to support push notifications. This session will show how you can interact with Passbook from your server using Ruby and how you can interact with Passbook from your iPhone applications using Passkit.
This presentation will include both a slide show and demonstration of how hosting multiple HTML5 applications that utilize local storage using the same origin introduces serious security issues. A strategy to avoid these security issues while allowing applications to be co-hosted will also be presented and demonstrated.
As a developer, your image and your mind are your product. We’ll discuss concrete activities and skills that transform average developers into standouts. You'll learn why developers can't afford cable, the importance of making the hang, and ways to improve your luck surface area.
Phones are personal devices, so users expect their data to be local. But they are also collaborative devices, so users expect them to talk to each other. An occasionally connected Windows Phone application is the best of both worlds. It stores personal data locally for instant access. And it synchronizes with remote services for collaboration.
Correspondence is an open source library specifically designed to make it easy to build occasionally connected applications. When you design your data model using its DSL, it generates both a local database and a network protocol. Then it gives you an object model to code against that seamlessly bridges the two worlds.
Not only will I demonstrate a collaborative Windows Phone application, but I’ll teach you how to write one. You start with the data model, written in a Domain Specific Language called Factual. Then you expose that model through a View Model layer. Data bind your View Model to the UI, and your application is complete.
When the user makes a change, it is both stored to the local database and published to the server. Changes made by other users are automatically pushed to the phone. Through the magic of data binding, the user is instantly notified of the change.
Curious about genetic algorithms? In this presentation, Rubywarrior will be leveraged to provide a pleasing and easy-to-understand example of how genetic algorithms can be used to solve real software problems, including chromosome setup, evaluation, and selection.
One of the hardest aspects in programming is understanding what the current code base is doing. Many tools and practices are geared toward creating code that is readable and understandable, but one tool that is often overlooked is the programming language, itself. Languages have syntactical elements, construction rules, operators, and paradigms that may aid or hinder your ability to draw conclusions about the code. This talk will show several C# and F# solutions to common programming problems, and compare how well each language enhances the ability to draw accurate conclusions about the code.
Cancelled
CSS Scaffolding systems have some a long way since Blueprint and 960.gs. Bootstrap extends beyond the basic grid system to provide a beautiful and powerful design framework, and its power increases tenfold when combined with LESS, the dynamic stylesheet language. Spend a session learning about simple, reusable, variable-based CSS with LESS, and the beautiful, responsive designs that you can build off of it when combined with the Bootstrap framework. When you walk away from this session, you too will want to Bootstrap All the Things (with LESS).
So you have a good idea and/or experience with the basics of Windows 8 Store App development, but maybe you’re still wondering what you’ll run into while making apps. Things like handling app state management (PLM), handling changes in view state and orientation (snapped, filled, full, rotated), handling errors, progress controls, device integration (geolocation, camera, microphone, accelerometer) and background tasks. Come check out this session full of examples that walk through these scenarios and patterns to use for success.
I will cover the lessons I learned in trying to get a Fortune 500 company to stop thinking of just the desktop and start developing all web solutions mobile first. I'll cover getting buy in from management to getting the developers and designers on board.
Your company or client may not be made up of 10,000 employees, but the lessons I have to teach will work on for anyone.
You unit test, even integration test your application. You get to 100% code coverage, but when you finally deploy your application, the system is broken! How can we have full code coverage, but our application still breaks?
In this session, we'll look at functional testing with ASP.NET MVC and how we can design our system for testability. We'll also look at how we can write functional tests that don't break easily, and see how we can finally ditch the test recorders.
How do you design a near real-time dashboard for a continuous process, containing summary data with detail drilldown? Oh, and do it with volatile data, large datasets and without impacting production applications...
During this session, we will share a high level conceptual overview and demo of one solution successfully implemented.
The majority of applications built on Java Platform in the past decade have been single-threaded. And the easiest way to address performance issues was to add a faster CPU. However, that option is no longer viable as the hardware industry has shifted from single-core processors to multi-core processors. Traditional concurrent development on the Java Platform requires in depth knowledge of threads, locks, and queues (oh, my!). In this session, I will demonstrate several concurrent processing techniques including Fire & Forget, Fork-Join, and Asynchronous Web Services using the Java Concurrency Library, the Akka Framework and the Spring Framework.
Whether you need a way to communicate between processes, spin tasks off to background workers, or enable a widely distributed system, a service bus backed by message queuing could be a great tool for you to use. However, sifting through the "what's possible" to "what's practical" can be daunting. In this session we'll discuss different tools and patterns and weigh their pros and cons. We'll discuss and walk through practical approaches to example challenges such as inter-process communication, work distribution, and API integration using multiple languages, including Ruby, Erlang, and C#.
In the real world we don’t aspire to fit a stereotype, so why are we doing this in our profession? In this fun, fast paced session, we’ll learn to step outside of our comfort zones and rapid prototype in live HTML wireframes using a customized toolbox. We’ll examine a wide range of tools that can be used to create and iterate through our designs and walk through the process of creating a responsive prototype using:
- Git
- Foundation Framework
- Chrome Developer tools
- Visual Studio
- .Net MVC
The team should be great all the time, not just when you're there. They should work together in their own way, with their own personality & style. A leader needs to allow these things to happen naturally, though occasionally they need to step in and give a little shove to help things along a little faster. Learn how to be a member of the team, while remaining in control, to help smooth the path to team success.
With the release of Windows 8, the world of desktop development has become a bit more interesting.
In the beginning, we had static websites. Then we invented AJAX, and our websites became alive with dynamic content. Now we're getting to a point where we'd like to have our web applications work in cool asynchronous ways across all of it's connected users. The typically example would be a chat room. You send a message to the server, and the server broadcasts it to everyone who's in your room. In the past, in order to build a system like that took time and code. How about dynamically refreshing content in your application based on events that happen on the server? SignalR is a library that assists you in building real-time, multi-user interactive web applications. In this talk, we'll discuss the current state of the real time web, and then WOW you with quick, easy, and code-filled demos showing off the power of SignalR.
Explosive growth; millions of users; global 24/7 usage -- it's a dream wished by many and a nightmare experienced by few. It's the Web-Scale, and it's redefining how we create and deliver software. If a run-of-the-mill enterprise application is like a Honda, then a Web-Scale application is like a Formula 1 car -- engineering and maintenance challenges included. One missed detail, and you could lose the race, or worse, hit the berm and end up as a tangled-mess of scrap metal.
But unlike Formula 1, there are no pit stops or scheduled maintenance windows. Changes to Web-Scale applications must be error free and have no down-time... unless you want to face a mob of angry, demanding users somewhere in the world, and an even angrier mob of managers and investors. In this talk, we'll discuss various deployment strategies, scalable delivery, and how a few real-world Web-Scale organizations do it, from AllRecipes.com to Twitter, and even the monstrous Google.
Android is a very powerful framework that has just about everything you'll need out of the box. For everything else, Android includes a sophisticated and powerful framework for creating the crazy UI you have in mind. Learn the three main methods we use to create custom views, and all the tips you'll need to write code that fits right in with the Android Open Source Project.
In this presentation we will go through how to build a single page web application using the Ember.js framework for your web page, backing it with Sinatra for the web server API.
Dilbert resonates because of corporate noise: noise from mixed messages, confusing politics, broken processes, fractured strategy, competing priorities, and dysfunctional corporate behavior. Based in the organizational health philosophies of Patrick Lencioni, TAC4 Solutions developed a methodology wherein we found our own Sound of Clarity that cuts through this noise and pulsates like a drumbeat inside us. This Sound guides every decision, motivates staff, and clarifies communication around what is most important. The Sound of Clarity is a multi-legged stool that requires a cohesive project team; a clear focus on core values and strategic vision; an over-communication of those values and vision; and accountability up and down the organization that incorporates the core values and strategic vision into the company’s human systems. While an individual project only has control over their scope, project health can influence organization-wide health by strategically and intentionally dedicating to simple healthy behaviors.
An intensive hour that goes beyond Win 8 programming basics. Topics include application life-cycle, background tasks, Live Tiles, Secondary Tiles, Toast, Contracts, and more.
Attendees of this session will leave with good understanding of accessibility on the web and will have many action items they can implement quickly, easily, and immediately.
You can't open a magazine (electronically or otherwise) without seeing information about Big Data today. This presentation aims to introduce the topic of Big Data, but with the twist that it's by a developer for developers. In this session, we look at A Coder's Introduction to Big Data. We will discuss the topic and some of the key numbers that make it so important today, then we'll get up and running quickly to discuss the WordCount examples ("Big Data's Hello World Application") in multiple Big Data toolsets. After this short introduction, I will show you how to burst to the cloud with a multinode cloud environment and process data using HDFS and MapReduce. The software used in this presentation (not the cloud providers themselves) will be Free and Open Source Software available to anyone with an Internet connection. So come join us... kick back and enjoy as we dive into Big Data. I promise you won't need the courage of a Lion to get through it. =)
A couple of years ago I was a .NET developer writing enterprise MVC apps. That was boring. Now the majority of my app is JavaScript, I use Ruby on Rails as a database interaction layer, I write Coffeescript, HAML and SASS and I wear sandals to work.
In this intro level talk we’ll cover the various tools like Coffeescript, templating, and SASS that comprise my Ruby/JS tech stack. We’ll talk about how I switched to Ruby from .NET and what resources I found most helpful. Then we’ll look at how Rails can be a great back-end tool for building complex JavaScript apps. To round out the discussion we’ll look at how you can use cloud computing to deploy and manage Rails apps. As a bonus we’ll talk about a bunch of great gems that will make solving everyday development problems a breeze.
You’ll leave this talk having a basic knowledge of how to start using Ruby on Rails and with a list or resources and tools that will make your life easier.
Why would you want to build both your wesbite and then repeat much of the same code to add on an API?
Virding's First Rule of Programming says "Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang." This is funny, and often true, but why is it true? Why is Erlang unmatched in its sweet spots of reliability, concurrency and distribution? Other languages borrow bits and pieces from Erlang, but none come close. Why? Because it's not the language that matters.
The great power of Erlang bubbles up from the Erlang Runtime System (ERTS) which in many ways is more like an operating system than a language runtime. In this session we will explore the design, the internals, and the exposed primitives of the ERTS. In our dive we will pretend we are Microsoft building an Erlang-inspired operating system (which they are). We will see why it's that big of a job. [Psst: as a bonus we'll show Erlang running on a Raspberry Pi.]
Many people chose the field of Computer Science because they love playing computer games. But it can be difficult to write a game, requiring heavy graphics skills and perhaps knowledge of physics engines and such. And you typically have to learn many different skills and languages if you want to make your game available for Windows 8 and Android and iOS and Windows Phone. In this session, we have a solution for the time-constrained developer who still loves to make computer games. We will demonstrate tools like Scirra's Construct 2, which allow you to build games and export them to multiple platforms. You will leave able to get started building professional-looking cross-platform games.
Stop! Don't write one (or another) line of code yet, is a talk based upon Lean Startup principles (by Eric Ries) that would discuss the steps that should be taken before one line or your next line of code is written.
In my experience as an entrepreneur and as the Entrepreneurial Director for GLI's EnterpriseCorp, where I see hundreds of companies per year, one of the main problems we see and try to solve for companies is the building of a product nobody wants; inherently this is a result of keeping one's head buried in code and not engaging with customers. I will use insight via case study and the methods involving lean principles that we leverage everyday to help manage not just projects but companies towards greater success.
The goal of the startup is to discover through experimentation what customers want and will pay for as quickly as possible; there are many ways to discover this prior writing one line or another line of code and I will discuss a few of these.
The talk will be centered on making the project management process more efficient, more cost effective, faster and leaner by demonstrating ways to eliminate waste and deliver more predictable value for customers.
There's a huge difference between writing CSS for a 10-page website and a 1000+ page website. Figure out what makes CSS scale and patterns you can follow to keep yourself from hating yourself six months from now.
In physics, two particles can act together in order to behave as one system so that a change made to one particle instantly affects the other - even if they are separated by great distances.
The Arduino is the present day equivalent to the Altair 8800. Like the Altair, an entire generation of hobbyists will discover the fundamentals of a new paradigm where computing is smeared throughout your physical environment. This little device deserves your attention as it is helping define this exciting new space. In this session you will learn how to program on this remarkable platform, learn a little electronics, and control something in the real world with code. But don't be surprised if, after attending, you have an urge to go buy an Arduino, a soldering iron, and some components and start hacking.
As the availability and feature set of the Kinect expands, it is becoming more important for .NET developers to become familiar with the abilities of this amazing device. This talk will bring you up to speed with the capabilities of this device. Starting with simple camera support, we will work our way all the way through voice recognition, facial tracking and infrared vision. Come see how easy it is to unlock the full potential of the Kinect.
You completed your new JVM-based application and it cleared Unit, Integration, and Acceptance testing with flying colors. So why does it behave so badly in production? Likely culprits include insufficient memory, inefficient garbage collection, or poor concurrency support.
Learn how to use JMX and VisualVM to see what is going on within the JVM and your application. Java memory management and garbage collection will be presented along with guidelines to tuning these settings for increased performance. The Java memory model and its concurrency implications will be also introduced. These topics are fundamental to running production applications on the JVM at scale.
Note that while Java will be used in the examples, this presentation is applicable to all JVM-based languages.
There are many talks, articles and books about how you should implement agile. This is not one of those; this is a talk about how we did implement agile. This is the story of a team which consumed much of that information, and over the course of numerous iterations implemented the things which worked for us, cast off what didn't, and ended up with what was an awesome process for us. The final result was not pure anything, but it worked well, everyone involved understood it and participated. This is not a talk full of gospel to be followed, but is more of a retrospective.
This presentation explores security and privacy concerns in mobile applications as well as mitigation tools and techniques.
In this talk, we'll run down how responsive design has changed the way we think about designing for multiple devices. We'll walk through code examples in the newest version of Foundation, Foundation 4, and discuss the new mobile-first approach we took in building the newest version of the framework.
Cancelled
The resolution of “this” in JavaScript is often a confusing subject for developers. I aim to take the magic out of “this” by describing the different scenarios functions can be called and how it affects the value of “this.”
I plan to cover the value of “this” when invoking functions: directly, as a method, with call/apply, and as a constructor. I’ll also briefly cover ECMAScript 6 “fat arrow” functions and how that affects the binding of “this.” I’ll also discuss closures, how/why they’re used, and how to properly capture “this” from within a closure.
Writing rich HTML clients can be as complex as coding any backend. Javascript is a key ingredient to make the UI responsive and dynamic.
However JS code can become hard to understand and maintain. Tools like jQuery do make it easier but still organizing our code can be a daunting task.
The Model-View-ViewModel pattern (MVVM) makes the interaction with a complex UI easier by providing a component for each view that will know how to interact with all the elements and respond to events.
That is a common pattern for desktop applications, but what about web application? Well, lucky us there is quite a few JS frameworks that aim to provide structure and tools to make our life easier.
Knockout.js is a JS framework that provides binding mechanisms to reflect changes in your VM directly to the page with very little effort. Combine that with Coffeescript and you have a winning recipe!
Join me in a session where we will build together an application using these tools and showing how web development can be a joyful task!
The use of non-relational databases is gaining momentum, and can be a great solution in some scenarios. RavenDB is the foremost document database for .NET, and offers support for JSON, LINQ, a REST-ful API, automatic indexing, transactions, horizontal scalability, and many more features. In this talk we'll discuss the pros and cons of non-relational databases, explore the latest features of RavenDB 2.0, and walk through some examples of putting RavenDB to work.
See how to build your first Windows 8 app. We will use what I learned when creating the app: .NET Gurus Can Cook, which contains recipes from famous folks in the software industry such as Scott Hanselman and Mary Jo Foley. Join ComponentOne Developer Evangelist and former Microsoft Developer Evangelist, Russ Fustino in this session and learn the new programming paradigm for creating Windows 8 style apps. You will see how to build an application that incorporates many of the key characteristics of a great Windows 8 style app, including:
- A modern UI user experience that leverages the signature Windows 8 controls such as GridView, ListView, FlipView, AppBar, Semantic Zoom and other Windows 8 controls.
- A user experience that scales across large and small displays and provides proper handling of snapping and different orientations
- Integration with Windows 8 charms through the settings, search, and share contracts
- Handling of lifecycle and application-model events to properly save and restore state and roam settings so the users can seamless transition across tasks and even devices
- Secondary tile pinning, notifications and badges to keep your application’s content alive ever-present to the end-user
Attendees will learn
- How to get started in building a Windows 8 Store App using VS 2012 templates and resources
- How to use the simulator
- How to plan and code you app for device orientations: horizontal, vertical, snapped and semantic.
- How to use contracts, search and share
As you work projects in an environment without set project management guidelines in place, this presentation will give you ideas to implement simple project management ideas to make your project run smoother.
- Simplifying the Jungle of Terms
- A simple look at scheduling your project
- What is the most important aspect in project management
- Risks are not a bad thing if you plan properly, looking at common risks
- Tools to make project management easier
Just as space exploration can drive innovation in scientific study, web accessibility can be used as a powerful tool to create better design patterns for the Web. Inclusive design and responsive web design as complimentary concepts can inspire your UX team and empower the end-user. Elle will discuss the paradigm shift from compliance to cutting-edge in large organizations, and she will demonstrate these principles using three examples from innovative solutions for a large enterprise redesign.
"You live a new life for every new language you speak.
If you know only one language, you live only once." -- Czech proverb
It's good to learn new languages and environments. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and identify the right tool for the right job.
As someone who has spent the last few years using both environments on a daily basis, we will compare and contrast web development in the Microsoft .NET world vs. web development using the Ruby on Rails stack. We will compare the languages, the tooling, the communities, and the frameworks. This session will help the .NET developer get started down the Rails rabbit hole.
Ever want to make your code talk with the real world? With the Arduino and the Processing language (C++ with training wheels), doing this is actually pretty simple. In this session, we'll walk step-by-step through a real-life client project involving hardware prototyping and development with Arduino, making these devices talk wirelessly, and displaying physical data in a custom graphical interface.
This presentation will cover the basic principles of using the Arduino and sensors to get data from the physical world (with live demonstrations), and then how to make sense of that data with simple visualizations using Processing. With this knowledge you can build an army of super robots that can take over the world.
.NET 4.5 brought huge advancements in the way that asynchronous programming is completed and removed a lot of the complication that used to plague the Async model. This session introduces .NET 4.5 Async and covers the topic in two different direction. First an overview of Async in .NET 4.5 is provided, showing how new API methods require its usage and how to properly call these methods. The second half of the presentation will focus on experienced developers and how this new model truly does simplify development for Async along all fronts by showing the "old way" and the "new way" side by side and highlighting the simplified error handling, process management and overall time to develop. After this session developers will have the tools needed to implement Async in their applications.
This session is a deeper dive into the Windows Phone 8 SDK. We will dive right into Near Field Communication (NFC), Native Code (C++), In-App Store purchases and Wallet transactions. We will also look at what it takes to leverage the new Maps introduced in the Windows Phone 8 SDK. So, if you already have a basic knowledge of Windows Phone 8 and want to dig deeper, than this session is for you.
Testing planning, metrics, execution, and reporting.
It's harder than ever to predict the load your application will need to handle in advance, so how do you design your architecture so you can afford to implement as you go and be ready for whatever comes your way.
It's easy to focus on optimizing each part of your application but your application architecture determines the options you have to make big leaps in scalability.
In this talk we'll cover practical patterns you can build today to meet the needs of rapid development while still creating systems that can scale up and out. Specific code examples will focus on .NET but the principles apply across many technologies. Real world systems will be discussed based on our experience helping customers around the world optimize their enterprise applications.
The Single Responsibility Principle states that a class should have one (and only one) reason to change. Classes that don't adhere to this principle can result in tightly coupled spaghetti code that leads to more bugs and higher maintenance. We'll look at how to identify these classes by using some heuristics and looking for "code smells", and we'll clean them up using refactoring tools, design patterns, dependency injection and even aspect-oriented programming. Examples will be in C#, but the concepts can be applied to a variety of languages.
You’ve heard the drill & marketing talk around Windows 8 Store Apps. How about some real world down-to-the-basics talk to kickstart your dream Windows 8 App? We’ll start with the Modern UI design considerations, followed by App Layout & Navigations concerns. How about taking the next step towards making your App a well-behaved citizen? Yep, we take a deep-dive into details about integrating with the right Contracts, implementing Semantic Zoom, using the right Controls, Data management, Live Service integration & applying the MVVM pattern for sanity. Attendees should walk away with a solid understanding of how to go about building successful Windows 8 Store Apps on the XAML/C# stack.
Velocity is one of the most common metrics used—and one of the most commonly misused—on agile projects. Velocity is simply a measurement of speed in a given direction—the rate at which a team is delivering toward a product release. As with a vehicle en route to a particular destination, increasing the speed may appear to ensure a timely arrival. However, that assumption is dangerous because it ignores the risks with higher speeds. And while it’s easy to increase a vehicle’s speed, where exactly is the accelerator on a software team? Michael “Doc" Norton walks us through the Hawthorne Effect and Goodhart’s Law to explain why setting goals for velocity can actually hurt a project's chances. Take a look at what can negatively impact velocity, ways to stabilize fluctuating velocity, and methods to improve velocity without the risks. Leave with a toolkit of additional metrics that, coupled with velocity, give a better view of the project's overall health.
If you are new to Android this session is for you. We will cover Android basics and then walk through building an application to display data from a web service. We will parse the JSON returned and display it. We will also cover async tasks and how to cascade async operations.
Additionally we will cover how to store and retrieve settings in your application. This session will cover a variety of aspects that come in play when designing an android enterprise application. We will also discuss fragments.
If you would like to follow along, bring a laptop with android sdk loaded.
NoSQL is a very diverse space, because the only common denominator between these databases is that they don’t use SQL. This session sheds light on the differences between various kinds of current database technologies, highlights how various popular database products fit into these categories, and provides insight into when each of them is an appropriate solution.