MagicWand

-
Looking for MagicWand ? click here
-

Wednesday, July 3, 2013

A simple trick to view YouTube's restricted videos

Sometimes we come across some YouTube videos which have some kind of regional or other restrictions imposed on it and makes us unable to watch it. These restrictions sometimes demands the user to log in to continue further and sometimes video remains inaccessible even after getting logged in.

In this post I am going to describe a very very simple trick which one can use to watch any kind of restricted YouTube video very easily. Basically we are going to take advantage of YouTube API and going to embed the desired video outside the restricted domain (just ignore if this statement sounds alien to you :p).

So to access the restricted video you just have to make a little change in the video's URL (the link which appears in browser's address bar, when you open the video; see picture below), and you are good to go.


As you will notice that the video link would be some thing like
www.youtube.com/watch?v=<video_code>
just make a little modification and change the link to
www.youtube.com/v/<video_code>
and you are done (yes as simple as this!!). Just copy back this modified URL in your browser's address bar and you will be able to view any video which was restricted earlier.

Friday, June 21, 2013

Find the lost web

If you are struggling to find some content of your interest from a web link which you have but is dead now or may be a link to some page where the content of your interest has been removed or modified by the page owner; this post can help you in retrieving the lost web stuff you are looking for.

The technique which I am going to mention in this post does not ensure to give success in every case but is definitely worth trying.

To find the lost stuff, we are going to take advantage of the huge web archives created by certain websites on internet. There are some web services out there which keep crawling the internet and maintain the archives of all the pages which they find. There are plenty of such websites on internet who maintain such kind of archives, and you can try some of them to find the content you need.

The Google is also a one of the archives and maintains the cache of its crawled website and keeps it available for public use. These archived pages can be accessed after searching the particular link on Google and then by clicking on the option called "Cached" in the drop down menu (shown in image below) along with the desired returned result on Google search page.


I am not making any claim, but I find the Google's web crawling bot much more efficient than other web archiving services, as I found archives of certain pages on Google which were not available with other web archiving services. The only drawback with Google's cache is that it only provides the latest page cache it has and gets updated very fast. So the Google's cache can be of great help if the content you are looking for has been removed or modified in very recent past because after a certain period of time the Google itself gets the new page archive in its cache.

It is also possible in some cases to get the very old web pages too. There is an excellent web archive at link: http://web.archive.org . This web service creates a huge collection of pages at different time intervals. This service shows a big calendar and one can directly click on the desired date to get the web link's state on that particular date. Undoubtedly this huge collection arranged with dates is a much better way to get the old pages than to use Google's single page cache, but I found its crawling and collection of links weaker than Google's cache; some of the archived links which I found on Google were missing in this service, but still its collection is really good.

There are plenty of other web archives available too which you can try if needed. Hope this post helped you in finding the lost web content you were looking for, do share your experience in the comments section. Thanks :)

Friday, March 8, 2013

How super computers approximate the value of Pi

Many of us have a misconception that value of Pi is (22/7) but the fact is, being an irrational number Pi can never be expressed as a ratio a/b, where a and b are integers and b is non-zero. (22/7) is generally used as its just a close approximation to the actual value of pi.

Computers try to calculate(approximate) the value of Pi by using some special techniques, the Monte Carlo method is one of them. It is a technique to calculate the value of Pi by using methods of statistics and probability.

This technique works on the fact that if a circle of radius R is inscribed in a square of side 2R, then area of circle = Pi*(R*R) and area of square = (2R)*(2R). Hence the value of Pi = (4*area of circle) / (area of square).

So different threads running on a computer in parallel, start picking random points inside the square and check if that point lies inside the circle too. The computer keeps the track of total number of random points taken (T) and also of the number of points which lie inside the circle (N). Then the value of Pi is approximated as (4*N)/T. This algorithm is slow but easy to run in parallel, so super computers run this algorithm with different threads running in parallel on their different CPU cores, and hence approximate the value of Pi.

Wednesday, January 23, 2013

A faster way to compute H.C.F. (or G.C.D.) and L.C.M.

A program to compute H.C.F. (also called G.C.D.) and L.C.M. of any two numbers is something which most of the programmers write at very early stage of learning a programming language and is considered a trivial programming task. Most of us follow the basic way by iterating through a range of numbers and checking them for a factor or a multiple and hence computing the desired result. This approach is easy to code but results in an extremely slow program, when dealing with big numbers. In this post I am going to mention about an algorithm which is much faster and easy to code too.

First let's start with computation of H.C.F. for any two numbers. The very first step is to divide the larger number by the smaller number, and then if the remainder obtained is a non-zero value, then divide the divisor (the smaller number in this case) with the obtained remainder (remainder will become the new divisor in this second division). Keep repeating this procedure of dividing the divisor of every division with the obtained remainder, until your obtained reminder becomes zero. Then the last divisor in your last division (the one with zero remainder), is the required H.C.F. value.

NOTE: In a/b, 'a' is the dividend (numerator) and  'b' is the divisor (denominator).

For example, if we want to compute H.C.F. for any two numbers, lets say 1651 and 2032,

As 2032 > 1651, so we will start by dividing 2032 by 1651

NOTE: '%' is symbol for modulus i.e. a%b = remainder obtained on dividing a by b (remainder of a/b).

2032 % 1651 = 381 (381 is the remainder obtained in dividing 2032 by 1651)

1651 % 381 = 127 (1651 was our last divisor, 381 was remainder obtained in last division and 127 is our new obtained remainder)

381 % 127 = 0 (Now we have obtained a zero remainder so we will stop here)

Our last obtained divisor is 127, and is the H.C.F. of 1651 and 2032.

Now, for H.C.F. of three numbers (a,b,c) =  HCF(HCF(a,b),c) [here, HCF(a.b) means H.C.F. value of a and b], and in the similar way we can easily obtain H.C.F. of more than three numbers.

Now I am going to state a better way to obtain L.C.M. of any two numbers, although the technique I mentioned above to compute H.C.F. can be used to compute H.C.F. for more than two numbers too, but the technique to compute L.C.M. which I am going to mention is only limited to two numbers ONLY.

In computation of L.C.M. of two numbers we are going to make use of above mentioned H.C.F. of two numbers technique and going to take advantage of the property -

Product of any TWO numbers = Product of their H.C.F. and L.C.M.

i.e. for any TWO numbers a,b
a*b = [H.C.F. of (a,b)] * [L.C.M. of (a,b)]

hence, L.C.M. of (a,b) = (a*b) / [H.C.F of (a,b)]

Hence using this property, now we can easily compute H.C.F. and L.C.M. of any two numbers in a faster and efficient way.

Sunday, January 13, 2013

An optimized approach to compute X^n

In this blog post I am writing about a better way to compute Xn, when X and n both are integers. In most common approach a program can obtain the value of Xn by iterating a loop n times and multiplying  X to some variable, in every iteration. This approach calculates the desired results with complexity of O(n), where n is the power of X,  but here I am going to tell you about an optimized way to do the same task with O(log n).

To obtain this boost in processing, we are going to take benefit of simple property that, when n is an even number, then Xn = (X*X)(n/2). Now we have to deal with power (n/2) instead of n, similarly at every further iteration the power will reduce to half and we can approach to desired result in logarithmic time complexity (the desired result will be when the power to be computed reduces to 1).

Now if the power to be computed is an odd number, we can simply perform the operation, Xn (n is odd) = X * X(n-1). As n was odd, so (n-1) is going to be an even number, hence performing the previous step has helped us to obtain an even power of X, and now we can make use of approach stated earlier (in previous paragraph) and can easily compute the desired results in O(log n) time.

Here, I am writing a C++ code for computing Xn  with the above mentioned approach-


int power(int X, int n)
{
/* This function takes input of X as base and n as its power,
and returns the output value of (X ^ n) */

int result = 1;

while(n)
{
if(n%2 == 1) /* Checking for n to be an odd number */
result *= X;

X *= X; /* Squaring the value of X */
n /= 2; /* Reducing the value of n to half */
}

return result; /* Contains the desired computation */
}

Saturday, January 5, 2013

A better Prime number generator

Although to write a code for a basic Prime number generator is considered a trivial task, but still ignoring little properties of prime numbers can result in a slow program, especially when dealing with large numbers. In this post I am not going to tell you about any new extra ordinary super complex algorithm to boost up your program, instead I am just going to remind you about some basic properties of prime numbers which many of you would already be knowing, but still don't take their advantage while programming. Although these properties are basic, but with their use one can attain a significant performance improvement in their prime number generator program.

In the most basic approach to write a Prime number generator code, one generally makes use of the necessary and sufficient condition for a number to be prime. As prime number has only two factors, first is '1' and other is the number itself, so in this kind of approach the program checks for a number (let call this number be N) to be prime by checking for the availability its factors, i.e. for every N the program iterates from 2 to (N-1) and checks if the N is divisible by any of the iterator values (or we can say it checks whether any iterator value is a factor of N). Thus if the program fails to find any factor of N (between 2 and N-1), the number N is declared prime.

Optimization 1: The first optimization at this stage can be applied, when we find factors of N in [2, (N-1)] (In above mentioned approach). Instead of searching for factors of N in whole range of [2, N-1], the program should only check for the potential factors in the prime numbers generated previously, i.e. while searching for the factors of N, the program should iterate in the list of previously generated prime numbers only. This approach can be considered as doing prime factorization of the number N, all the consonants themselves are the product of several smaller primes, so rechecking for them to be a factor is kind of redundant step for our purpose, and hence if no prime number P (P < N) is a factor of N, then the number N is a prime number.

Optimization 2: As we all know that 2 is the only even-prime number, so it help us eliminating half of the potential candidates which were going to be tested for being prime. As after 3 no even number is going to be a prime number, so to generate prime numbers up to N the checking of a number for being prime should be done skipping all the even numbers.

Optimization 3: The further improvement can be to reduce the list of smaller prime numbers to be used for testing N as a prime (as stated above in Optimization 1). The program should use only the prime numbers smaller or equal to the square-root of N, while checking N to be a prime number. This technique would be effective since primes larger than the square root of N will be complementary factors of at least one prime less than the square root of N, by this I am trying to say, consider N = p.q and q >= square-root(N), then p should be less then equal to square root of N (i.e. p <= square root(N)).

Optimization 4: The next optimization which I am going to mention seems small, but can still save a significant computation in long run. As we have applied the optimization 2 (mentioned above), we are not going to check any even number further , so when we check for their factors from the list of previously generated prime numbers, no further value of N is going to have '2' as their factor, so we can avoid checking for '2' as their factor.

Tuesday, January 1, 2013

Ubuntu auto-mute speakers when headphones are plugged in

I was experiencing a problem with ubuntu after upgrading as it was not muting up the main speakers when I was pluging my earphones in my laptop's jack. Sound was coming out from both main speakers and earphones, but recently I found the solution to this problem with little tweaking in the alsa-base configuration file.

you just need to add a little configuration value in 'alsa-base.conf' file and the problem gets solved. To open this file for editing, type the following command in your terminal and provide your system password.

sudo gedit /etc/modprobe.d/alsa-base.conf

then append the below given string at the end of the file and the reboot your system, after saving this to the file.

options snd-hda-intel model=<your_computers_name>



NOTE: replace "<your_computers_name>" with name of your computer (model), for example I have an HP-dv6 so i used  "options snd-hda-intel model=hp-dv5" (without quotes), although I have a dv6 model but the value hp-dv6 was not working, so I used dv5 instead and it worked for me, So you can also try using value for some sibling models, and also keep in mind that REBOOTING IS REQUIRED for the settings to come in action.

After this adjustment, now my main speakers automatically get down when I connect my earphones.

Monday, May 7, 2012

See hidden debug settings in Android browser and force it to open the Desktop version of websites

There is a hidden setting in every default android browser, called the "Debug" setting, and it can be used to increase the power of browser to open Desktop version websites only.

The procedure to accomplish the task is very simple and takes less then 5 minutes, so here we go..

- First open your default android browser and type the string "about:debug" (without quotes), in the URL bar (the place where you type the name of website while browsing), then try to open this URL, although you won't observe any considerable change as this will not open any webpage but will unlock the hidden settings in background.


- Now just open the settings of your browser and you will find a new set of settings labelled as "Debug".  Now open this set and you may find set of various settings, depending on you device.





- In this segment find the setting called "UAString", and thats the target. Just open this setting and let the list open, there you will find several values with "Android" as default selection, now you just have to change the  value to "Desktop", and you are done. Now try opening any website which was earlier opening in mobile version, and you will now observe that you are now able to access the desktop version of same.

Monday, April 2, 2012

Fun with Google chrome

just perform the steps given below on Google chrome to whip up a quick prank (or two) just using the web, some editing skills, and Chrome -- check it out:

1. Visit a web page (any will do).
2. Bookmark the page by clicking on the star in the omnibox.
3. Now edit the bookmark by clicking on the star, then Edit.
4. Replace the contents of the “URL” field with: javascript:document.body.contentEditable='true'; document.designMode='on'; void 0
5. Put something memorable for the “Title” field, such as: “Edit Page”.

Now for the fun part: go to a webpage and click on the bookmark that you just created. Notice anything different? You should now be able to directly edit the page that you’re viewing by clicking on the page’s contents and typing, dragging, and deleting what you’d like. Edits that you make are only visible to you while the page is still open, so you’ll need to plan your pranks accordingly.

Thursday, December 29, 2011

Installing OpenCV 2.3.1 on Ubuntu

OpenCV (Open Source Computer Vision Library) is a library of programming functions mainly aimed at real time computer vision, developed by Intel and now supported by Willow Garage. This post describes the procedure to successfully install OpenCV 2.3.1 in your Ubuntu operating system,


We are not going to use any special IDE(like eclipse or visual studio), we will use our terminal and default compilers (gcc and g++), for the compilation of our code..


If you have earlier tried to install it and haven't got any success, I recommend you to use a fresh copy of Ubuntu, and then follow the below given procedure..



To install and configure OpenCV 2.3.1 with its dependencies, complete the following steps.
  1. Remove any installed versions of ffmpeg and x264 by entering the following command:
sudo apt-get remove ffmpeg x264 libx264-dev
  1. Get all the dependencies for x264 and ffmpeg by entering the following commands:
sudo apt-get update
sudo apt-get install build-essential checkinstall git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev
  1. Download and install gstreamer, a pipeline-based multimedia framework written in the C programming language, which allows a programmer to create a variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming and editing. The pipeline design serves as a base to create many types of multimedia applications such as video editors, streaming media broadcasters, and media players, by entering the following command:
sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg
  1. Download and install x264, a free software library for encoding video streams into the H.264/MPEG-4 AVC format.
    1. Download a recent stable snapshot of x264 from ftp://ftp.videolan.org/pub/videolan/x264/snapshots/. The exact version does not seem to matter. To write this guide, I used version x264-snapshot-20110808-2245-stable.tar.bz2, but I have used previous versions too.
    2. Configure and build the x264 libraries by entering the following commands:
./configure --enable-static
make
sudo make install
  1. Download and install install ffmpeg, a free software project that produces libraries and programs for handling multimedia data.
    1. Download ffmpeg version 0.8.x from http://ffmpeg.org/download.html. Note: Versions of OpenCV prior to 2.3.1 require ffmpeg 0.7.x.
    2. Configure and build ffmpeg by entering the following commands in a terminal:
./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
make
sudo make install
  1. Download and install gtk, a cross-platform widget toolkit for creating graphical user interfaces, by entering the following command:
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
  1. Download and install libjpeg, a library written entirely in C which contains a widely-used implementation of a JPEG decoder, JPEG encoder and other JPEG utilities, by entering the following command:
sudo apt-get install libjpeg62 libjpeg62-dev
  1. Download and install install v4l (video for linux), a video capture (from webcams, TV tuners etc.) application programming interface for Linux.
    1. Download v4l-utils-0.8.5.tar.bz2 from http://www.linuxtv.org/downloads/v4l-utils/
    2. Build v4l by entering the following commands in a terminal:
make
sudo make install
  1. Download and install install OpenCV.
    1. Download OpenCV version 2.3.1 from http://sourceforge.net/projects/opencvlibrary/files/
    2. Use the following command to untar the source files
tar xvf OpenCV-2.3.1.tar.bz2
cd OpenCV-2.3.1/
mkdir build
cd build
cmake ..
    1. Check that the output of cmake includes the following text:
      • found gstreamer-base-0.10
      • GTK+ 2.x: YES
      • FFMPEG: YES
      • GStreamer: YES
      • V4L/V4L2: Using libv4l
    1. Run make
    2. Run sudo make install
  1. Configure Linux.
    1. Tell linux where the shared libraries for OpenCV are located by entering the following shell command:
      export LD_LIBRARY_PATH=/usr/local/lib
      Add the command to your .bashrc file so that you don’t have to enter every time your start a new terminal.
      Alternatively, you can configure the system wide library search path. Using your favorite editor, add a single line containing the text /usr/local/lib to the end of a file named/etc/ld.so.conf.d/opencv.conf. 

    2. Using your favorite editor, add the following two lines to the end of /etc/bash.bashrc:
      PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
      export PKG_CONFIG_PATH
    3. Reboot.
After completing the previous steps, your system should be ready to compile code that uses the OpenCV libraries. The following example shows one way to compile code for OpenCV:
g++ `pkg-config opencv --cflags` `pkg-config opencv --libs` my_code.cpp  -o my_code


Facial recognition login for Ubuntu

Now you can log into your Ubuntu with your webcam using this facial recognition login .. :)


Installation

Open a terminal (Applications > Accessories > Terminal) and enter in the following two lines carefully.
sudo add-apt-repository ppa:antonio.chiurazzi/ppa
sudo apt-get update && sudo apt-get install pam-face-authentication
Now run the ‘Face Trainer’ application from the Applications > Other menu.
Now to add the face authentication module to GDM, Ubuntu’s default login-manager:
sudo sed -i '1i auth sufficient pam_face_authentication.so enableX' /etc/pam.d/gdm
sudo sed -i '1i auth sufficient pam_face_authentication.so enableX' /etc/pam.d/gnome-screensaver
Depending on your webcam model/make you may need to install and add libv4l to preload:
  • Create the file /etc/ld.so.preload
  • Paste in the path to the v411compat.so file commonly found in /usr/lib/libv4l (create it if not found)
Now everything is done,  just restart or logoff your system and have fun.. :)


Uninstall
In case you want to uninstall this service, just follow these steps-


edit /etc/pam.d/gdm and remove this line: 

auth sufficient pam_face_authentication.so enableX


then, edit /etc/pam.d/gnome-screensaver and remove this line: 

auth sufficient pam_face_authentication.so enableX


then, run this code in your terminal and wait for the system to get restart:

sudo /etc/init.d/gdm restart 

The service has already been discontinued, but you need to remove the useless support files from your system, so when the system resumes,  just remove the FACE TRAINER application

then, run the following code in your terminal:

sudo rm /etc/ld.so.preload

then, edit v411compat.so file commonly found in /usr/lib/libv4l, and remove the path:

/etc/ld.so.preload

Now you are done, The face recognition has been completely removed from your system..

Wednesday, December 28, 2011

India Against Corruption

We Indians are not living, we are just spending our days, is this a life where a common man has no value, people lack basic facilities and there is no security, everyday people get murdered and investigations result in nothing, our valuable taxes are getting deposited in Swiss accounts of our politicians.. is this the law and order, is this a life,, people just say that nothing can happen with India, and of course nothing will happen, if we would think in this way,, people just want to run to other countries to have a better lifestyle,, but running from situation can never help,, and for those who criticise people like Anna Hazare by saying that his views are just stupidity and anti democratic, all of them should understand that, first of all its a fundamental right of an Indian citizen to protest peacefully and if Gandhi would have thought in the same manner, we would have never got our independence,, fight against corruption is our fight with ourselves,, one should understand that we people don't have any problem, people are same who easily adapt the laws when migrate to developed countries, people stop littering streets, happily pay taxes and so on, but we feel difficult to do that in our own country, actually this isn't totally our fault, who wants to pay taxes, if we know that they are going to get in someone's Swiss accounts.. we know the names of ministers engaged in scams, media hypes the matter for few days and afterwards everything gets usual,, we have learnt to adjust rather then to fight,, people ask that no country has such strong anti corruption bill, so why we need it,, but the thing to understand is that as one shoe doesn't fits all,, similarly,  the situation of our country is alarming, we do need a strong anti corruption bill,, there are number of scams of thousands of crores,, and if this money would have been used for public welfare, we would have got so many benefits,, the problem is that we always go for shortcuts, people who get power starts misusing them,, in fact its the typical human behaviour,, and that what laws are meant for,, rules always make everybody suffer only bcoz of few spoiling elements,, but they are important for common good of all,, the problem lies with implementation, people get driving licences without ever sitting in a car.. people don't have fear of law,, everyday newspapers are full of murders, robberies and scams,, its now the time to bring some change,, fight of Anna is not against any govt official,, its a fight against corruption, a fight for common good of all,, of course it would affect life of all of us, but it will definitely be helpful in long term,, its a human nature, none of us wanna do anything, until a strictness is imposed on us,, children would never do their homework, if teachers and parents would not force them,, children do criticise, but still have to do it as they don't have any choice, but after a time they also realize that it was essential for them,, similarly we have started living in environment where we have have learnt to survive with paying easy bribes,, all of us somewhat rusted with corruption, so the strict rules are definitely gonna affect all of us to little or more extent,, and this is a main problem for which govt is hesitating to pass the bill, as many of the ministers are gonna get in big trouble after enactment of this bill,, but this is defiantly gonna help in long run,, help India to get better,, and if someone has a better idea, one should suggest it, and if someone can't, he/she also has no right to criticise it, first clearly study what a jan-lokpal bill is and then make up your suggestions, don't blindly follow the devastating comments of govt. officials , please don't let this movement to get failed, its a movement for our country,, this is our chance to bring a change.. show the world, the power of people in the biggest democracy, help India,, your country wants your support, be a part of mass-movement,, jai hind..

Tuesday, August 2, 2011

All NES characters in Super Mario world - highly innovative recreation

All the fans of old classic NES games should try this new Super Mario Bros. Crossover game,, its a new avatar of classic super mario with characters from other NES games. Moreover, each character behaves just like its own game, which makes this game very interesting to play. Click Here to play or to read more.

Friday, July 15, 2011

Bucky - the ultimate tutor on internet

Hey guys, I have found an ultimate collection of video tutorials from a guy called Bucky, and trust me.. his way of teaching is much more cooler then his name :D:D,.. this collection is a huge knowledge bank including dozens of things from photoshop to web development, C++ to iphone development and much much more.. Bucky is an excellent teacher ,,  and his way of teaching can bind anybody for hours.. he covers even the smallest details of every topic and that too very patiently.. in short,, his tutorials are perfect for all beginners to start with.. so just "buck" up and explore the world of Bucky Roberts at http://www.thenewboston.com . : )

Wednesday, July 6, 2011

MagicWand




MagicWand is my new android app which converts your phone into a bluetooth gyro-mouse and makes you able to control your PC by just waving your mobile device in the air.


Download MagicWand


Get MagicWand Android application for your mobile device from here,
or use this QR code for direct download.


To use this app you need to install the MagicWand server onto your PC too. Download PC server from here
(your PC should also have a bluetooth dongle and JRE properly installed.
Download JRE from here, if required.)


Parental rating: 
G: General Audiences (for all ages)
Screenshots: 

Application Permissions:
Bluetooth admin - Allows an application to configure the local Bluetooth device, and to discover and pair with remote devices.
Bluetooth - Allows an application to view configuration of the local Bluetooth device, and to make and accept connections with paired devices.
Wake lock - Allows an application to prevent the device from going to sleep.
Vibrate - Allows the application to control the vibrator.

Sunday, July 3, 2011

Fool your friends with anonymous emails

Have you ever got any email from santa or any email from Microsoft saying that you have won a million dollar lotto..:D:D... these are anonymous emails which carry fake identity details with them,, fortunately, now some of the email services like Gmail have developed techniques to filter such spams.. but most of the email providers still don't bother about them and above all, most of the people are not aware of this kind of stuff... the coolest thing is that there are hundreds of websites available on internet which helps user to send fake emails in few easy steps,, user need not have any knowledge of hacking or complex cyber stuff,, this is as simple as sending an ordinary email.. some of such websites are-

- http://www.sendanonymousemail.net
- http://www.emkei.cz

now start fooling your friends with this cool prank,, have fun..:)

Free SMS's... without ads


I have found a really cool service which allows users to send free 470 character sms's anywhere in india and that too without ads. This service is really quick and also has a cool phone app which can synchronize your phone contacts with web and also helps you sending free messages from your phone itself.. so now say bye to your old bulk sms plans and say hello to whozzat..