Download Android App


Alternate Blog View: Timeslide Sidebar Magazine

Friday, July 29, 2011

Social Commerce: Part 3 : The case for and against Facebook

This is the third article in the series 'The case for and against Facebook'

While the previous strategies can be labeled as "Direct Sales", using 'Indirect sales', a retailer can create more value. And all of it can be achieved right from your fans and the fan page.

i. Using Facebook, it is easy to extract trends, identify influencers, monitor competition and glean customer insights. Here is an example of a survey conducted by an e-retailer:








Simple questions like these can provide insights around what strikes a chord with your target audience.

ii. What more? If you boast of your website's fan base, build a detailed profile of your fans using their interests, posts and other information and feed it to your CRM system. Track customer's interaction history on fan page, learn from their kudos and complaints and they will love your customer service. The important point to understand here is to move away from boasting about the number of ‘fans’ and ‘likes’ and instead explore actual consumer behavior.

iii. Another important 'scorecard' that can be derived from Facebook (and social media in general) is customer satisfaction data. It is a fast and inexpensive way to measure customer satisfaction.

With technologies like sentiment analysis and NLP (Natural language processing), you can capture:
  • Buzz - How much people are talking about your brand?
  • Net Sentiment - How positively they perceive your brand?
  • Passion Intensity - How emotionally charged their feelings are?

Hope you enjoyed this series. Feel free to share your ideas.

Previous posts in this series: Part 1 Part 2


Wednesday, July 20, 2011

Metrics and more


In my quest for quality open source software, I came across a library for "Capturing JVM and application-level metrics. So you know what's going on."

Meet Metrics @ https://github.com/codahale/metrics

One great feature about this library is it can be easily integrated with Graphite. Graphite is a a highly scalable real-time graphing system.

A presentation about the library can be viewed here. I must say it is a great presentation. A memorable line from the presentation:

"Business value is anything which makes people more likely to give us money. We want to generate more business value." 

The library is actually very simple to use. Some code snippets to help you get started:



public class EServiceImpl implements EService {

//Measure the # of times the API is invoked
private final MeterMetric eMetric = Metrics.newMeter(
 getClass(), "Send API", "reqs", TimeUnit.SECONDS);

//Measure the rate of event i.e. req/ sec.
private final CounterMetric eCounter = Metrics.newCounter(getClass(),
 "ECounter");

ConsoleReporter.enable(10, TimeUnit.SECONDS) //Print metrics to STDERR every 10s

public void service1(){
        eCounter.inc();//Increase counter by 1
        .........
        eMetric.mark();//Mark the occurrence of an event.
}


Output on the console:

7/20/11 10:41:06 AM =============================================================
com.impl.EServiceImpl:

  ECounter:
    count = 10

  Send API:
             count = 10
         mean rate = 5.00 reqs/s
     1-minute rate = 2.50 reqs/s
     5-minute rate = 0.50 reqs/s
    15-minute rate = 0.16 reqs/s

If you're writing a Servlet-based web service, you can add MetricsServlet from the metrics-servlet subproject to an internally-accessible context. Add the following lines in web.xml.



<servlet>
 <servlet-name>CodahaleMetrics</servlet-name>
 <servlet-class>com.yammer.metrics.reporting.MetricsServlet</servlet-class>
 <init-param>
  <param-name>metrics-uri</param-name>
  <param-value>/metrics</param-value>
 </init-param>
 <init-param>
  <param-name>ping-uri</param-name>
  <param-value>/ping</param-value>
 </init-param>
 <init-param>
  <param-name>healthcheck-uri</param-name>
  <param-value>/health</param-value>
 </init-param>
 <init-param>
  <param-name>threads-uri</param-name>
  <param-value>/threads</param-value>
 </init-param>
</servlet>

....

<servlet-mapping>
 <servlet-name>CodahaleMetrics</servlet-name>
 <url-pattern>/CodahaleMetrics/*</url-pattern>
</servlet-mapping>

Navigate to: http://hostname:port/WebAppName/CodahaleMetrics

The output metrics is dumped in JSON format. You can parse it and pass it to your favorite graphing library.

Note: All metrics are reported via JMX, which you can view using VisualVM or JConsole.

Documentation needs some work but overall, I would rate the project as Very Good.

Friday, July 15, 2011

The New Sony Vaio Advertisement

Have you seen the new Sony Vaio advertisement featuring Kareena Kapoor in a myriad of colors? Indeed, the background setup and the costumes in the ad are bright and vibrant and the music pleasing. It goes well with the tag line "More colors, more style".

But what caught my attention was the concept of the commercial. The concept is simple - wear a matching dress to go with your laptop's exterior or the other way around. It's like the Kohler commercial that was on air few years back. The words struck me - "So.. what can I do for you?..... Design a house around this."

The Kohler advertisement was simply amazing but Sony Vaio commercial made me feel pity about it. In the competitive laptop market, each company is trying to beat it's competitor. With no real USP, companies are now competing on trivials. It seems as if these companies are saying - Take 1 GB more RAM, or the new 15.555" wide screen laptop, or take more covers for your laptop. As if the women of our times don't have burden of choosing the right dress for the occassion, they have one more to make now.

It is not difficult to vision what is coming next, for tomorrow, they may come up with washable laptop covers, and God forbid, tie up with a detergent selling companies and offer 1 kg pack free with every purchase of laptop!

My point is innovation is important and there is no substitute for it. Cheap marketing gimmicks and creativity shown at the wrong place will not lead to happy customers and not drive sales. There is no value creation in trifles.

The Sony Vaio Commercial:



The Kohler commercial:

Tuesday, July 5, 2011

Trance music is bliss!

Perhaps the most ambiguous genre of dance music, trance could be described as a melodic, more or less free-form style of music, partially derived from house. While there is no strict definition for trance, songs of this genre are usually characterized as being accessible and having anthemic and epic and rifting and psychedelic qualities.

It is my favorite genre. Be it vocal or purely digital, I am crazy about it.

So what is trance? How is it different from Techno music?

1. Techno focuses on rhythm and beat.
2. Trance focuses on melody.
3. Techno is more repetitive, and can be blended with other tracks.
4. Trance is less repetitive, and is a stand-alone piece
5. Techno is pure energy
6. Trance has a building up of energy, much like a story with a climax
7. Techno was developed in Detroit in the 1980’s
8. Trance was developed in Europe (Germany) in the 1990’s
9. Techno is inspired dance music
10. Trance is inspired music dedicated to the listening mind!

The most popular DJs in the world often play Trance music. Popular among them is Paul Oakenfold (1998–1999), Sasha (2000), John Digweed (2001), TiĆ«sto (2002–2004), Paul van Dyk (2005–2006), and Armin van Buuren (2007–2011). Nadia Ali was recently made the queen of trance because of her amazing voice!

Armin van Buuren is one of the most terrific DJ of all times. In 2007, 2008, 2009 and 2010 he was voted number one in DJ Magazine's annual top 100 list of the most popular DJs. You can experience his music in the video below:





And "For an Angel":


Impressed?


Sunday, July 3, 2011

Hazelcast - A simple distributed caching library

Its been a while I explored open source projects in distributed systems area, and interestingly, I had two interesting finds in terms of projects worth exploring - Hazelcast and ElasticSearch. I have seen such projects being implemented in large software companies and I was happy to see feature rich open source projects. So I decided to explore both of them.

From their website: "Hazelcast is an open source clustering and highly scalable data distribution platform for Java, which is: "
  • Lightning-fast; thousands of operations/sec.
  • Fail-safe; no losing data after crashes.
  • Dynamically scales as new servers added.
  • Super-easy to use; include a single jar.
And yes, it keeps the promise. It is very simple to include it in your project and get started.

Some good things that I liked about Hazelcast:
  • Hazelcast is dead simple, it does what it says and performs really well without any configuration overhead. e.g. Nodes discover each over with no configuration.
  • It uses peer-to-peer communication as against client-server (Teracotta's Ehcache) setup.
  • It is a little more than a cache as it provides distributed implementation of map, multimap, queue, topic, lock and executor service.
  • Focus on strong consistency as against eventual consistency (Amazon SQS) i.e. GETs and PUTs are guaranteed to be consistent. I am not sure whether availability or partitioning takes a hit here.
  • Native Java, memcache, REST and C# clients.
  • No external dependencies. Hazelcast uses pure Java including NIO for all peer-to-peer communication.
There is more interesting stuff about HazelCast that I will cover in the next article.
    Getting started: Some sample code snippets are available here.

    Who is using Hazelcast and how?

    Take a look at this article. It talks in detail about caching and processing 2TB Mozilla Crash Reports in memory with Hazelcast. The project lives here.

    In short, Hazelcast is cool!

    Other alternatives worth looking at:
    • Ehcache
    • JBoss Cache
    • OSCache
    • Memcached
    In the coming articles, I will discuss ElasticSearch.

      Friday, July 1, 2011

      Gamification: The new mantra of acquiring and engaging customers

      Read this great article about 'Gamification'. We all have seen the concepts being applied in the online but virtual world. This article highlights it coming of age and it's impact on user experience on the internet.

      Former EA executive, KPCB sFund lead and all around inspiring person Bing Gordon led a talk today at the sFund Gamification Summit. In his talk Gordon broke down platitudes like “gamification is important” into key actionable takeaways on how succeed with gamification, takeaways that could be reformatted and applied to any company.

      When asked why he went through the trouble of putting his guide to how to successfully gamify together for entrepreneurs, Bing told me, “Every startup CEO should understand gamification, because the gaming is the new normal,” referring to the fact that every one who had a Nintendo at 16 also has a brain that works in a way that’s more receptive to game elements. “We are overdeveloping the visual cortex of our customers,” he said.

      [The cerebral cortex is the most highly developed part of the human brain and is responsible for thinking, perceiving, producing and understanding language. The visual cortex is that part of the cerebral cortex responsible for processing visual information.]

      The best way to acquire customers was to eliminate bounce, by creating a pleasant experience at first entry way, being said. “If you create cognitive dissonance in the first 5 seconds they bounce,” he said. Designers should aim for creating a “touchable box” or something that people want to touch. He then referred to the game’s interface as being an engine, saying that a great UX/UI guy could save a company from having to throw out thousands of lines of code and could replace five engineers.

      In terms of user engagement, Gordon advised CEOs that first impressions matter, “Your job is to create a “Wow” within the first session … The value of gamification is the mechanics second and the mind of gamers first.”

      Things like virtual goods, showing numbers and giving badges are ways to positively reinforce users for playing your game. Letting them own part of the game by generating and submitting their own content was another way to solidify this emotional bond between creator and user.

      Bing also emphasized the value of avatars in games, “Any kind of avatar that people buy into can dramatically change engagement.” It makes sense, people love things that give them a sense of identity. If a game, service or anything really can give them that, then they’re hooked.

      Constraints, pre-announcements, and engendering social obligations to play a game were other things Gordon touched on that can contribute to customer retention. He said that the number one question on a game designer’s mind regarding a user should be “Will she come back?” and then “When?”

      “We’re in an era where we can have billion dollar audiences,” he closed out the talk saying. There’s no harm in using a few tried and true devices to keep people coming back.

      Notes about gamification:

      Gamification is the use of game play mechanics for non-game applications (also known as "funware"), particularly consumer-oriented web and mobile sites, in order to encourage people to adopt the applications. It also strives to encourage users to engage in desired behaviors in connection with the applications. Gamification works by making technology more engaging, and by encouraging desired behaviors, taking advantage of humans' psychological predisposition to engage in gaming. The technique can encourage people to perform chores that they ordinarily consider boring, such as completing surveys, shopping, or reading web sites.

      Early examples of gamification are based on rewarding points to people who share experiences on location-based platforms such as Facebook's "Place" feature, Foursquare (social network), and Gowalla. Some of the techniques include:
      • achievement "badges"
      • achievement levels
      • a task a company is trying to encourage, such as completing a social networking
      • profile or earning a frequent shopper loyalty award.
      • virtual currency
      • systems for awarding, redeeming, trading, gifting, and otherwise exchanging points
      Gamification is used by marketers and website product managers as a tool for customer engagement, and encouraging desirable website usage behavior. Gamification is readily applicable to increasing engagement on sites built on social network services. One site, DevHub, increased the number of users who completed their online tasks from 10% to 80% after adding gamification elements.

      You may be interested in other E-Commerce article: Social validation and E-Commerce