My unused Yahoo account got compromised yesterday (Sun, Nov 25, 2012 at 2:22 PM). Someone logged in from Vietnam. Or most likely that someone relayed through a server located in Vietnam with the IP address 123.22.191.25. pfft..
I got notified to my another email account that the Yahoo account's password got changed. Well there was two emails, one at 2:22 PM and the other at 2:23 PM. When I entered the password, Yahoo mail asked the security question, but I opted for verification code to be sent to my another email account.
Anyway, I got hold of the account, but who needs a Yahoo account anyway. I just initialized account termination.
Relayed login IP address screenshot | Relayed login Country Info screenshot
Tuesday, November 27, 2012
Monday, November 19, 2012
Open Links In Background Tab
A snippet to open links in a background tab. The idea is to trigger a mouse click event with control key pressed set as true, to open the clicked link in a background tab.
Update: Stopped working with Google Chrome dev release 41.0.2224.0 after 2014-11-20.
<!-- html -->
<div>class="bgLink" href="http://www.qlambda.com">qlambda</div>
<div>class="bgLink" href="http://www.google.com">Google</div>
//jsReference: initMouseEvent
window.onload = function () {
//event listeners
var a = document.querySelectorAll(".bgLink");
if (a != null) {
var len = a.length, i=0;
if (len > 0) {
for (i = 0; i < len; i++) {
a[i].addEventListener("click", openNewBackgroundTab, false);
}
}
}
// event handlers
// open links in background tabs
function openNewBackgroundTab(e){
var a = document.createElement("a"), evt;
a.href = this.getAttribute('href');
evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(evt);
e.preventDefault();
}
};
Update: Stopped working with Google Chrome dev release 41.0.2224.0 after 2014-11-20.
Sunday, November 18, 2012
Install Java SDK in Nokia N900
Nokia N900 with Maemo Operating System is one true computer rather than a smartphone or an internet tablet. One of the judging criteria is whether we can develop applications right on the phone. With Nokia N900, we surely can.
Java platform is an amazing environment. We have the JRE with the JVM and the libraries, and of course with Java and a whole bunch of JVM languages like Clojure, Groovy, Scala etc. To develop applications in Java we need the Java Standard Development Kit (JDK) which contains the compiler and the supporting files. The cool thing about Maemo is that we can install JDK compiled for the ARM architecture.
The easiest way is to install the IceTea6 version of the OpenJDK preset at the maemo repository.
To manually install, follow the steps below.
1. Get OpenJDK for ARM. Cambridge Software Labs (link down) provides optimized version of OpenJDK for ARM. Download OpenJDK v1.6.0_0. (Mirror).
2. Copy the archive to
6. Test the installation by typing in the following commands.
Java platform is an amazing environment. We have the JRE with the JVM and the libraries, and of course with Java and a whole bunch of JVM languages like Clojure, Groovy, Scala etc. To develop applications in Java we need the Java Standard Development Kit (JDK) which contains the compiler and the supporting files. The cool thing about Maemo is that we can install JDK compiled for the ARM architecture.
The easiest way is to install the IceTea6 version of the OpenJDK preset at the maemo repository.
To manually install, follow the steps below.
1. Get OpenJDK for ARM. Cambridge Software Labs (link down) provides optimized version of OpenJDK for ARM. Download OpenJDK v1.6.0_0. (Mirror).
2. Copy the archive to
/opt
directory of the phone. Say you have downloaded or copied the file to MyDocs/tmp
, then run the below command to copy it to /opt
. We need to be root to preform the following operations. Install rootsh
from the maemo-extras
repository to get root privilege, if not done already.cd #home dir3. Extract the archive.
sudo cp MyDocs/tmp/OpenJDK-camswl.tar.gz /opt #copy file
cd /opt4. Add
sudo tar zxvf OpenJDK-camswl.tar.gz #extract the archive
sudo rm OpenJDK-camswl.tar.gz #delete the archive
/opt/OpenJDK-camswl/bin
to PATH
.cd /etcAdd the line to the file after the already present export path statement, save and exit vim (:wq). The file will look like:
sudo vim profile #open the file
# ...5. Exit and relaunch the terminal.
export PATH="/usr/bin:/bin"
#JDK
export PATH=$PATH:/opt/OpenJDK-camswl/bin
# ...
6. Test the installation by typing in the following commands.
java -version #prints java version "1.6.0_0"Happy hacking !
javac -version #prints javac 1.6.0_0
javap java.util.Date #lists all methods in Date class
Friday, November 9, 2012
BeanShell: The Java Interpreter (JSR-274)
BeanShell is a pure Java interpreter. BeanShell uses BeanShell Scripting Language which is a Java syntax compatible scripting language for the Java platform (JSR-274). BeanShell supports dynamic execution of the full Java grammar and semantics with transparent access to Java objects and APIs. It also provides additional scripting features which is a strict superset of the Java language syntax.
Setting up BeanShell
1. Download latest BeanShell jar file. The current one is bsh-2.0b4.jar.
2. Place the jar file in a directory say
3. Set
4. Open command prompt and run
Now we have a fully working Java interpreter which we can use to quickly prototype ideas. The interpreter is similar to what we see in other dynamic languages like Python or Groovy.
Setting up BeanShell
1. Download latest BeanShell jar file. The current one is bsh-2.0b4.jar.
2. Place the jar file in a directory say
D:\env\javaLibs\
.3. Set
CLASSPATH
environment variable pointing to BeanShell jar file. It will look like .;D:\env\javaLibs\bsh-2.0b4.jar;
under Windows. The .
is to look for classes in the current directory. If the variable is already present, append the path at the end separating the paths with a semi-colon.4. Open command prompt and run
java bsh.Interpreter
(assuming that JDK or JRE is present in the path).Now we have a fully working Java interpreter which we can use to quickly prototype ideas. The interpreter is similar to what we see in other dynamic languages like Python or Groovy.
Friday, November 2, 2012
Get HTML5 Canvas Click Co-ordinates
Click co-ordinates for HTML5 canvas element can be obtained using both layerX, layerY property or offsetX, offsetY of the click event.
Firefox does not support offsetX, offsetY so we have to use layerX, layerY amd opera does not support layerX, layerY, so we have to use offsetX, offsetY.
Firefox does not support offsetX, offsetY so we have to use layerX, layerY amd opera does not support layerX, layerY, so we have to use offsetX, offsetY.
<html>
<head>
<meta charset="utf-8">
<script src="script.js"></script>
</head>
<body>
<canvas id="myCanvas"></canvas>
</body>
</html>
//script.js
window.onload = function () {
var canvas = document.querySelector('#myCanvas'),
ctx = canvas.getContext("2d");
//draw something
ctx.fillStyle = "#000000";
ctx.strokeStyle = "#000000";
ctx.beginPath();
ctx.rect(100, 100, 300, 100); //x, y, width, height
ctx.fill();
ctx.stroke();
ctx.closePath();
//listen for click event
canvas.addEventListener("click", function (e) {
var cX, //will contain clicked x co-ordinate
cY; //will contain clicked y y co-ordinate
if (e.offsetX == null) { //in case of Firefox
cX = e.layerX;
cY = e.layerY;
} else { //in case of Opera layerX does not work, use offsetX instead
cX = e.offsetX;
cY = e.offsetY;
}
console.log("clicked at: " + cX + " " + cY);
}, true);
}
Subscribe to:
Posts (Atom)