6 HTTP projects
PictureSync Mac Application for Verse
Batch upload annotated images to web services
- Optimised service addition and sign-in UI, including transparent post web authentication token retrieval (e.g. OAuth) using a simple 'becomes frontmost' check
- First application to upload both image data and annotations
- First application to interface between both multiple applications and multiple web services
- Comprehensive abstractions for web service behaviours with modular service plugin architecture including per-plugin version checking
- Co-branded builds with default sign-in prompts for service providers using an automated build system, and with provider-specific statistics (via a private website login)
- Only application to be able to upload images and then later sync the annotations (e.g. via Flick API)
- Only application to employ database-free metadata via file system extended attributes (i.e. for service upload IDs)
- Transparent licence activation after purchase on website
- Integral image and metadata manipulation functions
- Support for multiple disparate web-service APIs for uploads with an aggregate progress UI
- Interfaces with the file system and external applications to collect data, including support for standards-based emebedded IPTC/XMP and XMP sidecar files for annotations
- Fullscreen view
2004 — Conception, Desktop, Photo
MediaSock Client Framework for Verse
Abstraction framework for media-sharing web-services, utilising loadable modules, and a flexible properties architecture.
- First library to enable use of common code and functionality with disparate service providers.
- Simultaneous classed data and string handling (suitable for AJAX-type web server deployment scenarios as well as desktop).
- Was deployed on a Flex server platform, and in a .NET desktop application.
- Standardised functionality: list/make albums, list/download/upload media.
- Initially available with modules for Webshots, Flickr, and Yahoo! Photos.
- Session saving (service dependant).
2006 — Conception, Server, Photo
MediaSock Protocol for Verse
Lightweight service discovery protocol and web-service API to facilitate handling a user's media assets.
- clients can utilise service discovery not only check with a low cost (i.e. via HTTP HEAD) if a provider supports the protcol, but also what methods and characteristics are supported by that provider (interoperability between clients and servers is notably not guarenteed by the protocol)
- designed from the outset for easy implementation by service providers; could be implemented simply atop existing page forms, using existing cookies for authentication and utilising other common API methods instead of requiring new implementations
- choice of implementation models for service providers
- fixed-string XML and values allow parsing of responses without requiring a heavyweight XML parser
2005 — Conception, Server, API
OnDeck Mac Application for Verse
View iTunes track artwork and upload to a website
- First and only application to avoid polling iTunes every second or so, and instead more efficiently poll by simply calculating when the track ends, thus avoiding undue CPU load
- Use of variables for configuring metadata preferences
- Creation of JPEG artwork from iTunes PICT wrapper
- First application to provide artwork upload
- Locates artwork from disk, or extracts from iTunes
- Integrated Last.fm scrobbling
2003 — Conception, Desktop, Music
Mac Uploader Application for Gekko Images
Develop an uploader for a stock-photo service to replace an existing partially automated system of AppleScripts and a multi-step web interface, with a fully automated single-step solution.
- Transfers images and metadata from iView MediaPro catalogs to website, transparently through serveral verification and data transfer steps.
2006 — Development, Desktop, Photo
Moonstalk for The Moon Mill
Open-source web development framework and hosting stack using Lua.
- Automated filesystem to URL mapping for sites and applications, with no configuration necessary before use (including web server)
- Includes a bespoke low-latency NoSQL database which shares the web application environment and functions, whilst also supporting a task queue with seperate processes
- Internationalisation and localisation including handling for plurals and GeoIP
- Best-practice handling of script-loading, CDN assets, canonical tags, addressing, salted passwords, microcaching, deployment (via dCVS), etc.
- Many supplementary applications providing functionality ranging from calendaring to geospatial search
2010 — Conception, Server, API