Ben Aston

Web Technologist

Hi there! I'm Ben Aston, and I am a web technologist based in London, UK.

My principal area of interest is using object-oriented JavaScript, HTML5 and CSS3 to develop highly cohesive, loosely coupled applications for the web. My background is skewed towards software engineering and I have a great deal of experience with C# and object-oriented design. I take a deep interest in the software development process itself and, increasingly, user experience design.

Examples of my .NET work, NState and NFeature can be found on both GitHub and NuGet. An implementation in C# of the distributed election "bully" algorithm can be found here.

For JavaScript and user experience design, my current pet-project Wizerati is a good example. A work-in-progress single-page web application, Wizerati can be found online at www.wizerati.com.

Further details on some of the projects I have delivered can be found below.

Wizerati

A search engine for IT contracts and contractors.

This work-in-progress application aims to improve upon the incumbents by being faster and more efficient to use.

The homepage is minimal.

The homepage evolved into its present form after testing tens of different variations. The resulting interface relies on minimalism for impact rather than flashy logos, effects or complicated features. Its form feels inevitable, and this is also my personal benchmark for a high quality user interface. Watching users operate such an interface is great fun - and is conspicuous by the absence of pauses and questions; users know almost intuitively what to do.

A single HTTP request delivers the entire application. Font resources are listed as separate requests in this view but do not involve additional HTTP requests.

Web applications have a reputation for being sluggish when compared to their native counterparts. This application attempts to buck that trend. The entire web application - CSS, fonts, imagery, JavaScript and markup - is delivered in a single compressed HTTP response (or two responses in the currently deployed developmental version for debugging reasons). The application uses a single image (excluding images in search results) - an SVG for the logo - and even this is encoded directly into the page. The result is an application that is significantly quicker over high latency networks. Under optimal network conditions the application loads in less than one second.

Additional affordances on touch-based devices reduce perceived latency.

Perceived responsiveness can of course be just as important as the reality. On touch-based devices a "halo" effect is present to confirm the selection of on-screen items, and avoid doubt about button presses. Importantly this also significantly reduces the perceived latency on devices that have unavoidable delays on 'click' events in web applications (iOS!).

Having run a search, clicking or touching a result updates the screen at near native performance thanks to a combination of client-side caching and the use of DOM element double-buffering. As far as is possible, changes in position and opacity are controlled using hardware-accelerated CSS3 filters and transforms, providing the best possible chance of a sixty frames-per-second user experience.

One of Wizerati's discriminating features is the ability to trivially compare results side-by-side. Take a look at the following video to see how this is achieved:

ICIS Live

Real-time commodity pricing alerts.

With an interface reminiscent of a chat application, ICIS Live enables real-time communication of commodity pricing to subscribers.

Somewhat unusual in today's world of JavaScript-heavy single-page web applications, this application had to function without JavaScript and involved some clever tricks to ensure it behaved like a system with more client-side logic.

ICIS Live provides real-time commodity pricing updates using web sockets.

The interface for ICIS Live was built using an HTML5 flex-box layout to guarantee the message field remained in the view-port regardless of window size. A text-based filter function enables users to rapidly find the correct "channel" associated with the relevant commodity to communicate from. URL fragment identifiers are used to ensure the chat history position remained correct when sending messages.

Behind the scenes, messages are delivered instantly to around twenty-thousand subscribers using a TCP socket cloud.

Vodafone JustText­Giving

Online and SMS-based charitable donations.

JustTextGiving, a partnership between JustGiving and Vodafone, enables charitable organisations and members of the general public on behalf of a nominated charity, to accept charitable donations via text message. Users register a code with JustGiving via a web interface. Donations can then be made by sending the code together with an amount (e.g. £5) in an SMS to a five-digit donation number. The donation is then added to the donor's telephone bill.

Vodafone JustTextGiving brings SMS-based charitable donations to charities of all sizes.

JustTextGiving makes charitable donations faster and simpler, helping thousands of charities raise money for good causes.