Elcomeway otay phroggy.com |
|
New CAPTCHA for Contact Form (Undaysay, Ebruaryfay 15th, 2015) |
In keeping with the theme of reinventing the wheel and writing everything from scratch on this site, I created my own CAPTCHA solution several years ago to prevent spambots from emailing me via the contact form on the home page. It's fairly simple, but since it's completely unique to my site, I figured there's no way anybody would bother taking the time to write a bot just to solve my little custom CAPTCHA. It seemed to be working fine. Every once in awhile I'd get some spam, but I suspect the spammers were actually paying some poor schmuck to fill out the CAPTCHA form manually. Not a big deal - a CAPTCHA isn't going to stop a real person. But this week I started getting a series of test messages, identifying as “XRumerTest”. A quick Google search reveals that XRumer is an advanced spambot capable of solving basic AI-based CAPTCHAs such as mine. These were clearly test messages, and not actually spam attempts, but they were clearly sent by a spambot which had solved my CAPTCHA. What interesting times we live in. Anyway, it recently came to my attention that Google's re:CAPTCHA has gotten less obnoxious to use, and I've implemented the older version of it before without any trouble, so I've switchd to that. |
Uploading Files Over HTTP From Perl (Aturdaysay, Archmay 3rd, 2012) |
So it turns out that uploading files over HTTP from a perl script using LWP isn't as obvious and straightforward as you might expect it to be. This stuff should be plainly documented, and it's not. All the examples I could find online for how to do it are about ten years old and each of them is slightly wrong, in various different ways! So first off, yes, the right way to do this is probably # You MUST specify the boundary explicitly here. You can use whatever
Obviously you should choose the right MIME type for the type of file you're uploading, only use valid characters for the filename, and that sort of thing. I actually haven't tested this with binary data; I assume it works but it's possible there may be some escaping required somewhere that I've skipped here. Please let me know if you notice something I've missed, but this is working for me! |
HTML 5 Is Now HTML (Ursdaythay, Anuaryjay 20th, 2011) |
WHATWG says they're dropping the version number from HTML, and calling the specification a “living document” that will continually evolve without the need for specific version numbers (like “HTML 5”). Like everything else I've seen from WHATWG, this new position reflects reality pretty well, at least for now. Critics are complaining that a standard should be a complete and consistent target that implementers can aim for, and if there are no version numbers, you can never be sure when you've achieved conformance with the spec, and different browsers that implement different revisions of the spec will be incompatible. However, these people have an idealistic view of how things should work - they have no idea how things actually do work in this field. No browser has ever been 100% compliant with one specific version of the HTML specification; browsers implement whichever bits and pieces of the latest spec that they like best (plus other bits and pieces they made up themselves). Thanks largely to WHATWG's work, this situation has rapidly improved over the last several years, but it will be many more years before the Web is stable enough that trying to implement a particular version of HTML actually becomes useful. Meanwhile, W3C will still put version numbers on everything. They still cling to the fantasy that someday somebody somewhere will try to implement a spec just because the W3C says they should. |
Oremay... |
E-ailmay emay |
Ouyay ancay endsay emay e-ailmay atway
|
This site has been rated among the bottom 95% of all Web sites by Pointless Communications ® |