It’s just the cat in the middle that does not care about your existence.
Category Archives: blog
Food-Meat
Select All Friends on Facebook
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.
- Open Google Chrome / Firefox
- Go to your event, invite to like your page and generally whatever requires a lot of clicking on check-boxes in order to invite your friends.
- Scroll at the bottom of the (pseudo)popup window Facebook generates with all your contact and wait till it has fully loaded.
- MAC Users: ⌥⌘J for Chrome and ⌥⌘K for Firefox , WINDOWS Users: CTRL+SHIFT+J (for Chrome), CTRL+SHIFT+K (for FireFox)
- The console will appear somewhere on your browser
- Paste this line of JavaScript code in the console.
- Et Voila, all the checkboxes have been checked
javascript:elms=document.getElementsByName(“checkableitems[]“);for (i=0;i<elms.length;i++){if (elms[i].type=”checkbox” )elms[i].click()};
no code, no shame
Strong Imagery from Athens
HTML5 Smash the Video: The cyprus EU presidency video.
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 | <html><head> <pre><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></pre> |
This is why I love this place…
dr. Sam Beckett never returned home
Unable to process application info.plist validation at this time due to a general error
…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
POSIX-Portable Operating System Interface based on uniX Cheatsheet Commands
This is a quick reference guide, mostly made of standard Unix commands.Basically because I got fed up of googling them all the time. (POSIX utilities, every Unix / Linux distribution has these POSIXstands for Portable Operating System Interface based on uniX).
For more information about each command, refer to a Unix manual or the man (stands for manual) command. Type man command at a TelNet/SSH Client Software prompt etc… to get info about using the “man” command.
at
: execute commands at a specified time/date.
awk
: a scripting language, especially useful for manipulating text and automation.
bash
: invokes the Bourne Again Shell (standard on most boxes).
batch
: execute commands when load permits.
bc
: interactive C-like calculator (integers only).
cal
: displays a calender, also lets you choose month/year using parameters.
calender
: invoke a reminder service.
cancel
: cancel request to calender.
cat
: concatenate files (displays a file without scrolling ability. Simply dumps it to the standard output. Can be useful when chaining multiple applications to do complicated jobs, so one application can use another’s output as input).
cd
: change the current working directory.
chgrp
: change group ownership of a file.
chmod
: change access patterns (permissions) to files.
chown
: change user ownership of files.
clear
: clear the screen.
cmp
: compare two files.
cp
: copy files.
cpio
: archive and extract files.
cron
: clock deamon (executes “batch” and “at” commands).
crontab
: schedules commands at regular intervals.
crypt
: encrypt , decrypt files using altered DES, standard to Unix passwords (restricted distribution).
csh
: invoke the C shell.
csplit
: split file into several other files.
cu
: call up another unix terminal.
cut
: cut selected fields from each line of file.
date
: displays the time and date (can also change it if you’re root).
dd
: convert and copy a file.
df
: reports space (free, total etc’) on all mounted file systems.
diff
: compare two files.
diff3
: compare 3 or more files.
dircmp
: compare two directories.
du
: report disk usage.
echo
: echo argument to standart output.
ed
: line oriented editor.
egrep
: extended version of grep (searches for extended regular expressions).
fgrep
: same as grep, only it interprets patterns as a list of fixed strings.
expr
: evaluate boolean and arithmetic expression.
false
: return nonzero (false) exit status.
file
: report type of file.
find
: find matching files and run specified programs on them (optional).
finger
: report user information (operates remotely only if a finger server is running on the remote host).
ftp
: (file transfer protocol) a client for FTP servers.
grep
: search files for regular expression matches.
haltsys
: gracefully shutdown sytem (can only be run by root. halt in Linux).
head
: display first 10 lines of a file.
join
: display the combination (lines with command field) of two fields.
kill
: send a signal to terminate a process.
ksh
: invoke the korn shell.
line
: read a specific line out of a file (shell script usage).
ln
: create a link to a file/directory.
logname
: gets your login name.
whoami
: which user you are logged in as at the moment. If you, for example, switch to a different user, logname will show the original username you logged in as, and whoami will show the current user.
lpr
: sends a request to printer.
lprint
: prints on local printer.
lpstat
: reports printer status.
lpq
: same as above.
ls
: lists the contents of directory.
: send and recieve mail.
man
: displays manual pages.
mesg
: grant or deny permissions to recieve messages from other users using the write command.
mkdir
: create a new directory .
mknod
: build a special file.
more
: display file one page at a time.
mount
: mount a storage device.
mv
: move or rename a file.
news
: display news item from NNTP servers.
nice
: change priorities of processes.
nohup
: run a command after logout (ignores hangup signals).
nroff
: format files for printing.
nslookup
: retrieve information from DNS servers.
od
: displays a file in 8-based octals.
passwd
: create or change login password.
paste
: merge lines of files.
pr
: format and print file.
ps
: reports status of active processes.
pstat
: report system status.
pwcheck
: check /etc/passwd (default) file.
pwd
: display current working directory.
rm
: remove (erase) files or directories (unrecoverable).
rmdir
: remove an empty directory.
rsh
: invoke Restricted Bourne Shell.
sed
: the stream editor.
set
: assign value to variable.
setenv
: assign value to enviroment variable.
sh
: invoke Bourne shell.
sleep
: suspend execution of a command for a given period.
sort
: sort and merge files.
spell
: find spelling errors.
split
: split file to smaller files.
stty
: set options for a terminal.
su
: spawns a subshell with a different username, requires other user’s password, unless you’re root.
sum
: compute checksums and number of blocks for files.
tabs
: set tabs on a terminal.
tail
: display last 10 lines of file.
tar
: a simple compression tool that merges multiple files into a single one, originally made to make backing up materials on backup tapes easier.
tee
: create a tee in a pipe.
telnet
: access remote systems using the telnet protocol.
test
: test various expressions and files.
time
: display elapsed time (execution, process, and system times) for a command.
touch
: change time/date stamps of files.
tr
: substitutes sets of characters.
translate
: translates files to different format.
troff
: format files to phototypester.
true
: return zero (true) exit status.
tset
: set terminal mode.
tty
: report a name of a terminal.
umask
: set file-creation mode (permissions) mask.
umount
: unmount a device.
uname
: display the name of the current system.
uniq
: report any duplicate line in a file.
units
: convert numbers from one unit to another.
unzip
: extract files from zip archive.
uptime
: report system activity.
uucp
: copy files between two unix systems (oldie but still beautiful).
uulog
: report uucp status.
uuname
: list uucp sites known to this site.
uudecode
: decode to binary after “uuencode” transmission.
uuencode
: encode binary file for email transmission.
uustat
: report status of uucp or cancel a job.
uupick
: receive public files sent by uuto.
uuto
: send files to another public Unix system.
uux
: execute command to remote Unix system.
vi
: a screen oriented (visual) editor (cool ,but Vim is better).
wall
: sends message to all users (root only).
wait
: await completion of background process.
wc
: count lines, words, bytes etc’ in one or more files.
who
: report active users.
whois
: search for user information.
write
: send a message for another user (see mesg).
zip
: archive file or files in zip format.


















































