Saturday, September 30, 2017

Today we continue reviewing the whitepaper - the chutes and ladders of customer identity from Gigya which is a leader in Customer Identity and Access Management Industry. The title uses an analogy of a well-known game. This is a whitepaper that introduces the delights and the pitfalls in customer experience with identity.
Some of their salient mentions include:
1) The need for personalization experience from the beginning and the need for a lighter touch.
2) More visitors register themselves when they see a value and an easy way in.
3) Also customer data can be collected over time and the profile built up on a continuous basis
4) This data can also be shared or synchronized with downstream marketing, sales and services based on compliance with privacy and industry standards.
5) CIAM Solutions treat first party data of the customer as cash. Its value is immediate and most reliable.
6) There is transparency required by virtue of the data and integration between systems should be facilitated but these systems realize the importance of first party data.

One mention this CIAM solution seems to get that customer loyalty should be cherished and fostered through online engagement where a feedback loop can be created to make recommendations that suit the customer's behavior and preferences that can go on and on. This is also a virtuous cycle of long term growth in relationship. Score card and profiles maintained with the customer data may help with analytics. What used to be static tables in a database now becomes an accruing analytics platform. We may refer to AirBnB's discussion to see how the storage and analytics evolve. the key takeaway was the possibility of a data pipeline and analytics platform as opposed to databases and service oriented architecture.

Tomorrow we will start reading another white paper from Gigya.

#codingexercise
count palindrome substrings in a string.
We mentioned the brute force way is to enumerate all substring and check for palindrome. This is also similar to using each letter as the center of a palindrome candidate and expanding it in both directions for even and odd length palindrome. We also mentioned an alternative that exploits the lengths of the palindrome substrings to follow Pascal's triangle We explain dynamic programming technique Since this problem of counting palindrome has overlapping Subproblems in the range i to j of the string, we can also use memoization and dynamic programming. 
For one or two letters in a range (i,j):
      we can initialize the palindrome count
else if str(i,j) is a palindrome
      we increment the count by 1 and count for (i,j-1) + (i+1,j) - (i+1,j-1) 
else 
      we proceed to count for  (i,j-1) + (i+1,j) - (i+1,j-1)
This count can directly be read and updated in a dp matrix of string length sized x and y.
Here (i,j-1) + (i+1,j) - (i+1,j-1)  implies that the first part of the count comes from taking the substring in the range i to j-1 by leaving the last letter, the second part of the count comes from taking the substring in the range i+1 to j and the last part of the count is the removal of a duplicate count contributed by the twice inclusion from the substring in the range (i+1,j-1) which is leaving both the first and the last letters.
The above is repeated for every gap occuring between letters from 2 to n and the i,j are selected such that i takes values from 0 to just before the gap and j as the letter after the gap.This way the dp table fills from columnwise towards the right so that the values computed can be re-used for the next iteration.

No comments:

Post a Comment