Okay. Winking, and similar. Complex and insecure (from my lazy and paranoid point of view that is), I say.
Some similar fun ? Easy. Calculate the SHA-1 of the location.href - and look it up in blogsearch. Effectively (given enough users know about and use the 'tool') - this would mean putting the link from the said location to your page.
Ideally there should be also a "sinking" mechanism - so that those 'promoters' that bring the junk up in the searches, would be easy to calm down, but for the start it is fun as is. Maybe Google folks get interested, who knows... After all, it's a whole new area - 'Forward-Linking' :-)
Anyway, enough noisy words.
Steps to get this running:
1. Go to the
http://stdio.be/webtools/compact.html 2. Take the script from this page below (as shown in the 'text' - do not take the source), and paste it into the text area. Press the 'Make bookmarklet' link, and drag the resulting link to your toolbar.
3. Go to the website of interest, and if you want to look at "hash/links" - just press the button. It would calculate the SHA1 hash of the URI, and send you to the blog search page for that result. you can paste this big hex value into your blog, if you want to make a new 'forward link' entry. I've already placed a 'forward link' to '
http://www.google.com/' - so you can use it as a test.
4. By using all this stuff, you agree that the thing is supplied 'as is', without any implied or expressed warranty of any kind, sort, smell, colour, etc. Use at your own risk.
5. If Google folks find this stuff uncool for this or that reason, I will indeed remove this page from the public view.
Here goes the text of the script:
---- cut here-----
/* The sha1hash functions (c) Chris Veness, from
http://www.movable-type.co.uk/scripts/SHA-1.html; Glued together by pruntf -
http://www.livejournal.com/users/pruntf */
function sha1Hash(msg)
{
var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];
msg += String.fromCharCode(0x80);
var l = Math.ceil(msg.length/4) + 2;
var N = Math.ceil(l/16);
var M = new Array(N);
for (var i=0; i M[i] = new Array(16);
for (var j=0; j<16; j++) {
M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) |
(msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
}
}
M[N-1][14] = ((msg.length-1) >>> 30) * 8;
M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;
var H0 = 0x67452301;
var H1 = 0xefcdab89;
var H2 = 0x98badcfe;
var H3 = 0x10325476;
var H4 = 0xc3d2e1f0;
var W = new Array(80); var a, b, c, d, e;
for (var i=0; i
for (var t=0; t<16; t++) W[t] = M[i][t];
for (var t=16; t<80; t++) W[t] = ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);
a = H0; b = H1; c = H2; d = H3; e = H4;
for (var t=0; t<80; t++) {
var s = Math.floor(t/20);
var T = (ROTL(a,5) + f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
e = d;
d = c;
c = ROTL(b, 30);
b = a;
a = T;
}
H0 = (H0+a) & 0xffffffff;
H1 = (H1+b) & 0xffffffff;
H2 = (H2+c) & 0xffffffff;
H3 = (H3+d) & 0xffffffff;
H4 = (H4+e) & 0xffffffff;
}
return H0.toHexStr() + H1.toHexStr() + H2.toHexStr() + H3.toHexStr() + H4.toHexStr();
}
function f(s, x, y, z)
{
switch (s) {
case 0: return (x & y) ^ (~x & z);
case 1: return x ^ y ^ z;
case 2: return (x & y) ^ (x & z) ^ (y & z);
case 3: return x ^ y ^ z;
}
}
function ROTL(x, n)
{
return (x<>>(32-n));
}
Number.prototype.toHexStr = function()
{
var s="", v;
for (var i=7; i>=0; i--) { v = (this>>>(i*4)) & 0xf; s += v.toString(16); }
return s;
};
location.href='
http://blogsearch.google.com/blogsearch?hl=en&q='+ sha1Hash(location.href); +'&btnG=Search+Blogs';
upd:
http://illyn.livejournal.com/143982.html Deja vu... :)