Saturday, January 29, 2005

DB Design

I have decided to move over to using a MySQL based data layer rather than the XML documents I was using to store data. This will give me much greater flexibility and functionality. I found a great case tool for doing DB design with MySQL called DB Designer from fabForce.net. The tool allows for a simple and nice graphical UI to design tables and relationships and then synchronize with the MySQL server. It can also generate the scripts required to create the database structure a different server.

Reference:
DB Designer

Sunday, January 23, 2005

Box Model Hacks

If any of you have ever tried to deal with CSS and browser compatibility it can be a bit of a challenge. Something that works in one browser is busted in another. Fix the one thing and it busts something else or is busted in the first. To solve the problem you often need a separate set of CSS instructions for each of the supported browsers. You could do this by creating separate CSS stylesheets for each supported browser and then use server side scripting to load the correct one. Although effective this can be an unmanageable solution for large sites with many stylesheets to keep up to date. This is where the Box Model Hack comes in.

The Box Model Hack is basically using the same style directives with some tweaks in its calling mechanism. Let me demonstrate with the following example:

height: 100% !important;
height: 200px;
height/**/:/**/ 150px;


The first directive uses the !important modifier. This is read by all browsers and is meant to cause the browser to ignore and over rides, but IE/Win ignores the !important and will over ride using any following directives. Since IE/Win browsers ignore the !important value in the first directive the second one over rides the first for those browsers but not for others like Firefox and Safari. The Last directive is not valid in IE/Win 5.x as is therefore ignored, IE/Win 6.x reads it correctly and again over rides. Other browsers ignore it as they support the !important modifier in the first directive.

The result in this example is that non IE/Win browsers such as Firefox and Safari will use a height of 100%, IE/Win 5.x will use a height of 200px and IE/Win 6.x will use 150px.

Reference:
BoxModelHack

Saturday, January 22, 2005

QA Testing Your Website

I learned early on in my career the importance of QA testing, and I wanted to do as much as possible with this website. One thing I decided to do after rethinking the website was to figure out my audience. Since this site will contain mostly content for Jeaniene's and my families as well some technical articles in the future, I can make an assumption that most of the users will either bee running current versions of the various browsers or older versions of IE dating back to version 5.0.

I was easily able to install Firefox, and XP comes with IE 6 installed, so to handle the other tests I haveinstalled IE 5.0, 5.5 as well. I used a method that involves coping over the application files to separatedirectories and renaming a couple of files. You can download old version of browsers at the evolt.org - Browser Archive.

Next I will install Pear PC so I can install the Mac OS X to test Safari.

Reference:
Multiple IEs in Windows

Monday, January 17, 2005

Back to Basics

Have been reading articles on site redesign and usability from SitePoint and HTMLSource and see many areas I can improve the site layout from my initial design. Since the technical details for the functionality are now ironed out, I have decided that my next step will be to revamp the layout of this site design, factoring in things like search engine optimizations and navigation ease. In a future posting I will supply more details, justifications, and some resources as I detail out the decisions.

Sunday, January 16, 2005

XML Recipes

I just spent most of today looking at XML data schemas for Recipes. From what I could find there are three main formats out there. MasterCook, RecipeML, and CookML. Only CookML seemed suitable for my purpose however it is not wildly used and the only documentation on the
specification is in German. Since my purpose at this point is to only support this website database I will use a schema that I started developing about a year ago and already have data in.

I will be extending the current schema I have with data elements to allow for easy integration to the other formats. As required in the future I can develop import and export routines based on XSLT for convert the other formats.

To Do List

Some To Dos for the Website:

General (All Sections)

  • Code: Add parameters XSLT transforms to handle bolding on side nav bars rather than using Javascript.
  • Look: Improve design elements of the side nav bar and location bar (bread crumbs).
  • Look: Update Graphics on Home page and matching Watermarks
  • Look: Reduce height of serch window
  • Look: Replace search text with graphic
  • Look: Build Nav Bar to have rounded corners
  • Look: Make Location bar flow into content section

Site Map
  • Look: New Watermark

Home Page
  • Look: Change Welcome Message - Turn into Graphic
  • Look: Replace Graphics, build Collage

Admin Section
  • Code: Add additional functionality.
  • Code: Create redirection page that allows login and then send the user to another part of the website.

About Us Section
  • Content: Write Bios and Resume

News Section
  • Look: New Watermark
  • Content: Write Article - Search via Google Website API
  • Content: Write Article - Blogger Hack
  • Content: Write Article - Haloscan Hack
  • Content: Write Article - Coding Standards
  • Content: Write Article - Tools Used to Build this site

Photos Section
  • Look: Use Graphic for "Welcome" and "Select" messages on Side Nav; Re-word "Welcome" message to "Photo Gallery"
  • Look: Picture - Folder List / Photo page: Side Nav "Welcome" message should be added.
  • Look: Side Nav Previous and Next Group switched to graphics.
  • Code: Use md5 hash for the small and thumb file name.
  • Content: Add all photos teken so far.
  • Content: Add descriptions for select photos.
  • Content: Add descriptions for all folders.

Recipes Section
  • Code: Build UI
  • Code: Until UI is built set page up like others.
  • Content: Add content.

Friday, January 14, 2005

Making Progress

Well I finished the blog interface to a point that it made sense to put it on the production site.

This is actually the first production entry so many more to come as I continue to update the site.

Another thing I just added was mod_rewrite redirection this allows for links that can be handled better by Search engine spiders such as those used by Google and Yahoo. An example of this functionality would be the URL http://www.shupe.ca/news/Website translates to http://www.shupe.ca/news/Website.

There are several good resources on the web about this functionality two good ones to get you started are mod_rewrite: A Beginner's Guide to URL Rewriting. and corz.org - .htaccess tips and tricks

Update: Fixed a minor bug regarding slashed quotes. Added a strip slashes to the processing routine and it fixed. Manually had to fix the data.

Friday, January 07, 2005

First Entry

This is the first entry in the Website Blog.

The purpose of this blog is to store information about the website, to-do lists and what items to expect.

At this point the only blog supported is this one and there is no UI to enter new entries.