Monday, September 7, 2015

On Desiring Windows 10 for My Yoga Pro 2

I have a Lenovo Yoga2 Pro with Windows 8.1 since Feb 14. I have always been on windows and very recently also got a MacBookPro for my work.  I love both equally coz i think both do a fabulous job in their own segments.  I have been following Windows 10 for a while and wanted to ensure that I get it in time. Thats when I discovered it wasn't easy, especially due to the state of my laptop.

The Symptom
After buying my Mac for work, I handed over Yoga to my 8 year old son. He has been using it for about 4 months now and he loves it too. Its when I tried to register for Windows 10, I realised something is wrong with my laptop. Whenever I tried to do "check for updates", it would just run for hours and do nothing.  On the Lock Screen there will be a small notification indicating I have new updates to install and that I should go to Control Panel and get them. But when I try doing it, nothing happens!

The Problem and What It took to Solve.
Upon investigating, I found that this happens because of the following. I had my settings in Control Panel set to "Allow Automatic Updates". This means Windows will download updates when available  and install them "Without" asking you.  During these updates, it tries to restart the computer and if it fails to do a clean restart during updates, it corrupts the registry which results in failed updates.  One of the reasons for a failed restart would be loss of power, or my son shut it down not knowing the importance of the update. The actual problems starts now. 

Windows 8.1 classifies updates into 2 categories; Important and Recommended. For some reason, Important Windows updates are chained! Which means update 5 would need update 4 and update 6 would need update 5. So if update 4 fails, you cannot get any more important updates! Update 5 cannot correct what went wrong with update 4! 

To set this right, the first thing I did was to switch the option "automatic updates" off and take a more sensible option of "automatic download and then ask for updates".  

Next I had to do a "Refresh" of my operating system in which I get to keep the data but loose all my softwares including MSOffice! But I still did it. However, I was expecting that once I refresh and then start the updates, I will get the Final Build and all the updates in between in 1 go. Well thats not the case apparently. After the refresh, the system identified I had 3 important updates which I happily finished. After finishing these 3, it said I had another 5 to go. So I did, then it said, I had another 147 to go! And it went on for a total 18 hours! Some of the lag I can attribute it to England's slow internet service specially over the weekend. 

Finally I got to the build where I got the Windows 10 icon for registration. 


Questions Or Suggestions
  1. UX - Can the update process make updates Non-Chained. If I have update 4 and the latest update is update 127, then download everything in 1 go and update in 1 go and then restart?
  2. UX - Should "Automatic Updates" be an option at all if it has such painful consequences even when the user is at fault?
  3. Engineering - Can the update process not check for Power Levels, disable Power OFF and change options to "automatically never Sleep when lid is shut" during the upgrade process.
  4. UX & Engineering - Send Alert notifications on emails / SMS to parents immediately to prevent such pain later on. 

After all this, I hope the new version is worth the pain!

-Vihang
  



Wednesday, September 24, 2014

Is Google sending your emails to someone else?!

I am an ardent fan of Gmail and have been using for the last 10 years.  Recently I started getting emails containing invoices of things that i did not purchase. Or details of stocks that i did not hold and confirmations on transactions which I did not make!

At first, I thought, these were just mere coincidences and I ignored them. But the frequency has increased now. On a average I get about 4-5 emails a day which are addressed to my name but they contain details of things which other people have done!

My email address is firstname.lastname@gmail.com. When I looked at the email address again this time, I found that there is no "." between the first name and the last name and next to it there is a link which say "(Yes, this is you.) Learn more".  When you click on the "learn more" it explains that Google ignores the "." before the @! Which means firstname.lastname@gmail.com is the same as firstnamelastname@gmail.com or fi.rst.name.last.name@gmail.com.  While this is good feature if you have started Gmail service today and the only person allowed to register with a unique name is me. I am not sure if Gmail started with this service 10 years ago. 

First of all it is disheartening to believe so many people exist with the same name as mine! In the first year 18 of my life, I came across only 1, who shared the same first name and now suddenly hundreds of people are getting emails of their customers incorrect and all coming to me! While it is humbling, it is annoying to read about profits that will never be mine and things which will never be delivered to me! 

Being completely selfish, I don't mind sharing 5 more emails with "Trash" but I concerned if someone else is also getting my emails. Is there a comforting answer?

-Vihang

Saturday, March 3, 2012

Collect In-Store vs Delivered To Store

Just thought of bringing out the difference between these two types of delivery options. While in both cases the customer has to go to a store and pick-up the goods ordered on the website, the back end handling of the order is completely different. The details in this article might be of very little use to business users as they might be already used to the concept however this can help development teams understand the difference in both and the associated requirements. 

Deliver To Store is just like delivering to any other address. The goods ordered are delivered  from the central  warehouse to the retailer's store selected by the customer. The customer enters payment information on the website and when the goods are dispatched the OMS settles the orders for the web channel. This option is designed to offer convenient pick up for the customer from a nearby location. Providing this option might require integration with GoogleMaps / Bing Maps and the details of retailers store. Back end processing mostly remains the same unless the business team decides to ship orders alongside regular store inventory instead of the logistic network / process used for fulfilment of orders. Once the order is shipped to the store, an email / a SMS is sent to the customer and the customer can pick up the order by visiting the store. 

Pick-up In-store is also known as "Reserve N Collect". Unlike the previous option, when the customer places the order on the website, payment information is not taken and the customer is given a confirmation of reservation indicating the time before which they need top pick up the goods.. Inventory check is done against the "back inventory" of the item in the store selected by the customer and a message is sent to the in-store team to pick and reserve the item. Payment is taken by the store when the customer collects the item,  and this transaction is booked against store's PNL account. It depends on the retailer to show the order on the web under Order history. No shipping of physical codes is done. This option is one of the steps towards true multi channel implementation.    

The complex area is to figure a workable solution when the retailer has in-store system operated in-house where as the website is a SaaS offering on revenue share basis. However this problem is for the business team to solve and is mostly contractual and might have limited impact on the implementation.

-AV

Thursday, March 1, 2012

Mobile Kiosk Using Tablets - Contd...

This is how I would visualize overall using a tablet. As you see its not very different than a commerce website. Also not all components are shown here. This is just a high level representation of blocks of functionality. 


Some important things to note.
  1. Address validation system is required only when you are trying to ship a product to the customer.
  2. Not all systems and interfaces are shown here. Only a few widely used system are shown. Reporting from OMS and Financial Reconciliation are important but mainly on OMS and hence omitted. 
  3. There would normally be an ESB for handling all external interfaces which I have not shown here.  

So the things that make it different from website is the App itself and the communication with the commerce engine and payment gateway. The commerce engine needs to expose APIs, preferably rest, which the App can call to get the required information and create baskets and orders.  

In the previous article there were a few areas that were required for doing the chip & pin Integration. Below are a list of features and considerations that can be built into the App and Commerce Engine when planning for first release. These are just my views based on the use cases I have seen so far and are by no means  complete.


Registration 
For unassisted in-store the user should be able to do it himself, else for assisted version it should a simple form which does not ask to much personal information but just creates an Id and then sends and email to the customer to  where he can go home and do the rest of the job. However registration should be not in the checkout process like websites. It is also useful to capture information about the customer and hence advisable to have as an optional functionality at the end of checkout for sure. 


Scan and Search
A very frequent use case is to not find the right size, colour or variant of the product that you are looking for but find a very similar product in store. So the user picks up the product on the shelf and walks to the customer desk to show what they have got and what he wants for easy explanation. In such cases attaching a bar code reader which can scan and bring back similar results is very handy to avoid delays in front of the customer.

Reviews, Ratings and Recommendations.
Very good features to have in-store, will keep the customer engaged for a longer time and also increase the chance of the customer coming back knowing they can always make an educated decision for buying a product. If the customer's email is captured it is good to ask for review of product purchased by sending the link for writing reviews in an email. Of course this is assuming the retailer also has a transaction website. We have assumed that the reviews service provider can do a hosted review with Apps as well. However this depends on the provider and hence needs to be verified before implementation.

Product Videos
Product videos demonstrating the product features can add a great value for the in-store user. Trailers for the new film or album can also enhance the in-store experience. For audio music we already have a hot spot where the user can jack up head phones and can listen to the song before buying. On demand video trailers for films and games can be done in a similar way.  Have not shown separate content providers for MVG industry and have assumed all data coming through PIM for simplicity.


Store inventory visibility
for a full blown multi channel this feature is unavoidable. However it is more of the commerce engine capability that decides this and the ability of other systems to expose store level inventory.   


No Preorders, No digital downloads but Yes Back Orders
Pre-orders and digital downloads do make sense for a few use cases of in-store ordering but they add considerable complexity in both payments and order handling and hence should try to accommodate in a  future release. Back orders on the other hand are one of the most important uses cases for in-store ordering where the item has gone out of stock and the customer is standing ready to pay for it and hence should ideally be considered. 


Existing Customer Order Association
If a customer already has an account with the retailer and is buying / ordering in-store, it makes sense a provide the functionality to associate the new order with his existing account. However this is a good to have functionality and can wait for future releases. Apart from just making it easier for the customer this also give good data for analysis of customer behaviour.

Once you have these things in place, the next step is to get the mobile phone app out. It can be a little different which I can write about next time.


-AV



  


Friday, February 24, 2012

Integrating Product Recommendations Engine

Product Recommendations are normally said to bring an increase in revenue by 5-10 % and hence are considered an important component of the website. Mostly all of them are built on the "K nearest neighbour" algorithm. In the past year I have worked with my customers to integrate either Avail, Peerius, Intelligent Offer or Rich Relevance for them. I was able to bring out the similarities in them which makes easy to find which one suits your need. I will keep the explanation on high level here. 

You will see recommendation coming up on the home page, category pages, product list pages, basket pages, order confirmation pages, product details page and even order confirmation emails or other emails sent to the customer and pages.  

The 3 broad based components for integration which are common across all.

  1. Back end data feeds to the engine
  2. User activity from the website to the engine. 
  3. Getting recommendation using the engine on the website 

Back end Data
On a daily basis, the website needs to send the product and category (taxonomy) data to the recommendations engine which in turn uses it to make recommendations. Some constraints that need to be observed on the data. Products sent should be in stock and associated with the category sent.  Try to keep the Product-Categories association as unique in the data sent as non unique data confuses the engine.  


User Activity from the website
Recommendations engine uses tags like Web Analytic Engine to collect user activity data. For eg,  Collect data when a product is added to basket or removed from the basket. Collect data about what is the user searching. Collect data about which product the user is looking at or collect data about which product the user has bought. The recommendations engine needs a good data history to generate good recommendations and hence it is advised that after integrating with the engine, it is good to hide the recommendations for about a month or two and let this data built up in the background.  If the is already live  using Coremetrics Analytics Engine and wants to use Intelligent offer for recommendation then this lead time is cut as Intelligent offer can get the data collected by Coremetrics. There are some changes that are required in tagging if you are using self hosted version of Coremetrics. 

Getting Recommendations.
1. Online
Just a simple JavaScript or JSON function to call to get recommendations. It accepts some product ids and filters in the fucntion call.  Product ids are the ones which the user is looking at or has looked at and are present in the history cookie and filters are categories or refinements based on which you would want to filter your recommendations. e.g if the user is looking at shirts then filters should be shirt category to show recommendations of shirts.
2. Offline or batch
The engine can export a batch of recommendations based on the data you export and then you can import this data in your DB, This has some performance benefits the dynamic characteristics or recommendations is lost as the engine cannot be engaged to do run time calculation based on user journey.


Suggestions for Design and Implementation.
Implement export jobs on Staging Environments to avoid load on production.
If you are using Javascript put all the script at the end of the page and trying using Ajax.
If recommendations are required on empty basket try using JSON or you will have to hack around cookies.

The main differentiator between recommendations engine is the Business Panel provide by them and the control you can have on which kind of recommendations you can display on a particular page for a particular product.  This is something that needs to be discussed and decided with the Business team. 

-AV

Thursday, February 23, 2012

Mobile Kiosk Using Tablets

In the last couple of months I have had 3 customers where we have discussed using tablets as a potential option for in-store ordering. To me this is a great idea and already implemented by some in the US and a people starting to change in the UK. Apple for example do it themselves and  Disney stores in the US has also implemented the same. House of Fraser in the UK has some stores where store users do carry an iPAD but its not complete in store ordering.

Why tablet and not the regular kiosk.

When you go for a tablet solution for kiosk, you use an external merchandising / commerce system via APIs. This architecture lays the foundation for many things like assisted in-store, unassisted (self service) in-store and mobile apps.   You can bring the web experience to the users in-store which includes and is not limited to showing reviews and ratings for a product, showing demo videos, showing recommendations of products that are bought together with a particular product etc. More intelligent apps might be able to handle in-store inventory as well which will allow pick up immediately after ordering instead of getting it delivered to home or store. Not to mention this is cost effective and relatively quick if executed correctly.   

Payment options
The preferred option for the customer will be use the card. Direct debit may be possible (and may be easier) but not explored so far. Since you have the customer in front of you, you should not be doing CNP transactions like you do it on the web. You need a card present transaction and for that you need to integrate a chip and pin device. There are a few things that need to be taken care of when integrating with chip & pin devices and they will be 

Tablets
Consider the cost of buying (or renting), breakage and most importantly theft. These are easy picks and you will be amazed to see how quickly they disappear if you don't have a proper mechanism to lock them down or trace them.


Card Device
Which device to use is affected by 
    • Company policy and preference
    • Payment providers support and accreditations. (A process which normally takes anywhere between 2-4 months for a new device)
App / Browser 
It is easier to integrate an locally installed app rather than using a browser based solution.  Browser based solution require an external / local service to fire up the pin pad and this could result in a very complex architecture with fail overs and DRs. If you are using app, the actual development of the app will be quite trivial but PCI compliance kicks in. 

PCI compliance.
The development of app needs to be PCI compliant as you card data passes through it. You need to disable all I/O ports on the tablet and no other app can be installed on it. There are many more things required to be done on the device but not listing them here else it will become a PCI compliance discussion. Again this exercise could be time consuming.

Screen size.
This was an issue with one of my customer where they wanted to use the tablet in a fixed position behind the desk. A tablet screen would have been too small for colleague to show it to the customer from behind the desk. To do it properly they will have to hand over the tablet to the customer which again can pose security issues. 

I would probably upload an overall block diagram of how things interact with each other. But a little later.

-AV

Mobile Internet

I tried using skype on my iPhone last year. Did not work on mobile network but was good on wifi. Tried Viber. Same issue. These are disruptive changes and are the future of mobile communication. Unfortunately the mobile plans that we buy are structured around generating maximum revenue for the network operators from called minutes and data plans are generally limited.

The future of mobile companies will be selling reliable mobile internet plans and less of the minutes blocking the revenue leak when users switch to wifi.  There needs to be significant change in technology handling mobile data though. Data connection on mobile are also not reliable and consistent. Walk in central London and monitor your data connection you will find it drops and comes back frequently. Once they are reliable users can select the call service provider like skype or viber. If the person to be called is on the same service it can result in a free call. Of course you need emergency calling also included and needs to be sorted out and this will be for the smartphone users only!  

May be a year or probably 2 before we start seeing good and reliable data plans!

-AV