This is the blog of Adam Crossland. It runs on Google AppEngine, and Adam created it in order to learn about AppEngine and the technologies it uses, such as Python and Django.

Adam is a software development consultant with two decades of professional experience. He primarily works in the Microsoft ecosystem, specializing in custom application development in .NET, using C#, Windows Forms, ASP.NET and ASP.NET MVC, but he is also deeply involved with Ruby on Rails, Google AppEngine and Python.

If you would like to speak with Adam about your custom application development needs, please contact him at

In addition to the custom software that Adam wrote for this blog, it uses:

Credit where credit's due!

Portions of the code from this software were extracted and made into separate open source projects:

  • MVCEngine: While Google's AppEngine is very flexible and very powerful, developing working web applications on top of the bare framework can by repetitive and time-consuming. MVCEngine is a light-weight platform that allows you to focus on the functionality rather than the plumbing. Influenced by Ruby on Rails and ASP.NET MVC, it should feel familiar and easy to get started with. It includes extensive documentation, the full source code of this blog as an example application, automated unit tests and a utility to help you automate manual tasks associated with creating and maintaining your application.
  • taggable-mixin: If you are creating an AppEngine application, and you need to make one or more of your entities taggable, consider using taggable-mixin.
  • sluggable-mixin: Would you like entities in your AppEngine application to have nice, readable slugs associated with them rather than long, meaningless and ugly Datastore keys? Sluggable-mixin is trivially-easy to add to your code and to integrate with your entities. Give it a try!

Stack Overflow profile for Adam Crossland at Stack Overflow, Q&A for professional and enthusiast programmers Programmers profile for Adam Crossland at Programmers, Q&A for expert programmers interested in professional discussions on software development