Posted in Skills Table

Green Programming and Green Software

Green programming is an energy saving software technique. We are very much concerned about using the renewable sources of energy to save the earth, similarly, we should also use reusable software elements to create efficient code to reduce power consumption. Green programming is an attempt to build green software that will extend battery life for mobile platforms and improve energy efficiency. Increasing energy consumption by powerful computers, mobile devices etc has introduced the need to look for methods to reduce the energy use of these devices.

There are many projects that focus on more efficient or energy-saving power modes. To make energy efficient design, understanding the CPU’s defined energy states can help us. If the CPU is not actively processing the information it is said to be consuming less energy. The CPU has two states called C-states and P-states. C-states are core power states that tell us to which extent the processor is sleeping. C state corresponds to a state when the CPU is active, it is busy carrying out some task. Continue reading “Green Programming and Green Software”

Posted in Skills Table

Elasticsearch – Important terms

Elasticsearch is an open source search and analytics engine developed in Java. Elasticsearch admits JSON documents and is designed to take data from anywhere. So we don’t have to define fields and datatypes before adding data unlike in the case of relational databases. Communication with the search server is done with an HTTP REST API. ElasticSearch provides a REST API, which we will use to upload data, and later retrieve it. Elasticsearch is a near real-time search engine. If one makes a change to one of the index, this change is propagated throughout the cluster within one second unlike in relational databases. This makes it scalable. In elasticsearch, index corresponds to a database, type to a table, document to row, fields of a document to a column and mapping to a schema.

Near Real Time (NRT):

It is a near real-time search engine. If one makes a change to one of the index, this change is propagated throughout the cluster within one second unlike in relational databases. This makes it scalable.

Cluster:

It is a collection of one or more nodes, consists of one or more nodes making it extremely scalable. The collection of nodes contains all the data in the cluster. A Cluster provides indexing and search capability across all of the nodes, no need to worry on which node the document is stored. Clusters are identified by a unique name that defaults to elasticsearch. Continue reading “Elasticsearch – Important terms”

Posted in Skills Table

Installing Elasticsearch

Elasticsearch is an open source search and analytics engine developed in Java. It is developed by a company called elasticsearch B V but elasticsearch is open source search and analytics engine. ElasticSearch provides a REST API, which we will use to upload data, and later retrieve it. Elasticsearch is a near real-time search engine. Elasticsearch requires at least Java 8. It is recommended that you use the Oracle JDK version 1.8.0_73.

Installing Java

$ sudo add-apt-repository -y ppa:webupd8team/java

$ sudo apt-get update

$ sudo aptitude -y install oracle-java8-installer

$ java -version

Installing Elasticsearch

Windows users:

Download the zip package and unzip the zip package.

Run the elasticsearch.bat file

The zip and tar.gz packages are suitable for installation on any system:

$ curl L O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch5.0.0.tar.gz

$ tar xvf elasticsearch5.0.0.tar.gz

$ cd elasticsearch5.0.0/bin

$ ./elasticsearch Continue reading “Installing Elasticsearch”

Posted in Skills Table

Docker

Solomon Hykes started Docker in France and was released as open source in March 2013. Docker is a new container technology which makes it possible to run more apps on the same server and help in packaging programs. This technology allows the user to package an application with all its required parts, libraries and other dependencies into a standardized unit for development.

Generally, we use virtual machines(VM) which run inside a guest OS which in turn is powered on the server’s host OS. This consumes a lot of time for the applications to be open. It also uses different kernel and not the same kernel as of the host. Container technology is in which it shares the same kernel as that of the server which makes it faster for the application to open. Containers will include the application and all its dependencies which make it easy for it to run on any other machine.

Docker has three main parts, docker daemon, docker CLI and docker image index. Docker daemon is used to manage docker (LXC-Linux containers) containers on the host it runs. Docker CLI is used to command and communicate with the docker daemon. Docker image index is a repository (public or private) for docker images. Dockerfiles will work as scripts automating the building process of images. Once a docker file execution is over, a docker image will be formed which will be used to start a new container. Continue reading “Docker”