WHAT IS CALLBACK IN NODE.JS?

What is Callback in Node.JS?

Callback is an asynchronous equivalent for a function. A callback function is called at the completion of a given task. Node makes heavy use of callbacks. All APIs of Node are written is such a way that they support callbacks.

For example, a function to read a file may start reading file and return the control to execution environment immediately so that next instruction can be executed. Once file I/O is complete, it will call the callback function while passing the callback function, the content of the file as parameter. So there is no blocking or wait for File I/O. This makes Node.js highly scalable, as it can process high number of request without waiting for any function to return result.

HOW DOES A COOKBOOK DIFFER FROM A RECIPE IN CHEF?

How does a cookbook differ from a recipe in Chef?

A recipe is a collection of resources, and typically configures a software package or some piece of infrastructure. A cookbook groups together recipes and other information in a way that is more manageable than having just recipes alone.

For example, use a template resource to manage your HTML home page from an external file. The recipe states the configuration policy for your web site, and the template file contains the data. You use a cookbook to package both parts up into a single unit that you can later deploy.

WHY DOES PUPPET HAVE ITS OWN LANGUAGE? WHY NOT USE XML OR YAML AS THE CONFIGURATION FORMAT? WHY NOT USE RUBY AS THE INPUT LANGUAGE?

Why does Puppet have its own language? Why not use XML or YAML as the configuration format? Why not use Ruby as the input language?

The language used for manifests is ultimately Puppet’s human interface, and XML and YAML, being data formats developed around the processing capabilities of computers, are horrible human interfaces. While some people are comfortable reading and writing them, this is the reason why we use web browsers instead of just reading the HTML directly. Also, using XML or YAML would limit any assurance that the interface was declarative — one process might treat an XML configuration differently from another.

ADOBE EXPERIENCE MANAGER

Adobe Experience Manager

ADOBE EXPERIENCE MANAGER

As the digital world continues to grow, the opportunities to engage with consumers have never been greater. People are using their mobile devices wherever and whenever they want. According to the survey by Forrester in 2015, the web influences more than half of the retail sales. Consumers are also twirling unprecedented influence as they spontaneously express their opinions about brands in social forums.

In this fragmented landscape, businesses have to cut through the noise to capture the mindshare of their customers. They have to create fascinating presence everywhere their customers are and have to engage them with relevant and personalized content. But the prospect of delivering and optimizing customer experiences at every point presents a major challenge.

To meet these challenges, businesses have to invest in new technologies and processes with their adaptive and innovative ideas. Most of the systems and workflows for managing and publishing online content are less equipped to serve the marketing needs of multichannel consumers. The customization tactics are not consistently deployed. Also, when the website is launched, the responses and interactions are not thoroughly measured or analysed.

The Adobe Experience Manager, which consists of web content management and digital asset management, solves these challenges by providing solutions for engaging customer experiences.

WHAT AEM IS ABOUT

Adobe Experience Manager is a web based client side server system for building, executing, and deploying commercial websites and related services. It combines a number of infrastructure-level and application-level functions into a single united package.

At the infrastructure level AEM provides:

Web application server: AEM can be deployed in stand-alone mode or as an application within a third party application server.

Web application framework: AEM consolidates the sling web application framework that simplifies the writing of RESTful, content-oriented web applications.

Content Repository: AEM also includes a Java content repository(JCR). JCR is a type of hierarchical database which is designed especially for structured and semi-structured data. The repository stores not only the user’s data but it also stores the code, templates, and internal data which are used by the application.

THE DEPLOYMENT SCENARIOS

AEM terminology an “instance” is a copy of AEM running on a server. AEM involves two instances, which are typically running on separate machines.

Author: An AEM instance is used to create, upload, and edit content and also to supervise the website. Once the content is ready to go live, it is replicated to the publish instance.

Publish: An AEM instance serves the published content to the public.
These instances are identical concerning to the installed software. They are differentiated by configuration. Also, most of the installations use a dispatcher.

Dispatcher: A static web server multiplied with the AEM dispatcher module. It caches the web pages produced by the publish instance to improve the performance.

Software: Customers with a valid support contract will receive an e-mail notification with a code and will able to download AEM from Adobe Licensing Website.

The AEM software is available in two forms i.e.,

cq-quickstart-6.2.0.jar: it is standard executable jar file that includes everything which is needed for running the application.

cq-quickstart-6.2.0.war: a war file is used for deployment in a third-party application server.

Also, in addition to that, a user also needs a license code or a license.properties file, holding a valid code.

INSTALLATION

- Create an install directory in your local server.

In Unix – /opt/aem
In Windows – C:\Program Files\aem
Generally, we will refer the location as,

Note: The path of the file directory must consist of only US-ASCII characters.
– Place the jar and license files in this directory.
/
cq-quickstart-6.2.0.jar
license.properties

If the user does not provide a license.properties file, AEM automatically redirects the user to Welcome screen, where the user can enter a license key. The user needs to request a valid license key if the user does not have one yet.

– To start-up the instance in GUI environment, a user needs to double click on
cq-quickstart-6.2.0.jar file.

AEM will take few minutes to unpack the jar file, install itself, and to start-up. The above-mentioned procedure results in:

– An AEM author instance.
– Runs on localhost.
– At port 4502.

To access the instance point on your browser:

http://localhost:4502

The result in author instance will be automatically configured to connect a publish instance on localhost:4503.

WHAT IS SIEM IN SECURITY WORLD

What is SIEM in security world

SIEM_in_security_world

Logs are generated by a various number of devices in an organization. From a single branch alone, there are so many devices like Router, Firewall, IDs etc that can generate a lot of logs which needs to be tracked constantly for unauthorized access, network threats and much more. Sometimes, you may also require for finding out, what a particular user did on a particular date and time by sorting through all the logs. Now imagine a hundred branches from multiple locations! In such sought of cases, organizations ought to know about Security Information and Event Management (SIEM).

WHAT IS SIEM

SIEM is an approach to security management that seeks to provide an integrated view of an organization’s IT security. A SIEM solution enables the network administrators to collect the log data from a wide variety of network devices across all the networks to identify and report on security threats and suspicious behaviour.

What is the use of just collecting and storing logs? Multiple logs from multiple devices need to be brought to a common and easy to understand format like graphs, charts, and ordered listings thereby saving a lot of time and efforts while sorting and understanding thousands of logs and events.

SIEM solutions do not mitigate network threats by themselves, but it helps the administrators to identify such network threats timely by using techniques like the correlation of data from multiple devices in real time so that appropriate actions could be taken to prevent them from inflicting further damage.

USEFUL EVENTS THAT CAN BE TRACKED BY SIEM

– SIEM solutions can display all file access events, especially the one in confidential folders.

– SIEM also monitors wired network devices like network switches and wireless network devices like wireless controllers. So, that anonymous access to the network can be identified and ad-hoc changes in access rights can be notified.

– SIEM solutions monitors cautious user activity.

– SIEM solutions detects critical system errors and monitors continuously the health of critical networking equipment in order to report system outrages, when they occur.

– Configuration changes for a set of networking equipment’s over a particular period of time can be accurately reported in a common format along with visual aids.

– SIEM solutions can also analyse, which system has been affected internally by malware and which is spreading it to the other systems in the network, by using correlation techniques that look for event patterns in multiple systems.

– The AAA systems (Authentication, Authorization, and Accounting systems), web-based applications, and databases can be tracked and all the activities done in these systems can be stored in the form of logs.

THE MAJOR ADVANTAGES OF SIEM

– SIEM solutions helps to identify network risks in real time by analysis of logs from different devices in multiple branches.

– SIEM solutions provides a GUI based dashboard with a uniform format of reporting logs and events from multiple devices.

– SIEM solutions enables the network administrators to study the root cause of errors by looking into the log information. The user can identify what exactly the reason for errors and which system is vulnerable.

– SIEM solutions usually come-up with the readymade reports for security compliance regulations such as HIPAA, ISO27001, etc. So, that the security administrators can focus on more important network security enhancement activities.

REACT FOR MOBILE APP

React For Mobile App

React_For_Mobile_App

React is a JavaScript library used for building user interfaces. Open-sourced by Facebook in 2013, it has been met with excitement from developers. Large companies such as Netflix, Yahoo!, GitHub, and Codecademy have included their likes. Users started praising React for its performance and flexibility, as-well-as its declarative, component-based approach for building user interfaces.

On January 2015, the React has announced a new project called React Native. React Native uses React to target the platforms other than web browsers, such as iOS and Android, by implementing a bridge between JavaScript and the host platform. It promises the web developers the ability to write real, natively rendering mobile applications, all from the comfort of JavaScript which the developers already know. How is it possible? And more importantly, how can one take advantage of it? In this article, we will be covering the basics of React Native and its importance for mobile apps.

How React Native works?

The idea of writing mobile applications in JavaScript feels little fluky. How is it possible to use React in a mobile environment? We will first need to recall one of the Reacts features, the Virtual DOM, and need to understand how it relates to React Native for mobile.

The Virtual DOM in React

In React, the virtual DOM acts as a layer between the developer’s description of things ought to look and work done actually to render them onto the page. To render interactive user interfaces in a browser, a developer must need to edit the browser’s Document Object Model(DOM). This process is a little bit expensive, and excessive writes to the DOM leads to the performance errors. Rather than directly rendering changes on the page, React computes the necessary changes by using an in-memory version of DOM.

Extending the Virtual DOM

The Virtual DOM certainly has performance benefits, but its real potential lies in the power of its abstraction. What if React could render to a target other than the browser DOM? Why should the React be limited to a browser? React “understands” how your application supposed to look like. The conversion of that ideal to actual HTML elements on the page should be replaced by some other step. During the first two years of React’s public existence, some spectators noticed this intriguing possibility. For an instance, Netflix modified React, so that they could render a huge variety of platforms including televisions and DVD players. Then at React conference, Facebook has announced a new library called React Native that does same for iOS and android, allowing React to render natively on mobile platforms.

What does it mean to render natively? In React for the web, this means it renders to browser DOM. With React Native, native rendering means, it renders using native APIs for creating views.

WHY USE REACT NATIVE?

One of the first thing people ask after learning React Native is, how it relates to standard, native platform development. How should the user make the decision of using React Native or not?

Whether to use React Native or not depends on the user individual circumstances and background knowledge. The developers who are comfortable working with JavaScript for the web, and React specifically, then React Native would be exciting. React Native can leverage your existing skillset to turn you into a mobile developer without requiring a significant investment on platform-specific languages and development paradigms. On the other hand, if you are already accustomed to traditional mobile development, then React Native’s advantages are less apparently. Let’s see some of the benefits and considerations of React Native.

BENEFITS

– At the beginning, Facebook only developed React Native to support iOS. However, with its recent support on Android operating system, the library can now render mobile UIs for both the platforms.

– If a developer knows JavaScript, then React Native is a quick pick-up, allowing any front-end developer to be a mobile developer on the spot. There is no need of learning iOS’s Swift or Java for Android.

You need to know JavaScript, some native UI elements, platform APIs, and any platform-specific design patterns, and you are ready to go-with-it.

React is still new but it’s maturing quickly and Facebook has stated its plans to continue investing its growth.

React Native is all about UI: React Native is focused completely on building a mobile UI. Compared to JavaScript frameworks like AngularJS or Meteor JS, React Native is UI-focused, making it JavaScript library than a framework.

- It offers third-party plugin compatibility and less memory usage: Third-party plugins means a user need not rely on a WebView for certain functions. For instance, if you are adding Google maps functionality to your app, React Native app let’s the user link the plug-in with a native module, so, the user can link-up the map with the device functions like zoom, rotate, and the compass by using less memory.

NEW RELIC VS NAGIOS

New Relic Vs Nagios

WHAT IS NEW RELIC

New Relic is a software analytics organization that attempts to derive real-time business insights from the metrics produced by the software. Some of these include user click-streams, mobile activity, end user experiences, and transactions. New Relic is SaaS based solution that uses data to help the businesses to build faster, better, and more efficient software. It provides SaaS web and mobile application for monitoring Ruby, PHP, .Net, Java, Python, Node.js, iOS, and Android applications. New Relic includes separate products for Application performance management(APM), Native mobile application performance management, Insights like Big Data analytics, Servers, and Browsers. It also provides real-time performance visibility for each component of the user production application i.e., from real user browsers, through the application code, and down to the underlying server infrastructure. The user gets the complete visibility whenever they want. As a SaaS New Relic stores and maintains the consumer’s data using its cloud storage service.

KEY FEATURES OF NEW RELIC

Application Response time

The application response time is an average of total time spent across all web transactions occurring during a selected time frame on the server-side. The application overviews the time spent in the application server is broken down into different layers such as request queuing, database, caching, application code, external calls and much more.

Application Histograms & Percentiles

Histograms and Percentiles are one of the most valuable statistical tools that show you the distribution of response times for all the user transactions. Are you looking for deeper visibility in your app or browser-side performance issues or just want to identify transaction outlines? Then the histograms and percentiles will provide you the triable data you need to quickly pinpoint and troubleshoot the problems.

Transaction tracing

Envisioning where your application is spending more time is a game changer. One cannot fix what they cannot see. Transaction tracing takes the New Relic service to the smallest transaction detail levels by collecting the data from individual HTTP requests and SQL.

Deployment Analysis, History, and Comparison

It allows the user to see before and after picture of their application performance when a change has been deployed. It quickly backs out of a change before it affects the user production.

WHAT IS NAGIOS

Nagios is a scalable IT infrastructure monitoring and alerting solution. It is an open-source network monitoring software that monitors systems, network, and infrastructure. Nagios provides a central view of your entire IT operations network allowing you to monitor all the infrastructure components including applications, services, operating systems, network protocols, and network infrastructure. Nagios has proven popular among small businesses and also other users include Internet service providers (ISP’s), educational institutions, government agencies, manufacturing companies, and financial institutions.

KEY FEATURES OF NAGIOS

Comprehensive monitoring

Nagios has the capability to monitor applications, services, operating systems, network protocols, system metrics, and infrastructure components with a single tool.

Multi-tenant capabilities

– Multi-user access to web interface allows stakeholders to view infrastructure status.
– User specific views ensure the users to see only their infrastructure components.

Extendable architecture

– Integration with in-house and third-party applications is easy with multiple APIs.
– Hundreds of communities have been developed add-ons and extended their core Nagios functionality.

Customizable code

– It is an open-source code.
– The users have access to source code.

Intelligent Scheduling

Parallel processing architecture provides quick detection of infrastructure outages and maximum utilization of hardware capabilities.

IMPORTANCE OF CLOUD SECURITY

Importance of cloud security

Cloud computing is one of the most beneficial innovations for businesses providing low-cost, virtual services, and local hardware. Users place almost everything in the cloud, but what do we really know about its security? How can the users protect their data and privacy from being compromised?

Cloud storage has its benefits, but it is also important to remain secure while taking advantage of any technology. While most organizations are offering cloud storage options to keep the data stored in the cloud safely, many organizations are concerned about mobbing their data to the cloud. Cloud storage is a safe way to store a vast amount of data, as long as you are aware of what to look for when it comes to security. In this article, we have explained you the importance of cloud security which you may not know.

SECURITY RULES MUST BE CLEARLY DEFINED

Know clearly what your cloud service provider will address and what security issues are needed to be taken care at your end. A service level agreement should be established between you and your service provider to clearly determine the responsibilities. An SLA should also define:

– Estimated time for the recovery of any data loss.
– Who will be responsible for various maintenance procedures?
– Policies and procedures if the network goes down?
– Who monitors the data for security threats?

USER SHOULD KNOW EXACTLY WHERE THE DATA IS STORED

Your cloud service provider should be able to tell you where exactly the data is stationed. The user also has to question the cloud provider that how the data is separated from others data. It is not a sign of confidence if you did not get clear answers to these questions. Always be clear about your data location before signing any contract with your provider.

PHYSICAL SECURITY IS ALSO IMPORTANT

Pay attention not only for the data which is stored in the cloud. Ask your cloud service provider what are their physical security policies are and where the data will be stored. This should include information such as, whether the video surveillance is used or not. Also, the user has to know what happens in the event of an emergency such as fire.

BACK-UP STRATEGY IS A MUST

As the data is stored somewhere, it is always important to have a backup strategy in place. The data stored in the cloud is always secured. But, the unexpected can sometimes happen. Back-up could include storing of duplicate data in a different location, which could provide protection in the event of a natural disaster or other damage to the primary facility storing your data.

THINGS TO ASK YOUR CLOUD PROVIDERS

– Are the services developed using a secure development lifecycle?
– What are your data privacy policies?
– Is security covered in SLAs? If not, why?
– How do you encrypt the data in motion and at rest?
– What kind of visibility will the user have in your logs?

WHAT IS GIT REBASE AND HOW CAN IT BE USED TO RESOLVE CONFLICTS IN A FEATURE BRANCH BEFORE MERGE?

What is git rebase and how can it be used to resolve conflicts in a feature branch before merge?

In simple words, git rebase allows one to move the first commit of a branch to a new starting location. For example, if a feature branch was created from master, and since then the master branch has received new commits, git rebase can be used to move the feature branch to the tip of master. The command effectively will replay the changes made in the feature branch at the tip of master, allowing conflicts to be resolved in the process. When done with care, this will allow the feature branch to be merged into master with relative ease and sometimes as a simple fast-forward operation.