[Javascript] Calculate a percentage of something [quick]
Cut and paste the below into the
section of your page:[cc lang=”javascript”]
[/cc]
Sometimes I write about tech and code, and sometimes I don't.
Cut and paste the below into the
section of your page:Hey Towelie, if your reading this you should definitely play these tunes on your phone’s keypad
Deck The Halls
9+ |6| 3 2 1 2 3 1
|2 3 6 2| 3+ |2| 2 1 2- 9+ |6| 3 2
1 2 3 1 |2 3 6 2| 3+ |2| 2 1 2-
2+ |3| 6 2 3+ |6| 9 2
|1 2 6 9| #+ 9 6 3- 3+ |2| 2 1
1 2 3 1 |# # # #| 9- |6| 3 2 1-
We Wish You A Merry Christmas
1 3 |3 6 3 2| 1 1 1 4 |4 6 4 3| 2 1 1 9 |9 # 9 6|
3 1 |1 1| 1 6 2 3-
1 3 3 3 2- 2 3 2 1 1- 6 9 |6 6 3 3| #
1 |1 1| 1 6 1 2-
The Little Drummer Boy
1- 1 2- 2 2 |3 2| 3 2- 2-
1 1 2 3 3 3 3 |6 3| 6 2- 2-
2 3 6 9 9 9 # |9 6| 3 2- 2-
1 2 3 6 6 6 9 |# 9| 6 3-
|9 6| 3 2- |6 3| 2 1- 1-
1- 1 2 2 2 2 |3 2| 3 2- 2-
|2 1| 2 1- 1-
Ninety-Nine Bottles Of Pop
|6 6 6 1 1 1 6 6 6| 6+
|9 9 9 2 2 2| 9- 3 |3| 3+
|3 3 3| 3+ |1 1 1 2 2 3|
|6 6 6| 6+
Pop Goes The Weasel
2 |2| 3 |3 6 # 6| 2 |1|
2 |2| 3 |3| 6+ 2 |1|
2 |2| 3 |3 6 # 6| 2+
|#| (P) (P) 3 |9| 6+ 2+
Bingo
|1 6 6 1 1 2 2 1 1|
|3 3 6 6| 9 3 9 9 |# # #|
6 6 |9 9| 9 3 3 |6 6 6 3|
|3 1 2 3| 6 |6|
Twinkle, Twinkle Little Star
1 1 9 9 # # 9- 6 6 3 3 2 2 1-
9 9 6 6 3 3 2- 9 9 6 6 3 3 2-
1 1 9 9 # # 9- 6 6 3 3 2 2 1-
Here Comes Santa Claus
1 6 |3 3| 2 1 6 |3 3| 2
1 9 |9 9| 6 9- 1 |9 9| 6 |3 3|
1 9 6 |3 3| 1 # # 9 #-
6 # 9 6 3 9 6 3
2 2 6 3 2 1- 6 # |9 9| 6
6 # 9 3 |9 9| 6 3 2 1-
Jingle Bells
|1 9 6 3| 1 ||1 1|| |1 9 6 3|
2 |2 9 6 3| 2 (P) |# # 9 6| 9 (P)
|1 9 6 3| 1 (P) |1 9 6 3| 2 (P) |1|
|1 6 3 2 9 9 9 9 # 9 6 3| 2
|6 6| 6 |6 6| 6 |6 9 2 3| 6 (P)
|9 9 9 9 9 6 6 6 6 6 3 3 6| 3 9
|6 6| 6 |6 6| 6 |6 9 2 3| 6
|9 9 9 9 9 6 6 6 6 # # 9 3| 1
Mary Had A Little Lamb
3 |2 1 2 3 3| 3
|2 2| 2 |3 9| 9 3 |2 1 2|
|3 3 3 3 2 2 3 2| 1
Here We Come A-Wassailing
1 |2| 3 |2| 1 |2| 3 |2| 1 |6| 6 |6| 6-
# |#| 9 |3| 9+ 6 |3| 2 |1| 2 |3| 6+
|2 3| 6 |# 9| 6 |2 3 6 6 # 9|
6 |3 6| 9 |# 6 9 3 2 1 2| ||3|| |6 2|
6 |3 6| 9 |# 6 9 3 2 1| 1-
O Christmas Tree
1 |3| ||3|| 3 6 |9| ||9|| 9+ |9 6 9| # 2
6 3 1 |2| ||2|| 2 3 |6| ||6|| 6+ |6|
|3 6| 9 2 6 3 (P) |9 9 6| #+ |9|
|9 6| 6+ |6 6 3| #+ |9 9 6| 6 1
|2| ||2|| 2 3 |6| ||6|| 6+ |6 3 6| 9 2 6 3
Joy To The World
# |9| ||6|| 3+ |2| 2 1 1 |3| 6+ |6|
9+ |9| #- |# # 9 6 3 3| ||2|| |1 #|
|# 9 6 3 3| ||2|| |1 1 1 1 1| ||1 2||
9# ||6 3|| |2 2 2| ||2 3|| 6+ ||3 2||
|1| # |9 6| ||3|| |2 3| 3 2 1-
We Three Kings
9 |6| 3 |1 2 3 2| 1 (P) 9 |6|
3 |1 2 3 2| 1 (P) 3 |3| 6 |6|
9 |9 # 9 9 6 9 6| 3 |2| 1+
3 |9| 6 |6| 6 |1| 6 |2| 6 (P) 6 |6|
6 |1| 6 |2| 6 (P) 3 |3| 6 |9|
# |9| 6 |9| 3 |3| 3 |1| 3 |2| 3+
O Come All Ye Faithful
6 6- 1 3 6- 1- 9 6 9 # 9- 6 6
6- 3 2 3 6 9 # 3- 2+ |1| 1-
#- 6 3 9- 6- 3 6 2 6 3+ |2| 1 6
6 3 6 9 6- 1 9 9 6 9 # 9- 6 9
# 9 6 3 2- 3 # 9- 6+ |3| 3-
She’ll Be Coming Around The Mountain
2 3 6 6 6 6 3 2 1 2
3- 3 6 9 9 9 9 # 9 6 3
6- # 9 6 6 6 6 3 2 2 2
1 1 1 1 9 6 3 2 1 1 1 1
6 3 1 2 3-
Old MacDonald Had A Farm
|3 3 3 1 2 2 1 9 9 6 6|
3+ |1 3 3 3 1 2 2| 1
|9 9 6 6| 3+ ||1 1|| |3 3 3| ||1 1||
|3 3| 3 ||3 3|| |3| ||3 3|| |3| ||3 3 3 3|| |3 3|
|3 3 3 1 2 2 1 9 9 6 6| 3-
Ring Around The Rosy
|3 3 2 6| 3 2 |3 3 2 6|
3 2 3 2 3 |2 2| 3 3 1-
Sakura, Sakura
6- 6- 6- 6- 6- 9- 6- 3- 6- 9- 6- 6-
6- 3- 6- 3 6 9- 3- 6- 3- 6- 6- 6- 3-
(P) (P) # # # 9- 9- (P) # # # 9- 9- 6- 6-
9- 6- 2- 3- (P) (P) 2 2 3- 2 2 3-
2 3 6 3 2 |3 2| 1 9 6 9 # 9 |9 6| 3 2 3- 9 6
6- 2- 3 6 9 6 3- 9- # 9 9 6 3 3 2 2
1 1 2 2 (P) (P) # # 9- 6 3 2 3 6 1 2 2
6- 6- 6- 3- 6 6 9- 6 6 9- 6 3 2 3
6 |3 6| 2 2 (P) (P) 6- 2- 6 6 3 3 1 1 2 2
(P) (P) 6 6 9 (P) 6 6 3 (P) 6 (P) 6 (P) 6
Rudolph The Red-Nosed Reindeer
|3 2 3 9 3 #| 6 |2 9| 3 |3| 9 6 |3| 9 |3 #| 6 |2|
|9| 3 |3| 9 6 3- 2- 2- 1- 2- 6 # #- 9- |3 6| 3 1 #
6 3- |3 6 3 6| 3 # 9- |2 3| 2 1 9 6 3-
|3 6 3 6| 3 6 1- |3 6| 3 1 # 6 3-
|3 6 3 6| 3 6 3- |2 3| 2 1 9 6 3-
|3 6 3 6| 3 9 3- 9- #- #- # 9
6- 9- 3- 1 2 3 6 #- #- 6 6 9 #
9 6 9- |3 6| 3 1 # 6 3- |3 6 3 6| 3 6 3-
6- 9 6 # 9- |3 6 3 6| 3 9 3-
Happy Birthday To You
1 1 2 1 6 3- 1 1 2 1 9 6-
1 1 # 9 6 3 2- # # 9 6 9 6
When The Saints Go Marching In
1 3 6 9- 1 3 6 9-
1 3 6 9- 3- 1- 3- 2-
3 3 2 1- 1 2- 9 9 9 6-
3 6 9- 3- 2- 2- 1-
I’ve Been Working On The Railroad
3+ |1 3 1 3 6| 9- 3- #+ |#| 3 6 9-
3+ |1 3 1 3 6| 9- 3+ |3| 6+ |6| 6 9 6-
6+ |6 3 6 9 6| 3- 1- # |# # 3 3 6 6| 9-
2 |3 6 3 6 2| 1- 6- 9+ |#| 9 6 3-
|9 9 9 9 6 6| 6 1- 3- |9 9 9 9 6 6| 6 9 6 3 1
|9 9 9 9 3 3| 3 #- #- |# # # #| 9 6 3-
6- 3- |1 1| 1 3- 6 6 |3 3| 3 6 3 2 1
6- 3- |9 9| 9 9- |# # # #| 9 6 3-
Ten Little Indians
3 |3 3| 3 |3 3| 9 |# #| 9 3
6 |6 6| 6 |6 6| 2 |6 6| 2 1
|3 3 3 3| 3 |3 3| 9 |# #| 9 3
# |# #| 2 2 3-
The Farmer in the Dell
|1| 2 |2| 2 |2| 2+ (P)
|2| 6 |6| 6 |6| 6+ (P)
9+ 9 |#| 9 |6| 2 |3| 6 |6| 3 |3| 2+
Baa, Baa, Black Sheep
1 1 9 9 |# # # #| 9-
6 6 3 3 2 2 1-
1 |1 1| 9 9 # |# #| 9 9
6 |6 6 3 3 3 3| 2 |2 2| 1-
If You’re Happy
|1 1 3 3 3 3 3 3 2 3| 6 (clap)
|1 1 6 6 6 6 6 6 3 6| 9 (clap)
|9 9 # # # # 1 1 # #|
|6 6 6 3 2 2 6 6 3 3 3 3 2 2 1 3| 2 (clap) (clap)
Humpty Dumpty
1 |1| 3 |3 2 3 2| 1 (P)
3 |3| 9 |9 6 9 6| 3 (P)
|# # # 9 9 9 6 6 6| 3 (P)
|6 6 6 3 3 3 2 3 2| 1
The Noble Duke of York
9 6 3 2 1 2 3- (P)
3 6 6 6 6 6- (P) 6 9 9 9 |9 9|
# |# #| # # 9 9 6 6 2-
The Muffin Man
1 1 3 3+ |6| 9 6 6+ |3|
2 6 6+ |3| 2 1 1+ |1| 1 3 3+ |6|
9 3 3+ |3| 6 6 1 1 3-
London Bridge
9+ |#| 9 6 3 6 9- 2 3 6-
3 6 9- 9+ |#| 9 6 3 6 9-
2- 9- 3 1-
are you getting this error from you mailserver and you’r using CPANEL/WHM?
Change the settings here:
WHM >> Tweak Settings
WHM >> Modify Account
I am managing a quite a few Facebook accounts and I was getting tired of outdated chrome/FF plugins. Firefox has been updating itself frequently so most plugins cease to work. Anyhow I thought around this one based on the assumption that “whatever a user can do a script can do better” here goes:
How to select all friends at once to invite friends on Facebook.
javascript:elms=document.getElementsByName(“checkableitems[]”);for (i=0;i<elms.length;i++){if (elms[i].type=”checkbox” )elms[i].click()};
I found this video for the cypriot EU presidency to be a farce. So I’m trying to take the Mickey out them by digitally smashing the video.
Click here to Smash the VideoClip
I think it’s more fun on a tablet were you actually get to tap and smash the video :) Enjoy!
The source code:
[cc lang=”javascript”]
<html><head>
<title>HTML5 Video Destruction</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> var video; var copy; var copycanvas; var draw; //the more you decrease the tile H and W the more resources/graphic power you need. var TILE_WIDTH = 16; var TILE_HEIGHT = 12; var TILE_CENTER_WIDTH = 16; var TILE_CENTER_HEIGHT = 12; var SOURCERECT = {x:0, y:0, width:0, height:0}; var PAINTRECT = {x:0, y:0, width:1000, height:600}; function init(){ video = document.getElementById('sourcevid'); copycanvas = document.getElementById('sourcecopy'); copy = copycanvas.getContext('2d'); var outputcanvas = document.getElementById('output'); draw = outputcanvas.getContext('2d'); setInterval("processFrame()", 33); } function createTiles(){ var offsetX = TILE_CENTER_WIDTH+(PAINTRECT.width-SOURCERECT.width)/2; var offsetY = TILE_CENTER_HEIGHT+(PAINTRECT.height-SOURCERECT.height)/2; var y=0; while(y < SOURCERECT.height){ var x=0; while(x < SOURCERECT.width){ var tile = new Tile(); tile.videoX = x; tile.videoY = y; tile.originX = offsetX+x; tile.originY = offsetY+y; tile.currentX = tile.originX; tile.currentY = tile.originY; tiles.push(tile); x+=TILE_WIDTH; } y+=TILE_HEIGHT; } } // no such thing like random numbers :p var RAD = Math.PI/180; var randomJump = false; var tiles = []; var debug = false; function processFrame(){ if(!isNaN(video.duration)){ if(SOURCERECT.width == 0){ SOURCERECT = {x:0,y:0,width:video.videoWidth,height:video.videoHeight}; createTiles(); } //this is to keep my sanity while developing if(randomJump){ randomJump = false; video.currentTime = Math.random()*video.duration; } //loop if(video.currentTime == video.duration){ video.currentTime = 0; } } var debugStr = ""; //copy tiles copy.drawImage(video, 0, 0); draw.clearRect(PAINTRECT.x, PAINTRECT.y,PAINTRECT.width,PAINTRECT.height); for(var i=0; i<tiles.length; i++){ var tile = tiles[i]; if(tile.force > 0.0001){ //expand tile.moveX *= tile.force; tile.moveY *= tile.force; tile.moveRotation *= tile.force; tile.currentX += tile.moveX; tile.currentY += tile.moveY; tile.rotation += tile.moveRotation; tile.rotation %= 360; tile.force *= 0.9; if(tile.currentX <= 0 || tile.currentX >= PAINTRECT.width){ tile.moveX *= -1; } if(tile.currentY <= 0 || tile.currentY >= PAINTRECT.height){ tile.moveY *= -1; } }else if(tile.rotation != 0 || tile.currentX != tile.originX || tile.currentY != tile.originY){ //contract var diffx = (tile.originX-tile.currentX)*0.2; var diffy = (tile.originY-tile.currentY)*0.2; var diffRot = (0-tile.rotation)*0.2; if(Math.abs(diffx) < 0.5){ tile.currentX = tile.originX; }else{ tile.currentX += diffx; } if(Math.abs(diffy) < 0.5){ tile.currentY = tile.originY; }else{ tile.currentY += diffy; } if(Math.abs(diffRot) < 0.5){ tile.rotation = 0; }else{ tile.rotation += diffRot; } }else{ tile.force = 0; } draw.save(); draw.translate(tile.currentX, tile.currentY); draw.rotate(tile.rotation*RAD); draw.drawImage(copycanvas, tile.videoX, tile.videoY, TILE_WIDTH, TILE_HEIGHT, -TILE_CENTER_WIDTH, -TILE_CENTER_HEIGHT, TILE_WIDTH, TILE_HEIGHT); draw.restore(); } if(debug){ debug = false; document.getElementById('trace').innerHTML = debugStr; } } function explode(x, y){ for(var i=0; i<tiles.length; i++){ var tile = tiles[i]; var xdiff = tile.currentX-x; var ydiff = tile.currentY-y; var dist = Math.sqrt(xdiff*xdiff + ydiff*ydiff); var randRange = 220+(Math.random()*30); var range = randRange-dist; var force = 3*(range/randRange); if(force > tile.force){ tile.force = force; var radians = Math.atan2(ydiff, xdiff); tile.moveX = Math.cos(radians); tile.moveY = Math.sin(radians); tile.moveRotation = 0.5-Math.random(); } } tiles.sort(zindexSort); processFrame(); } function zindexSort(a, b){ return (a.force-b.force); } function dropBomb(evt, obj){ var posx = 0; var posy = 0; var e = evt || window.event; if (e.pageX || e.pageY){ posx = e.pageX; posy = e.pageY; }else if (e.clientX || e.clientY) { posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; } var canvasX = posx-obj.offsetLeft; var canvasY = posy-obj.offsetTop; explode(canvasX, canvasY); } function Tile(){ this.originX = 0; this.originY = 0; this.currentX = 0; this.currentY = 0; this.rotation = 0; this.force = 0; this.z = 0; this.moveX= 0; this.moveY= 0; this.moveRotation = 0; this.videoX = 0; this.videoY = 0; } /* getPixel return pixel object {r,g,b,a} */ function getPixel(imageData, x, y){ var data = imageData.data; var pos = (x + y * imageData.width) * 4; return {r:data[pos], g:data[pos+1], b:data[pos+2], a:data[pos+3]} } /* setPixel set pixel object {r,g,b,a} */ function setPixel(imageData, x, y, pixel){ var data = imageData.data; var pos = (x + y * imageData.width) * 4; data[pos] = pixel.r; data[pos+1] = pixel.g; data[pos+2] = pixel.b; data[pos+3] = pixel.a; } /* copyPixel faster than getPixel/setPixel combo */ function copyPixel(sImageData, sx, sy, dImageData, dx, dy){ var spos = (sx + sy * sImageData.width) * 4; var dpos = (dx + dy * dImageData.width) * 4; dImageData.data[dpos] = sImageData.data[spos]; //R dImageData.data[dpos+1] = sImageData.data[spos+1]; //G dImageData.data[dpos+2] = sImageData.data[spos+2]; //B dImageData.data[dpos+3] = sImageData.data[spos+3]; //A } </script> </head> <body onload="init()" style="margin:0px;"> <!-- sources to your videos, not all browsers support the same video types. --> <div style="display:none"> <video id="sourcevid" autoplay loop> <source src="data/cy_eng(480).mp4" type="video/mp4"/> <source src="data/cy_eng(480).webm" type="video/webm"/> <dource src="data/cy_eng(480).theora.ogv" type="video/ogg"/> </video> <canvas id="sourcecopy" width="640" height="360"></canvas> </div> <div><center> <div style="z-index:1;position:relative;text-align:center;font-size:16px;font-weight:bold;width:1000px;top:60px;">Welcome to blowing up the video! Click to destroy! Enjoy :-) </div> <canvas id="output" width="1000" height="600" onmousedown="dropBomb(event, this)" style="border: solid 5px #666666"></canvas></center> <blockquote> <p> <center> <br/> </center> </p> </blockquote> </div>
[/cc]
…Nicosia/Cyprus never ceases to surprise me :-)
…and then you decide to submit your app to the app store…
seems that it occurred twice on the 31-12 because of new years I assume and today (31-08) because winter is coming.
just my luck I guess. Maybe monday is better day for app submissions :-)