Recent Posts

  • It’s time for a change, and more of the same.

    Starting next week, I will be joining the Runscope team.  Runscope provides tools that help developers debug, test and monitor Web APIs.  This is a company that lives and breathes HTTP.  If you know me, I’m sure you understand why that appeals to me. Continue reading...

  • Web Standards Search Engine

    I always struggle to use the IETF and W3C web sites to find Web standards that I am looking for.  Google and Bing work ok for finding stuff if you can hit the right keywords, however if the terms you are searching has other more popular usages, then you have to wade through irrelevant results. Continue reading...

  • Tavis.Link and dependencies

    I’m currently writing a bunch of media type parsers and have been struggling with the question of whether it is wise to take a dependency on Tavis.Link.  I do believe that libraries should be as loosely coupled as possible and I really don’t like libraries that have a big web of interdependencies.  Continue reading...

  • What? No Comments

    I’ve spent at least four hours today trying to get disqus working on this new Orchard CMS installation.  Still no success.  Once I have figured it out, I will re-enable comments. Continue reading...

  • A Mercurial changelog

    I need to write this somewhere or I’ll forget how to do it.  I’ve recently started using branches in hg for my target environments instead of using separate repositories as is recommended by Kiln.  I got a request to produce a list of changes that would be going into the next production release and knew there must be a way of doing it in hg.  This is what I found, Continue reading...

  • Experiments with Katana

    A few months ago I put up a site http://hypermediaapi.com with the intention of using it as place to aggregate links to all things hypermedia related. I built the site using Web API because a) I know how to use it, and b) I wanted to prove a point that a Web Site is really just a special type of Web API. Continue reading...

  • How not to write spec documents

    A few of us keep complaining about the way the HTML5 specification is written.  The argument we are given is that the HTML5 is written in a more prescriptive form to reduce the ambiguity that exists in the more traditional “declarative” style RFC documents. I’ve spent a fair bit of time reading specs over the last few years and although they were tough to get going with I feel pretty comfortable now. Continue reading...

  • Deep Fried Hypermedia

    I recently had the opportunity to be interviewed on the Deep Fried Bytes podcast about practical uses of hypermedia for desktop and mobile applications.  Hypermedia is one of those topics that we are all familiar within the web browser, but it tends to get forgotten when people start writing client applications.  There are many ways to leverage the declarative layer of indirection that hypermedia brings. Continue reading...

  • Troubleshooting serialization problems in Web API

    I see many questions on Stackoverflow and the MSDN forums where people are having difficulty because the objects they are trying to return from there API are not being serialized as they expect.  Consider you have an API action that looks like this: Continue reading...

  • What does coupling mean to you?

    When talking about REST, the conversation usually boils down to coupling.  REST enables distributed components to evolve independently over long periods of time, and it does this by constraining where coupling can occur. Continue reading...

  • Using Nuget to give Web API that Add Service Reference experience

    Ever since Microsoft’s first efforts to deliver a REST style framework in .net, back in 3.5,  there has been a continuous stream of questions that has asked: how to I add a service reference to that API? How do I generate a client proxy?  How do I access the WSDL for the REST service?  Can I generate classes from WADL? Continue reading...

  • WebPack

    I would like to introduce the term WebPack.  A WebPack is a shareable implementation of link relations, media types and other types that provides a client application with sufficient semantics to be able to communicate with a Web API. Continue reading...

  • Subtleties of MVC Routing

    I’ve been writing an alternative to the MVC routing mechanism for ASP.NET Web API based on prior approaches that I have worked with.  I’ll blog more about that in the future.  Continue reading...

  • Naming things is hard

    Much of my career has been spent with me as the most senior developer on my team.  It has its pros and cons, I have learned how to figure stuff out on my own, but I have had to re-make many mistakes that I could have avoided. Continue reading...