Monthly Archives: April 2017


Aws Mobile Hub

Aws Mobile Hub

AWS is providing a range of services to help the user to develop mobile applications that can scale up to hundreds of millions of users and can reach global audiences. With AWS the user can get started quickly, it ensures high quality by testing on real devices in the cloud, and measures and improves the user engagement. So let’s dive deep and know what is AWS Mobile Hub and setting-up of a mobile hub.

What exactly the AWS Mobile Hub is :

AWS Mobile Hub provides an integrated console experience that enables the user to swiftly create and configure powerful mobile app backend features and integrate them into their mobile app. The user can create a project by selecting the features to add to their application.

When the user builds her project for iOS Objective-C, iOS Swift, or Android, Mobile Hub automatically provisions and configures all of the AWS service resources that the app’s features require. Mobile Hub then guides the user through integrating the features into the user app code and downloading a fully working quick start app project that demonstrates the features.

After the mobile app is built, the user can use Mobile Hub to test the app, then monitor and visualize how it is being used.

AWS Mobile Hub enables the user to select the region in which their project’s resources will be created.

When the user uses AWS Mobile Hub, the user can pay only for the underlying services that Mobile Hub provisions based on the features they have chosen in the Mobile Hub console.

Setting-up AWS Mobile Hub:
Sign-up for AWS

To use AWS Mobile Hub, the user needs an account in AWS. The user account will have the access to all available services, but the users are charged only for the services they use. If the user is a new AWS customer, they can get started with the AWS Free Tier.

Creating an I am user

To provide better security, the user is recommended to not to use their AWS root account to access the Mobile Hub. Instead of that, the user can create an AWS Identity and can Access Management (IAM) user, or can use an existing IAM user, in their AWS account and then access Mobile Hub. If the user has already signed up for AWS but has not created an IAM user for themselves, they can create one by using the IAM console. First, they have to create an IAM administrator group, then create and assign a new IAM user to that group.

Enabling AWS Mobile Hub

AWS Mobile Hub administers AWS resources for mobile app projects on behalf of the customer. This includes the automation that creates AWS Identity and Access Management roles to the mobile app users and updates their permissions based on the features that are enabled in a mobile app project. Because these operations require administrative privileges, then only a user with administrative privileges may enable to Mobile Hub too. These are the steps an administrative user must take in order to enable AWS Mobile Hub in an AWS account. This only needs to be done once.

To enable Mobile Hub in an AWS account:

  • Navigate to the AWS Mobile Hub console at
  • Select Get Started.
  • Select Yes, grant permissions.

Signing in to Mobile Hub and Creating the user’s Project:

A Mobile Hub project is a logical workspace which contains the features which the user chooses to incorporate into their mobile app. The user can create as many projects as they wish.

To create a Mobile Hub project

  • Select Get Started or Create new project.
  • For Project name, type a name for the project.
  • Select Create project.

Getting Started:
App Content Delivery:

The App Content Delivery feature enables the user to store app assets, such as resource or media files, so that a user can download and cache them within their app. Mobile Hub offers two choices for distributing these files: 1. from a single location using an Amazon S3bucket or 2.
distributed through a global content delivery network by using Amazon CloudFront.

Cloud Logic

The Cloud Logic feature lets the user to build backend services using AWS Lambda functions that the user can call from their mobile app. Using Cloud Logic, a user can run code in the cloud to process business logic for their apps and share the same code for both iOS and Android apps. The Cloud logic feature is powered by AWS Lambda functions, which allows the user to write code without worrying about managing frameworks and scaling backend infrastructure.

Push Notifications

The Push Notifications feature enables the user to send push notification messages to their iOS and Android apps using Amazon Simple Notification Service. The user can integrate with Apple and Google messaging services by providing credentials that are provided by those services. They can send messages directly to individual devices, or publish messages to the SNS topics.

User Data Storage

The Mobile Hub User Data Storage feature, creates and configures four folders for each user, inside an Amazon S3 bucket belonging to the app. The following table shows the details of permission policies that are provisioned for each folder type.

user data storage
The Verdict

With Mobile Hub and the creations of a Mobile Hub project, Mobile Hub allows the user to return and modify its features and configurations. With all these features available, combined with AWS services, client SDKs, and code makes it fast and easy to add new capabilities to the user mobile App. With the fast turnaround of information, whether it is social, media or business, AWS Mobile Hub provides an ideal platform for mobile apps and services to work seamlessly together.



Top 3 Python IDE

Smart programmers not only code well but also do it in style. And to become a good programmer may take longer time than you expect. However, if you choose the best Python IDE, then one can certainly reduce their coding efforts. IDLE is the Python IDE that comes with the standard Python package. It allows quick editing and execution of Python scripts. However, it lacks a lot of features that can increase speed and boost productivity.

Picking up the right IDE is crucial as it can help the programmer to automate a lot of tasks and ease up project management. So, the developer must wisely choose a development tool, that the developer shouldn’t regret using it later in the project lifecycle.

There is a number of factors that the developer might like to consider for shortlisting. We have mentioned few points to make an entry-level distinction:

  • An ideal Python IDE should support multiple platforms such as Windows, Linux, and MacOS.
  • Check if it is available for free or is an open source with a GPL license.
  • Also, confirm if the IDE has a community version which suits students and beginners who are learn ing Python.

IT companies or the professionals working with big organizations might have access to paid version of commercial IDEs. Just to name a few are Komodo, PyCharm, Sublime, and Wing IDE.

In this article, we have published 3 best python IDE’s voted as most advanced and feature rich by experienced and professional programmers.


PyCharm is a complete Python IDE loaded with a rich set of features. It is the software company, JetBrains, which is behind the development of PyCharm. And it has left no stone unturned in making this tool up to date while meeting the increasing needs of Python developers.

It is an enterprise-level product which offers two variations – the first is community edition, free for non-commercial usage and next is the premium version for advanced as well as enterprise users.

For basic users, the free version is enough to start their work. It includes almost every feature the developer might seek in an IDE – Auto code completion, quick project navigation, built-in version control support, code inspection/refactoring, PEP8 quality audit, fast error checking and correction, UI level debugging, and integrated AUT testing. The other key features include integration with IPython notebook and support for Anaconda as-well-as packages like NumPy and MatPlotLib for scientific computing.

High-level features such as remote development support, database accessibility, and ability to use extensible web development frameworks (WDF) exist only in the premium version of PyCharm.

Most of the developers say it as the best Python IDE because of its sheer scale to work with a number of WDFs like Django, Web2Py, GAPP, Flask, and Pyramid. Undoubtedly, it is one of the best IDEs for creating small to large scale web applications.


Eric is an open-source Python IDE written using Python and QT frameworks. Its name is derived from Monty Python’s Eric Idle. Despite being a non-commercial product, it has all the features needed for a professional software development.

The creator of Eric is Detlev Offenbach, a senior system engineer from Munich. He has been maintaining it from so many years so that it can compete with any of its peers. Talking about its usage and downloads, it is incomparable. The IDE is available under the GPL license for the unlimited usage.

Eric has a robust plugin manager which you can use to extend the functionality by adding appropriate plugins. The latest and stable version is Eric6 built on PyQt5/4 and Python2/3.

Some of the standard features of Eric are code completion, bracket matching, call tips, syntax highlighting, class browser, code profiling, and integrated unit tests. Developers can also make use of its form preview function while working on a QT GUI application. Below is the list that makes Eric stands against competitors like PyCharm/Wing.

  • Integrated debugger support for multithreaded or multiprocessing applications.
  • Automatic code checkers.
  • Intuitive project management.
  • Built-in Unitest support.
  • Inbuilt Python shell.
  • Addons for Regex and QT dialogs.
  • Integrated web browser.


WING is also one of the top IDE alternatives for Python developers. It is a paid solution from WingWare. The company made huge investments in Wing and added many new and relevant features. Also, it has released a number of updates over the years.

Like PyCharm, Wing also supports Windows, Linux, and Mac OS X. The company offering three types of packages; a Freeware with moderate features, a personal version for individual users, and a high-end edition for the enterprise users.

WING Python IDE is an intelligent code editor and a great debugging tool. Both these features together make Python coding easy, interactive, accurate, and fast. It has a robust graphical debugger which enables to set breakpoints, navigating through code, monitoring data, multi-process/multi-threaded code debugging and also supports remote debugging on SOC (System On Chip) devices such as Raspberry PI. Also, it comes with the ability to blend with different version control systems such as GIT, CVS, SVN, Mercurial, and Perforce. So the developers can perform check-in/check-out and manage merge within the IDE.

WING team ensured that the IDE supports all the major Python frameworks available as of today. Just to name a few of these frameworks are PyQT, PyGTK, PySide, Zope, MotionBuilder, Django, and much more. It also supports Matplotlib where the plots get updated automatically.


VMware and AWS Partnership

VMware and AWS Partnership

Earlier this year, VMware and Amazon Web Services (AWS) announced a strategic association to build and deliver a seamlessly integrated hybrid offering that will give customers a full software-defined data centre experience from the leader in the private cloud, running on the world’s most popular, trusted, and robust public cloud. VMware Cloud on AWS will enable the customers to run their applications on VMware vSphere-based private, public, and hybrid cloud environments.

At AWS reinvent, VMware and AWS announced that they are working on a joint initiative called the VMware Cloud on AWS Partner Program which will be launched in 2017. The VMware Cloud on AWS Partner Program provides training for the partners that helps the customers to deploy and operate VMware workloads on AWS. To learn more about this announcement, explore this article and know more about its association.


As mentioned, VMware Cloud on AWS, users will run the applications across VMware vSphere based private, public, and hybrid cloud environments. It will be delivered, sold, and supported by VMware as an on-demand, elastically scalable service, VMware Cloud on AWS will allow the VMware customers to use their existing VMware software and tools on AWS.

VMware clients can run the applications in their vSphere-based private clouds, and they can often also run their applications on AWS. Increasingly, the customers have asked both companies to make it easier to run their existing on-premises environments alongside AWS using the VMware software and tools they’ve come to depend on.

VMware Cloud on AWS will be powered by VMware Cloud Foundation, a unified SDDC platform. It integrates VMware vSphere, VMware Virtual SAN, and NSX virtualization technologies. At the same time, it also provides access to the full range of AWS services, together with the functionality, elasticity, and security. It runs on elastic, bare-metal AWS infrastructure.

Customers will have the ability to purchase the services through their existing VMware commercial agreement and they can use their existing VMware software investments to secure additional loyalty discounts for VMware Cloud on AWS hybrid environment.

“VMware Cloud on AWS offers their customers the best of both worlds,” said Pat Gelsinger, Vmware’s CEO in his statement. This brand new service will surely make it easier for the customers to preserve their investments in existing applications and processes while taking advantage of the global footprint, advanced capabilities, and scale of the AWS public cloud.

Most of the enterprises are already virtualized using VMware, and now with VMware Cloud on AWS, for the first time, it will be easy for the customers to operate a consistent and seamless hybrid IT environment using their existing VMware tools on AWS, and without having to purchase customized hardware, rewriting the applications, or modifying their operating model.”


It all sounds good as of now, but it’s not here yet. Porting VMware’s platform to AWS won’t be that simple. The organizations are promising that VMware Cloud on AWS will be available in mid-2017. Pricing will be made available closer to the general availability date. So, let’s wait for and see how it works.


Microsoft Dynamics: What is CRM? What Microsoft Dynamics is all about?

Every successful organization need the right enterprise resource planning (ERP) and customer relationship management (CRM) software to help their employees to drive key business processes, making smarter and faster decisions and ensure they make the most of their assets and resources.

With Microsoft Dynamics CRM, a user can accomplish mission-critical tasks across their organization. It reduces the cost of doing business and improves customer services by connecting and streamlining the user’s supply chain. So, explore this article and know about Microsoft Dynamics CRM and its importance.


Customer relationship management (CRM) is a system for managing organization interactions with current and future customers. It often involves using technology to organize, automate, and synchronize sales, marketing, customer service, and technical support. CRM helps to reduce the costs and increases the profitability by organizing and automating business processes that foster customer satisfaction and loyalty.

Microsoft Dynamics CRM

Microsoft Dynamics CRM is a customer relationship management software package developed by Microsoft focused on magnifying customer relationships for any organization. Also, the product focuses mainly on Sales, Marketing, and Customer Service sectors, but Microsoft has been marketing Dynamics CRM as an XRM platform and has been encouraging partners to use its proprietary (.NET based) framework to customize it.

The CRM Solution can also be used to drive the sales productivity and marketing effectiveness for an organization, handle the complete customer support chain and provides the social insights, business intelligence, and other functionalities and features. As a product, Microsoft Dynamics CRM also offers complete mobile support for using CRM apps on mobiles and tablets.


CRM Online is a cloud-based offering of Microsoft Dynamics CRM where all the backend processes are managed on Microsoft servers. CRM Online is a subscription-based offering which is more preferred for organizations who may not want to manage all the technicalities involved in a CRM implementation. The user can get started with setting up their system in few days and access it on the web through their browser.


CRM On-premise is a customized and sturdy offering of Microsoft Dynamics CRM where the CRM application and databases will be deployed on the user servers. This offering allows the user to control all their databases, customizations, deployments, backups, licensing and all other network and hardware setups. Usually, organizations who want to go for a customized CRM solution prefers on-premise deployment as it offers better integration and customization capabilities.

From the functional standpoint, both the offerings offer similar functionalities but they differ mainly in terms of implementation.


Microsoft Dynamics CRM can be accessed through any of the following options:

  • Browser
  • Mobile and Tablets
  • Outlook


Microsoft Dynamics CRM is doubtlessly one of the top products in the CRM space. However, following are the other products that compete Microsoft Dynamics CRM.

  • Oracle
  • SAP
  • Sage CRM
  • Sugar CRM
  • NetSuite


Top 5 In-Demand Programming Languages of 2017

When you do a simple web search, you’ll find hundreds of programming languages in existence. When you search for the most popular ones, you’ll come up with a head-spinning list. To be as objective as possible, in this article we’re examining the top programming languages from a career perspective. So, let’s dive deep in and see the top in-demand programming languages of this year.


Java is one of the most adopted programming languages and it is used by nine million developers and running on seven billion devices globally. It was designed to be a language that could run on any device, hence it is used for software development for computers, smartphones, and even for smart televisions.

The TIOBE programming community index places Java as no. 1, occupying a total of 20.79% from a list of 50 programming languages and it has known a 63% growth on GitHub by a number of pull requests in the last twelve months.

We all know, Java is the worldwide most popular language, according to the PYPL – Popularity of Programming Language Index. Even though the tech community celebrated the twentieth anniversary of Java, this programming language is going to continue to dominate the job market in 2017.


Python is a widely used high-level programming language. Python is the language of the moment and chosen as a starter language in university courses around the world. Python continued to grow in pop ularity in 2016 and moved up two places in our rankings to be the second-most common lan guage by job posting. Python is a general purpose programming language that em phasizes code readability and increases developer productivity, used for desktop apps, web apps, and data mining. On October 2016, Microsoft launched the beta version 2.0 of its Cognitive Toolkit open source deep-learning framework, which includes support for Python.


Although JavaScript slipped down one place in’s ranking as compared to 2016, the number of job postings remained almost the same.

JavaScript is popular, powerful, and dynamic scripting language that is used to create amazing websites and games for the web. It derives much of its syntax from the C language. JavaScript is compatible across all the browsers, and it is being used in over 90 percent of all web pages. In recent years, JavaScript has also gained use as the foundation of Node.js, a server technology that among other things enables real-time communication. In 2016, compatibility and adoption of JavaScript 6 continued to grow and progressive web applications became more usable, allowing offline-first functionality for web apps.


“C Sharp” saw a small increase in popularity in 2017, but not enough to keep it from falling behind C++.

C Sharp is a simple, modern, type-safe, and object-oriented programming language, which is developed by Microsoft. The language is intended for use of developing the software components suitable for deployment in distributed environments. It is used in many number of applications such as .NET. Since the release of the .NET Core open-source development platform in June 2016, it can be used now on non-Windows machines too. Several features in C# 7.0 were released last year, including language support for Tuples, pattern matching, local functions, and much more.

iOS Family

Most of the developers writing code for the iOS operating system by using Objective-C, C, or Apple’s new Swift programming language. We counted the job postings that included “iOS”, and in our ranking, we have observed the change from 2016. Swift launched in 2014 and it has climbed rapidly in popularity due to its scalability, speed, ease of use, and strong demand from the mobile app marketplace. Apple released Swift 3.0 in Sept 2016 with new features including better translation of Objective-C APIs, modernizations of debugging identifiers and a new model for collections and indices. Apple is planning to release Swift 3.1 and Swift 4 in 2017.


Difference between Solr and Elastic Search?

The choice to use Elasticsearch rather than Solr comes from features such as distributed searches and improved scale.

Elasticsearch is a REST based search engine powered by the Lucene library. Major features include:

  • Hit highlighting
  • Faceted search
  • Full-text search
  • Database integration
  • Rich document handling
  • Dynamic clustering


Solr refers to the main logical data structure as the collection, which is composed of many Shards.

A collection can have an exact copy of the Shard, called a Replica. You must develop a custom search component to index different document types.


An Index is the term used for the top logical data structure, which can have multiple Shards.

Lucene indices is the term for Shards and Replicas. Allows multiple document types in a single Index, which allows you to index different index structures in one place.Different types of documents can be separated and indexed when querying.


What is Refactoring?

Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. And it makes software easier to understand.

I think refactoring goes further because it provides a technique for cleaning up code in a more efficient and controlled manner.

  • Refactoring does “not” mean:
  • rewriting code
  • fixing bugs
  • Changing functionality
  • improve observable aspects of software such as its interface


Explain Java API for XML Processing

The Java API for XML Processing (JAXP), part of the Java SE platform, supports the processing of XML documents using the Document Object Model (DOM), the Simple API for XML (SAX), and Extensible Stylesheet Language Transformations (XSLT). JAXP enables applications to parse and transform XML documents independent of a particular XML-processing implementation.

JAXP also provides namespace support, which lets you work with schemas that might otherwise have naming conflicts. Designed to be flexible, JAXP lets you use any XML-compliant parser or XSL processor from within your application and supports the W3C schema.


What is Java Servlet API?

The Java Servlet API lets you define HTTP-specific classes. A servlet class extends the capabilities of servers that host applications that are accessed by way of a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by web servers. For instance, you might use a servlet to get the text input from an online form and print it back to the screen in an HTML page and format, or you might use a different servlet to write the data to a file or database instead. A servlet runs on the server side — without an application GUI or HTML user interface (UI) of its own. Java Servlet extensions make many web applications possible.