Showing posts with label tesco api. Show all posts
Showing posts with label tesco api. Show all posts

Wednesday, 21 July 2010

100% Martini / Affiliates Scheme Starts / API Unscheduled Outage

This morning I sent this message out to our 800+ registered Tesco Grocery API developers.

Dear API Developer

We did it (finally!) - 100% of customers are now on our new 'Project Martini' grocery development platform. That means that 100% of customers can use your applications that use the Tesco Grocery API at techfortesco.com. It also means that we are can switch on the affiliates "percentage contribution to checked-out order" pot for T-JAM attendees on 1st August 2010 - we're just making sure all the logging is working correctly first.

We've been working madly to make sure the API is stabilised on Martini and we've been tuning up the performance of the service, particularly dealing with customers with very large baskets that was slowing down such API commands such as Login.

The RESTful API endpoint is already up to v1.0.0.15 and there will be updated documentation for that latest version being published this coming weekend. The latest API updates include a 'FAST" mode which speeds up API responses for getting Basket information if you don't need all the basket information that normal response returns.

Hands-up: we're sorry - our developer portal database ran out of log space during maintenance late yesterday and stopped the API from authorising access. Regrettably the API health page did not detect this (as it bypasses authorisation) and it was only uncovered by emails from some pretty annoyed developers when I woke up this morning.

I've fixed the problem by:
1) Emptying the log and
2) Removing size restriction on it. The disk on which the database log is saved has acres of space and the restriction was placed on it over 18 months ago when it existed on an earlier smaller server.

I will change the API Health page today so that it tests using a developer key that requires authorisation for each test. That way we'll also monitor if the forum database is in error. I will also put on our change list a code change to give developers the benefit of the doubt and always authorise access to the API if that database goes on error again. The Health page sends out alerts every time a test yields a 'red' or 'black' result (serious error or timeout). This all means that it shouldn't happen again without us knowing pretty quickly.

From Monday 26 August we will be 'living' in the Tesco.com Innovation Support Forum answering questions and listening to any concerns. I really want to energise the forum again - you've been more than patient while we've got Martini to 100% and tuned up the API, so it's about time we spent some time with you.

After all - on 5th August it will have been a year since T-JAM. Wow!

Best regards
Nick Lansley
Tesco.com

Tuesday, 4 May 2010

Original API closes tonight after changing the game at Tesco.com

Tonight at 6pm (17:00 UTC), the original API that we launched privately back in October 2008, then to external developers two months later, will be shut down.

The CTP API's end coincides with the demise of our old grocery platform which it accessed, as we have moved nearly all our customers to the new grocery service now.

The API, known as our 'Community Technical Preview' (CTP):
  1. Powered the prototype 'Kitchen PC' that I demonstrated on stage at Microsoft PDC in November 2008;
  2. Helped us think how we could improve our health & beauty range through a 'Beauty Room' silverlight application in Spring 2009;
  3. Provided the search and add-to-basket functionality for our live 'Back To School' web application that ran throughout the summer holidays in 2009;
  4. Allowed us to try new ideas with third party organisations that linked it to their technology when demonstrating possibilities to us;
  5. Powered (until last week) the Tesco Finder iPhone application.
As a result of what it allowed us to do, suddenly our business realised the 'art of the possible' and as a result put in both time, effort and money that made our TJAM innovation event the success that it was.

As well as doing great things, the CTP API nearly got me into trouble with my colleagues:

During a regular senior team meeting last summer involving both IT and business managers, an IT manager had to inform that meeting that one of his projects was going to be delayed. This was greeted with some dismay by the business unused to such news.
The next item on the agenda was the 'Back To School' application which Marketing informed the meeting had been built in just a week "on the back of Nick's API" and was now live and taking money.
A senior director exclaimed, "Why can't the rest of IT be like Nick Lansley?". Turning to IT manager, the director told him, "Go and talk to Nick and find out how he does it!".
And he did (that was interesting conversation!).

The later that day I wrote an email to the director thankful for their praise, but pointing out one thing:
"It is thanks to the hard work, attention to detail, performance and resilience of our existing systems that I can do my job. It is thanks to the work by this IT manager and his colleagues that I achieved what I have - because they let me stand on their shoulders."

I never received a reply back, but when I saw the senior director in the distance a couple of days later, they saw me, smiled and nodded.

When the CTP API closes tonight, it will still exist at its endpoint, but whenever it is accessed it will respond:
StatusCode: 999
StatusInfo: "Please see http://www.techfortesco.com/forum for news of the next version of the Tesco API. Everything that has a beginning has an end. Let me sleep."


Monday, 26 April 2010

IMPORTANT: Tesco API Services off air 18:00-00:00 UK (17:00-23:00 UTC) 26 April-4 May

IMPORTANT NOTICE to Tesco API Developers

Both the CTP (Community Technical Preview) and Beta editions of the Tesco grocery API will be off-air from 6pm - midnight UK (17:00-23:00 UTC) from 26 April until 4th May inclusive.

This is so that the Tesco.com IT teams can progress the final move of customers from the old 'BOB' grocery service to the new 'Martini' service with minimum disruption during peak loading times.

Furthermore, on the evening of the 4th May, the CTP API will be shut down for the final time, never to return to service. This version of the API uses the old 'BOB' grocery service which will no longer have any customers on it. This version of the API sits at http://www.techfortesco.com/tescoapi/tescoapi.svc until its final shutdown at 6pm UK (17:00 UTC) on 4th May 2010.

Apologies for this short notice and for any inconvenience caused to evening developers working on applications that use the Tesco API, which contributes significant traffic to our grocery servers. However, if we can get all the customers across in the next couple of weeks it will be worth the pain.

Best regards
Nick Lansley

Tuesday, 20 April 2010

Order your Tesco.com groceries through a Facebook app

As we get more customers onto our new 'Project Martini' grocery service, the time is coming when our army of third-party developers can unleash their Tesco Grocery API powered applications on the world.

One of these developers is James Mills, an IT programmer who came along to our Tesco TJAM day back in August last year.

James has developed a Facebook application called 'My Shopping Assistant' which allows Facebook users to shop groceries with us.

If you're a Facebook user, take a look by following this link:

As soon as the API defect list is completed (so there aren't any defects!) and all our customers are moved across (a couple of weeks or so) then James will really be able to power the application up. Even now you can perform some of the core functions of grocery shopping through James's Facebook app.

James is also working on a shopping application for the O2 Joggler device that uses the Tesco Grocery API - he has a video of it in action here - fantastic work, James!

You'll see more third-party applications using the Tesco Grocery API coming on-stream in the following weeks. If you're a third party developer who uses our API, send me some blurb about your application and I'll announce it here when you're ready for launch.

Update: Text in this article was altered - changed 'My Grocery Assistant' to its correct name of 'My Shopping Assistant'.

Thursday, 25 March 2010

Azure to the rescue

Developers following the build of the new Tesco Grocery API, (an R&D project that allows third-party access to our grocery service through their own applications) may well have questioned a consequence of enormous download counts for our iPhone Clubcard app.

The question: If we had similar downloads for the forthcoming Tesco iPhone Grocery app, how will the API cope if it is still in R&D?

The blunt answer is that it won't. My tests have shown that currently the API service can survive processing around 400 simultaneous HTTP requests on its server - any more and performance begins to suffer - not very useful if several thousand customers all start trying to synchronise their favourite products (a key feature of the grocery app) at the same moment in time.

What to do? Productionise the API, of course! Well that work has already started but it's going to take a while to complete, and we want to launch sooner rather than later.

The good news is the API has been created as an ASP.Net application - perfect for being hosted within the new production Windows Azure cloud computing platform. An early version was running in an equally early version of Azure during 2009, so the design takes account of operation within the cloud. It's also been upgraded recently to work in .Net Framework v4.0 and ongoing developments use the Visual Studio 2010 dev environment, so it's 95% cloud-ready right now.

Importantly, the API does not itself store any personal information since it acts as a proxy between client applications and the new 'Project Martini' grocery service running on the live Tesco.com web servers. That's important as it would be difficult to describe where the Azure SQL databases actually reside to the Data Protection Registrar, so thank goodness it doesn't need any such registration.

Tomorrow it's a case of adjusting the API source code to work fully within Azure's development fabric, then upload it to the Azure cloud for some stiff weekend performance testing. Indeed I need to turn up the stress on the API until it starts suffering in terms of performance, then I'll be able to calculate how many CPUs and other Azure resources are needed to scale the service upwards to cope with possibly thousands of simultaneous users.

Cloud computing is a great way of 'taking the strain' with services - particularly with peaks that will no doubt be experienced after an app launch - I'll let you know how the Azure-hosted Grocery API behaves over the coming days - and post launch.





Tuesday, 2 February 2010

Speaking at London iPhone Developer Group (Wed 3 Feb)




Image of London iPhone Developers Group logo


I am delighted to have been invited to speak at the London iPhone Developer Group (LiDG). It's taking place tomorrow evening (Wednesday 3 Feb 2010) at the Apple Store in Regent Street, London.

I'll be exploring with LiDG members some of the ethnographic research that we conducted with customers last year which identified our original need to create a mobile (indeed, "device") strategy.

Quite a few developers write to me who have the technical know-how to build applications on devices, but they want to understand some of the customer background that makes us think that having a mobile/device strategy is important; they want to consider the business case for this strategy. This is why we first revealed the ethnographic research at last year's Tesco API TJAM event - and I'll be exploring it again with LiDG members tomorrow night.

Friday, 6 November 2009

Barcode scanning for iPhone - anyone help?

Regular readers will know about our desire to take Tesco Finder, our store & product finding app for iPhone, on a journey where we will add new innovative features and functions based on customer feedback.

One of these functions is to use the iPhone's camera to perform barcode scanning. An innovative solution comes from Red Laser who have their own application demonstrating the technology.

However, we've uncovered that Red Laser use some 'hidden' iPhone API calls to make their technology work, and that some other applications using their libraries to add barcode-scanning functionality have, I understand, had their apps rejected by Apple as a result.

This blog now gets accessed by just over 2,000 different IP addresses a day (mostly over RSS) - so I'm putting it to work to find an organisation who provides iPhone barcode scanning with 'legal' API calls that could help us.

It would be great for any organisation who provides a barcode scanning library for iPhone to get in touch with me with a view to deploying their work in Tesco Finder - and you can be sure that if it works we'll loudly proclaim your name as well as 'open doors' for you.

The only caveat is that your library must only use published iPhone/Cocoa-Touch API calls and not in any way try and use hacked internal knowledge of iPhone.

If your organisation doesn't do this but you know someone who does also please get in touch.

To contact me:
  • Email me at nick@lansley.com (which has a larger storage capacity than my work email!)
  • Call our new Tesco.com R&D Ideas In Confidence phone/fax line which is (UK) 07092 192022, (World) +44 7092 192022.

Wednesday, 4 November 2009

Nice thought piece on APIs from Revolution magazine

I like this 'thought piece' from Revolution magazine on APIs and the future.
http://www.revolutionmagazine.com/news/947967/open-source-answer/

The article's "pros and cons" paragraph is particularly interesting, and the section about the importance of 'abstracting' the API from how the underlying service really works was important to me when designing the Tesco.com Grocery API.

Our underlying grocery service is a complex system with many components, and if I enabled it fully through the API:
  1. It might be easier to recreate without our permission (the grocery service is part of Tesco.com's intellectual property).
  2. It would be more difficult to use - or rather, easier to use incorrectly.
  3. It might be easier to attack through uncovering any unknown flaws in the system due to its complexity.
That's why our design distilled the entire grocery service into just 10 basic commands - a complete abstraction from the real service over which it sits:
  1. Login
  2. List product categories
  3. List products in a given category
  4. Search for products by text search / barcode
  5. List Basket
  6. Change Basket (a single command for adding / deleting / changing quantity)
  7. List Delivery Slots
  8. Select a delivery slot
  9. List pending orders
  10. Amend Order
These commands are easy to understand, obvious to use (I hope) and protect the underlying service from attack through misuse.

The Revolution article then concludes with a salient point:
Opening up a site's API is not simply a cheap option for brands to get free coding; there are costs involved in monitoring use, refreshing the technology and supporting developers. It is also a dud option for brands that are unexciting to developers.
We better make sure Tesco.com stays exciting then...!

Sunday, 18 October 2009

New Release of Tesco Finder Features Prices and Offers

The need to sort out the "Town/City Search" issue with Tesco Finder gave me the excuse to update this iPhone application with the users' most requested feature: prices and offers.

The updated application has just been submitted to the Apple iTunes App Store and so should be arriving on your iPhone in the next few days.

This new data come from the live Tesco Grocery API. If the store you are searching delivers grocery home shopping, you'll see prices (and offers where relevant) on every product.

If the store you are searching does not deliver home shopping, the data comes from looking up the information at one of our so-called"Dotcom-Only Store" warehouses, which has amongst the largest product ranges. The range you search will be for your selected store, but the prices and offers (which are national anyway) will come from the warehouse range, as long as there is a 1:1 match. Some products may show without a price if it's in your store but not in the warehouse.

Here are a few screen shots to show you the updates:

First, an update opening screen announcing the arrival of prices and special offers:


Now, proof that the Town/City Search works wonderfully (via our own servers!):


So as usual you type in a search word to get your products. In this version of Tesco Finder, the app is using the power of the search system on our grocery web servers to perform the search which gives much improved relevance over my initial method which involved simple SQL searching. The new search copes with spelling problems and other text-searching challenges - oh and look: PRICES! And not just prices - products on any sort of special offer get highlighted in the search results:


Select a product to see full details - and spot the Tesco 'Price Cut' (£-and-scissors) button to the left of the location description:


Touch the price cut button to see a full description of the offer - and a gentle reminder that these are guide prices, which I have talked about in previous entries on this blog:


I hope you like the updates. Actually I better give the source code back to my colleague and the app's author, Tom Courthold, before I do anything more to it. I'll be in enough trouble as it is!

Anyway this update application is on its way to you now, and will appear in your updates list as soon as it passes through Apple's QA team.

Saturday, 17 October 2009

Tesco Finder's Town/City Search Not Working

If you attempt to use Tesco Finder's "Town/City Search" function to locate a Tesco store manually, you'll find you get the message, "I couldn't connect to Google.com. Please check your network connection or try again later.".

So what's happening? Basically we've programmed Tesco Finder to use Google's geo-search API, where we pass on the town or city name you typed in and get back the latitude and longitude of that place. We then use that data instead of iPhone's location to perform the Tesco store search.

It's been working wonderfully for the two months we've been testing the app. However, "wonderfully" ended on Tuesday just after it arrived in the App Store. Talk about timing! Google's geo-search API comes up with an 'error 610' every time we use it now, rather than the actual latitude and longitude.

Here is an example of what Tesco Finder sends:
..where a customer typed in 'hendon' into Tesco Finder.

Now all we get back is:
610,0,0,0

...when we want something like:
200,0,51.5878,-0.22911
...where those last two values are the latitude and longitude of Hendon in London.

In fact we're getting 610,0,0,0 for anything we type in.

So now I need to find a working (and free to use) API that will convert UK towns and cities into latitudes and longitudes as easily as this. I then need to issue an update to the Apple iTunes App Store with its usual 10-14 day delay before it goes live.

There's a lesson to learn here, and that is when you write applications of this sort, always make them talk only to your own servers and not directly to third party services. If I had done this, I would have simply scouted for a replacement API and adjusted our server's code to use that. The iPhone app would just use our server to ask for geo-coordinates every time, not caring about what the server had to do to get the data. The server could be coded to have backup geo-data suppliers in case one didn't work. Doing it this way makes you the master of your own destiny and not beholden to anyone else.

In trusting the third party service I was trying to be clever. Fail.

I need to get out of the web mindset where you actually only have one application - your web application. We have thousands of Tesco Finder applications out there, so now I have a new rule: The only place our apps will 'phone' from now on, is home.


UPDATE
----------
I'm not the only one suddenly getting this problem - Google Forum thread on it here - it seems they have updated their code after the weekend to require a licence key - only serving to highlight that this would have been an easy fix if only I had coded the app to look to our server.

Thursday, 15 October 2009

Tesco Finder's 4000th download and barcode searching capability

You may be interested to know that today we've reached 4,000 downloads of our iPhone Tesco Finder application, and that the Tesco API is servicing anonymous product search requests at the rate of one every 20 seconds during the day and evening.

You may also like to know that one of Tesco Finder's hidden talents is that you can search on a 13-digit barcode. Just read any barcode from a grocery product and type it in. If it's stocked at your selected store we'll show you it (complete with image if we have it).

Yes I know it would be great if you could use Tesco Finder to point the iPhone at a barcode so it could work out the number and perform the search. It would be like a... a.. red laser? We think so too!

Patience, innovation fans; just for a short time.

Saturday, 10 October 2009

Tesco Store and Product Finder - Live in the Apple iTunes App Store!

I'm delighted to tell you that our first iPhone application has just gone live in Apple's iTunes App Store.

The Tesco Store and Product Finder not only helps you to locate your nearest UK Tesco store (of any size from Express to Extra) but also will help you find any grocery product in that store by describing its aisle and shelf.

The application is free and available worldwide although it only works for UK stores and only with grocery products (rather than non-food items) at the moment.

Got an iPhone? Great: either:
  1. Go to the computer you use to sync your iPhone/iPod Touch with iTunes, then click this link (or paste to your web browser): http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=330818669&mt=8, or
  2. Start iTunes, go the the 'iTunes Store' and search for the word 'Tesco' in the top-right corner of the iTunes application, or
  3. On your iPhone (or iPod Touch) start 'App Store', touch Search and search for 'Tesco'. You'll get "Tesco.com R&D Team" and "Tesco Finder" results - select either to reach the Tesco Finder application.

This application is the first piece of innovation that has come from Tesco.com's R&D-run IT Innovation Club, where we provide the resources, time, and stamp of approval for our staff to quickly create innovation for our customers outside of our standard production work schedule.

The Tesco Store and Product Finder was designed and built by Tom Courthold who works in Tesco.com's IT UI team; the data was - and is - sourced by Mike Brearley who now works in our IT branch dev team, with backend API server programming, a spot of iPhone programming (and support for the service & application) by myself.

Going forwards we'll be enhancing the application to offer:
  1. The ability for a customer to search for any grocery product and then find out the nearest stores that stock it.
  2. A link to a home shopping customer's favourites list so they can find these products in any Tesco store that stocks them.
  3. Work with the business to extend the range beyond groceries to include more non-food items such as electricals, household items and more.
Enjoy the application, and please feedback any ideas and issues to me.


Here is a set of walk-through screen shots for the Tesco Store and Product Finder. If you are a journalist and would like to use any of these images, you can - and for free without any further permission. Just click the images to get full-sized versions. The exception to this is the first screen-shot (surrounded in blue) - which consists of an excellent photograph from Flickr contributor 'LoopZilla' which has been cleared for our use (and yours) as long as you assert that he is the owner of the photo and that you link to the original at:
http://www.flickr.com/photos/loopzilla/2910558518/

The opening screen starting the application on your iPhone:




The application uses iPhone's location service to detect where you are, then connects to our server to find out your nearest stores. Touch the circular arrow to get the latest location update:




Here we've touched a store name above, which causes the application to display information about the store, including its customer facilities. Note that you can bookmark the store so you can find it quickly using the 'Bookmarks' button infuture if you visit it regularly. "View Directions" starts the iPhone's Map application to help get you to the store:




Touch 'Find products in this store' above and you get to the following screen. Tap the 'search box' to make the keyboard appear, and type a product to find, followed by the 'Search' button:



The application asks our server for the product and location list based on your search:



Back comes the product list (up to 20 products) matching your search. If we have photos of any of these products, they will be shown alongside the product:



Now touch the desired product to bring up its location details, alongside a bigger image of the product - and its full location information. Tap the big question mark for extended help.






Friday, 18 September 2009

Letter of Rejection

So I come back from holiday to uncover that the Tesco.com R&D team’s first iPhone application to be submitted to the Apple App Store has been rejected!

The letter of rejection was pleasant and helpful, detailing a user-interface reason for the rejection and looking forward to a rapid re-submission.

The Tesco.com R&D 'Store Finder' application, which allows iPhone users to locate their nearest Tesco branch, had a problem if the user denied it access to iPhone’s location service so it could not obtain the current latitude and longitude of the phone.

Basically it had been accidentally programmed to have the same attitude as an affronted celebrity denied access to a posh night club (“Don’t you know who I am?”) then give them a ‘stores near me’ list anyway by assuming they were actually located at Tesco.com HQ in Welwyn Garden City!

It’s a minor change (disable the ‘Stores Near Me’ button and switch to the ‘Town/City Search’ screen) so I have to thank the App Store team for their detailed response and their encouraging tone.

It’s no discredit to the developer either - the brief was that the application had to get the customer quickly to the store, so denying the application access to the current location and having to perform a manual search will make the it considerably less ‘immediately’ useful.

It’s some time since I’ve had a letter of rejection so today I will pin it to my local office noticeboard under one of the written tenets of research: “Go Wrong Quickly and you’ll Learn Quickly”.

Monday, 31 August 2009

Beta Tesco API NOT Yet Ready - Waiting for 'Martini' Readiness

Dear Tesco API Developer

This is an update to let you know the status of the beta edition of the Tesco API is not quite ready.

The underlying ‘Martini’ grocery platform on which the beta API relies is still being tuned up, and the side effect of this work is that the sand keeps shifting beneath the beta API’s feet.

Of course we need to make sure that the new grocery service is not only fully functional but performs really well, so these final adjustments are vital before we start moving customer accounts across. The grocery web service is core to Tesco.com so you can imagine that every member of the production team is involved.

Until the ‘sands stop shifting’ there is little I can do to launch the beta API. However I can still tempt you: If you would like to take a look at the new objects available (or rather, existing objects with many new extended properties), you can. Using your SOAP client such as Visual Studio 2008 (free Express, Standard or Pro editions), set up a new service endpoint at http://www.lansley.com/tescoapibeta/tescoapibeta.svc where the nightly builds are being tested. Don't try and log anyone in though - nobody is on 'Martini' just yet so it won't work.

Have a look particularly at the new product object which should satisfy just about any product information desire:

.ProductId =262612635
.BaseProductID =61358077
.Name =Flora Buttery 500g
.ProductType =QuantityOnlyProduct
.ExtendedDescription =(manufacturer can enthuse about product here)
.ImagePath =http://img.tesco.com/Groceries/pi/349/8722700187349/IDShot_90x90.jpg
.MaximumPurchaseQuantity=99
.NoteForPersonalShopper = (when sending to basket this note is shown to shopper)
.OfferPromotion =Buy 1 Get 1 FREE
.OfferValidity =valid from 26/8/2009 until 1/9/2009
.Price =1.5
.PriceDescription =(£3.00/kg)
.Quantity =1
.Rating =0
.StorageInfo =
.UnitPrice =3
.UnitType =kg
Nutrients count: 19
Nutrient =Energy
SampleDescription =Typical values per 10g
SampleSize =261kJ/63kcal
ServingDescription =-
ServingSize =-
Nutrient =Protein
SampleDescription =Typical values per 10g
SampleSize =trace
ServingDescription =-
ServingSize =-
Nutrient =Carbohydrate
SampleDescription =Typical values per 10g
SampleSize =0.1g
ServingDescription =-
ServingSize =-
Nutrient = - of which Sugars
SampleDescription =Typical values per 10g
SampleSize =0.1g
ServingDescription =-
ServingSize =-
Nutrient =Fat
SampleDescription =Typical values per 10g
SampleSize =7.0g
ServingDescription =-
ServingSize =-
Nutrient = - of which Saturates
SampleDescription =Typical values per 10g
SampleSize =1.6g
ServingDescription =-
ServingSize =-
Nutrient = - monounsaturates
SampleDescription =Typical values per 10g
SampleSize =2.0g
ServingDescription =-
ServingSize =-
Nutrient = - polyunsaturates
SampleDescription =Typical values per 10g
SampleSize =3.4g
ServingDescription =-
ServingSize =-
Nutrient =- omega 3 fatty acids*
SampleDescription =Typical values per 10g
SampleSize =0.6g
ServingDescription =-
ServingSize =-
Nutrient =- omega 6 fatty acids
SampleDescription =Typical values per 10g
SampleSize =2.8g
ServingDescription =-
ServingSize =-
Nutrient =Fibre
SampleDescription =Typical values per 10g
SampleSize =0g
ServingDescription =-
ServingSize =-
Nutrient =Sodium
SampleDescription =Typical values per 10g
SampleSize =0.1g
ServingDescription =-
ServingSize =-
Nutrient =Salt (based on sodium)
SampleDescription =Typical values per 10g
SampleSize =0.2g
ServingDescription =-
ServingSize =-
Nutrient =Vitamin A
SampleDescription =Typical values per 10g
SampleSize =(10% RDA) 80 µg
ServingDescription =-
ServingSize =-
Nutrient =Vitamin D
SampleDescription =Typical values per 10g
SampleSize =(15%) RDA) 0.75 µg
ServingDescription =-
ServingSize =-
Nutrient =Vitamin E
SampleDescription =Typical values per 10g
SampleSize =(20% RDA) 2 mg
ServingDescription =-
ServingSize =-
Nutrient =Vitamin B6
SampleDescription =Typical values per 10g
SampleSize =(25%) RDA) 0.5 mg
ServingDescription =-
ServingSize =-
Nutrient =Folic Acid
SampleDescription =Typical values per 10g
SampleSize =(25%) RDA) 50 µg
ServingDescription =-
ServingSize =-
Nutrient =Vitamin B12
SampleDescription =Typical values per 10g
SampleSize =(25% RDA) 0.25 µg
ServingDescription =-
ServingSize =-
Ingredients count: 12
Ingredient =Water
Ingredient =Buttermilk (10.5%)
Ingredient =Salt (1.5%)
Ingredient =Lecithin
Ingredient =Flavourings
Ingredient =Citric Acid
Ingredient =Vitamin E
Ingredient =Vitamin B6
Ingredient =Colour: Beta-Carotene
Ingredient =Vitamin A
Ingredient =Folic Acid
Ingredient =Vitamins D and B12



Now the second piece of news is that I am now on holiday, returning 14th September, by which time we will, I’m sure, be in a much better place concerning the API. I'm going to hurl myself around on a mountain-bike in the Wicklow mountains (south of Dublin), a beautiful part of Ireland where they seem to have forgotten to install any mobile phone masts.

Before I return to the UK, though, I am hoping to have available for you a set of test accounts linked to the new service which you can use to actually try out the beta service. These test accounts, when they become available, will be announced in the Forum and you can try them at the above endpoint.

Once the beta API service is fully ready for action, it will be hosted on techfortesco.com and our Microsoft Azure endpoint at http://tesco.cloudapp.net

In the meantime, you can use these latter endpoints for your application development using the CTP API (documented at http://www.lansleytech.com/tescoapiweb/reference.htm) - you’ll just get ‘more’ once the beta API is working and we’ve moved customer accounts across to it.

So, apologies for any inconvenience but let’s end on some good news: If you signed up at TJAM to join the Tesco affiliates scheme, we are now ready to accept your registration - see the Forum for instructions: http://www.techfortesco.com/forum

Wednesday, 19 August 2009

Tesco.com TJAM - The Video

Here is a 4-minute YouTube-hosted music video of what happened at our recent TJAM event.

A ''draft' version of this video was shown to the developers at the start of the evening event. Time and a spot of decent re-editing has made the video smoother and more interesting (I hope...).

You can either watch the video here, or (better) click on the video image to watch it in a bigger window on YouTube (press the 'HQ 'buttton for better quality playback if watching on YouTube).



My music choice for this video is an edited version of a Utah Saints track - they have remixed Kate Bush's lyric "I just know that something good is going to happen". See what I did there?

So my music collection is over-influenced by the Gaydar Radio playlist. Whatever!

Monday, 17 August 2009

Tesco.com API will be adopting 'OAuth' standard.

The Tesco.com API will be adopting the 'OAuth Core 1.0 Revision A' standard for third-party web access to customer accounts using the Tesco.com Grocery API Beta Edition from Phase 2 onwards.

OAuth, short for 'Open Authorization', is an open protocol to allow secure API authorisation in a simple and standard method from desktop and web applications.

Why is this good? Quite simply, customers will not have to give third party web sites their Tesco.com grocery login email address and password in order for that web site to have access to that customer's product range and basket. Instead, customers will give permission using a 'key' linked to their account. The key can be withdrawn at any time without the customer having to reset their password.

From the OAuth web site (http://www.oauth.com):
"The OAuth protocol enables websites or applications (Consumers) to access Protected Resources from a web service (Service Provider) via an API, without requiring Users to disclose their Service Provider credentials to the Consumers. More generally, OAuth creates a freely-implementable and generic methodology for API authentication.".

OAuth will be built into phase 2 of the forthcoming beta version of the Tesco.com API over the coming months. Until then, third party web sites wishing to use the forthcoming beta Tesco.com API (due for release at the end of August) can continue to use the current authorisation method of requesting username and password.

We will need to make sure that using OAuth is as painless for the customer as possible but there are several very good implementations out there so I'm confident that we can find the right balance between security and ease of use.

Third party web sites should keep in touch with the Tesco API Innovation Forum at http://www.techfortesco.com/forum for more information about switching over to the OAuth mechanism.
We will make sure that the implementation will require only a tiny change to third party web applications principally around use of the 'Login()' method (in the AccountClient class). Applications that call Login() get returned an instance of the Session class that is used as a token when calling all the other methods in the API for that customer. We'll make sure this behaves as it does today so you don't have to re-code your application beyond using Login() itself.

Client applications that are built for consumer devices can continue to use the current authorisation mechanism without having to make any changes to their applications and will not need to use OAuth (unless they wish to). This is because these apps will talk directly with the Tesco API and don't go via a third-party server.

We do reserve the right to provide new authorisation mechanisms and deprecate old methods as technology moves forward, but 'old and new' mechanisms will sit side-by-side for a while to give reasonable time for developers to update their sites to adopt the new service.

And if you didn't understand a word of this blog entry, relax;
I'll return to my usual higher-level writing shortly!

Thursday, 30 July 2009

TJAM Daytime Event

You probably have a fair idea of what is happening at TJAM's evening developer's event.

However I've sorely underplayed the importance of the daytime event which will host Tesco.com grocery customers, plus 'creatives': people who can visualise a future idea, concept or even fully formed application in their minds.

It's the output from the daytime event - plus excellent insight from some recent ethnographic research we commissioned about customer grocery home shopping behaviour - that will feed into the evening. So if you've only heard about TJAM Evening until now, don't worry - you'll miss nothing. We won't have people coming to both events. In any case there is a maximum of about 70 people for the daytime event, all carefully vetted to ensure they match the customer mix who use our website.
EMC Consulting's Paul Dawson is working with our marketing team and a great creative innovation agency called Happen to make the daytime ... well... happen. Paul describes the TJAM daytime in this blog entry so have a read and see the source 'energy' that will create the materials that evening developers will absorb from 7pm.

I'll be there in the daytime helping to present, and spend time practising my live coding demo ready for the evening. Trying to write compilable C#/Java and make it work first time as 150 of my peer-group watch? Yes that's pressure. Think I'll stay off the provided free beer until 9pm.

Tuesday, 28 July 2009

The Fourth Screen

Regular readers will know of my quest to bring Tesco grocery home shopping to every screen the customer owns (if they want us there) and our mission to engage a developer community to write applications for their favourite devices.

What has intrigued me over the last year is the adoption by many customers of what we geeks are calling the fourth screen.

Before I go any further I better count up the other three screens:

  1. The first screen has been around since the late 1930s - it is of course the television set, evolved from a flickering display of the John Logie Baird mechanical device through to the high definition multi-input flat-screen of today - and soon a 3D immersive experience.
  2. The second screen belongs to the computer, which came about in the 1970s when someone thought it might be a good idea to save printer paper by displaying the output on a TV instead. This screen is now your view of the connected world revealed through your desktop or laptop, and is probably your work tool too.
  3. The third screen is the mobile phone, which has evolved from the dot matrix display on devices (literally) the size of bricks, into the iPhone’s internet-connected immersive touch-sensitive presentation.

So to the fourth screen: Specialist internet-connected devices such as photo frames that display digital images from your memory card or Flickr account through to the Chumby and O2 Joggler. They’re new on the market and tend to do a few specialist tasks really well.

Fourth screen devices intrigue me mostly because they tend to be installed at a single, static location in the home. They are small yet offer a point of focus. I own a Joggler and have placed it in the hallway where it spends most of the time displaying photos and occasionally sounding background music when I play audio around the house from a UPnP (Universal Plug and Play) server. It also offers me live traffic info - very useful just before leaving the house.

I’m also fascinated by the Wayve device - these are designed as instant media messaging focal points, where two or more Wayves can be joined up as a group using the internet as the backbone, and anything written on one Wayve can be sent to one - or all - the others, adding a ‘connected family’ feel. Importantly I see such a device as being located in the kitchen - for many the family ‘hub’.

Ah yes, the kitchen: As these fourth screen devices become common, I can see a great place for Tesco.com grocery ordering if the experience was right.

Getting the experience right is important - it’s probably too easy to take a potentially great device and develop a horridly labourious grocery shopping application. A good application for the fourth screen will be one that ‘lives the value’ of such a device: quick, easy, simple touch, ‘little and often’ usage, operating almost while walking by it rather than sitting down for a session in front of it.

I’ll certainly be encouraging ‘fourth screen thinking’ at TJAM and beyond.

N.B. Although I have mentioned specific products as examples of 'fourth screen' devices, this is for illustration only and should not be considered an endorsement of any such product either by myself or Tesco. However, if I mention any actual product I believe that it is fair to provide a link to that product's website.