Saturday, 2 November 2013

iPhone 4s wifi grayed out temporary fix

WiFi grayed out I am facing issues of WiFi button grayed out and battery draining very fast after upgrading from iOS 7.0 to iOS 7.0.3. I have been searching through internet right after this issue happened with my iDevice. My three colleagues don't have problems after upgrading to iOS 7.0.3 except for one saying battery draining is fast.

Many people tried putting their iPhone's into freezer and I am one of them and it got fixed temporarily for at least 5 minutes. I kept it in freezer for 20 minutes and WiFi button reappeared. Interesting information, when in freezer it contracts hardware parts and WiFi reappears and again after sometime due to heat WiFi button gets grayed out again.

You can see device logs by downloading iPhone configuration utility. Also I can see kernel panic logs related to WiFi inside iPhone diagnostic which you can see (if you have any) by going in Settings -> General -> About -> Diagnostic & Usage -> Diagnostic & Usage Data.

Now question is, whether is it a hardware issue or software issue? People have different opinions as follows:
1. If you can't see WiFi mac address then it's a hardware problem.
2. If you can see WiFi mac address then it's a software problem.
3. If device log contains something like "ERROR: WiFi device not found" most probably it's a hardware problem.
4. If device log doesn't contain above error then again it's most probably software problem.

I can see following line in log but don't know really what it means:
kernel[0] : 000046.597746 wlan.E[94] AppleBCMWLANCore::saveDebugInfo(): Please file a radar in "Purple WiFi Drivers" using the instructions at <>

So to summarize, what things I tried until now to fix the problem
1. Restoring when in DFU mode as iCloud Find My iPhone was enabled and as there is no WiFi, No Data, I was unable to not able to restore.
2. Restarting iPhone 20 times.
3. Resetting Network settings 100 times.
5. Tried to downgrade desperately but wasn't possible.
4. Putting iPhone in freezer for 20 minutes.

At last I have decided to wait until Apple's next update.

Monday, 14 October 2013

Real-Time collaborative coding in Eclipse using Saros

If you guys work as a team or most preferably pair programming then you are going to enjoy this post. Usually if you and your teammate want to write different functions into same file then either of you write first or later. However Saros lets two of you do this in real-time collaborative way. You can follow someone and whatever files open on his/her machines you can see on your machine instantly with the live changes being done.

So how to install it and what are prerequisite software needed for that
1. If you have existing XMPP account you can use it or you can setup your own XMPP server. My and their preferable way is to install your own XMPP server and create accounts in it. You can use jabber servers too. Go to
I use Openfire server.
2. It is recommended that all accounts must be on same server and create all user accounts on Openfire server.
3. Install Saros eclipse plugin and configure it with your account.
4. Now create any project in your eclipse and share it with your colleagues.

Saturday, 24 August 2013

Share text right away with your colleagues using Mailinator

Some weeks ago in office there was a training program. Trainer wanted to share a link to his jsfiddle demo. As everyone in the room was from different project groups no one had a single point of sharing information.

One of the guy in the room shouted send this link to and everyone go on and type synerzip and click on Check Inbox button. So this is how we shared information.

1. Now, What is Mailinator?
A. They state that, it is "Free. Disposable. Email.". Basically, It is a public domain email.

2. How long shared information lasts?
A. It will be deleted in several hours.

3. Can I share pictures, attachements and/or binary files?
A. Simply, No. Only plain text.

4. Do they have any rejection criteria?
A. Apart from question 3, other rejection criteria includes email size and too many recipients.

After watching below steps of how to use it, it doesn't take much time to understand the notion.

Tuesday, 30 July 2013

Share mouse, keyboard and files over WiFi with Free applications

I am very happy to share information about applications that you will be reading below. These applications are not only for developers but also for end users of Windows or Mac or Linux. From last two days I have been working on two different computers i.e. on Mac as well as on Windows. I was continuously switching back and forth between these devices and I was fed up of using individual keyboard and touchpad. After thinking for a while I googled for "share mouse, keyboard and files over wifi" and I got following applications.

Synergy - Share Mouse/Touchpad and Keyboard between computers. You just need to configure settings to work with, which are pretty easy to figure out. Install it on every device. Most important thing is, it's cross platform and open source.


As Synergy does not yet support file copy and paste, I am using following utility to easily copy and paste files across machines.

AnySend - This is a nice and free utility which you can run with very less efforts and transfer files between your PCs and MACs. This is somewhat similar to Apple AirDrop. To use this just copy the files as you would do it on local machine. Click on AnySend icon which you can find on menubar above if you are using Mac or in task-bar if you are using windows. Now select name of device that you want to send and boom!!!, your files are on another machine.

If you happen to know utilities similar to above or entirely different then mention below in comments.

Monday, 22 July 2013

A simple to use wrapper over Node.JS mysql library

I was working on a project on Node.JS platform. In this project I was suppose to exchange data with MySql server. For this purpose I used two packages which are available in NPM repository, namely, mysql and mysql-queues. Later is required because former driver yet doesn't support transaction feature of MySql database. If you go through them you will be confused a little bit and will find it difficult to understand in one go. To simplify this situation I created an easy to use wrapper over these two libraries.


You can find my wrapper on GitHub by following this link. I am still in progress of making it feature rich.

How to use this wrapper:
  • Install mysql and mysql-queues using npm install command.

  • Download wrapper by going on this link.

Now you can use it in a way that is specified below:

Initialize object

 var dbClass = require('DB');
 var options = {}; = 'localhost';
 options.user = 'root';
 options.password = 'root';
 options.database = 'test';
 var db = new dbClass.DB(options);

Select statement

 db.sql = 'select * from test where id = ? and name=?';
 db.bindParams([id,name]);, results, fields){

Transaction statement

 db.sql = 'insert into test (name) values (?)';
 db.insertTransaction(['bharat'],function(err, info)
    id = info.insertId;

Saturday, 13 July 2013

Repair anything yourself using guides on iFixit

Recently, I raised my Macbook Pro's RAM up to 8 GB. My machine is Macbook Pro 13" (mid 2010). I was worried about opening my Mac and replacing RAMs myself. But still determined to change RAMs. After searching on internet I came across a website named They say that it is a free repair manual.

Macbook Pro 13 opened

I followed this guide to change RAM. It is described in very simple and easy steps. Guide even tells you which tools will be required to perform repair.

If you go to their about section, it states that, "We're building the free repair manual for everything". Also they encourage you to contribute repairs. You can follow this link to contribute repair. Currently you can find repair guides for following things Mac, Game Console, Phone, iPhone, Car & Truck, Camera, PC, iPad, iPod, Appliance etc.

For those who are interested to know which RAM I used and from where I bought it. The answer for former is G.Skill SQ For MAC DDR3 4 GB and for later is Flipkart.

See below opened Macbook Pro 13" video that I made myself.

Sunday, 7 July 2013

Monetize your Facebook application in four easy steps


You have a great Facebook application and generating a decent amount of impressions then, probably, it's time to generate money from your Facebook application. There are various methods of monetizing, like displaying ads and/or using Facebook Credits. Facebook Credits are like a virtual currency. You can use it to buy virtual goods in any games or apps of the Facebook platform that accept payments.

Currently, I am monetizing my Facebook application by the method of displaying ads.

Follow below four simple and easy steps to start monetizing your Facebook application:

  1. Find the Facebook ads providers list by going on

  2. Choose and register as a publisher with one of these ads providers. (Ads providers may take time because they will review your application.)

  3. Once ads providers review your application, you can create ads slots.

  4. Grab the code from those ads slots and place them into your Facebook application at appropriate places.

Readers always ask me following questions:

Q1: Can I use Google AdSense with Facebook applications?
Answer: No. AdSense is not in Facebook approved list of advertisers.

Q2: Where can I get the list of ads providers for Facebook applications?

Q3: What is your Facebook application and what it does?
Answer: It's a simple app which extracts birthdays of your friends and gives you an "ics" file.

Q4: What is the link to your Facebook application?
Answer: App name and link is Birthdays of my friends. Link to Facebook page

Q5: What can I do with an "ics" file?
Answer: You can import that file into Google Calendar, Apple iCal, iPhone, Android, and Mozilla Thunderbird etc.

Q6: What ads providers do you use?
Answer: I use LifeStreetMedia.

Q7: Which ads providers do you recommend?
Answer: I can recommend LifeStreetMedia as I use it. I have seen many people recommending RockYou as well.

P.S. I don't have any connections with LifeStreetMedia / RockYou and they are not paying me anything to mention them here. Links are only for the purpose of ease for you to navigate.

Attribution: Facebook logo above is from WikiMedia Commons and link to it is this.

Monday, 1 July 2013

Map your trek route on Google Maps without any application andconnectivity?

Last year on 16th of July, we trekked from Talapewadi to Bhimashankar. It was a very great experience and you feel relieved when you go close to the nature. While trekking as usual everyone was taking photographs and I was no exception. I was taking photographs using my brand new Nokia Lumia 800 (now I no longer own it) which has functionality of attaching GPS locations to clicked photographs. And luckily I clicked photographs on important turns of trek. Trek was of almost 23 kilometers.

After returning home I used those photographs to extract GPS locations using Garmin Basecamp application. You can import these geotagged photos into Garmin Basecamp application. Give some nice name to the collection. Now right click on all photos and select "view in Google Earth" and you are done.

So to summarize, the things that you will need to map your hike on Google Maps are as follows:

  1. A camera with geotagging facility.

  2. Software that can extract all the GPS co-ordinates from geotagged photos.

  3. Google Earth to view those GPS co-ordinates and thereafter to share it with the world.

Those who are lazy to read, video demo is as follows:

Download the route file that you have seen in above video. You need Google Earth to open this file.

If you want to use this file publicly give attribution as

P.S. :- This is for purely educational purpose. I have no connection with Garmin BaseCamp.

Friday, 28 June 2013

How to recover your forgotten ISP password from router?

Most of us would like to use Internet on multiple devices at home or office. To use Internet on multiple devices, you need to make use of a router. Certainly you can share Internet connection using computer that is connected to Internet. However there are some limitations associated with that method. You have to keep that computer ON for others to let use Internet that will consume lots of power.

Coming back to our real topic. So you have a router with ISP username and password in it and you don't remember the password. You can either call ISP and ask to reset the password that will take 2-3 days (may be more depends on willingness of ISP provider :)) OR you can follow below steps to recover the password:

  • Make sure that you are connected to the router from which you have to recover ISP password.

  • Login to your router using a web browser. Usually most routers have default IP address (unless you have changed it) which you have to type it in your browser's address bar and hit enter.

  • Now you will get a prompt to enter username and password to log into router configuration. Again this by default username is "admin" and password is also "admin". (unless you have changed it :)).

  • Navigate to WAN settings page. Now you will see your username and password in the form of stars.

  • If you are using Firefox browser and have firebug add-on installed or chrome browser, right click on password field and from context menu select menu having string "Inspect". Click on the images below to see bigger images.
    Chrome right click Firefox right click

  • A window will open with a highlighted field. You will see something like[html]<input type="password">[/html]

  • Click on "password" word and change that string to "text". Now it should look like[html]<input type="text">[/html]

  • And there you got your ISP password.

See video demo of how to do above steps:

Tuesday, 25 June 2013

How to replace multiple spaces with one space?

I came up with the situation of replacing multiple spaces with single space in SQL. I got the solution from a site but it was very difficult to understand at first look. So I got into deep to find out exactly how it works?

I really liked the trick and it made me write this blog post. This could be useful where regex expressions are not available.

The logic is explained in the video below. For visualization purpose space is represented as ‘@’ character and ‘#’ can be any random character which never occurs in strings as a normal character.

I am repeating again,
@ = white space
# = any random character that is never used as a normal character in strings.

replace( trim(‘string’) , ‘@@’,’@#’ )

By the way the editor utility which I am using in this video is Notepad++ which is free and open source editor and a video utility to create video which I used is CamStudio it is also free and open source.

Saturday, 22 June 2013

How to get list of countries using firebug, jQuerify and Firefox

While working on a project I wanted a list of all possible countries for my web application. Of course I wanted to put it into database. The query was as shown below:

INSERT INTO Country VALUES(‘CountryName’,1,NOW(),1,NOW());

I found countries from Yahoo directories from this link.

Now imagine how long it would have taken If I would have copied each country name from that page to write insert queries. Instead I used firebug console. Once you open firebug console click on jQuerify (you have to install this add-on separately.)

In firebug console I typed following command

$('ul li a b').each(function(){
document.write("INSERT INTO Country VALUES('" + $(this).text() + "',1,NOW(),1,NOW());<br>");

And it generated following output

INSERT INTO Country VALUES(‘Afghanistan’,1,NOW(),1,NOW());
INSERT INTO Country VALUES(‘Albania’,1,NOW(),1,NOW());
INSERT INTO Country VALUES(‘Algeria’,1,NOW(),1,NOW());
INSERT INTO Country VALUES(‘Andorra’,1,NOW(),1,NOW());
INSERT INTO Country VALUES(‘Angola’,1,NOW(),1,NOW());
INSERT INTO Country VALUES(‘Antigua and Barbuda’,1,NOW(),1,NOW());
INSERT INTO Country VALUES(‘Argentina’,1,NOW(),1,NOW());

So to end, someone said, "Work Smarter, Not Harder…!!!"

Here you can see the video demo.

Thursday, 13 June 2013

System wide equalizer for your Mac, Windows and Ubuntu

As the speed of internet is increasing, most of us prefer to hear songs/music or watch videos online (examples: Spotify, Youtube etc.) than downloading it.  However there are some people who would like to hear every beat of songs/music or while watching educational video preference would be to the vocals. When you hear music offline you can use equalizer available in music applications like Winamp, iTunes etc.

But when you hear music online you don’t have any option to alter equalizer. In this situation you need system wide sound booster or equalizer. I was also searching for the same kind of applications and I found following applications.

For Mac - Boom

Boom-Mac Volume   Boom-Boost File

For Windows - Audio Enhancer Bongiovi DPS Plugin


For Ubuntu - PulseAudio Equalizer

PulseAudio-Equalizer for Ubuntu

If you know any other applications please do post in comments below.