Thursday, 17 September 2009

VAT on mileage expenses

For the best part of a year now, I've been unsure about whether VAT should be added to mileage expenses to our clients and have received conflicting information from accountants, clients, websites, and forums. HMRC were of no use when I called them and asked for advice - they pointed me towards their website and refused to give me advice on a specific example.

Finally, an accountant from a forum (FreeAgent Central) has managed to get a definitive answer out of HMRC. He replied to my queries with their email response and I include it here for the benefit of anyone else confused by this. In short, VAT is always applicable on mileage as it is "not a service received by your client" and cannot therefore be treated as a disbursement.

Thank you for your email dated 17 August 2009, regarding the VAT treatment of mileage costs.

You have asked if VAT must be added to any mileage costs reclaimed from a client when it is itemised separately on the invoice.

Firstly, I would point out that the sub-paragraph you refer to in The VAT Guide, 25.1.3, gives examples of supplies that cannot be treated as disbursements, and concludes each example with a confirmation that VAT is due on the full value of the supply.

However, in respect of the recovery of costs from a client, these would always be taxable unless they were third party payments made by you, and therefore treated as disbursements. Mileage costs are something that you will have incurred and which you wish to recover. They are therefore always taxable as they are not a service received by your client.


My thanks to Stuart Jones for this.

Monday, 3 August 2009

Server-side validation: a follow up

From the response to my previous post of a few days ago on the subject of server-side validation, it seems some of you remain unconvinced as to its need and continue to hold the belief that the client is responsible for all data validation.

Primarily, the argument seems to be that it's not needed if you're writing both the client and server components - that you're happy to rely on your own ability as a front-end developer and not bother with server-side validation. In this post, I will attempt to demonstrate how even data with a high level of accuracy can benefit from server-side validation, and how you can do that validation in an entirely inobtrusive way.

Sunday, 2 August 2009

Flex persistence patterns

It is rare you will find a Flex application that doesn't require data persistence of some sort, whether it be to server via remote objects or web services; or saving locally to an SQLite database as in the case of AIR.

Working on various projects throughout my Flex life, I've come across many different approaches to how this is done, especially in the context of Cairngorm. Exhibit A:

[as3]
// Create my user
var myUser : User = new User( "John", "Smith" );

// Dispatch a Cairngorm event to save it
new UserEvent( UserEvent.SAVE, myUser ).dispatch();
[/as3]

This is the simplest method but, should your event design change, or you want to pass in another argument, you have potentially a lot of code to change where that event may be dispatched. Also there is the added complication that this code could be just about anywhere.

Tuesday, 28 July 2009

Rails audit trail

I know I've just done another post but I wanted to also mention something to you I discovered yesterday for Ruby on Rails that is, frankly, excellent.

Many applications need to keep a history of things that have happened and those responsible for auditing purposes. In fact, this is very often a legal requirement. For anyone that's worked on an application where this is the case, you'll know all too well that every "Solution Architect" out there has their own favourite way of doing it, that it can be a headache to implement, and that it often arrives as a bit of an afterthought ("Ummm... shouldn't we be auditing this stuff?").

Server-side validation

I must admit, I had assumed that server-side validation was something everyone just did. I thought it was obvious that the server should validate whatever data it receives, rather than relying on client-side validation. It seems, however, that I was mistaken in that belief - some people remain convinced that validation of, for example, mandatory fields in a form should be done on the client... and only done on the client. What follows is a brief explanation of why all applications must do server-side validation.

Wednesday, 3 June 2009

Morgan Stanley Matrix: Ideas into Action

This week, Morgan Stanley announced the launch of their next generation trading platform, Matrix.

I am immensely proud to be able to say I worked on this project, it is by far the most ambitious and inspiring application that has been attempted in the Rich Internet world. Built in Adobe Flex and powered by a vast range of back-end services in real-time, it will change the day-to-day lives of traders across the globe.

Delivered by Adobe Consulting, it was a privilege to work with some exceptionally talented people on this project, right the way through the workflow - the user experience is second to none and under the hood is a shiny, well-polished set of moving parts.

Unfortunately I cannot forward you to the live application as you would need a very deep back pocket just to be provided with access. There is, however, a microsite promoting the Matrix at http://www.morganstanley.com/matrixinfo/

With my tongue firmly placed in my cheek, here's to hoping these traders use it wisely, eh?

Monday, 23 March 2009

Adobe still miles in front with AIR

Despite Microsoft releasing details of Silverlight 3, it would appear Adobe are still miles ahead with AIR.

Read the article here