Update Node.js on Mac OS

Well for quite sometime I was using Node v 0.12x on my system, whereas nodejs has been updated to 7.x till date
I thought I used the right commands but the updates were never reflected

Gladly, I found this article on web.

I am writing down the steps that worked for me (it seems XAMPP on mac adds on some steps to the installation procedure) :

A simple way to upgrade Node.js from the Terminal is to use the n version manager:

1 npm install -g n
2 npm cache clean -f

Now, if you have XAMPP installed on your Mac, you need to do an extra step before upgrading Node.js:

1 cd /Applications/XAMPP/xamppfiles/bin
2 sudo mv HEAD _HEAD

At this point upgrading Node.js is as simple as:

1 sudo n stable
2 npm update -g

For XAMPP users only, rename _HEAD back to the original HEAD:

1 cd /Applications/XAMPP/xamppfiles/bin
2 sudo mv _HEAD HEAD

You can check which versions of npm and Node.js you have on your system with:

1 node -v
2 npm -v


Updating Cordova plugins

Well, mine was an older Cordova project, and I was under the impression that every time I update the Cordova installation, or the platform (ios/android) the plugins too upgrade. Well my fault! It seems we have to manually delete and re-install each plugin (Yes! there is no update command for plugins yet!)

So the plugins looked like initially :

cordova plugin ls

com.msopentech.websql 0.0.9 "Web SQL plugin"
cordova-plugin-inappbrowser 1.2.0 "InAppBrowser"
cordova-plugin-whitelist 1.1.0 "Whitelist"
org.apache.cordova.console 0.2.13 "Console"
org.apache.cordova.device 0.3.0 "Device"
org.apache.cordova.dialogs 0.3.0 "Notification"
org.apache.cordova.file 1.3.3 "File"
org.apache.cordova.file-transfer 0.5.0 "File Transfer"
org.apache.cordova.network-information 0.2.15 "Network Information"

For updating Cordova plugins, there is no update command. I know, we did not see that coming!

So to update a single plugin, you need to execute 2 commands:

cordova plugin rm <plugin-package-name/>
cordova plugin add <plugin-package-name>

So for eg you can :

cordova plugin rm org.apache.cordova.file
cordova plugin add cordova-plugin-file

Yes the package names change sometimes, and you can get the details of the latest package names from the official documentation.

So after the changes the plugins were updated to :

com.msopentech.websql 0.0.9 "Web SQL plugin"
cordova-plugin-inappbrowser 1.2.0 "InAppBrowser"
cordova-plugin-whitelist 1.1.0 "Whitelist"
org.apache.cordova.console 0.2.13 "Console"
org.apache.cordova.device 0.3.0 "Device"
org.apache.cordova.dialogs 0.3.0 "Notification"
org.apache.cordova.file 1.3.3 "File"
org.apache.cordova.file-transfer 0.5.0 "File Transfer"
org.apache.cordova.network-information 0.2.15 "Network Information"

Yes, quite some updates, sorting all the errors and warnings!

I also saw information about some scripts, if the package names are same, I believe they can be useful. Please check Stackoverflow for more details.


Reading chronicles: The Running Soul by Parul Sheth

Some background before my first post on the Reading Chronicle Series.

Well I have been an avid reader most of my life since childhood, and be it comics or novels, I read it, fast and complete it.

Just like finishing books, I used to finish things I started. My teachers loved me for that.

Times change.Things change. People change.

My life changes have set in since 2010. Each year since then has taught me something new. But as I am in the mid of 2016, I feel changes with the freshness of new beginnings.

I have noticed that recently be it a task, or a book – I start it, reach mid-way and never finish it. But yes in the last 2 years I did finish all the books by Dan Brown and Amish Tripathi. Specifically when I am reading non-fiction I get distracted.

So after several attempts with different books, I was recommended “The Running Soul” by Parul Sheth by my senior from college, Dipti Mishra. She is a runner with superb timings ( I last heard she completes 10k in an hour) and she is working hard on her running skills. I told her about my issues with concentration and fear of running. She recommended me some books and blogs, this being one. The selling point of this book was “Upasana this is a very small book, very few pages, you will be easily able to finish it!

Ha ha ha! Well, I got a kindle version of the book (yes these days I am trying to shift to kindle! Because if you actually visit my home, my room particularly – you will find books peeping out everywhere. I need a new home with a dedicated library room! )

So enough with the background and chit chat!


The book has few pages, and yes it could be completed easily.

Parul is a woman like us, struggling with day to day responsibilities, family responsibilities. She met with some losses early in her life that changed the course of her life. But we cant escape reality? Right! Her strength became her children, family, friends, work, running buddies, tracks. She explains her journey of her practices, her developments as every practice was important, how running gave strength and meaning to her life.

She explains her fears before each running season, and the actual runs, the joy of completing each practice run and the big day(s). As I look at her from the descriptions, she is an inspiration for me to take up running. She has a job, kids, and chores like their exams, ups and downs in lives, but this does not stop her from her practices.

When we look at athletes (at least from perspective of people like me), we believe strongly in

“We are not athletes, they have different genes!

We were never meant to workout that hard!

I can’t run!  

Marathon, are you kidding!

21k? Do people actually run that long?

10k ? Why do you need to run that long?”

So yes, I too had those dilemmas. I am trying to overcome them. But Parul is an example that everyone has an athlete version of themselves.

If you say, one key takeaway from the book I should mention then it would be “working on my endurance“, not just in running, in every aspects of my life. I am sure if I give it enough dedication and practice, I could reach my best, like Parul did in her marathons 🙂

I like to read the books all from preface to the end. In the end there were quite some tips, that will be handy to anyone interested in running.

I am not a literature expert to give ratings to any book. But yes I could say whether a book is worth read or not (from my perspective obviously!). So yes, I would recommend the book of the personal journey of Parul Seth. A great addition to my collection. I am glad I came across this. Thank you Dipti di for recommending it.

The choice is between enduring and giving up. This is what separates the champions from the mere runners.

- Parul Sheth (The Running Soul)

Kudos to me to finishing my book! Stay tuned!

Cordova updates and the pain!

Being back after a long time!

You know I have to be here and there, everywhere!

So there was this error, wasting my days from a long time!

And whenever I do an update, this used to come back on my ios builds.

Plugins/cordova-plugin-whitelist/CDVNavigationWhitelistPlugin.h:23:9: fatal error: 
      'Cordova/CDVURLRequestFilter.h' file not found
#import <Cordova/CDVURLRequestFilter

And I searched internet for long (2 months I recall!) but no solutions!

Funny thing,

Earlier, any problem I used to have, I simply did

cordova platform remove ios

cordova platform add ios

And it used work like a charm!

But, not this time!

Stumbled upon this one today! (I dont know why not earlier, anyways – here is the link!)

The key point to note over there is

Cordova-ios version 4.0 and greater does not require the cordova-plugin-whitelist plugin to be installed, however it’s configuration details apply to iOS too.

Why Cordova? Why you do this? Would it not have been helpful to keep some helpful suggestions when showing the errors, or same backward compatibility!

So the solution is :

execute the following command

 cordova plugin remove cordova-plugin-whitelist

And the build was now prepared error-free, smoothly! Feels relieved! I was done blaming Xcode for all the issues!

Please note, however if you use the same code space to prepare build for android (where this plugin is still needed), you might have to create a copy of the project and add the plugin to the android version of the project separately. (Yes we need options to add different plugins to different platforms of the same project!)

Hope this helps someone! Cheers!

Cordova and Windows 10 platform

So, things are getting updated.  And so are the platform OS and cordova versions.

Today I am going to talk about deploying Cordova applications on Windows 10 platform.

For developing for windows 10 platform,  the software requirements are:

  1. Windows 8.1 or Windows 10
  2. Visual Studio 2015 community edition
  3. Installation of node (latest version)
  4. Installation of Cordova (latest version)

1. Windows 8.1 or Windows 10 

Well we did upgrade our windows 8.1 to prevent any chances of any issues that might come due to OS dependencies. Windows 10 is good. I love the menu that gives some resemblance to the older menu styles. other requirements would be using a 64 bit machine and a good RAM capacity (we used 8gb)

2. Visual Studio 2015 community edition 

The visual studio can be downloaded from here. The download takes some time.

But the painful part is the installation. It took me more than one day to install all the components properly.

What happens while installing is most of the time the installation progress is stuck at some point for hours.

Solutions :

  • If you could close the current installation and restart again, it will restart from the same point, and by luck it might be faster in some cases
  • Sometimes, the installation does not close either. So you have to go and check the process associated with Visual Studio and you will find that there are 2 processes that are working for the installation, one having some CPU usage, and the other 0% CPU usage. Kill the one with 0% CPU usage. Sometimes, the current installation proceeds further without issue. Otherwise,
  1. close all the tasks (via Task Manager) and restart the machine.
  2. Clear all items in temp folder (%TEMP%)
  3. restart the installation process (it will resume from the last state.

However, please note: it is not suggested to kill the processes manually, because high chances are there that the installation is corrupted, and you will need to repair the existing installation before installation of further components.

Visual Studio 2015 community edition, though the installation process could have been smoother, offers a lot of benefits over 2013 version. Notably for cross platform development you can select the components needed while installing (yes there are a whole set of package helpful for Cordova development) and you dont need to install the windows10/8.1 emulator and SDK separately (out of visual studio as standalone).  They all can be downloaded and installed as a single package! And that is a relief!

3. Installation of node

This needs to be installed from here before installing Cordova as we use the node tools to download and update Cordova.

4. Installation of Cordova

We installed the latest version of Cordova ie 6.1.1

The docs are very helpful, notably Create your first Cordova App & Windows Platform Guide .


Compiling and Deployment of your app

Well the docs give the basic idea of setting up the environment and getting your project running

However, it is to be noted that in config.xml you will need to add:

<preference name="windows-target-version" value="10.0" />

Also while building the app via command line you will have error message like this:

C:\APPV1\platforms\windows\CordovaApp.Windows10.jsproj(83,9): error : The following component requires .NET Native comp
ilation which is not available when targeting ‘Windows10’ and ‘AnyCPU’. Please consider changing the targeted processor
architecture to one of the following: ‘x86, x64, ARM’ (if you are using command line this could be done by adding ‘–a
rchs’ parameter, for example: ‘cordova build windows –archs=x64’). C:\APPV1\platforms\windows\plugins\com.msopentech.w
Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe: Command failed with exit code 1

Yes, this is new! In earlier builds for windows, or any platform we do not need to specify additional parameters. But when you are creating a Windows 10 build you need to specify exclusively that whether the build is going to be used on a 32 bit machine, or a 64 bit machine. That means no generic universal build can be created for Windows 10.  We are still learning about what will the best approach to create builds/installers for that. As of now, when we specify something as

cordova build windows --archs=x64

This creates the build perfectly, and the solution generated works flawlessly on VS 2015. (you might need to sign in to your developer account to prevent any sign-in/certificate issues)

But this whole process has quite a good learning curve , specially about the obstacles of getting the tools and dependencies installed and getting your first build. But at the end of the day, all worked out, and I am looking forward to more community updates on Windows 10 and cordova as this looks promising!

Stay connected!


Solution : httpd: apr_sockaddr_info_get() failed for ip-xxx-xx-x-xxx

After a fresh install of Apache on a Centos machine I was getting this error.

Starting httpd: httpd: apr_sockaddr_info_get() failed for ip-xxx-xx-x-xxx
httpd: Could not reliably determine the server’s fully qualified domain name, using for ServerName

Nothing critical, the IP was still accesing the PHP pages. But we can remove the above warning messages by:

  1. Open the httpd.conf file
sudo nano /etc/httpd/conf/httpd.conf

2. Search the string : ServerName ( Ctrl + W)

3. Add/update the ServerName to


4. Restart apache.

sudo service httpd restart

And it shows ,

Stopping httpd: [ OK ]
Starting httpd: [ OK ]

Yeah, learnt something new 🙂

Understanding Deep Links

Recently I came across the term “Deep Links“.

Basically for one of our clients, we were updating the app page on Facebook, and to use the app directly from the Facebook page you need to provide the Deep Links.

Here is what Wikipedia says about Deep Links.

In the context of the World Wide Web, deep linking is the use of a hyperlink that links to a specific, generally searchable or indexed, piece of web content on a website (e.g., “http://example.com/path/page”), rather than the website’s home page (e.g., “http://example.com/”).

Okay, so from my understanding it is useful for SEO purpose. I specifically came across this with regards to mobile applications. Here is what I found on the topic:

Mobile deep linking is a methodology that allows mobile apps to communicate with the mobile web or with other mobile apps via clickable links directing users to a specific landing page or screen inside the app instead of sending them back to a mobile site or store. Deep linking helps reduce the conversion friction by shortening the users’ path to the piece of content, product or promo they are interested in.


For apps such as shopping, travel, hotel booking, music and news the ability to send users to a specific product, offer or promo page can have tremendous effect over conversion rates and ultimately revenues. If deep linking is enabled, the user can be navigated directly to a certain hotel booking page for which he has seen an advertisement instead of the app’s home page. Last year Facebook announced its deep linking ad format, letting users come back to familiar apps from ads in their feeds.

So basically,

Deep Linking is a methodology for launching a native mobile application via a link and it connects a unique url to a defined action in a mobile app, seamlessly linking users to relevant content.

Now this looks good and something new.  I will be updating the steps to integrate Deep Links in mobile apps (hybrid/native) in my next blog post.

Enjoy you stay!

Ref:  telerik.com