Friday, 16 May 2014

Find out IP Location of an Email Address

At times you must have felt the need to find out the IP location of a particular email you received.

Or maybe you were just plain curious. Or there was a suspicious mail saying you have won lakhs of pounds in lottery. Earlier, only professionals could track the IP location of an email. But not anymore. Now you can easily determine the geolocation and other relevant details of an email you got on Gmail, Yahoo! or Hotmail.


Below, we enunciate three easy steps using which users can find out the IP location of an email:

STEP 1

For Gmail: When you click open an email, you'll be able to see the 'Reply' button towards the right hand side. Click on the drop-down button attached to it and you'll see an option called 'Show Original'. Click on that and a new window will open.

For Yahoo! Mail: After clicking open a mail you'll see options like 'Delete', 'Reply', 'Forward', 'Spam' and 'Print'. Somewhere near to them, you'll see a 'Settings' icon. You have to select the 'View Full Header' option in that and a new window will open.

For Hotmail: Open the email whose IP location you want to
see. Towards the right, you'll see the 'Reply' option. You have to select the 'View Message Source' option from that. A new window will open.

The new window which opens contains a lot of alphanumeric text. "Received: from" is highlighted the red box.

STEP 2

The windows which open will contain a lot of alphanumeric text. You have to find the words “Received: from” in that text. Use CTRL+F option to find the words if you can't locate them manually. Along with these words you'll see a numeric IP address which may look something like: 209.85.141.23. Copy that text.

STEP 3

Now the final step is to find out the IP location using the information you dug out. Go to the site whatismyipaddress.com or ipaddress.com/ip_tracer/ and enter the copied IP address. You'll be able to see the sender's location, including the latitude and longitude. And what's more! You can even view the location on Google Maps!




So finding the location from where you received the mail is no more a task which only sleuths can pull off!

Tuesday, 31 December 2013

How to make an Operating System

Everyone in the IT field some day thinks of making an Operating System but they don't know how to make it. Also very less information is available on the internet on how to make a computer operating system.
They don't even know how to get started with the same so I am going to help you with that to get started with.
Firstly I want to tell you that there are two ways of making an operating system :
  1. Firstly, getting started with Linux Kernel which is open source and all the documentation is available with latest release of kernel at kernel.org which is a better way of starting with the development of kernel.
  2. Another way is to fully code the whole operating system from kernel to interface of Operating System but it requires a lot of work like learning various programming languages especially assembly languages. One must be experienced as it is quite difficult to program a boot loader. 
Now lets get focused on the first point and then in the second post we will discuss the second aspect thoroughly.

Development of operating system using Linux kernel :
  1. Firstly, the knowledge of Assembly languages or C Language is must. But knowing the two is an advantage.
  2. Then decide which type of operating system you want to make . The one with proper GUI for example Windows or making an operating system for a particular purpose in which the role of GUI is not much significant for example NAS Linux .
  3. Target a platform for your Operating System. Initially, target a single platform. I prefer AI-32 x86-x64 because it is commonly used in personal computers hence, it is commonly used as a target.
  4. Deciding which language to use, you can use Pascal and BASIC or go with C Language and Assembly. Assembly language is required to code some vital parts of the operating system which cannot be programmed with C/C++ Language.Usually, C/C++ Language is used to develop the major portion of the operating system.
  5. In case you choose C/C++, download a suitable compiler for the language to compile the source code and along with this you should know the various compiler settings , working of compiler, development in C Language compiler's managing scheme and compiler's ABI.
  6. You should have knowledge about various file formats like ELF, PE, COFF, binary etc. and also which format is copyrighted. Like, the format PE (.exe) used by Microsoft Windows is copyrighted.
  7. Now, decide the API you want to use. There are various API's available like Postfix , Prefix etc. Postfix is the most commonly used API because its documentation is available over internet. Unix OS uses Postfix API hence our OS will support Unix programs.
  8. Test your code at every stage after installing boot loader. Do not wipe your hard drive. Use boot loader like GRUB for dual boot your system until you finally develop your operating system.
  9. Start with small programs like displaying text or checking interrupts, taking input and output from hardware devices attached to the computer. After that move on to large programs like memory management or multitasking etc.
  10. Keep back up after the changes you have made or saved. While developing OS, there are possibilities of PC crash or problems with PC booting. It may lead to loss of data, so, make a habit of taking backups at every possible stage.
  11. Try to test your code on a virtual software like Vmware or Microsoft Virtual PC because it is hard to transfer your code to testing machine and rebooting your system for small changes.
  12. Try to design a user friendly operating system which is a part of both functioning and designing.
  13. Work in team to resolve errors quickly.
Hope, I am able to convey  my efforts to you. Friends!!! Keep searching and making new developments. Do not forget to share your valuable views with us.
In the next post, we will discuss example source codes for the development of Operating System.

Thank You. 

Structures (C Tutorial #21)

In most of the programming languages we firstly design the structure of the program which we want to make but we use other sources like UML ( i.e. Unified modeling languages ) which is used to make structure of complex programs of software. But C is having an interesting feature of defining structure i.e. also named as structures in C Language.
Structures are used with the help of keyword " struct ". This is only used to declare the variables used within the program by a particular function or where it is declared.
for example :
Structure to define the axis of a point :-
struct point {
int x;
int y;
};

This structure contains two variables of integer type namely,  x, y.
The only  difference between a function and structure is that , in structure we only declare the variables and used by creating variables of that structure type which we want to use but in functions we can also define the variable and code the statements of the program.
Structures can be used multiple times in a program and it depends on number of variables formed of that structure type.
for example :
Program to show the use of structures in C Language :-
#include <stdio.h>
#include <conio.h>
struct point {
int x;
int y;
};
void main (){
int a, b;
a = 10;
b = 20;
struct point p;
p.x = a;
p.y = b;
printf ( " value of x and y are : %d, %d ", p.x, p.y );
}
Output :
value of x and y are : 10, 20

To access the variables of the structure we use dot " . " operator followed by the variable name.
There are similar type in C Language named " union ". but the only difference between structure and union is the way of storing the values in memory.
Mostly we use structures in programming these days so I have discussed about that in above tutorial. I will also provide the explanation of union later.

Thank You

Friday, 27 December 2013

History of Programming Languages

This post is all about the History of Programming Languages.
A quick look at programming languages.

Year : 1957
Language : Fortran
Formula Translation, is the oldest language still in use. Created by John Backus, the language was developed to perform high-level scientific, mathematical, statistical computations.
The language is still used in aerospace, automotive industries, government, and research institutions.
Used by National Weather Service

A Look at the code :
*
C Hello World in Fortran 77
C ( lines must be 6 characters intended )
*
PROGRAM REELECT
WRITE ( UNIT = *, FMT = * )
' T Like Ike '
END

Year : 1959
Language : COBOL
Common Business Oriented Language is behind the majority of business transaction systems running credit card processing, ATMs, telephone and cell calls, hospital systems, government, automotive systems, and traffic signal systems. The COBOL development team, lead by Dr. Grace Murray Hopper, set out to create a uniform, user-friendly language for bussiness transactions.
Used by United States Postal Service

A Look at the Code :
IDENTIFICATION DIVISION.
PROGRAM-ID.
Standard Alert.
AUTHOR. Fabritius.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
PROCEDURE DIVISION.
DISPLAY " DANGER! DESTROY! ".
STOP RUN.

Year : 1964
Language : BASIC
Developed by students at Dartmouth College, Beginners All Purpose Symbolic Instruction Code was designed to be simplified language for those without a strong technical or mathematical background. A modified version, written by Bill Gates and Paul Allen became Microsoft's first product. It was sold to M.I.T.S. for the Altair.
Integer Basic Ran The Original APPLE 11 in 1977

A Look at the Code :
100 BEGIN
101 GOTO 102
102 PRINT " HOW ABOUT A NICE GAME OF CHESS ? "
103 END

Year : 1969
Language : C
C was developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. It was named "C" because its features were derived from an earlier language called "B".
C had become powerful enough that most of the Unix kernel was rewritten in C - one of the first operating system kernels implemented in a language other than assembly.
Linux Today is Based on C

A Look at the Code :
#include <stdio.h>
main ()
{
puts ("your first C program");
}

Year : 1970
Language : PASCAL
The language was named for Blaise Pascal, credited for inventing the first adding machine in 1641. Niklaus Wirth created Pascal as a teaching tool and it grew to into widespread commercial use.
Used by SKYPE ( Object Pascal )

A Look at the Code :
PROGRAM SageAdvice ( OUTPUT );
BEGIN
WRITELN ( ' Learning C instead of Pascal ' );
END.

Year : 1983
Language : C++
From Bell Labs, Bjarne Stroustrup modified the C language to C++ and created what many consider the most popular programming language ever. It's been listed in the top ten programming languages since 1986 and achieved Hall of Fame status in 2003.
Used by MS Office; Adobe PDF Reader; Firefox

A Look at the Code :
#include <iostream>
using namespace std;
int main ()
{
cout << "C++ is the grade you get when you're very, very slightly above average." << endl ;
return 0 ;
}

Year : 1987
Language : PERL
Larry Wall, a UNIX programmer, created Perl after attempting to extract data for a report and finding UNIX couldn't perform the operations he  needed. Practical Extraction Report Language was described by its inventor as a language for " getting your job done ".
Used by CRAIGSLIST

A Look at the Code :
#! /usr /bin /perl
# Hello World in Perl
print " I don't always write convoluted script, but when I do, I write them in Perl. \n " ;

Year : 1991
Language : PYTHON
Monty Python served as the inspiration for the name of this language. Guido Van Rossum developed python to fix problems in the ABC language and continues to serve as its lead designer.
Used by Google Search, Youtube, Nasa.

A Look at the Code :
# Hello World in Python
print " The airspeed velocity of an unladen European Swallow is approximately 11 meters per second. "

Year : 1993
Language : RUBY
Yukihiro "matz" Matsumoto named Ruby for July's birthstone. He developed the language by blending parts of his favourite languages, Perl, Smalltalk, Eiffel, Ada and Lisp.
Used by BASECAMP.

A Look at the Code :
" I'd rather be writing this in Java. \n " . display

Year : 1995
Language : PHP
Rasmus Lerdorf developed PHP to replace a set Perl scripts used to maintain his personal home page. Today, PHP has grown in to an integeral part of web architecture running on over 20 million websites.
Used by FACEBOOK

A Look at the Code :
<?php
echo " Fun Fact : PHP used to stand for ' Personal Home Page ' \n " ;
?>

Year : 1995
Language : JAVA
A team of Sun Microsystems developers lead by James Gosling created Java to run set top boxes for interactive television. Java now runson over 1.1 billion PCs worldwide and many websites can't function without it.
Used by 2004 Mars Rovers

A Look at the Code :
public class HelloWorld {
public static void main ( String[] args ) {
System.out.println(" I will now interrupt you with update notifications ");
}
}

Year : 1995
Language : Javascript
Java and Javascript are unrelated and have very different semantics.
JavaScript was originally developed by Brendan Eich of Netscape under the name Mocha. JavaScript uses syntax influenced by that of C.
Although meant to run on the client (browser) it is now finding use on the server as node.js. Also, AJAX is dependent on JavaScript.
Used by RACKSPACE ( Client Side )

A Look at the Code :
<html>
<body>

<script type="text/javascript">
document.write("<h1>This is a heading</h1>");
document.write("<p>This is a paragraph</p>");
</script>
</body>
</html>

Year : 2005
Language : Ruby On Rails ( Framework for programming language, Ruby)
Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by 37signals. Hansson first released Ruby on Rails as open source in July 2004, but did not share commit rights to the project until February 2005. It is now on version 3.0.7 and has more than 1,800 contributers.

A Look at the Code :
def section_link ( name, options )
if options[:action] == @current_action and options[:controller] == @current_controller
link_to ( name, options, :class => 'on') else
link_to ( name, options ) end
end

Thursday, 26 December 2013

Power of Cloud Computing

Gone are the days when you have worry about the accessibility of your data. When you need to carry your entire data with you in peripheral devices. Imagine you forgot to copy your important data in your mass storage media or you got struck in a situation where you need to access your PC and your PC isn’t in your reach. Well if we say that you can access your data, backup it on some other workstation and use it anytime you want from anywhere in the world and you need is an internet connection or you can access your PC from your mobile or your tablet or perform the same with other devices. Now you can do all the things we mentioned and that too easily. The technology which has made this possible is Cloud Computing.

Cloud Computing can be termed as a metaphor for interconnection of computers irrespective of Geographical factors, the interconnection can be of small, medium or large scalability. A Cloud is simply used as a metaphor for the internet, used to represent the worldwide network in computer network topologies.
You can access resources from the cloud anytime from anywhere and all you need is an internet connection. Sit back and relax coz you don’t need to worry about how things are going on behind the scenes – you can just simply purchase the desired IT solution as you would purchase any other utility. Because of this feature, cloud computing is also known as utility computing, or ‘IT on demand’.

Grid Computing v/s Cloud Computing
There is not much difference between Grid Computing and Cloud Computing. Grid Computing can sometimes be called as a type of Cloud Computing model. In Grid Computing large project is broken into small program and are executed on multiple computers in order to achieve a common objective. Grid Computing is mainly used for scientific purposes. Grid computing also does not make the optimum use of hardware. Whereas in Cloud Computing smaller programs are executed at the same time.

Service Models of Cloud Computing
Basically there are three main service models in Cloud Computing namely :
  1. Software as a Service (SaaS)
  2. Platform as a Service (PaaS)
  3. Infrastructure as a Service (IaaS)
Software as a Service (SaaS)
Software as a service (SaaS) is the type of service model in which required software is hosted on the cloud. SaaS service model is accessed by web browsers with the help of thin client architecture. SaaS is also widely regarded as “on-demand software” solution. SaaS providers usually charge a subscription fees on monthly or annual basis. It can also be availed on pay-per view basis.
Widely used instant messaging services like Yahoo, AOL, Google(GTalk) and VoIP Service like Skype are examples using SaaS.
IBM, Google, Amazon, Salesforce.com are the titans of the cloud industry using SaaS service model.
 
Platform as a Service (PaaS) 
Platform as a Service (PaaS) is the type of service model of cloud computing that delivers a platform for computing and a solution stack as a form of service offered. In PaaS, the user builds the software using tools and standard libraries provided by the service provider. The Service providers provide the user with hardware related stuff like networks, servers etc. The user regulates software deployment and configuration settings.  PaaS provides cost effective hosting solutions. It is also known as Cloudware.

Windows Azure, AWS Elastic Beanstalk, Mendix, Google App. Engine are the some of the leaders of PaaS service model.
 
Infrastructure as Service (IaaS) 
IaaS is the type of cloud computing service model which is mainly concerned with the hardware. IaaS refers to how the hardware resources are connected. IaaS service model provides  resources such as virtual-machine image-library, file-based storage, firewalls, load balancers, IP addresses and virtual local area networks (VLANs).
Infrastructure as Service (IaaS) is also known as Hardware as a Service (HaaS).
Amazon EC2, Google Compute Engine, HP Cloud, Rackspace Cloud etc. are the giants of IaaS service model.

Why switch to the Cloud ?
Due to some of the reason we have listed below it clearly shows why Cloud Computing is way better than traditional IT networking
  • Reduction in Capital Expenditure
  • Anytime, Anywhere data accessibility
  • Better utilization of Hardware Resources
  • On-Demand Scalability
  • Quick and Easy Implementation
  • Disaster/Backup Recovery

Limitations of Cloud Computing :  
Apart from being the real next generation computing model, there are certain limitations of Cloud Computing which are somewhat a serious concern
  • Security Issues – This is a prime concern in cloud computing. As you are connected to many devices at a time making it your personal cloud, there is a possibility that your data might be stolen because you are connected to various devices for accessibility.
  • Cost – Cloud computing architecture might be a cost effective computing method in future but initial cost of this architecture is generally high as compared to traditional computing architectures.
  • Possible Downtime – As businesses depend on Internet connection for cloud accessibility  their might be a possibility of server outrage. In 2011, many cloud servers suffered from this outrage.