WHAT'S NEW?

'let' and 'var' keywords in JavaScript

Scope is an important aspect in programming. This scope concept is quite different and challenging in JavaScript. This is more in case of variables because of the variable hosting concept.

Keyword - 'var' makes variables available at global if its not bound inside a function and when inside a function, it is available as a scope variable all throughout that function.

On the other hand, 'let' keyword restricts the variable similar to how the scope of variables in with C# or Java. This brings in the most needed advantage and functionality that has been making developers get nightmares for because of variable hoisting.




Mongoose + Nodejs :: Add data to an array field in Mongodb document

We recently had a requirement where were required to update an array inside the document. Array is a filed inside my document apart from few simple datatypes.

Here is the current document structure




I want to add a JSON to this ARRAY field as shown below.

Once added, the document looks like this




This is how we do it in the code. There are many ways apart from this yet, I found this more readable and more easy to use.

Andy Android Emulator Review : its a headache emulator

In the last 2 days, I have tried installing multiple Android Emulators out there on the internet. I will now start writing the review on those one after the other.
I would like to start this with Andy emulator, the one that had tortured me and literally harrasd me.

The biggest downsides of Andy are:

  1. It took away a huge piece of disk space. It took 4.5 GB space.
  2. Leave about eating away space, the biggest disadvantage is that it did not give me an option during setup to change the location of the installation. It by default installed everything in C drive. What the Heck! is this.
  3. It took close to an hour to install on a machine that runs on i5 Intel, with 4 processors and an internet speed on 8GB. BS! a real BS.
  4. I did not show what all are its dependencies. Half way through, it started asking me permissions to install Java Virtual Box softwares of multiple types. One more BS. This made me stick to my seat staring at my monitor.

I felt like i will puke (vomit) on my laptop screen before it finishes. Thanks to my mom, she gave me a needed break with a wonderful coffee. 




Elasticsearch :: count query

I have an index in Elasticsearch that has bank details. What if I want to query this index (database) to find all the account holders whose age is equal to 40 and who does address lane does not have the word 'lane' in it?

here is the query. I get the count

Why I do 15 min or else duration video tutorials

Building Nodejs REST API - Part 1 - What is package.json

Hi friends,
Here is the 3rd video in the series for learning Node.js and building a REST API. In this video, i give you a brief introduction to package.json file.

package.json file is the place where it holds few important information about our nodejs application. It holds the information like the dependencies, the dev-dependencies etc. So, if you install express, then the version of the express that you installed is mentioned here as a dependency.
Watch this 11 min video. As promised, i will make sure that i dont cross 15 min of time in video length. So that each video can separately answer you a concept.




How a C# code becomes a running application


Ever wondered how our C# code gets compiled and becomes an executable that runs on our machines?

I am sure I wrote more than a million lines of code in C# alone in my career of 7 years till date. I should have written another million lines of code in SQL Server, Android, Node.js, JavaScript and few other NO SQL languages like Mongodb, Redis and Elasticsearch.

Today, i was cleaning up my book shelf and found a book that i wrote sometime in 2012. That was when i was not even 4 years of experienced and the only language that i spoke apart from my mother tongue, Hindi and English was C#. In that i drew a flow chart which explained me the steps that were involved in making my C# code become an executable/ a dll that ran on my machine. I wanted to share it with you all and here it is [ not the hand written one, of course :-) ]


What is EventLoop in Nodejs and how does it work







What is EventLoop is Nodejs and how does it work

Step by step installation of Nodejs application to Heroku Cloud platform for beginner

Step by step installation of Nodejs application to Heroku Cloud platform for beginner

Hi friend, this time I have decided to write on how to deploy Nodejs application to Heroku cloud platform. This is such an important article on my blog and in my faith of sharing knowledge helps us more. This is because I have had a very tough time understanding on how Heroku works and how to push an application(Nodejs) in my case. I spent almost 2-3 days of sleepless nights apart from my working hours at office, and 3 hours of travel everyday. 
So here we go...
Points to note, I did not address on how to create an account in Heroku or what is Heroku dashboard etc as they are basic steps and are easy to do. I have used Mongodb as my backend and I use a separate Mongo lab account and call it in my app than getting it registered inside the Heroku as an add on. The add on via Heroku is a chargeable account.


Review : Visual Studio Code

Visual Studio from Microsoft is mostly used as a paid one except for small application and demos that are done by people like us. For quick code snippets and tutorials, Visual Studio Express has been released a along with VS2010. From then on, Microsoft has been having an eye on the trends and developments in the market.
They have released plugins via their NuGet package manager for Node.js, CofeeScript and many others in the last few months.
After Satya Nadella became its CEO, Microsoft has predominantly been embracing open source communities. Their MVP now includes open source contributions as well.
They have recently released VS-Code editor that fits rightly for a right looking IDE for Node.js. Its light wait and installs quickly. It is a perfect one to develop ASP.NET with Node.js.
  

ASP.NET WEB API Basic Authentication Custom with ASCII encoding and Base64 Encoded username and password

ASP.NET WEB API Basic Authentication Custom with ASCII encoding and Base64 Encoded username and password

Hi mates, In the last article, we have explored the ways to do basic authentication by picking up the username and password from the request headers in Node.js using Express.js request object.


Today, in this article we will look at how we can achieve the same in ASP.NET Web API.

To Implement the basic authentication, we need to have our custom authentication class inherit from AuthorizationFilterAttribute that is part of the System.Net.Http.Filters namespace.

So, lets create a class named myAuthentication and let it inherit from AuthorizationFilterAttribute  as shown below.


Once that is done, let us see if the headers have the authorization property filled with data.
The username and password are in the headers under the authorization property that returns AuthenticationHeaderValue object. Of all these values, Scheme and Parameter are the properties that are of our interest.


Once we have the authorization one, the Parameter property of this has the encoded value that is of our interest. We need to decode this. In general, the caller of the API and the API provider have an understanding about the kind of encoding they follow. In our example let us consider that our data is ASCII formated Base64 encoded data.



As of this example, we will see if the username and the password are same. If they are, we will allow the user to access our API else we will throw unauthorized error status (HttpStatusCode)

So this unauthorized exception is thrown with a custom information on how the user can make a call to our API. This is done by adding data in the response headers of the actionContext object that we get when we inherit AuthorizationFilterAttribute  and override OnAuthorization method.

So, lets look at our myAuthentication class code.

Basic Authentication using Expressjs in Nodejs API with Base64 encoding

Basic Authentication using Expressjs and Nodejs Base64 encoding


Express.js gives us an out-of-box solution for ding basic authentication via its request parameter.

We all know that the callback function has request and response (req,res). So, when the user makes a request to our Node.js, we receive Header information as well in the request object. In that if 'authorization' property is set and given a value, that can be used. We can ask our REST API consumers to send username and password in Base64 encoding as the value of this authorization property.

The base64 coded value can be obtained using https://www.base64encode.org/
For us, the validation is if username is equal to password we give the data to the consumer of the API. In real life scenario, we might do it against the data values in our DB.

Let us take a look at the code. The code itself has explanation. Please drop a comment /share this post if you like it or even if you have any queries. See you soon with one more tutorial.



Ultimate Node.js Beginner Tutorial - series - Introduction


Ultimate Node.js Beginner Tutorial - Introduction

I know you would have read a lot of blogs / articles and pages on internet and watched hours of Node.j sessions on YouTube and coursera. You might have landed on this page praying that at least this page should do some justice to your relentless and tiring search for a better article. 

If the above statements are true, even to a certain extent then trust me, you are at the right place. In the series of articles on my blog, I will make sure you leave from here with stomach full of knowledge on Node.js and your nerves full of enthusiasm and your heart full of belief and your neurons full of excitement to develop the next Node.js application. 

Let’s jump right away on the task. We have a big task ahead and no time should be wasted.



Here is the Video for you guys. There is more in it on top of the content that is in this post. Listen to it, subscribe and share.


Building REST API using Node.js 

Question: What is Node.js?

Answer:
·         I know it might be boring to read again and so I will keep it plain and simple.
·         Node.js is a framework that makes us JavaScript run on server.
·         It is built on top of Google Chrome’s V8 engine which is the fastest JavaScript engine till date.
·         Node.js is single threaded.
·         Node.js helps us do Asynchronous I/O operations.
·         Node.js does I/O operations that are non-blocking.
·         Node.js helps us build not just websites but also REST APIs that are easy to design and are faster than web services or WCF services.

Question: How Node.js is fast if it is single Threaded and how does it do non-blocking Asynchronous I/O operations?

Answer: Ahh.!!! I can see the expression on your face. Spot On! That’s what I said, right.
Node.js under the hood takes help of the C++ libraries called as libev and libuv and libeio to make this work.
Libuv is the module from C++ that makes Node.js do all the talking in Asynchronous I/O operations.

Below is the picture to help you understand better.

Question: Then what about the non-blocking aspect?

Answer: As you know JavaScript engine has the event loop that takes care of waiting functions and processes. It is the same thing that is used here. Because that is from V8 engine, it is faster than anything else.

To understand better, here is the picture of the same





ASP.NET session management - StateServer Mode

ASP.NET session management in StateServer Mode.
StateServer is a session management technique in which the data is stored in the ASP.NET stateserver service that runs on your machine. This is part of the Out-of-Process (OutProc) modes in which ASP.NET session data can be stored.

Now, let us see how we can do this.


  • create a start page called StateServerParent.aspx.
  • create another page named StateServerChild.aspx. This is the page that shows the data from parent page that are stored in stateserver mode of the session.
  • In Web.Config file that is at the root of your application, add the following code in section.
  • C# code behind for parent file where the data is stored in session.
    C# code behind for child class for retrieving data from session
    When you run this, the below error is thrown. This is the error. The error is self explanatory. It says that the application is looking at ASP.NET state service either on the local machine or on a remote server. If it is a local machine, then connection string should either use localhost or 127.0.0.1. The data that this error does not show is which port to look for. It is at 42424.
    To get rid of this error and make our app up and running, goto services.msc and enable ASP.NET State Service

ASP.NET Session Management - Series of articles

ASP.NET Session Management is one of the important concepts in ASP.NET to store are retrieve data for ease of use during the life cycle of the application/ website.


As part of my task called - Revisiting basics, I have decided to take on this topic. Hence, in the next series of articles, we will discuss about all the available session management types/methods we have. 

ASP.NET session management can be done in any of the following ways.

  • Application
  • Session
  • Cookie
  • Cross Post Page
  • Query String
  • ItemState
  • Profile

Application: Application session management is holding data at application level. This is done by storing data in the Application object by a key and assigning a value to it. Application session keys are available as global data and reside on the server's in memory of the asp.net worker process. There is more about this in an article on my blog.


Session state: Session management can be done using the session object with a key and assigning a value to it. The session objects are unique for every client. Thus there will be a session that holds different keys for every user. This as well stays at the server side. However, the default session state will not work in the case of web farms as your load balancer might turn your request to the available server and not to the same server every time.  Developers working on web applications that are internally used and run on a single server might not be aware of these details. 


Session sate has different modes in which it works. 
  1. InProc 
  2. OutProc
The OutProc has two different modes in it again. 
  1. ASP.NET state server
  2. and SQLServer
  3. Custom (This is an exciting topic. I will explore this in detail as another article apart from sessionstate)
We will discuss more on this with code snippets in an article here on my blog.

Cookie:This is the most famous one that is known even to the non-developers. The two main drawbacks are that the client's browser should support cookies and its size is limited. More on this in a new article.

Query String: Yet another most famous way in storing and passing data between pages. This drawback is that the data is clearly visible in the browsers query section. More coming on this.

Cross Page Post: This is a method wherein the data from calling page to the called page is sent using the PostBackUrl concept which as well is a property attached to the event handling items on the page.

ItemState: ItemState is another out of box functionality that is supported by ASP.NET to store and retrieve data as session values. However, it is to be noted that all the values saved in ItemState are for a single Request. This is because ItemState is useful only if the page movement is using server.transfer. So that data is moved from Page-A to Page-B with in the server and browser has no clue about this.More on this in another article.

Profile: This is used similar to session state.Yet, one of the biggest advantages of Profile is that boxing-unboxing is taken care by itself and the developer need not worry about casting. More on this in coming article.


ASP.NET Session Management - Cross page Posting Technique

cross page posting

Cross page posting is a type of session management in which the values of Page1 are sent to Page2 using PostbackUrl attribute of the event driven items in an ASP.NET page. The event driven items in a page can be anything like a button or a link click. Instead of a event handler inside the aspx.cs file, the page takes the properties from Page1 to Page2 using the post function.

Sample Code is here
Create a page called CrossPostingParent.aspx
Let it have 2 textboxes that takes name and age and submits the data to another page CrossPostingChild.aspx using a button that has PostBackUrl set.

Corss Page Posting is a response.redirect action. So the browser shows a change in address.

CrossPostingParent.aspx
CrossPostingChild.aspx inside the CrossPostingChild.aspx.cs file
This is not the only way where the data can be sent to another page using cross page posting. ASP.NET gives us a better option using the strongly typed way. In this case, we need to decorate our child class with @PrivousPage page directive and set its virtualPath property to parent page. This means that whenever there is a cross page posting it will only happen via the page defined in VirtualPath.
Apart from this, define public properties in parent class that can be used in the child class via the .PreviousPage property.The complete code is as below. I have commented the code for scenario one so that you will have a better understanding
Inside the C# file of child class Modified parent C# class file.




Nodejs REST API Authentication using Passport

Nodejs REST API Authentication using Passport.js 

Hi All, I know its been a while that I have written an article here. However, I have not waster a single day. I was into writing concepts on JavaScript Module pattern and JavaScript Prototype Pattern. 

I will soon put up all the content explaining JavaScript Prototype pattern and Prototype by default in great detail here.
Coming back to the current article, Nodejs , the serverside JavaScript framework is famous for writing REST APIs. It is also famous for writing webapps (web pages) using ejs/ jade/hapi etc as the web frameworks.

In this article, I will help you out writing an API in node and authenticating it using passportjs.org's passport-http basicStrategy method. In real world scenarios, it is advised to use SSL to implement authentication. 

So, lets jump into the code an build an API.

1. do the below three npm first in your project.

  • npm express 
  • npm passport
  • npm passport-http.

2. Now, define the require statements.

3. define a port where the API is exposed for use and the app listens to.

4. Let the app know that it has to use passport.
5. Initialize the passport
6. Define the BasicStrategy via the passport-http.
7. Let passport know that it has to use BasicStrategy to do the authentication
8. As per the documentation, BasicStrategy  takes three arguments. They are the input username, password and a callback named 'done'.
9. 'done' lets the passport know if there was a success or a failure during the authentication.
10. Based on the result of the authentication, that is injected to the express framework via app that uses this passport to allow the user to the next level of query using the next() call of the express.
11. For http, because the APIs are session less, the session is false in the code.
12. In our example, we return true when username and password are same. However, in real world example, the username and password are to be cross verified against your database user table details.
13. In our example, once the user is authenticated, we display some static data. In real world, it is some data from database.
Complete code is below. You can also look at the complete code here.


So there you go, below are the screenshots when i run the application. Hope this helps. I will soon upload the application to github. Thank you so much. See you soon with more JavaScript, C# and Node.js code samples and code snippets.







Disclaimer

All the code snippets that are on this blog and videos made by me for DOTNET framework are written using Visual Studio Express for Web -2012.
None of the code snippets belong to anyone or any person. They do not refer any org/person/group. All the ideas and implementations are based on my learning in my free time out of my interest. Please make a note that almost all the concepts on this blog have already been blogged by many other bloggers from open source community, freelance community and for DOTNET by MVP's and Microsoft professionals.
The Nodejs demos that I have done in this blog are done using SublimeText 2 - unregistered version. These days, I have been using Visual Studio Code editor which is an open source from Microsoft targetted particularly for the Nodejs community.
I have deployed application on Heroku for Nodejs and MongoLab for Mongodb and Bonsai for Elasticsearch. I have worked on Android Charts from MPAndroidChart. One of the blogs from where I learn Android is AndroidHive.com. The other person is slidenerd and he has lot of video tutorials on YouTube. My source of information on DOTNET is primarily from MSDN and then few other blogs like Scott Hanslmen [Such a nice guy], Jon Skeet [C# in depth], Stackoverflow hot/new threads and MSDN magazine [This is so good].
I am thankful to those millions of developers out there on the internet who have written articles and shared their knowledge. Having said that, no post or content has been copied from any of the articles out there on internet.

Javascript and Nodejs tutorials can be found in YouTube that are fantastic and awesome. I regularly follow NodejsFan, JSConf, NgConf, Google I/O videos and many other subscription channels out there on the internet. You do not need a book for to learn any JS framework or patterns. YouTube has explanations from JS compiler to V8 engine, from Eventloop to regularexpressions, from module and prototype pattern to the _proto_ of the JS function/object.
My other sources of technical information is from TechCrunch, Mashable, Facebook, TheNextWeb, SmashingMagazine, Tuts, EggHead, Strompath blog, StrongLoop blog, GitHub and BusinessInsider.
I became a big fan of Ben Horowitz after I read his book  - 'Hard Things about Hard Things'.
Images with my name watermark belong to me and rest all images and logos belong to the individual owners/org. I have no right what so ever on them. If you feel that any image used here looks like a violation, please bring it to my notice and i will remove it right away. No discussion, only action.
All the ideas on implementing a code snippet is based purely on my imagination and does not offend or violate any other person/individual/team/group/community/Org. If you have any concerns please drop me a mail. I will be happy to talk to you before I bring that content down from my blog.
Videos on my blog are recorded using Google Hangout on Air. I have agreed to all the terms and conditions as per Google.
The laptop screen shared is from my personal laptop (Bought in Hyderabad, India. Samsung is the manufacturer.)and it belongs only to me. All the content that i shared on this blog can be used by anyone without any prior permission. Sharing gives me happiness. Because of so many people sharing their knowledge on so many portals like Stackoverflow has helped millions out there in the IT industry.
The content of the articles is drafted with my skills in English. Thanks to my medium of education that is in English.
All the content on this blog is because of my love for coding/programming/developing applications. I have learned Nodejs, Android development out of my own interest. I also have a developer account in Google and I have an Android app on Google Play Store. It is called - OnKampass.




JavaScript :: variable Hoisting :: Series 7



JavaScript :: Pass-by-Value and Pass-by-reference in functions :: Series 5

JS functions are objects that are a created as a block to perform a specific action.

If we pass an object to the JS function and modify the object's property, it is reflected at the global level.
Where as if we try to modify the object itself, it is modified with in the scope of the function and not outside of it (i.e., at the global level)
Here is the example for it.

JavaScript :: Method Overloading :: Series 4

If you are coming from Java/C# background, I am sure that you all know about method overloading as one of the OOPS concepts. So, let us see how JS works with method overloading.
Let us try to understand if JS support method overloading or not.

Now, let us send 3 parameters/arguments to the method.
Now, let us create another method with the same name "add" that takes 3 parameters/arguments.
Thus we can conclude that JS does not allow us to have method overloading. JS complier considers the last method in the line of execution with the same name as the method to be executed.

JavaScript :: Understanding NaN :: Series 3

We all have seen variables in JS  that throw an undefined primitive type when they are not assigned any value in Series 1 of JS.
Now, let us see what happens when we add a Undefined primitive type to some value.

JavaScript :: Understanding pass-by-value and pass-by-reference :: Series 2

A look at the way the Pass by value and Pass by reference work in JavaScript.

JavaScript :: Understanding NULL and UNDEFINED :: Series 1

I was teaching my cousin JS in his summer vacation. I will post those basic JS details that i taught him here on my blog in a series

Real-time preview of your HTML and CSS using Brackets.io

Ever wondered how easy it would have been as a developer to have something that previews your HTML code changes instantly?
Feels good, isn't it? Here is the answer to all those wonderful feeling - Its Brackets.io

Get a real-time connection to your browser. Make changes to CSS and HTML and you'll instantly see those changes on screen. Also see where your CSS selector is being applied in the browser by simply putting your cursor on it. It's the power of a code editor with the convenience of in-browser dev tools.

This is just an information article. I have tried using the editor and looks awesome and fabulous.

Elasticsearch Series :: Episode 2

Hi All,
In my previous post, I gave a quick demo on what is Elasticsearch and told you how to set it up in your local machines as a webservice. Now, we will take a step forward and will try to understand few basic queries that we can run on ES.

In ES, Index (Indices) are equivalent to a database name and table in a RDBMS is equal to type in ES.


So, we will start with creating a simple index named Employees in ES. Within it, we have Employee as the type, the table that holds the data of every employee who is working with our dummy company named Dumbo.
No matter wether it is SQL or NOSQL, we are humans and we are bound to have data that is related. So, I have the following details for an employee.


firstname, lastname, employee_id,salary, experience, location,role

Hence, my data would be something like this.
So, let us create this in our ES database that is running at port 9200 on localhost.


This code piece creates a new index employees and then creates a type employee and creates a schema within elasticsearch and then saves the data. As ES is JSON based full-text search database, all the talk with the ES happens in JSON in RESTful manner.


Notice, that ES has identified the datatypes based on the data passed to each field in the JSON. Thus the properties are set as per the understanding of ES. We can create mapping as per our requirements and we will discuss this in the due course of the series.

Lets insert a couple of more employees in the index so that we can do some basic operations on it.

The output from ES is as below.

Notice from the above code that ES tells us what is the index, type on which the data is created along with its version and is it created or not.
The version is 1 as this is a new entry in the type and there exists NO  entry prior to this on the id = 2.
Remember that the id = 2 is the one that we are sending in the PUT request and not the employee_id.

If we do not mention the id in the PUT request, ES will auto generate an id that it uses for identification.

Lets re-execute the same piece of code again. Notice the difference? version has change to 2. This means that the data is updated.

But in real sense, ES marks the current record with id = 2 as deleted and recreates a new one. We will talk on this as well in the coming days.


Android ListView with mutliple TextView items


Recently we had a requirement where we have to display data in a list in android. Every row in the list has multiple TextView items. It means, we wanted an output that is like this!


Requirement:

  • The list items should have space division between them.
  • The default color of the listview item must be colored in gray+blue mix.
  • On touch/click of the item, it should highlight it as green.
  • Every item in the list has 3 elements (Header, content/information and datetime when the content was received)

So, how did I do it?


  • To achieve the colors needed for the project, that is default -gray and on hover - green, we did this


Add: Inside res/drawable, create a new resource file with the following name generic_list_row_selector.xml
Add the following code to it.


2nd, Addgradient_background.xml which has the below code
3rd, Add gradient_background_hover.xml with the below code snippet in it

  • Open the main activity file's designer -> in my case it is MainActivity and its related designer calss is acitivity_main
Add the following code to it. This has the ListView that will show the list of items that we bind




  • Now we need the Row that has the TextView elements that displays the data for us. Create a new res file named activity_custom_row_for_listview.xml with the following code in it.



The data that will be bind to the controls - TextView will be from an object holder. So, create a java class named DisplayDataClass.java

Now, create a custom Adaptor, that will make sure to bind the controls with the data as the data is fed in and rebinds it with each item (row) of the listview. Create a file named CustomAdaptor.java


Comeback to the parent class now. It should have the below code




The method private ArrayList<DisplayDataClass> GetDisplayResults() inside the class MainActivity is the data object. You can plug in your own data and show it here. It might be from SQLite database or from an API or from GCM or from another Activity inside your android app. 

Hope, you have liked my tutorial. Stay tuned! there is a lot to come. - Eshwar




Mobile Only World :: Crazy talk ends becoming Real :: Flipkart Buys Appiterate

Some crazy statements and topics become reality. We have seen that happen in the past. Today, I see it happen with me and my guess!
It was just 2 days back, I have posted here about a talk that I had with my friend on seeing a mobile Apps only world very soon! I did speak about Flipkart and Myntra and few other eComm sites that have majority of their sales and hits from mobile.

Today, Flipkart has taken their 1st step towards this and it has bought Appiterate. BusinessInsider reports it here.


I gussed It right. Complete Mobile Apps are going to be the future of connectivity/Business

I feel good about myself. This was in 2014, Oct 03. I was talking to my friend late night (1:30 AM) over hangouts and I told him that soon we all will see companies/ businesses move to mobile app only way of communication.

And look at what has happened. A few weeks ago, Myntra, India's eCommerce site that sells clothing has plans to shutdown its website completely and do their business mobile only way! Yes, Flipkart, Indian origin eCommerce company, which owns Myntra said that they now have 70-80% of their sales from mobile app.

Here is a part of my chat with my friend 




Today, EconomicTimes, one of India's most popular newspaper on economics says that many companies are planning to move mobile only way so that they can easily make updates and other offers readily available to the end user via push services which is the easiest way to grab attention and make conversion!

Click here is the complete article. 



























Facebook "Hello" app. Can it overtake TrueCaller?

Ahaaa!!! Here we go again. Facebook comes up with one more app for Android. Its called "Hello". To tell you about it in one single line, Facebook wants to replace your default caller app with "Hello".
Official link on Facebook newsroom page: http://newsroom.fb.com/news/2015/04/introducing-hello/


So what is this app about. "Hello" helps you identify who the caller is, when you have an incoming number. It also helps you find details like if its the callers "Birthday" today or it is their "wedding anniversary" etc or helps you know if it is from a common public number that is tagged as either "blocked", "marketing" or any other of this kind.

Facebook offical video

Introducing Hello from Facebook on Vimeo.

But how does it work? As far as I understand from their description and the official video, it is like this:
When you register on Facebook, it asks you for registering with your mobile number if you wish to so as to protect your account in case you lose your password and other details. It also helps you login with single id access.

Thus, Facebook being the largest social networking site, has a huge, huge repository of mobile numbers based on its users. Thus, it tracks users profile picture, personal information such as "birthday"/ "anniversary" and other milestones.

Secondly, when you install Facebook app on your mobile app, the app asks your permission to sync your contacts with your FB account. So, it has contacts for cross reference search.

It syncs contact profile info like profile pic, and other info back into your contacts list for easy to use.

There might be many things that are a guess work in this blog post as the App is still not available for hands-on in India.

But, how did I do the guess work? Well, it is based on this screenshot below.

Facebook with its huge user base that is connected with App and mobile number, it is easy for them to track a person! With Watsapp that is with them, which works purely based on your mobile number is a big-big plus for them. With all these, we are sure that it is a good competitor to apps such as TrueCaller.

Disclaimer: All images belong to respective owners. If any of the content in this site/ blog post seems offensive to you or to your organisation, please feel free to write us an email at magicprogrammers@gmail.com and we will be happy to take it down.
#OpenInternet. #FreedomOfSpeech


Google Mobile Friendly::Top up

It was just yesterday that I wrote a post on how google is tagging sites "mobile friendly" when the searches are from mobile. Surprising, today they have officially released a statement aying that searches from mobile will be analysed on a new algorithm that is mobile specific.

More here:

http://searchengineland.com/google-officially-launches-mobile-friendly-labels-mobile-search-results-208949

Mobile Friendly :: Google categorizes mobile search

We all know that everyone does more search on mobile these days!!! Myntra , an Indian e-commerce site has taken a daring step recently to stop its web portal and run its business purely based on mobile App (iOS and Android and Windows).

Have you ever noticed how Google is placing the search results slightly different in the mobile search than the normal web search? 

A little interest will reveal that it has a small text below the web link stating "mobile friendly". Here is the screen shot.



OnePlus 2 - Give away from TechQuark

There we go again. One of the coolest blogs that i read from Hyderabad circuit on latest gadgets in www.TechQuark.com . The blog owner, Shubham has comeup with a OnePlus-2 giveaway. Go, grab a chance to win it. Its such an awesome one