What I'm Working On
The site is highly portable right now. All the site specific configuration is kept in a single include file. And while this is running on a Windows 2000 platform, it could just as easily be moved to a Linux box with no modifications.
The content files are retrieved in the order the file system returns them - alpha on the systems I've tested. A configuration file is used for each content directory to reverse order if appropriate, as in the weblog or this page where you want the most recent files to appear first.
The query string is examined to avoid any code injection. 404 errors are redirected to domain appropriate pages. Any form fields are examined and converted to "safe" HTML equivalents. The amount of data that can be posted is limited by server-side processing.
The following sections are features that I've implemented, with the most recent at the top of the list. In case you were wondering, I personally designed and coded everything on this site, with the exception of one section of JavaScript. That's not to say I haven't used techniques out of the PHP documentation, or taken guidance from resources on the net to work through a problem. Just that I didn't copy and paste other people's code to make mine work.
Personal pages
Also related to the removal of the attbi.com site, I have moved some of my personal pages to this site, but they are only available for registered users.
Professional Experience
As the first step toward consolidating the information on my attbi.com site with this one, I have added my work experience to the Professional pages.
User profile update
You can now update your user information, including your e-mail address, password and first and last names. A link will appear in the nav box when you are logged in.
Confirmation E-mail
I had a case where someone didn't receive the confirmation e-mail after registering, so I added the ability to request that it be sent again if you tried to login with valid unconfirmed credentials.
Column Swap on About Page
As I was adding items to this page, I realized that the left column was getting very long compared to the center column. So I swapped them. It should make the updates easier to read and involve a lot less scrolling.
Frame Breaking
Since I don't use hotmail, I didn't realize that it does this: when you click on a link in a hotmail e-mail message, it opens the link in a frame within hotmail. Yuch! Since my site is definitely not intended to be viewed in a frame, I put in a line of JavaScript that breaks it out. It should also work for any search engines, askJeeves, for example, that display results in a frame. Please let me know if you found yourself "framed" and didn't break out of it.
Support for Screen Resolutions Below 1024 x 768
My personal feeling is that there is little excuse to run your system at screen resolutions below 1024 x 768. The experience of the Internet is greatly diminished at anything less than this. But that is simply my opinion and I know first-hand of many people who are still using 800 x 600 as their default screen resolution.
The site was breaking at this resolution due to the width of the home page image and the two columns. I have implemented a JavaScript check to determine if the screen resolution width is below 1024 and to use an x-small font style sheet that also narrows the left and right columns. It does mean that your selections for font size on the Site appearance page will be overridden at this resolution.
Navigation Re-organization
The nav box was getting cluttered with too much stuff for each page, so I changed the organization fairly significantly. I added a Professional page with information about my professional background and the links to my resume. A new Personal page has the links to the photo albums and web log. The links for server information and demo login are now only on this page. The change site appearance link appears here and in a few other places where it seemed appropriate. I will put a site map page in place sometime soon.
The change was really precipitated by a problem experienced when viewing the site at 800 x 600 resolution and attempting to login. The login box was off the bottom of the page and would scroll away from you when you tried to scroll down and click into it.
Photo Album Access
The photo albums were previously protected with a switch in the configuration file for each directory. If you didn't know how to activate the switch, the album wouldn't display in the list, so you couldn't see it.
I don't like security by obscurity and it was always my intent to protect the private albums by authenticating users and display the albums based on user role. That functionality is now complete. If you were using the special URL to view the albums in the past, please note that method will no longer work. You will need to register and I will upgrade your account to be able to view the private albums.
Registration
The Self-registration feature is fully functional. After submitting a minimal amount of information, a confirmation e-mail is sent to you with a code that activates your account. The ability to change your registration information is coming soon, including the ability to "opt-out" by removing your account completely.
User Login Updates
I added a lot of features to the user authentication module: a login log, the ability to have your password sent to you by e-mail, and a "kick" function to interfere with excessive user ID/password guessing. However, you may decide that getting kicked is not so awful, since you will be redirected to a random selection of the (currently) 44 sites in the kick list. The list started as a compilation of the most annoying sites I could find, but I couldn't help but include some that I like. I am willing to add other sites based their odd-ball or annoying appeal. So go ahead. Enter a bunch of bad email addresses and passwords and see where you end up.
New Home Page
This page used to be the home page in lieu of any other idea. So I decided that the home page should be more of a promotional piece. Please feel free to send
commentary or
log your opinion.
Authentication
A "demo" page is now available that requires you to login before you can access it. Use the Demo button on the login form if you don't have your own account.
Site Appearance
There are now three aspects of the site's appearance that can be user customized: color theme, font size, and typeface.
Slide Show
The photo albums now have a slide show feature which can be selected when viewing thumbnails or an individual image. Currently set for a 5 second interval. Let me know if it should be longer.
Background Image
I am not a graphic artist by trade, but I can find my way around Fireworks and Photoshop to do some artwork and design as needed. So I hope you like the "JC" background image. It doesn't really do anything, but maybe it helps to dress up an otherwise utilitarian design.
Nav scroll
The nav box was just taking way to long to show up sometimes, so I changed the positioning algorithm to vary the speed with the distance it needs to travel. Note that NS is still rather slowly at executing this code.
Photo Album
I created a photo album application a long time ago, but it didn't really fit the principles of this site (no tables, frames). So I just got done redoing it and you can see some examples by choosing the link from my Personal pages.
Nav Box Change
Since you only need to "Return to the top" when you have scrolled the page, I have made that link visible or hidden as appropriate. And I changed the CSS for the box and items to accommodate invisible elements. The movement of the box into its new position when the window was scrolled was not very attractive, so I made major changes to those functions to allow it to glide smoothly into place. Please note that the gliding under Netscape 6/7 might be considered crawling. Since both IE and Opera move the nav box as intended, I almost have to conclude that NS is just not executing the JavaScript very efficiently.
Web Log
It turned out that this was a bit more complicated than I thought it would be. But it does what I wanted: a self-submitting form that shows the entries in reverse chronological order with a form to submt a new entry at the bottom. While I will make every effort to remove patently offensive entries, please be forewarned that there is the possibility that someone has posted something rude and I haven't had a chance to remove it yet. With the recent navigation re-organization, the link for the web log has been moved to my Personal pages.
Contact Form
The contact form is functional and was used as the basis for the weblog. It has some minimal validation to deal with blank and multiple submissions. I may eventually put in some delayed redirection logic so that you aren't left sitting on the feedback message indefinitely.