not too cool for SQL
If you wanted details about me, you'll be disappointed, as I have absolutely no interest in disclosing the banal minutiae of my life to strangers, unless of course I am offered a stinking pile of ducats to do so. Then I'll pretend to be a country girl from Utah and fabricate the lot. However, allow me to bore you senseless with some technical details instead.
This website is hosted on my server at home, using the popular WAMP (Windows, Apache, MySQL, PHP) configuration to deliver and manage dynamic content. I use a dynamic DNS service which keeps track of my IP address and points visitors to the right place. My httpd.conf and php.ini files are adjusted for common security loopholes, while the public MySQL user is granted only the table access he needs. Yep, I've seen root used on new sites like this! Thanks to capped upload speeds I'm afraid the site is a little sluggish, especially the photos.
dynamic content
The Links page, among others, uses PHP to extract and present records from a table in a MySQL database. I can edit the page content using an admin form (which appears to be under attack from comets). This page features a tiny frosting of AJAX, used to power a dynamic dropdrown and is available through SSL if required.

Ideally I would redesign the links database and remove redundancy. Some categories and subcategories are repeated in the flat file, so strictly they need their own tables. This process is known as normalisation and for maximum efficiency it is necessary to batter a poor database into third normal position.
The inescapably tedious 'random thoughts...' articles (all seven of them) on the home page are loaded, erm, randomly and readers can leave comments, which are filtered quite savagely for spam, links and suspicious multiple submissions. Lurking above is a hit counter which logs a visitor's IP address and referrer on their first and every subsequent visit (up to a maximum of once per hour). The top ten visitors are shown on this page. Oh dear.
Then we have the Contact form and the Photos page registration, both of which I have also attempted to secure with some strict input validation routines (including against spam Email bots, session hijacking and multiple registrations) though I'm sure a determined script kiddie could break them if (s)he wanted. Secure coding is essential and I try to remain aware of possible vulnerabilities in everything I write, especially XSS and MySQL injection.
My most complex project is a basic shopping cart application which features a slice of object-orientated code and a five table database swollen with one-to-many relationships. It is fully functional at the moment, but would benefit from a properly styled layout, product images and an admin access panel to analyse stock, customers and orders.
software
Minimal. The pages are composed in Notepad or Dreamweaver 8 (code view), with a splash of Fireworks for the graphics and then tested on Internet Explorer 6/7/8 beta, Firefox and Safari. Most earn the coveted XHTML Strict 1.0 tick. I hand code as I learn far more by thrusting my paws deeply into the floats, queries, loops, functions and inner joins than I would by letting DW take over.
you're not impressed
It's all quite basic, but no matter, I am enjoying myself immensely while acquiring a solid base of knowledge. My code is increasingly clean, semantic, economical and secure, though I am painfully aware I need to attend to some accessibility issues as "Cynthia" has vociferously pointed out. I also need to properly learn Fireworks, especially the counterintuitive but awesome pen tool! However it won't be long before I feel sufficiently competent to try and secure a batch of qualifications. Current plan is, in increasing order of difficulty:
Dreamweaver 8 certified developer (passed in July), CompTIA A+ IT Technician (passed in August), CIW Master Designer (hmm actually I'm not sure this one is worth much), MySQL CMDEV, then finally Zend PHP 5 certification (which looks pretty savage).
Back to Home page.
