WordPress plug-in Anti-Spam

Standard

On my wife’s site, we were getting hit from numerous (15+) spam messages a day. We figured this was an acceptable number to just handle manually, but quickly grew tired of taking the time to moderate these comments, marking them as trash.

We tried various CAPTCHA plugins but none were very graceful. From difficult-to-read CAPTCHA strings to stark, unstyled “You have entered an invalid CAPTCHA” message, none of the CAPTCHA plugins we implemented really worked for us.

Then I found this plugin. It’s so simple in its implementation that it’s almost laughable. There’s beauty in what it does, though. It’s not overly complicated, it doesn’t affect the aesthetic of the site AT ALL, and most importantly, it just works.

I’ve had this plugin installed for over 11 years, 1 months and have only received 37791 spam comments. I give it five stars all day long. Continue reading

Embed IP camera stream into WordPress pages/posts

Standard

[showCamera width=”300″]I was looking for a way to show my local IP network camera stream in my site (and my wife’s site). Sure, it was easy enough to find the necessary code on Google and embed in a post through the text editor, but I wanted something more.

I can’t expect my wife to write her posts without the Visual editor (which would have butchered the HTML required to show the stream), so I decided to convert the camera-generating HTML code to a PHP function and put it in our sites’ functions.php files. Why would I want to do this?

Continue reading

Dynamic ages in About Me page

Standard

Recently my brother asked me if my daughters’ ages in my About Me page were static or if they would change as we moved through time.  The answer is that they’re the result of PHP functions and are therefore dynamic and will change as time passes.

You see, my site allows me to embed PHP code.  In a nutshell, PHP allows me to create HTML dynamically.  I wrote a PHP function that calculates the number of years/months (or months/days in certain situations) since a given birthdate.  I added this function to my site’s custom functions.php file, and registered it with the WordPress framework so that I can access it with a shortcode. Because I want to be able to use this function multiple times with various birthdates, I wrote it to accept an argument called “birthdate”. In my About Me page, anytime I want somebody’s age, I simply insert:

Continue reading

Implementing an ISAPI rewrite for IIS 6

Standard

In an effort to clean up the URLs my WordPress-based site generated, I wanted to implement an ISAPI rewrite. You see, because I host my site on IIS 6, turning on WordPress’ Permalinks required an “/index.php/” in all of my URLs. I wanted a way to eliminate the “/index.php/” portion of the URL.  If I were hosting this site on an Apache server, it would be a no-brainer as Apache has the mod_rewrite module available, and would be able to serve URLs without the /index.php/ out of the box.  According to http://httpd.apache.org, the mod_rewrite module “uses a rule-based rewriting engine, based on a PCRE regular-expression parser, to rewrite requested URLs on the fly.”  It is this module that allows the intricate URLs created by WordPress to be presented in a friendly, cleaner manner – allowing http://jkshay.com/index.php/implementing-an-isapi-rewrite-for-iis to be accessed with a URL such as http://jkshay.com/implementing-an-isapi-rewrite-for-iis-6.

Continue reading

Customized WordPress theme, re-launch of artist’s site

Standard

My wife is a former biologist and full-time artist and mother.  Her website (http://www.lisakarenward.com) was comprised of static pages designed in iWeb 2.x.  Making changes to her site, especially changes iWeb wasn’t designed to implement, caused several issues:

Continue reading

Spam dates back to… 1864?

Standard

I was recently asked to determine why one of our mail domain users was receiving hundreds of bounced messages in their inbox.  As it turns out, their address is being spoofed by a spammer.  Long story short, we needed to implement an SPF record in our DNS settings.  But that’s not what I found interesting.

Continue reading

Configuring the Extended WPF Toolkit’s ColorPicker color palette

Standard

I was in need of a WPF color picker control and settled on the Extended WPF Toolkit.  Note that I didn’t say that I settled for – simply put, the controls in this collection are amazing for the price.

Continue reading

Configuring Verizon FiOS router for NAT loopback

Standard

I run my own server at home, and host my site on it.  The WHS software provides a subdomain on the homeserver.com domain.  Browsing this domain from within my network has always caused problems – essentially, my browser ends up showing me my router’s configuration page.

Continue reading