Code

Portable PHP code: DIRECTORY_SEPARATOR is not necessary

| | | | | | | |

In attempting to write cross-platform, portable PHP code, I used PHP's DIRECTORY_SEPARATOR constant to write path strings, e.g. "..".DIRECTORY_SEPARATOR."foo", because the "proper" way to do it on Windows would be "..\foo" while on everything else (Linux, UNIX, Mac OS X) it would be "../foo".

Well, as Christian on php.net pointed out and the guys at Web Design Forums confirmed, that's completely unnecessary. As long as you use the forward slash, "/", you'll be OK. Windows doesn't mind it, and it's best for *nix operating systems.

PHP function chopOffLastDir()

| | | | | |

I wrote this funtion to help avoid 404 errors when a user asks for something like /my/site/section/doesntexist/. I use it to help bump users “up” to /my/site/section/. Feel free to use/modify/share it; I'm making it public domain.

Simpler Conditional Testing

| | | |

With all the recent talk and buzz surrounding the unsurprising Ruby programming language, I couldn‚Äôt help but think about other ways to simplify programming.  Consider the following:

if (foo == bar, baz, "faz")

Why not use syntax like that featured above to mean "If foo equals bar, or foo equals baz, or foo equals the string 'faz'"?

Special characters in CSS generated content (::before, ::after)

| | | | | |

If you do CSS, you may be familiar with the ::before pseudo-element.  Have you ever tried using it to insert an unusual character?  I did today, and it took about 20 minutes to figure it out.  Here’s here to do it.

Syndicate content

Page Outdated! Comments disabled!

As do many people using Drupal to power their website, I get a lot of comment spam, and Drupal's spam filter is horrible! So I have permanently disabled comments on old.alanhogan.com. Try the new version of this page (which may not exist, but should if this page actually has content besides a list of other articles).

Consider using my contact form to get in touch. And remember that AlanHogan.com is live and old.alanhogan.com is here as a backup only, and a stopgap measure because some AlanHogan.com functionality is not implemented yet.