Tuesday, July 10, 2018

CMS Platforms

In this post, we will first discuss how to make the right choice for your website and which Content Management System (CMS) Platform to choose for your website.

Choosing the Right Website
Let us understand this by asking ourselves a few questions and then discuss the concept in detail.

Question 1 − How much money do we want to spend?

Answer − This is one of the main questions because it is directly related to the budget. If your budget is low, then you should think of something non-commercial and not too complicated.

Question 2 − How much time do we have to plan for the maintenance?

Answer − If you are going to publish many offers, having a blog to moderate, etc., then for sure you will need a dynamic website. You must have extra staff for handling all this, thus this question correlates with the Question 1. Otherwise you should have a flat website, which we will explain in the following chapters.

Question 3 − Will the website be used as an e-commerce site for selling products online?

Answer − If this is the case, you should look for a platform which is called e-commerce. There are many such open source and commercial ones such as Magento, Opencard, Shopify, etc.

Question 4 − Should the view be adaptable for different screens like mobiles?

Answer − If this is one of the main criteria and if there are not many other changes in terms of information in the website; then you should go with a flat website having features like Bootstrap.

Question 5 − Will my website interact with social media or other third party platforms?

Answer − You will need a record for all the events happening on your website and they will be saved in a database. For keeping all this data and records, you will need a dynamic website.

Question 6 − What type of web programing language or platform is easier to find?

Answer − Depending on the country, there are several programing languages or platforms which are more popular than the others. So, you should first find a platform that goes with the trends of your region.

CMS Platform
Content Management System (CMS) Platforms are applications which allow to create and run your website. You will get an Admin Panel, which is an interface where you can create and update pages, posts and other type of content (images, videos, etc.) and arrange the content the way you need.

You will also be able to change the design of the site through the admin panel by installing themes (design templates) and changing them. All the actions are done simply by clicking on various buttons. You don’t have to write codes or scripts in most cases, so you can manage your content easily.

The most prominent CMS platforms are WordPress, Joomla and Drupal. They are free and open source CMS engines. That means their source code is open to the public. You can use, edit and customize the core files of the engine on your site and if you discover a great way to improve the platform, you can pitch it to the developers and help in making their engine even better in their next update.

WordPress is an open source CMS. More than 50 % of the webpages are by that platform. It is getting more comprehensive, intuitive and popular with each new update release. WordPress has a committed community, which has tonnes of free extensions and the easiest-to-use interface.

Managing your content with WordPress is perfectly simple: you create a page, add it to the menu, post something on it and see your content on the front-end of your site. All that adds up to a pre-eminent CMS platform. The official webpage is https://wordpress.com/.

The following screenshot shows the dashboard background.

Dashboard
Joomla has balance between customization possibilities and user-friendliness, yet it is much more complex than WordPress. If you have never worked with this engine before, you will need some time to get used to modifying it. Assigning plugins to modules, positioning modules on different pages, configuring layouts and other necessary manipulations can be a bit hard on a beginner developer.

On the other hand, Joomla extension developers and community have come up with many inspired solutions for common web design problems that are hard to resolve within WordPress. If we take any Joomla slider extension as an example, you can set its location on the page, the duration for showing each slide, the sliding effect and the type of pagination.

Its official webpage is https://www.joomla.org/.

Adminstration

Drupal is for huge websites and organizations that can afford full-time administrators. You can do almost anything with Drupal. I am often fascinated by how many options the engine contains out of the box. Lots of things which in WordPress or Joomla would require custom coding have readymade solutions by default in Drupal. It can be enhanced even more with third-party extensions. But, I will be honest with you - learning to operate it, is the real challenge. It takes a lot of work and patience to master.

Its official website is https://www.drupal.org/.

Introduction To Network Security


Computer networks are an integral part of our personal and professional lives because we carry out lots of day-to-day activities through the Internet or local organizational network. The downside of this is that huge amount of data, from official documents to personal details, gets shared over the network. So it becomes necessary to ensure that the data is not accessed by unauthorized people.

Practices adopted to monitor and prevent unauthorized access and misuse of network resources and data on them is called network security.
Network Security

A network has two components – hardware and software. Both these components have their own vulnerability to threats. Threat is a possible risk that might exploit a network weakness to breach security and cause harm. Examples of hardware threats include −

    Improper installation
    Use of unsecure components
    Electromagnetic interference from external sources
    Extreme weather conditions
    Lack of disaster planning

Hardware threats form only 10% of network security threats worldwide because the components need to be accessed physically. 90% threats are through software vulnerabilities. Here we discuss the major types of software security threats.
Virus

A virus is a malicious program or malware that attaches itself to a host and makes multiple copies of itself (like a real virus!), slowing down, corrupting or destroying the system.

Some harmful activities that can be undertaken by a virus are −

    Taking up memory space
    Accessing private information like credit card details
    Flashing unwanted messages on user screen
    Corrupting data
    Spamming e-mail contacts

Viruses mostly attack Windows systems. Till a few years ago, Mac systems were deemed immune from viruses, however now a handful of viruses for them exist as well.
Virus

Viruses spread through e-mails and need a host program to function. Whenever a new program runs on the infected system, the virus attaches itself to that program. If you are an expert who tinkers with the OS files, they can get infected too.
Trojan Horse

Trojan horse is a malware that hides itself within another program like games or documents and harms the system. As it is masked within another program that appears harmless, the user is not aware of the threat. It functions in a way similar to viruses in that it needs a host program to attach itself and harms systems in the same ways.
Trojan Horse

Trojan horses spread through emails and exchange of data through hard drives or pen drives. Even worms could spread Trojan horses.
Worms

Worms are autonomous programs sent by the attacker to infect a system by replicating itself. They usually infect multitasking systems that are connected to a network. Some of the harmful activities undertaken by worms include −

    Accessing and relaying back passwords stored on the system
    Interrupt OS functioning
    Disrupt services provided by the system
    Install viruses or Trojan horses

Spams

Electronic junk mail, unsolicited mail or junk newsroom postings are called spam. Sending multiple unsolicited mails simultaneously is called spamming. Spamming is usually done as part of marketing tactics to announce a product or share political or social views with a wide base of people.

The first spam mail was sent by Gary Thuerk on ARPANET in 1978 to announce launch of new model of Digital Equipment Corporation computers. It was sent to 393 recipients and together with lots of hue and cry it generated sales for the company as well.
Spams

Almost all mail servers give you the option of stopping spams by marking a received mail as junk. You should take care to share your email ID only with trusted people or websites, who will not sell them to spammers.

Introduction To Web Services


Let us discuss some terms commonly used with regard to the Internet.
WWW

WWW is the acronym for World Wide Web. WWW is an information space inhabited by interlinked documents and other media that can be accessed via the Internet. WWW was invented by British scientist Tim Berners-Lee in 1989 and developed the first web browser in 1990 to facilitate exchange of information through the use of interlinked hypertexts.
World Wide Web

A text that contains link to another piece of text is called hypertext. The web resources were identified by a unique name called URL to avoid confusion.

World Wide Web has revolutionized the way we create, store and exchange information. Success of WWW can be attributed to these factors −

    User friendly
    Use of multimedia
    Interlinking of pages through hypertexts
    Interactive

HTML

HTML stands for Hypertext Markup Language. A language designed such that parts of text can be marked to specify its structure, layout and style in context of the whole page is called a markup language. Its primary function is defining, processing and presenting text.

HTML is the standard language for creating web pages and web applications, and loading them in web browsers. Like WWW it was created by Time Berners-Lee to enable users to access pages from any page easily.

When you send request for a page, the web server sends file in HTML form. This HTML file is interpreted by the web browser and displayed.
XML

XML stands for eXtensible Markup Language. It is a markup language designed to store and transport data in safe, secure and correct way. As the word extensible indicates, XML provides users with a tool to define their own language, especially to display documents on the Internet.
XML

Any XML document has two parts – structure and content. Let’s take an example to understand this. Suppose your school library wants to create a database of magazines it subscribes to. This is the CATALOG XML file that needs to be created.

<CATALOG>
   <MAGAZINE>
      <TITLE>Magic Pot</TITLE>
      <PUBLISHER>MM Publications</PUBLISHER>
      <FREQUENCY>Weekly</FREQUENCY>
      <PRICE>15</PRICE>
   </MAGAZINE>
  
   <MAGAZINE>
      <TITLE>Competition Refresher</TITLE>
      <PUBLISHER>Bright Publications</PUBLISHER>
      <FREQUENCY>Monthly</FREQUENC>
      <PRICE>100</PRICE>
   </MAGAZINE>
</CATALOG>

Each magazine has title, publisher, frequency and price information stored about it. This is the structure of catalog. Values like Magic Pot, MM Publication, Monthly, Weekly, etc. are the content.

This XML file has information about all the magazines available in the library. Remember that this file will not do anything on its own. But another piece of code can be easily written to extract, analyze and present data stored here.
HTTP

HTTP stands for Hypertext Transfer Protocol. It is the most fundamental protocol used for transferring text, graphics, image, video and other multimedia files on the World Wide Web. HTTP is an application layer protocol of the TCP/IP suite in client-server networking model and was outlined for the first time by Time Berners-Lee, father of World Wide Web.
Hypertext Transfer Protocol

HTTP is a request-response protocol. Here is how it functions −

    Client submits request to HTTP.

    TCP connection is established with the server.

    After necessary processing server sends back status request as well as a message. The message may have the requested content or an error message.

An HTTP request is called method. Some of the most popular methods are GET, PUT, POST, CONNECT, etc. Methods that have in-built security mechanisms are called safe methods while others are called unsafe. The version of HTTP that is completely secure is HTTPS where S stands for secure. Here all methods are secure.

An example of use of HTTP protocol is −

https://www.tutorialspoint.com/videotutorials/index.htm

The user is requesting (by clicking on a link) the index page of video tutorials on the tutorialspoint.com website. Other parts of the request are discussed later in the chapter.
Domain Names

Domain name is a unique name given to a server to identify it on the World Wide Web. In the example request given earlier −

https://www.tutorialspoint.com/videotutorials/index.htm

tutorialspoint.com is the domain name. Domain name has multiple parts called labels separated by dots. Let us discuss the labels of this domain name. The right most label .com is called top level domain (TLD). Other examples of TLDs include .net, .org, .co, .au, etc.
Domain Names

The label left to the TLD, i.e. tutorialspoint, is the second level domain. In the above image, .co label in .co.uk is second level domain and .uk is the TLD. www is simply a label used to create the subdomain of tutorialspoint.com. Another label could be ftp to create the subdomain ftp.tutorialspoint.com.

This logical tree structure of domain names, starting from top level domain to lower level domain names is called domain name hierarchy. Root of the domain name hierarchy is nameless. The maximum length of complete domain name is 253 ASCII characters.
Domain Name Hierarchy.
URL

URL stands for Uniform Resource Locator. URL refers to the location of a web resource on computer network and mechanism for retrieving it. Let us continue with the above example −

https://www.tutorialspoint.com/videotutorials/index.htm

This complete string is a URL. Let’s discuss its parts −

    index.htm is the resource (web page in this case) that needs to be retrieved

    www.tutorialspoint.com is the server on which this page is located

    videotutorials is the folder on server where the resource is located

    www.tutorialspoint.com/videotutorials is the complete pathname of the resource

    https is the protocol to be used to retrieve the resource

URL is displayed in the address bar of the web browser.
Websites

Website is a set of web pages under a single domain name. Web page is a text document located on a server and connected to the World Wide Web through hypertexts. Using the image depicting domain name hierarchy, these are the websites that can be constructed −

    www.tutorialspoint.com
    ftp.tutorialspoint.com
    indianrail.gov.in
    cbse.nic.in

Note that there is no protocol associated with websites 3 and 4 but they will still load, using their default protocol.
Website
Web Browsers

Web browser is an application software for accessing, retrieving, presenting and traversing any resource identified by a URL on the World Wide Web. Most popular web browsers include −

    Chrome
    Internet Explorer
    Firefox
    Apple Safari
    Opera

Web Browsers
Web Servers

Web server is any software application, computer or networked device that serves files to the users as per their request. These requests are sent by client devices through HTTP or HTTPS requests. Popular web server software include Apache, Microsoft IIS, and Nginx.
Web Hosting

Web hosting is an Internet service that enables individuals, organizations or businesses to store web pages that can be accessed on the Internet. Web hosting service providers have web servers on which they host web sites and their pages. They also provide the technologies necessary for making a web page available upon client request, as discussed in HTTP above.
Web Scripting

Script is a set of instructions written using any programming language and interpreted (rather than compiled) by another program. Embedding scripts within web pages to make them dynamic is called web scripting.
Web Scripting

As you know, web pages are created using HTML, stored on the server and then loaded into web browsers upon client’s request. Earlier these web pages were static in nature, i.e. what was once created was the only version displayed to the users. However, modern users as well as website owners demand some interaction with the web pages.

Examples of interaction includes validating online forms filled by users, showing messages after user has registered a choice, etc. All this can be achieved by web scripting. Web scripting is of two types −

    Client side scripting − Here the scripts embedded in a page are executed by the client computer itself using web browser. Most popular client side scripting languages are JavaScript, VBScript, AJAX, etc.

    Server side scripting − Here scripts are run on the server. Web page requested by the client is generated and sent after the scripts are run. Most popular server side scripting languages are PHP, Python, ASP .Net, etc.

Web 2.0

Web 2.0 is the second stage of development in World Wide Web where the emphasis is on dynamic and user generated content rather than static content. As discussed above, World Wide Web initially supported creation and presentation of static content using HTML. However, as the users evolved, demand for interactive content grew and web scripting was used to add this dynamism to content.

In 1999, Darcy DiNucci coined the term Web 2.0 to emphasize the paradigm shift in the way web pages were being designed and presented to the user. It became popularity around 2004.

Examples of user generated content in Web 2.0 include social media websites, virtual communities, live chats, etc. These have revolutionized the way we experience and use the Internet.

A Quick Guide To Cloud Computing Architecture and Infrastructure

Cloud Computing architecture comprises of many cloud components, which are loosely coupled. We can broadly divide the cloud architecture into two parts:

Front End
Back End

Each of the ends is connected through a network, usually Internet. The following diagram shows the graphical view of cloud computing architecture:

Front End
The front end refers to the client part of cloud computing system. It consists of interfaces and applications that are required to access the cloud computing platforms, Example - Web Browser.

Back End
The back End refers to the cloud itself. It consists of all the resources required to provide cloud computing services. It comprises of huge data storage, virtual machines, security mechanism, services, deployment models, servers, etc.

Note
It is the responsibility of the back end to provide built-in security mechanism, traffic control and protocols.

The server employs certain protocols known as middleware, which help the connected devices to communicate with each other.

Cloud infrastructure consists of servers, storage devices, network, cloud management software, deployment software, and platform virtualization.

Cloud Computing Infrastructure Components.
Hypervisor
Hypervisor is a firmware or low-level program that acts as a Virtual Machine Manager. It allows to share the single physical instance of cloud resources between several tenants.

Management Software
It helps to maintain and configure the infrastructure.

Deployment Software
It helps to deploy and integrate the application on the cloud.

Network
It is the key component of cloud infrastructure. It allows to connect cloud services over the Internet. It is also possible to deliver network as a utility over the Internet, which means, the customer can customize the network route and protocol.

Server
The server helps to compute the resource sharing and offers other services such as resource allocation and de-allocation, monitoring the resources, providing security etc.

Storage
Cloud keeps multiple replicas of storage. If one of the storage resources fails, then it can be extracted from another one, which makes cloud computing more reliable.

Infrastructural Constraints
Fundamental constraints that cloud infrastructure should implement are shown in the following diagram:

Cloud Computing Infrastructure Constraints
Transparency
Virtualization is the key to share resources in cloud environment. But it is not possible to satisfy the demand with single resource or server. Therefore, there must be transparency in resources, load balancing and application, so that we can scale them on demand.

Scalability
Scaling up an application delivery solution is not that easy as scaling up an application because it involves configuration overhead or even re-architecting the network. So, application delivery solution is need to be scalable which will require the virtual infrastructure such that resource can be provisioned and de-provisioned easily.

Intelligent Monitoring
To achieve transparency and scalability, application solution delivery will need to be capable of intelligent monitoring.

Security
The mega data center in the cloud should be securely architected. Also the control node, an entry point in mega data center, also needs to be secure.

Friday, June 29, 2018

Cloud Computing Management System

It is the responsibility of cloud provider to manage resources and their performance. Management of resources includes several aspects of cloud computing such as load balancing, performance, storage, backups, capacity, deployment, etc. The management is essential to access full functionality of resources in the cloud.

Cloud Management Tasks
The cloud provider performs a number of tasks to ensure efficient use of cloud resources. Here, we will discuss some of them:

Cloud Management Tasks
Audit System Backups
It is required to audit the backups timely to ensure restoring of randomly selected files of different users. Backups can be performed in following ways:

Backing up files by the company, from on-site computers to the disks that reside within the cloud.

Backing up files by the cloud provider.

It is necessary to know if cloud provider has encrypted the data, who has access to that data and if the backup is taken at different locations then the user must know the details of those locations.

Data Flow of the System
The managers are responsible to develop a diagram describing a detailed process flow. This process flow describes the movement of data belonging to an organization throughout the cloud solution.

Vendor Lock-In Awareness and Solutions
The managers must know the procedure to exit from services of a particular cloud provider. The procedures must be defined to enable the cloud managers to export data of an organization from their system to another cloud provider.

Knowing Provider’s Security Procedures
The managers should know the security plans of the provider for the following services:

Multitenant use
E-commerce processing
Employee screening
Encryption policy
Monitoring Capacity Planning and Scaling Capabilities
The managers must know the capacity planning in order to ensure whether the cloud provider is meeting the future capacity requirement for his business or not.

The managers must manage the scaling capabilities in order to ensure services can be scaled up or down as per the user need.

Monitor Audit Log Use
In order to identify errors in the system, managers must audit the logs on a regular basis.

Solution Testing and Validation
When the cloud provider offers a solution, it is essential to test it in order to ensure that it gives the correct result and it is error-free. This is necessary for a system to be robust and reliable.

Introduction To Python Data Science

Data science is the process of deriving knowledge and insights from a huge and diverse set of data through organizing, processing and analysing the data. It involves many different disciplines like mathematical and statistical modelling, extracting data from it source and applying data visualization techniques. Often it also involves handling big data technologies to gather both structured and unstructured data. Below we will see some example scenarios where Data science is used.

Recommendation systems
As online shopping becomes more prevalent, the e-commerce platforms are able to capture users shopping preferences as well as the performance of various products in the market. This leads to creation of recommendation systems which create models predicting the shoppers needs and show the products the shopper is most likely to buy.

Financial Risk management
The financial risk involving loans and credits are better analysed by using the customers past spend habits, past defaults, other financial commitments and many socio-economic indicators. These data is gathered from various sources in different formats. Organising them together and getting insight into customers profile needs the help of Data science. The outcome is minimizing loss for the financial organization by avoiding bad debt.

Improvement in Health Care services
The health care industry deals with a variety of data which can be classified into technical data, financial data, patient information, drug information and legal rules. All this data need to be analysed in a coordinated manner to produce insights that will save cost both for the health care provider and care receiver while remaining legally compliant.

Computer Vision
The advancement in recognizing an image by a computer involves processing large sets of image data from multiple objects of same category. For example, Face recognition. These data sets are modelled, and algorithms are created to apply the model to newer images to get a satisfactory result. Processing of these huge data sets and creation of models need various tools used in Data science.

Efficient Management of Energy
As the demand for energy consumption soars, the energy producing companies need to manage the various phases of the energy production and distribution more efficiently. This involves optimizing the production methods, the storage and distribution mechanisms as well as studying the customers consumption patterns. Linking the data from all these sources and deriving insight seems a daunting task. This is made easier by using the tools of data science.

Python in Data Science
The programming requirements of data science demands a very versatile yet flexible language which is simple to write the code but can handle highly complex mathematical processing. Python is most suited for such requirements as it has already established itself both as a language for general computing as well as scientific computing. More over it is being continuously upgraded in form of new addition to its plethora of libraries aimed at different programming requirements. Below we will discuss such features of python which makes it the preferred language for data science.

A simple and easy to learn language which achieves result in fewer lines of code than other similar languages like R. Its simplicity also makes it robust to handle complex scenarios with minimal code and much less confusion on the general flow of the program.
It is cross platform, so the same code works in multiple environments without needing any change. That makes it perfect to be used in a multi-environment setup easily.
It executes faster than other similar languages used for data analysis like R and MATLAB.
Its excellent memory management capability, especially garbage collection makes it versatile in gracefully managing very large volume of data transformation, slicing, dicing and visualization.
Most importantly Python has got a very large collection of libraries which serve as special purpose analysis tools. For example – the NumPy package deals with scientific computing and its array needs much less memory than the conventional python list for managing numeric data. And the number of such packages is continuously growing.
Python has packages which can directly use the code from other languages like Java or C. This helps in optimizing the code performance by using existing code of other languages, whenever it gives a better result.
In the subsequent chapters we will see how we can leverage these features of python to accomplish all the tasks needed in the different areas of Data Science.

International Business management Country Attractiveness

The International business environment includes various factors like social, political, regulatory, cultural, legal and technological factors that surround a business entity in various sovereign nations. There are exogenous factors relative to the home environment of the organization in the international environment. These factors influence the decision-making process on the use of resources and capabilities. They also make a nation either more or less attractive to an international business firm.

We will take up the most important factors and see how they affect the operational process of a business.

Adapting to Changing Needs
Firms do not have any control over the external business environment. Therefore, the success of an international company depends upon its ability to adapt to the overall environment.

Its success also depends on the ability to adjust and manage the company’s internal variables to leverage on the opportunities of the external environment. Moreover, the company’s capability to control various threats produced by the same environment, also determines its success.

A term called ‘country attractiveness’ is often discussed in the international business fraternity. It is important to consider attractiveness before we move on to discuss environmental factors.

Changing Needs
Country Attractiveness
Country attractiveness is a measure of a country’s attractiveness to the international investors. In international business, investment in foreign countries is the most important aspect and hence firms want to determine how suitable a country is in terms of its external business environments.

International business firms judge the risks and profitability of doing business in a particular country before investing and starting a business there. This judgment includes studying the environmental factors to arrive at a decision.

It is pretty clear that businesses prefer a country that is less costly, more profitable, and has fewer risks. Cost considerations are related with investment. Profitability is dependent on resources. Risks are associated with the environment and hence it is of prime concern.

Risks may be of various types. However, the general consensus is that a country that is more stable in terms of political, social, legal, and economic conditions is more attractive for starting a business.

Business Environments
There are numerous types of business environments, however the political, the cultural, and the economic environments are the prime ones. These factors influence the decision-making process of an international business firm. It is important to note that the types of environments we discuss here are interlinked; meaning one’s state affects the others in varying dimensions.

The Political Factors
The political environment of a nation affects the legal aspects and government rules which a foreign firm has to experience and follow while doing business in that nation. There are definite legal rules and governance terms in every country in the world. A foreign company that operates within a particular country has to abide by the country’s laws for the duration it operates there.

Political environment can affect other environmental factors −

Political decisions regarding economy can affect economic environment.
Political decisions may affect the socio-cultural environment of a nation.
Politicians may affect the rate of emergence of new technologies.
Politicians can exert influence in the acceptance of emerging technologies.
There are four major effects of political environment on business organizations −

Impact on Economy − The political conditions of a nation have a bearing on its economic status. For example, Democratic and Republican policies in the US are different and it influences various norms, such as taxes and government spending.

Changes in Regulation − Governments often alter their decisions related to business control. For example, accounting scandals in the beginning of the 21st century prompted the US SEC turn more mindful on the issues of corporate compliance. Sarbanes-Oxley compliance regulations (2002) were social reactions. The social environment demanded the public companies to be more responsible.

Political Stability − Political stability effects business operations of international companies. An aggressive takeover overthrowing the government could lead to a disordered environment, disrupting business operations. For example, Sri Lanka’s civil war and Egypt and Syria disturbances were overwhelming for businesses operating there.

Mitigation of Risk − There are political risk insurance policies that can mitigate risk. Companies with international operations leverage such insurances to reduce their risk exposure.

Note − You can check The Index of Economic Freedom. It ranks and compares the countries depending on how politics impacts business-decisions in those locations.

The Economic Factors
Economic factors exert a huge impact on international business firms. The economic environment includes the factors that influence a country's attractiveness for international business firms.

Business firms seek predictable, risk-free, and stable mechanisms. Monetary systems that acknowledge the relative dependence of countries and their economies are good for a firm. If an economy fosters growth, stability, and fairness for prosperity, it has a positive effect on the growth of companies.

Inflation contributes hugely to a country's attractiveness. High rate of inflation increases the cost of borrowing and makes the revenue contract in domestic currency. It exposes the international firms to foreign-exchange risks.

Absolute purchasing power parity is also an important consideration. The ratio of exchange rate between two particular countries is identical to the ratio of the price levels. The law of one price states that the real price of a product is same across all nations.

Relative purchasing power parity (PPP) is valuable for foreign firms. It asks how much money is needed to buy the same goods and services in two particular countries. PPP rates prompt international comparisons of income.

The Cultural Factors
Cultural environments include educational, religious, family, and social systems within the marketing system. Knowledge of foreign culture is important for international firms. Marketers who ignore cultural differences risk failure.

Language − There are nearly 3,000 languages in the world. Language differences are important in designing advertising campaigns and product labels. If a country has several languages, it may be problematic.

Colors − It is important to know how people associate with colors. For example, purple is unacceptable in Hispanic nations because it is associated with death.

Customs and Taboos − It is important for marketers to know the customs and taboos to learn what is acceptable and what is not for the marketing programs.

Values − Values stem from moral or religious beliefs and are acquired through experiences. For example, in India, the Hindus don’t consume beef, and fast-food restaurants such as McDonald's and Burger King need to modify the offerings.

Aesthetics − There are differences in aesthetics in different cultures. Americans like suntans, the Japanese do not.

Time − Punctuality and deadlines are routine business practices in the U.S. However, Middle East and Latin American people are far less bound by time constraints.

Religious Beliefs − Religion can affect a product’s labelling, designs, and items purchased. It also affects the consumers' values.

Cultural Differences

Ireland’s evening meal is called tea, not dinner.

If you nod in Bulgaria, it means "no" and moving the head from one side to the other means "yes".

Pepsodent toothpaste did not sell well in Southeast Asia, as it promised white teeth. Black or yellow teeth are symbols of prestige there.

Introduction to Data Structures In Python Programming language

Pandas deals with the following three data structures −

Series
DataFrame
Panel
These data structures are built on top of Numpy array, which means they are fast.

Dimension & Description
The best way to think of these data structures is that the higher dimensional data structure is a container of its lower dimensional data structure. For example, DataFrame is a container of Series, Panel is a container of DataFrame.

Data Structure Dimensions Description
Series 1 1D labeled homogeneous array, sizeimmutable.
Data Frames 2 General 2D labeled, size-mutable tabular structure with potentially heterogeneously typed columns.
Panel 3 General 3D labeled, size-mutable array.
Building and handling two or more dimensional arrays is a tedious task, burden is placed on the user to consider the orientation of the data set when writing functions. But using Pandas data structures, the mental effort of the user is reduced.

For example, with tabular data (DataFrame) it is more semantically helpful to think of the index (the rows) and the columns rather than axis 0 and axis 1.

Mutability
All Pandas data structures are value mutable (can be changed) and except Series all are size mutable. Series is size immutable.

Note − DataFrame is widely used and one of the most important data structures. Panel is used much less.

Series
Series is a one-dimensional array like structure with homogeneous data. For example, the following series is a collection of integers 10, 23, 56, …

10 23 56 17 52 61 73 90 26 72
Key Points
Homogeneous data
Size Immutable
Values of Data Mutable
DataFrame
DataFrame is a two-dimensional array with heterogeneous data. For example,

Name Age Gender Rating
Steve 32 Male 3.45
Lia 28 Female 4.6
Vin 45 Male 3.9
Katie 38 Female 2.78
The table represents the data of a sales team of an organization with their overall performance rating. The data is represented in rows and columns. Each column represents an attribute and each row represents a person.

Data Type of Columns
The data types of the four columns are as follows −

Column Type
Name String
Age         Integer
Gender String
Rating Float
Key Points
Heterogeneous data
Size Mutable
Data Mutable
Panel
Panel is a three-dimensional data structure with heterogeneous data. It is hard to represent the panel in graphical representation. But a panel can be illustrated as a container of DataFrame.

Key Points
Heterogeneous data
Size Mutable
Data Mutable

Wednesday, June 20, 2018

Understanding Cloud Computing Planning

Before deploying applications to cloud, it is necessary to consider your business requirements. Following are the issues one must consider:

Data Security and Privacy Requirement
Budget Requirements
Type of cloud - public, private or hybrid
Data backup requirements
Training requirements
Dashboard and reporting requirements
Client access requirements
Data export requirements
To meet all of these requirements, it is necessary to have well-compiled planning. In this tutorial, we will discuss the various planning phases that must be practised by an enterprise before migrating the entire business to cloud. Each of these planning phases are described in the following diagram:

Cloud Computing Planning
Strategy Phase
In this phase, we analyze the strategy problems that customer might face. There are two steps to perform this analysis:

Cloud Computing Value Proposition
Cloud Computing Strategy Planning
Cloud Computing Value Proposition
In this, we analyze the factors influencing the customers when applying cloud computing mode and target the key problems they wish to solve. These key factors are:

IT management simplification
operation and maintenance cost reduction
business mode innovation
low cost outsourcing hosting
high service quality outsourcing hosting.
All of the above analysis helps in decision making for future development.

Cloud Computing Strategy Planning
The strategy establishment is based on the analysis result of the above step. In this step, a strategy document is prepared according to the conditions a customer might face when applying cloud computing mode.

Planning Phase
This step performs analysis of problems and risks in the cloud application to ensure the customers that the cloud computing is successfully meeting their business goals. This phase involves the following planning steps:

Business Architecture Development
IT Architecture development
Requirements on Quality of Service Development
Transformation Plan development
Business Architecture Development
In this step, we recognize the risks that might be caused by cloud computing application from a business perspective.

IT Architecture Development
In this step, we identify the applications that support the business processes and the technologies required to support enterprise applications and data systems.

Requirements on Quality of Service Development
Quality of service refers to the non-functional requirements such as reliability, security, disaster recovery, etc. The success of applying cloud computing mode depends on these non-functional factors.

Transformation Plan Development
In this step, we formulate all kinds of plans that are required to transform current business to cloud computing modes.

Deployment Phase
This phase focuses on both of the above two phases. It involves the following two steps:

Selecting Cloud Computing Provider
Maintenance and Technical Service
Selecting Cloud Computing Provider
This step includes selecting a cloud provider on basis of Service Level Agreement (SLA), which defines the level of service the provider will meet.

Maintenance and Technical Service
Maintenance and Technical services are provided by the cloud provider. They need to ensure the quality of services.

Introduction To International Business Management

A Global Village
The world is fast becoming a global village where there are no boundaries to stop free trade and communication. Keeping pace with it, the way we do business has changed in an unprecedented manner. The competition, in the global marketplace, is at its peak where all companies want to sell their goods to everyone, everywhere on the globe.

Global Village
For example, the faucet we see in our bathroom may be from Italy. The towels we use may be a Brazilian product. The automobile we drive may be a Japanese or German brand. The air conditioners we use may be from France. It is almost impossible to stay isolated and be self-sufficient in this day and age. That is why multinational companies are a reality.

What is International Business?
Any business that involves operations in more than one country can be called an international business. International business is related to the trade and investment operations done by entities across national borders.

Firms may assemble, acquire, produce, market, and perform other value-addition-operations on international scale and scope. Business organizations may also engage in collaborations with business partners from different countries.

Apart from individual firms, governments and international agencies may also get involved in international business transactions. Companies and countries may exchange different types of physical and intellectual assets. These assets can be products, services, capital, technology, knowledge, or labor.

Note − In this tutorial, we are primarily focusing towards business operations of the individual firm.

Internationalization of Business
Let’s try to explore the reasons why a business would like to go global. It is important to note that there are many challenges in the path of internationalization, but we’ll focus on the positive attributes of the process for the time-being.

There are five major reasons why a business may want to go global −

First-mover Advantage − It refers to getting into a new market and enjoy the advantages of being first. It is easy to quickly start doing business and get early adopters by being first.

Opportunity for Growth − Potential for growth is a very common reason of internationalization. Your market may saturate in your home country and therefore you may set out on exploring new markets.

Small Local Markets − Start-ups in Finland and Nordics have always looked at internationalization as a major strategy from the very beginning because their local market is small.

Increase of Customers − If customers are in short supply, it may hit a company’s potential for growth. In such a case, companies may look for internationalization.

Discourage Local Competitors − Acquiring a new market may mean discouraging other players from getting into the same business-space as one company is in.

Advantages of Internationalization
There are multiple advantages of going international. However, the most striking and impactful ones are the following four.

Product Flexibility
International businesses having products that don’t really sell well enough in their local or regional market may find a much better customer base in international markets. Hence, a business house having global presence need not dump the unsold stock of products at deep discounts in the local market. It can search for some new markets where the products sell at a higher price.

A business having international operations may also find new products to sell internationally which they don’t offer in the local markets. International businesses have a wider audience and thus they can sell a larger range of products or services.

Less Competition
Competition can be a local phenomenon. International markets can have less competition where the businesses can capture a market share quickly. This factor is particularly advantageous when high-quality and superior products are available. Local companies may have the same quality products, but the international businesses may have little competition in a market where an inferior product is available.

Protection from National Trends and Events
Marketing in several countries reduces the vulnerability to events of one country. For example, the political, social, geographical and religious factors that negatively affect a country may be offset by marketing the same product in a different country. Moreover, risks that can disrupt business can be minimized by marketing internationally.

Learning New Methods
Doing business in more than one country offers great insights to learn new ways of accomplishing things. This new knowledge and experience can pave ways to success in other markets as well.

Globalization
Although globalization and internationalization are used in the same context, there are some major differences.

Globalization is a much larger process and often includes the assimilation of the markets as a whole. Moreover, when we talk about globalization, we take up the cultural context as well.

Globalization is an intensified process of internationalizing a business. In general terms, global companies are larger and more widespread than the low-lying international business organizations.

Globalization means the intensification of cross-country political, cultural, social, economic, and technological interactions that result in the formation of transnational business organization. It also refers to the assimilation of economic, political, and social initiatives on a global scale.

Globalization also refers to the costless cross-border transition of goods and services, capital, knowledge, and labor.

Factors Causing Globalization of Businesses
There are many factors related to the change of technology, international policies, and cultural assimilation that initiated the process of globalization. The following are the most important factors that helped globalization take shape and spread it drastically.

The Reduction and Removal of Trade Barriers
After World War II, the General Agreement on Tariffs and Trade (GATT) and the WTO have reduced tariffs and various non-tariff barriers to trade. It enabled more countries to explore their comparative advantage. It has a direct impact on globalization.

Trade Negotiations
The Uruguay Round of negotiations (1986–94) can be considered as the real boon for globalization. It is considerably a large set of measures which was agreed upon exclusively for liberalized trade. As a result, the world trade volume increased by 50% in the following 6 years of the Uruguay Round, paving the way for businesses to span their offerings at an international level.

Transport Costs
Over the last 25 years, sea transport costs have plunged 70%, and the airfreight costs have nosedived 3–4% annually. The result is a boost in international and multi-continental trade flows that led to Globalization.

Growth of the Internet
Expansion of e-commerce due to the growth of the Internet has enabled businesses to compete globally. Essentially, due to the availability of the Internet, consumers are interested to buy products online at a low price after reviewing best deals from multiple vendors. At the same time, online suppliers are saving a lot of marketing costs.

Growth of Multinational Corporations
Multinational Corporations (MNCs) have characterized the global interdependence. They encompass a number of countries. Their sales, profits, and the flow of production is reliant on several countries at once.

The Development of Trading Blocs
The 'regional trade agreement' (RTA) abolished internal barriers to trade and replaced them with a common external tariff against non-members. Trading blocs actually promote globalization and interdependence of economies via trade creation.

Introduction Python Data Structure

Data structures are fundamental concepts of computer science which helps is writing efficient programs in any language. Python is a high-level, interpreted, interactive and object-oriented scripting language using which we can study the fundamentals of data structure in a simpler way as compared to other programming languages.

In this chapter we are going to study a short overview of some frequently used data structures in general and how they are related to some specific python data types. There are also some data structures specific to python which is listed as another category.

General Data Structures
The various data structures in computer science are divided broadly into two categories shown below. We will discuss about each of the below data structures in detail in subsequent chapters.

LINER DATA STRUCTURES
These are the data structures which store the data elements in a sequential manner.

Array: It is a sequential arrangement of data elements paired with the index of the data element.
Linked List: Each data element contains a link to another element along with the data present in it.
Stack: It is a data structure which follows only to specific order of operation. LIFO(last in First Out) or FILO(First in Last Out).
Queue: It is similar to Stack but the order of operation is only FIFO(First In First Out).
Matrix: It is two dimensional data structure in which the data element is referred by a pair of indices.
NON-LINER DATA STRUCTURES
These are the data structures in which there is no sequential linking of data elements. Any pair or group of data elements can be linked to each other and can be accessed without a strict sequence.

Binary Tree: It is a data structure where each data element can be connected to maximum two other data elements and it starts with a root node.
Heap: It is a special case of Tree data structure where the data in the parent node is either strictly greater than/ equal to the child nodes or strictly less than it’s child nodes.
Hash Table: It is a data structure which is made of arrays associated with each other using a hash function. It retrieves values using keys rather than index from a data element.
Graph: .It is an arrangement of vertices and nodes where some of the nodes are connected to each other through links.
PYTHON SPECIFIC DATA STRUCTURES
These data structures are specific to python language and they give greater flexibility in storing different types of data and faster processing in python environment.

List: It is similar to array with the exception that the data elements can be of different data types. You can have both numeric and string data in a python list.
Tuple: Tuples are similar to lists but they are immutable which means the values in a tuple cannot be modified they can only be read.
Dictionary: The dictionary contains Key-value pairs as its data elements.
In the next chapters we are going to learn the details of how each of these data structures can be implemented using Python.

Beginners Guide to SQL and other popular Database

SQL is a language to operate databases; it includes database creation, deletion, fetching rows, modifying rows, etc. SQL is an ANSI (American National Standards Institute) standard language, but there are many different versions of the SQL language.

What is SQL?
SQL is Structured Query Language, which is a computer language for storing, manipulating and retrieving data stored in a relational database.
SQL is the standard language for Relational Database System. All the Relational Database Management Systems (RDMS) like MySQL, MS Access, Oracle, Sybase, Informix, Postgres and SQL Server use SQL as their standard database language.

Also, they are using different dialects, such as

MS SQL Server using T-SQL,
Oracle using PL/SQL,
MS Access version of SQL is called JET SQL (native format) etc.

Why SQL?
SQL is widely popular because it offers the following advantages

Allows users to access data in the relational database management systems.

Allows users to describe the data.

Allows users to define the data in a database and manipulate that data.

Allows to embed within other languages using SQL modules, libraries & pre-compilers.

Allows users to create and drop databases and tables.

Allows users to create view, stored procedure, functions in a database.

Allows users to set permissions on tables, procedures and views.

A Brief History of SQL
1970 − Dr. Edgar F. "Ted" Codd of IBM is known as the father of relational databases. He described a relational model for databases.

1974 − Structured Query Language appeared.

1978 − IBM worked to develop Codd's ideas and released a product named System/R.

1986 − IBM developed the first prototype of relational database and standardized by ANSI. The first relational database was released by Relational Software which later came to be known as Oracle.

SQL Process
When you are executing an SQL command for any RDBMS, the system determines the best way to carry out your request and SQL engine figures out how to interpret the task.

There are various components included in this process.

These components are −

Query Dispatcher
Optimization Engines
Classic Query Engine
SQL Query Engine, etc.
A classic query engine handles all the non-SQL queries, but a SQL query engine won't handle logical files.

Following is a simple diagram showing the SQL Architecture −

SQL Architecture
SQL Commands
The standard SQL commands to interact with relational databases are CREATE, SELECT, INSERT, UPDATE, DELETE and DROP. These commands can be classified into the following groups based on their nature −

DDL - Data Definition Language
Command & Description

1 CREATE
Creates a new table, a view of a table, or other object in the database.

2 ALTER
Modifies an existing database object, such as a table.

3 DROP
Deletes an entire table, a view of a table or other objects in the database.

DML - Data Manipulation Language
Command & Description

1 SELECT
Retrieves certain records from one or more tables.

2 INSERT
Creates a record.

3 UPDATE
Modifies records.

4 DELETE
Deletes records.

DCL - Data Control Language
Command & Description

1 GRANT
Gives a privilege to user.

2 REVOKE
Takes back privileges granted from user.

There are many popular RDBMS available to work with. This tutorial gives a brief overview of some of the most popular RDBMS’s. This would help you to compare their basic features.

MySQL
MySQL is an open source SQL database, which is developed by a Swedish company – MySQL AB. MySQL is pronounced as "my ess-que-ell," in contrast with SQL, pronounced "sequel."

MySQL is supporting many different platforms including Microsoft Windows, the major Linux distributions, UNIX, and Mac OS X.

MySQL has free and paid versions, depending on its usage (non-commercial/commercial) and features. MySQL comes with a very fast, multi-threaded, multi-user and robust SQL database server.

History
Development of MySQL by Michael Widenius & David Axmark beginning in 1994.

First internal release on 23rd May 1995.

Windows Version was released on the 8th January 1998 for Windows 95 and NT.

Version 3.23: beta from June 2000, production release January 2001.

Version 4.0: beta from August 2002, production release March 2003 (unions).

Version 4.01: beta from August 2003, Jyoti adopts MySQL for database tracking.

Version 4.1: beta from June 2004, production release October 2004.

Version 5.0: beta from March 2005, production release October 2005.

Sun Microsystems acquired MySQL AB on the 26th February 2008.

Version 5.1: production release 27th November 2008.

Features
High Performance.
High Availability.
Scalability and Flexibility Run anything.
Robust Transactional Support.
Web and Data Warehouse Strengths.
Strong Data Protection.
Comprehensive Application Development.
Management Ease.
Open Source Freedom and 24 x 7 Support.
Lowest Total Cost of Ownership.

MS SQL Server
MS SQL Server is a Relational Database Management System developed by Microsoft Inc. Its primary query languages are:
T-SQL
ANSI SQL

1987 - Sybase releases SQL Server for UNIX.

1988 - Microsoft, Sybase, and Aston-Tate port SQL Server to OS/2.

1989 - Microsoft, Sybase, and Aston-Tate release SQL Server 1.0 for OS/2.

1990 - SQL Server 1.1 is released with support for Windows 3.0 clients.

Aston - Tate drops out of SQL Server development.

2000 - Microsoft releases SQL Server 2000.

2001 - Microsoft releases XML for SQL Server Web Release 1 (download).

2002 - Microsoft releases SQLXML 2.0 (renamed from XML for SQL Server).

2002 - Microsoft releases SQLXML 3.0.

2005 - Microsoft releases SQL Server 2005 on November 7th, 2005.

Features
High Performance
High Availability
Database mirroring
Database snapshots
CLR integration
Service Broker
DDL triggers
Ranking functions
Row version-based isolation levels
XML integration
TRY...CATCH
Database Mail

ORACLE
It is a very large multi-user based database management system. Oracle is a relational database management system developed by 'Oracle Corporation'.

Oracle works to efficiently manage its resources, a database of information among the multiple clients requesting and sending data in the network.

It is an excellent database server choice for client/server computing. Oracle supports all major operating systems for both clients and servers, including MSDOS, NetWare, UnixWare, OS/2 and most UNIX flavors.

History
Oracle began in 1977 and celebrating its 32 wonderful years in the industry (from 1977 to 2009).

1977 - Larry Ellison, Bob Miner and Ed Oates founded Software Development Laboratories to undertake development work.

1979 - Version 2.0 of Oracle was released and it became first commercial relational database and first SQL database. The company changed its name to Relational Software Inc. (RSI).

1981 - RSI started developing tools for Oracle.

1982 - RSI was renamed to Oracle Corporation.

1983 - Oracle released version 3.0, rewritten in C language and ran on multiple platforms.

1984 - Oracle version 4.0 was released. It contained features like concurrency control - multi-version read consistency, etc.

1985 - Oracle version 4.0 was released. It contained features like concurrency control - multi-version read consistency, etc.

2007 - Oracle released Oracle11g. The new version focused on better partitioning, easy migration, etc.

Features
Concurrency
Read Consistency
Locking Mechanisms
Quiesce Database
Portability
Self-managing database
SQL*Plus
ASM
Scheduler
Resource Manager
Data Warehousing
Materialized views
Bitmap indexes
Table compression
Parallel Execution
Analytic SQL
Data mining
Partitioning

MS ACCESS
This is one of the most popular Microsoft products. Microsoft Access is an entry-level database management software. MS Access database is not only inexpensive but also a powerful database for small-scale projects.

MS Access uses the Jet database engine, which utilizes a specific SQL language dialect (sometimes referred to as Jet SQL).

MS Access comes with the professional edition of MS Office package. MS Access has easyto-use intuitive graphical interface.

1992 - Access version 1.0 was released.

1993 - Access 1.1 released to improve compatibility with inclusion the Access Basic programming language.

The most significant transition was from Access 97 to Access 2000.

2007 - Access 2007, a new database format was introduced ACCDB which supports complex data types such as multi valued and attachment fields.

Features
Users can create tables, queries, forms and reports and connect them together with macros.

Option of importing and exporting the data to many formats including Excel, Outlook, ASCII, dBase, Paradox, FoxPro, SQL Server, Oracle, ODBC, etc.

There is also the Jet Database format (MDB or ACCDB in Access 2007), which can contain the application and data in one file. This makes it very convenient to distribute the entire application to another user, who can run it in disconnected environments.

Microsoft Access offers parameterized queries. These queries and Access tables can be referenced from other programs like VB6 and .NET through DAO or ADO.

The desktop editions of Microsoft SQL Server can be used with Access as an alternative to the Jet Database Engine.

Microsoft Access is a file server-based database. Unlike the client-server relational database management systems (RDBMS), Microsoft Access does not implement database triggers, stored procedures or transaction logging.