Git Checkout a Remote Branch - Step by Step Guide

During last 4-5 years, git has captured the market for version control system completely. Here are step by step guide about how to checkout a git remote branch.

...read more

5 Strategies for using Whatsapp for Marketing and Business Campaigns

Whatsapp has become the most popular messaging platform in the world - with a user base of over 1 billion reported in Feb 2016. Beyond text messaging, it has enabled voice calling in 2016 and by June 2016 more than 100 million voice calls were made per day. Whatsapp has amazing reach and massive percentage of active users - thus making it one of the most promising platforms for social engagement ...

...read more

Google Adsense Account Enabled Only to Show Ads on Youtube - How to show ads on other sites

Lately lot of people have been signing up for adsense through youtube as this is one of the easiest way to get approved. But this signup only enables the so called 'hosted adsense' account and you can't show adsense ads on your blog/website.

In such cases, if you login to your adsense account, you will see following warning message:

Your AdSense account is enabled only to show ads on YouTube...

...read more

React Native Javascript: Unhandled Promise Rejection Warning

While working with javascript promises, I have been getting erors like:

UnhandledPromiseRejectionWarning: unhandled Promise Rejection (rejection id:1)

Typically this is a good hint that error handling is not implemented properly for your promise. To make it simpler, here is quick guide on Javascript promise and right way to error handling.

A promise is a good way to do async processing in ...

...read more

Google Adsense Responsive Layout - How to hide sidebar ad on mobile

In a mobile first world, it is becoming very important to create responsive websites that work seamlessly on multitude of screen sizes for desktop, mobiles, and tablets. To address this problem from ads perspective, google adsense has been supporting responsive ads for sometime now. But it is not a magical solution and much work needs to be done to ensure optimum utilization of ads across ...

...read more

AMP ads for google adsense loading very slow

Lately (in Oct 2016) we have enabled amp-ads for google adsense on few of our sites. But we are continuously observing very slow ad load times and this has impacted our adsense revenue.

To put things in perspective, we have added amp pages (accelerated mobile pages) for some of our sites in july-august 2016. Since then, we have observed a steady increase in our amp traffic. Performance wise, we ...

...read more

Beginner Guide to Adsense Revenue Generation - Making Money from Blogs/Websites or youtube

If you are new to web monetization (urf making money from websites), advertisement or ad revenue is the life line of modern web. Lot of great web services (e.g., google search, facebook etc) are free for users. These companies make money by showing ads to users. To give you an indication of scale of money involved, most of the Google's around $75 billion revenue in 2015 came from ads.

Luckily, ...

...read more

Error in required structured data element - Is Google AMP biased towards a set of use cases?

Recently I have added Google AMP (accelerated mobile pages) support for my blog articles, but I am observing following error in google Webmasters search console -

...read more

React Native Navigation: Navigator vs Navigator Experimental Resources

Many of people working on react-native have realized that Navigator component in react-native is getting ready to be deprecated in favor of new navigaor called Navigation Experimental till now.

...read more

Accessing YouTube data programmatically using Scala

Few days back, I wanted to save the list of vidoes in few youtube playlists for future references. But on a quick google search, I was not able to find any simple examples of accessing youtube data apis using scala (or even in Java).

Here is a quick notes on how I used Google Java data apis to access youtube data in scala.

Setup 0 - build.sbt

First, let's start by creating a simple `build....

...read more