Introduction to Computer Science and Programming
Category:
Introduction to Computer Science and Programming | MIT Video Course
This subject is aimed at students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems. It also aims to help students, regardless of their major, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class will use the Pythonâ„¢ programming language.

Two brick forge
Category:
Two brick forge
How to make a small forge from two firebricks and a gas burner. Big enough for creation of most woodcarving knifes and gauges.
How to archive large MySQL tables into archive tables
Category:
Here's one to keep for later: CREATE TABLE archive_2008_09 engine=archive AS SELECT * FROM my_log WHERE YEAR(logdate)=2008 AND MONTH(logdate)=9 In MySQL this will create a nice compact archive table worth a month of data, having the same structure as the source table.
Forfiles
Category:
Forfiles
Selects and executes a command on a file or set of files. This command is useful for batch processing.

forfiles can be for instance used to periodically delete all files older than X days from a specific directory forfiles -p "c:tmp" -s -m *.* -d -3 -c "cmd /c del @FILE" This command will remove all files older than 3 days (-3) from directory c:tmp
It is not part of the normal distribution of Windows, but it can be downloaded from Microsoft Technet
hw to fix "The services database is locked" problem.
Category:
If your windows XP fails to install drivers for USB devices, complaining that "The services database is locked", you probably have a service somewhere that can not start. Check out your services, sort them by status and if there is one saying 'starting' try to disable it. It did help me, hopefully it will help someone else too
Fixing the localhost authentication problem in FireFox
Category:
for some time I had a strange problem; I could load sites from http://localhost in MSIE, but whenever I tried FireFox, it asked me for an user name and password. I've tried it all but I couldn't authenticate.
If you happen to have the same problem, here's a quick and simple workaround:
  1. In Firefox type about:config in the addressbar
  2. Find the preference named network.automatic-ntlm-auth.trusted-uris
  3. Doubleclick and type localhost
  4. Enter and you're done
Finding Naked People
Category:
A recent client project required some automated way of identifying nudity in hundreds of thousands pictures per month. While searching for a solution, I found this article: Finding Naked People.
It discusses an algorithm that finds large skin-collored areas in images.

An even more detailed description of an algorithm that allows classifying offensive sites based on image content is available in this pdf document.
map local path to a drive letter
Category:
Here's how you can create a new drive pointing to a folder on your local disc in Windows XP:
subst T: c:temp
This creates a drive T pointing to the temporary directory on c:temp
Triadic harmonious colors in hex
Category:
Here's an interesting small trick to quickly get triadic harmonious colors when programming or writing HTML:

Take a hex representation of a color, e.g.
#778899:
Then rotate to the left to get the first triadic color:
#889977:
And rotate once more to get the second one:
#997788:

Easy, isn't it ;)
MSIE Port of Password Bookmarklet
Category:
This is my port of the excellent password bookmarklet from Nic Wolff
It uses the Liorean bookmarklet code to implement a simple workaround for the size limit in Microsoft Explorer's URL length.
Installation instructions: Follow these carefully or your bookmarklet will not work.
  1. Save this piece of javascript into a file somewhere on your server as passlet.js:
    function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * 8));} function core_md5(x, len){x[len >> 5] |= 0x80 << ((len) % 32);x[(((len + 64) >>> 9) << 4) + 14] = len;var a = 1732584193;var b = -271733879;var c = -1732584194;var d = 271733878;for(var i = 0; i < x.length; i += 16){var olda = a;var oldb = b;var oldc = c;var oldd = d;a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);c = md5_ff(c, d, a, b, x[i+10], 17, -42063);b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);a = safe_add(a, olda);b = safe_add(b, oldb);c = safe_add(c, oldc);d = safe_add(d, oldd);}return Array(a, b, c, d);} function md5_cmn(q, a, b, x, s, t){return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);} function md5_ff(a, b, c, d, x, s, t){return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);} function md5_gg(a, b, c, d, x, s, t){return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);} function md5_hh(a, b, c, d, x, s, t){return md5_cmn(b ^ c ^ d, a, b, x, s, t);} function md5_ii(a, b, c, d, x, s, t){return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);} function safe_add(x, y){var lsw = (x & 0xFFFF) + (y & 0xFFFF);var msw = (x >> 16) + (y >> 16) + (lsw >> 16);return (msw << 16) | (lsw & 0xFFFF);} function bit_rol(num, cnt){return (num << cnt) | (num >>> (32 - cnt));} function str2binl(str){var bin = Array();var mask = (1 << 8) - 1;for(var i = 0; i < str.length * 8; i += 8)bin[i>>5] |= (str.charCodeAt(i / 8) & mask) << (i%32);return bin;} function binl2hex(binarray){var hex_tab = "0123456789abcdef";var str = "";for(var i = 0; i < binarray.length * 4; i++){str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8)) & 0xF);}return str;} function doIt(master){ if (master=='') master=window.prompt('Enter your master password'); if (master != '' && master != null) { re = new RegExp("https*://([^/]+)"); host = document.location.href.match(re)[1]; var i=0,j=0; var p=hex_md5(master+':'+host).substr(0,8); var F=document.forms; for(i=0;i < F.length;i++) { E=F[i].elements; for(j=0;j < E.length;j++) { D=E[j]; if(D.type=='password') { D.value=p; D.focus(); } if(D.type=='text') { if(D.name.toUpperCase().indexOf('PASSWORD')!=-1||D.name.toUpperCase().indexOf('PASSWD')!=-1) { D.value=p;D.focus(); } } } } } }
  2. Drag one of the links(or both) to the 'Links' toolbar in your MSIE, or into favorites:
    • This bookmarklet PASS uses the hardcoded password.
    • This bookmarklet aPASS will ask for password each time.
  3. Edit the URL of the passlet.js in the bookmark
  4. If you're using the hardcoded master password, edit it too.