Connecting Google Nexus 7 to Windows XP Laptop : Solved

I just got my hands on the new Google Nexus 7 16 gb tab. My work laptop has Windows XP on it and I was expecting that XP will just detect Nexus 7 like any other USB device. Well that didn’t happen :( . Windows deteced that Nexus was plugged in but couldn’t install any drivers for it. At this point ASUS or Google do not have any drivers posted for Nexus 7 on the website. To get your Nexus 7 connected to an XP laptop / PC, try the following things (it worked for me atleast..)

1. Ensure that you have Windows Media Player 11 as MTP (Media Transfer Protocol) is not available in WMP 9 Series. You may also download and install MTP Porting Kit (Click here to download) if you don’t want to install WMP 11.
*Note: Some users found that upgrading to WMP11 solved the problem when just installing MTP didn’t work. If standalone MTP Porting Kit doesn’t help try upgrading to WMP11. 

2. Download Android USB Drivers and extract the files.
Download Mirror 1 ( – Click here to download
Download Mirror 2 ( – Click here to download

3. Goto Device Manager. Right click on Nexus 7 and choose update driver. Choose install from a list or specific location. Uncheck “Search Removable Media” and Check “Include this location in the search”. Click on the browse button next to it and select the folder where you extracted the android usb drivers.

4. Click ok to begin installation. Windows XP should now be able to install the Drivers for Nexus 7 without any issues.

If you found other methods to connect Nexus 7 to windows XP, please post your finding in the comments.

Displaying AggregateResult on Visualforce Page : Solved

I wanted to display records from an aggregate query on my visualforce page. I expected this to be pretty staright forward but it turns out there are many ways to get this done and most solutions on the forums were not as straight forward as I expected.

I was storing my results in a list of AggregateResult sobjects. Following is the code of my controller extension.

public class PartnerController {

 private final Account acct;
 private list<AggregateResult> resellers;
 public PartnerController(ApexPages.StandardController stdController){
 this.acct = [select id, name from Account where id=:ApexPages.currentPage().getParameters().get('id')];
 resellers = [SELECT Sold_To_Id__c id, Sold_To__r.Name Name, sum(Price__c) Sales FROM Transaction__c where Sold_By__c = GROUP BY Sold_To_Id__c, Sold_To__r.Name order by sum(Price__c) desc];
 public list<AggregateResult> resellerlist {
 get { return resellers;}


However, you cannot refer to the fields in this sobject inside visualforce using the standard notion. For example the code below will cause an error like “Invalid field Id for Sobject AggregateResult”

<apex:pageBlockTable value="{!resellerlist}" var="o">
<apex:column >
<apex:facet name="header">Id</apex:facet>
<apex:column >
<apex:facet name="header">Name</apex:facet>
<apex:column >
<apex:facet name="header">Sales</apex:facet>

Instead you should refer to the field in the sobject using the var['fieldname'] notion. Other solutions used a wrapper class and some even mentioned that it is not possible to bind directly to the AggregateResult sobject. For me the example given below works and does not require use of a wrapper class.

<apex:pageBlockTable value="{!resellerlist}" var="o">
<apex:column >
<apex:facet name="header">Id</apex:facet>
<apex:column >
<apex:facet name="header">Name</apex:facet>
<apex:column >
<apex:facet name="header">Sales</apex:facet>
</apex:pageBlockTable> IDE – JVM terminated. Exit code=-1 Error [Solved]

Just installed IDE on my XP laptop, using the standalone installer from Salesforce website. This is a pulse based installer that installs IDE as an eclipse plugin. However, once the installation finished I was greeted with the following error: JVM terminated. Exit code=-1. Below is a screenshot of the error pop-up..

forceide-6-9-2011-2.16.28 PM

How to solve this issue : In my case the problem was that -XX:MaxPermSize of 512 MB was causing the JVM to crash. The solution is simple. open forceide.ini file. This file will be located in the same folder where your forceide.exe is installed. eg. “C:\Program Files\\ IDE\forceide.ini”. The content of this file are as follows -

#utf8 (do not remove)
C:\Program Files\\ IDE
C:\Program Files\\ IDE\configuration

To fix this error, change the value of -XX:MaxPermSize from 512M to 256M. After making this change, I was able to start IDE without any issues.

GTA 4 – Shared Graphics Memory – Increase Available RAM

Bought a copy of GTA 4 yesterday and to my surprise the frame rate was like 6 fps. My config is as follows
Intel i5 760 Quad Core Processor
8 GB DDR3 1600 Mhz RAM
NVidia Geforce 8800 GTS 320 MB

It turned out that GTA was only using the dedicated memory of the card ie. 320 MB only. There was no obvious option to make the game use my surplus RAM as shared graphics memory. Finally found the solution here. Basically you need to create a new text file called commandline.txt in the GTA folder where your exe files are located. In this file add the following command without quotes “-availablevidmem 4.0″. This increased the memory available to GTA by a multiplier of 4.0 ie. now it was able to use 320×4=1280 MB of RAM. Now the game is giving me a frame rate of 40+ and am able to play the game without any problem. So yes, you me able to play GTA 4 if you graphics card does not have a lot of dedicated memory as long as you have plenty of system RAM to compensate.

Developerforce Wiki Login Error Solved : Salesforce

If you have come across the following database error on developerforce documentation site and are still clueless on how to solve this problem.. read on.

Site :

You are trying to : Login to wiki / download Fundamentals: Custom Application Development in the Cloud

Error Message :

A database query syntax error has occurred. This may indicate a bug in the software. The last attempted database query was:

(SQL query hidden)

from within function "User::saveSettings". MySQL returned error "1062: Duplicate entry ‘Alok Agrawal (Alok Agrawal)’ for key ‘user_name’ (localhost)". Retrieved from ""

Following is a screenshot of the error message


Resolution :

To resolve this error all you need to do is change your name in the personal information area in developer login setup.

Steps -

1. Click on Developer Login and login to your account.
2. Click on the setup link on the main page.

3. Click on Personal Setup –> Personal Information –> Edit

4. Change your first name and / or last name.

Thats it! Now when you try to login to wiki there should be no problem. Also if you just want to download the Platform Fundamentals pdf ebook you can do so from outside the wiki. Follow these steps to download this book from

1. Select the hardcopy option from the available options.

2. Select the file download option below the add to cart button.

The exact hardlink is as follows :

Hope this helped as I could not find any resolution to this problem on the developerforce discussion forum.

Hello world.. again!

The production database on my server got nuked last weekend and there is no backup. Sadly, I have learned the virtue of backing up the hard way. I am trying to salvage what I can from the raw files, lets see if I succeed.

Remote control your home computer!

I recently setup my home computer so that I could control it remotely. I help out my Mom with issues on her PC or install some software and it was quite difficult as I could not see what’s there on her screen. In our organization the It service team uses Dameware Mini Remote Control to resolve problems remotely and I wanted to setup something similar. Here is what I did..

Home PC Configuration –
Windows XP Professional – Connected to internet via Home Router – Dynamic IP provided by ISP

My PC Configuration –
Windows Vista – Connected to internet via Home Router – Dynamic IP provided by ISP

Initial Setup –

One issue was that I had to do the setup for remote configuration remotely and so needed the easiest way to get remote control for initial setup. I created a trial WebEx account and used the remote control feature of WebEx to gain control over home computer. This is the probably the easiest way when the remote computer is behind a firewall / home network. Another option would be to use Windows Remote Assistance.

Tackling Dynamic IP -

Once I gained control of the remote machine, the first problem to solve was that of Dynamic IP. since the internet connection at home came with a dynamic I needed a way to reach my home computer without having to worry about the constantly changing IP address. The solution is to use a DDNS or dynamic dns server. provides a free service for this. You need to first create an account and add a hostname of your choice that you would like to assign to your home computer. After that you need to install the DynDns update client on the home computer so that any change in the home IP address is communicated back to the server.

Remote control software options –

You could use a free software like TightVnc or commercial software like Dameware Mini Remote Control for this. whatever option you choose you need to take down details of the port for client server communication and forward the same on your home router. Once that done here’s what you need to do..

TightVnc -

Install TightVnc server on your home computer, assign a username and password for remote connections or use windows authentication. If you plan to use windows authentication make sure that all users on home computer have strong passwords and guest accounts are turned off.

Install TightVnc viewer on the machine from which home computer will be remote controlled. Now try to make a connection to your home computer by using the hostname created in DynDns and everything should work fine.

Dameware Mini Remote Control -

If you have purchased Dameware Mini Remote Control here is what you need to do..
Install DameWare Mini remote control application on your personal computer. Create an installer for the Remote Control Client Agent using Dameware Mini Remote Control Client Agent MSI builder. The beauty of this tool is that you could pre-configure all the settings and no configuration is required when deploying the MSI.

Deploy the DMRC Client Agent on home computer using the MSI you created. Make sure you have forwarded the port (default is TCP 6129) on your home router. That’s it. If everything is fine you should be able to make a remote connection now. You may need to restart the remote computer once after the deployment of DMRC Client Agent for the Mirror Video driver to be functional. Although you could make a remote connection without restarting the performance improvement in frame rate is visible only after the reboot as this is required for mirror video driver installation to complete.

Let me know if this approach worked for you. If you have any questions or face any problems please post in the comments section and i will try my best to help. So long..

IBM Rational Certified Solution Designer : Object Oriented Analysis and Design vUML 2


I appeared for the IBM Rational Certified Solution Designer Certification in August 2009 at the IBM Rational Software Conference 2009 in Bangalore and cleared both test 833 and 834 with ease. My preparation strategy included studying from UML Distilled 3rd edition by Martin Fowler and Applying UML and Patterns by Craig Larman. I would also suggest studying from Analysis and Design Discipline in Rational Unified Process. This is specially important for Test 834 as a lot of questions on Subsystems come from this content. Make sure that you read & understand every statement (everything is important).

There were many questions that were from some other source that I have not been able to figure out. One relief for test 834 was that there were many exhibit based questions and so if you have studied the notation thoroughly you should have no trouble answering them. On the topic of concurrency there were come questions on Active Classes but nothing on Capsule. Also there were multiple questions on Inputs to a particular task. Following are some of the important concepts..

1. Classes, Components, Subsystems & Interfaces
2. Structured Classes & Ports
3. State Machines, Events and Signals, Asynchronous flows
4. Sequence Diagrams
5. Subsystem Design
6. Use Case analysis and design
7. Architectural Analysis
8. Analysis & Design Mechanisms

I feel test 834 is quite difficult when compared to 833. Also sometimes the choices given did not make sense and I just had to make a guess at it. The most important thing is that the test expects you to have considerable experience in object oriented methodology. I have been using object oriented techniques for many years now which made answering many questions very easy. The point to remember is that there would be many questions that you may not be able to answer based on your exam preparation alone. Your experience will be a great asset then..

Picture Upload Not Supported By Blog Error – Windows Live Writer & WordPress : Solved

If you are trying to publish a post containing pictures to a WordPress blog using windows live writer you may encounter the following error.

“The following pictures cannot be published because the blog does not support picture publishing.”


The error could be caused due to several reasons. In my case the error was caused due to two reasons. One, I had not created the uploads folder in wp-content and two after creating I did not CHMOD it to 777.

To solve this problem try the following.

1. Go to your WordPress site admin, look for the Settings panel (bottom – left corner) and click on Miscellaneous option.


2. Make a note of the upload folder.


3. Now open an FTP connection to your site and browse to your WordPress folder. 
Check for wp-content/uploads folder and create if it does not exist

4. Folder Permissions – Check if the folder has read , write & execute permissions for owner, group and everyone. ie. make sure the permission level is 777. If not CHMOD the folder to 777.

Thats it! You should now be able to create posts with images.

HL7 File Rename Application – Based on Open Source HL7 API by UCH

As promised in my previous blog here is a preview of the application I am developing to rename hl7 messages to reflect patient demographic information in the filename.

The HL7 file rename application is a utility software which scans specified folders for HL7 files. The application then parses these files to pickup patient demographic information like firstname, lastname, date of birth etc. from the PDI segment and renames the files to include this information in filename. The benefit is that users can now locate HL7 files for a particular patient using normal file search utilities like windows search, google desktop search etc.

I created this application using Visual C# 2008 express edition & NHapi HL7 parser by UCH. The application is designed to be able to process large volumes and all time consuming operations are performed on independent threads so that the UI remains responsive. The user can also view detailed statistics including current progress, files successfully processed, number of errors, time elapsed, time remaining etc.


The flow of the application is as follows.

1. User sets up a new job by clicking on the job setup button. User can select the folder where the HL7 files are located. In this version the user can also select a folder which contains pdf files associated with the HL7 files. User can select the rename mode and auto repair options for messages with parse errors.


2. User starts the scanning and parsing process by clicking on the parse button. This operation is performed on a background thread. Detailed statistics of the processing operation are shown while the operation is being performed.


3. The renaming operation can be performed if at least one file was found. The renaming operation is also performed on a background thread and statistics are visible while the operation is being performed.



4. The message log shows useful information, error messages etc.


These screenshots are from the latest stable version of the application. I will post the source code here soon. Many thanks to the NHapi team for their excellent API. To know more about NHapi please visit