Web
Captcha Testing
11:00 PM -
permalink
I finally snapped this afternoon. Several months ago I switched to a form based contact method on my website after I was receiving a deluge of Spam through my email address. I then had the form pass on the messages to a new email address and my Spam problems blissfully disappeared. That is, until some enterprising Spam pedlar or pedlars decided to either map my form to an automated system or employ some very cheap labour to submit the hell out of my contact form.

I decided to implement a text based CAPTCHA system. Now most CAPTCHA systems employ the distorted letters image based approach. I suspect those are much harder to defeat but are also much more of a pain for legitimate visitors trying to send a message. I like to employ the lesser used question based method.

What colour is the green monster?

This simple question should be easy enough for a five year old to answer but  changes to a random question each time the form is rendered. It's possible for me to increase the difficulty of the question or change to less predictable questions if the pattern becomes too simplistic or mappable. It has the advantage of accessibility since it doesn't require the visitor to view images or hear sounds. It's also much easier to implement

I simply create a set of questions and answers with a numerical key. The questions are then selected at random when the form is generated and the numerical key is passed along with the form for validation. Before sending the email, the code checks to make sure the associated value matches the correct answer. If not, the visitor is told the answer was incorrect and is presented another random question to try again.

I think the system may actually be more effective than image based techniques as it's not a mindless copying procedure but rather a slightly more taxing logic problem. Time will tell I supposed. If I start getting Spam again I'll change up the question type or make the question slightly harder.

Now to implement this for comments.
Increase Your Blog Traffic
12:18 AM -
permalink
Seth Godin provides a rather exhaustive list of great ways to get traffic for your blog.

#9 "Write short, pithy posts."
Glenn Audio
09:05 PM -
permalink
My brother Jeremy is an audio engineer and has started the blog glennaudio.com with information regarding audio production and podcasting. If you're looking for help with audio recording and production or developing a podcast be sure to give him a shout.
BarCamp TDot
03:35 PM -
permalink
Thanks to David, Jay, Deb, Bryce, Sacha, Michael, Patrick, Gabe and everyone else who helped out with BarCamp on Saturday.

Next time I do a presentation on Asterisk I think I'll have to prepare a bit more of a high level overview and bypass some of the low level details. I saw some scrunched up faces in the group a few times. 
After Mesh
04:00 PM -
permalink
Thanks to Stuart, Rob, Michael, Mark and Matthew for putting on a great event.

The presentations served as a great jumping off point for ideas and discussions in the halls, the un-lunch rooms, the bars and the back channel.

Best Presentation: Pinko Marketing by Tara Hunt
Best Quote: "We're like drug dealers...Give em a tast and if they like it, they'll buy in" - Jason Fried
Best Product Advice: Get your product out as sooner rather than later - Jim Coudal
Best Personal Advice: Become a mentor to somebody and help give back to the community - Albert Lai
Best Hangout: The unconference/un-lunch room
Best Conference Feature: Power outlets all over the floor!
Search Zones
06:50 PM -
permalink


Google and Yahoo! have conquered the vast majority of search zones, though I believe they have skipped two areas that I am constantly finding myself yearning to search; history and bookmarks.

So many times I've remembered a story that I've previously read or bookmarked and yet I can't find it because the details I'm looking for are not contained within the meta-data.

The new Mozilla Places functionality may be a good area to test this implementation. The Places Browser History seem like the most likely spot to hook in. Will this be extensible? Can keyword indexing be added through extensions or third party programs like Google Desktop?
Feedburner
04:00 PM -
permalink
As a quick mental diversion today I decided to try out Feedburner instead of the direct RSS feed that I had previously implemented. I also changed my feed icon to the new standard feed icon.

Feedburner provides me with a statistical overview of my RSS traffic but more importantly, they make it much easier for viewers to subscribe to my feed.

It has an easy sign-up procedure and monetizes by item click-throughs and inline ads. I'll have to see if the data is enticing enough to pay $5 a month for the service. I'm guessing my traffic isn't large enough to warrant it though.

The interesting part was figuring out how to automatically redirect all my existing traffic. A simple mod_rewrite rule that permanently redirects all agents that don't identify themselves as Feedburner was all that was needed.
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule ^rss/?$ http://feeds.feedburner.com/MichaelGlenn [R=permanent,L]
Simple! Assuming your news reader obeys permanent redirects.
TorCamp Thanks
11:15 PM -
permalink
Thanks to David Crow and all the wonderful people I met at TorCamp. It was  a fantastic success and I look forward to meeting more people at the next event. Already Albert Lai of Bubble Labs is organizing a demo night and there is already talk about TorCamp in the Spring.

I was impressed with talks given by Reg Braithwaite, Patrick Dinnen of Wireless Toronto, Leila Boujnane of idee and my business partner Jay Goldman.

Special thanks to the sponsors and John and Geoff of Tehann + Lax for opening up their offices to us.

During my session on time management John Lax and several others in the room raised the issue of valuation of a job versus valuation of time. Jay helped to continue the discussion over on Google Groups.

Google Analytics - T Minus 12 and Holding
12:00 AM -
permalink
So at least I'm not alone in my wait for Google Analytics data to roll in. Tim Bray has reported seeing the message "Your first reports will be ready within twelve hours" and Stephen O'Grady isn't able to get Google Analytics to recognize that he's enabled tracking on his site. It's now been almost 48 hours since I was able to activate my account and it recognized that I had started to send data it's way.

I would imagine that it's quite a big queue given the amount of attention the new service received. It's interesting to note that a recent post on Digg of Google Base being officially launched today caused my requests to the server to result in a 500 error. I wonder if Google's resources are now starting to be stretched a bit thin such that they can't quite seem to keep up with our voracious demand for these new products.

I'm curious to compare the data Analytics will spit out versus my local package. I'm not sure if you can gleam search engine data from this as spider's probably won't execute the Javascript code to make the call.

T-Minus 12 hours and holding!

Update: Stats! Presumably the numbers aren't matching my local stats due to the RSS feeds but it's quite disparate. I'll have to perform a calculation to see what the differences are between RSS requests and page requests.
Conditional GET
03:25 PM -
permalink
Thank you to Charles Miller for his post on HTTP Conditional GET for RSS Hackers. My DIY RSS feed wasn't implementing conditional GET until now essentially tossing away valuable bandwidth. If you roll your own RSS feed I suggest you check out Charles' advice.
MiteSite
11:35 PM -
permalink
Chris Justus has been experimenting with his first MiteSite. It's a chat application using AJAX tools embedded in an iframe. The implementation from the user's perspective is incredibly simple. Take a small space on your site such as a sidebar or header and plug-in a small application.

Because it's JavaScript based it has an almost instant start up time compared with Flash or Java Applets. It has an instant shared space experience much like Colin Moock's home page, which previously displayed shared interaction among all the users currently on the site. I tried it out when Chris was online and it immediately made the site that much more personal.

Great work Chris!
Learn to Let Go
07:30 PM -
permalink
The next time your client insists on pop-up windows and sneaky manouvers to get their customers to "stay" on their website remind them,
In the days before Google, search engines like Excite, Hotbot, and Altavista larded themselves up with content in a desperate effort to delay users beyond the two pages of a search activity - search box and results. The goal was "stickiness," discouraging people from leaving your domain. When Google launched, one reason it shocked the Web community was its focus on getting you to where you actually wanted to go. How could there be a successful business model in actively sending people away from your site?

Seven years and a $75 billion market capitalization later, that question has obviously been answered. The other search engines attempted to control your behavior. Google recognized that users maintain control, and to win they had to become users' preferred choice. - How I Learned To Stop Worrying and Relinquish Control by Peter Merholz