Thursday, November 22, 2012

Is Google slow positioning the web?


Is Google slow positioning the web?

 As I increasingly aware that web site analytics going to be decreasingly fruitful to measure certain metrics like "keywords" used to land targeted page. The reason is more and more Google uses search behavioral targeting (browsing behavior) and contextual states (from its properies like Gmail/Google plus/Drive/Android etc) to manipulate the result. It is shockingly evident that the page I see as a result of search for particular keyword is not equal to others anymore and it is going to be increasingly different for each users. 

So how would this impact  Ads and Analytics. Yes it will. For ex. google analytics reported that user searched using keyword "some search term" and got this page. I tried the same query, i could not find the search result with my application. I tried almost all the pages. This is truly dangerous and google is slowly positioning open internet. 

Keyword "circle" is not same for every users, if they use Google properties more, circle may be square or rectangle or something else. This is definitely not good for Ads based on keywords.

Generally, Google Search is where people wanted search and locate their desire content and immediately go out to different pages, those different pages is going to be affected more and more when Google chases Facebook (I mean if G+ grows more search result increasingly going to be different).  In contrast Facebook is where people go there and stay there and do not want to move out, thats why Facebook "Like" is  just become vanity metrics, people may like it but may not pay any attention to or leave Fb to its source - it is not very useful to business)









Friday, April 13, 2012

Smartphone shifting everything

Most of the people who tracks  mobile app world aware of importance of apps and great companies like instagram become quick $1 billion worth just capitalizing momentum behind mobile. Many companies focusing on mobile first strategy. Mobile become increasingly powerful and ubiquitous eating time of people and very much immersed in something on mobile (http://cnnphotos.blogs.cnn.com/2012/02/29/de_vice-our-mobile-addiction/), every 3 months new mobile comes of with some kind of improvement. Already USA crossed 50% mark of smart phone user. It is definite empowering people, once information was living in the people's head, then in books, then in desktop kind of computer - started moving with laptop and now living with people every moment. It is gateway to greatest and ever growing repository of cloud.

What a fantastic period. From the moment Steve Jobs holds iPhone in his hand and unveiled to the world industry got disrupted loosing Palm, RIM and may be Nokia. Most of the revenue is sucked by  Apple http://www.asymco.com/2012/04/04/weighing-the-share-of-value-created/ 

Thursday, March 08, 2012

Birth of SSD with PCIe connector with 2.5 inch form factor.

PCIe 2.5 inch SSD - fruit of ssdformfactor.org:
Couple of years back came to know that ssdformfactor.org is formed to drive next generation connector architecture for storage devices because SSDs are almost immediately saturating whatever improvement SATA   and other Standard brings in.

SATA3 with 6gbps is saturated immediately by then Sandforce controller based SSDs in consumer market. Enterprise SSDs are different stories - few companies uses SATA based one others uses most popular high performing PCI Express card based solution to drive 100s of thousands of IOPS.

 Micron the company known in consumer SSDs space like crucial C300/M4 kind of SSDs owning it's own NAND fabs jointly with Intel revealed PCIe 2.5 inch SSD.

It is fruit of ssdformfactor.org which finished and approved version 1.0 of Spec. So, in coming months we will see SSDs which incorporate PCIe connector popping up. It is really going to be game changer for standard based storage solution.  Dell, in fact, partnered with Micron for the above mentioned drive and said they are going to use in their servers.

Apple's the new iPad

Apple ecosystem is maturing a lot. One of the best in class which makes entertainment/ content consumption roundtrip without much hassle of network fiddling unlike other's offering.
The new iPad Ups the ante, it supports LTE, Bluetooth 4 to wifi n in one end and gorgeous retina display on the user end.  Experience is function of coordinated/rhythmic working of various components working as whole results in more than sum of individual things.  And retina display needs big content whether it is movie or music or game or other app which needs very good network, better GPU, CPU, RAM and battery -- at the end how I experience it -- ( how immersive it is! ) simply hides what beneath it. So Apple still proved they go on creating better experience and people love to buy those experience.
It looks like and based on very recent new tablets unveiled -- from Asus to Lenovo, they look simply unmatched in whatever angle I review it.  Samsung has a chance to match and better Apple's new iPad. With new Google Play, better screen, better processor they can match it in spec and on round trip but not sure whether they will deliver it.

  

Tuesday, March 06, 2012

Apple's Slide to unlock is prior art

Apple's slide to unlock (http://www.theverge.com/2012/3/6/2849051/slide-to-unlock-patent-apple-android-google) is prior art. If you happen to see old india door lock, it is just that in digital form.  Why apple?
I will post one of my antique house slide lock soon :). This kind of lock's can be found in old indian temple also.


Sunday, February 26, 2012

About Android fragmentation

I read a great post http://pxldot.com/post/18281312362/android-measuring-stick by Chris Suave. I have different thought on his conclusion about ICS. Here is why.
1. Galaxy S2 is sold more than 20 million to date and Samsung will upgrade SII to ICS and leave GS.
So, all the S2 devices will be upgraded to ICS
2) HTC has same take -- will upgrade most of the HTC released on 2011 phones
3) Motorola will upgrade Droid Razr, Maxx etc  and Sony and LG is saying so.

So effectively 3rd quarter of 2012 will see ICS going to over take Gingerbread.  The trend is that once vendor started porting their skin to ICS and rolling out to existing devices and new devices which is seen in MWC2012 ( except Sony) ICS is major platform. So 90% of the all the devices sold in 3rd quarter is going to be running ICS. But unfortunately Google is talking at that time about Android 5 or 4.x.

Tuesday, January 17, 2012

Should I use GWT ( Google web toolkit) or JQuery?, My answer is JQuery

Google Web toolkit is powerful tool for creating rich web application using Java as development language and eclipse as IDE. When GWT was launched, it was great idea for Java folks to qucikly write code in Java which GWT tool will translate to corresponding Javascript code. It was making sense for Java folks, and making sense for the time when browser based debuging is pain and non existing. GWT provide cross browser ability and boilerplate code, so it is easy to bring rich AJAX based widgets.

There are tradeoffs,
* you code in Java
* you code in they way GWT ask you to code
* I like to use HTML5 data-* api and Wensockets - you need to depend on GWT team to release supporting API or you need to learn Java to implement those in GWT way-- it introduces one more impediment/dependancy to code upgrate path ( or fragements the development)
* You many not use HTML or HTML5 etc, you use Java. I would have been happy in year 2000 but  not in 2012 :)
* You gradually diluted out of web :)

I am not pro to GWT, I like to code in Javascript and wanted to utilize beauty of JS programing. I wanted to control what I write, however I don't want to code for various browsers. My biggest pain is not pure JS coding but browser specific code and DOM scripting. So JQuery fits nicely here.

JQuery shines at
* You code in Javascript and not in Java so I don't depend on Java
* Simplifies DOM scripting
* Fosters plugin based reuse and mostly you find it from somebody who already written it somewhere (there is plugin repository from JQuery website)
* Micro updating through Ajax is simple and closely write code to the specific APIs and normally you write it in a line of code
* Very popular and hence you find support of any kind of issues is milliseconds (that's what google search tells you)
* Everybody supports including Microsoft, I like their contribution to JQuery template
* There are available from many CDNs -- Google, Microsoft, AOL etc
* Taking dynamic coding to the next level, Do the template in the browser -- I do lot,
* I can use HTML5, CSS3 etc in a way that's close to specs


Wednesday, January 11, 2012

Playing with Hotmail oauth

Hotmail is very friendly unlike Facebook to access their info.  Use https://manage.dev.live.com/ and create your app and get client id and secret. It also allows you to specify callback/return to URL in the dashboard.

It is funny that URI component for mobile app is touch.

It is interesting to see it support localization but there should be a way to pass localization info dynamically otherwise it is of no use.

Very elaborate documentation about how to access live oauth 2.0 based service is here http://msdn.microsoft.com/en-us/library/hh243649.aspx.

Tuesday, January 10, 2012

Erlang Facebook API

I am exploring way to get into user's graph using Facebook API, my language of interest is Erlang. With quick search, unlike Yahoo API, I found couple of erlang module available to do the job. I will go over it and if I find anything cryptic, I will update it on next post.
My requirement

  1. User wanted to bring their user graph but not need to provide their userid/password (oauth)
  2. Once loggedin, they choose people who they are to be invited 
  3. Choose selected one.
This is kind of interesting flow, in fact, others following.  

Constrains,
  1. What is the API user agreement?
  2. No of calls limit
  3. Constrain to post message to Facebook using API
  4. Retrieve Events 
I will research these topic and post it here if anything interesting.

[Update] Facebook API doesn't allow contact email addresses of friends but found that there are greater API level integration with different graph API. But clue is "it is easy with oauth" but facebook notoriously stoping me to verify my account using phone no :)  So I am hibernating this effort.

Sunday, January 08, 2012

Yahoo oauth and Erlang

I successfully implemented or more aptly integrated yahoo oauth.
Points to note,

  • You must sign in and get 
    • Consumer key embeds what kind of service you are enlisted 
    • Secret 
    • App ID (you don't need it for YQL)
  • For accessing private data -- it is 3 legged process -- 
    • Get request token
    • Use that to bring yahoo sign in page to ask user to give authorization to access services 
    • Once user accepts, callback URL will be called and with query param 
    • Once callback is complete, access actual DATA API using YQL
  • YQL determines what service (like contact or connection etc) you are accessing but consumer key tells whether you have that service enabled. 
  • If you later add or modify service access, you will get new consumer key
  • diagnostics=true is handy to see what is wrong with your request
  • Most of the oauth parameters are sent as query string
  • Mostly more than 3 requests fired to yahoo to get a data
  • window.opener will not work to communicate back to parent window because it is shifting to 2 different domains
  • I used ugly timer to track popup window to closing status. I felt window.close event would have been handy.
I used nice little library for erlang (https://github.com/tim/erlang-oauth) 

Open source winning because of all of us

I saw hacker news today that Nginx become most (sorry second most) popular web server putting Microsoft IIS into its rear view mirror, and now it is behind Apache web server --- first 2 are Open source projects.

Middle or before end of this year Google Chrome is going to do that for Internet explorer, again it is based on chromium open source project.

Android did better and put iPhone into second place.

It is all great news and we never know how many people behind this effort, there are lot.

Again, younger generation are getting charges into big IT role into corporate environment and will see more churn soon in enterprise sector.

I am seeing Open source started winning the game.  Software are commoditized and it good thing that it is going to impact huge into people's life.

Linux made or commoditized server and which in turn revolutionized into Cloud,
Web started growing big because of lots of open source projects like Apache, Linux in the server side and
programing tools like PHP, Python, Perl and others made development  or building product or web apps easy. I never heard any startup using C# or .Net.

Android to iPhone and Windows --- Anybody can built anything using Android, there is no barrier to software availability, so hardware is getting cheap and all the corners of the world is benefitting.

When I heard OLPC's $100 PC, I could not imagine how it is possible, but now seeing under $50 tablets like India's Akash.  It is possible because these product vendor no need to develop OS which is free and saving that cost to shave hardware cost make sense. It is not only money but effort and fear of adoption, if it doesn't have appeal or market share like Android which pulls people to think and be confidant to go ahead with product.  I am not denying other factors - thanks to ARM processor  for its cheap  processor and mass manufacturing of LCD which driven cost down -- these are happening  because of mass effect.

Saturday, January 07, 2012

Apple and Apple TV

Everybody is gushing and guessing that it is going to be from 32-55 inch with SIRI based interface etc etc. But I am thinking "Will Steve Jobs think that that is going to be a good idea?" It sounds negative to me.
But Apple is going to release TV. Surely. What I am thinking that Steve would have thought "Take already existing product which really sucks now and if it put under "Steve Jobs Treatment" it is not going to suck, it is going to be fantastic product -- in terms of simplicity, aesthetics and sale" -- Is current LCD TV going to create such magical overhaul? I am not comfortable to say yes.

But what if Steve picks up "PICO" projector and combine that with Apple TV with toch LCD on top to touch control and iDevices act as remote, Camera for face time and little more sensible SIRI?

SIRI will sound cancel the sound coming out of TV??? in order to understand user voice (hunt for patents), it is Apple TV version 2 :)

Just opposite of proximity sensor in iPhone -- move your hand to the top senses your hand and turn on LCD, to do touch to control -- so it can independently operate. It can gel together with iDevices, it is already built into apple tv.

Totally I hate TV because it is not portable, it is not magical

Thursday, January 05, 2012

Steve Jobs Treatment

Today, I am introducing the term "Steve Jobs Treatment".

Usage: "Give a Steve Jobs Treatment"

What is it convey?

It is to "convey feedbacks and force to act on those feedbacks" of particular product or work in general -- to making it  
  • Simple, 
  • Aesthetically appealing,
  • Useful and 
  • Pleasing to use in and out


What is it going to be?

After those implicit feedbacks and acting on those action items, product or work should be

  • Simple, 
  • Aesthetically appealing,
  • Useful and 
  • Pleasing to use in and out and 
  • Feel faster in overall experience against raw performance numbers

Hm.. I also put this blog entry into "Steve Jobs Treatment".

[Please note that it is not about medical or health related treatment]

Thanks. 

Wednesday, January 04, 2012

Websockets, Well done Apple!

Websocket is now standardized in RFC6455. With IE10 on board all Desktop browsers supports Websocket.
Desktop Browsers versions which supports websocket:
  1. Google Chrome
  2. Firefox 7+
  3. Opera 11+
  4. IE10
  5. Safari 
Mobile OS:
  1.  iOS (Safari -- personally tested) which includes iPhone, iPad and iPod touch. The very noticeable point is, Apple is supporting it from iOS 3 on wards. 
Android OS:
      None of the browsers including Firefox (I tested with FF beta)
         Google is very poor at implementing websocket in Android, considering fragmentation and it's track record of upgrading OS in the Android land, it is going to be another year or 2 to support websocket in Android.  It is blow to Android and Google suffers "Microsoft" syndrome. 

Apple is leading by example in implementing Html5 and Websocket protocol, Android lacks severely in this area.  For web developer, will it be a fight and pain supporting Android devices similar to how it was to IE6?

Well done Apple!.




Mochiweb 2.3.1 and cygwin on windows

I just want to setup plain webmachine and mochiweb latest (2.3.1) from their respective github (git) repository. Webmachine clearly not compatible with mochiweb 2.3.1, at least for simple not dependent (no Riak) instance,
These are the additional services should be started,
here is the code which webmachine likes,

     ensure_started(crypto),
    ensure_started(public_key),
    ensure_started(ssl),
    ensure_started(compiler),
    ensure_started(syntax_tools),
    ensure_started(xmerl),


ensure_started function is nothing but webmachine's, this is a kind of paradigm followed by all well written Erlang apps. 


After these changes, webmachine is started and flashed "Hello, new world" when I hit http://localhost:8000, may be I will push these changes to webmachine. 




Tuesday, January 03, 2012

Erlang DNS TXT, MX record look up

I was exploring how to query DNS and do some probing on various types of information like MX and TXT records.
Here is the simple API
 Step:1         inet_res:nslookup("domain.com", 1, txt).                                                                           
It is always advisable to use another function, to convert it from internal record type to list,
 Step:2        inet_dns:msg(Return_from_Step1)                                                                                                    

 Step:3        inet_dns:rr( Return_from_Step2)                                                                                                           



Step:2 always return list or tuple of error message. So return value from the Step:2 should be processed.




Here is the complete code which returns "TXT" rr record, you can substitute mx for "MX" records,
lookup(Domain, VerifyingText) ->
 case inet_res:nslookup(Domain, 1, txt) of 
  {ok, Record} ->
   DnsRr = case inet_dns:msg(Record, anlist) of 
           DnsRrList when is_list(DnsRrList) -> hd(DnsRrList);
     _ -> []
           end,
   io:format("IS of type ~p ~n", [is_list(DnsRr)]),
   inet_dns:rr(DnsRr, data);
  _-> false
 end.
Pass the domain name to the lookup, you will get the list of records.


 More here http://www.erlang.org/doc/man/inet_res.html

Sunday, January 01, 2012

Google API using cURL or wget or plain http

I was researching to use Google API for certain activities.
There are 2 kinds of access
  1. oauth 
  2. clientlogin (username and password) 
I am mostly interested in clientlogin.

Client Login:

Thing to Note:
  1.     Service Type: More here http://code.google.com/apis/gdata/faq.html#clientlogin for contacts, service type is "cp"
  2. There are 2 request to fetch the actua value
    1. First Request URL:  curl https://www.google.com/accounts/ClientLogin --data-urlencode Email=YOURID@gmail.com --data-urlencode Passwd=PASSWORD -d accountType=GOOGLE -d source=Google-cURL-Example -d service=cp
    2. Response for the above Request will be: SID=DQ...........A
      LSID=EUBBBIaBADCl...........2JKOuGh
    3. Make second Request by using Auth param from the above response: 
      1. curl --silent --header "Authorization: GoogleLogin auth=AUTH_TOKEN_FROM_ABOVE_RESPONSE" "https://www.google.com/m8/feeds/contacts/YOURID@gmail.com/full"
       
  3. Second response will be the address details, thats it.