Today and tomorrow is Prairie Dev Con 2014 in Winnipeg – I’ll be talking on two topics and attending others, so I’ll jot my notes down as we pick things up. Consider this a live blog!
Keynote: The Coming Tsunami
Joel Semeniuk from Imaginet (as well as a bunch of other companies) talks on how the huge wave of consumer devices and changes that have come from that has started (or will start) to infiltrate the enterprise – and the coming opportunity as developers to provide enterprise-level solutions in the mobile space. Joel stated that most existing companies don’t have a mobile strategy, and the ones who do haven’t got around to implementing it yet.
You Design Is Only Mostly Dead
Steven Rogalsky walked us through a brainstorming and design exercise that allows for the creativity of individual brainstorming while sharing and collaborating with the group. There were about 10 minutes of slides which focused on (among other things) the SCARF Model of change management – taking into account others’ Status, Certainty, Autonomy, Relatedness, and Fairness when sharing ideas. Afterwards we broke into teams of four to individually come up with ideas to a common problem, and then presented and discussed them as a group. It was a fun exercise, and really highlighted the advantages of giving everyone a chance to contribute and share ideas. Slides available here
Rocking out with Android Studio
Jonathan Mills gives an intro to the Android Studio IDE and Android development in general. The talk started with a review of the API level segregation and how to decide which API levels to support, and then broke into some file->new project. Android Studio does a bunch of cool stuff compared to Eclipse with ADK – including rendering your resources inline with your code, a lot of refactoring tools (similar to Resharper in .NET), a preview window to show you how your app looks on various devices.
Android Studio also comes with a design tool to allow you to essentially drag & drop your UI as opposed to the tedious XML you usually have to type. Using the designer we explored different layout and widget configurations and created a rudimentary UI for a quick sample application. We also played with the Android Emulator – did you know you can call or text an emulator by simply dialing the localhost port from another emulator?
Jonathan Rozenblit gives a talk on how to take advantage of all the programs that exist to help you learn, network and grow. Highlighting the fact that the majority of developers don’t actually think about their future careers or growth, Jonathan gave a few tips on ways to network both in-person and on-line. By creating that personal profile with people you can take advantage of “It’s not what you know, it’s who you know”.
Intro to Angular.JS
K. Scott Allen gives a quick intro to the Angular.JS framework. We created a single page app that made a call to an API and rendered it on screen, using angular modules, controllers, and view templates. I was really impressed by the two-way binding and testability of angular code, but I still can’t get my head around the “dirty HTML” you write with ng- (or data-ng-) attributes. I do also appreciate the separation of concerns enforced by the separation of applications, controllers, routes, and services. Routing was interesting, particularly the “master layout”-like feature where you can inject HTML from a file in response to a URL. You can see the code we worked on in github
Surviving Gremlin Invasions in the Cloud: A Primer on Building Reactive Applications
James Chambers and Simon Timms deliver a talk on making your web applications engaging, scalable, event-driven, and resilient. Making sure your software is designed in a way where you can distribute it to multiple machines has a long-term payoff compared to applications that need to live on a single server and depend on hardware for performance. Approaches like event or message-driven architecture and graceful service degradation help create applications that can easily scale when needed. They used a demo app that ran a “status thread” (for lack of a better term) and proceeded to kill off their database, table storage, and web services, showing how the web application can still be used.
Index-Fu: Getting the most of your indexes
Michael DeFehr presents on some advanced tips and tricks with SQL Server Indexes. I went into this talk knowing not very much about indexes and came out with my mind sufficiently blown! He discussed page trees, including extra columns with your indexes, enforcing conditional unique constraints, and indexing over compiled views. A lot of good tips and tricks for optimizing those complicated SQL queries you’ve been doing.