Warning: Table './oots/watchdog' is marked as crashed and last (automatic?) repair failed query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:163:\"Table './oots/comments' is marked as crashed and last (automatic?) repair failed\nquery: SELECT COUNT(*) FROM comments c WHERE c.nid = 68 AND c.status = 0\";s:5:\"%file\";s:44:\"/var/www/oots/modules/comment/comment.module\";s:5:\"%line\";i:991;}', 3, '', 'http://www.outoftheslipstream.com/node/68', '', '54.144.21.195', 1505924524) in /var/www/oots/includes/database.mysql.inc on line 135

Warning: Table './oots/watchdog' is marked as crashed and last (automatic?) repair failed query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:431:\"Table './oots/comments' is marked as crashed and last (automatic?) repair failed\nquery: SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.signature_format, u.picture, u.data, c.thread, c.status FROM comments c INNER JOIN users u ON c.uid = u.uid WHERE c.nid = 68 AND c.status = 0 ORDER BY c.thread DESC LIMIT 0, 50\";s:5:\"%file\";s:44:\"/var/www/oots/modules/comment/comment.module\";s:5:\"%line\";i:991;}', 3, '', 'http://www.outoftheslipst in /var/www/oots/includes/database.mysql.inc on line 135
Captchas | Out of the Slipstream
  • user warning: Table './oots/comments' is marked as crashed and last (automatic?) repair failed query: SELECT COUNT(*) FROM comments c WHERE c.nid = 68 AND c.status = 0 in /var/www/oots/modules/comment/comment.module on line 991.
  • user warning: Table './oots/comments' is marked as crashed and last (automatic?) repair failed query: SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.signature_format, u.picture, u.data, c.thread, c.status FROM comments c INNER JOIN users u ON c.uid = u.uid WHERE c.nid = 68 AND c.status = 0 ORDER BY c.thread DESC LIMIT 0, 50 in /var/www/oots/modules/comment/comment.module on line 991.

Captchas



I think it was Rob who told me about how spammers are using porn sites to decode Captchas.

Captchas are those fuzzy images containing words, letters or numbers that you have to type in on web-sites to prove that you are a human being. The idea is to make it more difficult for bots to automatically sign up for sites where they can inject spam messages or, more usually, web-site links that then help to improve the target site's Google ranking.

So the clever spammers have started grabbing the Captchas from these sites and putting them in front of porn sites. The porn site users are only too eager to decipher the Captcha so that they can get to see the goods. The spammers then immediately use the result to get access to the original site.

While there is some evidence that this might just be an urban myth, it is a smart implementation of the principle that I mentioned during my talk about how web-sites can glean small fragments of data from large numbers of users and then aggregate it into large useful datasets. Amazon, with their Mechanical Turk have industrialised the whole principle.

So, today I came across another interesting application of Captchas. The School of Computer Science at Carnegie Mellon has developed a service called reCAPTCHA. It uses words that have been taken from scanned books that cannot be deciphered by conventional OCR techniques. The results are passed back to reCAPTCHA where they are assembled to create a digitized version of the original text. Their strap-line Digitizing Books One Word At A Time says it all really.

Two words are shown for each Captcha, one of which has a known answer and the other unknown. The user doesn't know which is which so the have to type in both words. If the known word validates correctly then it is assumed that the unknown word has also been entered correctly. Once an unknown word has been deciphered correctly it can be used as a known word in the future. The whole thing is extremely clever and well thought out.

I especially like the way that it provides a protection service for web-sites while at the same time performing a valuable service that digitizes books from the The Internet Archive. A real win-win service.