Categories
design me me me mobile

Now iPhone/iTouch friendly

Thanx to the WPTouch plugin, this blog is now iPhone and iTouch friendly. You’re welcome. 🙂

Categories
family funny technology video wtf?

She wasn’t THIS excited

… but my sister DID cry when she got her Wii for Christmas. This kid though… sheesh!

Categories
family mobile pets photography

I think they had a party while we were gone

I think they had a party while we were gone

This is the result of seven days away from home. The cats have
completely messed up the couch. 🙂

I uploaded this through flickr

Categories
funny mobile photography tips

Caution…

Caution...

… when playing football, do not punt a brick!

I uploaded this through flickr

Categories
family mobile photography tv

Pleepleus in Wisconsin

Pleepleus in Wisconsin

I uploaded this through flickr

Categories
funny

Cute wrong number message

Categories
cool funny me me me tv video

My favorite Christmas commercial

[youtube:http://www.youtube.com/watch?v=t0om43cmYP8]

Categories
cool video

Help Ash use his BOOMSTICK!!

There’s a tournament running at AMC. It’s a “Monster Hunter” tournament and we’re down to the final four. Buffy the Vampire Slayer versus Ripley (from Alien) and Ash (from the Evil Dead movies) versus Hellboy.

Let’s get Ash into the final round people!! Please click either image and vote for Ash. He’s the second vote you’ll encounter. I don’t really care between Buffy and Ripley but it’d be nice to have Ripley do better against Buffy. 🙂

Categories
funny mobile photography

Not something I’d advertise

Not something I'd advertise

I uploaded this through flickr

Categories
programming technology tips work

How I block people from visiting a website

Inspired by the article Block a Website for Everyone But You over at CSS Tricks, I thought I’d post my way of blocking people from accessing my websites while I work on them.

Chris Coyier over at CSS Tricks uses the following code in his .htaccess file to block visitors.

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^71\.225\.113\.171
RewriteCond %{REMOTE_HOST} !^71\.185\.239\.212
RewriteCond %{REMOTE_HOST} !^69\.253\.223\.254
RewriteCond %{REQUEST_URI} !/comingsoon\.html$
RewriteRule .* /comingsoon.html [R=302,L]

What he’s doing there is checking for specific IP addresses that are allowed to see the website but everyone else is sent to the “comingsoon.html” webpage. This is great for people who have specific IP addresses but if you’re behind a proxy like I am at work then everyone else with you behind that proxy can still see the site.

I find it much easier to redirect everyone but check for a custom cookie that I can set using the Webdeveloper Firefox extension. That way I can check to make sure that the redirect to the maintenance page is actually working. Here’s the relevant code that I use (taken from a RoR tutorial of old)

RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteCond %{HTTP_COOKIE} !^.*access_cookie=1.*$
RewriteRule ^.*$ /maintenance.html [L]

where the text “access_cookie” (sans quotes) would be whatever cookie name you want to use. I just create a “session cookie” set to a value of “1” (or whatever you want to make it) and check for it’s existence.

That gets around the problem of DHCP granted or spoofed IP addresses. Sure a cookie is easy to add but if you make the name and/or value sufficiently difficult to guess, no one is getting in.

Now just add your cookie.

Note in the image that I have set it to be a “session cookie”. This helps when you forget to delete the cookie. Just close your tab (FF) or browser (IE), reopen it and the cookie will be gone.

Oh yeah. The other thing that my .htaccess code does is, on the first line, check for the existence of the “maintenance.html” file. I don’t want to have to add and remove this code everytime I want to take the site down. It’s much easier to just have this code permanently in my .htaccess file and then upload the file that people will see when the site is down. I then delete it when the site is ready to be reopened. This is all performed using a custom Capistrano command that I run when I’m ready to deploy a new version.