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:

Herding Code 149 – What I Did With My Summer Vacation

The guys check in after a summer hiatus with a discussion covering travel, books, e-book readers, two factor authentication, Windows 8, OSX Mountain Lion, and hover cranes.

Download / Listen:

Herding Code 149 – What I Did With My Summer Vacation [audio://herdingcode.com/wp-content/uploads/HerdingCode-0149-What-I-did-with-my-summer-vacation.mp3]

Show Notes:

  • Travel
    • Jon asks starts by asking where everyone’s been travelling to over the summer.
    • K. Scott’s basically a European at this point.
    • Jon went to Oslo, Buenos Aires, Sao Paulo, Redmond, and rural New Jersey, and Kevin survived a road trip with kids thanks to iPads. Jon really liked Buenos Aires. He talks about his Web Camps presentations in South America, including a Windows Azure Web Sites talk where he builds and deploys a classic ASP app via FTP, ASP.NET / SignalR app via Visual Studio Web Deploy, a Node.js app via git publish, and a WordPress site via WebMatrix deploy in one hour. He’s amazed by how translators can listen to obscure technical jargon and speak in another language at the same time, including prompts about when the audience should politely laugh at a failed joke.
    • Kevin survived a road trip with kids thanks to iPads.
  • e-book reading devices
    • Scott K has been running the CyanogenMod Android ROM on his Nook Color.
    • There’s some discussion on the benefit of a 7" form factor device and rumors about a 7-ish iDevice on the way.
    • Jon and Kevin love their Kindles, and Scott K talks about what he likes about the Nook Color.
    • Scott K mentions O’Reilly’s Bookworm site, which was sadly closed down as of March 31.
    • Jon has stayed with the Kindle eInk devices for the read aloud support, which is sadly missing on all the other top ebook devices. Kevin like the long battery life.
  • Book Reports
  • Geek Travel Tips
    • Jon and K. Scott use a checklist to make sure they don’t forget important things like chargers and adapters.
    • K. Scott doesn’t assume anything and keeps a small bit of foreign cash handy.
    • Jon and K. Scott both really like TripIt.
    • Jon talks about how he handled a cancelled flight to Buenos Aires by calling in (rather than waiting in line) and being nice.
    • Jon and K. Scott both avoid checking bags when possible.
  • Two factor authentication.
    • Jon tells the story about how Mat Honan’s account was hacked.
    • The guys talk about how Google Two Factor Auth works for them.
    • Jon saw an interesting tip: use a separate e-mail account for password recovery.
    • Everyone complains about two factor auth’s usability and hopes it gets easier.
  • K. Scott talks about how Internet Explorer 10 will have Do Not Track on by default. The guys talk about their thoughts on targeted ads and tracking: a little is good, too much gets creepy.
  • Jon’s using Windows 8 RTM.
    • The guys discuss the user interface and discoverability. Scott K worries that nobody will be able to shut their computers off.
    • Jon likes the fast install and lock screen. Scott K talks about problems with face recognition login, but it looks like that was removed before RTM.
  • OSX Mountain Lion
    • Jon asks what the guys think about the change OSX so that Save As also saves over the original file. Kevin talks about some of the things he like in Mountain Lion.
    • Jon and Kevin discuss the different ways the Windows and Mac communities react to changes.
    • Jon asks about AirPlay and complains that it’s difficult to stream audio from one device to another.
    • Kevin talks about the notification system.
    • Jon asks about updates to connectors.
  • Gold Medal or Martian Hover Crane?

Show Links:

Herding Code 148 – Chris Hardy on Xamarin, MonoTouch and Mono For Android

Here’s the last of K. Scott and Jon’s interviews from NDC Oslo 2012: a conversation with Chris Hardy about Xamarin, MonoTouch, Mono For Android, and mobile development.

Download / Listen:

Herding Code 148 – Chris Hardy on Xamarin, MonoTouch and Mono For Android [audio://herdingcode.com/wp-content/uploads/HerdingCode-0148-Chris-Hardy.mp3]

Show Notes:

  • Jon asks Chris what he does at Xamarin.
  • Jon asks about how the development experience works when building an application using Xamarin products and targeting multiple platforms (e.g. iOS and Android)
  • Chris talks about how developers create the user interface layers – either using XCode, or just building the UI in code. He mentions PaintCode as a generator for user interface code.
  • K. Scott asks about the process of sharing logic and service code between platforms.
  • K. Scott asks how iOS and Android can call back into Mono code.
  • Jon asks about the installation experience for setting up all of the Android development dependencies.
  • Chris mentions that MonoDevelop supports Android UI design.
  • K. Scott asks about interesting things people have built with Xamarin. Chris mentions rdio and iCircuit.
  • Jon asks how developers handle platform specific issues while developing. Chris mentions several options for sharing code between platforms.
  • Jon asks how things are working under the hood – is IL being deployed? Is anything being JITted?
  • Jon asks about his opinion as a developer who works on all the main mobile platforms. Chris says he loves his iOS devices, but is interested in Windows 8.
  • Jon asks about Chris’ thoughts on the publishing process between platforms.
  • Jon asks about the debugging experience – are you using emulators? How do they work? Do you get realtime debugging?

Show Links: