DEVOPS: WHAT ARE THE BEST CONTINUOUS INTEGRATION TOOLS

DevOps: what are the best continuous integration tools

One of the major requirements for the implementation of Continuous Integration is the utilization of the Continuous Integration tools also known as build servers. While there are many Continuous Integration tools, there are some that are more widely used. Choosing the right Continuous Integration tool for your purposes can be a bit troublesome, especially when you want to start using them for the first time. So, we hope the below list will provide you with the quick and easy preview of the features and possibilities of some of the most widely used Continuous Integration tools in the market.

Jenkins: Jenkins is an open source Continuous Integration tool. It is originated as the fork of Hudson when Oracle bought the Sun Microsystems. Jenkins is a cross-platform tool and it offers configuration through GUI interface and console commands. Jenkins provides Continuous Integration services for software development. It is a server based system running in a servlet container such as Apache-Tomcat. It is developed in Java and can be installed using simple java – jar jenkins.war command after downloading the WAR file. Jenkins mainly focuses on two major jobs that are – building or testing software projects continuously and monitors externally-running jobs. Jenkins is very flexible because of the feature plugins. The plugin list is very extensive and a developer can easily add his own plugin. Besides extensibility, Jenkins prides itself on distributing builds and test loads on multiple machines. Jenkins is published under MIT license so it free to use and distribute.

Go: Go is the latest cruise control incarnation from ThoughtWorks. Eliminating the commercial support that ThoughtWorks offer, Go is free of cost. Go is available for windows, Mac, and other Linux distributions. Go also lets a developer to distribute his builds across different systems and monitors them all in one place. To use this, a developer needs to install it on his server. There is no SaaS available for Go. What makes Go stand out of the crowd is the concept of pipelines. The pipelines concept makes the modelling of the complex build workflows easy. Another interesting factor of Go is it has the ability to visualize the entire continuous delivery workflow with the value stream map. The map helps a developer to track the entire change from commit to deployment.

Bamboo: Bamboo is a continuous integration server from Atlassian, the makers of JIRA, Confluence, and Crowd. Bamboo tools come in two versions. The cloud and the server. If the user wants to go with the cloud version of Bamboo, Atlassian will host the Bamboo to the user and the user needs to have Amazon EC2 account. If the server is the user’s preferred choice, then the user will host his/her own instance of the Bamboo server.

Conclusion: There are many CI tools available out there, in which we have different tools that suits different environments and users. At the end of the day to choose the right tool for your project, you need to have a clear knowledge of tools. We hope in this article we have given you a brief introduction about different tools available for CI to help you to investigate further.

FIVE THINGS TO WATCH OUT IN BIG DATA

FIVE THINGS TO WATCH OUT IN BIG DATA

Big Data: There are a lot of definitions tossed around, but, what each term has in common is that big data deals with the huge volume of unstructured data created from a business process.

Big data is like a puzzle. Put it together in a way that works for your organization, and you can help it thrive. In this article, we will let you know the five things you need to watch in big data.

UNSTRUCTURED DATA GROWTH:

Unstructured data volumes – composed of things like human information from social media, video, audio, and images, machine sensor data, Internet of Things data (IoT), and business data in various formats of work documents will continue to grow at a breath-taking rate. According to the research by Gartner, IoT data, excluding PCs, tablets, and smartphones will grow to 26 billion connected devices by 2020. Organizations will increasingly seek solutions that can tie structured and unstructured data sources together and generates connected media from social media and video analytics. This will give greater context to the structured data that most organizations have come to rely on.

YOU WILL NEED A NEW EXPERTISE FOR BIG DATA:

Are you setting up a big data analysis system? Then your biggest hurdle will be finding the right talent who knows how to work on the tools to analyse the data. Big data relies on solid data modelling. Organizations will have to focus on data science. They have to hire statistical modellers, text mining professionals, and people who are specialized in sentiment analysis. This may not be the same skill set that today’s analysts versed in business intelligence tools may readily know.

Another skill you need to have on hand is the ability to brawl a large amount of data needed to store and parse the data. You may need to hire a few supercomputer administrators from the local universities or research labs.

THE CLOUD WILL PLAY AN IMPORTANT ROLE:

Most of the data sources for big data are outside the firewall and inside the cloud. This includes external social media such as Facebook and LinkedIn, as well as internal social media sources such as Chatter. Because the speed of analysis on a larger set of data set is a key consideration. Big data analytics require unique infrastructure such as Hadoop or SAP’s HANA which is less likely to have an in-house environment.

There is no requirement for you to invest in an infrastructure – it can all be delivered as services from the cloud. As a result, in many cases, it is always better to go with a cloud-based big data model, so that you can enjoy the benefits without purchasing the unique infrastructure and without needing to worry about hiring specialists to manage the infrastructure.

BIG DATA WILL CHANGE IT OPERATIONS:

Companies who “get” big data are going to apply big data principles and practices to their internal IT operations first and foremost. Big data analytics plays a vital role in identifying IT security threats, which are continually growing and evolving. It also delivers connected intelligence across IT operations domains, generating insights which drive innovation and critical business advantage. This process will rejuvenate the traditional services desk, and the transformation to a big data service desk will bring business capabilities to deliver service anywhere.

MORE FOCUS ON SOLUTIONS, NOT JUST TOOLS:

There will be an increasing focus on integrated solutions for big data in 2016 – not just products, services, and tools. Organizations will look to combine and integrate their tools and platforms for information management, analytics, search, and for other applications.

WHAT PROCESSES WILL ALLOW AWS FOR STORING AND ANALYZING BIG DATA?

What Processes will allow AWS for storing and Analyzing Big Data?

The following services are described in order from collecting, processing, storing and analyzing big data:

– Amazon Kinesis Streams
– AWS Lambda
– Amazon Elastic MapReduce
– Amazon Machine Learning
– Amazon Dynamo DB
– Amazon Redshift
– Amazon Elastic Search Service
– Amazon Quick Sight

In addition, Amazon EC2 instances are also available for self-managed big data applications.

HOW BIG DATA WORKS FOR YOU AT AWS?

How Big Data Works for you at AWS?

AWS provides a broad and fully loaded portfolio of cloud computing services to help you to build, secure, and deploy your big data applications. With AWS, there’s no hardware to procure, and no infrastructure to maintain and scale, so you can focus on your resources on uncovering new insights. With new capabilities and features added constantly, you’ll always be able to leverage the latest technologies without making long-term investment commitments.

 
 
 
 
 
 
 
 

HOW DO YOU UTILIZE AMAZON REDSHIFT FOR THE BIG-DATA PROBLEM?

How do you Utilize Amazon Redshift for the Big-Data Problem?

Redshift is a peta-scale data distribution center (it can likewise begin with giga-scale), that lies on Ansi SQL interface. As you can put as much data as you like into the DWH and you can run any sort of SQL you wish against this data, this is a decent framework to construct any Agile and big data analysis framework. Redshift has numerous examination capacities, for the most part utilizing Window capacities. You can calculate averages and medians, and also percentiles, dense rank etc.

 
 
 
 
 
 
 
 

HOW DO YOU BUILD A PREDICTIVE DATA MODEL FOR REDSHIFT?

How do you build a predictive Data model for Redshift?

AWS included recently another service for Machine Learning. Amazon ML is incorporating with Redshift. You can build predictive models taking the account data from Redshift, by just giving a SQL question that is pulling the data expected to prepare the model, and Amazon ML will assemble a model that you can utilize both for batch prediction and additionally for real time predictions.

 
 
 
 
 
 
 

WHAT ALL DWH TOOLS ARE AVAILABLE TO SUPPORT BIG DATA UPLOADS?

What all DWH tools are available to support Big Data uploads?

With respect to, there are many DWH and reporting tools that you can associate with Redshift. The most widely recognized ones are Tableau, QlikView, Looker or YellowFin, particularly on the off chance that you don’t have any current DWH, where you might need to continue utilizing devices like Jasper Soft or Oracle BI.

 
 
 
 
 
 
 

IS IT BETTER TO MOVE TO SWIFT OR STAY WITH OBJECTIVE-C?

Is it better to move to Swift or stay with Objective-C?

OBJECTIVE-C
On 2nd of June, 2014, Apple presented new object oriented programming language – Swift, a replacement for Objective-C which is a conventional programming language for OSX and IOS applications development. It was a smooth move to radically change main development language for a super popular platform.

Since its release users have several questions, whether they still need to learn Objective-C or not. Moreover, it seems like users are still confused if Swift fits the IOS development ecosystem. Every programming language has its own advantages and disadvantages. Here we are going to clear up some of your confusion and set your path to learning.

Types:

Type inference is probably one of the major reason why a user prefers to use Swift over Objective-C. It is the handiest feature of Swift. In Swift, most of the time there is no need for writing type annotations. The Swift compiler will work with appropriate types from the value of variables. Because of type inference the size of the code will be reduced.

Swift is also a type-safe language. It performs type checks while compiling the code and makes sure that there are no mismatched types. This is one of the major differences between Swift and Objective-C. Objective-C provides dynamic runtime, which means it decides which method implementation to call first. If the method has not been implemented, then the user gets a chance to redirect the call to another object.

In Swift, the compiler checks all the types, when you call a method, instead of doing a dynamic invocation, the compiler will directly call the implementation. Compared to Objective-C, Swift not only enables us to find the errors but also brings a runtime speed improvement.

Closures:

Blocks are excessively useful in Objective-C. The developer uses blocks to pass around self-contained functions in code. However, the syntax of blocks in Objective-C is just awful. Even an experienced developer has to use templates while writing blocks.

In Swift, a developer can avoid this and can use closures to pass functions. Closures are similar to blocks, coding style is more clear, elegant, and simplified.

Generics:

Generics is a new powerful weapon that does not exist in Objective-C. With generics, you could use a placeholder type first and can define the specific later. Since Swift is a strongly typed language and really strict about types, generics provides some essential flexibility.

Fun Fact:

Swift allows the beginners to not to get tripped over syntax. Writing in Swift flows so nicely. Even a beginner can produce a clean and perfect code with less effort. What is so fun and interesting in Swift is that, it allows the user to use nearly any character for both variable and constraint names. A user can even use emoji character for the naming. A user may wonder that how can he type emoji character in MAC OS. It’s easy, a user has to press Control – Command – Spacebar and an emoji picker will be displayed.

Existing Projects:

Are you planning to build a heavy duty application or work for an organization that has an application already in the App store? Then you are most likely to learn Objective-C. Because Swift is hardly a year old. All the existing frameworks and applications are almost all built-in Objective-C. If a developer wants to modify existing applications or converting them to Swift, still a developer needs to understand Objective-C code.

New Projects:

For new projects, the scenario is completely different. The developer has the possibility to use Swift right from the scratch. If you take into consideration that Swift is the future of IOS development, it is a very good idea to use Swift for the projects. There are already a lot of projects done in Swift and Swift is ready for real projects. The only potential problem is, there could be the need to migrate the projects to new versions of Swift.

The Predictions:

The future of Objective-C is unpredictable. According to the updates from Apple, there is a chance that the same will become significantly popular in five years from now. By then Swift may leave an inerasable mark in the sphere of iOS applications.

Conclusion:

As a new programming language, Swift has a clean and clear style. It combines the advantages of Objective-C with the features of modern scripting languages. Most importantly, Swift’s clean syntax and powerful debug tools attract the users to learn iOS programming.

On the other side, almost all the applications are still in Objective-C. It takes some years for Swift to gain its place and importance in iOS applications.

It is a good idea to use Swift whenever a developer wants. However, the effort to migrate existing Objective-C projects to Swift is too high

LATEST APIs IN HTML5

Latest APIs in HTML5

Latest APIs in HTML5

The web is deriving at a fast pace. Every day a new framework, tools, and libraries are releasing with the ambition to become next jQuery. Here are some of the interesting HTML5 APIs, such as Navigation Timing API and Battery Status API. So, let’s dive deep in and know what are these about.

What is Navigation Timing API?

The Navigation Timing API provides data that can be used to measure the performance of a website. This API exposes several properties which offer information about the time at which certain events happen.

Navigation Timing API is W3C recommendation which means that its specifications will not be changed unless a new version is released. Unlike other JavaScript-based mechanisms that have been used for the same purpose, Navigation Timing API can provide end-to-end latency data that can be more useful and accurate.

Let us see an example of how you can measure perceived loading time:

function onLoad() {
var now = new Date().getTime();
var page_load_time = now – performance.timing.navigationStart;
console.log(“User-perceived page loading time: ” + page_load_time);
}

There are many measured events given in milliseconds that can be accessed through the Performance Timing interface. The list of events in order of occur rence is given below.

navigationStart: Is the time immediately after the browser finishes prompting to unload the previous document. If there is no previous document, then navigationStart is equal to fetchStart. This is the beginning of the page load time as perceived by the user.

unloadEventStart: unloadEventStart is the time immediately before the previous document’s unload event is fired. If there are no previous document, or if the previous document is from different origin then the value would be zero.

unloadEventEnd: If there are any redirects that point to a different origin then unloadEventStart and unloadEventEnd are both zero.

redirectStart: “redirectStart” represents the start time of the URL fetch that initiates a redirect.

redirectEnd: If there are any redirects then “redirectEnd” represents the time after the last byte of the last redirect response received.

requestStart: requestStart is the time before the browser sends a request for the URL.

responseStart: The time immediately after the browser receives the first byte of response.

responseEnd: The time immediately after the browser receives the last byte of the response.

In addition to the above set of properties, the Navigation Timing API also defines another object to determine how a user landed on a particular page. The object is called navigation and it belongs to windows.performance. It contains two properties i.e., “type” and “redirectCount”.

Type : This property provides the method by which the user navigated to the current page. The following are the list of values that “type” can hold.

⦁ If the user navigates to a page by typing the URL, clicking a link, submitting a form, or through a script operation, then the value of “type” is zero.
⦁ If the page is reloaded/refreshed, then the “type” is equal to one.
⦁ If the user navigates to a page by clicking back or forward buttons, then “type” is equal to two.
⦁ For other circumstances, “type” is equal to 255.

redirectCount: It is the number of redirects taken to the current page. If there are no redirects occurred or if any of the redirects are from a different origin, then the value is zero.

Browser Support: Browser support for this API is very good for both desktop and mobile. On a desktop, the Navigation Timing API can be implemented in Chrome, Firefox, Internet Explorer, and Opera. The only desktop browser that currently does not support this API is Safari. On mobile, the API can be implemented in iOS safari, UC browser, and Blackberry browser. Opera Mini is the only browser that does not support this API.

Battery Status API
What is Battery API?

The Battery Status API also referred as the Battery API, is an API that provides information about systems battery level. It also defines events that are fired when changes of the battery level or status take place. This can be used to adjust user’s applications resource usage to minimise battery drain when the battery is low or to save changes before the battery runs out in order to prevent data loss.

The Battery Status API exposes four read-only properties on the window.navigator.battery object, they are as follows:

strong>Charging: A Boolean value that specifies whether the battery is charging or not. If the device doesn’t have a battery or the value cannot be determined, then the value of this property is set to be true.

ChargingTime: A value that specifies the number of seconds remaining until the battery is fully charged. If the battery is already charged or the device doesn’t have a battery, then the property is set to be “0”. If the device is not getting charged or if it is unable to determine the remaining time, then the value is Infinity.

DischargeTime: The value that represents the number of seconds re maining until the battery is completely discharged. If the discharge time cannot be determined or the battery is currently charging, then the value is set to Infinity. If the device doesn’t have a battery, then the discharging Time is also set to Infinity.

Level: A value that specifies the current level of the battery. The value is returned as float ranging from 0 (discharged) to 1 (fully charged). If the level of the battery cannot be determined, the battery is fully charged, or the device does not have a battery, then the value of level is equal to 1.

Battery Status Events:
There are four events that can be fired by the battery object.

Chargingchange: The device has been changed to being charged to being discharged.

Levelchange: The level of the battery will be changed.

Chargingtimechange: It is the time until the battery is fully charged has changed.

strong>Dischargingtimechange: It is the time until the battery is fully discharged has changed.

Browser support

Browser support for the Battery Status API is pretty poor. Firefox is the only browser that provides support for the API without the use of vendor prefix.