Introduction to Python

Python is a high-level, interpreted, interactive and object-oriented scripting language. Python is designed to be highly readable. It uses English keywords frequently where as other languages use punctuation, and it has fewer syntactical constructions than other languages.
  • Python is Interpreted − Python is processed at runtime by the interpreter. You do not need to compile your program before executing it. This is similar to PERL and PHP.
  • Python is Interactive − You can actually sit at a Python prompt and interact with the interpreter directly to write your programs.
  • Python is Object-Oriented − Python supports Object-Oriented style or technique of programming that encapsulates code within objects.
  • Python is a Beginner's Language − Python is a great language for the beginner-level programmers and supports the development of a wide range of applications from simple text processing to WWW browsers to games.

History of Python

Python was developed by Guido van Rossum in the late eighties and early nineties at the National Research Institute for Mathematics and Computer Science in the Netherlands.
Python is derived from many other languages, including ABC, Modula-3, C, C++, Algol-68, SmallTalk, and Unix shell and other scripting languages.
Python is copyrighted. Like Perl, Python source code is now available under the GNU General Public License (GPL).
Python is now maintained by a core development team at the institute, although Guido van Rossum still holds a vital role in directing its progress.

Python Features

Python's features include −
  • Easy-to-learn − Python has few keywords, simple structure, and a clearly defined syntax. This allows the student to pick up the language quickly.
  • Easy-to-read − Python code is more clearly defined and visible to the eyes.
  • Easy-to-maintain − Python's source code is fairly easy-to-maintain.
  • A broad standard library − Python's bulk of the library is very portable and cross-platform compatible on UNIX, Windows, and Macintosh.
  • Interactive Mode − Python has support for an interactive mode which allows interactive testing and debugging of snippets of code.
  • Portable − Python can run on a wide variety of hardware platforms and has the same interface on all platforms.
  • Extendable − You can add low-level modules to the Python interpreter. These modules enable programmers to add to or customize their tools to be more efficient.
  • Databases − Python provides interfaces to all major commercial databases.
  • GUI Programming − Python supports GUI applications that can be created and ported to many system calls, libraries and windows systems, such as Windows MFC, Macintosh, and the X Window system of Unix.
  • Scalable − Python provides a better structure and support for large programs than shell scripting.
Apart from the above-mentioned features, Python has a big list of good features, few are listed below −
  • It supports functional and structured programming methods as well as OOP.
  • It can be used as a scripting language or can be compiled to byte-code for building large applications.
  • It provides very high-level dynamic data types and supports dynamic type checking.
  • It supports automatic garbage collection.
  • It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.

Top 7 Genuine Captcha Entry Job Sites


Top 7 Genuine Captcha Entry Job Sites | Online Typing Jobs


Internet is full of opportunities. There are much more ways to earn money on internet than one can think of. I already have discussed 10 ways to make money online without investment. In this post I am going to list 7 websites where one can make money by simply Typing. All you need to have to work with them is a computer with an internet connection and the ability to type at least 10 Words Per Minute. There are many Captcha Entry Job sites out there where one just have to solve Captcha to make money. I have personally tried several Captcha Entry Job Sites and found that only a few of them are genuine and pay on time.

Let’s understand what is a Captcha and How all this stuff works –
What is “Captcha” and Why One Would Give you Money For Solving Captcha ?
I am sure you must have encountered Captcha on internet several time. Remember those time when you are signing up for a website  and they ask you to enter the word written in an image to verify that you are a human and not the robot or something else. See the image below to understand it better –

What is Captcha
Now why would someone give you the money for solving Captcha. Take an example of  Digitize India(DEiTY) which is an initiative of government of India which offers an opportunity for government agencies to transform themselves into digital enterprises. See why they give money to contributor for solving snippets(Captcha) –

  1. Digital India Platform collects  scanned images from the various Govt. organisations and shred images into snippets with meaning full data.
  2. These snippets(Captcha) are randomly served to the contributors.
  3. Contributors  type the words shown in Snippets.
  4. A match engine check if contributor typed the right word.
  5. Correct entries get reward points for each correct words digitized.
  6. DIP innovative system organizes the snippet text digitized by contributors.
  7. Document are re-assembled and provided back to the organizations
This was just an example. They mainly convert scanned documents from images to text. The Captcha you are going to solve might fulfill other kind of requirement . Hope you have understand why you get money to type.

  •  How to Make Money With Digital India
  • 10 best legitimate Micro Jobs sites to Make Money Online
So , here is my list of 7 legitimate Captcha Entry Jobs Sites to Make money Online –

1. 2Captcha

2Captcha is one of the best captcha entry job site. The good thing about 2Captcha is that the Captchas load very fast and it takes no more than 10 seconds between two Captchas during interval. One can earn up to 1.20$ for every 1000 captchas solved. You get 10 seconds to enter a character, so I hope you won’t miss any captcha.

Minimum Payout – $3 for PayPal | $0.5 for WebMoney | $1 for Payza | $1.3 for Perfect Money and AdvCash | $1 for Bitcoin

Payment Options – PayPal | Payza | WebMoney | Perfect Money | AdvCash | Bitcoin

Link -

2. ProTypers

ProTypers could be your second job if you have some free time. A beginner can start with $0.45 for each 1000 word images he types correctly and go up to $1.5 for 1000 captcha once he gains some experience. The schedule is flexible and you can type anytime and as long as you want to.

Minimum Payout – $100 for Western Union | $3 for almost all other Payment Options 

Payment Options – Debit Cards | Bank Checks | Paypal | Bitcoin | WebMoney | Perfect Money | Payza | Western Union 

Link -

3. VirtualBee / Lionbridge Smart Crowd

VirtualBee is offering different kind of jobs(Translation, Basic internet research and Typing) since 2001 and now a part of the Lionbridge virtual solutions platform. Although there is no special skills or experience you need but good typing speed with accuracy will help you pass the evaluation test which is mandatory to be the part of VirtualBee team. On an average you can make somewhere between $0.10 to $0.35 per 1000 keystrokes.

Minimum Payout – $10

Payment Options – PayPal

Link -

4.  MegaTypers

MegaTypers is perfect for mothers, students and others who have free time and looking for work from home opportunities. MegaTypers is very much similar to the Protypers. Faster you type more typer credit you get and later on typer credit can be exchanged for a dollar currency.

Minimum Payout – $100 for Western Union | $3 for almost all other Payment Options 

Payment Options – Debit Cards | Bank Checks | Bitcoin | Paypal | WebMoney | Perfect Money | Payza | Western Union 

Link -

5. Kolotibablo

Kolotibablo is one of the top Captcha entry job site. They pay $0.35 to $1 for every 1000 Captcha images you type correctly according to level which you are on. To get inspired , check their latest stats where you will find the top earner. Like most other Captcha Entry Job site , they too are strict so don’t make too much mistakes while typing to keep your accuracy high. You need to have $5 in your account in order to withdraw via PayPal otherwise $1 is the minimum payout for most other withdrawal options.

Minimum Payout – $1

Payment Options  – Litecoins | Yandex Money | Bitcoins | Paypal | Payza | AdvCash


 6. CaptchaTypers

CaptchaTypers is another genuine Captcha Entry Job site. You need to mail to to get admin free of cost. They will mail you from their official email id , so don’t get fooled by any other scammer. You don’t need to pay anything for admin access.

Minimum Payout –  $2

Payment Options – Payza | Perfect Money | Webmoney | Neteller Payment.

Link -

I believe you can’t do typing all the day. Try to create multiple sources of income. This was all for this post. Thanks for visiting my blog. You might enjoy reading  Top 10 ways to make money online without investment

Advice for Withdrawal – Some people are very impatient. Do not apply for withdrawal until you have good money(at least $10) into your account. Lets assume you apply for withdrawal via Payza when you have $1. There would be a flat fee of $0.30 + Withdrawal Processing Fee. So you end up getting around $0.60(Nearly half of the original) into your Payza Account. What when you apply via same mode when you are having $10 into your account. You get around $9 after a flat $0.30 + Fee cut. So it’s better withdrawing $10 at once than 1 Dollar 10 times.

What is Cryptography?

Look at this picture
Can you identify who it is ?
I think not!!!                          right ?
This is cryptography...
Where actual information is getting hided behind other means of data, so un-authorized user unable to identify what actually the message is
So there are several techniques/approaches followed across the organizations to hide the actual message
Cryptography is the study of keeping information hidden. Problems in cryptography generally address how to send information across some channel without other people seeing it? In the old days, this was much easier since you'd have a personal messenger, and as long as this person wasn't intercepted, your message was safe. Nowadays, messages are transmitted electronically through space, which means anyone could potentially eavesdrop. Modern cryptography studies how messages can be "encrypted" so that only the intended recipient can decipher the message.

This is used all the time, for example, when you log into your email. How does the email service verify that you entered the correct password for your username, without actually keeping a database of all username/password pairs? This is an example of a cryptography problem.

In simple words Cryptography is a combination of mathematics and security engineering. It offers a great tools which are used in all the modern security protocols. You can say, it is kind of a technology which enables the protection of distributed systems, and still it’s one of the thing which is somewhat hard to do it in a right manner.
Cryptography is quite related to two disciplines cryptology & cryptanalysis. Cryptography comes with some of the techniques like microdots, merging of words with images and other methods to hide information in a storage devices. Though in today's date, you can say that cryptography is like scrambling of plain text into cipher-text that no one can read it unless it's decrypted in order to keep the information hidden from the unauthorized person.
Today's cryptography comes with the following 4 objectives:
Confidentiality: Means the information can only be understood by the person for whom the information is.
Integrity: The information cannot be changed or intercepted between sender and receiver without the detection of the change is happening.
Non-Repudiation: The creator or sender of the data cannot say ‘No’ later on like this information is not transferred from their side.
Authentication: The sender or receiver can make confirmation of each other's identity & the origin from the information is sent or received.
This word Cryptography is derived from the Greek kryptos, means hidden. The main originality of cryptography is from about 2000 BC, during the time when hieroglyphics were practiced by Egyptian.
In today's date, cryptography plays a big role in the realms of mathematicians and computer scientists. The ability to securely transfer and store the critical information has played a big role in success of war as well business.
Cryptography has been in focus to several restrictions in different countries, as governments don't want their certain entities in and out of country to have access to certain confidential information’s that it could become a threat to national interests.
Though internet has adopted this mechanism in order to provide powerful programs safely to everyone, so this techniques of cryptography is mostly used for public domains.

What are some cool C++ tricks to use in a programming contest?

Using auto to declare dataypes can save lot of time during programming contests.

When a variable is defined as auto, compiler determines its type during compile-time. For example,
  1. auto a = 1; // a will become 'int'
  2. auto b = 1LL; // b will become 'long long'
  3. auto c = 1.0; // c will become 'double'
  4. auto d = "variable"; // d will become 'string'

This is extremely useful when dealing with iterators. For iterating over map<int,vector<int>> Map, instead of writing this,
  1. for(map<int,vector<int>>:: iterator it = Map.begin(); it != Map.end(); it++ ){}

it is possible to write this.
  1. for(auto it = Map.begin(); it != Map.end(); it++ ){}

There is an even shorter way to write it.
  1. for(auto &it : Map){}
These type of loops are called range based loops, previously which was supported by java only. Note that, it is not an iterator in range based loops. So for accessing elements, it. should be used instead of it->.
  • Loop in C-string:
  1. char s[100];
  2. for (int i = 0; s[i]; ++i) { ... }
This is extremely useful (also avoids the strlen usage, that you could forget is O(n) and put on for condition).
  • Testing if not negative 1:
  1. if (~x) { ... }
In competitive programming we tend to write as little as possible, só a simple x ! = -1 can be shortened to 2 characters.
This works because negative numbers use two’s complement, so -1 is represented as all ones in binary. The tilde (~) operation inverts all bits of the variable, so the -1 turns into a zero, and any other number turns into something not zero. The if condition is valid if it’s not zero, so ~x is valid for any value different than zero.
  • Least significant 1 bit
  1. int lsb = x&-x;
This is a very useful operation than returns the LSB (EDIT: the least significant bit with value 1) of a number. If you’re used to Fenwick Tree (aka Binary Indexed Tree, or just BIT) then you know how useful it is.
This also works because of two’s complement. If you AND any number and it’s negative you obtain the LSB. Very simple and fast.
  • More than one operation per line
  1. if (dist[v] > dist[u] + w)
  2. dist[v] = dist[u] + w, q.push(v);
Many people don’t know this, but you can have statements split by commas. This I tend to use in every problem I solve, it reduces the code and avoids the use of semicolons.
The only down side is that you can’t use with breakcontinue or return (not statements :/). So when I have to use any of these I have to add braces and semicolons.
  • Scanf on array
  1. int a[100];
  2. for (int i = 0; i < n; ++i) scanf("%d", a+i);
This I don’t like very much because it doesn’t work for arrays with higher dimensions, but since most problems have at most 1D input it’s quite useful too (although I tend to use the &a[i], but my teammates use this trick).
  • Order array without losing original order
  1. int a[100], p[100];
  2. // receive input
  3. for (int i = 0; i < n; ++i) scanf("%d", &a[i]), p[i] = i;
  5. sort(p, p+n, [=](int i, int j) { return a[i] < a[j]; });
This is extremely useful!
First you don’t lose the original order (for offline algorithms this can be necessary).
Second you can do the same for how many dimensions you have (for 2D points: x[] and y[]; or 3D: x[], y[] and z[]; or any number of arrays..) and you don’t have to create structures (lot’s of lines saved) or use tuple or pairs (these are annoying in competitive programming. Using pair of pair you have something like: x.first.second + x.second.second and you line goes extra large and hard to read).
  • Infinite
  1. const int INF = 0x3f3f3f3f;
This infinite constant is very useful too. I used to do something like x = 2e9; but I had to take care about not adding infinites (because of integer overflow) and stuff like this. This constant can be doubled without overflowing and also can be set very easily this way:
  1. int dist[1000];
  2. memset(dist, 63, sizeof(dist)); // 0x3f == 63
For shortest path algorithms I always use this (I used to tend -1 version, but I had to do additional checks to verify if dist == -1 and if not..) and in CP BFS and SSSP are very common problems.
I think that’s all for now. If I remember any other trick I’ll edit this post, but that’s all I can remember for now!

How were Programming Language invented and Why ?

The hardware of a computer only understands 0 and 1: electricity or no electricity.
First problem: different hardware needs different 0’s an 1’s. Cue “computer architecture”, a structure that allows the processor to convert a simple instruction set (assembly or assembler) to the 0’s and 1’s that fit your hardware. For most computers this is x86, 32 or 64 bit.
Second problem: it’s pretty inconvenient to type whole programs in assembly language, since it supports only the most basic commands (add, multiply, loop). So programmers write in “higher programming languages”, which offer more complex structures and commands (classes, interfaces, …). Then the compiler converts all this to assembly matching the hardware. The high level program remains the same for all hardware!
Lastly there’s a big variation in high level programming languages. The differences here are because someone wants specific features for a certain niche. Java for example has its own mini-architecture “java virtual machine”, making it even easier to use on different hardware. PHP has smooth web-database interactions, C++ is made for OOP, … New languages arise when someone says “hmm I wish there was a language that combines x and y features”

What is Computer Programming

Programming a computer to solve a problem always requires defining data to represent the things in your problem; this is called modeling. It also requires explaining unambiguously what process to follow in order to solve the problem. This process of explaining is where different paradigms of programming come in:
  • In imperative programming, we tell the computer what to do to the data. The computer starts out with its memory containing stuff, we tell it how to change that stuff, and it makes those changes.
  • In functional programming, we tell the computer how to build output data from input data. We use functions, which are rules that say how to combine or transform things; they consume inputs and produce outputs.
  • In logic programming, we specify a set of constraints -- rules that say how things are related -- and then ask a question; the computer runs a program that examines all those constraints and finds all valid answers to the question.
For decades, imperative programming was the dominant (or even the only) option, because at its heart, a digital computer is a bunch of switches and rules for how to switch them on and off. Functional and logic programming existed, more or less, only as language spoken by mathematicians. By now, though, programmers have written a vast menagerie of interpreters and compilers -- programs that run or translate other programs, respectively -- that allow us to communicate in whatever kind of language seems most suitable to the problem we're solving. We even have domain-specific languages that are fine-tuned for specific classes of problems: statistics, physical simulations, music, and typesetting are just a few that come to mind.

And why does all this matter? Because, again, the aim of programming is to explain solutions. Sure, computing the solution automatically is great -- after all, without that ability computers would be useless -- but good programs are meant for other people to read and understand, not just for them to use.

Programming is about :
  • Evaluation and substitution. These are the basic algebra skills that programs are built on, and that programmers mentally fall back on when trying to figure out why a program isn't behaving as expected.
  • Modeling. Information is complex; solving problems with the computer (or with math) always somehow involves defining and using data to represent information from the problem.
  • Managing complexity: Breaking problems and solutions down into chunks that can be understood easily. Abstraction (as Tikhon Jelvis mentioned) is the main tool for this.
  • Communication. In at least two ways, this is important: (1) Determining what your clients want, so you are solving the right problems. (2) Organizing and documenting your work so that you (or the next programmer to touch it) will be able to understand it, months or years later.
  • Patience and perseveration. When things aren't working right, there's usually something you haven't noticed. Learning what that something is often requires mentally retracing your steps, and manually re-running code on different inputs, until you see what you've been missing. This may take a while.
  • Discipline. Writing tests and specifying what work must be done are both decidedly unsexy tasks, but they both make your work easier and give you confidence that you've done your work correctly.

Amazing Facts about Programming

Amazing Facts about programming  The first programmer was a lady named Ada Lovelac . She was a writer and gifted mathematician...

Popular Tutorials