Database Refactoring

A post over on Larry O’Brien’s blog prompted me to put together this short list of resources that can assist with database factoring and understanding an unfamiliar database:

  • Visual Studio CTP for Database Professionals, you can download CTP 5 – Beta here.
  • Red-Gate’s SQL Dependency Tracker (14-day trial download available). Larry notes:

    “One limitation is that the tool does not have a “Print” capability. I would
    like to print out a (huge, wall-sized) poster of the dependency for study. It
    does, though, have an “Export to image…” capability. If you save to .PNG it
    does not preserve detail, but if you save to .EMF, you can import it into
    Illustrator and divvy it up there.”

  • The book “Refactoring Databases: Evolutionary Database Design” by Scott W. Ambler and Pramod Sadalage, has received excellent reviews (unfortunately mine is on order). There is a dedicated website here
  • Sparx Systems Enterprise Architect is a comprehensive database design tool.

Having access to an A1 size plotter is also very useful!

CSS Layout Tools

Saw this great tip via Eric Gunnerson’s blog post on two tools that can help with web page layout and design. I’m in Eric’s corner when it comes to CSS; I’m definitely no expert, and need all the help I can get!

CSSVista lets you see the effect on CSS changes in real-time:

CSSVista is a free Windows application for web developers which lets you edit
your CSS code live in both Internet Explorer and Firefox simultaneously. … This
is a very early version of the software. It probably won’t explode, but it may
not work perfectly 100% of the time.

The IE Developer Toolbar has a DOM viewer that lets you see a tree view of how a web page is structured.

Certifications

Rob Farley posted an entry on how skills are evaluated at both the CV and interview stages when employers are recruiting staff. I agree that having certifications increases the odds that you know more than the next guy, but I think the phrase “Use it, or lose it!” certainly applies. Certification coupled with real-world experience is definitely a plus.

Several months ago, I spoke with guys in an IT department and they actually thought it was a minus when candidates had a MCSE due to the fact there are so many BrainDumps out there. They had interviewed a large number of candidates and a pattern emerged that a large proportion of people were getting the MCSE but had very little on the job experience. I know Microsoft is making headway against the dumpsters by steering towards sandbox exams where you actually have to perform some task in a ‘live’ simulated environment. This is a much more realistic way of accessing skill levels and much harder to ‘cram’ for.

Earlier this year (and the end of last year) I participated in the SQL Server 2005 beta exam program. The interesting thing about the beta exams is that there is very little information around at the time you take them.

As an aside, I’ve attended a couple of interviews recently and not one of the interviewers asked me about my MCSD and MCITP SQL Server 2005 certifications, or wanted to see any proof of passing. But I still think they are worth having.

Web Design Tips

I would hardly call myself a web designer, so I always take note of resources that can help with the look and feel of web pages. Here a few resources I’ve found. There is a superb and short web design tutorial here by Jennifer Apple, including links to other great resources. Elsewhere on the site, she has advice on using subtle borders to make images really stand out.

You can find a lovely web based colour scheme generator here. This is one of the best and easy to use that I’ve come across. Have a quick read through the help section, where you will find tips on creating an optimal colour scheme.

I can also recommend Scott Kelby’s very accessible book “Photoshop CS2 for Digital Photographers”.

(You can tell I’m originally from the UK, by my refusal to spell ‘colour’ as the US version, ‘color’!)

Stock Photographs

I’ve been a keen photographer for several years, and have a few images with the UK based stock photography agency, Alamy. I’m particularly fond of designs in nature and abstract themes. The whole stock library scene has changed dramatically since high quality digital became affordable.

Stock photography by Mitch+Wheat at Alamy
Stock photography by Mitch Wheat at Alamy

A professional photographer (it may have been Roger Garwood) once told me that unless you have 1 or 2 world famous images, you can expect to earn $1 per year for every 100 photographs you have in stock. I don’t think he was too far out with that estimate!

Virtual PC 2007 Beta Available

You can download from here (need a Microsoft passport to login). The good news is that it supports running Windows Vista in a virtual machine and running virtual machines with Windows Vista as the host OS, as well as improved performance.

Code Complete (by a Code Complete Zealot!)

I am often surprised (actually horrified!) to find programmers/developers that have not even heard of Code Complete (by Steve McConnell), let alone read it. If you are a programmer who has not read Code Complete then you should. It should be a required book for all university computer science courses, purchased on day one and lovingly cherished during the course of your studies! Recently, a programmer surprised me even more by belittling it without even having read it (you know who you are). Shame on you!

Every time I pick up ‘Code Complete’ I learn something from it. I am not exaggerating. I’ve owned a copy of this book for a little over 10 years (now in its second edition), and I learn something useful every time I pick it up. I could perhaps say that of only a handful of books. It might be something I’ve forgotten to pay sufficient attention to rather than something earth shatteringly new, but nonetheless I learn something. Don’t take my word for it, do a few searches yourself and look at the accolades, praise and comments by respected practioners.

Actually, now I think about it, I’m not really a Code Complete zealot, just someone who hates reinventing the wheel, especially square shaped ones…

Transact SQL SARGs (Search Arguments)

The term SARG (or search argument) is used to describe whether a Transact SQL WHERE clause will be able to take advantage of any indexes present on columns in a table.

For example, this can use an index:

SELECT SomeColumn FROM MyTable
WHERE SomeColumn LIKE ‘Whea%’

But this can not:

SELECT SomeColumn FROM MyTable
WHERE SomeColumn LIKE ‘%eat’

This important topic is covered in some detail in the following references:

pgs 351 – 368, Guru’s Guide to Transact-SQL, Ken Henderson
pgs 318 – 326, SQL Server Performance Tuning Distilled, Sajal Dam

SARGs are also mentioned in this more general performance tuning article.