About
Hi there, my name is Shahram Javey, I’m the founder and CEO of Aquacue. This blog is my note book in the cloud. When I’m learning something new, I’ll often add an entry if the new technology or the set up for an experiment at hand takes longer than a few Google searches to figure out.
Disclaimer: Please note that the instructions that you find in these pages are intended for my own use only and it may or may not work for your projects. Use the information that you find here at your own risk, I cannot accept liability.

March 18, 2009 at 11:13 pm |
Hi,
I’m Carlos from Flash Enabled Blog and The Tech Labs. I would like to know if you could give your contribution to The Tech Labs. You can use my e-mail to contact me.
Looking forward to hear from you,
Best,
Carlos
October 30, 2009 at 10:58 pm |
Hello Sir,
I am Rahul, master student in telecommunications.
I am developing a simple application on Telit GM862 GPS modem using python script. I want to toggle a GPIO (General Purpose IO)pin on the
board from a SMS. Like if a SMS text says “ON”, the pin should set to “1″ and if it says “OFF”, pin should set to “0″.
I think I can do the toggling part but where I am facing difficulty is:
1. How to detect an incoming SMS. On the Rsterm it does show the response as “+CMTI: SM, 2″ but how to listen using a python script.
2. How to extract the SMS text using python and use it for invoking desired tasks.
I would really thankful to you if you could guide me on this by taking some time out.
Thanks & Regards,
Rahul
September 9, 2010 at 5:00 am |
I just wanted to say thank you for putting your notes online. I found them to be of great help in my own projects.
Javier Rosa
September 9, 2010 at 6:46 am |
Hi Javier. Glad you found them useful…Best…Shahram
May 19, 2011 at 1:45 pm |
Hello,
Your work is great very much when i have occasion to visite today.
I’m writing to ask you a question about animation of icon in Google map. I have an array of point, so i’d like to animate a icon at the road construted by this points. Is-it possible to do that simply with Javascript?
I’im trying with function SetTimeOut not succesing (please see my project below). In fact, i created a function moveToStep to do that but not worked
Thank you advence for helping me
Van
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
function GoogleMapsCreeCarte(sNomChampCarte,nlat,nlong,ZoomMap)
{
if (nlat==0){ nlat = 48.856558;};
if (nlong==0){ nlong = 2.350966;};
var latlng = new google.maps.LatLng(nlat, nlong);
var myOptions = {
mapTypeControl: true,
zoom: ZoomMap,
center: latlng,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DEFAULT},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
// création de la carte
map = new google.maps.Map(document.getElementById(sNomChampCarte),myOptions);
}
function GoogleMapsCreerMarqueur(lat, long, titre, TxtMess, image, bdeplacable)
{
var optionsMarqueur = {
position: new google.maps.LatLng(lat,long),
map: map,
icon: image,
title: titre,
contenuInfoBulle: TxtMess,
draggable:bdeplacable
}
var marqueur = new google.maps.Marker(optionsMarqueur);
var infobulle = new google.maps.InfoWindow();
infobulle.setContent(marqueur.contenuInfoBulle);
//infobulle.open(map,marqueur);
google.maps.event.addListener(marqueur, “click”, function() {
infobulle.setContent(this.contenuInfoBulle);
infobulle.open(map,this);
});
}
function setMarkers(map, locations,sUrlIcone)
{
for (var i = 0; i < locations.length; i++)
{
var point = locations[i];
var image = new google.maps.MarkerImage(sUrlIcone, new google.maps.Size(45, 45), new google.maps.Point(0,0), new google.maps.Point(0, 12));
var bulleHtml="hello"
GoogleMapsCreerMarqueur(point[2], point[3], point[0], bulleHtml, image, false);
}
}
function GoogleMapsTrajet(map, locations)
{
var flightPlanCoordinates= new Array(locations.length);
for (var i=0;i<locations.length;i++){
var point = locations[i];
var myLatLng = new google.maps.LatLng(point[2],point[3]);
flightPlanCoordinates[i]=myLatLng;
}
var flightPath = new google.maps.Polyline({
path: flightPlanCoordinates,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
flightPath.setMap(map);
}
function setZoom(map, markers) {
var boundbox = new google.maps.LatLngBounds();
for ( var i = 0; i c) {
//yourmarker.setLatLng(yourroute.getStep(c).getLatLng());
window.setTimeout(function(){
moveToStep(yourmarker,yourroute,c+1);
},500);
}
}
function initialize() {
GoogleMapsCreeCarte(“map_canvas”,48.95847, 2.257921666667, 16);
setMarkers(map, Points, ‘C:/Users/vanphu/Desktop/ICONES/stop16.ico’);
GoogleMapsTrajet(map, Points);
setZoom(map,Points)
}
//moveToStep(Points,0);
var Points = [
['SC300ME_3813718', 20, 3.163696666667, 101.659081666667, '30/07/2010 - 22h41m33s', 252.11, 66.67, 251999844, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 21, 3.165191666667, 101.662983333333, '30/07/2010 - 22h41m13s', 233.17, 77.78, 218445412, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 22, 3.165786666667, 101.666011666667, '30/07/2010 - 22h40m53s', 271.58, 53.71, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 23, 3.168513333333, 101.667461666667, '30/07/2010 - 22h40m33s', 200.48, 66.67, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 24, 3.170335, 101.66764, '30/07/2010 - 22h40m13s', 93.07, 3.7, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 25, 3.170455, 101.66604, '30/07/2010 - 22h39m53s', 91.19, 46.3, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 26, 3.170408333333, 101.66559, '30/07/2010 - 22h39m48s', 79.02, 16.67, 251999844, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 27, 3.170511666667, 101.665401666667, '30/07/2010 - 22h37m53s', 345.78, 0, 251991648, 'NO Contact', '','']
,
['SC300ME_3813718', 28, 3.1706, 101.665366666667, '30/07/2010 - 22h20m47s', 358.41, 0, 251999776, 'NO Contact', '','']
,
['SC300ME_3813718', 29, 3.1706, 101.665366666667, '30/07/2010 - 22h20m47s', 358.41, 0, 251991648, 'NO Contact', '','']
,
['SC300ME_3813718', 30, 3.1706, 101.66537, '30/07/2010 - 22h20m42s', 355.91, 0, 252016164, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 31, 3.1706, 101.66537, '30/07/2010 - 22h20m42s', 355.91, 0, 251999780, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 32, 3.170548333333, 101.665383333333, '30/07/2010 - 22h20m22s', 348.32, 0, 251999780, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 33, 3.170548333333, 101.665381666667, '30/07/2010 - 22h20m07s', 125.97, 0, 251999780, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 34, 3.170623333333, 101.665371666667, '30/07/2010 - 22h19m47s', 1.7, 0, 251999780, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 35, 3.170606666667, 101.665385, '30/07/2010 - 22h19m27s', 344.52, 0, 251999780, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 36, 3.170488333333, 101.665401666667, '30/07/2010 - 22h19m07s', 81.03, 0, 251999844, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 37, 3.170555, 101.665403333333, '30/07/2010 - 22h18m47s', 295.48, 0, 251999780, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 38, 3.170555, 101.665403333333, '30/07/2010 - 22h18m47s', 295.48, 0, 251999844, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 39, 3.170516666667, 101.665428333333, '30/07/2010 - 22h18m27s', 340.62, 0, 251999780, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 40, 3.170518333333, 101.665428333333, '30/07/2010 - 22h18m12s', 359.83, 0, 251999780, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 41, 3.170506666667, 101.66541, '30/07/2010 - 22h17m52s', 1.94, 0, 235222564, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 42, 3.170416666667, 101.665571666667, '30/07/2010 - 22h17m32s', 276.07, 14.82, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 43, 3.170256666667, 101.66635, '30/07/2010 - 22h17m12s', 279.71, 33.34, 251999844, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 44, 3.170101666667, 101.669263333333, '30/07/2010 - 22h16m57s', 268.87, 81.49, 251999844, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 45, 3.171176666667, 101.672096666667, '30/07/2010 - 22h16m37s', 222.73, 81.49, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 46, 3.173286666667, 101.672641666667, '30/07/2010 - 22h16m22s', 259.57, 31.48, 251999844, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 47, 3.172343333333, 101.674361666667, '30/07/2010 - 22h16m02s', 226.97, 35.19, 251999844, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 48, 3.175595, 101.676896666667, '30/07/2010 - 22h15m42s', 205.93, 85.19, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 49, 3.177703333333, 101.677753333333, '30/07/2010 - 22h15m27s', 262.43, 37.04, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
,
['SC300ME_3813718', 50, 3.175618333333, 101.68103, '30/07/2010 - 22h15m07s', 313.45, 105.56, 235222628, 'Alarme 1 Inactive, Alarme 2 Inactive', '','']
]
May 19, 2011 at 1:52 pm |
Beacause of pasting, I correct my script about function SetZoom and moveToStep:
function setZoom(map, markers) {
var boundbox = new google.maps.LatLngBounds();
for ( var i = 0; i c) {
//yourmarker.setLatLng(yourroute.getStep(c).getLatLng());
window.setTimeout(function(){
moveToStep(yourmarker,yourroute,c+1);
},500);
}
}
May 19, 2011 at 1:53 pm |
function setZoom(map, markers) {
var boundbox = new google.maps.LatLngBounds();
for ( var i = 0; i c) {
//yourmarker.setLatLng(yourroute.getStep(c).getLatLng());
window.setTimeout(function(){
moveToStep(yourmarker,yourroute,c+1);
},500);
}
}
October 22, 2011 at 9:07 am |
Sir,
I came across your name trying to work with java adobe viewer. Although there have been much works in the open software sphere to create a similar viewer, None of them works so robust and seamless with other java objects such as the Swings. Adobe present tools SDK also needs proprietary visual studio MFC for headers and supports. Regretfully that Java viewers of yours is not a stable product to work with present day situation after passing more than ten years from its first planning. I wonder why Adobe did not keep up with such a marvellous work?
Peter
March 9, 2012 at 10:02 am |
Hello, I would appreciate if you put your name on this About page, and even in your website footer. It took me a while to find it, and I just wanted to add a comment in my javascript code that you designed the nifty UUID generating script.
Kind regards
Adrian vG
March 9, 2012 at 6:04 pm |
Hi Adrian. Good point. I updated the about page. Thank you.