Note: Nilesh's weblog is accessible to all versions of every browser. However, this browser may not support basic Web standards, preventing the display of our site's design details. We support the mission of the Web Standards Project in the campaign encouraging Internet users to upgrade their browsers. (Read More)

Nilesh's Weblog

Nilesh » Weblog » Categories » Coding

Previous: Blogging
Next: Gadgets

December 09, 2004

Defeating CAPTCHAs

If you have commented on Yazad's or Madman's weblogs, you must have noticed the small images with numbers in them. Called CAPTCHAs, they literally expand to Completely Automated Public Turing test to tell Computers and Humans Apart. As you may have guessed it, they help in keeping software bots at bay, in web applications. In case of weblogs, they help in blocking automated comment spamming tools.

The most popular CAPTCHAs are the ones which display an image with distorted text and expect the human reader to read the text and enter it in a textbox. The assumption is an automated bot wouldn't be in a position to identify distorted text in the image. Then there are those which ask the user to hear to a short audio clip of distorted voice and write what was said in the audio clip.

Aren't they secure enough? No, they are not. Computer researchers at UCB have developed a program which can solve "ez-gimpy" (from captcha.net) with 92% accuracy. Spammers have devised unique ways of cracking CAPTCHAs. Someone designed a software robot that would fill out a registration form and, when confronted with a CAPTCHA test, would post it on a free porn site. Visitors to the porn site would be asked to complete the test before they could view more pornography, and the software robot would use their answer to complete the e-mail registration.

Isn't that incredible? The easiest way to bypass CAPTCHAs — software bots using humans to do their work! So what could be the next solution? The answer is logic puzzles. You can present a simple problem to the user in the form of 3 + 5 = ?. Software bots will have to be very advanced in parsing text and figuring out the problem and then figuring out the solution for the problem.

 

May 16, 2004

MovableType Free?

On the 13th of this month, Sixapart announced the launch of Movabletype 3.0 developer edition. And guess what? Personal edition price - USD70! That for a version which yet does not support heirarchical categories. And what about the free version? Yes, that exists, but look at the restrictions - No more than one author and three weblogs. What? I cannot create more than three weblogs on my MT installation? Notice the difference. In the paid personal versions, they talk about 'active weblogs' number limit. In the free version, it is just plain 'weblog'. Now that means I cannot even create a static blog (without any posts. I do that for managing static pages on my site). So much for the commitment to a free version. Hmmm, I have been beginning to like TXP off late.

Update(11:00 PM): Thanks to all for pointing out the error. I really missed out on that post on 6A. Meanwhile kottke also agrees, the new licensing mechanism is really confusing. And yes, I'll wait for the discount code to see how much it works out to. I have been waiting to pay for an MT license since the time they announced the development of MT3.0. But sorry, I am still not going to shell out USD70 for this version. Mark Pilgrim sums it up. All said, Wordpress and TXP are still excellent alternatives to MT, I find, TXP especially for a photolog; not for ShutterBug, as it uses the most complex MT templates I have ever made.

 

April 03, 2003

Open Spaces

How one wishes, on seeing a densely populated code file, that there were fewer functions to write, fewer keywords to care about, fewer variables to create. Here's your wish come true - Whitespace Programming. They say, "Most modern programming languages do not consider white space characters (spaces, tabs and newlines) syntax, ignoring them, as if they weren't there. We consider this to be a gross injustice to these perfectly friendly members of the character set." They do have a few examples to make their point clear.

 

December 16, 2002

Super Ragged Floats 2

Super Super BikeLooks like I am obsessed with ragged floats. Yes, absolutely. Why wouldn't browsers have a simpler way of wrapping text around images? More research on ragged floats lead to this spanking new approach to wrapping around irregular outlines. This one uses pure divs and no backgrounds. Plain simple images and plain simple divs. Read More »

Read More (671 words) »»

Perl Advent 2002

In the twenty four days of advent this year, wouldn't you like to have a perl pearl everday, to ease your counting till Christmas? Yes, here's the Perl Advent Calender 2002 - A module a day keeps counting away. :-)

 

December 10, 2002

Super Ragged Floats

First there was slantastic and then curvelicious. Then came ragged floats and then finally here is Super Ragged Floats, advanced CSS for your viewing pleasure. If you have used Eric Meyer's method to wrap around images, you will like this too. Here is a simple tutorial on how to use CSS for wrapping text, but not by slicing. An alternative to Eric Meyer's ragged floats. And a live example can be seen here. »

Read More (762 words) »»

 

December 03, 2002

Domino Blogs

Lotus DominoWow! Off late I am seeing a lot of weblogs hosted on Lotus Domino springing up. There is a lot of Domino blogrolling going around. I discovered Gurteen's Klog(well, almost), Freedom Blog, Cris Coates, Dragon's Blog. The only one and the best I knew till date was Jake's codestore.net. So why, of all, am I discussing Domino?? And just what is so special about Domino-hosted blogs??
First, I have got chance to work on Domino, more so because we use Lotus Notes in office. I had designed the login page for the corporate iNotes WebMail server. And damn, I was frustrated. I only managed to put up an IE specific page. Domino adds its own scripts and tags to the html page and it is really difficult to design a standards-compliant page. You have to find workarounds and patches to get the right structure.
Second, these Domino bloggers have managed to put up excellent designs adhering to web standards. I am most impressed by codestore. To think of, these guys have even managed to put up calenders like MT does so easily. Let me tell you, it is very very difficult for a guy like me who has decent knowledge of page designing and scripting.
One big disadvantage of Domino is that it produces ugly URLs. e.g. http://www.codestore.net/A55692/store.nsf/unid/EPSD-5GAR2U?OpenDocument links to a specific post on codestore. Partly Lotus's fault and partly not. Not, because Notes came long before the web and it wasn't geared for the web. It was for corporates. Partly IBM's fault because they haven't adapted Notes to changing times.

 

November 30, 2002

SVG BlogTimes

Jake Howlett of codestore has a nice suggestion of using SVG to plot the MTBlogTimes bar instead of PNG files. Ya, SVG would be the killer tool, with live feed, animation and interactivity. But I think, SVG support on browsers has been very limited till date (only IE has an Adobe plugin available and Mozilla has a seperate alpha build for SVG). On my site alone, I have about 32% of visitors using Mozilla/Pheonix on Windows/Linux. Probably I should wait till Mozilla comes with built-in support for SVG. MTBlogTimes wouldn't take much effort to get modified to produce an SVG file. In fact that would be good for the blog community, doing away with the need of perl GD modules. Or maybe I can start working on the SVG version of MTBlogTimes.

 

November 29, 2002

MTBlogTimes

Inspired by Brad Chaote and Adam Kalsey's never-say-not-possible MT plugins, I came up with a wierd thought of plotting the post times of my blog in a timespan of 24 hours. And I knew it might not be impossible, even though I had never ever peeked into the MT code and plugin API. And here I am, after 3 days of poking and probing through MT plugin API and Brad and Kalsey's plugins. This goes miles to prove how very well Ben Trott has created the MT API. They are damn easy to code!

MTBlogTimes creates a chart which plots the time of your posts(in a specified period) on a bar of the 24 hours of the day. I haven't found any apparent advantage of doing so. Well, probably someone will devise a way of using this too. Say like, analysing the blog patterns for various blogs (provided everyone shared their blogtimes) .. or like finding out a true blogomaniac, a person who blogs all day... Nevertheless the resulting graphic looks cool. Check it out -

Read More (1043 words) »»

 

May 25, 2002

Pippy, the baby snake

Pippy: Python for the Palm. "Our goal is to incorporate changes to Python that reduce the effort of porting this useful and expressive language to small and embedded device platforms. The Palm is an appealing target platform for Python and raises challenging technical requirements including: Reducing the virtual machine memory footprint, Reducing the consumption of stack and dynamic heap space, Integrating with the PalmOS, Merging the required changes into the standard Python distribution, Refactoring Python to accommodate smaller architectures.". In case you didn't know about it, Help on Python.

 

June 04, 2001

Python

Here are a few more articles on learning the Python language: Techie Publications of David Mertz, Five minutes to a Python CGI, Learn to program Python

 

June 01, 2001

Python Primer

Hmmm... this article has got me started on Python, an object-oriented language. I am all fired up to learn Python. Here's a first tutorial, if you get interested too. Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java. Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface.

 

May 20, 2001

Sockets and stuff

Also, check out this page: its a lovely introduction to network programming (i used it myself) Its a better intro than Richard Steven's dull boring book.

 

May 19, 2001

Randal Schwartz

[archive] If you perl enough, you know Randal Schwartz. He has written Learning Perl and Programming Perl(O'Reilly). He was convicted sometime back for a silly thing by his company Intel corp. And if you have heard of perl ever you must know Larry Wall. There is a lot to be learnt from these gurus.

 

May 18, 2001

Sexeger

Sexeger Want to speed up the operations of your regular expressions in perl? Reversed Regex or Sexeger is a brilliant way of using regex. Jeff Pinyan aka Japhy came up with this solution. A simple tutorial is also available at Perl.com

 




© 2000-2003. Nilesh Chaudhari (mail AT nilesh.org)