Apple URL Schemes helps you to access system apps in iOS. Native iOS app uses this schemes to integrate with system apps and provide a more seamless experience to the user.

For example :- If your app display telephone number you can use appropriate URL to launch phone app whenever user click on the telephone number.

There are many functions of Apple URL Schemes used for such as :-

1. Phone Link :-

Phone link helps you to make dialing experience easy for specific phone numbers. It will prompt...

Read complete blog post

Ever stuck on a remote server with some file? Needed to upload/download file from remote server? Find FTP clients tedious for a simple file upload/download? Keep reading for one stop solution to all these problems.

Many a times I fall in situation where I have to deal with remote servers and just to upload a file I have to open FTP clients and have to leave command line for such a simple task. I always wondered if, there was a command line way of doing simple FTP stuffs. Then few weeks ago I...

Read complete blog post

In my previous knockout.js post, I just gave introduction and explained how knockout works. We learnt about how knockout uses bindings to make UI dynamic and how it connects to the view model

In this article we will learn custom binding. There are built in bindings like click, value, text, visible and so on. But you are not restricted to use only those binding , you can create your own custom binding.

It’s always better to create custom binding for DOM elements instead of writing jquery....

Read complete blog post

In one of app we are sending multiple PDFs as attachment, so instead of sending individual file we decided to send all PDFs in zip. I found a gem 'Rubyzip', to create temporary zip archive and send it as attachment.

Rubyzip is a ruby liabrary to reading and writing zip file.

To create a zip and send it as attachment using Rubyzip here’s a simple example:

  1. Add gem in gemfile

    gem 'rubyzip'
  2. Write function to create zip file:

    def get_zip_data
     zip_file =...

Read complete blog post

Traditionally web applications were dependent on back end for routing as A request is made to a server and based on the URL being requested the server responds by HTML.But now a days due to advanced browsers and need for speedy response more advanced code started being moved from the backend to the frontend.

Sammy.js is a tiny(<20kb) javascript framework which uses URL hash (#) to allow you to create single page AJAX applications.It has also limited yet powerful functionalities.Its API is modeled on the popular ruby framework, Sinatra, and is great for both simple and complex applications.There are basically two main functionalities of Sammy which is (1)Routes and (2)events.

Above theory is good for starting so now lets move on with example of sammy js using type script.

public addRoute(url: string, action: (context: Sammy.EventContext)...

Read complete blog post

In this article I am going to show how to write model attribute and computed property test cases for ember applications.

I have been writing test cases from couple of days in GoodCity ember app. I will takeDesignation model from GoodCity as an example model to write test cases. Designation model has shown below.


import Ember from 'ember';
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from...

Read complete blog post


There are many application that extracting specific desired information from a string like date, url, link, address, number and many more. Using this specific desired information we can perform many useful action like create a event, open a url, save a contact number, navigate to particular address.


enter image description here enter image description here

The NSDataDetector class can match dates, addresses, links, phone numbers and transit information. NSDataDetector will be return one of the data detectors type, depending...

Read complete blog post

enter image description here

Spoiler Alert: This article is not about Microservices architecture or how microservices works. In this article, I will share what we have learned in scaling one of the large SaaS platform, our ongoing improvements and how Microservices architecture is playing a key role in scaling this SaaS platform.

This SaaS Platform has experienced tremendous growth in the past 18 months. It has now become one of the leading CRMs in North America.

Everyone’s definition of “scale” and “growth” can differ...

Read complete blog post

In this post I am just going to show 3 ways to parse and extract HTML documents - a useful way of scraping websites, analysis and conversion of offline documents etc.

  • Nokogiri gem -

    The nokogiri gem is a popular Ruby HTML/XML parser which uses libxml2(a software library for parsing XML documents). Parse HTML with nokogiri using the Nokogiri::HTML method:


 require 'nokogiri'
 document = Nokogiri::HTML(input)
  • Oga gem -

    The oga gem is a Ruby XML/HTML parser with a small...

Read complete blog post

If you want to show users gravatar profile picture in your rails application this article may help you Its very simple to use gravatar image in rails application by these simple steps

We need to create a helper method that returns Gravatar image for given user in your app/helpers/users_helper.rb as shown below

module UserHelper
 def user_gravatar(user)
 gravatar_id = Digest::MD5::hexdigest(user.eamil.downcase)
 gravatar_url =...

Read complete blog post

The Contacts framework provides Swift and Objective-C API to access and create a new contact. This framework is optimized for thread-safe, read-only usage.

The contact class (CNContact) has a mutable subclass CNMutableContact for use to modify contact properties like phone numbers, email addresses, an array of CNLabeledValue objects. CNLabeledValue contain label and value. Labels describe each value to the user, It allowing differentiation such as home and work for properties and you can...

Read complete blog post

Many of us have already heard about PaperTrail gem and its use for versioning of model. I found it very useful for purpose of debugging. Lets have a quick look at exactly what is PapertTrail gem and how we can use it for purpose of debugging.

PaperTrail and Versions:

  • When we add papertrail gem in our rails app and run migration for same at that time it creates Version table for us in our DB.
  • When we use it in particular model and perform any kind create, update operation on it then each time...

Read complete blog post

In software development you are destined to deal with lots of code that is not written by you. What would be more stressful than debugging the code that you barely understand. You might have been in the situation where you have been assigned a bug and you have to traverse through lots of file which you have no idea of, just get to root cause of the issue. Being in these situations many times, I have learned few tips and tricks for debugging and would like to share it here.

Checking where the...

Read complete blog post

It is always a good practice to keep a check of your code quality and code coverage. Writing test cases for your code is extremely important as that helps you identify any failure before hand. There are many articles about how to write test-case and why we should write etc. However, I would be covering here, how we can integrate Test coverage to Code-climate in your Ember.js app while you are using CircleCI.

In todays world most of us use auto-deployment (e.g. tools like CircleCi, Travis CI,...

Read complete blog post

Since quite some time, we use Apache Solr in one of our project for indexing data to search it faster from Solr server instead of always searching it from main database and creating bottleneck. We use Sunspot gem which is ruby library for rails application to implement Apache solr. Recently we thought to implement Apache SolrCloud architecture in same application to manage our daily growing Solr data more efficiently with this powerful feature of Apache Solr.

In brief, you can consider it as...

Read complete blog post

Nothing is stopping your users from entering data that doesn’t make sense to your code. You desperately need quality validation. Today I’d like to show you a way to achieve it on the client side by evaluating some of the existing approaches. But first, you might be asking yourself if the client is really where validation should occur.

Why Do Client Side Validation?

To be clear, back-end validation should always be done, and protections on the database level like unique indexes should also be...

Read complete blog post

I work in a Rails CRM application which has a fairly large number of files (.rb). - To run all the features error free - We need to eager load most files in Development mode!(Ouch!)

The app uses Sunspot gem to interact with Solr server. You can start your solr server by the following command

rake sunspot:solr:start

The Problem

Generally if this is a new app - Starting solr through rake does not take more than a few seconds. But here the problem is using rake in our App.

Running a rake...

Read complete blog post

IE vs Chrome

What are extensions?

They are small software programs that can modify and enhance the functionality of the Chrome browser.

What can extensions do?

Extensions can do quite a lot. They use either page actions or browser actions. They can’t use both. A page action is a chrome extension that is specific to certain pages. You will usually see a UI added in the omnibox bar (google chrome’s address bar).

A browser action is not specific to a page and is relevant no matter where you are in the...

Read complete blog post

What is BombBomb

BombBomb is a platform to record, send and track video emails. BombBomb provides lots of value to users - who can send personalized video email instead of regular text emails. You can learn more about BombBomb here.

How to integrate BombBomb

We used the BombBomb Javascript API to connect to various BombBomb Services. To begin, include the BBCore and jQuery libraries in your html (The latest version is available at...

Read complete blog post

We've couple of Android and IOS apps which was made using Cordova. After upgrading our cordova-ios and cordova-android versions we were facing some issues with native status-bar.

The status-bar content and page content were getting mixed up, making user unable to perform any operations provided in the header.

enter image description here

While looking for solution we found cordova plugin cordova-plugin-statusbar which provides some functions to customize the iOS and Android StatusBar. To use this plugin we need to add...

Read complete blog post