Sunday, 5 July 2020

Agile Practices

Pair Programming

Pair Programming is one of agile development techniques in which two programmers work together on the same task at one computer. One programmer is known as driver whose responsibility is to code the software program, and other one is called a navigator whose is responsible for brainstorming such as thinking about overall structure of the software code and looking for errors in the code

Small Releases

Small releases is an Agile technique in which product development is divided into iterations, where each iteration is of one to four weeks. The customer can evaluate the small releases and give his/her feedback and recommends changes if required.

Small Releases Principle

As Small releases are entirely based on rapid product delievery, relies on teamwork, strong team & customer communicatoon, and responding to change, which are core components of Agile

Small Releases Advantage

The customer can evaluate the small releases and give his/her feedback and recommends changes if required.

Continuous Integration

Continuous Integration (CI) is an Agile Practice that deals with the building (coding), compiling (integrating all the computer programs) and testing of the software multiple times a day.

CI Advantages

CI helps the software organizations to focus more on small and frequent releases to enhance team productivity and software quality

Scrum

Scrum is one of the most widely used Agile practices especially in object-oriented circles that stresses on project management concepts

Scrum Phases

Scrum consists of three phases such as pre-sprint, sprint and post-sprint planning. In Pre-sprint planning phase, all work to be done is kept in the release backlog. The prioritized tasks, features, and functionalities are selected from the release backlog and included in the sprint backlog. In sprint phase, sprint backlog is handed to teams and team members choose the tasks and start development

Scrum Advantages

There are certain pros Scrum.  Scrum is quick and adapt changes quickly to achieve quality product The customer satisfaction in Scrum is high as daily scrum meeting is held in which customer, team and Scrum master participates to discuss the project progress In Scrum, scope and work estimation is easy, and ideal for accumulating requirements and rapidly changes.

Scrum Disadvantages

The weakness of Scrum includes external client will have to be available in scrum meetings and at the time of testing deliverables

Sunday, 19 February 2017

Techniques for Solving C10K Problem

The C10K problem is the problem related to optimization of network sockets when it comes to the handling a plethora of clients on a server at the same time .The concept of C10K was introduced by Dan Kegel in 1999 . C10K stands for “handling ten thousand clients on a Gigabit Ethernet connection at the same time”.For efficient output, it is very important that connections should be scheduled in efficient manner. So too be very precise, C10K problem deciphers server’s inadequacy of scaling 10,000 clients due to resource debilitation. Servers usually follow thread per client model. Servers get befuddled when pooled threads take gigantic time on blocking the operations. Operating system normally allocates 1MB for implementation of native threads. As a result, scalability can easily be affected by depleting server’s CPU with too much context switching

Techniques for CK10 Problem

There are certain techniques to handle C10K problem which are as follow.

  1.             Event driven Input
  2.       Scaling Node technique
  3.       Server default configuration technique
For dealing with event driven I/O, server usually works in single threaded mechanism. For listening new events, we generate single event loop. This loop handles the data in and data out mechanism in well apt manner. This approach really helps to cater concurrent connections running on server. In Linux systems, it is dependent on epoll () which is the mechanism for event notification.The main responsibility of epoll () is to keep tracking the multiple file descriptors to analyze any possibility of I/O . Single threaded solution is easy to code because in multiple threads, we usually come across the issues like race conditions. Event driven approach is of significant importance in reducing the CPU’s usage of used applications. This really helps the modern hardware to achieve more energy, and torridity saving. All these aspects really help to counter C10K issue. Nginx web/proxy server is the prominent example of event driven mechanism, and it is much easier as compare to web servers such as Apache. The Nginx is well known for stability, low resource consumption, and for high performance . In modern era, libAttachedSQL is also following the event driven I/O but are doing at client side. This really helps the client applications to handle many clients on single thread in well apt manner


The Scalability means the capability of the request to achieve the performance related goals under intense load . The C10K problem provides the path to achieve the key design goal as far as designing the modern applications are concern like Nodes. Nodes are basically designed to implement the scalable applications that helps to cater the CK10 problem. So, here main motif is to create toolkit from these nodes connected through standard protocols. 10MB memory is allocated to each new node .There are two major scaling which are as follow.
*      Horizontal Scaling
*      Vertical Scaling


Horizontal scaling basically reciprocates to the load by incrementing or decrementing the network resources.


Vertical scaling deals with the increasing the single server’s capability of   handling mammoth load such as storage space etc. The scalable node technique is actually the utilization of both horizontal, and vertical scaling techniques either in batch, or individually. TheYouTube, scalable application that deals with billions of request by using MYSQL, Apache, and Python programming language. Facebook is also highly scalable application that deals with millions of requests at the same time

 Server Default Configuration Technique


In modern era, tools like Nginx, Python; MySQL, Apache, and PHP have phenomenal job in deal with large number of clients at a same time. So there is no need to redesign the intrinsic nature of all these applications to handle the large traffic in well apt manner. All required is to combine all these tools, and configure the servers by default mode to produce even more effective results as far as dealing with C10K problem is concern. Every web application constitutes of two parts. Static, and dynamic part. Key role of dynamic part is to deliver the pages in assembled manner, and represent that in the form of content.The static portion constitutes of serving files. Both these parts are independent from each other. It is important to note that dynamic portion takes more CPU cycles. Nginx suits to deliver static files, and platform like WordPress deals the dynamic part in efficient manner.

The WordPress plugin can be used for editing the images. The server in the backend always resizes the images into small ones that is appropriate enough to be appealing. Non-technical user uploads a picture into the website through mobile phone generally have no idea images of range 2-6MB are usually burden for servers. The WordPress plugin, by default, resizes the image into kilobytes with high quality. If user wants to resize 6MB file then he/she will have to accommodate the settings to do this job. This is where default mode ameliorates for quality performance.

The WordPress makes gigantic decisions for the user on just one click install. To achieve desired results, we opt for best database, web server; Operating System, but still we can’t configure in apt manner to deal with C10K. This is why it is very high time to have opinionated, and stalwart defaults. If the servers are on by default then it will make sure of most of the RAM, and CPU. This will really facilitate the casual user to enjoy the technology. Moreover, it will adhere the C10K issue in more phenomenal manner. So all require is to make all these configurations the default to cater C10K issue in more compact manner

Saturday, 11 February 2017

4 amazing hidden Easter Egg in Software

A secret message or screen buried in an application. Easter eggs are normally used to display humorous messages. The sequence of keystrokes play important role in viewing Easter Egg,  

The examples of an Easter Egg are as under            
                  
 Do a barrel roll 
  It includes two steps which are as follow
  • · Go to Google.com 
  •   Type do a barrel roll in the search bar

.Easter Egg in Picasa

Google has created an Easter egg in Picasa. Simply open desktop software and press Ctrl + Shift + Y, a toy bear image will appear. Every time bear will be displayed when we will press Ctrl + Shift + Y repeatedly.

Easter Egg in Skype

Skype contains very hilarious Easter egg .If we open the chat, then type “(drunk)” a hidden emoticon appears  







Easter egg in UTorrent
A Tetris game is hidden in the uTorrent software. Just we need to do is to click the “Help” menu and then go to “About”. Press T key and the game will appear


Friday, 10 February 2017

"Procrastination is the thief of time"

Famous adage said by Edward Young and I quote ‘Procrastination is the thief of time ‘indeed brim a glockenspiel for everyone. It is loud and clear that time is an indispensable facet of life as it roars “Switch in time saves nine”. Time is such an exigent thing, once it out the window, is lost till doomsday. Only a sensible person knows worth of time. When any person is capable of wrap up his/her work on time but he/she intentionally impediment his/her work and takes more time, that’s we call procrastination.

Procrastination is a multifarious behavior that affects everyone to some degree. If we are punctual and perform activities on time, then surely society will give us mammoth respect in return because ability to remain undeviating with our solid gold that requires massive will power, discipline and substantial determination is of paramount importance. The more we will procrastinate, more we will lose and ultimately things will turn to calamity because once time is lost, it can’t be retrieved. Stressing on this crucial issue, Holmes said and I quote “Pick my left pocket of its silver dime. But spare die right, for it holds my golden time”. That’s mean, Holmes was at beck and call to renounce his sliver, but not his time because time is having more worth than acquiring the sliver.

Student who wastes his/her ample time in wrong activities always suffer a lot .The students are unable to get good grades in their examinations in case of procrastination. There is a huge sense of carrying through for those people who are regular in their work especially in organization . The life offers us many chances and we need to grasp these opportunities before it’s too late. If the nature of work is touring, then person should design and manage his plan well in advance. He needs to prioritise his work because in this way he can get ample time by mow down extra distance and time. If person is not managing his travel plans according to time, ultimately that results cataclysm. So it is very important to understand dynamics of time during trips or travelling

 Procrastination is indeed thief of time because it steals away the delicacy of what lastingness of time from us. Time is tough nut to crack as far as humans are concern. Sluggish events in our lives always cost us because of gigantic detrimental outcomes. There are so many ways to overcome procrastination but first we have to understand the causes that could be of laziness, distraction or pathetic attitude.Time is the best medicine that heals all wounds. We have to do our work on time because time waits for none. Those people who ruin their time by doing nothing or waste in wrong doings, There is one famous maxim that suits best on them that “killing time is not a murder; it is a suicide”. So it is loud and clear that procrastination is harming a person itself and only wise make use of it fruitfully. Some people always look askance that they have no time to do anything .That is totally apocryphal because only wise person plans his activities according to his time .Time is powerful because it conquers all and we have no choice but to obey it .Each day is precious and each second is unique that deserves living to the maximum.


Waterfall Process Model

The Waterfall Model is one of the most important types of plan driven software engineering approach. The Waterfall Model is one of debilitated model that includes following steps 


Steps of Waterfall Model 

Requirement Gathering
In this step, we design our plan and according to that plan, we specify our requirements. What are our goals and what are our constraints. This is not an easy step. It requires a lot of attention and devotion. After having complete  analysis, we specify our requirements
Software/System Design
This step deals with an identification of system design based on initial requirement gathering. This phase is very important. The software/system design should completely reflect the requirements of the system. 
Coding & Unit Testing
 In this step, programmer writes a code based on proposed design. Each module of the system will be tested individually. For example, Admission and attendance system are two different modules of the student portal. The progammers write code of each module and each module will be tested individually. 
System Testing
 All modules are integrated and then tested to make sure that system is working as per defined standards 
Deployment
 The system is deployed in the practical  environment and then tested to make sure that it is working as per requirements or not. 

Condition when to use Waterfall Model
  1.   when requirements are understood
  2.   When our requirements are fixed and unambiguous

Alternatives of waterfall
The alternatives of waterfall include rapid prototyping that furnish user participation in early stages or to cater those functionalities of system that emerges. In rapid prototyping, all the specifications are being taken and we delicately go through that specifications. Moreover, in prototyping, we can redefine the requirements with changing requirements. 
 Pros of waterfall model
  • Waterfall model is very simple model
  • Stages are well-defined 
  • Documentation of waterfall is available  

 Cons of waterfall model
  •  Waterfall model does not cater changing requirements
  •  Percentage of  precarious errors is very much high
  •  Waterfall model is not suitable for sophisticated software.
  • Costly 

*      




Ubiquitous Web

 Ubiquitous means something that seems to be present everywhere and often rendezvous. In early 19th century, Mark Weiser introduced a word ubiquitous that refers the world where people are beleaguer by such kind of brilliant devices that are highly supportive. Perfect examples of these devices are mobile phones and tabs. Ubiquitous web bestow people ingess wherever and whenever they want to get with such a magnificent applications that are really flabbergasted and user-friendly 

 Applications mobility is one of the most significant behavior of ubiquitous that bring comfort for a user. The user can switch again to get access to the same application. In Ubiquitous applications, user can identify resources. Moreover, user can draw a plan that decipher in managing these resources within context or time frame for that sessions and then we implement the plan to achieve desired results.

    Features of Ubiquitous Web
    The key features of Ubiquitous web are as under.
  1. Ubiquitous web is dynamical
  2. User preferences and reconcile environmental conditions
  3.  Ubiquitous web responds to the events exactly from the servers over the network
  4.   Ubiquitous web enables multiple applications  in devices   
  5.  Ubiquitous web manages resources mainly in term of temporary session

Semantic Web

The Semantic web is the kind of web that elucidates the information in such a splendid way that the computer can easily pick and understand. The Semantic web is basically an  appurtenance of current web that includes information required for well apt communication mechanism between the computer and people. There is a myth that semantic web is all about consists of links between different web pages, which is totally apocryphal. The Semantic Web not only includes the links between different web pages,but it also deals with an amplification between things and premises of things.

Meta data  is all about data about data  One of the best advantage of the semantic web is that it arranges the content of web pages in a systematic way. The Semantic web  is not a set asunder web but it is an annex of current web. To make Semantic web count or to make it functional able, all properly structured collections must in reach to the Computers.

Tools for Semantic Web 

There are two important readable machines/ tools for Semantic Web
XML
    
 XML stands for extensible Marking Language. It is similar as HTML in which we add tags that are  invisible to the people, but are visible to the computer.

RDF

RDF is an abbreviation of resource description framework. It is a language that elucidates information and as well as resources on web. The RDF contains subject, object and property. The Subjects and objects are identified by universal resource identifier (URI)