Sunday, 22 December 2013

MIXING ROLLS

MIXING ROLLS

DEFINITION:
                         Mixing roll mixer is a type of mixer in which deformable  material and pastes are dmixed by intense shear by passing them b/w two smooth rolls turning at different speeds
Diagram





                                 

                                                    mixing rolls
  

Mixing and blending units
For equal homogenizing of rubber batches.
The stockblender consist of a pair of rolls. It is mounted above the roll nip and each roll is separately driven. Between the rolls of the mill and those of the stockblender a guide fork is situated, which is moved from side to side by a threaded spindle over the entire width of the mill.
Functioning: as soon as a cohesive slab has formed on the working roll of the mill, it is cut by the operator and fed through the guide forks to the stockblender. The stockblender transports the irregular slab and feeds it vertically downwards again into the mill roll nip. As these processes are effected alternately from the left and from the right side, an extremely good mixing effect is achieved due to the reciprocating motion of the fork.
Further advantages:
  • Considerable ease of operation as the usually repeated cutting and rolling operation of the compound does not have to be carried out any longer.
  • Favourable cooling conditions due to the increased travel of the compound.
  • Increased capacity of the mill.
working
A mill is typically assembled on a steel foundation plate, which is again set on rubber-pads or sound-metals adjustable, to isolate noise-levels to the building also to avoid tensions on the mill structure, precisely levelling out of the mill is very important for smooth operationTwo rigid pillars with removable tops carry the rolls, which are placed either in friction/bush bearings or high quality anti-friction roller bearings. Roller bearings are pretty much standard nowadays, as they allow for 20 – 30 % in power-savings. A lubrication system is no longer requiredAdjustment of the front roll used to be made by hand (manual by ratchet) or later motorized by worm gear.Nowadays hydraulic pistons adjust the rolls and also protect rolls from high forces that can build up in between the rolls (roll safety). They also open roll gap immediately when pushing the safety bar in front or back in case of emergency (required by European Safety standards CE).A mixing mill has 2 horizontal rolls set up back to back. They are made of ground chilled cast iron, with surface hardness ranging from 475 – 520 HV (Vickers hardness) up to 520 – 580 HV (or 68 - 72 HSD). The depth of hardened layer ranges from 10 to 16 mm.Rolls are made with a central bore for cooling through a spray-type lance (low cost type cooling) or peripheral drills, where bores are closer to the surface for better cooling and more equal distribution.The rotary joints connected to the spraying lance are supplied from tempering units to provide constant temperature during the mixing process.At the ends of the roll faces the roll nip is being limited by the compound guide cheeks. The compound guide cheeks of split design with “centre tongue” avoid lateral escape of compound from the working area in any case.

MULLER MIXER

DEFINITION:
                    The Muller Mixer consists of 2 to 4 heavy rollers that move under spring pressure within a pan. A scraping arrangement is also provided. The product dust formed during grinding is confined to within the equipment because of the provision of a hood type cover. The rollers rotate around their own axis and also about the axis of the pan. The number of rollers and their sizes can be customized to the specific applications. The equipment is most suitable for solid particle size reduction.A machine for the mechanical preparation of molding sands and core sands; it mixes silica sands and admixtures, such as molding clay, ground coal, water, and binders. Various types of mixers are used as mullers in the preparation of moldings and core-sand mixtures: standard batch-type mixers, double mixers, oscillating mixers, paddle mixers, and rollerless (vortex) mixers.

DIAGRAM:




                      Muller Mixer

WORKING:
                  Standard batch mixers have a fixed hopper, into which the material to be mixed is fed. Two smooth, vertical rollers move over the layer of material with a circular motion as plows guide the mixed material under the rollers. As the rollers move, the components of the mixture are mixed and become evenly distributed. After 3–12 min of mixing, the prepared mixture is removed through a discharge opening in the bottom of the hopper.
Double mixers have two pairs of vertical rollers and two hoppers interconnected in such a way that their sides form a figure eight. The molding materials are fed continuously into the first hopper, are mixed by the rollers and internal plows, and are then transferred by an external plow to the second hopper, where more mixing takes place. The prepared mixture is then removed from the second hopper by an external plow. Double mixers can produce up to 400 tons/hr, and the mixture can be removed either continuously or in batches.
An oscillating mixer has two or three horizontal rollers suspended on oscillators connected to a vertical shaft. As the shaft revolves, the rollers come close to the rubber-faced wall of the mixer’s hopper. The material to be mixed is fed by scrapers into the gap between the rotating rollers and the wall of the hopper. A batch is mixed in 1.5–3 min. The prepared mixture is removed through a small door in the wall of the hopper.
A paddle mixer may have one or two (parallel) shafts equipped with paddles mounted in a helical line and turning inside a trough. When the shaft turns, the mixture is mixed and simultaneously transported along the trough toward the outlet. Such machines can produce mixtures continuously or in batches.
A rollerless, or vortex, mixer has a vertical rotating shaft and a fixed hopper. The working elements are bent springs with heads at the end that press against the side of the hopper and mix the sand.

APPLICATIONS:
  • Ayurvedic & Herbal Products
  • Pharmaceutical
  • Minerals (Mica Powder Mixing)
  • Snuff
  • Batteries
  • Welding rod flux
  • Abrasives
  • Soaps
  • Putty
  • Paints
PUG MILLS

DEFINITION:
                         A pugmill or pug mill is a machine in which materials are simultaneously ground and mixed with a liquid. Industrial applications are found in pottery, bricks, cement and some parts of the concrete and asphalt mixing processes. A pugmill is a fast continuous mixer. A continuous pugmill can achieve a thoroughly mixed, homogeneous mixture in a few seconds. Mixing materials at optimum moisture content requires the forced mixing action of the pugmill paddles, while soupy materials might be mixed in a drum mixer
DIAGRAM:


                                                         PUG MILL

WORKING:
                        Pugmills provide excellent mixing for cement-treated materials because of the violent action of the mixing process. Typically a pugmill will have two horizontal shafts, each with dozens of paddles. The shafts turn in opposite directions, causing one set of paddles to turn clockwise, and the other set to turn counter-clockwise. This motion hurls the particles toward each other in a violent action that allows for uniform mixing.
The pugmill operates on a continuous basis, with an aggregate feed belt, water spray, and cement vane that are all computer controlled to provide accurate metering of the constituents. Pugmills can be set up with more than one silo, so cementitious products (such as portland cement and fly ash) can be blended at the plant.
The mixed material is taken by belt to a surge hopper (or gob hopper) where it will be dumped into a truck to be transported to the job site. The trucks will have tarps to cover the freshly mixed material so that moisture is not lost on the way to the site.
Pugmills on paving projects are typically portable, and can be set up and running in less that a day. Production for pugmills on these projects are normally in the range of 300 – 500 tons per hour.

APPLICATIONS:
  • Roller Compacted Concrete (RCC)
  • Cement Treated Base (CTB)
  • Cold Mix Asphalt
  • Hazardous Soil Remediation
  • Oil Well Drill Cutting Stabilization
  • Flowable Backfill
  • Flyash Stabilization
  • Lime Addition


















Sunday, 8 December 2013

How to write a virus

Question

How do I create a computer virus?

Answer

If you are interested in creating a computer virus, Trojan, worm, malware, or other malicious program as revenge, payback, or as a prank we suggest you rethink. Creating a virus that deletes files or causes other issues resolves nothing and will result in prosecution by the law. In other words, you could be fined or sent to prison.
Instead of creating computer viruses or other malware consider learning a computer programming language. You'll learn a lot more by learning one or more programming languages and become more qualified in getting hired at a company that designs programs or analyzes viruses. No one ever got hired because they wrote a computer virus.

Below is additional questions and answers that relate to this same subject.

I only want to write a virus to learn how they work.

You will learn a lot more about how computer programs and viruses work by learning to program than you ever will by writing and tinkering with computer viruses. A computer virus is only a program designed to do malicious tasks on the computer such as deleting files, inserting its code into other files, and copying itself to other places and computers accessible to the computer that is running the virus. By learning to program, you'll not only know how these tasks are possible, but also learn much more.

I need to test my virus scanner.

You can create test virus files that can be used to test your computers anti-virus scanner without having to create your own virus. See the below link for additional information and code on how to create a test virus.

If I create a good computer virus, I will be famous.

No, the only fame you may get is a brief news article or a picture of you being handcuffed and sent to prison. Once incarcerated it will go on your record and make it next to impossible to get hired at any respectable computer company and impossible to get hired by any government agency.

If you were to write a computer virus that was successful you would want to remain anonymous in fear of being prosecuted by the law. Also, if you think about it, almost everyone knows who is and what he has done for computers but have no clue about .

If I write a good virus, I'll get hired at a security firm or antivirus company.

False, no respectable security firm or antivirus company wants to affiliated with a virus or malware creator that infected potential customer computers. If you're interested in getting a job with a security firm or antivirus company you'll have a much better chance by learning to programming, becoming a participant in security discussions, being a beta tester, or finding vulnerabilities in programs and reporting them to the developers. Companies such as Google will even pay good money to anyone who reports bugs or security vulnerabilities about any of their products.

Can Computer Hope send me additional details, examples, or other information about creating viruses?

No, Computer Hope will not send anyone any other additional information about creating computer viruses, worms, or Trojans. This document was only created to help deter people from creating computer viruses and learn computer programming instead.

What programming languages should I learn?

Programming language such as C, C++, C#, Java, Perl, PHP, and Python are all good programming languages for new computer programmers. See the below link if you're not exactly sure what language to start learning first.

Fundamental of computer programming


Fundamental of Computer Programming

Objective

Functions, Pointers

Functions:
A function is a self-contained block of statements that perform a task of some kind.
Arguments are passed to the function, the function performs a task using the arguments, and the function returns a value back to the main program. Functions break a program into multiple parts, with each part performing a specific task.

Parts of a Function
The program multiplies two integers. Although multiplying two integers in C is very easy, a function is used here to demonstrate their use with a simple code example. The different parts of a function are commented.

Code Example:

#include <stdio.h>
#include<conio.h>
int mult(int n1, int n2);            // function declaration (function prototype)
int main()
{
int a,b,output;
printf("Enter integer a: ");
scanf("%d",&a);
printf("Enter integer b: ");
scanf("%d",&b);
output = mult(a,b);     //  function call
printf("a*b = %d\n",output);
getch();
return 0;
}

int mult(int n1, int n2)     // function definition
{
    int result;
    result=n1*n2; 
    return result;    // function return value
}

Declaration:
The function declaration informs the compiler about relevant properties of the function (much like a variable declaration). The declaration includes the type of value it returns (such as int or float), the function name, and a list of input parameters it expects.
It is possible for a function to not return a value. Such a function must use the "void" type. In a void function, the "return" statement is optional.
void message( );   //function declaration which return no value and takes no parameters
Call:
The function call is where the main ( ) calls the mult function. The variable input is passed to the function. Note that input is an int, which is what mult was expecting (as seen in the function declaration). The main ( ) becomes the “calling” function and mult becomes the “called” function.

Definition:
This is where the actual code for the function is located. Note that the first line in the definition of function matches the function declaration except for the semicolon.

Return Value:
This is the result that is passed back to the caller function. The return value must have the same type as the function; in this case the function mult has type int, so the return value must be of type int.

Pointers:
‘&’ is called address operator. Pointer operator available in C is “*”, called ‘value at address’ operator. It gives the value stored at a particular address. The “value at address” operator is also called “indirection” operator.
int main( )
{
int i = 3 ;
printf ( "\nAddress of i = %u", &i ) ;
printf ( "\nValue of i = %d", i ) ;
printf ( "\nValue of i = %d", *( &i ) ) ;
getch( );
return 0;
}
The output of the above program would be:
Address of i = 65524
Value of i = 3
Value of i = 3
Note that printing the value of *(&i) is same as printing the value of i.
The expression &i gives the address of the variable i. This address can be collected in a variable, by saying,
int *j;
j = &i ;
But remember that j is not an ordinary variable like any other integer variable. It is a variable that contains the address of other variable (i in this case). Since j is a variable the compiler must provide it space in the memory.
Pass by reference and pass by value
Whenever we called a function and passed something to it we have always passed the ‘values’ of variables to the called function. Such function calls are called ‘calls by value’. By this we mean is, on calling a function we are passing values of variables to it. The examples of call by value are shown below:
sum = calsum ( a, b, c ) ;

Instead of passing the value of a variable, pass the location number (also called address) of the variable to a function. Such functions calls are called ‘call by reference’.

Code Example:

//Call by value
void swapv(int x , int y);
int main( )
{
int a = 10, b = 20 ;
swapv ( a, b ) ;
printf ( "\na = %d b = %d", a, b ) ;
getch( );
return 0;
}

void swapv ( int x, int y )
{
int t ;
t = x ;
x = y ;
y = t ;
printf ( "\nx = %d y = %d", x, y ) ;
}
The output of the above program would be:
x = 20 y = 10
a = 10 b = 20
Note that values of a and b remain unchanged even after exchanging the values of x and y.
//call by reference
       void swapv(int x , int y);
int main( )
{
int a = 10, b = 20 ;
swapr ( &a, &b ) ;
printf ( "\na = %d b = %d", a, b ) ;
getch( );
return 0;
}
swapr( int *x, int *y )
{
int t ;
t = *x ;
*x = *y ;
*y = t ;
}
The output of the above program would be:
a = 20 b = 10
Note that this program manages to exchange the values of a and b using their addresses stored in x and y.



TASKS:

Write a function to calculate the factorial value of any integer entered through keyboard. Function receive integer value in main ( ) and prints results in function.


Create a simple calculator using functions. Write separate functions for addition, multiplication, subtraction, division, modulus and power function. Each function takes three arguments, two of the arguments are integers and third argument is an integer pointer argument which stores the result of operation on first two arguments. Each function declaration and definition contain return-type void.

Game in c language code

Mini project snake game in c

codeblock

#include <stdio.h>
#include <time.h>

#include <stdlib.h>

#include <conio.h>

#include<time.h>

#include<ctype.h>

#include <time.h>

#include <windows.h>

#include <process.h>

#define UP 72

#define DOWN 80

#define LEFT 75

#define RIGHT 77

int length;

int bend_no;

int len;

char key;

void record();

void load();

int life;

void Delay(long double);

void Move();

void gotoxy(int x, int y);

void GotoXY(int x,int y);

void Bend();

void Boarder();

void Down();

void Left();

void Up();

void Right();

void ExitGame();

int Scoreonly();

struct coordinate{

int x;

int y;

int direction;

typedef struct coordinate coordinate;

coordinate head, bend[500],food,body[30];

int main()

char key;

Print();

system("cls");

load();

length=5;

head.x=25;

head.y=20;

head.direction=RIGHT;

Boarder();

Food(); //to generate food coordinates initially

life=3; //number of extra lives

bend[0]=head;

Move(); //initialing initial bend coordinate

return 0;

void Move()

int a,i;

do{

Food();

fflush(stdin);

len=0;

for(i=0;i<30;i++)

body[i].x=0;

body[i].y=0;

if(i==length)

break;

Delay(length);

Boarder();

if(head.direction==RIGHT)

Right();

else if(head.direction==LEFT)

Left();

else if(head.direction==DOWN)

Down();

else if(head.direction==UP)

Up();

ExitGame();

}while(!kbhit());

a=getch();

if(a==27)

system("cls");

exit(0);

key=getch();

if((key==RIGHT&&head.direction!=LEFT&&head.direction!=RIGHT)||(key==LEFT&&head.direction!=RIGHT&&head.direction!=LEFT)||(key==UP&&head.direction!=DOWN&&head.direction!=UP)||(key==DOWN&&head.direction!=UP&&head.direction!=DOWN))

bend_no++;

bend[bend_no]=head;

head.direction=key;

if(key==UP)

head.y--;

if(key==DOWN)

head.y++;

if(key==RIGHT)

head.x++;

if(key==LEFT)

head.x--;

Move();

else if(key==27)

system("cls");

exit(0);

else

printf("\a");

Move();

void gotoxy(int x, int y)

COORD coord;

coord.X = x;

coord.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

void GotoXY(int x, int y)

HANDLE a;

COORD b;

fflush(stdout);

b.X = x;

b.Y = y;

a = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(a,b);

void load(){

int row,col,r,c,q;

gotoxy(36,14);

printf("loading...");

gotoxy(30,15);

for(r=1;r<=20;r++){

for(q=0;q<=100000000;q++);//to display the character slowly

printf("%c",177);}

getch();

void Down()

int i;

for(i=0;i<=(head.y-bend[bend_no].y)&&len<length;i++)

GotoXY(head.x,head.y-i);

if(len==0)

printf("v");

else

printf("*");

body[len].x=head.x;

body[len].y=head.y-i;

len++;

Bend();

if(!kbhit())

head.y++;

void Delay(long double k)

Score();

long double i;

for(i=0;i<=(10000000);i++);

void ExitGame()

int i,check=0;

for(i=4;i<length;i++) //starts with 4 because it needs minimum 4 element to touch its own body

if(body[0].x==body[i].x&&body[0].y==body[i].y)

check++; //check's value increases as the coordinates of head is equal to any other body coordinate

if(i==length||check!=0)

break;

if(head.x<=10||head.x>=70||head.y<=10||head.y>=30||check!=0)

life--;

if(life>=0)

head.x=25;

head.y=20;

bend_no=0;

head.direction=RIGHT;

Move();

else

system("cls");

printf("All lives completed\nBetter Luck Next Time!!!\nPress any key to quit the game\n");

record();

exit(0);

void Food()

if(head.x==food.x&&head.y==food.y)

length++;

time_t a;

a=time(0);

srand(a);

food.x=rand()%70;

if(food.x<=10)

food.x+=11;

food.y=rand()%30;

if(food.y<=10)

food.y+=11;

else if(food.x==0)/*to create food for the first time coz global variable are initialized with 0*/

food.x=rand()%70;

if(food.x<=10)

food.x+=11;

food.y=rand()%30;

if(food.y<=10)

food.y+=11;

void Left()

int i;

for(i=0;i<=(bend[bend_no].x-head.x)&&len<length;i++)

GotoXY((head.x+i),head.y);

if(len==0)

printf("<");

else

printf("*");

body[len].x=head.x+i;

body[len].y=head.y;

len++;

Bend();

if(!kbhit())

head.x--;

void Right()

int i;

for(i=0;i<=(head.x-bend[bend_no].x)&&len<length;i++)

//GotoXY((head.x-i),head.y);

body[len].x=head.x-i;

body[len].y=head.y;

GotoXY(body[len].x,body[len].y);

if(len==0)

printf(">");

else

printf("*");

/*body[len].x=head.x-i;

body[len].y=head.y;*/

len++;

Bend();

if(!kbhit())

head.x++;

void Bend()

int i,j,diff;

for(i=bend_no;i>=0&&len<length;i--)

if(bend[i].x==bend[i-1].x)

diff=bend[i].y-bend[i-1].y;

if(diff<0)

for(j=1;j<=(-diff);j++)

body[len].x=bend[i].x;

body[len].y=bend[i].y+j;

GotoXY(body[len].x,body[len].y);

printf("*");

len++;

if(len==length)

break;

else if(diff>0)

for(j=1;j<=diff;j++)

/*GotoXY(bend[i].x,(bend[i].y-j));

printf("*");*/

body[len].x=bend[i].x;

body[len].y=bend[i].y-j;

GotoXY(body[len].x,body[len].y);

printf("*");

len++;

if(len==length)

break;

else if(bend[i].y==bend[i-1].y)

diff=bend[i].x-bend[i-1].x;

if(diff<0)

for(j=1;j<=(-diff)&&len<length;j++)

/*GotoXY((bend[i].x+j),bend[i].y);

printf("*");*/

body[len].x=bend[i].x+j;

body[len].y=bend[i].y;

GotoXY(body[len].x,body[len].y);

printf("*");

len++;

if(len==length)

break;

else if(diff>0)

for(j=1;j<=diff&&len<length;j++)

/*GotoXY((bend[i].x-j),bend[i].y);

printf("*");*/

body[len].x=bend[i].x-j;

body[len].y=bend[i].y;

GotoXY(body[len].x,body[len].y);

printf("*");

len++;

if(len==length)

break;

void Boarder()

system("cls");

int i;

GotoXY(food.x,food.y); /*displaying food*/

printf("F");

for(i=10;i<71;i++)

GotoXY(i,10);

printf("!");

GotoXY(i,30);

printf("!");

for(i=10;i<31;i++)

GotoXY(10,i);

printf("!");

GotoXY(70,i);

printf("!");

void Print()

//GotoXY(10,12);

printf("\tWelcome to the mini Snake game.(press any key to continue)\n");

getch();

system("cls");

printf("\tGame instructions:\n");

printf("\n-> Use arrow keys to move the snake.\n\n-> You will be provided foods at the several coordinates of the screen which you have to eat. Everytime you eat a food the length of the snake will be increased by 1 element and thus the score.\n\n-> Here you are provided with three lives. Your life will decrease as you hit the wall or snake's body.\n\n-> YOu can pause the game in its middle by pressing any key. To continue the paused game press any other key once again\n\n-> If you want to exit press esc. \n");

printf("\n\nPress any key to play game...");

if(getch()==27)

exit(0);

void record(){

char plname[20],nplname[20],cha,c;

int i,j,px;

FILE *info;

info=fopen("record.txt","a+");

getch();

system("cls");

printf("Enter your name\n");

scanf("%[^\n]",plname);

//************************

for(j=0;plname[j]!='\0';j++){ //to convert the first letter after space to capital

nplname[0]=toupper(plname[0]);

if(plname[j-1]==' '){

nplname[j]=toupper(plname[j]);

nplname[j-1]=plname[j-1];}

else nplname[j]=plname[j];

nplname[j]='\0';

//*****************************

//sdfprintf(info,"\t\t\tPlayers List\n");

fprintf(info,"Player Name :%s\n",nplname);

//for date and time
time_t mytime;

mytime = time(NULL);

fprintf(info,"Played Date:%s",ctime(&mytime));

//**************************

fprintf(info,"Score:%d\n",px=Scoreonly());//call score to display score

//fprintf(info,"\nLevel:%d\n",10);//call level to display level

for(i=0;i<=50;i++)

fprintf(info,"%c",'_');

fprintf(info,"\n");

fclose(info);

printf("wanna see past records press 'y'\n");

cha=getch();

system("cls");

if(cha=='y'){

info=fopen("record.txt","r");

do{

putchar(c=getc(info));

}while(c!=EOF);}

fclose(info);

int Score()

int score;

GotoXY(20,8);

score=length-5;

printf("SCORE : %d",(length-5));

score=length-5;

GotoXY(50,8);

printf("Life : %d",life);

return score;

int Scoreonly()

int score=Score();

system("cls");

return score;

void Up()

int i;

for(i=0;i<=(bend[bend_no].y-head.y)&&len<length;i++)

GotoXY(head.x,head.y+i);

if(len==0)

printf("^");

else

printf("*");

body[len].x=head.x;

body[len].y=head.y+i;

len++;

Bend();

if(!kbhit())

head.y--;

Baba bulleh shah

Early life and background

Bulleh Shah is believed to have been born in 1680, in the small village of Uch, Bahawalpur, Punjab, now in Pakistan . His ancestors had migrated from Bukhara in modern Uzbekistan.
At the age of six months, his parents relocated to Malakwal. There his father, Shah Muhammad Darwaish, was a preacher in the village mosque and a teacher. His father later got a job in Pandoke, about 50 miles southeast of Kasur. Bulleh Shah received his early schooling in Pandoke, and moved to Kasur for higher education, to become a student of the prominent professor, Ghulam Murtaza. He also received education from Maulana Mohiyuddin. His spiritual teacher was the eminent Sufi saint, Shah Inayat Qadiri.
Little is known about Bulleh Shah's direct ancestors, except that they were migrants from Uzbekistan. However, Bulleh Shah's family was directly descended from the Prophet Muhammad.

Career

Tomb of Baba Bulleh Shah, Kasuri
A large amount of what is known about Bulleh Shah comes through legends, and is subjective; to the point that there isn’t even agreement among historians concerning his precise date and place of birth. Some "facts" about his life have been pieced together from his own writings. Other "facts" seem to have been passed down through oral traditions.
Bulleh Shah practiced the Sufi tradition of Punjabi poetry established by poets like Shah Hussain (1538 – 1599), Sultan Bahu (1629 – 1691), and Shah Sharaf (1640 – 1724).
Bulleh Shah lived in the same period as the famous Sindhi Sufi poet , Shah Abdul Latif Bhatai (1689 – 1752). His lifespan also overlapped with the legendary Punjabi poet Waris Shah (1722 – 1798), of Heer Ranjha fame, and the famous Sindhi Sufi poet Abdul Wahad (1739 – 1829), better known by his pen-name, Sachal Sarmast (“truth seeking leader of the intoxicated ones”). Amongst Urdu poets, Bulleh Shah lived 400 miles away from Mir Taqi Mir (1723 – 1810) of Agra.

Poetry Style

The verse form Bulleh Shah primarily employed is called the Kafi, a style of Punjabi, Sindhi and Siraiki poetry used not only by the Sufis of Sindh and Punjab, but also by Sikh gurus.
Bulleh Shah’s poetry and philosophy strongly criticizes Islamic religious orthodoxy of his day.

A Beacon of Peace

Bulleh Shah's time was marked with communal strife between Muslims and Sikhs. But in that age Baba Bulleh Shah was a beacon of hope and peace for the citizens of Punjab. While Bulleh Shah was in Pandoke, Muslims killed a young Sikh man who was riding through their village in retaliation for murder of some Muslims by Sikhs. Baba Bulleh Shah denounced the murder of an innocent Sikh and was censured by the mullas and muftis of Pandoke. Bulleh Shah maintained that violence was not the answer to violence.
Bulleh Shah also hailed the Sikh Guru, Guru Tegh Bahadur as a ghazi (Islamic term for a religious warrior).

Humanist

Bulleh Shah’s writings represent him as a humanist, someone providing solutions to the sociological problems of the world around him as he lives through it, describing the turbulence his motherland of Punjab is passing through, while concurrently searching for God. His poetry highlights his mystical spiritual voyage through the four stages of Sufism: Shariat (Path), Tariqat (Observance), Haqiqat (Truth) and Marfat (Union). The simplicity with which Bulleh Shah has been able to address the complex fundamental issues of life and humanity is a large part of his appeal. Thus, many people have put his kafis to music, from humble street-singers to renowned Sufi singers like the Waddali Brothers and Abida Parveen, from the synthesized techno qawwali remixes of UK-based Asian artists to the rock band Junoon.
Bulleh Shah’s popularity stretches uniformly across Hindus, Sikhs and Muslims, to the point that much of the written material about this philosopher is from Hindu and Sikh authors.
[edit]Modern Renditions
In the 1990s Junoon, Asia's biggest rock band from Pakistan, rendered such poems as Aleph (Ilmon Bas Kareen O Yaar) and Bullah Ki Jaana. In 2004, Rabbi Shergill successfully performed the unlikely feat of turning the abstruse metaphysical poem Bullah Ki Jaana into a Rock/Fusion song, which became hugely popular in India and Pakistan. The Wadali Bandhu, a Punjabi Sufi group from India, also released a version of Bullah Ki Jaana on their album Aa Mil Yaar...Call of the Beloved. Another version was performed by Lakhwinder Wadali titled simply Bullah. Bulleh Shah's verses have also been adapted and used in Bollywood film songs. Examples include the songs "Chaiyya Chaiyya" and Thayya Thayya in the 1998 film Dil Se. The 2007 Pakistani movie Khuda Kay Liye includes Bulleh Shah's poetry in the song Bandeya Ho. A 2008 film, 'A wednesday', had a song, "Bulle Shah, O yaar mere" in its soundtrack. In 2009, Episode One of Pakistan's Coke Studio Season 2 featured a collaboration between Sain Zahoor and Noori, "Aik Alif".

Death

He died in 1757, and his tomb is located in Kasur, Pakistan.

How to multiply faster

Today we're going to kick things off by learning 5 tips that will help you multiply numbers quickly in your head and become the mental math wizard in your family.

Tip #1: Multiplying by Powers of 5
There are times in life when you just get lucky. It turns out that one of those lucky little moments occurs each and every time you need to multiply one number by another number that happens to be a power of 5. For example, let's say you need to find 36 x 5 (which, of course, fits the bill since 5 is the first power of 5). The trick is to recognize the fact that 5 = 10 / 2. Why is that helpful? Because it means that we can find 36 x 5 by instead finding 36 x 10 (which is easy) and then dividing the result by 2. In this case, 36 x 10 = 360, and 360 / 2 = 180. Impressively speedy, right?

But we're not done! What if we instead need to solve the problem 36 x 25? Well, this trick is all about multiplying by powers of 5…and 25 = 5^2 is certainly that. So how does it work in this case? The trick here is to recognize that 25 = 100 / 4. And in general, the trick with powers of 5 is to recognize that they are always some multiple of 10 divided by an integer. This tells us that 36 x 25 = 36 x 100 / 4. Since we can quickly figure out that 36 x 100 = 3,600, it's easy to find that 36 x 25 = 3,600 / 4 = 900.

Tip #2: Squaring Numbers Ending in 5
Our fun with 5s doesn't end there. We talked about how to square numbers in your head before, but it turns out that things get a whole lot easier when squaring a two-digit number that ends in 5. Here's the trick: Any time you square a two-digit number that ends in 5, the last digits of the answer will be 25 and the digits before that are given by multiplying the first digit of the number by the number that's one greater.

Google voice

Google Voice Search, part of the Google Search app for Android and iOS, can now respond to many queries in French, German, and Japanese in the language that they were originally asked.

Google did not immediately respond to questions about what languages are planned next, or why these three languages were chosen. However, given how many people speak Hindi, Spanish, Mandarin, and Cantonese, it would stand to reason that they would be high on Google's list for upcoming support.