Desert Code Camp - 2014.2 SessionsA list of all of the sessions at Desert Code Camp - 2014.2en-usDesert Code Camp TDD KickstartBack by popular demand is the highly rated .NET TDD Kickstart where the speaker and the audience "pair up" for a coding session which serves as an introduction to Test Driven Development in an Agile environment. We will use C#, Visual Studio and Rhino Mocks to unit test code to be built both with and without dependencies. We will also highlight some of the common issues encountered during TDD and discuss strategies for overcoming them.Fri, 19 Sep 2014 16:25:47 Z2014-09-19T16:25:47ZCopyright ©2010-2024, Desert Code Camp Gentle Introduction to CQRSContemporary software systems are increasingly having to deal with "concurrency" and "scalability". There are various reasons why parallelism is a common contemporary approach but it's complex and there are many patterns & practices that aid with complexity. CQRS builds on those patterns & practices to make concurrency and scalability easier, if you let it. We will discuss the basic principles around CQRS & its roots. We'll discuss where CQRS fits, what types of complexities CQRS will help deal with, & when CQRS might not be a good fit. Some in-the-trenches-type lessons learned and temper the principles with some recommended practices will also be covered. As well, some of the reasons why you'd want to have a CQRS frame-of-mind along with some ways to think CQRS with existing systems without rewriting your whole system. CQRS and its related practices & principles are one of areas of software development that really parallels journeyman/master in the level of detail and skill required for it to be mastered.Tue, 26 Aug 2014 18:23:29 Z2014-08-26T18:23:29ZCopyright ©2010-2024, Desert Code Camp Art: Getting Things "Just Right"<p>Abstraction is a blessing and a curse. Too little, and our applications are difficult to extend and maintain. Too much, and our applications are difficult to extend and maintain. Finding the balance is the key to success. The first step is to identify your natural tendency as an under-abstractor or an over-abstractor. Once we know that, we can work on real-world techniques to dial in the level of abstraction that is "just right" for our applications.</p>Mon, 28 Jul 2014 14:52:23 Z2014-07-28T14:52:23ZCopyright ©2010-2024, Desert Code Camp Manager A Survival Guide for First-Time Engineering ManagersThis session is about your career perspective as an engineer, especially when the path may take an unexpected turn from technical lead to first-time engineering manager. We will explore the differences between managing and leading, review different management styles, and discuss their impact on both the manager and the team member. Finally, we will find out why you do not want to treat everyone equally. I will share my personal experiences going from being one of the team to actually managing it: the pitfalls of suddenly being responsible for the team, typical problems surfacing, and how to avoid common mistakes. As part of the session, I would also like to share thoughts and considerations about which career path could be the right one for whom, and what the advantages and disadvantages are going one way or the other. This is not a You get it all from the expert- session, but a session to share experiences and discuss how this fits to your career path.Mon, 15 Sep 2014 06:47:22 Z2014-09-15T06:47:22ZCopyright ©2010-2024, Desert Code Camp Views in iOS 8iOS 8 completely rewrites the rules for how screens (view controllers) appear and how they adjust their content to the ever-expanding world of iOS devices. Drop in to get a grounding in the two skills you need to write modern iOS apps: view controller presentation and adaptation.Sat, 20 Sep 2014 09:49:30 Z2014-09-20T09:49:30ZCopyright ©2010-2024, Desert Code Camp Your Career - Move Into IT Management<p>Are you considering changing your career from the thought leader track to the people leader track? We will discuss some of the advantages and pitfalls of entering into management, how to get started, the successful pitch upwards and buy-in from below.</p> <p> </p> <p> </p>Mon, 29 Sep 2014 05:29:49 Z2014-09-29T05:29:49ZCopyright ©2010-2024, Desert Code Camp Internet of ThingsWe will demonstrate how to setup your own Octoblu private IoT cloud and gateway for controlling your own Internet of Things projects for home automation and/or enterprise deployments. This session will involve hands-on Linux, GitHub, Node.JS, and Octoblu technologies.Mon, 15 Sep 2014 06:47:27 Z2014-09-15T06:47:27ZCopyright ©2010-2024, Desert Code Camp Introduction to Genetic AlgorithmsI'm going to introduce the basic mechanics of a genetic algorithm, discuss a range of use-cases, and share a bit of Python code I put together a while back that uses a genetic algorithm to play a game of Rock, Paper, Scissors.Wed, 13 Aug 2014 21:43:10 Z2014-08-13T21:43:10ZCopyright ©2010-2024, Desert Code Camp From The TrenchesIn this session I will discuss what I've learned from having two apps consistently reside in the Top 100 Free category in Google Play for the last 3+ years (Groupon and MyFitnessPal). I'll talk about tips, tricks and expose real life issues that you will run into at scale with an Android app that becomes very popular. You will learn what to do, what not to do, and how to properly manage your application and team at scale. From defensive coding and advanced patterns to various forms of testing - I'll be talking about it here. You'll walk away with a list of tools and tips to help prepare you and your team for when your app gets featured or makes it to the top 100.Fri, 26 Sep 2014 09:45:00 Z2014-09-26T09:45:00ZCopyright ©2010-2024, Desert Code Camp DirectivesLean how to make angularjs custom directives.Sun, 10 Aug 2014 10:09:36 Z2014-08-10T10:09:36ZCopyright ©2010-2024, Desert Code Camp in 60ish MinutesSingle Page Applications (SPAs) are all the rage now days but if you've built a true SPA you know that they can be fairly involved to create. There are typically a lot of moving parts and scripts ranging from history, to navigation, to data access. Have you thought through maintenance of the application down the road and how simple or complex it will be to make modifications as scripts change? In this session Dan Wahlin will introduce the AngularJS SPA framework and demonstrate many of the built-in SPA features it provides. If you like to work with views, controllers, modules, plus tie into existing framework features without having to focus on all of the scripts under the cover then this is definitely a framework to check out!Sat, 27 Sep 2014 11:23:33 Z2014-09-27T11:23:33ZCopyright ©2010-2024, Desert Code Camp the Singularity with the WebSpeech APIDiscover the power of the WebSpeech API and how it will help bring the WWW to life. Demonstrations of a practical applications built in Angular and Node.js.Mon, 15 Sep 2014 10:04:14 Z2014-09-15T10:04:14ZCopyright ©2010-2024, Desert Code Camp Fun!We will learn how to control LEDs and servos as well as stream sensor data from an Arduino micro-controller using Node.JS, Johnny-Five (NodeBots), and Octoblu's Nodeblu designer.Mon, 15 Sep 2014 06:47:31 Z2014-09-15T06:47:31ZCopyright ©2010-2024, Desert Code Camp vNextASP.NET vNext is the next version of ASP.NET. Publicly demoed at TechEd, it's a re-imagination of ASP.NET MVC and Web API built on top of a server-optimized version of the .NET Framework. Let's dig into the early release CTP available at and start to understand where the ASP.NET Team is going.Tue, 12 Aug 2014 06:20:12 Z2014-08-12T06:20:12ZCopyright ©2010-2024, Desert Code Camp Developer Fundamentals<p>Amazon Web Services (AWS) has become an essential tool for building apps today. I've found many developers have some experience with Amazon, but "don't know what they don't know" and hunger for knowledge on best practices or how best to use the various AWS tools. This presentation will give a high-level overview of AWS, best practices for managing it, and go into additional depth on using AWS for servers (Compute/EC2) and storage (S3).</p>Thu, 11 Sep 2014 16:13:57 Z2014-09-11T16:13:57ZCopyright ©2010-2024, Desert Code Camp Cloud FinanceImagine that you launch the next great web application. You built a killer app that given just enough time will develop a cult following that will line your pocket books. The app has perfect code, perfect performance, and a fantastic future. Next, imagine that while you are just getting started with your sales and marketing efforts, the bills start rolling in for the cloud hosting services. It starts off slow at first, but as your usage grows and you begin to scale out, it gets more expensive. Then imagine a few more months down the road, you're spending more money on cloud hosting services than you are bringing in. Eventually, the cost of running the site just becomes too much and you close the site down. The Microsoft Azure cloud is a great hosting environment for your next big application, but just as important as a great design is a great understanding of the costs involved in cloud hosting. In this presentation, you will learn about how much cloud services will cost you and strategies that you can apply in your software designs to reduce the costs of hosting your applications. You will learn how to consider and plan for the financial effects of your application design in order to determine the optimal design to maximize your profits and return on investment.Tue, 29 Jul 2014 04:37:04 Z2014-07-29T04:37:04ZCopyright ©2010-2024, Desert Code Camp DocumentDB 101<p>An introduction to the new Microsoft Azure DocumentDB, a fully managed, JSON document database service. The following is a rough overview of the topics that will be covered in this one hour lecture. Topics are subject to change due to time constraints.</p> <ul> <li>Introduction to DocumentDB <ul> <li>Introduce concepts of NoSQL and a document store.</li> <li>Why relational databases are hard to scale (sometimes).</li> <li>How document-based DBs solve these issues</li> <li>Where does DocumentDB fit?</li> <li>Architecture and Vocab</li> </ul> </li> <li>Configuring DocumentDB</li> <li>Finding and Saving a Document <ul> <li>.NET and JavaScript APIs</li> </ul> </li> <li>Advanced Querying</li> <li>Writing JavaScript Stored Procedures, Triggers and User-Defined Functions</li> </ul> <p>Slide deck will be made available upon completion.</p>Tue, 30 Sep 2014 12:03:59 Z2014-09-30T12:03:59ZCopyright ©2010-2024, Desert Code Camp WebsitesAzure websites is a managed cloud service that allows you to deploy a web application and make it available to your customers very quickly. Supported languages include .NET , Java, PHP, Node.js, Python, and Ruby. Come learn about all the cool and awesome features in Azure web sites, including continuous deployment, autoscaling, monitoring and remote debugging.Mon, 29 Sep 2014 18:30:33 Z2014-09-29T18:30:33ZCopyright ©2010-2024, Desert Code Camp, .NET and the Internet of ThingsThe Internet of Things (IoT) movement is picking up steam. It's estimated that by 2020, the IoT will be an $8.9 trillion market with over 200 billion connected devices. In this session you'll learn how to leverage your existing .NET skills to build the next big (or tiny) thing! This session will explore: - What is the Internet of Things? - An introduction to basic micro electronics. - What is the .NET Micro Framework (NETMF)? - Exploring the Netduino and Arduino. - Running C# on a Raspberry Pi. - Connecting your devices to Azure. - Using the Windows on Devices SDK with an Intel Galileo. There will be no time for boring slides here. Instead we'll be covering lots of code and fun interactive demos with the audience.Wed, 10 Sep 2014 04:26:35 Z2014-09-10T04:26:35ZCopyright ©2010-2024, Desert Code Camp Automation with Team Foundation Server<p>One of the more valuable features that Team Foundation Server offers to its users are the Build Automation and Release Management services.  We will walk through how to setup TFS for build automation, define a build, customize its workflow template and manage its deployment workflow via the new Release Manager.  The end result of automating your builds can be found in team artifacts like catching bugs and code quality issues earlier in development, setting up continuous integrations to validate code on clean configurations, or test integration for extra assurance during delivery cycles .</p>Wed, 01 Oct 2014 04:58:32 Z2014-10-01T04:58:32ZCopyright ©2010-2024, Desert Code Camp, the best programming language. Why I love it and so should you.<p>Throughout the years many programming languages have come and gone, but C# is here to stay. It is everywhere and can run on over 2.5 Billion devices including desktop, web, servers, mobile devices, and game consoles! Come learn why I love C# so much and all of the amazing features it has to offer. This session will be action packed with so much live coding you will not know what to do!</p>Sat, 27 Sep 2014 13:57:17 Z2014-09-27T13:57:17ZCopyright ©2010-2024, Desert Code Camp Code I Best Practices<p>All Clean Code presentations provide great value by themselves, but taken together are designed to offer a holistic approach to successful software creation. Why writing Clean Code makes us more efficient Over the lifetime of a product, maintaining the product is actually one - if not the most - expensive area(s) of the overall product costs. The Craftsmanship session is exploring the often underestimated importance of clean execution of the coding part and its crucial impact to overall project success. Writing clean code can significantly lower these costs. However, writing clean code also makes you more efficient during the initial development time and results in more stable code. You will be presented best practices which will make you write better and more easily maintainable code, seeing code in a holistic way. You will learn how to apply them by using an existing implementation as the starting point of the presentation. Finally, practices benefits are explained. This presentation is based on C# and Visual Studio 2013. However, the demonstrated patterns and practice can be applied to every other programming language too.</p>Mon, 15 Sep 2014 06:47:34 Z2014-09-15T06:47:34ZCopyright ©2010-2024, Desert Code Camp Code II - Software Craftsmanship<p>You will learn why naming is really difficult if done right, why coding and style guidelines are crucial, code structuring, exception handling and why other elements of coding often define the tipping point between success and failure of projects. Following the principles of software craftsmanship will allow you to end up with better maintainability and extensibility of your software and the success of the project in the end. All Clean Code presentations provide great value by themselves, but taken together are designed to offer a holistic approach to successful software creation. Why writing Clean Code makes us more efficient Over the lifetime of a product, maintaining the product is actually one - if not the most - expensive area(s) of the overall product costs. Writing clean code can significantly lower these costs. However, writing clean code also makes you more efficient during the initial development time and results in more stable code. You will be presented design patterns and best practices which will make you write better and more easily maintainable code, seeing code in a holistic way. You will learn how to apply them by using an existing implementation as the starting point of the presentation. Finally, patterns & practices benefits are explained. This presentation is based on C# and Visual Studio 2013. However, the demonstrated patterns and practice can be applied to every other programming language too.</p>Mon, 15 Sep 2014 06:47:39 Z2014-09-15T06:47:39ZCopyright ©2010-2024, Desert Code Camp Little Thing Called Change: Using Automation to Track Application Change Over Time<p>Sometimes it can be a daunting task to keep track of what has been done in between releases of an application.  When multiple developers or even entirely different teams are trying to commit features and fixes on the same project, records can be jumbled at best. Often, spreadsheets or other story boards are filled in by hand to try and keep tabs on implemented changes, but things can still sneak by without being documented or tasks that came in during the middle of a development cycle can be lost. This presentation takes a look at one approach that can be utilized to automatically generate a list of changes which can then be used to populate future change requests and release notes or just to keep afloat in a sea of change.</p>Thu, 04 Sep 2014 08:35:55 Z2014-09-04T08:35:55ZCopyright ©2010-2024, Desert Code Camp Injection with StructureMapStructureMap is a Dependency Injection / Inversion of Control tool for .Net that can be used to improve the architectural qualities of an object oriented system by reducing the mechanical costs of good design techniques. StructureMap can enable looser coupling between classes and their dependencies, improve the testability of a class structure, and provide generic flexibility mechanisms.Wed, 24 Sep 2014 14:39:21 Z2014-09-24T14:39:21ZCopyright ©2010-2024, Desert Code Camp Injection: A Practical Introduction<p>We all want to build code that is maintainable and easily testable. Dependency Injection can help us get there. But what is Dependency Injection? The answers to the question seem to cause more confusion than help. We'll start with the basics to see what Dependency Injection is, why we want to use it, and how we can add it to our applications. Be prepared to spend a lot of time in code. After we have a good handle on the how all of the pieces fit together, we'll see how a DI container (such as Unity or Ninject) can make things even easier.</p>Mon, 28 Jul 2014 14:52:42 Z2014-07-28T14:52:42ZCopyright ©2010-2024, Desert Code Camp systems with Node.js<p>Deploying systems can be daunting task with many choices for task runners and deploying services.</p> <p>This presentation will go over popular build systems (gulp, grunt), dev / production systems, git hooks, node git hooks, node runners, as well as system error reporting.</p>Mon, 18 Aug 2014 21:37:51 Z2014-08-18T21:37:51ZCopyright ©2010-2024, Desert Code Camp Automation using OpsWorks and Chef on AWS<p>Deploying applications using opsworks and chef scripts on Amazon Web Services</p>Mon, 22 Sep 2014 15:20:22 Z2014-09-22T15:20:22ZCopyright ©2010-2024, Desert Code Camp Patterns: The mystic secret of great programmersDesign patterns hold the key to effective software development. We all know what a great UI looks like, but what does great software design look like? Get a brief introduction to design patterns and design principles, and then dive into the most impotant and commonly used patterns: Model-View-Controller, The Observer Pattern, Delegation, the Open/Closed principle, and a few others. Design patterns are applicable to almost any computer language, but are especially useful in object-oriented ones.Sat, 20 Sep 2014 10:35:21 Z2014-09-20T10:35:21ZCopyright ©2010-2024, Desert Code Camp Applications for Android WearThis talk will present a first-hand look at the Android Wear platform and an introduction to Android Wear APIs, how to design effective user interfaces that work best on a wearable device. Learn about how to use Google's Android Studio IDE for creating apps for Android Wear devices and bringing wearable experiences to your Android apps. We'll walk step-by-step through designing and building a small, native, contextual app for Android Wear. Of course using Java and Android Studio, the new Android development environment based on IntelliJ IDEA.Thu, 28 Aug 2014 05:43:36 Z2014-08-28T05:43:36ZCopyright ©2010-2024, Desert Code Camp Simple IoT with Electric Imp<p>This course will introduce you to the Internet of Things by way of the Electric Imp platform. We will explore WiFi connected devices that interact with the imp cloud. Then we will write device and server-side agent code using the object-oriented, dynamically typed Squirrel scripting language.</p>Mon, 11 Aug 2014 21:27:12 Z2014-08-11T21:27:12ZCopyright ©2010-2024, Desert Code Camp for DevelopersWhat are these crazy containers you speak of and why should I care? This session will take a look at the basics of Docker containers from the developers point of view. Then we will look at some examples of why we should care about containerizing our applications.Mon, 01 Sep 2014 20:57:35 Z2014-09-01T20:57:35ZCopyright ©2010-2024, Desert Code Camp Merging Hell: Auto-merging with Atlassian Stash and Bamboo<p>Take a deeper look into the auto-merging capabilities of Atlassian's Stash managed git repositories and Bamboo build plans. Discover how these features make developers' days less painful.</p>Fri, 12 Sep 2014 06:31:42 Z2014-09-12T06:31:42ZCopyright ©2010-2024, Desert Code Camp Sourcing with .Net"The fundamental idea of Event Sourcing is that of ensuring every change to the state of an application is captured in an event object, and that these event objects are themselves stored in the sequence they were applied for the same lifetime as the application state itself." - Martin Fowler What if we could start with a very simple Domain Model and be able to see every state transition that ever took place within the system AND recreate them at any time. Doing this in classic thinking is not only incredibly difficult it is usually impossible or impractical. This is a large paradigm shift that moves us away from the classic RDBMS thinking as the center of our universe. As our Domain gets more and more complex, communicating and understanding the relationships between Domain Entities becomes overwhelming. This Pattern is quiet often paired with CQRS, but is a distinct pattern of its own and has significant aspects that need to be considered before adapting it. Come learn how to think in terms of Events and Aggregate Roots, not just in your Presentation Layer, but in your entire Domain Model. This Session will cover several Patterns of Enterprise Architecture, thinking in terms of Domain Events and how to create that in Code.Wed, 24 Sep 2014 14:39:15 Z2014-09-24T14:39:15ZCopyright ©2010-2024, Desert Code Camp you need to know about Azure File shares (preview)Come learn about the new Azure Files preview feature, which exposes file sharing using the standard SMB 2.1 protocol. Applications running in Azure can now easily share files between VMs using standard and familiar file system APIs like ReadFile and WriteFile. The files can also be accessed via a REST interface, which opens a variety of hybrid scenarios. Come learn about the features of this new service and how to use it.Mon, 29 Sep 2014 18:30:09 Z2014-09-29T18:30:09ZCopyright ©2010-2024, Desert Code Camp Data in your WebAPIMethods of working with data has evolved over the years as has our mechanisms to access it through services. In this session you'll learn not only how to expose data through the Web Api, but also learn ways to tune and improve your data interactions with Web API, IQueryables and the Entity Framework.Thu, 31 Jul 2014 04:59:05 Z2014-07-31T04:59:05ZCopyright ©2010-2024, Desert Code Camp to know Knockout.js<p>Declarative bindings? Observable Arrays? MVVM? And just how is Knockout different than Angular or Backbone, for instance? In this session, we will cover Knockout.js, the Model View ViewModel design pattern, and how to develop and build dynamic and rich UI applications by leveraging well structured, flexible client-side JavaScript <em>and</em> using less code.</p>Fri, 03 Oct 2014 05:17:00 Z2014-10-03T05:17:00ZCopyright ©2010-2024, Desert Code Camp your database under controlDatabases are a critical piece of the development story. So why do we treat them so badly? Why are we so scared of them? Walk with us on a journey of how we brought the database development and application development together into a single, cohesive build and deployment pipeline. We'll discuss Continuous Integration and Continuous Delivery in the context of Database Development, dig into practical mechanisms for starting to version your database and automate database validation and deployment. Don't fear the database, embrace it, version it, and deploy it frequently.Tue, 12 Aug 2014 06:20:28 Z2014-08-12T06:20:28ZCopyright ©2010-2024, Desert Code Camp pushy with SignalR and Reactive ExtensionsSignalR facilitates push notifications over HTTP to a variety of clients. The Reactive Extensions were designed to allow for asynchronous LINQ over push based collections. In this talk, youll see how the synergy of these two technologies merge to make otherwise difficult tasks, a push over.Thu, 31 Jul 2014 04:58:16 Z2014-07-31T04:58:16ZCopyright ©2010-2024, Desert Code Camp Started with MultiCopters (aka. Drones)<p>Commonly referred to as Drones, these craft provide the pilot the ability to capture images from a new perspective. In this talk we will discuss the basic principles and technology that enable this gravity defying craft to fly.</p> <p>We have flown these magical devices for a few hundred hours over the last two years. We have bought and built too many multi-copters (unfortunately also known as drones). Anyways, we would really love to share some of our most exciting and memorable experiences with you.</p> <p>But be warned! You will leave the session, with the strong desire to acquire parts (you before didn't know existed) and build a mulit-copter of your own.</p> <p> <img src="" alt="" width="720" height="480" /></p>Wed, 13 Aug 2014 05:59:46 Z2014-08-13T05:59:46ZCopyright ©2010-2024, Desert Code Camp Speed Math! (an introduction to using PETSc and SLEPc)<p>This session will focus on how to do high speed math using PETSc and SLEPc. PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It supports MPI, shared memory pthreads, and GPUs through CUDA or OpenCL, as well as hybrid MPI-shared memory pthreads or MPI-GPU parallelism. SLEPc is an extension of PETSc and can be used for linear eigenvalue problems in either standard or generalized form, with real or complex arithmetic. It can also be used for computing a partial SVD of a large, sparse, rectangular matrix, and to solve nonlinear eigenvalue problems (quadratic or genuinely nonlinear). Additionally, SLEPc provides solvers for the computation of the action of a matrix function on a vector.</p>Mon, 21 Jul 2014 19:11:28 Z2014-07-21T19:11:28ZCopyright ©2010-2024, Desert Code Camp *Not* to Write Concurrent CodeInvariants, locking, mutexes, critical sections, monitors, barriers, race conditions, non-deterministic, memory coherence, consistency models, etc. "Multithreading is hard", hard to do correctly and easy to do incorrectly. "Correctly" is almost always application-specific and usually caveated with "it depends". It's hard to define specific rules or practices that work in all circumstances. This session takes a different point of view on things and shows you specific ways to do things "wrong" with regard to multi-thread. This session will detail some of the common primitives and techniques use in multi-threading, but used in the wrong ways. Why they are wrong and alternatives will be covered. Topics like Sleep, DoEvents, volatile, lock, interlocked, thread priority, non-shared data, etc. will be covered.Fri, 25 Jul 2014 22:48:10 Z2014-07-25T22:48:10ZCopyright ©2010-2024, Desert Code Camp of Concurrency with JavaConcurrency is hard. Most engineers make it harder on themselves than it needs to be. Lets get together and talk about how to do it better, and understand specific failure modes. [Should have sample code] We'll be talking about a few of the most useful parts of the java.util.concurrent package.Tue, 19 Aug 2014 13:58:56 Z2014-08-19T13:58:56ZCopyright ©2010-2024, Desert Code Camp windows software easier and faster using ChocolateyChocolatey is a machine package manager somewhat like apt-get for Linux but built for Windows. No more searching for the install download or trying to figure out 32/64 bit or wonder what options to pick. Chocolatey takes care of doing the install for you and you can even create scripts to install multiple packages. With Chocolatey you can bring up a new development machine with minimal effort.Sun, 14 Sep 2014 14:11:17 Z2014-09-14T14:11:17ZCopyright ©2010-2024, Desert Code Camp of Things 101Getting started with the Internet of Things. We will show you how to connect Arduino micro-controllers and home automation devices such as Phillips Hue lightbulbs and Belkin Wemos to the Internet and control them with JavaScript.Mon, 15 Sep 2014 06:47:43 Z2014-09-15T06:47:43ZCopyright ©2010-2024, Desert Code Camp to Bluetooth Low EnergyWe will reference PunchThrough LightBlue Bean Arduino Compatible as it is the most mature product in the market, but well spend a good deal of time covering the base technology in general so as to be applicable to any module in the market. We will interact with the bean via the Node.js noble package from Sandeep Mistry, but examples of interacting with the bean exist for IOS as well.Fri, 26 Sep 2014 11:10:45 Z2014-09-26T11:10:45ZCopyright ©2010-2024, Desert Code Camp to EmberJSEmberJS is one of the most popular client-side javascript frameworks in use today. Once learned, you can be remarkably productive and well-positioned to scale your app! This session will cover the basics you need to get started with EmberJS. We'll discuss the up and coming official EmberJS build tool ember-cli, the core concepts around Ember itself, and some practical tips for how to become productive in Ember as quickly as possible.Tue, 19 Aug 2014 08:57:02 Z2014-08-19T08:57:02ZCopyright ©2010-2024, Desert Code Camp to Universal Windows AppsFind out how to create apps targeting Windows & Windows Phone. You will learn how to get started, how to "upgrade" an existing app to a universal app, and how to take advantage of shared projects. Session will accommodate .NET or JavaScript developers :)Thu, 25 Sep 2014 11:25:18 Z2014-09-25T11:25:18ZCopyright ©2010-2024, Desert Code Camp to AzureWalk through how to get started with Azure. Discuss real-world applications for using Azure.Mon, 22 Sep 2014 16:15:22 Z2014-09-22T16:15:22ZCopyright ©2010-2024, Desert Code Camp to Cross Platform Mobile Development in C# with Xamarin<p>As the mobile landscape continues to expand and evolve managing multiple code bases in different programming languages and development tools can become a nightmare fast. In this session learn how to leverage the awesome features of C# and combine them with Xamarin technology to create beautiful native cross platform mobile apps from a shared C# code base with the tools that you love.</p>Mon, 21 Jul 2014 19:11:37 Z2014-07-21T19:11:37ZCopyright ©2010-2024, Desert Code Camp to Function Composition with ScalaFunction composition is one of the areas which makes functional programming useable. In this introduction, you'll see how you can use function composition to make your code cleaner and easier to re-use, and with Scala you don't have to choose between functional or object oriented, instead you get the best of both worlds.Sat, 27 Sep 2014 18:20:09 Z2014-09-27T18:20:09ZCopyright ©2010-2024, Desert Code Camp to HadoopAs part of this session we will cover Hadoop fundamentalsMon, 22 Sep 2014 15:20:17 Z2014-09-22T15:20:17ZCopyright ©2010-2024, Desert Code Camp to Web API<p>In this session, you will learn the essentials of building ASP.NET Web API services. Starting off with overview of the basics of HTTP essential to understanding API design, you will then learn how to create services supporting "CRUD" operations and get an overview of working with different clients, routing and security issues needed to start developing your own Web API projects.</p>Wed, 23 Jul 2014 18:06:34 Z2014-07-23T18:06:34ZCopyright ©2010-2024, Desert Code Camp Performance Monitoring at Scale<p>Learn how to understand the real-world performance experienced by users of your iOS applications by monitoring key operations with both manual and automatic instrumentation. We will demonstrate using WeblogNG to instrument a small Swift application and visualize the experience using charts of good, typical, and poor performance across the userbase both in development and production.</p>Tue, 23 Sep 2014 23:06:02 Z2014-09-23T23:06:02ZCopyright ©2010-2024, Desert Code Camp your organization ready for Scaling Agile?<p>Organizations invest energy, effort and real dollars to stay in trend. Here's one of the trend: <em>Agile</em> is no longer a buzz word, <em>Scaling Agile</em> is. Terms like Enterprise Agile, Scaled Agile, SAFe, LESS, Agility Path are conveniently thrown around in meetings and speeches as organizations line up to get on the bandwagon of 'Scaling Agile'. Scaling Agile - from the team and product level to the organizational level has it's own benefits and challenges. Is scaling Agile right for you? Are you ready for it? If you've been evaluating any of the scaling frameworks, you might be in luck. In this session, we will discuss approaches to analyze and evaluate if an organization (or a business unit) is ready for scaling Agile. You'll learn steps your organization can take to be more prepared for scaling Agile and reap organization-wide benefits.</p>Mon, 18 Aug 2014 05:54:06 Z2014-08-18T05:54:06ZCopyright ©2010-2024, Desert Code Camp JavaScript: An Obsession in 4 parts<p>Using the same JavaScript both clientside and serverside is coming closer and closer to reality with libraries like React, Mach, and Webpack on the rise. Join me in pursuit of this holy grail of web development and see how much code we can share.</p>Thu, 28 Aug 2014 11:54:57 Z2014-08-28T11:54:57ZCopyright ©2010-2024, Desert Code Camp to Love Lambdas<p>Lambda expressions can be confusing the first time you walk up to them. But once you get to know them, you’ll see that they are a great addition to your toolbox. Used properly, they can add elegance and simplicity to your code. And some .NET constructs (such as LINQ) lend themselves to lambda expressions. We’ll take a look at how lambda expressions work and see them in action. No specific experience is required (but some .NET is helpful).</p>Mon, 28 Jul 2014 14:50:53 Z2014-07-28T14:50:53ZCopyright ©2010-2024, Desert Code Camp Node.js LabIn this lab style presentation you are encouraged to code along and build a simple and understandable Node.js utility that will be used to query the status of a web site. You will get the most out of this if you already have Node.js installed ( ) and are able to use a basic text editor to follow along. You will still benefit from this presentation even if you are unable to participate just by following the example and trying it at home later. You will leave this presentation armed with a utility that you can use to query your websites and the knowledge to change it to suit your needs.Mon, 29 Sep 2014 18:09:43 Z2014-09-29T18:09:43ZCopyright ©2010-2024, Desert Code Camp's talk testingWe all know we should be testing our code, but it can be challenging to get started. BDD, TDD, unit tests, integration tests, test runners, code coverage... and that's not even taking in to account the slew of tools available. Testing can be challenging to get in to, and so few people talk about how to actually do it, or how to write code you can actually test. In this session, I'll try to shed some light on the Javascript testing world, from process to tooling, and hopefully leave you a little less confused than when we started.Tue, 16 Sep 2014 09:47:08 Z2014-09-16T09:47:08ZCopyright ©2010-2024, Desert Code Camp Visual Studio T4 and code factories to improve pattern adherence, ease refactoring and efficiently scaffold an application frameworkWith or without established coding standards and code reviews, application code tends to have a wide variance in implementation when multiple developers are involved. Variations begin to appear over the course of an applications lifespan due to the introduction of new requirements or improved techniques, etc. Often implemented variations are never refactored due to schedule or workload constraints. With code factories, much of an application can be automatically generated to match a consistent pattern. When new requirements emerge or new methodologies are introduced into the architecture of the application, the factory template author(s) can simply modify their template(s) and re-run the actions to consistently inject the changes without affecting the code written by the development team in the interim.Wed, 13 Aug 2014 15:20:20 Z2014-08-13T15:20:20ZCopyright ©2010-2024, Desert Code Camp Programs TalkModern and future software development is not about building single programs that run happily in their own private environment. Modern applications are distributed and integrated with others using technologies such as REST, web services, web APIs, and asynchronous messaging. In this presentation, we're going to explore several technologies that help programs talk to each other. In this presentation we will explore questions such as: * REST/web API vs SOAP services * Are Thrift and other technologies really viable for service implementation? * What is asynchronous messaging, and how do I best apply it to my solution? We will explore all topics from both homogeneous (same language/same platform) and heterogeneous (different languages or platforms) perspectives.Mon, 18 Aug 2014 21:38:48 Z2014-08-18T21:38:48ZCopyright ©2010-2024, Desert Code Camp your productivity potential in Windows and Visual StudioYou will learn several tricks to becoming more productive in Windows and Visual Studio. We will explore some standard windows shortcuts, how to never use the start menu again to launch programs, how to create shortcuts to your commonly used web sites, some very useful Visual Studio plugins, some items you should setup keyboard shortcuts to in Visual Studio, really useful Visual Studio Extensions.Sat, 27 Sep 2014 07:03:53 Z2014-09-27T07:03:53ZCopyright ©2010-2024, Desert Code Camp Brilliant Shooting Star, or Shiny Space Junk?<p>Meteor JS is a relatively new full stack JavaScript solution ( It provides a full featured stack that is capable of binding data securely all the way from the web view to the data layer with a minimal amount of code, and its all reactive. Intrigued? Great! Not sure what half those words mean? Great! Come check out the presentation and leave with a sense of wonder.</p> <p>I'll cover features of the Meteor framework, basic project setup, and use in a real application. If we have time we'll also discuss some of the major pros and cons of using a full stack solution.</p>Mon, 21 Jul 2014 19:12:00 Z2014-07-21T19:12:00ZCopyright ©2010-2024, Desert Code Camp Programming - A Year LaterMob Programming is, as described by its community leader from, Woody Zuill, all the smart people focused on the same problem at the same time using the same computer. Come discuss with us what this means, how it works, and what we've learned about the practice after adopting it and using it for a year on a couple of different teams at Infusionsoft.Mon, 29 Sep 2014 18:15:20 Z2014-09-29T18:15:20ZCopyright ©2010-2024, Desert Code Camp the UI with Balsamiq MockupsLearn the benefits of UI mocking and technique for quickly building UI mockups to refine functional requirements.Mon, 15 Sep 2014 10:34:08 Z2014-09-15T10:34:08ZCopyright ©2010-2024, Desert Code Camp Generation PaaS and Software Distribution with[w/demo] provides Linux containers made easy. This means that you no longer need to rely on full machine virtualization to provide strong jailing between processes and the kernel or other processes. Combined with a built-in distribution and image index system, Docker lets engineers and sysadmins reduce the complexity of building robust provisioning systems.Tue, 19 Aug 2014 13:58:16 Z2014-08-19T13:58:16ZCopyright ©2010-2024, Desert Code Camp : Creating robots with JavaScript<p>Using NodeJS, Johnny-five, Arduino, Raspberry Pi, Spark, and other types of hardware, and networking them to build the Robot Overlords that will soon rule over the Earth.</p>Tue, 19 Aug 2014 13:28:57 Z2014-08-19T13:28:57ZCopyright ©2010-2024, Desert Code Camp is easier than you think and you should be using it.If you need to share a common dll or code among multiple projects and you are not using nuget to do it then you are doing it wrong. You will be amazed at how simple it is to create nuget packages and share them. You will geta quick overview of nuget and then learn how to find/consume packages, create packages, view package internals, host your own feeds, and integrate into automated builds.Sun, 14 Sep 2014 11:28:19 Z2014-09-14T11:28:19ZCopyright ©2010-2024, Desert Code Camp 365 APIs, Why should I care<p>Office 365 is a suite of applications hosted in the cloud that provide, Office Online, Sharepoint Online, Exchange Online, Lync Online, and Yammer.  In this session we will cover applications using the new Office 365 SDK (preview) and show Office Apps that integrate directly into the Office Suite of application.  Come to this session to see these new capabilities in action and understand why as a developer you should be interested in using these new APIs.  This session will be mostly code samples with demos and will be very light on Powerpoint.  Come learn how to access the information stored in Office 365 from you custom applications.</p>Fri, 10 Oct 2014 05:47:07 Z2014-10-10T05:47:07ZCopyright ©2010-2024, Desert Code Camp Agile In Practice<p>A panel of Agile experienced practitioners will address questions from the attendees. We will focus on the application of Agile ideas to practical situations. Bring your questions about practicing the ideas in the Agile Manifesto, Scrum, Test Driven Development, The Kanban Method and any other Agile practices.</p> <p>Please sign up to co-teach if you want to be on the panel.</p>Mon, 29 Sep 2014 18:29:12 Z2014-09-29T18:29:12ZCopyright ©2010-2024, Desert Code Camp for .NET DevelopersUNIX operating systems have long had their shell that was put to use in very powerful ways. Microsoft Windows and MS-DOS have had the lesser powerful batch scripting...until PowerShell came along. While PowerShell is primarily a tool for dev-ops and system administration, it can also be a very powerful platform to implement features for your applications. Either by using PowerShell as a scripting interface or providing an expert-level command-line interface for your applications, PowerShell is a tool that simply cannot be ignored by .NET developers in the world of cloud applications. In this session, we will explore what PowerShell is; how to write commands, scripts, and programs using PowerShell; and finally some best practices for PowerShell development.Mon, 28 Jul 2014 17:39:05 Z2014-07-28T17:39:05ZCopyright ©2010-2024, Desert Code Camp Functional Programming in an Imperative World An introduction to PFP with HaskellAn introduction to programming without side effects using the Haskell programming language, including recursion and iteration using lists; higher order functions such as filter, map, and fold; an overview of controlling flow using the functor, applicative functor, and monad type classes, and an introduction to safe concurrent programming in the language.Mon, 08 Sep 2014 17:37:12 Z2014-09-08T17:37:12ZCopyright ©2010-2024, Desert Code Camp Extensions (Rx) in ActionYou may have seen the theoretical discussions of Reactive Extensions and heard about the duality of IEnumerable and IObservable, but are still scratching your head to know how and when to use them. In demo filled session, we'll cover a number of cases where it makes sense to consider RX to declaratively compose complex operations over observable sequences in an elegant LINQ like syntax. We may even have some chocolate induced audience participation along the way.Thu, 31 Jul 2014 04:58:37 Z2014-07-31T04:58:37ZCopyright ©2010-2024, Desert Code Camp world React with Fission<h1>React.js is getting traction in the JS community.</h1> <h1>This talk goes over real world usage of React, and shows examples of it's usage in applications.</h1> <p> </p> <p> </p>Mon, 18 Aug 2014 21:38:13 Z2014-08-18T21:38:13ZCopyright ©2010-2024, Desert Code Camp World WebSocketsUsing the latest version of we'll look at the code and functionality of a real world web application that is using this in production. We'll look at how to work around reverse-proxies that don't have WebSockets enabled and still enable the use of WebSockets. You will leave this session armed with the knowledge to implement WebSockets in your web application and you will be able to enable real-time interactive updates and collaboration.Wed, 17 Sep 2014 17:42:44 Z2014-09-17T17:42:44ZCopyright ©2010-2024, Desert Code Camp Your Code With Defensive ProgrammingThis is a companion session to the Rock Your .NET Coding Standards that takes writing better code to the next level. Do you enjoy receiving bug tickets from QA? Didnt think you would, so this session will provide solid practices that I have been using for most of my programming career to check-in to source only rock solid code. You will learn my #1 mantra, along with 13 rules, that I use while writing code that allows me to write new code (features) and stay out of maintenance mode hell.Tue, 22 Jul 2014 23:16:52 Z2014-07-22T23:16:52ZCopyright ©2010-2024, Desert Code Camp Your Technical Interview (Part 1)<p>Have you ever not gotten a job because you weren’t prepared for the interview? Would you like a big raise? Do you need motivation to rock your career? I’ve interviewed 100's of software developers and will share my knowledge on how to survive, what we look for and even divulge some of the secrets we use during the process. This session (62.5% new material for 2014) will include crazy and strange interview stories from engineers just like you! This session includes tips to get you started, working with recruiters, getting prepared, the technical interview and more. You will also learn what is the #1 question you need to ask during an interview… it’s a game changer! Sit close and you just might catch a custom dotNetDave guitar pick. Some of some of them will win you free software!</p> <p>Make sure to attend Part 2 of this session.</p>Tue, 22 Jul 2014 23:16:55 Z2014-07-22T23:16:55ZCopyright ©2010-2024, Desert Code Camp Your Technical Interview (Part 2)<p>Make sure attend Part 1 of this talk first. Have you ever not gotten a job because you weren’t prepared for the interview? Would you like a big raise? Do you need motivation to rock your career? I’ve interviewed 100's of software developers and will share my knowledge on how to survive, what we look for and even divulge some of the secrets we use during the process. This session (62.5% new material for 2014) will include crazy and strange interview stories from engineers just like you! This session includes tips to get you started, working with recruiters, getting prepared, the technical interview and more. You will also learn what is the #1 question you need to ask during an interview… it’s a game changer! Sit close and you just might catch a custom dotNetDave guitar pick. Some of some of them will win you free software!</p>Tue, 22 Jul 2014 23:16:58 Z2014-07-22T23:16:58ZCopyright ©2010-2024, Desert Code Camp Defined Radio - An Introduction<p>Software Defined Radio (SDR) provides the perfect low-cost method to explore the world of RF (Radio Frequency.) SDR is a flexible radio system that utilizes software instead of specialized hardware to decode radio signals. It can investigate a wide frequency range and decode many different RF protocols. This talk will provide a basic understanding of SDR. It will then discuss some of the available and affordable hardware and software tools for exploring SDR. We’ll finish with a live action demo (fingers crossed!)</p>Wed, 27 Aug 2014 22:15:02 Z2014-08-27T22:15:02ZCopyright ©2010-2024, Desert Code Camp Server Analysis Services Best PracticesA journey through best practices in relation to scalable SQL Server Analysis Services cube design. From dimension design to SSAS engine internals we will explore SSAS multidimensional design patterns that will take you through steps to assist in getting your SSAS cubes better optimized to better match the needs of your organization. After this session you will be able to take these performance design patterns and apply them to new and existing cubes to tune your SSAS cube environment.Wed, 30 Jul 2014 09:49:41 Z2014-07-30T09:49:41ZCopyright ©2010-2024, Desert Code Camp Points RevisitedPerhaps one of the most misunderstood concepts for people new to Agile (and even some not so new) is the concept of story points. It seems that everyone remembers planning poker and playing with cards, but the real essence of what points are, how to assign points, when to assign points, how to use points to determine velocity, what points mean to upper management seem to be either forgotten or not properly trained from the start. Learning objectives: * Learn that points are not absolute but refer to relative size * Learn that points are almost always specific to a scrum team and should not be used to determine relative maturity among teams * Learn that Planning Poker is perhaps the most inefficient (though memorable) way to assign relative size * Learn other appropriate techniques for sizing * Learn to size with non-collocated teams (if you are stuck with such an arrangement) * Learn how to use points to plan long term potentiality * Learn how to explain points to others to dispel prevalent mythsThu, 11 Sep 2014 06:39:23 Z2014-09-11T06:39:23ZCopyright ©2010-2024, Desert Code Camp 101This year at WWDC 2014 Apple announced a brand new programming language, Swift ( Come learn the basics of Swift and Xcode Playgrounds. This session is geared towards the beginner in every sense. With Xcode Playgrounds, Swift is an incredibly inviting language for first time programmers. Come with a MacBook and Xcode 6 installed so that you can follow along! A computer is not required to attend this session but encouraged.Fri, 22 Aug 2014 20:02:32 Z2014-08-22T20:02:32ZCopyright ©2010-2024, Desert Code Camp TricksMoving beyond Hello World with Apple's Swift and into a deeper understanding of the more advanced language features.Tue, 02 Sep 2014 14:12:43 Z2014-09-02T14:12:43ZCopyright ©2010-2024, Desert Code Camp Kata Live!Are you still trying to understand how TDD can help drive your design? Still not sure what the benefits of TDD? Not sure how you would get a project started using TDD? In this session, Rob Bagby will do the Shopping Cart Kata ( from beginning to end (if he can make it). You will see how this approach will help you separate the responsibilities of classes (SRP) and drive a design that is open for extension and closed for modification (OCP).Tue, 26 Aug 2014 18:23:18 Z2014-08-26T18:23:18ZCopyright ©2010-2024, Desert Code Camp Evolution of Asynchronous Programming on .NETEverything you wanted the know about asynchronous programming in .NET, but were afraid to ask. Multithreaded programming is hard. the latest version of Visual Studio includes language additions to C# and VB to make it much easier to write asynchronous code (the async and await keywords). .NET has had numerous ways to implement asynchronous and lengthy operations over the years. This session details some of these techniques, their benefits and their drawbacks. This session also details the progression of these techniques leading up to async/await in an effort to better understand the new syntax as well as better understand how to migrate existing asynchronous code to the new syntax. As well, this session allows you to increase your expertise with several advanced language features that the new syntax and existing patterns build on, like lambdas, anonymous methods, closures, etc.Fri, 25 Jul 2014 22:48:18 Z2014-07-25T22:48:18ZCopyright ©2010-2024, Desert Code Camp Glory of RESTAn overview of REST and what it is. This talk will also describe what it means to be truly RESTful (an ideal vision), and what elements truly make a RESTful API (many APIs that claim to be RESTful aren't).Wed, 27 Aug 2014 09:02:27 Z2014-08-27T09:02:27ZCopyright ©2010-2024, Desert Code Camp the fundamentals about MongoDB ReplicationUnderstanding the fundamentals about MongoDB ReplicationMon, 22 Sep 2014 12:23:43 Z2014-09-22T12:23:43ZCopyright ©2010-2024, Desert Code Camp API with Xamarin Forms<p>In this session we will use API and Xamarin forms to create cross platform apps to find local brewery information.</p> <p>Items covered:</p> <ul> <li>Xamarin Forms <ul> <li>Starting solution</li> <li>UI building in Xaml</li> <li>Running in various simulators</li> </ul> </li> <li> <ul> <li>Site</li> <li>API signup</li> <li>Hitting the service</li> </ul> </li> </ul> <p>NOTE: will not go over install and setup of Xamarin for development. </p>Sun, 10 Aug 2014 07:28:42 Z2014-08-10T07:28:42ZCopyright ©2010-2024, Desert Code Camp C# Developers Should Know About JavaScript<p>Don't be fooled by the similarity in syntax between JavaScript and C#. While they share a similar paint job, the languages are very different under the hood. Writing JS like C# can get you into trouble quickly, but this session will introduce key JS concepts in a way that will have you writing clean, solid code in no time. Topics covered include: functions, object literals, and primitive types; prototypal inheritance; variable scoping; modular patterns; pitfalls such as type coercion, implied globals, and truthiness; and more, brought to you from the perspective of an experienced .NET/C# developer.</p>Wed, 20 Aug 2014 16:41:33 Z2014-08-20T16:41:33ZCopyright ©2010-2024, Desert Code Camp's new in Java 8<p>Java 8 added some fairly ground-breaking functionality to the language. Lambdas, default method implementations, and function interfaces add a whole slew of possibilities for functional programming in Java.</p> <p>Quick Agenda:</p> <ul> <li>New Date/Time APIs</li> <li>Default Method Implementations</li> <li>New Reflection Functionality</li> <li>Lambdas / Function Interfaces</li> <li>Wrap Up</li> </ul>Mon, 18 Aug 2014 16:01:14 Z2014-08-18T16:01:14ZCopyright ©2010-2024, Desert Code Camp Agile Works...and How to Screw it Up!This fast moving discussion contains a bit of theory, some interesting statistics, and a few activities. We'll talk a little theory, then we'll "connect the dots" from Scrum the framework back to the theory. All of this will give you a REAL understanding of why Agile works. You'll leave the session wondering "Wow, how could we develop software in any other way!!??", and your reasons for "doing Agile" (and "being" Agile) will be much better than "Uhhhh....because everybody else is doing it?" If youre not well-versed in Agile or Scrum, dont worry, there is just enough background so everyone can keep up. After we understand why it works, we'll touch on just a few of the ways to mess things up. NOTE: Yes, This is kind of an "oncore" performance from the last DCC. I've made a some changes and updates, but the last session was so well attended I thought I'd do it again.Fri, 05 Sep 2014 19:46:17 Z2014-09-05T19:46:17ZCopyright ©2010-2024, Desert Code Camp Mobile Development with the new 3.0 frameworkBuild native UIs for iOS, Android and Windows Phone from a single, shared C# codebase.Mon, 21 Jul 2014 19:11:48 Z2014-07-21T19:11:48ZCopyright ©2010-2024, Desert Code Camp