Mobility seems to be the new buzz. All the new smart phones coming out have some sort of location awareness built-in either through cell triangulation or through GPS.
There are a bunch of companies working on location based social networks. Loopt [www.loopt.com] is one of them, the most well know i.e. There are a bunch more Plazes [http://plazes.com/], Zkout [www.zkout.com] .... All of them are doing similar and exciting stuff.
To create a location based social recommendation engine is a very hard problem to solve but to post your GPS coordinates on the web very easy!!!!
With the help of YUI [http://developer.yahoo.com/yui/], Moto Q9c, C#, and AppEngine [http://code.google.com/appengine/] / Fire Eagle [http://fireeagle.yahoo.net/] I have put up this page where anyone can track my whereabouts [Only works on Firefox :=)].
http://otb.appspot.com/render/tomaranand
This was a fun exercise. Will add more stuff (friend locator, location based services ... ) to it slowly ..... very slowly :)
Monday, July 28, 2008
Monday, March 31, 2008
Print hex stream byte array & ASCII representation (Java)
I have found it useful to print the raw hex stream & it's ASCII representation of the network traffic to help debug some protocol issues.
Here is a Java function to take a hex byte array and print it out to the STDOUT_FILENO
Here is a Java function to take a hex byte array and print it out to the STDOUT_FILENO
public static void prettyPrintHex(byte[] data) {
int i = 0, j = 0; // loop counters
int line_addr = 0; // memmory address printed on the left
String line_to_print = "";
if (data.length == 0) {
return;
}
StringBuilder _sbbuffer = new StringBuilder();
//Loop through every input byte
String _hexline = "";
String _asciiline = "";
for (i = 0, line_addr = 0; i < data.length; i++, line_addr++) {
//Print the line numbers at the beginning of the line
if ((i % 16) == 0) {
if (i != 0) {
_sbbuffer.append(_hexline);
_sbbuffer.append("\t...\t");
_sbbuffer.append(_asciiline + "\n");
}
_asciiline = "";
_hexline = String.format("%#06x ", line_addr);
}
_hexline = _hexline.concat(String.format("%#04x ", data[i]));
if (data[i] > 31 && data[i] < 127) {
_asciiline = _asciiline.concat(String.valueOf((char) data[i]));
} else {
_asciiline = _asciiline.concat(".");
}
}
// Handle the ascii for the final line, which may not be completely filled.
if (i % 16 > 0) {
for (j = 0; j < 16 - (i % 16); j++) {
_hexline = _hexline.concat(" ");
}
_sbbuffer.append(_hexline);
_sbbuffer.append("\t...\t");
_sbbuffer.append(_asciiline);
}
System.out.println(_sbbuffer.toString());
}
Saturday, March 15, 2008
VM On USB: Carry your OS on USB!
Ever wanted to carry your desktop environment with you?
An easy way would be to put your desktop environment(s) on a mass storage device along with the VMPlayer MSI and have a small executable that would take care of install/uninstall of VMWare Player and launching your VM(s).
Here is a small tool in C# for doing this. Here is how it looks:
These images above show the following sequence:
1. Installs VMWare Player.
2. Launches VM(s)
3. Uninstalls VmWare Player.
The code follows the same sequence as well.
The directory structure on the USB would look like:
Here are some files associated with it:
USB-OS(F:)
|---- autorun.inf
|---- config.icon
|---- VMOnUSB.exe
|---- LICENSE.txt
|---- vmplayer-installer
|----VMware Player.msi
|---- images
|---- DamnSmallLinux3.4
|---- DamnSmallLinux3.4.png
|---- dsl.vmx
Source can be downloaded from [http://tomaranand.googlepages.com/VMOnUSB-src.zip]
VM(s) can be downloaded from [http://www.vmware.com/appliances/]
An easy way would be to put your desktop environment(s) on a mass storage device along with the VMPlayer MSI and have a small executable that would take care of install/uninstall of VMWare Player and launching your VM(s).
Here is a small tool in C# for doing this. Here is how it looks:
These images above show the following sequence:
1. Installs VMWare Player.
2. Launches VM(s)
3. Uninstalls VmWare Player.
The code follows the same sequence as well.
The directory structure on the USB would look like:
Here are some files associated with it:
USB-OS(F:)
|---- autorun.inf
|---- config.icon
|---- VMOnUSB.exe
|---- LICENSE.txt
|---- vmplayer-installer
|----VMware Player.msi
|---- images
|---- DamnSmallLinux3.4
|---- DamnSmallLinux3.4.png
|---- dsl.vmx
Source can be downloaded from [http://tomaranand.googlepages.com/VMOnUSB-src.zip]
VM(s) can be downloaded from [http://www.vmware.com/appliances/]
Saturday, February 9, 2008
JVM for Windows Mobile
JVM can be installed on a Windows Mobile device using WebSphere Everyplace Micro Environment
All you need from there is the CLDC 1.1/MIDP 2.0 for Windows Mobile 5.0 Smartphone Edition/ARM executable. Install it on your computer.
Then go to the installation directory and extract the only zip file there. In the extracted directory you will find docs/install.pdf. Just follow the simple steps showing you how to deploy J9 onto your phone.
Now you can install Gmail on your windows mobile device (yes that was my only goal :=))
To create a shortcut on your Start Menu create a .lnk file with the following contents in one line:
38#"\J9\MIDP20\bin\j9midp20.exe" -classpath "\J9\MIDP20\apps\gmail\gmail-g.jar" "-Xbootclasspath:\J9\MIDP20\lib\jclMidp20\jclMidp20.jxe" javax.microedition.lcdui.AppManager "\J9\MIDP20\apps\gmail\gmail.jad"
gmail-g.jar: http://gmail.com/app/v1.5.0/L1/gmail-g.jar
gmail.jad: http://gmail.com/app/gmail.jad?make=Generic&model=Advanced+MIDP2&ver=
All you need from there is the CLDC 1.1/MIDP 2.0 for Windows Mobile 5.0 Smartphone Edition/ARM executable. Install it on your computer.
Then go to the installation directory and extract the only zip file there. In the extracted directory you will find docs/install.pdf. Just follow the simple steps showing you how to deploy J9 onto your phone.
Now you can install Gmail on your windows mobile device (yes that was my only goal :=))
To create a shortcut on your Start Menu create a .lnk file with the following contents in one line:
38#"\J9\MIDP20\bin\j9midp20.exe" -classpath "\J9\MIDP20\apps\gmail\gmail-g.jar" "-Xbootclasspath:\J9\MIDP20\lib\jclMidp20\jclMidp20.jxe" javax.microedition.lcdui.AppManager "\J9\MIDP20\apps\gmail\gmail.jad"
gmail-g.jar: http://gmail.com/app/v1.5.0/L1/gmail-g.jar
gmail.jad: http://gmail.com/app/gmail.jad?make=Generic&model=Advanced+MIDP2&ver=
Subscribe to:
Posts (Atom)