Mobile Number Portability | what is MNP | How MNP | why MNP| India

What is it Mobile Number Portability ?
It is a new facility that allows you to switch your user without changing your mobile number. In fact, mobile number portability can be done even if you keep the same technology—GSM to GSM connection—or change it —CDMA to GSM connection and vice versa.

How to switch - Rules:

a) Subscribers who want to avail of this service, first need to send an SMS: PORTyour mobile number to 1900 from their mobile. They will get an eight-digit alphanumeric code and an expiry date for that code from the current service provider. This code is called unique porting code, or UPC.

b) Then he needs to fill the application in a particular format and mention the new service provider, he would like to subscribe for.

c) The new service provider will collect the information about the user from the current operator. A time period of seven days will be taken for the complete transfer of mobile number to the network of the new mobile operator.

d) As a transformation charge for the new operator the subscriber has to pay Rs 19.c

Enjoy MNP!!!

Paradox of the miserable programmer

What I call “the miserable programmer paradox” states the following:
“A good programmer will spend most of his time doing work that he hates, using tools and technologies that he also hates.”
This is a paradox in the sense that it’s a counterintuitive result; you’d expect that the bad programmers would spend their time with crappy technologies, while the excellent programmers would spend their time with super-awesome technologies. Right?
I noticed this paradox in practice, and only later did I realize why this is happening.

What kind of work does a programmer despise?

This will not be news to experienced programmers, but I want to explain this to people who are not programmers:
A good programmer despises doing any work that could be automated. If a programmer is made to do work that a machine (usually a computer) can do, he becomes very annoyed. A programmer’s aspiration is to teach the machine to do as much of his job as possible so that he’ll have to do only the bits of work that cannot be done by the machine.
This is a very healthy instinct for a programmer to have.
Simple example of work that needs to be automated: Imagine the programmer is browsing his code file which is 1000 lines long. He wants to get to line 791 because there’s supposed to be a bug there that he needs to fix. But his text editor is at line 30. Most human beings would simply scroll down the file until they pinpoint the wanted line. But a good programmer will not stand something like this. He will work in an editor which lets him jump to a specified line by number. For example, “Ctrl-L -> 791 -> Enter” will do the job in the editor I use.
That was a simple example; there are more complex ones.
The reason that a good programmer hates doing repetitive work is that all these little tasks interrupt the programmer’s train of thought. A train of thought is a fragile thing; Once your train of thought is interrupted, it takes a while to get it started again. If you have to interrupt it every 5 minutes to do some manual task, then your train of thought won’t get anywhere.
In his day-to-day work, a programmer needs to do various kinds of work with various technologies using various tools. The programmer enjoys the kind of work that has relatively little “manual labor” in it, and he despises the work that has a lot of manual labor to it. He loves the technologies and tools that require little manual labor (Python, Django and git would be a few of my examples), and hates the technologies that require a lot of manual labor. (I won’t give examples on that one :)
But he still has to work with both the fun automatic technologies and the annoying, manual-labor-requiring technologies. The good programmer tries to cut as many bad technologies as possible out of his life, but he will always have some bad technologies that he simply can’t get away from. Sometimes it’s because they’re needed for the kind of software that he wants to produce; for example, every programmer working in web has to deal with HTML and its many annoying behaviors. Sometimes bad technologies are necessary simply because the masses of people are still using them, and the programmer needs to be able to work together with them.

Most of the time is spent on the bad technologies

From this point, understanding why the paradox happens is quite straightforward. The bad technologies take big chunks of time and concentration. The good technologies take little time and concentration. The programmer has a fixed amount of time and concentration that he can give every day. He must give a bigger piece of the pie to the bad technologies, simply because they require more. In other words, he ends up spending most of his days working with tools and technologies that he hates. Therefore, the good programmer is made miserable.
I wish I could end this essay with some sort of moral, or an idea for solving this problem, but there’s not much. All we can do is try to cut as many bad technologies as possible out of our lives, and just tolerate the rest.
(Thanks to Imri Goldberg, Amit Aronovitch and Amir Rachum for helpful feedback when writing this essay.)


12 MORE Insanely Essential Utilities For Programmers

In July I published a list of 12 Insanely Essential Utilities for Programmers. That list is still current and I’m still using every one of the twelve.  The list, however, has become popular enough, and there are enough great utilities that didn’t make that list, that I herewith present 12 more Insanely Great and Absolutely Essential Utilities:
NB: This list, like its predecessor is Windows-centric.

The Next Dozen

1. Drop Box – Have files on one machine and need a good way to get them to another? dropBox Need to provide a file to a co-worker that is too large to mail? Drop Box is fast, secure, easy and beautifully executed.  It runs on the web, on Windows and on the Mac. Oh, and it’s free.
2. LogMeIn Forgot a file at home? Need access to your machine as if you were at the keyboard?  Complete and secure remote access for Windows and Mac.  Incredibly helpful when you want it, indispensable when you need it.
3. Tortoise HG – In the first list Tortoise SVN was listed, but I’ve switched over to TortoiseHG Mercurial, and so Tortoise HG is the tool of choice. The key advantage to Mercurial is that you can commit repeatedly, locally, before updating/synchronizing with the server.  I have to add that I’ve been incredibly happy with BitBucket as a server.  Tortoise HG is free.
4. PowerGrep/ BareGrep – PowerGrep is the most powerful and easiest to use grep program I’ve seen, but it is pricey.  BareGrep is darn close in functionality and it is either free, or if you go up to the pro version, at least reasonably priced. Both are stunningly fast, but I find PowerGrep’s extra features, filters and UI all to be far superior.
5. RegEx Buddy – The folks who make PowerGrep also make RegEx Buddy.  Nothing I’ve seen comes close to this both as a regular expression builder and as a tool for learning regular expressions.  The UI is both powerful and easy to use.  Brilliant.
6. Notepad++ Not just incrementally better, far superior for programmers. Line numbers, syntax highlighting, does not get in the way and its free.   It is my go to text editor.
7. Xobni – Programming can be a team sport, with hints and tips and critical Xobni information exchanged in Outlook.  Xobni (zob-knee) finds it, whatever it is, instantly.  It does much more, but for me it is worth the price of entry for its incredible searching capabilities. Xobni is free, the Plus version is not.   By the way, Xobni is inbox spelled backwards.
8. VirtualBox – A great VM; lightweight, robust and free. Available as open source, runs on Windows, Linux, Macintosh and OpenSolaris hosts, and supports most of the guest operating systems you might ever want (though there is no “official” support for hosting OS/X.
9. AutoPoco -  Generates test data from Plain Old CLR Objects.  Written up by Scott Hanselman and insanely useful.   Highly customizable, and open source (CodePlex).
10. FARRFind And Run Robot is described as “a program for keyboard maniacs.” If you code like I do you spend a good bit of time flitting in and out of programs, and you are impatient to get them up and running fast.  It does a good bit more, but I use it for finding and running programs – hit control-space, type ev and hit enter to load Evernote.  Nice.
11. Hypersnap / ScreenPresso – Screen capture software has turned out to be essential for me; not only for blogging but also for taking a quick shot of a program running, or even of code for quick reference later.  HyperSnap wins on all features and functionality, except that ScreenPresso has a 1-touch export to Evernote that I love.
12. xMind – Mind Mapping Software. I started out using this for design work, ended up using it also for documentation (see, for example, this mind map of the iPhone to Windows Phone Tutorials),  for idea sharing and for dozens of other related purposes.  Mind maps have all the organization of an outline with the immediately graspable eidetic representation of an image.

Source:12 MORE Insanely Essential Utilities For Programmers

Happy New Year 2011

May this new year bring many opportunities to your way,
to explore every joy of life
may your resolutions for the days ahead stay firm,
turning all your dreams into reality
and all your efforts into great achievements.
Happy New Year 2011 to you & your loved ones.