Herding Code 152 – Josh Twist on Azure Mobile Services

The guys talk to Josh Twist about the newly released Azure Mobile Services.

Download / Listen:

Herding Code 152 – Josh Twist on Azure Mobile Services [audio://herdingcode.com/wp-content/uploads/HerdingCode-0152-Josh-Twist.mp3]

Show Notes:

  • How Azure Mobile Services got started
    • Jon asks Josh how he got involved with Azure Mobile Services.
    • Jon asks Josh about the Zumo code name – ZU from Azure, MO from Mobile.
    • Josh explains how things got off the ground with a real startup feel.
    • Steve Sanderson was a dev on the team, working on the interactive portal experience.
    • Jon asks about platform support. Josh says that Windows 8 was the platform that was initially announced at launch, but other platforms are on the way very soon.
  • The three personas the Azure Mobile Services
    • The hobbiest app developer who have very limited time and wants to spend the time on their mobile clients, not the backend services. Jon talks about the experiences he had on The Full Stack project with Jesse Liberty.
    • The client focused developer is working full time on a mobile application, but still wants to focus on the application rather than the backend – and wants to make sure that it’s going to scale when needed.
    • The veteran backend developer, who is very comfortable with building services. Josh says these folks are already pretty well served with existing Azure services.
    • Josh says that Azure is primarily focused at the first two personas – developers who want to focus on the client applications and have the back end just work.
  • Jon asks about an example – a social game where he can invite friend to play a game, track high scores, etc.
    • Josh lists out some of the features  Jon would probably want – authentication, structured storage, push notifications, etc.
    • Josh describes some of the challenges Jon might run into and how Azure Mobile Services handles extensibility by allowing for server-side scripts, written in JavaScript.
    • Jon asks Josh about the identity provider story.
    • Jon asks if the server-side JavaScript scripts use Node.js.
  • Josh talks through a to do list sample application.
  • Jon asks about how the client libraries will likely look on other platforms like iOS and Android.
  • Data
    • Jon and Josh talk about the data story.
    • Josh explains the dynamic schema system.
    • Jon asks handling hierarchies in data. Josh says not yet, although you can use scripts to handle that.
  • Lots of random questions time!
    • Jon talks about a blog post on accessing the Azure Mobile Services via the REST services. Josh says that’s great, encouraged, and you can use that approach to use Azure Mobile Services from all kinds of frameworks and platforms, mentioning several examples.
    • Kevin asks about handling the scripts as production code – can it be under version control? Josh says that’s in the works. They’re also thinking about the packaging story, to allow for exporting services and moving them between environments.
    • Kevin asks if there’s a migration path if you hit limits in Azure Mobile Services. Josh says that you’d handle this through composition with other services, but they’re looking for feedback for things they can add via service and script support.
    • Kevin asks how the billing works. Josh says you pay for what you use, so you pay for the underlying services you use. You can get 10 free instances, but can pay to scale up if you want.
    • Kevin asks about their experiences in building with Node.js. Josh explains how the runtime runs on Node, but the service management uses ASP.NET Web API. They mainly picked Node.js to allow for server-side scripting using JavaScript.
    • Jon asks if there’s a way to run locally for testing. Josh says not yet, but definitely something they’re think about.
    • Jon asks about concurrency support.
    • Kevin asks about monitoring and troubleshooting support. Josh lists out some of the realtime dashboard features.
    • Jon asks about other configuration options in the Azure portal. Josh lists a few – authentication, data, etc. – but says the goal is to keep things simple.
  • Relationship of Azure Mobile Services with Azure Web Sites and Azure in general.
    • Jon asks about the relationship to Azure Web Sites. Josh explains how they worked with the Azure Web Sites team to get sandboxing. They’re running on a special version of the Azure Web Sites system that’s specially tuned for their services.
    • Jon asks about scaling with Azure Mobile Services. Josh educates Jon on some Azure basics he really should know.
  • Jon asks Josh about how listeners can get started.
    • Josh list the link: http://aka.ms/mobileservices
    • Josh and Jon joke about the todo list quickstart challenge. Josh says new users should be able to have an application running in under 5 minutes, and Jon says he was impressed with Josh’s performance on Cloud Cover: 2:03 despite heckling.

Show Links:

Herding Code 151 – Rob Eisenberg on RPGWithMe, Durandal, and XAML vs. HTML5 development

The guys talk to Rob Eisenberg about RPGWithMe (his new web-based platform centered around tabletop RPGs), Durandal (the essence of Caliburn.Micro re-imagined for HTML and Javascript) and his thoughts on the current state of XAML development.

Download / Listen:

Herding Code 151 – Rob Eisenberg on RPGWithMe, Durandal, and XAML vs. HTML5 development [audio://herdingcode.com/wp-content/uploads/HerdingCode-0151-Rob-Eisenberg.mp3]

Show Notes:

  • RPGWithMe and Durandal
    • K Scott asks Rob to discribe RPGWithMe. RPGWithMe is a subscription based web product for playing tabletop RPGs.
    • K Scott asks how he found HTML5  compared to XAML development, and whether he used any frameworks to develop it. Rob explains how he built a new framework, Duandel, to bring Caliburn.Micro style development to HTML5 development.
    • Rob explains how Durandal uses  RequireJS to modularize things – viewmodels are mapped to modules, and modules are mapped to HTML files. Knockout is used to compose things at runtime, and RequireJS packages things up into a single file.
    • Jon asks it it’s possible to use this with WinRT. Rob says he hasn’t tried it, but thinks it should work since it’s just a JavaScript file.
    • K Scott asks if the same conventions in Caliburn.Micro apply. Rob says he’s just using Knockout at this point, but would eventually like to phase out Knockout for a custom databinding system. Knockout’s fine, but he doesn’t like the syntax for databinding and the intrusiveness into viewmodels.
    • K Scott, Rob and Kevin talk about the intrusiveness of Javascript frameworks which convert properties to functions to allow for observability, and how newer browsers can wrap getters and setters to imporove the code readability and debugging experience.
    • K Scott asks whats on the server side. Rob’s using ASP.NET MVC 3 running on AppHarbor with cloud hosted RavenDB with IronMQ and some Amazon services.
    • K Scott asks how all the realtime stuff is working in the browser. Rob’s using PubNub for communications and Canvas and CSS 3 for rendering. He explains that it’s really tricky to get high performance, high quality graphics rendering working on different devices with an interesting example form an issue he hit with larger images on iPads.
    • Jon asks if there’s work he’d do in the future to support Retina / high dpi displays. He says he’s moving away from images to CSS 3 where possible.
    • Jon asks about the creation / editing environment. Rob explains how the system is built around user generated content. Jon asks if there are ways
    • K Scott asks what games Rob’s played in the past. Rob says he’s played Dungeons and Dragons 4th Edition and Savage Worlds and explains some of the background of tabletop role playing games. He supports three gaming systems, but doesn’t enforce rules – this allows for a lot more flexibility and matches the way people play in the real world.
    • K Scott asks about how players would communicate while playing (e.g. to yell Leroy Jenkins!).
    • Jon asks more about rules and enforcement, and Rob lists a lot of reasons why he doesn’t think it’s a good idea to get into rule enforcement.
    • K Scott asks about how the metadata is handled. Rob describes how he’s got an abstract model that allows for supporting – and importing from – three gaming systems, and how he wants to make it more extensible in the future.
    • Kevin asks if there’s a mobile version. Rob talks about platform support – works on iPad, Windows 8, and Android although Android performance is the worst.
    • K Scott asks about the Durandal project out on GitHub.
  • Caliburn and Caliburn.Micro
    • K Scott asks Rob what’s going on with Caliburn and Caliburn.Micro. Caliburn.Micro is adding full support for WinRT and considering how to add support for additional WinRT features. He said he was worried about porting to WinRT but it wasn’t too bad – most of the work was around changes to the reflection API and lack of behaviors. He’s hopeful that this means it’ll port to Windows Phone 8.
  • XAML and HTML5 development
    • Kevin asks about Rob’s frustration on building tools for XAML development due to the differences between the platforms. Rob says he’s been moving to HTML5 more due to all the headaches.
    • Jon wonders if some of this may be transitional with things moving to WinRT as a standard XAML platform. Rob agrees, but he’s got from fatigue from all the times he’s had to port his code in the past.
    • Jon says that it’s nice that in the HTML5 world you can use tools like jQuery to abstract differences between browsers, whereas you can’t really do that when working about different XAML platforms. Rob talks about how people are trying to abstract things in the XAML world, but it’s not really possible to abstract platform differences.
    • Jon, Kevin and Rob discuss the differences between styling in XAML and HTML5 development.
    • Jon asks Rob about the developer decision between HTML5 and XAML for WinRT development. Rob’s happy with the choice, and thinks it’s funny that Microsoft did this rather than Google.
  • K Scott asks Rob if there’s any new big things going on he wants people to know about, and Rob mentions the Kickstarter effort to add interactive character sheets.

Show Links:

Herding Code 150 – David Starr on the People, Practices, and Tools of Development

The guys talk to David Starr about how people, practices and tools factor into software development. Can developer tooling be part of the solution rather than part of the problem? What’s the state of Scrum? How does Nascar fit in?

Download / Listen:

Herding Code 150 – David Starr on the People, Practices, and Tools of Development [audio://herdingcode.com/wp-content/uploads/HerdingCode-0150-David-Starr.mp3]

Show Notes:

  • From Nascar to Scrum.org to Microsoft
    • K Scott outs David as a developer of the original NASCAR site.
    • David’s been working with Scrum.org but just took a job at Microsoft in the Visual Studio team as a senior PM based on his interest in executable specifications.
    • K Scott asks David about his thoughts based on working with Scrum.org. David sees Scrum as nearly ubiquitous, but most just use it as a way to manage daily checklists rather than effect broader change.
  • SubSpec and executable specifications
    • K Scott asks David about his recent post on SubSpec and how it compares to SpecFlow.
  • Software code of ethics
    • K Scott asks David about his post thinking about a professional code of ethics for software development.
    • David thinks it would be nice if we had a profession.
    • Jon asks if this kind of approach is even relevant to a lot of most software developers.
    • Scott K mentions a discussion on the show a few years ago about board certification but wonders who would run it.
    • David says that any certification offered by a tool vendor or methodology proponent is worthless.
    • Scott K asks if there’s any overarching certifiable skills that bridge Ruby, Scala, Java, .NET, architecture, development, etc. David says that in other trades it’s unions that push things, but doesn’t want that in the software world.
    • Jon says that he sees so much disagreement on values between languages and methodologies that he wonders if our profession could agree on anything at all.
    • Scott K asks if software really is a craft, as he doesn’t  see beauty in code. David says he doesn’t see code as words but as shapes. Scott K, David and Jon discuss where the beauty really is – perhaps not the code, but the result.
  • Jon asks how these discussions and values tie into Visual Studio tooling.
    • David says that tooling is a great way to take the kinds of things bleeding edge developers are excited about and turn them into things that are accepted and used by the broader community – as long as the hierarchy of people over process and process over tools is respected, it’s a great idea to make better tools.
    • Scott K asks what he sees are the most important things to fix in the tooling. David says he’d like to see development teams modeled as teams rather than differing roles. He’d like to improve the experience for the “specializing generalist.”
    • David says that he sees the tools making the rules in the real world, and if the tools are counter to our value systems we should change that.
    • Scott K says people might just be fooling lights to green and David says that’s a fireable offence. Jon asks if it’s possible to automate that by integrating TFS with Microsoft CRM.
  • Jeff Schumacher asks if he still has the awesome fire shoes.
  • The Code Junkie asks why someone should pick TFS over the other options when doing agile / scrum.
  • Brian Lagunas asks  what are the downsides of TDD.
  • There is a frightening discussion of a theoretical XamlSpec testing framework.
  • Scrum effectiveness
    • Paul Stack whether scrum has become a make believe methodology companies use to pretend they’re agile.
    • David says methodologies are always abused. He likes to tell people to try scrum by the book for a few months before making changes or compromises. Jon says every company wants to believe they’re different, and that’s rarely something to cling to.
    • Scott K says he sees people focusing on tooling and this leads to “scrumbut” – the practice of doing scrum, but… David says he really tries to avoid that term – scrum is a tool.
    • Kevin says he sees Scrum as a project management methodology as opposed to XP which also focuses on the engineering side. David says that you can’t be successful separating Scrum from good technical practices.
  • David talks about his last user group presentation before moving, says he’s not going to be travelling as much in the near future, and conversation drifts back to XamlSpec as the most useful result of this discussion.

Show Links: